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