00001 #ifndef LaserAlignmentSimulation_LaserPrimaryGeneratorAction_h 00002 #define LaserAlignmentSimulation_LaserPrimaryGeneratorAction_h 00003 00012 #include "Alignment/LaserAlignmentSimulation/interface/LaserBeamsTEC1.h" 00013 #include "Alignment/LaserAlignmentSimulation/interface/LaserBeamsTEC2.h" 00014 #include "Alignment/LaserAlignmentSimulation/interface/LaserBeamsBarrel.h" 00015 00016 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00017 00018 // G4 includes 00019 #include "G4Event.hh" 00020 #include "G4VUserPrimaryGeneratorAction.hh" 00021 #include "Randomize.hh" 00022 00023 class G4Event; 00024 class LaserPrimaryGeneratorMessenger; 00025 00026 class LaserPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction 00027 { 00028 public: 00030 LaserPrimaryGeneratorAction(edm::ParameterSet const& theConf); 00032 ~LaserPrimaryGeneratorAction(); 00033 00034 public: 00036 void GeneratePrimaries(G4Event* myEvent); 00038 void setGeneratorId(G4PrimaryParticle * aParticle, int ID) const; 00039 00040 private: 00041 G4double thePhotonEnergy; 00042 G4int thenParticleInGun; 00043 G4int thenParticle; 00044 00045 private: 00046 LaserBeamsTEC1 * theLaserBeamsInTEC1; 00047 LaserBeamsTEC2 * theLaserBeamsInTEC2; 00048 LaserBeamsBarrel * theLaserBeamsInTECTIBTOBTEC; 00049 }; 00050 #endif