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:
42 
44 
45  template<class T1, class T2> void fillMultiplicity(T1 & theItr_, T2 & theColl_, MonitorElement * theProfile_);
46 
47  template<class T1, class T2> void fillGenParticleMulti(T1 & theItr_, T2 & theColl_, MonitorElement * theProfile_);
48 
49  template<class T1, class T2> void fillSimHitTime(T1 & theItr_, T2 & theColl_, MonitorElement * theProfile_);
50 
51  template<class T1, class T2> void fillCaloHitTime(T1 & theItr_, T2 & theColl_, MonitorElement * theProfile_);
52 
53  /* N.B. I see vector<InputTag> as private members of this class, but
54  in the corresponding C++ only the first element, if present, is
55  used to get products from the event. Hence I did implement a
56  single Token for each kind of objects, not a vector of
57  Tokens. For all but PSimHitTags_ and PCaloHitTags_, which have a
58  corresponding vector of Tokens. */
59 
63  std::vector< edm::EDGetTokenT<CrossingFrame<PSimHit> > > crossingFrame_PSimHit_Tokens_;
64  std::vector< edm::EDGetTokenT<CrossingFrame<PCaloHit> > > crossingFrame_PCaloHit_Tokens_;
65 
67  int minbunch_;
68  int maxbunch_;
69 
70  bool verbose_;
71 
75 
76  std::map<std::string,MonitorElement *> SimHitNrmap_;
77  std::map<std::string,MonitorElement *> SimHitTimemap_;
78 
79  std::map<std::string,MonitorElement *> CaloHitNrmap_;
80  std::map<std::string,MonitorElement *> CaloHitTimemap_;
81 
82  std::vector<edm::InputTag> HepMCProductTags_;
83  std::vector<edm::InputTag> SimTrackTags_;
84  std::vector<edm::InputTag> SimVertexTags_;
85  std::vector<edm::InputTag> PSimHitTags_;
86  std::vector<edm::InputTag> PCaloHitTags_;
87 
88  int nbin_;
89 
90 };
91 
92 #endif
std::map< std::string, MonitorElement * > CaloHitNrmap_
std::vector< edm::EDGetTokenT< CrossingFrame< PCaloHit > > > crossingFrame_PCaloHit_Tokens_
std::vector< edm::InputTag > HepMCProductTags_
MixCollectionValidation(const edm::ParameterSet &)
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
std::vector< edm::EDGetTokenT< CrossingFrame< PSimHit > > > crossingFrame_PSimHit_Tokens_
std::map< std::string, MonitorElement * > SimHitTimemap_
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_
std::map< std::string, MonitorElement * > SimHitNrmap_
void fillSimHitTime(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_)
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_
std::map< std::string, MonitorElement * > CaloHitTimemap_
Definition: Run.h:43
void analyze(const edm::Event &, const edm::EventSetup &) override
void fillGenParticleMulti(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_)