/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/gen/include/RAT/VertexGen_Spectrum.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/gen/include/RAT/VertexGen_Spectrum.hh Source File
Ratpac-two
VertexGen_Spectrum.hh
1 // RAT::VertexGen_Spectrum
2 // 18-July-2008 JR Wilson
3 
18 #ifndef __RAT_VertexGen_Spectrum__
19 #define __RAT_VertexGen_Spectrum__
20 
21 #include <G4Event.hh>
22 #include <G4ThreeVector.hh>
23 #include <RAT/GLG4VertexGen.hh>
24 #include <globals.hh>
25 #include <vector>
26 
27 #include "RAT/DB.hh"
28 
29 namespace RAT {
30 
32  public:
33  VertexGen_Spectrum(const char *arg_dbname = "SPECTRUM");
34  virtual ~VertexGen_Spectrum();
39  virtual void GeneratePrimaryVertex(G4Event *argEvent, G4ThreeVector &dx, G4double dt);
44  virtual void SetState(G4String newValues);
46  virtual G4String GetState();
47 
50  virtual void InitialiseSpectrum();
51 
53  virtual double SampleEnergy();
54 
56  virtual bool ELimitable() { return true; };
57 
59  virtual void LimitEnergies(double Elo, double Ehi);
60 
62  virtual double EMaximum();
63 
65  virtual double EMinimum();
66 
67  private:
68  G4String _particle; // name of the particle type
69  G4ParticleDefinition *_pDef; // particle definition
70  G4String _spectrum; // name of the spectrum to use
71  DBLinkPtr _lspec; // link to spectrum entry in database
72  double _emin; // valid range for spectrum in MeV
73  double _emax;
74  std::vector<double> spec_E; // spectrum energy values
75  std::vector<double> spec_mag; // spectrum magnitude values
76  std::vector<double> spec_cummag; // spectrum cumulative non-normalised magnitude values
77  double Elim_Ulo; // user applied universal lower limit to energy range
78  double Elim_Uhi; // user applied universal higher limit to energy range
79  double Elim_Tlo; // temporary lower energy limit (applies to one event)
80  double Elim_Thi; // temporary higher energy limit (applies to one event)
81 };
82 
83 } // namespace RAT
84 
85 #endif
Definition: GLG4VertexGen.hh:26
Definition: VertexGen_Spectrum.hh:31
virtual ~VertexGen_Spectrum()
Definition: VertexGen_Spectrum.cc:29
virtual void GeneratePrimaryVertex(G4Event *argEvent, G4ThreeVector &dx, G4double dt)
Definition: VertexGen_Spectrum.cc:34
virtual void InitialiseSpectrum()
Definition: VertexGen_Spectrum.cc:175
virtual void LimitEnergies(double Elo, double Ehi)
Definition: VertexGen_Spectrum.cc:288
virtual G4String GetState()
Definition: VertexGen_Spectrum.cc:166
virtual double EMinimum()
Definition: VertexGen_Spectrum.cc:314
virtual double EMaximum()
Definition: VertexGen_Spectrum.cc:303
virtual bool ELimitable()
Definition: VertexGen_Spectrum.hh:56
virtual void SetState(G4String newValues)
Definition: VertexGen_Spectrum.cc:82
virtual double SampleEnergy()
Definition: VertexGen_Spectrum.cc:216
Definition: CCCrossSecMessenger.hh:29