CMS 3D CMS Logo

L1GTProducer.cc
Go to the documentation of this file.
4 
7 
10 
16 
19 
22 
30 
32 
34 
35 #include <vector>
36 #include <array>
37 #include <string>
38 #include <type_traits>
39 
40 namespace l1t {
41 
43  public:
44  explicit L1GTProducer(const edm::ParameterSet &);
45  ~L1GTProducer() override = default;
46 
48 
49  private:
54  void produceGTTEtSum(edm::Event &event) const;
56 
59  void produceGMTTkMuons(edm::Event &event) const;
60 
61  void produceCL2JetsSC4(edm::Event &event) const;
62  void produceCL2JetsSC8(edm::Event &event) const;
63  void produceCL2Photons(edm::Event &event) const;
65  void produceCL2Taus(edm::Event &event) const;
66  void produceCL2EtSum(edm::Event &event) const;
67  void produceCl2HtSum(edm::Event &event) const;
68 
69  void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override;
70 
72 
79 
83 
91  };
92 
94  : scales_(config.getParameter<edm::ParameterSet>("scales")),
95  gttPromptJetToken_(consumes<TkJetWordCollection>(config.getParameter<edm::InputTag>("GTTPromptJets"))),
96  gttDisplacedJetToken_(consumes<TkJetWordCollection>(config.getParameter<edm::InputTag>("GTTDisplacedJets"))),
97  gttPromptHtSumToken_(consumes<std::vector<l1t::EtSum>>(config.getParameter<edm::InputTag>("GTTPromptHtSum"))),
98  gttDisplacedHtSumToken_(
99  consumes<std::vector<l1t::EtSum>>(config.getParameter<edm::InputTag>("GTTDisplacedHtSum"))),
100  gttEtSumToken_(consumes<std::vector<l1t::EtSum>>(config.getParameter<edm::InputTag>("GTTEtSum"))),
101  gttPrimaryVertexToken_(consumes<VertexWordCollection>(config.getParameter<edm::InputTag>("GTTPrimaryVert"))),
102  gmtSaPromptMuonToken_(consumes<SAMuonCollection>(config.getParameter<edm::InputTag>("GMTSaPromptMuons"))),
103  gmtSaDisplacedMuonToken_(consumes<SAMuonCollection>(config.getParameter<edm::InputTag>("GMTSaDisplacedMuons"))),
104  gmtTkMuonToken_(consumes<TrackerMuonCollection>(config.getParameter<edm::InputTag>("GMTTkMuons"))),
105  cl2JetSC4Token_(consumes<PFJetCollection>(config.getParameter<edm::InputTag>("CL2JetsSC4"))),
106  cl2JetSC8Token_(consumes<PFJetCollection>(config.getParameter<edm::InputTag>("CL2JetsSC8"))),
107  cl2PhotonToken_(consumes<TkEmCollection>(config.getParameter<edm::InputTag>("CL2Photons"))),
108  cl2ElectronToken_(consumes<TkElectronCollection>(config.getParameter<edm::InputTag>("CL2Electrons"))),
109  cl2TauToken_(consumes<PFTauCollection>(config.getParameter<edm::InputTag>("CL2Taus"))),
110  cl2EtSumToken_(consumes<std::vector<l1t::EtSum>>(config.getParameter<edm::InputTag>("CL2EtSum"))),
111  cl2HtSumToken_(consumes<std::vector<l1t::EtSum>>(config.getParameter<edm::InputTag>("CL2HtSum"))) {
112  produces<P2GTCandidateCollection>("GTTPromptJets");
113  produces<P2GTCandidateCollection>("GTTDisplacedJets");
114  produces<P2GTCandidateCollection>("GTTPromptHtSum");
115  produces<P2GTCandidateCollection>("GTTDisplacedHtSum");
116  produces<P2GTCandidateCollection>("GTTEtSum");
117  produces<P2GTCandidateCollection>("GTTPrimaryVert");
118 
119  produces<P2GTCandidateCollection>("GMTSaPromptMuons");
120  produces<P2GTCandidateCollection>("GMTSaDisplacedMuons");
121  produces<P2GTCandidateCollection>("GMTTkMuons");
122 
123  produces<P2GTCandidateCollection>("CL2JetsSC4");
124  produces<P2GTCandidateCollection>("CL2JetsSC8");
125  produces<P2GTCandidateCollection>("CL2Photons");
126  produces<P2GTCandidateCollection>("CL2Electrons");
127  produces<P2GTCandidateCollection>("CL2Taus");
128  produces<P2GTCandidateCollection>("CL2EtSum");
129  produces<P2GTCandidateCollection>("CL2HtSum");
130  }
131 
134 
135  edm::ParameterSetDescription scalesDesc;
137  desc.add<edm::ParameterSetDescription>("scales", scalesDesc);
138 
139  desc.add<edm::InputTag>("GTTPromptJets");
140  desc.add<edm::InputTag>("GTTDisplacedJets");
141  desc.add<edm::InputTag>("GTTPromptHtSum");
142  desc.add<edm::InputTag>("GTTDisplacedHtSum");
143  desc.add<edm::InputTag>("GTTEtSum");
144  desc.add<edm::InputTag>("GTTPrimaryVert");
145 
146  desc.add<edm::InputTag>("GMTSaPromptMuons");
147  desc.add<edm::InputTag>("GMTSaDisplacedMuons");
148  desc.add<edm::InputTag>("GMTTkMuons");
149 
150  desc.add<edm::InputTag>("CL2JetsSC4");
151  desc.add<edm::InputTag>("CL2JetsSC8");
152  desc.add<edm::InputTag>("CL2Photons");
153  desc.add<edm::InputTag>("CL2Electrons");
154  desc.add<edm::InputTag>("CL2Taus");
155  desc.add<edm::InputTag>("CL2EtSum");
156  desc.add<edm::InputTag>("CL2HtSum");
157 
158  description.addWithDefaultLabel(desc);
159  }
160 
162  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
164  for (std::size_t i = 0; i < collection.size() && i < 10; i++) {
165  const VertexWord &obj = collection[i];
166  int hwZ0 = obj.z0Word().V.to_int() * 5;
167  P2GTCandidate gtObj(
169  gtObj.hwZ0_ = hwZ0;
170  gtObj.hwQualityScore_ = obj.qualityWord().V.to_int();
171  gtObj.hwSum_pT_pv_ = obj.multiplicityWord().V.to_int();
172  gtObj.hwNumber_of_tracks_in_pv_ = obj.multiplicityWord().V.to_int();
173  gtObj.hwNumber_of_tracks_not_in_pv_ = obj.inverseMultiplicityWord().V.to_int();
175 
176  outputCollection->push_back(gtObj);
177  }
178  event.put(std::move(outputCollection), "GTTPrimaryVert");
179  }
180 
182  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
184  for (std::size_t i = 0; i < collection.size() && i < 12; i++) {
185  const TkJetWord &obj = collection[i];
186  int hwZ0 = obj.z0Word().V.to_int() << 7;
187  P2GTCandidate gtObj(0,
189  scales_.to_eta(obj.glbEtaWord().V.to_int()),
190  scales_.to_phi(obj.glbPhiWord().V.to_int()),
191  0),
193  gtObj.hwPT_ = obj.ptWord().V.to_int();
194  gtObj.hwPhi_ = obj.glbPhiWord().V.to_int();
195  gtObj.hwEta_ = obj.glbEtaWord().V.to_int();
196  gtObj.hwZ0_ = hwZ0;
197  gtObj.hwNumber_of_tracks_ = obj.ntWord().V.to_int();
199 
200  outputCollection->push_back(gtObj);
201  }
202  event.put(std::move(outputCollection), "GTTPromptJets");
203  }
204 
206  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
208  for (std::size_t i = 0; i < collection.size() && i < 12; i++) {
209  const TkJetWord &obj = collection[i];
210  int hwZ0 = obj.z0Word().V.to_int() << 7;
211  P2GTCandidate gtObj(0,
213  scales_.to_eta(obj.glbEtaWord().V.to_int()),
214  scales_.to_phi(obj.glbPhiWord().V.to_int()),
215  0),
217  gtObj.hwPT_ = obj.ptWord().V.to_int();
218  gtObj.hwPhi_ = obj.glbPhiWord().V.to_int();
219  gtObj.hwEta_ = obj.glbEtaWord().V.to_int();
220  gtObj.hwZ0_ = hwZ0;
221  gtObj.hwNumber_of_tracks_ = obj.ntWord().V.to_int();
223 
224  outputCollection->push_back(gtObj);
225  }
226  event.put(std::move(outputCollection), "GTTDisplacedJets");
227  }
228 
230  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
231  const std::vector<l1t::EtSum> &collection = event.get(gttPromptHtSumToken_);
232  if (collection.size() > 0) {
233  const l1t::EtSum &obj = collection[0];
234  l1tmhtemu::EtMiss htMiss;
235  htMiss.Et = obj.p4().energy();
236  P2GTCandidate gtObj(0,
238  scales_.to_pT(htMiss.Et.V.to_int()), 0, scales_.to_phi(obj.hwPhi()), 0));
239 
240  gtObj.hwPT_ = htMiss.Et.V.to_int();
241  gtObj.hwPhi_ = obj.hwPhi();
242  gtObj.hwScalarSumPT_ = obj.hwPt();
243  gtObj.objectType_ = P2GTCandidate::GTTPromptHtSum;
244 
245  outputCollection->push_back(gtObj);
246  }
247 
248  event.put(std::move(outputCollection), "GTTPromptHtSum");
249  }
250 
252  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
253  const std::vector<l1t::EtSum> &collection = event.get(gttDisplacedHtSumToken_);
254  if (collection.size() > 0) {
255  const l1t::EtSum &obj = collection[0];
256  l1tmhtemu::EtMiss htMiss;
257  htMiss.Et = obj.p4().energy();
258  P2GTCandidate gtObj(0,
260  scales_.to_pT(htMiss.Et.V.to_int()), 0, scales_.to_phi(obj.hwPhi()), 0));
261 
262  gtObj.hwPT_ = htMiss.Et.V.to_int();
263  gtObj.hwPhi_ = obj.hwPhi();
264  gtObj.hwScalarSumPT_ = obj.hwPt();
265  gtObj.objectType_ = P2GTCandidate::GTTDisplacedHtSum;
266 
267  outputCollection->push_back(gtObj);
268  }
269 
270  event.put(std::move(outputCollection), "GTTDisplacedHtSum");
271  }
272 
274  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
275  const std::vector<l1t::EtSum> &collection = event.get(gttEtSumToken_);
276  if (collection.size() > 0) {
277  const l1t::EtSum &obj = collection[0];
278  P2GTCandidate gtObj(
280  gtObj.hwPT_ = obj.hwPt();
281  gtObj.hwPhi_ = obj.hwPhi();
282  gtObj.objectType_ = P2GTCandidate::GTTEtSum;
283 
284  outputCollection->push_back(gtObj);
285  }
286 
287  event.put(std::move(outputCollection), "GTTEtSum");
288  }
289 
291  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
293  for (size_t i = 0; i < collection.size() && i < 12; i++) {
294  const SAMuon &obj = collection[i];
295  int hwZ0 = obj.apZ0().to_int() << 12;
296  P2GTCandidate gtObj(scales_.to_chg(obj.apCharge().to_int()),
298  scales_.to_eta(obj.apEta().to_int()),
299  scales_.to_phi(obj.apPhi().to_int()),
300  0),
302  gtObj.hwPT_ = obj.apPt().to_int();
303  gtObj.hwPhi_ = obj.apPhi().to_int();
304  gtObj.hwEta_ = obj.apEta().to_int();
305  gtObj.hwZ0_ = hwZ0;
306  gtObj.hwQualityFlags_ = obj.apQualFlags().to_int();
307  gtObj.hwCharge_ = obj.apCharge().to_int();
308  gtObj.hwD0_ = obj.apD0().to_int();
310 
311  outputCollection->push_back(gtObj);
312  }
313  event.put(std::move(outputCollection), "GMTSaPromptMuons");
314  }
315 
317  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
319  for (size_t i = 0; i < collection.size() && i < 12; i++) {
320  const SAMuon &obj = collection[i];
321  int hwZ0 = obj.apZ0().to_int() << 12;
322  P2GTCandidate gtObj(scales_.to_chg(obj.apCharge().to_int()),
324  scales_.to_eta(obj.apEta().to_int()),
325  scales_.to_phi(obj.apPhi().to_int()),
326  0),
328  gtObj.hwPT_ = obj.apPt().to_int();
329  gtObj.hwPhi_ = obj.apPhi().to_int();
330  gtObj.hwEta_ = obj.apEta().to_int();
331  gtObj.hwZ0_ = hwZ0;
332  gtObj.hwQualityFlags_ = obj.apQualFlags().to_int();
333  gtObj.hwCharge_ = obj.apCharge().to_int();
334  gtObj.hwD0_ = obj.apD0().to_int();
336 
337  outputCollection->push_back(gtObj);
338  }
339  event.put(std::move(outputCollection), "GMTSaDisplacedMuons");
340  }
341 
343  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
345  for (size_t i = 0; i < collection.size() && i < 12; i++) {
346  const TrackerMuon &obj = collection[i];
347  int hwZ0 = obj.apZ0().to_int() << 7;
348  P2GTCandidate gtObj(scales_.to_chg(obj.apCharge().to_int()),
350  scales_.to_eta(obj.apEta().to_int()),
351  scales_.to_phi(obj.apPhi().to_int()),
352  0),
354  gtObj.hwPT_ = obj.apPt().to_int();
355  gtObj.hwPhi_ = obj.apPhi().to_int();
356  gtObj.hwEta_ = obj.apEta().to_int();
357  gtObj.hwZ0_ = hwZ0;
358  gtObj.hwQualityFlags_ = obj.apQualFlags().to_int();
359  gtObj.hwIsolationPT_ = obj.apIso().to_int();
360  gtObj.hwCharge_ = obj.apCharge().to_int();
361  gtObj.hwD0_ = obj.apD0().to_int();
362  gtObj.hwBeta_ = obj.apBeta().to_int();
364 
365  outputCollection->push_back(gtObj);
366  }
367  event.put(std::move(outputCollection), "GMTTkMuons");
368  }
369 
371  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
372  const PFJetCollection &collection = event.get(cl2JetSC4Token_);
373  for (size_t i = 0; i < collection.size() && i < 12; i++) {
374  l1gt::Jet gtJet = l1gt::Jet::unpack(collection[i].getHWJetGT());
375  int hwZ0 = gtJet.z0.V.to_int() << 7;
376  P2GTCandidate gtObj(0,
378  scales_.to_eta(gtJet.v3.eta.V.to_int()),
379  scales_.to_phi(gtJet.v3.phi.V.to_int()),
380  0),
382  gtObj.hwPT_ = gtJet.v3.pt.V.to_int();
383  gtObj.hwPhi_ = gtJet.v3.phi.V.to_int();
384  gtObj.hwEta_ = gtJet.v3.eta.V.to_int();
385  gtObj.hwZ0_ = hwZ0;
387 
388  outputCollection->push_back(gtObj);
389  }
390  event.put(std::move(outputCollection), "CL2JetsSC4");
391  }
392 
394  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
395  const PFJetCollection &collection = event.get(cl2JetSC8Token_);
396  for (size_t i = 0; i < collection.size() && i < 12; i++) {
397  l1gt::Jet gtJet = l1gt::Jet::unpack(collection[i].getHWJetGT());
398  int hwZ0 = gtJet.z0.V.to_int() << 7;
399  P2GTCandidate gtObj(0,
401  scales_.to_eta(gtJet.v3.eta.V.to_int()),
402  scales_.to_phi(gtJet.v3.phi.V.to_int()),
403  0),
405  gtObj.hwPT_ = gtJet.v3.pt.V.to_int();
406  gtObj.hwPhi_ = gtJet.v3.phi.V.to_int();
407  gtObj.hwEta_ = gtJet.v3.eta.V.to_int();
408  gtObj.hwZ0_ = hwZ0;
410 
411  outputCollection->push_back(gtObj);
412  }
413  event.put(std::move(outputCollection), "CL2JetsSC8");
414  }
415 
417  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
418  const TkEmCollection &collection = event.get(cl2PhotonToken_);
419  for (size_t i = 0; i < collection.size() && i < 12; i++) {
420  l1gt::Photon gtPhoton = collection[i].hwObj();
421  P2GTCandidate gtObj(0,
423  scales_.to_eta(gtPhoton.v3.eta.V.to_int()),
424  scales_.to_phi(gtPhoton.v3.phi.V.to_int()),
425  0));
426  gtObj.hwPT_ = gtPhoton.v3.pt.V.to_int();
427  gtObj.hwPhi_ = gtPhoton.v3.phi.V.to_int();
428  gtObj.hwEta_ = gtPhoton.v3.eta.V.to_int();
429  gtObj.hwIsolationPT_ = gtPhoton.isolationPT.V.to_int();
430  gtObj.hwQualityFlags_ = gtPhoton.qualityFlags.V.to_int();
431  gtObj.objectType_ = P2GTCandidate::CL2Photons;
432 
433  outputCollection->push_back(gtObj);
434  }
435  event.put(std::move(outputCollection), "CL2Photons");
436  }
437 
439  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
441  for (size_t i = 0; i < collection.size() && i < 12; i++) {
442  l1gt::Electron gtElectron = collection[i].hwObj();
443  int hwZ0 = gtElectron.z0.V.to_int() << 7;
444  P2GTCandidate gtObj(scales_.to_chg(gtElectron.charge.V.to_int()),
446  scales_.to_eta(gtElectron.v3.eta.V.to_int()),
447  scales_.to_phi(gtElectron.v3.phi.V.to_int()),
448  0),
450  gtObj.hwPT_ = gtElectron.v3.pt.V.to_int();
451  gtObj.hwPhi_ = gtElectron.v3.phi.V.to_int();
452  gtObj.hwEta_ = gtElectron.v3.eta.V.to_int();
453  gtObj.hwZ0_ = hwZ0;
454  gtObj.hwIsolationPT_ = gtElectron.isolationPT.V.to_int();
455  gtObj.hwQualityFlags_ = gtElectron.qualityFlags.V.to_int();
456  gtObj.hwCharge_ = gtElectron.charge.V.to_int();
458 
459  outputCollection->push_back(gtObj);
460  }
461  event.put(std::move(outputCollection), "CL2Electrons");
462  }
463 
465  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
466  const PFTauCollection &collection = event.get(cl2TauToken_);
467  for (size_t i = 0; i < collection.size() && i < 12; i++) {
468  l1gt::Tau gtTau = collection[i].getHWTauGT();
469  P2GTCandidate gtObj(scales_.to_chg(gtTau.charge.V.to_int()),
471  scales_.to_eta(gtTau.v3.eta.V.to_int()),
472  scales_.to_phi(gtTau.v3.phi.V.to_int()),
473  0));
474  gtObj.hwPT_ = gtTau.v3.pt.V.to_int();
475  gtObj.hwPhi_ = gtTau.v3.phi.V.to_int();
476  gtObj.hwEta_ = gtTau.v3.eta.V.to_int();
477  gtObj.hwSeed_pT_ = gtTau.seed_pt.V.to_int();
478  gtObj.hwSeed_z0_ = gtTau.seed_z0.V.to_int();
479  gtObj.hwCharge_ = gtTau.charge.V.to_int();
480  gtObj.hwType_ = gtTau.type.V.to_int();
481  gtObj.hwQualityScore_ = gtTau.quality.V.to_int();
482  gtObj.objectType_ = P2GTCandidate::CL2Taus;
483 
484  outputCollection->push_back(gtObj);
485  }
486  event.put(std::move(outputCollection), "CL2Taus");
487  }
488 
490  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
491  const std::vector<EtSum> &collection = event.get(cl2EtSumToken_);
492  const EtSum &met = collection[0];
493 
494  l1gt::Sum sum{true /* valid */, met.pt(), met.phi() / l1gt::Scales::ETAPHI_LSB, 0 /* scalar sum */};
495 
496  P2GTCandidate gtObj(0,
498  scales_.to_pT(sum.vector_pt.V.to_int()), 0, scales_.to_phi(sum.vector_phi.V.to_int()), 0));
499  gtObj.hwPT_ = sum.vector_pt.V.to_int();
500  gtObj.hwPhi_ = sum.vector_phi.V.to_int();
501  gtObj.hwScalarSumPT_ = sum.scalar_pt.V.to_int();
502  gtObj.objectType_ = P2GTCandidate::CL2EtSum;
503 
504  outputCollection->push_back(gtObj);
505  event.put(std::move(outputCollection), "CL2EtSum");
506  }
507 
509  std::unique_ptr<P2GTCandidateCollection> outputCollection = std::make_unique<P2GTCandidateCollection>();
510  const std::vector<EtSum> &collection = event.get(cl2HtSumToken_);
511  const EtSum &ht = collection[0];
512  const EtSum &mht = collection[1];
513 
514  P2GTCandidate gtObj(
515  0, reco::ParticleState::PolarLorentzVector(scales_.to_pT(mht.hwPt()), 0, scales_.to_phi(mht.hwPhi()), 0));
516  gtObj.hwPT_ = mht.hwPt();
517  gtObj.hwPhi_ = mht.hwPhi();
518  gtObj.hwScalarSumPT_ = ht.hwPt();
519  gtObj.objectType_ = P2GTCandidate::CL2HtSum;
520 
521  outputCollection->push_back(gtObj);
522  event.put(std::move(outputCollection), "CL2HtSum");
523  }
524 
532 
536 
544  }
545 } // namespace l1t
546 
547 using namespace l1t;
548 
~L1GTProducer() override=default
egquality_t qualityFlags
Definition: gt_datatypes.h:316
const edm::EDGetTokenT< VertexWordCollection > gttPrimaryVertexToken_
Definition: L1GTProducer.cc:78
std::vector< l1t::TkJetWord > TkJetWordCollection
Definition: TkJetWord.h:191
std::vector< TkElectron > TkElectronCollection
Definition: TkElectronFwd.h:16
std::vector< l1t::PFTau > PFTauCollection
Definition: PFTau.h:90
const edm::EDGetTokenT< TkElectronCollection > cl2ElectronToken_
Definition: L1GTProducer.cc:87
L1GTProducer(const edm::ParameterSet &)
Definition: L1GTProducer.cc:93
Optional< int > hwNumber_of_tracks_in_pv_
const L1GTScales scales_
Definition: L1GTProducer.cc:71
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: ParticleState.h:29
Optional< int > hwIsolationPT_
const edm::EDGetTokenT< TkJetWordCollection > gttPromptJetToken_
Definition: L1GTProducer.cc:73
void produceCL2JetsSC8(edm::Event &event) const
double to_phi(int value) const
Definition: L1GTScales.h:82
ObjectType objectType_
int to_chg(int value) const
Definition: L1GTScales.h:87
static void fillPSetDescription(edm::ParameterSetDescription &)
Definition: L1GTScales.cc:53
delete x;
Definition: CaloConfig.h:22
Definition: config.py:1
math::XYZPoint Point
point in the space
Definition: ParticleState.h:31
Optional< int > hwD0_
void produceGMTSaPromptMuons(edm::Event &event) const
const edm::EDGetTokenT< std::vector< l1t::EtSum > > cl2HtSumToken_
Definition: L1GTProducer.cc:90
iso_t isolationPT
Definition: gt_datatypes.h:317
const edm::EDGetTokenT< PFTauCollection > cl2TauToken_
Definition: L1GTProducer.cc:88
double to_z0(int value) const
Definition: L1GTScales.h:84
void produceCL2Taus(edm::Event &event) const
void produceCL2Photons(edm::Event &event) const
Optional< int > hwCharge_
static Jet unpack(const std::array< uint64_t, 2 > &src)
Definition: gt_datatypes.h:129
std::vector< l1t::PFJet > PFJetCollection
Definition: PFJet.h:61
Optional< int > hwQualityScore_
std::vector< TkEm > TkEmCollection
Definition: TkEmFwd.h:17
const edm::EDGetTokenT< std::vector< l1t::EtSum > > gttDisplacedHtSumToken_
Definition: L1GTProducer.cc:76
double to_eta(int value) const
Definition: L1GTScales.h:83
void produceCL2Electrons(edm::Event &event) const
void produceGMTTkMuons(edm::Event &event) const
Optional< int > hwQualityFlags_
Optional< int > hwPT_
const edm::EDGetTokenT< PFJetCollection > cl2JetSC4Token_
Definition: L1GTProducer.cc:84
void produceGTTPromptJets(edm::Event &event) const
egquality_t qualityFlags
Definition: gt_datatypes.h:264
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
const edm::EDGetTokenT< TrackerMuonCollection > gmtTkMuonToken_
Definition: L1GTProducer.cc:82
std::vector< VertexWord > VertexWordCollection
Definition: VertexWord.h:197
const edm::EDGetTokenT< std::vector< l1t::EtSum > > cl2EtSumToken_
Definition: L1GTProducer.cc:89
ThreeVector v3
Definition: gt_datatypes.h:263
void produceCL2EtSum(edm::Event &event) const
static void fillDescriptions(edm::ConfigurationDescriptions &)
void produceCL2JetsSC4(edm::Event &event) const
const edm::EDGetTokenT< SAMuonCollection > gmtSaDisplacedMuonToken_
Definition: L1GTProducer.cc:81
void produceGTTDisplacedJets(edm::Event &event) const
std::vector< TrackerMuon > TrackerMuonCollection
Definition: TrackerMuon.h:17
std::vector< SAMuon > SAMuonCollection
Definition: SAMuon.h:15
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
Optional< int > hwNumber_of_tracks_
const edm::EDGetTokenT< SAMuonCollection > gmtSaPromptMuonToken_
Definition: L1GTProducer.cc:80
void produceGTTPromptHtSum(edm::Event &event) const
void produceGTTDisplacedHtSum(edm::Event &event) const
const edm::EDGetTokenT< PFJetCollection > cl2JetSC8Token_
Definition: L1GTProducer.cc:85
double to_pT(int value) const
Definition: L1GTScales.h:81
constexpr float ETAPHI_LSB
Definition: gt_datatypes.h:45
void produceGTTEtSum(edm::Event &event) const
ThreeVector v3
Definition: gt_datatypes.h:315
HLT enums.
void produceCl2HtSum(edm::Event &event) const
Optional< int > hwSum_pT_pv_
ap_uint< 1 > charge
Definition: gt_datatypes.h:265
Optional< int > hwNumber_of_tracks_not_in_pv_
void produceGTTPrimaryVert(edm::Event &event) const
Optional< int > hwPhi_
const edm::EDGetTokenT< TkEmCollection > cl2PhotonToken_
Definition: L1GTProducer.cc:86
Optional< int > hwEta_
const edm::EDGetTokenT< std::vector< l1t::EtSum > > gttPromptHtSumToken_
Definition: L1GTProducer.cc:75
def move(src, dest)
Definition: eostools.py:511
const edm::EDGetTokenT< std::vector< l1t::EtSum > > gttEtSumToken_
Definition: L1GTProducer.cc:77
Optional< int > hwBeta_
void produceGMTSaDisplacedMuons(edm::Event &event) const
Definition: event.py:1
const edm::EDGetTokenT< TkJetWordCollection > gttDisplacedJetToken_
Definition: L1GTProducer.cc:74
Optional< int > hwZ0_