CMS 3D CMS Logo

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