CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MixCollectionValidation.h
Go to the documentation of this file.
1 #ifndef MixCollectionValidation_H
2 #define MixCollectionValidation_H
3 
4 // system include files
7 
10 
12 
15 
18 
21 
22 //DQM services for histogram
26 
28 
29 #include <string>
30 
31 //
32 // class declaration
33 //
34 
36 public:
39 
40  void beginJob();
41  void endJob();
42 
43  virtual void analyze(const edm::Event&, const edm::EventSetup&);
44 
45 private:
46 
47  template<class T1, class T2> void fillMultiplicity(T1 & theItr_, T2 & theColl_, MonitorElement * theProfile_);
48 
49  template<class T1, class T2> void fillGenParticleMulti(T1 & theItr_, T2 & theColl_, MonitorElement * theProfile_);
50 
51  template<class T1, class T2> void fillSimHitTime(T1 & theItr_, T2 & theColl_, MonitorElement * theProfile_);
52 
53  template<class T1, class T2> 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 
85 
86  std::vector<std::string> names_;
87  std::vector<edm::InputTag> HepMCProductTags_;
88  std::vector<edm::InputTag> SimTrackTags_;
89  std::vector<edm::InputTag> SimVertexTags_;
90  std::vector<edm::InputTag> PSimHitTags_;
91  std::vector<edm::InputTag> PCaloHitTags_;
92 
93  int nbin_;
94 
95 };
96 
97 #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 &)
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_
virtual void analyze(const edm::Event &, const edm::EventSetup &)
std::vector< std::string > names_
void fillGenParticleMulti(T1 &theItr_, T2 &theColl_, MonitorElement *theProfile_)