GEMC  2.3
Geant4 Monte-Carlo Framework
MPrimaryGeneratorAction.h
Go to the documentation of this file.
1 #ifndef MPrimaryGeneratorAction_h
2 #define MPrimaryGeneratorAction_h 1
3 
4 // Geant4
5 #include "G4VUserPrimaryGeneratorAction.hh"
6 #include "G4ParticleGun.hh"
7 #include "G4Event.hh"
8 
9 // For reading StdHep files
10 #include "lStdHep.hh"
11 using namespace UTIL;
12 
13 
14 // gemc
15 #include "options.h"
16 
17 // C++
18 #include <fstream>
19 
20 
21 // Class definition
23 {
24  public:
27 
28  public:
29  void GeneratePrimaries(G4Event* anEvent);
31  double GEN_VERBOSITY;
32  double getBeamPol()
33  {
34  return beamPol;
35  }
36 
37  // LUND information
38  vector<double> lundUserDefined;
39 
40 
41  private:
42  string input_gen;
43  string background_gen;
44  string cosmics;
45  string hd_msg;
46  G4ParticleTable* particleTable;
47 
48  // Primary Beam
49  G4ParticleDefinition *Particle;
50  double mom, dmom;
51  double theta, dtheta;
52  double phi, dphi;
53  double vx, vy, vz;
54  double dvr, dvz;
55  double polDeg, polTheta, polPhi;
56  double ctheta;
57  double cphi;
58  double primaryFlat;
59 
60  double cosmicA, cosmicB, cosmicC;
61  double cminp, cmaxp, cMom;
62  G4ThreeVector cosmicTarget;
63  double cosmicRadius;
64 
65  // Generators Input Files
66  ifstream gif;
67  ifstream bgif;
68  string gformat;
69  string gfilename;
70  double beamPol;
71 
72  lStdHep *stdhep_reader;
73 
74  // Luminosity Beam
75  G4ParticleDefinition *L_Particle;
76  double L_mom, L_dmom;
77  double L_theta, L_dtheta;
78  double L_phi, L_dphi;
79  double L_vx, L_vy, L_vz;
80  double L_dvr, L_dvz;
81  int NP;
82  double TWINDOW;
83  double TBUNCH;
84  double lumiFlat;
85 
86  // Luminosity Beam2
87  G4ParticleDefinition *L2_Particle;
88  double L2_mom, L2_dmom;
89  double L2_theta, L2_dtheta;
90  double L2_phi, L2_dphi;
91  double L2_vx, L2_vy, L2_vz;
92  double L2_dvr, L2_dvz;
93  int NP2;
94  double TBUNCH2;
95  double lumi2Flat;
96 
97  G4ParticleGun* particleGun;
98  void setBeam();
99 
100  double cosmicBeam(double, double);
101 
102 };
103 
104 #endif
105 
106 
vector< double > lundUserDefined
user defined infos in the LUND header
Definition: lStdHep.cc:17