CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TriggerEventWithRefs.h
Go to the documentation of this file.
1 #ifndef HLTReco_TriggerEventWithRefs_h
2 #define HLTReco_TriggerEventWithRefs_h
3 
19 #include <string>
20 #include <vector>
21 
22 namespace trigger {
23 
26 
28  public:
31  public:
64 
67  : filterTag_(),
68  photons_(0),
69  electrons_(0),
70  muons_(0),
71  jets_(0),
72  composites_(0),
73  basemets_(0),
74  calomets_(0),
75  pixtracks_(0),
76  l1em_(0),
77  l1muon_(0),
78  l1jet_(0),
79  l1etmiss_(0),
80  l1hfrings_(0),
81  pfjets_(0),
82  pftaus_(0),
83  pfmets_(0),
84  l1tmuon_(0),
85  l1tegamma_(0),
86  l1tjet_(0),
87  l1ttkmuon_(0),
88  l1ttkele_(0),
89  l1ttkem_(0),
90  l1tpfjet_(0),
91  l1tpftau_(0),
92  l1thpspftau_(0),
93  l1tpftrack_(0),
94  l1ttau_(0),
95  l1tetsum_(0) {
96  filterTag_ = edm::InputTag().encode();
97  }
99  size_type np,
100  size_type ne,
101  size_type nm,
102  size_type nj,
103  size_type nc,
104  size_type nB,
105  size_type nC,
106  size_type nt,
107  size_type l1em,
108  size_type l1muon,
109  size_type l1jet,
110  size_type l1etmiss,
111  size_type l1hfrings,
112  size_type pfjets,
113  size_type pftaus,
114  size_type pfmets,
115  size_type l1tmuon,
116  size_type l1tegamma,
117  size_type l1tjet,
118  size_type l1ttkmuon,
119  size_type l1ttkele,
120  size_type l1ttkem,
121  size_type l1tpfjet,
122  size_type l1tpftau,
123  size_type l1thpspftau,
124  size_type l1tpftrack,
125  size_type l1ttau,
126  size_type l1tetsum)
127  : filterTag_(filterTag.encode()),
128  photons_(np),
129  electrons_(ne),
130  muons_(nm),
131  jets_(nj),
132  composites_(nc),
133  basemets_(nB),
134  calomets_(nC),
135  pixtracks_(nt),
136  l1em_(l1em),
137  l1muon_(l1muon),
138  l1jet_(l1jet),
139  l1etmiss_(l1etmiss),
140  l1hfrings_(l1hfrings),
141  pfjets_(pfjets),
142  pftaus_(pftaus),
143  pfmets_(pfmets),
144  l1tmuon_(l1tmuon),
145  l1tegamma_(l1tegamma),
146  l1tjet_(l1tjet),
147  l1ttkmuon_(l1ttkmuon),
148  l1ttkele_(l1ttkele),
149  l1ttkem_(l1ttkem),
150  l1tpfjet_(l1tpfjet),
151  l1tpftau_(l1tpftau),
152  l1thpspftau_(l1thpspftau),
153  l1tpftrack_(l1tpftrack),
154  l1ttau_(l1ttau),
155  l1tetsum_(l1tetsum) {}
156  };
157 
159  private:
163  std::vector<TriggerFilterObject> filterObjects_;
164 
166  public:
170  : TriggerRefsCollections(), usedProcessName_(usedProcessName), filterObjects_() {
171  filterObjects_.reserve(n);
172  }
173 
176  filterObjects_.push_back(
177 
178  TriggerFilterObject(filterTag,
179  addObjects(tfowr.photonIds(), tfowr.photonRefs()),
180  addObjects(tfowr.electronIds(), tfowr.electronRefs()),
181  addObjects(tfowr.muonIds(), tfowr.muonRefs()),
182  addObjects(tfowr.jetIds(), tfowr.jetRefs()),
183  addObjects(tfowr.compositeIds(), tfowr.compositeRefs()),
184  addObjects(tfowr.basemetIds(), tfowr.basemetRefs()),
185  addObjects(tfowr.calometIds(), tfowr.calometRefs()),
186  addObjects(tfowr.pixtrackIds(), tfowr.pixtrackRefs()),
187  addObjects(tfowr.l1emIds(), tfowr.l1emRefs()),
188  addObjects(tfowr.l1muonIds(), tfowr.l1muonRefs()),
189  addObjects(tfowr.l1jetIds(), tfowr.l1jetRefs()),
190  addObjects(tfowr.l1etmissIds(), tfowr.l1etmissRefs()),
191  addObjects(tfowr.l1hfringsIds(), tfowr.l1hfringsRefs()),
192  addObjects(tfowr.pfjetIds(), tfowr.pfjetRefs()),
193  addObjects(tfowr.pftauIds(), tfowr.pftauRefs()),
194  addObjects(tfowr.pfmetIds(), tfowr.pfmetRefs()),
195  addObjects(tfowr.l1tmuonIds(), tfowr.l1tmuonRefs()),
196  addObjects(tfowr.l1tegammaIds(), tfowr.l1tegammaRefs()),
197  addObjects(tfowr.l1tjetIds(), tfowr.l1tjetRefs()),
198  addObjects(tfowr.l1ttkmuonIds(), tfowr.l1ttkmuonRefs()),
199  addObjects(tfowr.l1ttkeleIds(), tfowr.l1ttkeleRefs()),
200  addObjects(tfowr.l1ttkemIds(), tfowr.l1ttkemRefs()),
201  addObjects(tfowr.l1tpfjetIds(), tfowr.l1tpfjetRefs()),
202  addObjects(tfowr.l1tpftauIds(), tfowr.l1tpftauRefs()),
203  addObjects(tfowr.l1thpspftauIds(), tfowr.l1thpspftauRefs()),
204  addObjects(tfowr.l1tpftrackIds(), tfowr.l1tpftrackRefs()),
205  addObjects(tfowr.l1ttauIds(), tfowr.l1ttauRefs()),
206  addObjects(tfowr.l1tetsumIds(), tfowr.l1tetsumRefs()))
207 
208  );
209  }
210 
212  const std::string& usedProcessName() const { return usedProcessName_; }
213 
215  size_type size() const { return filterObjects_.size(); }
216 
219  return edm::InputTag(filterObjects_.at(filterIndex).filterTag_);
220  }
221 
224  const std::string encodedFilterTag(filterTag.encode());
225  const size_type n(filterObjects_.size());
226  for (size_type i = 0; i != n; ++i) {
227  if (encodedFilterTag == filterObjects_[i].filterTag_) {
228  return i;
229  }
230  }
231  return n;
232  }
233 
235 
236  std::pair<size_type, size_type> photonSlice(size_type filter) const {
237  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).photons_);
238  const size_type end(filterObjects_.at(filter).photons_);
239  return std::pair<size_type, size_type>(begin, end);
240  }
241 
242  std::pair<size_type, size_type> electronSlice(size_type filter) const {
243  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).electrons_);
244  const size_type end(filterObjects_.at(filter).electrons_);
245  return std::pair<size_type, size_type>(begin, end);
246  }
247 
248  std::pair<size_type, size_type> muonSlice(size_type filter) const {
249  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).muons_);
250  const size_type end(filterObjects_.at(filter).muons_);
251  return std::pair<size_type, size_type>(begin, end);
252  }
253 
254  std::pair<size_type, size_type> jetSlice(size_type filter) const {
255  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).jets_);
256  const size_type end(filterObjects_.at(filter).jets_);
257  return std::pair<size_type, size_type>(begin, end);
258  }
259 
260  std::pair<size_type, size_type> compositeSlice(size_type filter) const {
261  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).composites_);
262  const size_type end(filterObjects_.at(filter).composites_);
263  return std::pair<size_type, size_type>(begin, end);
264  }
265 
266  std::pair<size_type, size_type> basemetSlice(size_type filter) const {
267  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).basemets_);
268  const size_type end(filterObjects_.at(filter).basemets_);
269  return std::pair<size_type, size_type>(begin, end);
270  }
271 
272  std::pair<size_type, size_type> calometSlice(size_type filter) const {
273  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).calomets_);
274  const size_type end(filterObjects_.at(filter).calomets_);
275  return std::pair<size_type, size_type>(begin, end);
276  }
277 
278  std::pair<size_type, size_type> pixtrackSlice(size_type filter) const {
279  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).pixtracks_);
280  const size_type end(filterObjects_.at(filter).pixtracks_);
281  return std::pair<size_type, size_type>(begin, end);
282  }
283 
284  std::pair<size_type, size_type> l1emSlice(size_type filter) const {
285  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1em_);
286  const size_type end(filterObjects_.at(filter).l1em_);
287  return std::pair<size_type, size_type>(begin, end);
288  }
289 
290  std::pair<size_type, size_type> l1muonSlice(size_type filter) const {
291  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1muon_);
292  const size_type end(filterObjects_.at(filter).l1muon_);
293  return std::pair<size_type, size_type>(begin, end);
294  }
295 
296  std::pair<size_type, size_type> l1jetSlice(size_type filter) const {
297  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1jet_);
298  const size_type end(filterObjects_.at(filter).l1jet_);
299  return std::pair<size_type, size_type>(begin, end);
300  }
301 
302  std::pair<size_type, size_type> l1etmissSlice(size_type filter) const {
303  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1etmiss_);
304  const size_type end(filterObjects_.at(filter).l1etmiss_);
305  return std::pair<size_type, size_type>(begin, end);
306  }
307 
308  std::pair<size_type, size_type> l1hfringsSlice(size_type filter) const {
309  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1hfrings_);
310  const size_type end(filterObjects_.at(filter).l1hfrings_);
311  return std::pair<size_type, size_type>(begin, end);
312  }
313 
314  std::pair<size_type, size_type> pfjetSlice(size_type filter) const {
315  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).pfjets_);
316  const size_type end(filterObjects_.at(filter).pfjets_);
317  return std::pair<size_type, size_type>(begin, end);
318  }
319 
320  std::pair<size_type, size_type> pftauSlice(size_type filter) const {
321  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).pftaus_);
322  const size_type end(filterObjects_.at(filter).pftaus_);
323  return std::pair<size_type, size_type>(begin, end);
324  }
325 
326  std::pair<size_type, size_type> pfmetSlice(size_type filter) const {
327  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).pfmets_);
328  const size_type end(filterObjects_.at(filter).pfmets_);
329  return std::pair<size_type, size_type>(begin, end);
330  }
331 
332  std::pair<size_type, size_type> l1tmuonSlice(size_type filter) const {
333  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1tmuon_);
334  const size_type end(filterObjects_.at(filter).l1tmuon_);
335  return std::pair<size_type, size_type>(begin, end);
336  }
337  std::pair<size_type, size_type> l1tegammaSlice(size_type filter) const {
338  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1tegamma_);
339  const size_type end(filterObjects_.at(filter).l1tegamma_);
340  return std::pair<size_type, size_type>(begin, end);
341  }
342  std::pair<size_type, size_type> l1tjetSlice(size_type filter) const {
343  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1tjet_);
344  const size_type end(filterObjects_.at(filter).l1tjet_);
345  return std::pair<size_type, size_type>(begin, end);
346  }
347 
348  /* Phase-2 */
349  std::pair<size_type, size_type> l1ttkmuonSlice(size_type filter) const {
350  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1ttkmuon_);
351  const size_type end(filterObjects_.at(filter).l1ttkmuon_);
352  return std::pair<size_type, size_type>(begin, end);
353  }
354  std::pair<size_type, size_type> l1ttkeleSlice(size_type filter) const {
355  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1ttkele_);
356  const size_type end(filterObjects_.at(filter).l1ttkele_);
357  return std::pair<size_type, size_type>(begin, end);
358  }
359  std::pair<size_type, size_type> l1ttkemSlice(size_type filter) const {
360  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1ttkem_);
361  const size_type end(filterObjects_.at(filter).l1ttkem_);
362  return std::pair<size_type, size_type>(begin, end);
363  }
364  std::pair<size_type, size_type> l1tpfjetSlice(size_type filter) const {
365  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1tpfjet_);
366  const size_type end(filterObjects_.at(filter).l1tpfjet_);
367  return std::pair<size_type, size_type>(begin, end);
368  }
369  std::pair<size_type, size_type> l1tpftauSlice(size_type filter) const {
370  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1tpftau_);
371  const size_type end(filterObjects_.at(filter).l1tpftau_);
372  return std::pair<size_type, size_type>(begin, end);
373  }
374  std::pair<size_type, size_type> l1thpspftauSlice(size_type filter) const {
375  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1thpspftau_);
376  const size_type end(filterObjects_.at(filter).l1thpspftau_);
377  return std::pair<size_type, size_type>(begin, end);
378  }
379  std::pair<size_type, size_type> l1tpftrackSlice(size_type filter) const {
380  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1tpftrack_);
381  const size_type end(filterObjects_.at(filter).l1tpftrack_);
382  return std::pair<size_type, size_type>(begin, end);
383  }
384 
385  std::pair<size_type, size_type> l1ttauSlice(size_type filter) const {
386  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1ttau_);
387  const size_type end(filterObjects_.at(filter).l1ttau_);
388  return std::pair<size_type, size_type>(begin, end);
389  }
390 
391  std::pair<size_type, size_type> l1tetsumSlice(size_type filter) const {
392  const size_type begin(filter == 0 ? 0 : filterObjects_.at(filter - 1).l1tetsum_);
393  const size_type end(filterObjects_.at(filter).l1tetsum_);
394  return std::pair<size_type, size_type>(begin, end);
395  }
396 
398 
400  const size_type begin(photonSlice(filter).first);
401  const size_type end(photonSlice(filter).second);
402  TriggerRefsCollections::getObjects(ids, photons, begin, end);
403  }
404  void getObjects(size_type filter, int id, VRphoton& photons) const {
405  const size_type begin(photonSlice(filter).first);
406  const size_type end(photonSlice(filter).second);
407  TriggerRefsCollections::getObjects(id, photons, begin, end);
408  }
409 
411  const size_type begin(electronSlice(filter).first);
412  const size_type end(electronSlice(filter).second);
413  TriggerRefsCollections::getObjects(ids, electrons, begin, end);
414  }
416  const size_type begin(electronSlice(filter).first);
417  const size_type end(electronSlice(filter).second);
418  TriggerRefsCollections::getObjects(id, electrons, begin, end);
419  }
420 
421  void getObjects(size_type filter, Vids& ids, VRmuon& muons) const {
422  const size_type begin(muonSlice(filter).first);
423  const size_type end(muonSlice(filter).second);
424  TriggerRefsCollections::getObjects(ids, muons, begin, end);
425  }
426  void getObjects(size_type filter, int id, VRmuon& muons) const {
427  const size_type begin(muonSlice(filter).first);
428  const size_type end(muonSlice(filter).second);
429  TriggerRefsCollections::getObjects(id, muons, begin, end);
430  }
431 
432  void getObjects(size_type filter, Vids& ids, VRjet& jets) const {
433  const size_type begin(jetSlice(filter).first);
434  const size_type end(jetSlice(filter).second);
435  TriggerRefsCollections::getObjects(ids, jets, begin, end);
436  }
437  void getObjects(size_type filter, int id, VRjet& jets) const {
438  const size_type begin(jetSlice(filter).first);
439  const size_type end(jetSlice(filter).second);
440  TriggerRefsCollections::getObjects(id, jets, begin, end);
441  }
442 
443  void getObjects(size_type filter, Vids& ids, VRcomposite& composites) const {
444  const size_type begin(compositeSlice(filter).first);
445  const size_type end(compositeSlice(filter).second);
446  TriggerRefsCollections::getObjects(ids, composites, begin, end);
447  }
448  void getObjects(size_type filter, int id, VRcomposite& composites) const {
449  const size_type begin(compositeSlice(filter).first);
450  const size_type end(compositeSlice(filter).second);
451  TriggerRefsCollections::getObjects(id, composites, begin, end);
452  }
453 
454  void getObjects(size_type filter, Vids& ids, VRbasemet& basemets) const {
455  const size_type begin(basemetSlice(filter).first);
456  const size_type end(basemetSlice(filter).second);
457  TriggerRefsCollections::getObjects(ids, basemets, begin, end);
458  }
459  void getObjects(size_type filter, int id, VRbasemet& basemets) const {
460  const size_type begin(basemetSlice(filter).first);
461  const size_type end(basemetSlice(filter).second);
462  TriggerRefsCollections::getObjects(id, basemets, begin, end);
463  }
464 
465  void getObjects(size_type filter, Vids& ids, VRcalomet& calomets) const {
466  const size_type begin(calometSlice(filter).first);
467  const size_type end(calometSlice(filter).second);
468  TriggerRefsCollections::getObjects(ids, calomets, begin, end);
469  }
470  void getObjects(size_type filter, int id, VRcalomet& calomets) const {
471  const size_type begin(calometSlice(filter).first);
472  const size_type end(calometSlice(filter).second);
473  TriggerRefsCollections::getObjects(id, calomets, begin, end);
474  }
475 
476  void getObjects(size_type filter, Vids& ids, VRpixtrack& pixtracks) const {
477  const size_type begin(pixtrackSlice(filter).first);
478  const size_type end(pixtrackSlice(filter).second);
479  TriggerRefsCollections::getObjects(ids, pixtracks, begin, end);
480  }
481  void getObjects(size_type filter, int id, VRpixtrack& pixtracks) const {
482  const size_type begin(pixtrackSlice(filter).first);
483  const size_type end(pixtrackSlice(filter).second);
484  TriggerRefsCollections::getObjects(id, pixtracks, begin, end);
485  }
486 
487  void getObjects(size_type filter, Vids& ids, VRl1em& l1em) const {
488  const size_type begin(l1emSlice(filter).first);
489  const size_type end(l1emSlice(filter).second);
490  TriggerRefsCollections::getObjects(ids, l1em, begin, end);
491  }
492  void getObjects(size_type filter, int id, VRl1em& l1em) const {
493  const size_type begin(l1emSlice(filter).first);
494  const size_type end(l1emSlice(filter).second);
495  TriggerRefsCollections::getObjects(id, l1em, begin, end);
496  }
497 
498  void getObjects(size_type filter, Vids& ids, VRl1muon& l1muon) const {
499  const size_type begin(l1muonSlice(filter).first);
500  const size_type end(l1muonSlice(filter).second);
501  TriggerRefsCollections::getObjects(ids, l1muon, begin, end);
502  }
503  void getObjects(size_type filter, int id, VRl1muon& l1muon) const {
504  const size_type begin(l1muonSlice(filter).first);
505  const size_type end(l1muonSlice(filter).second);
506  TriggerRefsCollections::getObjects(id, l1muon, begin, end);
507  }
508 
509  void getObjects(size_type filter, Vids& ids, VRl1jet& l1jet) const {
510  const size_type begin(l1jetSlice(filter).first);
511  const size_type end(l1jetSlice(filter).second);
512  TriggerRefsCollections::getObjects(ids, l1jet, begin, end);
513  }
514  void getObjects(size_type filter, int id, VRl1jet& l1jet) const {
515  const size_type begin(l1jetSlice(filter).first);
516  const size_type end(l1jetSlice(filter).second);
517  TriggerRefsCollections::getObjects(id, l1jet, begin, end);
518  }
519 
520  void getObjects(size_type filter, Vids& ids, VRl1etmiss& l1etmiss) const {
521  const size_type begin(l1etmissSlice(filter).first);
522  const size_type end(l1etmissSlice(filter).second);
523  TriggerRefsCollections::getObjects(ids, l1etmiss, begin, end);
524  }
525  void getObjects(size_type filter, int id, VRl1etmiss& l1etmiss) const {
526  const size_type begin(l1etmissSlice(filter).first);
527  const size_type end(l1etmissSlice(filter).second);
528  TriggerRefsCollections::getObjects(id, l1etmiss, begin, end);
529  }
530 
531  void getObjects(size_type filter, Vids& ids, VRl1hfrings& l1hfrings) const {
532  const size_type begin(l1hfringsSlice(filter).first);
533  const size_type end(l1hfringsSlice(filter).second);
534  TriggerRefsCollections::getObjects(ids, l1hfrings, begin, end);
535  }
536  void getObjects(size_type filter, int id, VRl1hfrings& l1hfrings) const {
537  const size_type begin(l1hfringsSlice(filter).first);
538  const size_type end(l1hfringsSlice(filter).second);
539  TriggerRefsCollections::getObjects(id, l1hfrings, begin, end);
540  }
541 
542  void getObjects(size_type filter, Vids& ids, VRpfjet& pfjets) const {
543  const size_type begin(pfjetSlice(filter).first);
544  const size_type end(pfjetSlice(filter).second);
545  TriggerRefsCollections::getObjects(ids, pfjets, begin, end);
546  }
547  void getObjects(size_type filter, int id, VRpfjet& pfjets) const {
548  const size_type begin(pfjetSlice(filter).first);
549  const size_type end(pfjetSlice(filter).second);
550  TriggerRefsCollections::getObjects(id, pfjets, begin, end);
551  }
552 
553  void getObjects(size_type filter, Vids& ids, VRpftau& pftaus) const {
554  const size_type begin(pftauSlice(filter).first);
555  const size_type end(pftauSlice(filter).second);
556  TriggerRefsCollections::getObjects(ids, pftaus, begin, end);
557  }
558  void getObjects(size_type filter, int id, VRpftau& pftaus) const {
559  const size_type begin(pftauSlice(filter).first);
560  const size_type end(pftauSlice(filter).second);
561  TriggerRefsCollections::getObjects(id, pftaus, begin, end);
562  }
563 
564  void getObjects(size_type filter, Vids& ids, VRpfmet& pfmets) const {
565  const size_type begin(pfmetSlice(filter).first);
566  const size_type end(pfmetSlice(filter).second);
567  TriggerRefsCollections::getObjects(ids, pfmets, begin, end);
568  }
569  void getObjects(size_type filter, int id, VRpfmet& pfmets) const {
570  const size_type begin(pfmetSlice(filter).first);
571  const size_type end(pfmetSlice(filter).second);
572  TriggerRefsCollections::getObjects(id, pfmets, begin, end);
573  }
574 
575  void getObjects(size_type filter, Vids& ids, VRl1tmuon& l1tmuon) const {
576  const size_type begin(l1tmuonSlice(filter).first);
577  const size_type end(l1tmuonSlice(filter).second);
578  TriggerRefsCollections::getObjects(ids, l1tmuon, begin, end);
579  }
580  void getObjects(size_type filter, int id, VRl1tmuon& l1tmuon) const {
581  const size_type begin(l1tmuonSlice(filter).first);
582  const size_type end(l1tmuonSlice(filter).second);
583  TriggerRefsCollections::getObjects(id, l1tmuon, begin, end);
584  }
585 
586  void getObjects(size_type filter, Vids& ids, VRl1tegamma& l1tegamma) const {
587  const size_type begin(l1tegammaSlice(filter).first);
588  const size_type end(l1tegammaSlice(filter).second);
589  TriggerRefsCollections::getObjects(ids, l1tegamma, begin, end);
590  }
591  void getObjects(size_type filter, int id, VRl1tegamma& l1tegamma) const {
592  const size_type begin(l1tegammaSlice(filter).first);
593  const size_type end(l1tegammaSlice(filter).second);
594  TriggerRefsCollections::getObjects(id, l1tegamma, begin, end);
595  }
596 
597  void getObjects(size_type filter, Vids& ids, VRl1tjet& l1tjet) const {
598  const size_type begin(l1tjetSlice(filter).first);
599  const size_type end(l1tjetSlice(filter).second);
600  TriggerRefsCollections::getObjects(ids, l1tjet, begin, end);
601  }
602  void getObjects(size_type filter, int id, VRl1tjet& l1tjet) const {
603  const size_type begin(l1tjetSlice(filter).first);
604  const size_type end(l1tjetSlice(filter).second);
605  TriggerRefsCollections::getObjects(id, l1tjet, begin, end);
606  }
607 
608  /* Phase-2 */
609  void getObjects(size_type filter, Vids& ids, VRl1ttkmuon& l1ttkmuon) const {
610  const size_type begin(l1ttkmuonSlice(filter).first);
611  const size_type end(l1ttkmuonSlice(filter).second);
612  TriggerRefsCollections::getObjects(ids, l1ttkmuon, begin, end);
613  }
614  void getObjects(size_type filter, int id, VRl1ttkmuon& l1ttkmuon) const {
615  const size_type begin(l1ttkmuonSlice(filter).first);
616  const size_type end(l1ttkmuonSlice(filter).second);
617  TriggerRefsCollections::getObjects(id, l1ttkmuon, begin, end);
618  }
619 
620  void getObjects(size_type filter, Vids& ids, VRl1ttkele& l1ttkele) const {
621  const size_type begin(l1ttkeleSlice(filter).first);
622  const size_type end(l1ttkeleSlice(filter).second);
623  TriggerRefsCollections::getObjects(ids, l1ttkele, begin, end);
624  }
625  void getObjects(size_type filter, int id, VRl1ttkele& l1ttkele) const {
626  const size_type begin(l1ttkeleSlice(filter).first);
627  const size_type end(l1ttkeleSlice(filter).second);
628  TriggerRefsCollections::getObjects(id, l1ttkele, begin, end);
629  }
630 
631  void getObjects(size_type filter, Vids& ids, VRl1ttkem& l1ttkem) const {
632  const size_type begin(l1ttkemSlice(filter).first);
633  const size_type end(l1ttkemSlice(filter).second);
634  TriggerRefsCollections::getObjects(ids, l1ttkem, begin, end);
635  }
636  void getObjects(size_type filter, int id, VRl1ttkem& l1ttkem) const {
637  const size_type begin(l1ttkemSlice(filter).first);
638  const size_type end(l1ttkemSlice(filter).second);
639  TriggerRefsCollections::getObjects(id, l1ttkem, begin, end);
640  }
641 
642  void getObjects(size_type filter, Vids& ids, VRl1tpfjet& l1tpfjet) const {
643  const size_type begin(l1tpfjetSlice(filter).first);
644  const size_type end(l1tpfjetSlice(filter).second);
645  TriggerRefsCollections::getObjects(ids, l1tpfjet, begin, end);
646  }
647  void getObjects(size_type filter, int id, VRl1tpfjet& l1tpfjet) const {
648  const size_type begin(l1tpfjetSlice(filter).first);
649  const size_type end(l1tpfjetSlice(filter).second);
650  TriggerRefsCollections::getObjects(id, l1tpfjet, begin, end);
651  }
652 
653  void getObjects(size_type filter, Vids& ids, VRl1tpftau& l1tpftau) const {
654  const size_type begin(l1tpftauSlice(filter).first);
655  const size_type end(l1tpftauSlice(filter).second);
656  TriggerRefsCollections::getObjects(ids, l1tpftau, begin, end);
657  }
658  void getObjects(size_type filter, int id, VRl1tpftau& l1tpftau) const {
659  const size_type begin(l1tpftauSlice(filter).first);
660  const size_type end(l1tpftauSlice(filter).second);
661  TriggerRefsCollections::getObjects(id, l1tpftau, begin, end);
662  }
663 
664  void getObjects(size_type filter, Vids& ids, VRl1thpspftau& l1thpspftau) const {
665  const size_type begin(l1thpspftauSlice(filter).first);
666  const size_type end(l1thpspftauSlice(filter).second);
667  TriggerRefsCollections::getObjects(ids, l1thpspftau, begin, end);
668  }
669  void getObjects(size_type filter, int id, VRl1thpspftau& l1thpspftau) const {
670  const size_type begin(l1thpspftauSlice(filter).first);
671  const size_type end(l1thpspftauSlice(filter).second);
672  TriggerRefsCollections::getObjects(id, l1thpspftau, begin, end);
673  }
674 
675  void getObjects(size_type filter, Vids& ids, VRl1tpftrack& l1tpftrack) const {
676  const size_type begin(l1tpftrackSlice(filter).first);
677  const size_type end(l1tpftrackSlice(filter).second);
678  TriggerRefsCollections::getObjects(ids, l1tpftrack, begin, end);
679  }
680  void getObjects(size_type filter, int id, VRl1tpftrack& l1tpftrack) const {
681  const size_type begin(l1tpftrackSlice(filter).first);
682  const size_type end(l1tpftrackSlice(filter).second);
683  TriggerRefsCollections::getObjects(id, l1tpftrack, begin, end);
684  }
685 
686  void getObjects(size_type filter, Vids& ids, VRl1ttau& l1ttau) const {
687  const size_type begin(l1ttauSlice(filter).first);
688  const size_type end(l1ttauSlice(filter).second);
689  TriggerRefsCollections::getObjects(ids, l1ttau, begin, end);
690  }
691  void getObjects(size_type filter, int id, VRl1ttau& l1ttau) const {
692  const size_type begin(l1ttauSlice(filter).first);
693  const size_type end(l1ttauSlice(filter).second);
694  TriggerRefsCollections::getObjects(id, l1ttau, begin, end);
695  }
696 
697  void getObjects(size_type filter, Vids& ids, VRl1tetsum& l1tetsum) const {
698  const size_type begin(l1tetsumSlice(filter).first);
699  const size_type end(l1tetsumSlice(filter).second);
700  TriggerRefsCollections::getObjects(ids, l1tetsum, begin, end);
701  }
702  void getObjects(size_type filter, int id, VRl1tetsum& l1tetsum) const {
703  const size_type begin(l1tetsumSlice(filter).first);
704  const size_type end(l1tetsumSlice(filter).second);
705  TriggerRefsCollections::getObjects(id, l1tetsum, begin, end);
706  }
707  };
708 
709 } // namespace trigger
710 
711 #endif
const VRl1thpspftau & l1thpspftauRefs() const
void getObjects(size_type filter, Vids &ids, VRl1tpftau &l1tpftau) const
void getObjects(size_type filter, int id, VRelectron &electrons) const
void getObjects(size_type filter, Vids &ids, VRl1em &l1em) const
std::pair< size_type, size_type > l1jetSlice(size_type filter) const
const VRl1tpfjet & l1tpfjetRefs() const
size_type addObjects(const Vids &ids, const VRphoton &refs)
void getObjects(size_type filter, int id, VRpfjet &pfjets) const
void getObjects(size_type filter, Vids &ids, VRl1tpftrack &l1tpftrack) const
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
const VRl1tpftrack & l1tpftrackRefs() const
const VRl1ttkem & l1ttkemRefs() const
void getObjects(size_type filter, Vids &ids, VRl1jet &l1jet) const
std::vector< TriggerFilterObject > filterObjects_
the filters recorded here
void getObjects(size_type filter, int id, VRpftau &pftaus) const
std::pair< size_type, size_type > l1ttauSlice(size_type filter) const
const VRbasemet & basemetRefs() const
std::pair< size_type, size_type > l1tpftauSlice(size_type filter) const
std::pair< size_type, size_type > l1muonSlice(size_type filter) const
std::pair< size_type, size_type > l1thpspftauSlice(size_type filter) const
void addFilterObject(const edm::InputTag &filterTag, const TriggerFilterObjectWithRefs &tfowr)
setters - to build EDProduct
const VRcalomet & calometRefs() const
std::pair< size_type, size_type > l1tegammaSlice(size_type filter) const
const VRl1tpftau & l1tpftauRefs() const
void getObjects(size_type filter, Vids &ids, VRl1ttau &l1ttau) const
std::pair< size_type, size_type > l1etmissSlice(size_type filter) const
const VRl1tetsum & l1tetsumRefs() const
l1t::EGammaVectorRef VRl1tegamma
std::pair< size_type, size_type > l1ttkemSlice(size_type filter) const
void getObjects(size_type filter, Vids &ids, VRpfmet &pfmets) const
std::vector< reco::METRef > VRbasemet
void getObjects(size_type filter, Vids &ids, VRbasemet &basemets) const
void getObjects(size_type filter, int id, VRpfmet &pfmets) const
std::pair< size_type, size_type > jetSlice(size_type filter) const
void getObjects(size_type filter, int id, VRl1tjet &l1tjet) const
const std::string & usedProcessName() const
getters - for user access
l1t::TkMuonVectorRef VRl1ttkmuon
void getObjects(size_type filter, Vids &ids, VRjet &jets) const
const edm::InputTag filterTag(size_type filterIndex) const
tag from index
void getObjects(size_type filter, Vids &ids, VRl1tmuon &l1tmuon) const
l1t::JetVectorRef VRl1tjet
std::string usedProcessName_
data members
void getObjects(size_type filter, int id, VRl1ttkmuon &l1ttkmuon) const
uint16_t size_type
void getObjects(size_type filter, Vids &ids, VRl1ttkele &l1ttkele) const
std::string encode() const
Definition: InputTag.cc:159
std::pair< size_type, size_type > electronSlice(size_type filter) const
std::vector< l1extra::L1MuonParticleRef > VRl1muon
void getObjects(size_type filter, int id, VRl1tetsum &l1tetsum) const
std::pair< size_type, size_type > pixtrackSlice(size_type filter) const
void getObjects(size_type filter, int id, VRl1tegamma &l1tegamma) const
U second(std::pair< T, U > const &p)
void getObjects(size_type filter, Vids &ids, VRpftau &pftaus) const
const VRl1ttau & l1ttauRefs() const
std::vector< l1extra::L1HFRingsRef > VRl1hfrings
void getObjects(size_type filter, int id, VRl1etmiss &l1etmiss) const
void getObjects(size_type filter, int id, VRl1tmuon &l1tmuon) const
std::vector< reco::IsolatedPixelTrackCandidateRef > VRpixtrack
void getObjects(size_type filter, Vids &ids, VRmuon &muons) const
void getObjects(size_type filter, int id, VRl1ttkem &l1ttkem) const
std::pair< size_type, size_type > l1tmuonSlice(size_type filter) const
void getObjects(size_type filter, int id, VRbasemet &basemets) const
const VRl1muon & l1muonRefs() const
std::vector< l1extra::L1EtMissParticleRef > VRl1etmiss
void getObjects(size_type filter, Vids &ids, VRl1ttkem &l1ttkem) const
l1t::PFTrackVectorRef VRl1tpftrack
int np
Definition: AMPTWrapper.h:43
const VRl1tegamma & l1tegammaRefs() const
std::pair< size_type, size_type > l1tpftrackSlice(size_type filter) const
std::pair< size_type, size_type > l1emSlice(size_type filter) const
std::pair< size_type, size_type > photonSlice(size_type filter) const
slices of objects for a specific filter: [begin,end[
l1t::PFTauVectorRef VRl1tpftau
void getObjects(size_type filter, int id, VRcalomet &calomets) const
vector< PseudoJet > jets
const VRl1ttkmuon & l1ttkmuonRefs() const
void getObjects(size_type filter, int id, VRl1em &l1em) const
l1t::TkEmVectorRef VRl1ttkem
void getObjects(size_type filter, Vids &ids, VRl1muon &l1muon) const
const VRcomposite & compositeRefs() const
void getObjects(size_type filter, Vids &ids, VRcalomet &calomets) const
void getObjects(size_type filter, int id, VRl1hfrings &l1hfrings) const
std::pair< size_type, size_type > muonSlice(size_type filter) const
void getObjects(size_type filter, int id, VRl1tpfjet &l1tpfjet) const
std::pair< size_type, size_type > l1tjetSlice(size_type filter) const
std::vector< l1extra::L1EmParticleRef > VRl1em
void getObjects(size_type filter, Vids &ids, VRcomposite &composites) const
std::pair< size_type, size_type > l1tetsumSlice(size_type filter) const
std::pair< size_type, size_type > compositeSlice(size_type filter) const
const VRl1hfrings & l1hfringsRefs() const
void getObjects(size_type filter, int id, VRjet &jets) const
std::pair< size_type, size_type > l1ttkeleSlice(size_type filter) const
void getObjects(size_type filter, Vids &ids, VRpfjet &pfjets) const
TriggerFilterObject(const edm::InputTag &filterTag, size_type np, size_type ne, size_type nm, size_type nj, size_type nc, size_type nB, size_type nC, size_type nt, size_type l1em, size_type l1muon, size_type l1jet, size_type l1etmiss, size_type l1hfrings, size_type pfjets, size_type pftaus, size_type pfmets, size_type l1tmuon, size_type l1tegamma, size_type l1tjet, size_type l1ttkmuon, size_type l1ttkele, size_type l1ttkem, size_type l1tpfjet, size_type l1tpftau, size_type l1thpspftau, size_type l1tpftrack, size_type l1ttau, size_type l1tetsum)
void getObjects(size_type filter, int id, VRl1ttkele &l1ttkele) const
int nt
Definition: AMPTWrapper.h:42
l1t::HPSPFTauVectorRef VRl1thpspftau
size_type filterIndex(const edm::InputTag &filterTag) const
index from tag
std::pair< size_type, size_type > basemetSlice(size_type filter) const
void getObjects(size_type filter, Vids &ids, VRl1tpfjet &l1tpfjet) const
void getObjects(size_type filter, int id, VRl1jet &l1jet) const
void getObjects(size_type filter, int id, VRl1ttau &l1ttau) const
void getObjects(size_type filter, int id, VRpixtrack &pixtracks) const
void getObjects(size_type filter, Vids &ids, VRl1tetsum &l1tetsum) const
const VRl1tmuon & l1tmuonRefs() const
const VRl1etmiss & l1etmissRefs() const
std::vector< reco::CaloJetRef > VRjet
const VRl1tjet & l1tjetRefs() const
void getObjects(size_type filter, Vids &ids, VRl1etmiss &l1etmiss) const
std::pair< size_type, size_type > l1tpfjetSlice(size_type filter) const
void getObjects(size_type filter, Vids &ids, VRl1hfrings &l1hfrings) const
std::vector< reco::PFJetRef > VRpfjet
std::pair< size_type, size_type > l1ttkmuonSlice(size_type filter) const
void getObjects(size_type filter, Vids &ids, VRphoton &photons) const
extract Ref&lt;C&gt;s for a specific filter and of specific physics type
void getObjects(size_type filter, int id, VRmuon &muons) const
size_type size() const
number of filters
std::vector< reco::CompositeCandidateRef > VRcomposite
l1t::MuonVectorRef VRl1tmuon
const VRphoton & photonRefs() const
std::pair< size_type, size_type > calometSlice(size_type filter) const
std::vector< reco::RecoChargedCandidateRef > VRmuon
void getObjects(size_type filter, int id, VRl1tpftau &l1tpftau) const
void getObjects(size_type filter, Vids &ids, VRelectron &electrons) const
const VRelectron & electronRefs() const
tuple muons
Definition: patZpeak.py:39
void getObjects(size_type filter, int id, VRcomposite &composites) const
TriggerEventWithRefs(const std::string &usedProcessName, size_type n)
std::pair< size_type, size_type > pfjetSlice(size_type filter) const
void getObjects(size_type filter, Vids &ids, VRl1ttkmuon &l1ttkmuon) const
string end
Definition: dataset.py:937
const VRpixtrack & pixtrackRefs() const
void getObjects(size_type filter, Vids &ids, VRpixtrack &pixtracks) const
l1t::TauVectorRef VRl1ttau
std::vector< reco::ElectronRef > VRelectron
void getObjects(size_type filter, int id, VRl1tpftrack &l1tpftrack) const
std::pair< size_type, size_type > l1hfringsSlice(size_type filter) const
std::vector< reco::PFMETRef > VRpfmet
const VRl1ttkele & l1ttkeleRefs() const
std::vector< reco::CaloMETRef > VRcalomet
Helper class: trigger objects firing a single filter.
l1t::EtSumVectorRef VRl1tetsum
std::vector< reco::RecoEcalCandidateRef > VRphoton
void getObjects(size_type filter, int id, VRl1thpspftau &l1thpspftau) const
std::pair< size_type, size_type > pftauSlice(size_type filter) const
l1t::PFJetVectorRef VRl1tpfjet
void getObjects(size_type filter, Vids &ids, VRl1thpspftau &l1thpspftau) const
void getObjects(size_type filter, int id, VRphoton &photons) const
void getObjects(size_type filter, Vids &ids, VRl1tegamma &l1tegamma) const
std::vector< l1extra::L1JetParticleRef > VRl1jet
std::vector< int > Vids
std::vector< reco::PFTauRef > VRpftau
std::pair< size_type, size_type > pfmetSlice(size_type filter) const
void getObjects(size_type filter, int id, VRl1muon &l1muon) const
void getObjects(size_type filter, Vids &ids, VRl1tjet &l1tjet) const
l1t::TkElectronVectorRef VRl1ttkele
std::string filterTag_
encoded InputTag of filter product