Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:56:27

0001 #ifndef LaserAlignmentSimulation_LaserPrimaryGeneratorAction_h
0002 #define LaserAlignmentSimulation_LaserPrimaryGeneratorAction_h
0003 
0004 /** \class LaserPrimaryGeneratorAction
0005  *  Primary Generator Action for the Laser Events
0006  *
0007  *  $Date: 2007/03/20 12:00:59 $
0008  *  $Revision: 1.2 $
0009  *  \author Maarten Thomas
0010  */
0011 
0012 #include "Alignment/LaserAlignmentSimulation/interface/LaserBeamsBarrel.h"
0013 #include "Alignment/LaserAlignmentSimulation/interface/LaserBeamsTEC1.h"
0014 #include "Alignment/LaserAlignmentSimulation/interface/LaserBeamsTEC2.h"
0015 
0016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0017 
0018 // G4 includes
0019 #include "G4Event.hh"
0020 #include "G4VUserPrimaryGeneratorAction.hh"
0021 #include "Randomize.hh"
0022 
0023 class G4Event;
0024 class LaserPrimaryGeneratorMessenger;
0025 
0026 class LaserPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction {
0027 public:
0028   /// constructor
0029   LaserPrimaryGeneratorAction(edm::ParameterSet const &theConf);
0030   /// destructor
0031   ~LaserPrimaryGeneratorAction() override;
0032 
0033 public:
0034   /// call the corresponding GeneratePrimaries routines for both TEC's and the
0035   /// Barrel
0036   void GeneratePrimaries(G4Event *myEvent) override;
0037   /// set Id of the optical photons
0038   void setGeneratorId(G4PrimaryParticle *aParticle, int ID) const;
0039 
0040 private:
0041   G4double thePhotonEnergy;
0042   G4int thenParticleInGun;
0043   G4int thenParticle;
0044 
0045 private:
0046   LaserBeamsTEC1 *theLaserBeamsInTEC1;
0047   LaserBeamsTEC2 *theLaserBeamsInTEC2;
0048   LaserBeamsBarrel *theLaserBeamsInTECTIBTOBTEC;
0049 };
0050 #endif