CMS 3D CMS Logo

StoreSecondary.h
Go to the documentation of this file.
1 #ifndef SimG4Core_CheckSecondary_StoreSecondary_H
2 #define SimG4Core_CheckSecondary_StoreSecondary_H
3 
8 
9 #include <iostream>
10 #include <memory>
11 #include <string>
12 #include <vector>
13 
14 class G4Step;
15 class BeginOfEvent;
16 class BeginOfTrack;
17 class TreatSecondary;
18 
19 class StoreSecondary : public SimProducer,
20  public Observer<const BeginOfEvent *>,
21  public Observer<const BeginOfTrack *>,
22  public Observer<const G4Step *> {
23 public:
25  ~StoreSecondary() override;
26 
27  void produce(edm::Event &, const edm::EventSetup &) override;
28 
29 private:
30  StoreSecondary(const StoreSecondary &) = delete; // stop default
31  const StoreSecondary &operator=(const StoreSecondary &) = delete;
32 
33  // observer classes
34  void update(const BeginOfEvent *evt) override;
35  void update(const BeginOfTrack *trk) override;
36  void update(const G4Step *step) override;
37 
38 private:
40  int nHad;
41  bool storeIt;
42  std::vector<math::XYZTLorentzVector> secondaries;
43  std::vector<int> nsecs;
44  std::vector<std::string> procs;
46 };
47 
48 #endif
~StoreSecondary() override
std::vector< int > nsecs
void update(const BeginOfEvent *evt) override
This routine will be called when the appropriate signal arrives.
StoreSecondary(const edm::ParameterSet &p)
std::vector< math::XYZTLorentzVector > secondaries
const StoreSecondary & operator=(const StoreSecondary &)=delete
std::vector< std::string > procs
TreatSecondary * treatSecondary
step
Definition: StallMonitor.cc:94
void produce(edm::Event &, const edm::EventSetup &) override