CMS 3D CMS Logo

L1GTEvaluationInterface.h
Go to the documentation of this file.
1 #ifndef L1Trigger_Phase2L1GT_L1GTEvaluationInterface_h
2 #define L1Trigger_Phase2L1GT_L1GTEvaluationInterface_h
3 
5 
6 #include <ap_int.h>
7 
8 #include <array>
9 #include <cstddef>
10 #include <cstdint>
11 
15 namespace l1t {
16 
17  template <typename A, typename... Args>
18  A l1t_pack_int(const Args&... args) {
19  A result = 0;
20  std::size_t shift = 0;
21  (
22  [&result, &shift](const auto& arg) {
23  result(shift + arg.width - 1, shift) = arg;
24  shift += arg.width;
25  }(args),
26  ...);
27 
28  return result;
29  }
30 
32  virtual std::size_t packed_width() const = 0;
33  virtual P2GTCandidate to_GTObject() const = 0;
34  virtual ~L1TGT_BaseInterface() {}
35  };
36 
37  template <std::size_t N>
39  virtual ap_uint<N> pack() const = 0;
40 
41  static constexpr std::size_t WIDTH = N;
42 
43  std::size_t packed_width() const override { return WIDTH; }
44  };
45 
46  template <std::size_t N>
47  struct L1TGT_Common3Vector : public L1TGT_Interface<N> {
48  ap_uint<1> valid;
49  ap_uint<16> pT;
50  ap_int<13> phi;
51  ap_int<14> eta;
52 
53  L1TGT_Common3Vector(int valid = 0, int pT = 0, int phi = 0, int eta = 0)
54  : valid(valid), pT(pT), phi(phi), eta(eta){};
55 
56  virtual ap_uint<44> pack_common() const { return l1t_pack_int<ap_uint<44>>(valid, pT, phi, eta); }
57 
58  ap_uint<N> pack() const override { return pack_common(); }
59 
61  return L1TGT_Common3Vector(1, gtObject.hwPT(), gtObject.hwPhi(), gtObject.hwEta());
62  }
63 
64  P2GTCandidate to_GTObject() const override {
65  P2GTCandidate gt_object;
66  gt_object.setHwPT(pT);
67  gt_object.setHwPhi(phi);
68  gt_object.setHwEta(eta);
69 
70  return gt_object;
71  }
72  };
73 
74  struct L1TGT_CommonSum : public L1TGT_Interface<64> {
75  ap_uint<1> valid;
76  ap_uint<16> pT;
77  ap_int<13> phi;
78  ap_uint<16> scalarSumPT;
79 
80  L1TGT_CommonSum(int valid = 0, int pT = 0, int phi = 0, int scalarSumPT = 0)
82 
83  ap_uint<46> pack_common() const { return l1t_pack_int<ap_uint<46>>(valid, pT, phi, scalarSumPT); }
84 
85  ap_uint<64> pack() const override { return pack_common(); }
86 
87  static L1TGT_CommonSum from_GTObject(const P2GTCandidate& gtObject) {
88  return L1TGT_CommonSum(1, gtObject.hwPT(), gtObject.hwPhi(), gtObject.hwScalarSumPT());
89  }
90 
91  P2GTCandidate to_GTObject() const override {
92  P2GTCandidate gt_object;
93  gt_object.setHwPT(pT);
94  gt_object.setHwPhi(phi);
95  gt_object.setHwScalarSumPT(scalarSumPT);
96 
97  return gt_object;
98  }
99  };
100 
101  // Global Calorimeter Trigger
102 
105  };
106 
109  };
110 
111  struct L1TGT_GCT_jet6p6 : public L1TGT_Common3Vector<64> {
113  };
114 
115  struct L1TGT_GCT_tau6p6 : public L1TGT_Common3Vector<64> {
116  ap_uint<10> seed_pT;
117 
118  L1TGT_GCT_tau6p6(int valid = 0, int pT = 0, int phi = 0, int eta = 0, int seed_pT = 0)
120 
121  ap_uint<WIDTH> pack() const override {
122  return l1t_pack_int<ap_uint<WIDTH>>(L1TGT_Common3Vector::pack_common(), seed_pT);
123  }
124 
125  static L1TGT_GCT_tau6p6 from_GTObject(const P2GTCandidate& gtObject) {
126  return L1TGT_GCT_tau6p6(1, gtObject.hwPT(), gtObject.hwPhi(), gtObject.hwEta(), gtObject.hwSeed_pT());
127  }
128 
129  P2GTCandidate to_GTObject() const override {
131  gt_object.setHwSeed_pT(seed_pT);
132 
133  return gt_object;
134  }
135  };
136 
137  struct L1TGT_GCT_Sum2 : public L1TGT_CommonSum {
139  };
140 
141  // Global Muon Trigger
142 
144  ap_uint<5> z0;
145  ap_int<7> d0;
146  ap_uint<1> charge;
147  ap_uint<4> qualityScore;
148 
150  int pT = 0,
151  int phi = 0,
152  int eta = 0,
153  int z0 = 0,
154  int d0 = 0,
155  int charge = 0,
156  int qualityScore = 0)
158 
159  ap_uint<WIDTH> pack() const override {
160  return l1t_pack_int<ap_uint<WIDTH>>(L1TGT_Common3Vector::pack_common(), z0, d0, charge, qualityScore);
161  }
162 
165  gtObject.hwPT(),
166  gtObject.hwPhi(),
167  gtObject.hwEta(),
168  gtObject.hwZ0() >> 12,
169  gtObject.hwD0() >> 5,
170  gtObject.hwCharge(),
171  gtObject.hwQualityScore());
172  }
173 
174  P2GTCandidate to_GTObject() const override {
176  gt_object.setHwZ0(static_cast<int>(z0) << 12);
177  gt_object.setHwD0(static_cast<int>(d0) << 5);
178  gt_object.setHwCharge(charge);
179  gt_object.setHwQualityScore(qualityScore);
180 
181  return gt_object;
182  }
183  };
184 
186  ap_int<10> z0;
187  ap_int<10> d0;
188  ap_uint<1> charge;
189  ap_uint<6> qualityFlags;
190  ap_uint<6> isolationPT;
191  ap_uint<4> beta;
192 
194  int pT = 0,
195  int phi = 0,
196  int eta = 0,
197  int z0 = 0,
198  int d0 = 0,
199  int charge = 0,
200  int qualityFlags = 0,
201  int isolationPT = 0,
202  int beta = 0)
204  z0(z0),
205  d0(d0),
206  charge(charge),
209  beta(beta) {}
210 
211  ap_uint<WIDTH> pack() const override {
212  return l1t_pack_int<ap_uint<WIDTH>>(
214  }
215 
218  gtObject.hwPT(),
219  gtObject.hwPhi(),
220  gtObject.hwEta(),
221  gtObject.hwZ0() >> 7,
222  gtObject.hwD0() >> 2,
223  gtObject.hwCharge(),
224  gtObject.hwQualityFlags(),
225  gtObject.hwIsolationPT(),
226  gtObject.hwBeta());
227  }
228 
229  P2GTCandidate to_GTObject() const override {
231  gt_object.setHwZ0(static_cast<int>(z0) << 7);
232  gt_object.setHwD0(static_cast<int>(d0) << 2);
233  gt_object.setHwCharge(charge);
234  gt_object.setHwQualityFlags(static_cast<int>(qualityFlags));
235  gt_object.setHwIsolationPT(static_cast<int>(isolationPT));
236  gt_object.setHwBeta(beta);
237 
238  return gt_object;
239  }
240  };
241 
242  struct L1TGT_GMT_TopoObject : public L1TGT_Interface<64> {
243  ap_uint<1> valid;
244  ap_uint<8> pT; // TODO
245  ap_int<8> eta;
246  ap_int<8> phi;
247  ap_uint<8> mass;
248  ap_uint<6> qualityFlags;
249  // ap_uint<16> /* Index of 3 prongs */;
250  // ap_uint<3> /* Some other quality */;
251 
252  L1TGT_GMT_TopoObject(int valid = 0, int pT = 0, int phi = 0, int eta = 0, int mass = 0, int qualityFlags = 0)
254 
255  ap_uint<WIDTH> pack() const override {
256  return l1t_pack_int<ap_uint<WIDTH>>(valid, pT, eta, phi, mass, qualityFlags);
257  }
258 
260  return L1TGT_GMT_TopoObject(1,
261  gtObject.hwPT() / 5,
262  gtObject.hwPhi() >> 5,
263  gtObject.hwEta() >> 5,
264  gtObject.hwMass(),
265  gtObject.hwQualityFlags());
266  }
267 
268  P2GTCandidate to_GTObject() const override {
269  P2GTCandidate gt_object;
270  gt_object.setHwPT(static_cast<int>(pT) * 5); // TODO
271  gt_object.setHwPhi(static_cast<int>(phi) << 5);
272  gt_object.setHwEta(static_cast<int>(eta) << 5);
273  gt_object.setHwMass(mass);
274  gt_object.setHwQualityFlags(qualityFlags);
275 
276  return gt_object;
277  }
278  };
279 
280  // Global Track Trigger
281 
283  ap_int<10> z0;
284  ap_uint<5> number_of_tracks;
285  // ap_uint<5> /* unassigned */;
286 
287  L1TGT_GTT_PromptJet(int valid = 0, int pT = 0, int phi = 0, int eta = 0, int z0 = 0, int number_of_tracks = 0)
289 
290  ap_uint<WIDTH> pack() const override {
291  return l1t_pack_int<ap_uint<WIDTH>>(L1TGT_Common3Vector::pack_common(), z0, number_of_tracks);
292  }
293 
295  return L1TGT_GTT_PromptJet(
296  1, gtObject.hwPT(), gtObject.hwPhi(), gtObject.hwEta(), gtObject.hwZ0() >> 7, gtObject.hwNumber_of_tracks());
297  }
298 
299  P2GTCandidate to_GTObject() const override {
301  gt_object.setHwZ0(static_cast<int>(z0) << 7);
303 
304  return gt_object;
305  }
306  };
307 
309  ap_int<10> z0;
310  ap_uint<5> number_of_tracks;
311  // ap_uint<5> /* unassigned */;
312  ap_int<12> d0;
313 
315  int valid = 0, int pT = 0, int phi = 0, int eta = 0, int z0 = 0, int number_of_tracks = 0, int d0 = 0)
317 
318  ap_uint<WIDTH> pack() const override {
319  return l1t_pack_int<ap_uint<WIDTH>>(L1TGT_Common3Vector::pack_common(), z0, number_of_tracks, ap_uint<5>(0), d0);
320  }
321 
323  return L1TGT_GTT_DisplacedJet(1,
324  gtObject.hwPT(),
325  gtObject.hwPhi(),
326  gtObject.hwEta(),
327  gtObject.hwZ0() >> 7,
328  gtObject.hwNumber_of_tracks(),
329  gtObject.hwD0());
330  }
331 
332  P2GTCandidate to_GTObject() const override {
334  gt_object.setHwZ0(static_cast<int>(z0) << 7);
336  gt_object.setHwD0(d0);
337 
338  return gt_object;
339  }
340  };
341 
342  struct L1TGT_GTT_Sum : public L1TGT_CommonSum {
344  };
345 
347  ap_uint<10> seed_pT;
348  ap_int<10> seed_z0;
349  ap_uint<1> charge;
350  ap_uint<2> type;
351 
353  int pT = 0,
354  int phi = 0,
355  int eta = 0,
356  int seed_pT = 0,
357  int seed_z0 = 0,
358  int charge = 0,
359  int type = 0)
361 
362  ap_uint<WIDTH> pack() const override {
363  return l1t_pack_int<ap_uint<WIDTH>>(L1TGT_Common3Vector::pack_common(), seed_pT, seed_z0, charge, type);
364  }
365 
367  return L1TGT_GTT_HadronicTau(1,
368  gtObject.hwPT(),
369  gtObject.hwPhi(),
370  gtObject.hwEta(),
371  gtObject.hwSeed_pT(),
372  gtObject.hwSeed_z0(),
373  gtObject.hwCharge(),
374  gtObject.hwType());
375  }
376 
377  P2GTCandidate to_GTObject() const override {
379  gt_object.setHwSeed_pT(seed_pT);
380  gt_object.setHwSeed_z0(seed_z0);
381  gt_object.setHwCharge(charge);
382  gt_object.setHwType(type);
383 
384  return gt_object;
385  }
386  };
387 
389  ap_int<10> z0;
390  //ap_uint<10> /* candidate mass */;
391  //ap_uint<2> /* candidate type */;
392  //ap_uint<3> /* nbr of tracks */;
393 
394  L1TGT_GTT_LightMeson(int valid = 0, int pT = 0, int phi = 0, int eta = 0, int z0 = 0)
395  : L1TGT_Common3Vector(valid, pT, phi, eta), z0(z0) {}
396 
397  ap_uint<WIDTH> pack() const override {
398  return l1t_pack_int<ap_uint<WIDTH>>(L1TGT_Common3Vector::pack_common(), z0);
399  }
400 
402  return L1TGT_GTT_LightMeson(1, gtObject.hwPT(), gtObject.hwPhi(), gtObject.hwEta(), gtObject.hwZ0() >> 7);
403  }
404 
405  P2GTCandidate to_GTObject() const override {
407  gt_object.setHwZ0(static_cast<int>(z0) << 7);
408 
409  return gt_object;
410  }
411  };
412 
413  struct L1TGT_GTT_Track : public L1TGT_Interface<96> {
414  //TODO
415 
417 
418  ap_uint<WIDTH> pack() const override { return ap_uint<WIDTH>(0); }
419 
420  static L1TGT_GTT_Track from_GTObject(const P2GTCandidate& gtObject) { return L1TGT_GTT_Track(); }
421 
422  P2GTCandidate to_GTObject() const override { return P2GTCandidate(); }
423  };
424 
426  ap_uint<1> valid;
427  ap_int<15> z0;
429  ap_uint<12> sum_pT_pv;
430  ap_uint<3> qualityScore;
432  // ap_uint<15> /* unassigned */;
433 
435  int z0 = 0,
436  int number_of_tracks_in_pv = 0,
437  int sum_pT_pv = 0,
438  int qualityScore = 0,
440  : valid(valid),
441  z0(z0),
446 
447  ap_uint<WIDTH> pack() const override {
448  return l1t_pack_int<ap_uint<WIDTH>>(
450  }
451 
453  return L1TGT_GTT_PrimaryVert(1,
454  gtObject.hwZ0() / 5,
455  gtObject.hwNumber_of_tracks_in_pv(),
456  gtObject.hwSum_pT_pv(),
457  gtObject.hwQualityScore(),
458  gtObject.hwNumber_of_tracks_not_in_pv());
459  }
460 
461  P2GTCandidate to_GTObject() const override {
462  P2GTCandidate gt_object;
463  gt_object.setHwZ0(static_cast<int>(z0) * 5);
465  gt_object.setHwSum_pT_pv(sum_pT_pv);
466  gt_object.setHwQualityScore(qualityScore);
468 
469  return gt_object;
470  }
471  };
472 
473  // Correlator Layer-2
474 
475  struct L1TGT_CL2_Jet : public L1TGT_Common3Vector<128> {
476  ap_int<10> z0;
477 
478  L1TGT_CL2_Jet(int valid = 0, int pT = 0, int phi = 0, int eta = 0, int z0 = 0)
479  : L1TGT_Common3Vector(valid, pT, phi, eta), z0(z0) {}
480 
481  ap_uint<WIDTH> pack() const override {
482  return l1t_pack_int<ap_uint<WIDTH>>(L1TGT_Common3Vector::pack_common(), z0);
483  }
484 
485  static L1TGT_CL2_Jet from_GTObject(const P2GTCandidate& gtObject) {
486  return L1TGT_CL2_Jet(1, gtObject.hwPT(), gtObject.hwPhi(), gtObject.hwEta(), gtObject.hwZ0() >> 7);
487  }
488 
489  P2GTCandidate to_GTObject() const override {
491  gt_object.setHwZ0(static_cast<int>(z0) << 7);
492 
493  return gt_object;
494  }
495  };
496 
497  struct L1TGT_CL2_Sum : public L1TGT_CommonSum {
499  };
500 
501  struct L1TGT_CL2_Tau : public L1TGT_Common3Vector<96> {
502  ap_uint<10> seed_pT;
503  ap_int<10> seed_z0;
504  ap_uint<1> charge;
505  ap_uint<2> type;
506  //ap_uint<10> /* MVA Id / Isol */;
507  //ap_uint<2> /* Id vs Mu */;
508  //ap_uint<2> /* Id vs Mu */;
509 
511  int pT = 0,
512  int phi = 0,
513  int eta = 0,
514  int seed_pT = 0,
515  int seed_z0 = 0,
516  int charge = 0,
517  int type = 0)
519 
520  ap_uint<WIDTH> pack() const override {
521  return l1t_pack_int<ap_uint<WIDTH>>(L1TGT_Common3Vector::pack_common(), seed_pT, seed_z0, charge, type);
522  }
523 
524  static L1TGT_CL2_Tau from_GTObject(const P2GTCandidate& gtObject) {
525  return L1TGT_CL2_Tau(1,
526  gtObject.hwPT(),
527  gtObject.hwPhi(),
528  gtObject.hwEta(),
529  gtObject.hwSeed_pT(),
530  gtObject.hwSeed_z0(),
531  gtObject.hwCharge(),
532  gtObject.hwType());
533  }
534 
535  P2GTCandidate to_GTObject() const override {
537  gt_object.setHwSeed_pT(seed_pT);
538  gt_object.setHwSeed_z0(seed_z0);
539  gt_object.setHwCharge(charge);
540  gt_object.setHwType(type);
541 
542  return gt_object;
543  }
544  };
545 
547  ap_uint<4> qualityFlags;
548  ap_uint<11> isolationPT;
549  ap_uint<1> charge;
550  ap_int<10> z0;
551 
553  int pT = 0,
554  int phi = 0,
555  int eta = 0,
556  int qualityFlags = 0,
557  int isolationPT = 0,
558  int charge = 0,
559  int z0 = 0)
563  charge(charge),
564  z0(z0) {}
565 
566  ap_uint<WIDTH> pack() const override {
567  return l1t_pack_int<ap_uint<WIDTH>>(L1TGT_Common3Vector::pack_common(), qualityFlags, isolationPT, charge, z0);
568  }
569 
571  return L1TGT_CL2_Electron(1,
572  gtObject.hwPT(),
573  gtObject.hwPhi(),
574  gtObject.hwEta(),
575  gtObject.hwQualityFlags(),
576  gtObject.hwIsolationPT(),
577  gtObject.hwCharge(),
578  gtObject.hwZ0() >> 7);
579  }
580 
581  P2GTCandidate to_GTObject() const override {
583  gt_object.setHwQualityFlags(qualityFlags);
584  gt_object.setHwIsolationPT(isolationPT);
585  gt_object.setHwCharge(charge);
586  gt_object.setHwZ0(static_cast<int>(z0) << 7);
587 
588  return gt_object;
589  }
590  };
591 
592  struct L1TGT_CL2_Photon : public L1TGT_Common3Vector<96> {
593  ap_uint<4> qualityFlags;
594  ap_uint<11> isolationPT;
595 
596  L1TGT_CL2_Photon(int valid = 0, int pT = 0, int phi = 0, int eta = 0, int qualityFlags = 0, int isolationPT = 0)
598 
599  ap_uint<WIDTH> pack() const override {
600  return l1t_pack_int<ap_uint<WIDTH>>(L1TGT_Common3Vector::pack_common(), qualityFlags, isolationPT);
601  }
602 
603  static L1TGT_CL2_Photon from_GTObject(const P2GTCandidate& gtObject) {
604  return L1TGT_CL2_Photon(
605  1, gtObject.hwPT(), gtObject.hwPhi(), gtObject.hwEta(), gtObject.hwQualityFlags(), gtObject.hwIsolationPT());
606  }
607 
608  P2GTCandidate to_GTObject() const override {
610  gt_object.setHwQualityFlags(qualityFlags);
611  gt_object.setHwIsolationPT(isolationPT);
612 
613  return gt_object;
614  }
615  };
616 } // namespace l1t
617 
618 #endif // L1Trigger_Phase2L1GT_L1GTEvaluationInterface_h
P2GTCandidate to_GTObject() const override
ap_uint< WIDTH > pack() const override
static L1TGT_CommonSum from_GTObject(const P2GTCandidate &gtObject)
void setHwD0(hwD0_t hwD0)
L1TGT_GTT_PromptJet(int valid=0, int pT=0, int phi=0, int eta=0, int z0=0, int number_of_tracks=0)
virtual ap_uint< 44 > pack_common() const
void setHwType(hwType_t hwType)
ap_uint< WIDTH > pack() const override
P2GTCandidate to_GTObject() const override
void setHwIsolationPT(hwIsolationPT_t hwIso)
L1TGT_CL2_Jet(int valid=0, int pT=0, int phi=0, int eta=0, int z0=0)
P2GTCandidate to_GTObject() const override
void setHwBeta(hwBeta_t hwBeta)
static L1TGT_GTT_HadronicTau from_GTObject(const P2GTCandidate &gtObject)
hwNumber_of_tracks_in_pv_t hwNumber_of_tracks_in_pv() const
ap_uint< WIDTH > pack() const override
L1TGT_GCT_tau6p6(int valid=0, int pT=0, int phi=0, int eta=0, int seed_pT=0)
hwBeta_t hwBeta() const
hwIsolationPT_t hwIsolationPT() const
void setHwNumber_of_tracks_in_pv(hwNumber_of_tracks_in_pv_t hwNumber_of_tracks_in_pv)
P2GTCandidate to_GTObject() const override
hwEta_t hwEta() const
P2GTCandidate to_GTObject() const override
ap_uint< WIDTH > pack() const override
L1TGT_GTT_LightMeson(int valid=0, int pT=0, int phi=0, int eta=0, int z0=0)
ap_uint< WIDTH > pack() const override
ap_uint< WIDTH > pack() const override
hwD0_t hwD0() const
delete x;
Definition: CaloConfig.h:22
static L1TGT_GTT_PrimaryVert from_GTObject(const P2GTCandidate &gtObject)
L1TGT_GMT_PromptDisplacedMuon(int valid=0, int pT=0, int phi=0, int eta=0, int z0=0, int d0=0, int charge=0, int qualityScore=0)
A arg
Definition: Factorize.h:31
L1TGT_CL2_Tau(int valid=0, int pT=0, int phi=0, int eta=0, int seed_pT=0, int seed_z0=0, int charge=0, int type=0)
L1TGT_CL2_Electron(int valid=0, int pT=0, int phi=0, int eta=0, int qualityFlags=0, int isolationPT=0, int charge=0, int z0=0)
void setHwSum_pT_pv(hwSum_pT_pv_t hwSum_pT_pv)
hwScalarSumPT_t hwScalarSumPT() const
P2GTCandidate to_GTObject() const override
A l1t_pack_int(const Args &... args)
static L1TGT_GMT_TrackMatchedmuon from_GTObject(const P2GTCandidate &gtObject)
P2GTCandidate to_GTObject() const override
static L1TGT_CL2_Photon from_GTObject(const P2GTCandidate &gtObject)
void setHwEta(hwEta_t hwEta)
ap_uint< WIDTH > pack() const override
void setHwMass(hwMass_t hwMass)
ap_uint< WIDTH > pack() const override
hwCharge_t hwCharge() const
void setHwPT(hwPT_t hwPT)
P2GTCandidate to_GTObject() const override
static L1TGT_GTT_PromptJet from_GTObject(const P2GTCandidate &gtObject)
L1TGT_GTT_PrimaryVert(int valid=0, int z0=0, int number_of_tracks_in_pv=0, int sum_pT_pv=0, int qualityScore=0, int number_of_tracks_not_in_pv=0)
static L1TGT_GTT_LightMeson from_GTObject(const P2GTCandidate &gtObject)
P2GTCandidate to_GTObject() const override
static L1TGT_GTT_Track from_GTObject(const P2GTCandidate &gtObject)
static L1TGT_CL2_Tau from_GTObject(const P2GTCandidate &gtObject)
P2GTCandidate to_GTObject() const override
hwMass_t hwMass() const
static constexpr std::size_t WIDTH
virtual P2GTCandidate to_GTObject() const =0
virtual std::size_t packed_width() const =0
P2GTCandidate to_GTObject() const override
hwQualityFlags_t hwQualityFlags() const
static L1TGT_GMT_TopoObject from_GTObject(const P2GTCandidate &gtObject)
ap_uint< WIDTH > pack() const override
void setHwQualityScore(hwQualityScore_t hwQualityScore)
ap_uint< WIDTH > pack() const override
ap_uint< WIDTH > pack() const override
#define N
Definition: blowfish.cc:9
void setHwSeed_z0(hwSeed_z0_t hwSeed_z0)
ap_uint< N > pack() const override
P2GTCandidate to_GTObject() const override
L1TGT_GMT_TrackMatchedmuon(int valid=0, int pT=0, int phi=0, int eta=0, int z0=0, int d0=0, int charge=0, int qualityFlags=0, int isolationPT=0, int beta=0)
hwQualityScore_t hwQualityScore() const
void setHwScalarSumPT(hwScalarSumPT_t hwScalarSumPT)
hwSum_pT_pv_t hwSum_pT_pv() const
hwZ0_t hwZ0() const
L1TGT_GTT_DisplacedJet(int valid=0, int pT=0, int phi=0, int eta=0, int z0=0, int number_of_tracks=0, int d0=0)
void setHwNumber_of_tracks_not_in_pv(hwNumber_of_tracks_not_in_pv_t hwNumber_of_tracks_not_in_pv)
void setHwSeed_pT(hwSeed_pT_t hwSeed_pT)
P2GTCandidate to_GTObject() const override
static L1TGT_GTT_DisplacedJet from_GTObject(const P2GTCandidate &gtObject)
P2GTCandidate to_GTObject() const override
ap_uint< WIDTH > pack() const override
hwSeed_pT_t hwSeed_pT() const
P2GTCandidate to_GTObject() const override
virtual ap_uint< N > pack() const =0
L1TGT_CommonSum(int valid=0, int pT=0, int phi=0, int scalarSumPT=0)
ap_uint< 64 > pack() const override
L1TGT_Common3Vector(int valid=0, int pT=0, int phi=0, int eta=0)
static L1TGT_GMT_PromptDisplacedMuon from_GTObject(const P2GTCandidate &gtObject)
static unsigned int const shift
hwSeed_z0_t hwSeed_z0() const
Definition: APVGainStruct.h:7
hwNumber_of_tracks_t hwNumber_of_tracks() const
std::size_t packed_width() const override
L1TGT_CL2_Photon(int valid=0, int pT=0, int phi=0, int eta=0, int qualityFlags=0, int isolationPT=0)
hwNumber_of_tracks_not_in_pv_t hwNumber_of_tracks_not_in_pv() const
P2GTCandidate to_GTObject() const override
static L1TGT_Common3Vector from_GTObject(const P2GTCandidate &gtObject)
L1TGT_GMT_TopoObject(int valid=0, int pT=0, int phi=0, int eta=0, int mass=0, int qualityFlags=0)
L1TGT_GTT_HadronicTau(int valid=0, int pT=0, int phi=0, int eta=0, int seed_pT=0, int seed_z0=0, int charge=0, int type=0)
void setHwCharge(hwCharge_t hwCharge)
ap_uint< WIDTH > pack() const override
hwPhi_t hwPhi() const
void setHwQualityFlags(hwQualityFlags_t hwQualityFlags)
void setHwZ0(hwZ0_t hwZ0)
void setHwNumber_of_tracks(hwNumber_of_tracks_t hwNumber_of_tracks)
ap_uint< WIDTH > pack() const override
static L1TGT_CL2_Jet from_GTObject(const P2GTCandidate &gtObject)
void setHwPhi(hwPhi_t hwPhi)
static L1TGT_GCT_tau6p6 from_GTObject(const P2GTCandidate &gtObject)
ap_uint< 46 > pack_common() const
hwPT_t hwPT() const
static L1TGT_CL2_Electron from_GTObject(const P2GTCandidate &gtObject)
hwType_t hwType() const