CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EVTColContainer.cc
Go to the documentation of this file.
1 #ifndef HLTRIGGEROFFLINE_EXOTICA_EVTCOLCONTAINER_CC
2 #define HLTRIGGEROFFLINE_EXOTICA_EVTCOLCONTAINER_CC
3 
29 
30 #include<vector>
31 #include<map>
32 
37  enum {
38  ELEC = 11,
39  MUON = 13,
40  MUONTRACK = 130000, //RY
41  PFTAU = 15,
42  PHOTON = 22,
43  PFMET = 39,
44  PFJET = 211,
45  CALOJET = 111, //ND
47  };
48 
52  const std::vector<reco::Muon> * muons;
53  const std::vector<reco::Track> * muonTracks;
54  const std::vector<reco::GsfElectron> * electrons;
55  const std::vector<reco::Photon> * photons;
56  const std::vector<reco::PFMET> * pfMETs;
57  const std::vector<reco::PFTau> * pfTaus;
58  const std::vector<reco::PFJet> * pfJets;
59  const std::vector<reco::CaloJet>* caloJets;
62  nOfCollections(6),
63  nInitialized(0),
64  genParticles(0),
65  muons(0),
66  muonTracks(0),
67  electrons(0),
68  photons(0),
69  pfMETs(0),
70  pfTaus(0),
71  pfJets(0),
72  caloJets(0),
74  {
75  }
77  bool isAllInit()
78  {
79  return (nInitialized == nOfCollections);
80  }
81 
82  bool isCommonInit()
83  {
84  return false;
85  }
86 
88  void reset()
89  {
90  nInitialized = 0;
91  genParticles = 0;
92  muons = 0;
93  muonTracks = 0;
94  electrons = 0;
95  photons = 0;
96  pfMETs = 0;
97  pfTaus = 0;
98  pfJets = 0;
99  caloJets = 0;
100  triggerResults = 0;
101  }
102 
104  void set(const reco::MuonCollection * v)
105  {
106  muons = v;
107  ++nInitialized;
108  }
110  {
111  muonTracks = v;
112  ++nInitialized;
113  }
115  {
116  electrons = v;
117  ++nInitialized;
118  }
120  {
121  photons = v;
122  ++nInitialized;
123  }
125  {
126  pfMETs = v;
127  ++nInitialized;
128  }
130  {
131  pfTaus = v;
132  ++nInitialized;
133  }
135  {
136  pfJets = v;
137  ++nInitialized;
138  }
140  {
141  caloJets = v;
142  ++nInitialized;
143  }
144 
146  const unsigned int getSize(const unsigned int & objtype) const
147  {
148  unsigned int size = 0;
149  if (objtype == EVTColContainer::MUON && muons != 0) {
150  size = muons->size();
151  } else if (objtype == EVTColContainer::MUONTRACK && muonTracks != 0) {
152  size = muonTracks->size();
153  } else if (objtype == EVTColContainer::ELEC && electrons != 0) {
154  size = electrons->size();
155  } else if (objtype == EVTColContainer::PHOTON && photons != 0) {
156  size = photons->size();
157  } else if (objtype == EVTColContainer::PFMET && pfMETs != 0) {
158  size = pfMETs->size();
159  } else if (objtype == EVTColContainer::PFTAU && pfTaus != 0) {
160  size = pfTaus->size();
161  } else if (objtype == EVTColContainer::PFJET && pfJets != 0) {
162  size = pfJets->size();
163  } else if (objtype == EVTColContainer::CALOJET && caloJets != 0) {
164  size = caloJets->size();
165  }
166 
167  return size;
168  }
169 
171  const static std::string getTypeString(const unsigned int & objtype)
172  {
173  std::string objTypestr;
174 
175  if (objtype == EVTColContainer::MUON) {
176  objTypestr = "Mu";
177  } else if (objtype == EVTColContainer::MUONTRACK) {
178  objTypestr = "refittedStandAloneMuons";
179  } else if (objtype == EVTColContainer::ELEC) {
180  objTypestr = "Ele";
181  } else if (objtype == EVTColContainer::PHOTON) {
182  objTypestr = "Photon";
183  } else if (objtype == EVTColContainer::PFMET) {
184  objTypestr = "PFMET";
185  } else if (objtype == EVTColContainer::PFTAU) {
186  objTypestr = "PFTau";
187  } else if (objtype == EVTColContainer::PFJET) {
188  objTypestr = "PFJet";
189  } else if (objtype == EVTColContainer::CALOJET) {
190  objTypestr = "CaloJet";
191  } else {
192  edm::LogError("ExoticaValidations") << "EVTColContainer::getTypeString, "
193  << "NOT Implemented error (object type id='" << objtype << "')" << std::endl;;
194  }
195 
196  return objTypestr;
197  }
198 };
199 #endif
const std::vector< reco::Muon > * muons
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
const std::vector< reco::PFJet > * pfJets
std::vector< PFTau > PFTauCollection
collection of PFTau objects
Definition: PFTauFwd.h:9
void set(const reco::TrackCollection *v)
void set(const reco::GsfElectronCollection *v)
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:13
const std::vector< reco::CaloJet > * caloJets
const reco::GenParticleCollection * genParticles
container with all the objects needed
const unsigned int getSize(const unsigned int &objtype) const
Get size of collections.
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
const std::vector< reco::PFTau > * pfTaus
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
void set(const reco::PFTauCollection *v)
void set(const reco::MuonCollection *v)
Setter: multiple overloaded function.
const std::vector< reco::Photon > * photons
void reset()
Reset: clear all collections.
void set(const reco::PFMETCollection *v)
const std::vector< reco::Track > * muonTracks
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
const std::vector< reco::GsfElectron > * electrons
void set(const reco::PFJetCollection *v)
void set(const reco::PhotonCollection *v)
std::vector< PFJet > PFJetCollection
collection of PFJet objects
std::vector< reco::PFMET > PFMETCollection
collection of PFMET objects
void set(const reco::CaloJetCollection *v)
const std::vector< reco::PFMET > * pfMETs
static const std::string getTypeString(const unsigned int &objtype)
Tranform types into strings.
const edm::TriggerResults * triggerResults
tuple size
Write out results.
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects
Computes the MET from a collection of PFCandidates. HF missing!
Definition: PFMET.h:30