CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MaterialBudgetAction.h
Go to the documentation of this file.
1 #ifndef _MaterialBudgetAction_h
2 #define _MaterialBudgetAction_h
3 #include <string>
4 #include <vector>
5 #include <map>
6 
7 // user include files
15 
18 
19 #include <CLHEP/Vector/LorentzVector.h>
20 
21 class BeginOfTrack;
22 class BeginOfRun;
23 class G4Step;
24 class EndOfTrack;
25 class EndOfEvent;
26 class G4StepPoint;
27 class G4VTouchable;
28 
29 namespace edm {
30  class ParameterSet;
31 }
32 
34  public Observer<const BeginOfRun*>,
35  public Observer<const BeginOfTrack*>,
36  public Observer<const G4Step*>,
37  public Observer<const EndOfTrack*>,
38  public Observer<const EndOfEvent *>
39 {
40  public:
42  virtual ~MaterialBudgetAction();
43 
44  void produce(edm::Event&, const edm::EventSetup&);
45 
46 
47  private:
48  MaterialBudgetAction(const MaterialBudgetAction&); // stop default
49 
50  const MaterialBudgetAction& operator=(const MaterialBudgetAction&); // stop default
51 
52  void update(const BeginOfRun*);
53  void update(const BeginOfTrack*);
54  void update(const G4Step*);
55  void update(const EndOfTrack*);
56  void update(const EndOfEvent*);
57 
58  void initRun();
59  void processEvent( unsigned int nEv );
60  void endRun();
61 
62  bool CheckTouchableInSelectedVolumes( const G4VTouchable* touch );
63  bool StopAfterProcess( const G4Step* aStep );
64 
65  private:
66  void save( const G4Step* aStep );
67  std::string getSubDetectorName( G4StepPoint* aStepPoint );
68  std::string getPartName( G4StepPoint* aStepPoint );
75  bool storeDecay;
76  double Ekin;
78 
79  std::vector<G4String> theVolumeList;
80  G4String theProcessToStop;
82 
83 };
84 
85 #endif
bool CheckTouchableInSelectedVolumes(const G4VTouchable *touch)
void save(const G4Step *aStep)
MaterialBudgetAction(const edm::ParameterSet &)
void update(const BeginOfRun *)
This routine will be called when the appropriate signal arrives.
void processEvent(unsigned int nEv)
MaterialBudgetTxt * theTxt
const MaterialBudgetAction & operator=(const MaterialBudgetAction &)
MaterialBudgetFormat * theHistos
MaterialBudgetData * theData
bool StopAfterProcess(const G4Step *aStep)
std::string getPartName(G4StepPoint *aStepPoint)
std::vector< G4String > theVolumeList
std::string getSubDetectorName(G4StepPoint *aStepPoint)
void produce(edm::Event &, const edm::EventSetup &)
MaterialBudgetTree * theTree