Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef LaserAlignmentSimulation_LaserAlignmentSimulation_H
0002 #define LaserAlignmentSimulation_LaserAlignmentSimulation_H
0003 
0004 /** \class LaserAlignmentSimulation
0005  *  SimWatcher for the simulation of the Laser Alignment System of the CMS
0006  * Tracker
0007  *
0008  *  $Date: 2007/03/20 12:01:00 $
0009  *  $Revision: 1.3 $
0010  *  \author Maarten Thomas
0011  */
0012 
0013 #include "SimG4Core/Watcher/interface/SimWatcher.h"
0014 
0015 #include "SimG4Core/Notification/interface/Observer.h"
0016 
0017 // own classes
0018 #include "Alignment/LaserAlignmentSimulation/interface/LaserPrimaryGeneratorAction.h"
0019 #include "Alignment/LaserAlignmentSimulation/interface/LaserSteppingAction.h"
0020 #include "Alignment/LaserAlignmentSimulation/interface/MaterialProperties.h"
0021 
0022 #include <iostream>
0023 #include <map>
0024 
0025 // Geant4 includes
0026 
0027 class BeginOfRun;
0028 class EndOfRun;
0029 class BeginOfEvent;
0030 class EndOfEvent;
0031 class BeginOfTrack;
0032 class EndOfTrack;
0033 class G4Step;
0034 
0035 class G4Timer;
0036 
0037 class EventAction;
0038 class RunAction;
0039 class SteppingAction;
0040 class TrackingAction;
0041 
0042 class LaserAlignmentSimulation : public Observer<const BeginOfRun *>,
0043                                  public Observer<const BeginOfEvent *>,
0044                                  public Observer<const G4Step *>,
0045                                  public Observer<const EndOfEvent *>,
0046                                  public Observer<const EndOfRun *>,
0047                                  public Observer<const BeginOfTrack *>,
0048                                  public Observer<const EndOfTrack *>,
0049                                  public SimWatcher {
0050 public:
0051   /// constructor
0052   explicit LaserAlignmentSimulation(edm::ParameterSet const &theConf);
0053   /// destructor
0054   ~LaserAlignmentSimulation() override;
0055 
0056   /*  private: */
0057   /// observer for BeginOfRun
0058   void update(const BeginOfRun *myRun) override;
0059   /// observer for BeginOfEvent
0060   void update(const BeginOfEvent *myEvent) override;
0061   /// observer for G4Step
0062   void update(const G4Step *myStep) override;
0063   /// observer for EndOfEvent
0064   void update(const EndOfEvent *myEvent) override;
0065   /// observer for EndOfRun
0066   void update(const EndOfRun *myRun) override;
0067   /// observer for BeginOfTrack
0068   void update(const BeginOfTrack *myTrack) override;
0069   /// observer for EndOfTrack
0070   void update(const EndOfTrack *myTrack) override;
0071 
0072 private:
0073   int theDebugLevel;
0074   double theEnergyLossScalingFactor;
0075   int theMPDebug;
0076   double theSiAbsLengthScale;
0077 
0078 private:
0079   G4Timer *theTimer;
0080   MaterialProperties *theMaterialProperties;
0081   LaserPrimaryGeneratorAction *thePrimaryGenerator;
0082   LaserSteppingAction *theSteppingAction;
0083 
0084   int theBarrelHits;
0085   int theEndcapHits;
0086 
0087   edm::ParameterSet theParameterSet;
0088   /*   TrackerG4SimHitNumberingScheme theNumberingScheme; */
0089 };
0090 
0091 #endif