CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
26 
27 #include <string>
28 
29 //
30 // class declaration
31 //
32 
34 public:
36  ~MixCollectionValidation() override;
37  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
38  void analyze(const edm::Event &, const edm::EventSetup &) override;
39 
40 private:
42 
43  template <class T1, class T2>
44  void fillMultiplicity(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_);
45 
46  template <class T1, class T2>
47  void fillGenParticleMulti(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_);
48 
49  template <class T1, class T2>
50  void fillSimHitTime(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_);
51 
52  template <class T1, class T2>
53  void fillCaloHitTime(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_);
54 
55  /* N.B. I see vector<InputTag> as private members of this class, but
56  in the corresponding C++ only the first element, if present, is
57  used to get products from the event. Hence I did implement a
58  single Token for each kind of objects, not a vector of
59  Tokens. For all but PSimHitTags_ and PCaloHitTags_, which have a
60  corresponding vector of Tokens. */
61 
65  std::vector<edm::EDGetTokenT<CrossingFrame<PSimHit>>> crossingFrame_PSimHit_Tokens_;
66  std::vector<edm::EDGetTokenT<CrossingFrame<PCaloHit>>> crossingFrame_PCaloHit_Tokens_;
67 
69  int minbunch_;
70  int maxbunch_;
71 
72  bool verbose_;
73 
77 
78  std::map<std::string, MonitorElement *> SimHitNrmap_;
79  std::map<std::string, MonitorElement *> SimHitTimemap_;
80 
81  std::map<std::string, MonitorElement *> CaloHitNrmap_;
82  std::map<std::string, MonitorElement *> CaloHitTimemap_;
83 
84  std::vector<edm::InputTag> HepMCProductTags_;
85  std::vector<edm::InputTag> SimTrackTags_;
86  std::vector<edm::InputTag> SimVertexTags_;
87  std::vector<edm::InputTag> PSimHitTags_;
88  std::vector<edm::InputTag> PCaloHitTags_;
89 
90  int nbin_;
91 };
92 
93 #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_)