CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/Validation/Geometry/interface/MaterialBudgetHcal.h

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