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

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/gen/include/RAT/VertexGen_FastNeutron.hh Source File
Ratpac-two
VertexGen_FastNeutron.hh
1 // RAT::VertexGen_FastNeutron
2 //
3 
20 #ifndef __RAT_VertexGen_FastNeutron__
21 #define __RAT_VertexGen_FastNeutron__
22 
23 #include <TF1.h>
24 #include <TF2.h>
25 
26 #include <G4Event.hh>
27 #include <G4ThreeVector.hh>
28 #include <RAT/DB.hh>
29 #include <RAT/FastNeutronMessenger.hh>
30 #include <RAT/GLG4VertexGen.hh>
31 #include <globals.hh>
32 #include <vector>
33 
34 namespace RAT {
36  public:
37  VertexGen_FastNeutron(const char *arg_dbname = "fastneutron");
38  virtual ~VertexGen_FastNeutron();
43  virtual void GeneratePrimaryVertex(G4Event *argEvent, G4ThreeVector &dx, G4double dt);
48  virtual void SetState(G4String newValues);
50  virtual G4String GetState();
51 
55  void SetDepth(double DAm);
56  void SetEnThreshold(double EAm);
57  void SetSideBool(double SBAm);
58 
59  inline double GetDepth() { return valueD; };
60  inline double GetEnThreshold() { return valueE; };
61  inline double GetSideBool() { return valueSB; };
62 
63  void GetMeiHimeParameters(double depth, double emin, double &cosTheta, double &neutronEnergy);
64  void LoadTangHortonSmithCosTheta(double depth);
65 
66  double GetRandomMuonCosTheta();
67 
68  double evalIntegral(TF2 *func1, double x, double e_tmp);
69 
70  private:
71  G4String _particle; // name of the particle type
72  G4ParticleDefinition *n; // particle definition
73  G4String _FastNeutron; // name of the FastNeutron to use
74 
75  double valueD, valueE, valueSB;
76  bool loadedTangHortonSmith;
77 
78  FastNeutronMessenger *messenger;
79 
80  G4ThreeVector nu_dir;
81 
82  TF1 *funcMuonCosTheta;
83 };
84 
85 } // namespace RAT
86 
87 #endif
Definition: GLG4VertexGen.hh:26
Definition: FastNeutronMessenger.hh:22
Definition: VertexGen_FastNeutron.hh:35
virtual void SetState(G4String newValues)
Definition: VertexGen_FastNeutron.cc:99
void SetDepth(double DAm)
Definition: VertexGen_FastNeutron.cc:134
virtual G4String GetState()
Definition: VertexGen_FastNeutron.cc:123
virtual void GeneratePrimaryVertex(G4Event *argEvent, G4ThreeVector &dx, G4double dt)
Definition: VertexGen_FastNeutron.cc:48
virtual ~VertexGen_FastNeutron()
Definition: VertexGen_FastNeutron.cc:43
Definition: CCCrossSecMessenger.hh:29