![]() |
![]() |
00001 #ifndef Validation_Geometry_MaterialBudgetHcal_h 00002 #define Validation_Geometry_MaterialBudgetHcal_h 00003 00004 #include "Validation/Geometry/interface/MaterialBudgetHcalHistos.h" 00005 00006 #include "SimG4Core/Watcher/interface/SimWatcher.h" 00007 #include "SimG4Core/Notification/interface/Observer.h" 00008 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00009 00010 #include <CLHEP/Vector/LorentzVector.h> 00011 00012 class BeginOfJob; 00013 class BeginOfTrack; 00014 class G4Step; 00015 class EndOfTrack; 00016 00017 class MaterialBudgetHcal : public SimWatcher, 00018 public Observer<const BeginOfJob*>, 00019 public Observer<const BeginOfTrack*>, 00020 public Observer<const G4Step*>, 00021 public Observer<const EndOfTrack*> { 00022 00023 public: 00024 00025 MaterialBudgetHcal(const edm::ParameterSet&); 00026 virtual ~MaterialBudgetHcal(); 00027 00028 private: 00029 00030 MaterialBudgetHcal(const MaterialBudgetHcal&); // stop default 00031 const MaterialBudgetHcal& operator=(const MaterialBudgetHcal&); // stop default 00032 00033 void update(const BeginOfJob*); 00034 void update(const BeginOfTrack*); 00035 void update(const G4Step*); 00036 void update(const EndOfTrack*); 00037 00038 bool stopAfter(const G4Step*); 00039 00040 MaterialBudgetHcalHistos* theHistos; 00041 double rMax, zMax; 00042 }; 00043 00044 #endif