00001 #ifndef LaserAlignmentSimulation_LaserBeamsBarrel_h 00002 #define LaserAlignmentSimulation_LaserBeamsBarrel_h 00003 00012 #include "CLHEP/Random/DRand48Engine.h" 00013 00014 // G4 includes 00015 #include "G4ParticleTable.hh" 00016 #include "G4VUserPrimaryGeneratorAction.hh" 00017 00018 class G4ParticleGun; 00019 class G4Event; 00020 00021 class LaserBeamsBarrel : public G4VUserPrimaryGeneratorAction 00022 { 00023 public: 00025 LaserBeamsBarrel(); 00027 LaserBeamsBarrel(G4int nPhotonsInGun, G4int nPhotonsInBeam, G4double PhotonEnergy); 00029 ~LaserBeamsBarrel(); 00030 00031 public: 00033 void GeneratePrimaries(G4Event* myEvent); 00035 void setOptPhotonPolar(G4double Angle); 00036 00037 private: 00038 G4int thenParticleInGun; 00039 G4int thenParticle; 00040 G4double thePhotonEnergy; 00041 00042 private: 00043 G4ParticleGun * theParticleGun; 00044 00045 // Unique random number generator 00046 CLHEP::DRand48Engine* theDRand48Engine; 00047 }; 00048 #endif 00049