CMS 3D CMS Logo

SimTracer.h
Go to the documentation of this file.
1 #ifndef HelpfulWatchers_SimTracer_h
2 #define HelpfulWatchers_SimTracer_h
3 // -*- C++ -*-
4 //
5 // Package: HelpfulWatchers
6 // Class : SimTracer
7 //
16 //
17 // Original Author:
18 // Created: Tue Nov 22 16:41:33 EST 2005
19 //
20 
21 // system include files
22 #include <iostream>
23 
24 // user include files
26 #include "G4Step.hh"
29 
30 // forward declarations
31 class DDDWorld;
32 class BeginOfJob;
33 class BeginOfRun;
34 class BeginOfEvent;
35 class BeginOfTrack;
36 class G4Step;
37 
38 class EndOfRun;
39 class EndOfEvent;
40 class EndOfTrack;
41 
42 #define OBSERVES(type) \
43 public \
44  Observer<const type *>
45 #define UPDATE(type) \
46  void update(const type *) override { std::cout << "++ signal " #type << std::endl; }
47 class SimTracer : public SimWatcher,
48  OBSERVES(DDDWorld),
49  OBSERVES(BeginOfJob),
50  OBSERVES(BeginOfRun),
51  OBSERVES(BeginOfEvent),
52  OBSERVES(BeginOfTrack),
53  OBSERVES(G4Step),
54  OBSERVES(EndOfRun),
55  OBSERVES(EndOfEvent),
56  OBSERVES(EndOfTrack) {
57 public:
58  SimTracer(const edm::ParameterSet &pSet) : m_verbose(pSet.getUntrackedParameter<bool>("verbose", false)) {}
59  // virtual ~SimTracer();
60 
61  // ---------- const member functions ---------------------
62 
63  // ---------- static member functions --------------------
64 
65  // ---------- member functions ---------------------------
71  void update(const G4Step *iStep) override {
72  std::cout << "++ signal G4Step ";
73  if (m_verbose) {
74  const G4StepPoint *post = iStep->GetPostStepPoint();
75  const G4ThreeVector &pos = post->GetPosition();
76  std::cout << "( " << pos.x() << "," << pos.y() << "," << pos.z() << ") ";
77  if (post->GetPhysicalVolume()) {
78  std::cout << post->GetPhysicalVolume()->GetName();
79  }
80  }
81  std::cout << std::endl;
82  }
83  // UPDATE(G4Step)
87 
88 private:
89  // SimTracer(const SimTracer&); // stop default
90 
91  // const SimTracer& operator=(const SimTracer&); // stop default
92 
93  // ---------- member data --------------------------------
94  bool m_verbose;
95 };
96 
97 #endif
electrons_cff.bool
bool
Definition: electrons_cff.py:393
funct::false
false
Definition: Factorize.h:29
SimTracer::update
void update(const DDDWorld *) override
This routine will be called when the appropriate signal arrives.
Definition: SimTracer.h:66
DDDWorld
Definition: DDDWorld.h:14
gather_cfg.cout
cout
Definition: gather_cfg.py:144
pos
Definition: PixelAliasList.h:18
watchdog.const
const
Definition: watchdog.py:83
SimTracer::m_verbose
bool m_verbose
Definition: SimTracer.h:94
EndOfTrack
Definition: EndOfTrack.h:6
Observer.h
SimWatcher.h
UPDATE
#define UPDATE(type)
Definition: SimTracer.h:45
BeginOfTrack
Definition: BeginOfTrack.h:6
BeginOfJob
Definition: BeginOfJob.h:8
EndOfEvent
Definition: EndOfEvent.h:6
SimTracer
Definition: SimTracer.h:47
edm::ParameterSet
Definition: ParameterSet.h:47
BeginOfEvent
Definition: BeginOfEvent.h:6
BeginOfRun
Definition: BeginOfRun.h:6
OBSERVES
#define OBSERVES(type)
Definition: SimTracer.h:42
EndOfRun
Definition: EndOfRun.h:6
SimWatcher
Definition: SimWatcher.h:33
SimTracer::SimTracer
SimTracer(const edm::ParameterSet &pSet)
Definition: SimTracer.h:58
ParameterSet.h