CMS 3D CMS Logo

MixCollectionValidation.h
Go to the documentation of this file.
1 #ifndef MixCollectionValidation_H
2 #define MixCollectionValidation_H
3 
4 // system include files
6 
9 
13 
16 
19 
22 
23 // DQM services for histogram
27 
28 #include <string>
29 
30 //
31 // class declaration
32 //
33 
35 public:
37  ~MixCollectionValidation() override;
38  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
39  void analyze(const edm::Event &, const edm::EventSetup &) override;
40 
41 private:
43 
44  template <class T1, class T2>
45  void fillMultiplicity(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_);
46 
47  template <class T1, class T2>
48  void fillGenParticleMulti(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_);
49 
50  template <class T1, class T2>
51  void fillSimHitTime(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_);
52 
53  template <class T1, class T2>
54  void fillCaloHitTime(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_);
55 
56  /* N.B. I see vector<InputTag> as private members of this class, but
57  in the corresponding C++ only the first element, if present, is
58  used to get products from the event. Hence I did implement a
59  single Token for each kind of objects, not a vector of
60  Tokens. For all but PSimHitTags_ and PCaloHitTags_, which have a
61  corresponding vector of Tokens. */
62 
66  std::vector<edm::EDGetTokenT<CrossingFrame<PSimHit>>> crossingFrame_PSimHit_Tokens_;
67  std::vector<edm::EDGetTokenT<CrossingFrame<PCaloHit>>> crossingFrame_PCaloHit_Tokens_;
68 
70  int minbunch_;
71  int maxbunch_;
72 
73  bool verbose_;
74 
78 
79  std::map<std::string, MonitorElement *> SimHitNrmap_;
80  std::map<std::string, MonitorElement *> SimHitTimemap_;
81 
82  std::map<std::string, MonitorElement *> CaloHitNrmap_;
83  std::map<std::string, MonitorElement *> CaloHitTimemap_;
84 
85  std::vector<edm::InputTag> HepMCProductTags_;
86  std::vector<edm::InputTag> SimTrackTags_;
87  std::vector<edm::InputTag> SimVertexTags_;
88  std::vector<edm::InputTag> PSimHitTags_;
89  std::vector<edm::InputTag> PCaloHitTags_;
90 
91  int nbin_;
92 };
93 
94 #endif
std::map< std::string, MonitorElement * > SimHitNrmap_
std::vector< edm::EDGetTokenT< CrossingFrame< PSimHit > > > crossingFrame_PSimHit_Tokens_
std::map< std::string, MonitorElement * > CaloHitTimemap_
std::vector< edm::InputTag > HepMCProductTags_
MixCollectionValidation(const edm::ParameterSet &)
std::vector< edm::EDGetTokenT< CrossingFrame< PCaloHit > > > crossingFrame_PCaloHit_Tokens_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
std::map< std::string, MonitorElement * > CaloHitNrmap_
void fillCaloHitTime(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_)
edm::EDGetTokenT< CrossingFrame< SimVertex > > crossingFrame_SimVtx_Token_
void fillMultiplicity(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_)
std::vector< edm::InputTag > PSimHitTags_
void fillSimHitTime(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_)
std::map< std::string, MonitorElement * > SimHitTimemap_
edm::EDGetTokenT< CrossingFrame< SimTrack > > crossingFrame_SimTr_Token_
std::vector< edm::InputTag > PCaloHitTags_
std::vector< edm::InputTag > SimTrackTags_
edm::EDGetTokenT< CrossingFrame< edm::HepMCProduct > > crossingFrame_Hep_Token_
std::vector< edm::InputTag > SimVertexTags_
Definition: Run.h:45
void analyze(const edm::Event &, const edm::EventSetup &) override
void fillGenParticleMulti(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_)