CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/Alignment/LaserAlignmentSimulation/plugins/LaserAlignmentSimulation.h

Go to the documentation of this file.
00001 #ifndef LaserAlignmentSimulation_LaserAlignmentSimulation_H
00002 #define LaserAlignmentSimulation_LaserAlignmentSimulation_H
00003 
00012 #include "SimG4Core/Watcher/interface/SimWatcher.h"
00013 
00014 #include "SimG4Core/Notification/interface/Observer.h"
00015 
00016 // own classes
00017 #include "Alignment/LaserAlignmentSimulation/interface/MaterialProperties.h"
00018 #include "Alignment/LaserAlignmentSimulation/interface/LaserPrimaryGeneratorAction.h"
00019 #include "Alignment/LaserAlignmentSimulation/interface/LaserSteppingAction.h"
00020 
00021 #include <map>
00022 #include <iostream>
00023 
00024 // Geant4 includes
00025 
00026 
00027 class BeginOfRun;
00028 class EndOfRun;
00029 class BeginOfEvent;
00030 class EndOfEvent;
00031 class BeginOfTrack;
00032 class EndOfTrack;
00033 class G4Step;
00034 
00035 class G4Timer;
00036 
00037 class EventAction;
00038 class RunAction;
00039 class SteppingAction;
00040 class TrackingAction;
00041 
00042 class LaserAlignmentSimulation : public Observer<const BeginOfRun *>,
00043   public Observer<const BeginOfEvent *>,
00044   public Observer<const G4Step *>,
00045   public Observer<const EndOfEvent *>,
00046   public Observer<const EndOfRun *>,
00047   public Observer<const BeginOfTrack *>,
00048   public Observer<const EndOfTrack *>,
00049   public SimWatcher
00050 {
00051  public:
00053   explicit LaserAlignmentSimulation(edm::ParameterSet const & theConf);
00055   virtual ~LaserAlignmentSimulation();
00056   
00057 /*  private: */
00059   void update(const BeginOfRun * myRun);
00061   void update(const BeginOfEvent * myEvent);
00063   void update(const G4Step * myStep);
00065   void update(const EndOfEvent * myEvent);
00067   void update(const EndOfRun * myRun);
00069   void update(const BeginOfTrack * myTrack);
00071   void update(const EndOfTrack * myTrack);
00072   
00073  private:
00074   int theDebugLevel;
00075   double theEnergyLossScalingFactor;
00076   int theMPDebug;
00077   double theSiAbsLengthScale;
00078 
00079  private:
00080   G4Timer * theTimer;
00081   MaterialProperties * theMaterialProperties;
00082   LaserPrimaryGeneratorAction * thePrimaryGenerator;
00083   LaserSteppingAction * theSteppingAction;
00084 
00085   int theBarrelHits;
00086   int theEndcapHits;
00087 
00088   edm::ParameterSet theParameterSet;
00089 /*   TrackerG4SimHitNumberingScheme theNumberingScheme; */
00090 };
00091 
00092 #endif