00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oriented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Description: for generators, TESTER and GENBES 00005 //Author: Liuhm 00006 //Created: June, 2003 00007 //Modified: 00008 //Comment: 00009 //---------------------------------------------------------------------------// 00010 00011 #ifndef BesPrimaryGeneratorAction_h 00012 #define BesPrimaryGeneratorAction_h 1 00013 00014 #include "G4VUserPrimaryGeneratorAction.hh" 00015 #include "globals.hh" 00016 //#include "TFile.h" 00017 //#include "TNtuple.h" 00018 #include "TH1F.h" 00019 00020 class G4ParticleGun; 00021 class G4Event; 00022 class G4ParticleTable; 00023 class BesPrimaryGeneratorMessenger; 00024 class G4VPrimaryGenerator; 00025 00026 class BesPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction 00027 { 00028 public: 00029 00030 BesPrimaryGeneratorAction(); 00031 ~BesPrimaryGeneratorAction(); 00032 00033 public: 00034 00035 void GeneratePrimaries(G4Event* anEvent); 00036 // Getter and setters 00037 G4String GetGeneratorName(){return generatorName;} 00038 void SetGeneratorName(G4String genNew){generatorName=genNew;} 00039 G4String GetGenbesName(){return genbesName;} 00040 void SetGenbesName(G4String genbesNew){genbesName=genbesNew;} 00041 void SetNParticle(G4int np){nParticle = np;} 00042 void SetParticleName(G4String pname){particleName = pname;} 00043 void SetMinCos(G4double min1){minCos = min1;} 00044 void SetMaxCos(G4double max1){maxCos = max1;} 00045 void SetPhiStart(G4double ps){phiStart =ps;} 00046 void SetPhiEnd(G4double pe){phiEnd = pe;} 00047 void SetMomentum(G4double pm){pMomentum = pm;} 00048 void SetDeltaP(G4double dp){deltaP = dp;} 00049 void SetPosX(G4double x){posX = x;} 00050 void SetPosY(G4double y){posY = y;} 00051 void SetPosZ(G4double z){posZ = z;} 00052 00053 private: 00054 00055 G4ParticleGun* particleGun; 00056 BesPrimaryGeneratorMessenger* messenger; 00057 G4VPrimaryGenerator* HEPEvt; 00058 G4String generatorName; 00059 G4String genbesName; 00060 G4bool isGenbes; 00061 00062 G4int nParticle; 00063 G4String particleName; 00064 G4double minCos; 00065 G4double maxCos; 00066 G4double phiStart; 00067 G4double phiEnd; 00068 G4double pMomentum; 00069 G4double deltaP; 00070 G4double posX; 00071 G4double posY; 00072 G4double posZ; 00073 //TFile* ftest; 00074 //TNtuple* tuple; 00075 //G4int counter; 00076 TH1F* h1; 00077 TH1F* h2; 00078 TH1F* h3; 00079 }; 00080 00081 #endif /*BesPrimaryGeneratorAction_h*/ 00082 00083 00084