File indexing completed on 2024-04-06 11:56:27
0001 #ifndef LaserAlignmentSimulation_LaserAlignmentSimulation_H
0002 #define LaserAlignmentSimulation_LaserAlignmentSimulation_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include "SimG4Core/Watcher/interface/SimWatcher.h"
0014
0015 #include "SimG4Core/Notification/interface/Observer.h"
0016
0017
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
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
0052 explicit LaserAlignmentSimulation(edm::ParameterSet const &theConf);
0053
0054 ~LaserAlignmentSimulation() override;
0055
0056
0057
0058 void update(const BeginOfRun *myRun) override;
0059
0060 void update(const BeginOfEvent *myEvent) override;
0061
0062 void update(const G4Step *myStep) override;
0063
0064 void update(const EndOfEvent *myEvent) override;
0065
0066 void update(const EndOfRun *myRun) override;
0067
0068 void update(const BeginOfTrack *myTrack) override;
0069
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
0089 };
0090
0091 #endif