CMS 3D CMS Logo

L1TBasicDemo.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // L1TBasicDemo: demonstrate basic access of L1T objects
4 //
5 
18 
19 // leaving out the following namespaces, so namespaces are explicit in the demo code:
20 // using namespace l1t;
21 // using namespace edm;
22 
23 class L1TBasicDemo : public edm::EDAnalyzer {
24 public:
25  explicit L1TBasicDemo(const edm::ParameterSet&);
26  ~L1TBasicDemo() override;
27 
28  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
29 
30 private:
31 
32  void analyze(edm::Event const&, edm::EventSetup const&) override;
33 
34  // EDM tokens:
40 
42 
43 };
44 
46  egToken_ = consumes<l1t::EGammaBxCollection> (iConfig.getParameter<edm::InputTag>("EgTag"));
47  tauToken_ = consumes<l1t::TauBxCollection> (iConfig.getParameter<edm::InputTag>("TauTag"));
48  jetToken_ = consumes<l1t::JetBxCollection> (iConfig.getParameter<edm::InputTag>("JetTag"));
49  sumToken_ = consumes<l1t::EtSumBxCollection> (iConfig.getParameter<edm::InputTag>("SumTag"));
50  muonToken_ = consumes<l1t::MuonBxCollection> (iConfig.getParameter<edm::InputTag>("MuonTag"));
51  trigger_bx_only = iConfig.getParameter<bool>("UseTriggerBxOnly");
52 }
53 
54 
56 
57 void
59 {
60  cout << "INFO: dumping EGamma BX collection:\n";
62  iEvent.getByToken(egToken_, eg);
63  if (eg.isValid()){
64  for (int ibx = eg->getFirstBX(); ibx <= eg->getLastBX(); ++ibx) {
65  if (trigger_bx_only && (ibx != 0)) continue;
66  for (auto it=eg->begin(ibx); it!=eg->end(ibx); it++){
67  if (it->et() == 0) continue; // if you don't care about L1T candidates with zero ET.
68  cout << "bx: " << ibx << " et: " << it->et() << " eta: " << it->eta() << " phi: " << it->phi() << "\n";
69  }
70  }
71  } else {
72  edm::LogWarning("MissingProduct") << "L1Upgrade e-gamma bx collection not found." << std::endl;
73  }
74 
75  cout << "INFO: dumping Tau BX collection:\n";
77  iEvent.getByToken(tauToken_, tau);
78  if (tau.isValid()){
79  for (int ibx = tau->getFirstBX(); ibx <= tau->getLastBX(); ++ibx) {
80  if (trigger_bx_only && (ibx != 0)) continue;
81  for (auto it=tau->begin(ibx); it!=tau->end(ibx); it++){
82  if (it->et() == 0) continue; // if you don't care about L1T candidates with zero ET.
83  cout << "bx: " << ibx << " et: " << it->et() << " eta: " << it->eta() << " phi: " << it->phi() << "\n";
84  }
85  }
86  } else {
87  edm::LogWarning("MissingProduct") << "L1Upgrade tau bx collection not found." << std::endl;
88  }
89 
90  cout << "INFO: dumping Jet BX collection:\n";
92  iEvent.getByToken(jetToken_, jet);
93  if (jet.isValid()){
94  for (int ibx = jet->getFirstBX(); ibx <= jet->getLastBX(); ++ibx) {
95  if (trigger_bx_only && (ibx != 0)) continue;
96  for (auto it=jet->begin(ibx); it!=jet->end(ibx); it++){
97  if (it->et() == 0) continue; // if you don't care about L1T candidates with zero ET.
98  cout << "bx: " << ibx << " et: " << it->et() << " eta: " << it->eta() << " phi: " << it->phi() << "\n";
99  }
100  }
101  } else {
102  edm::LogWarning("MissingProduct") << "L1Upgrade jet bx collection not found." << std::endl;
103  }
104 
105  cout << "INFO: dumping EtSum BX collection:\n";
107  iEvent.getByToken(sumToken_, sum);
108  if (sum.isValid()){
109  l1t::EtSumHelper hsum(sum);
110  cout << "met: " << hsum.MissingEt() << "\n";
111  cout << "met phi: " << hsum.MissingEtPhi() << "\n";
112  cout << "mht: " << hsum.MissingHt() << "\n";
113  cout << "mht phi: " << hsum.MissingHtPhi() << "\n";
114  cout << "sum et: " << hsum.TotalEt() << "\n";
115  cout << "sum ht: " << hsum.TotalHt() << "\n";
116  } else {
117  edm::LogWarning("MissingProduct") << "L1Upgrade sum bx collection not found." << std::endl;
118  }
119 
120  cout << "INFO: dumping Muon BX collection:\n";
122  iEvent.getByToken(muonToken_, muon);
123  if (muon.isValid()){
124  for (int ibx = muon->getFirstBX(); ibx <= muon->getLastBX(); ++ibx) {
125  if (trigger_bx_only && (ibx != 0)) continue;
126  for (auto it=muon->begin(ibx); it!=muon->end(ibx); it++){
127  if (it->et() == 0) continue; // if you don't care about L1T candidates with zero ET.
128  cout << "bx: " << ibx << " et: " << it->et() << " eta: " << it->eta() << " phi: " << it->phi() << "\n";
129  }
130  }
131  } else {
132  edm::LogWarning("MissingProduct") << "L1Upgrade muon bx collection not found." << std::endl;
133  }
134 }
135 
136 
137 
138 
139 
140 
141 void
143  //The following says we do not know what parameters are allowed so do no validation
144  // Please change this to state exactly what you do use, even if it is no parameters
146  desc.setUnknown();
147  descriptions.addDefault(desc);
148 }
149 
150 
const_iterator end(int bx) const
T getParameter(std::string const &) const
edm::EDGetTokenT< l1t::EtSumBxCollection > sumToken_
Definition: L1TBasicDemo.cc:38
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
double MissingEtPhi() const
Definition: EtSumHelper.cc:14
void analyze(edm::Event const &, edm::EventSetup const &) override
Definition: L1TBasicDemo.cc:58
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
double TotalEt() const
Definition: EtSumHelper.cc:35
int iEvent
Definition: GenABIO.cc:224
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
void addDefault(ParameterSetDescription const &psetDescription)
L1TBasicDemo(const edm::ParameterSet &)
Definition: L1TBasicDemo.cc:45
double MissingHt() const
Definition: EtSumHelper.cc:21
edm::EDGetTokenT< l1t::TauBxCollection > tauToken_
Definition: L1TBasicDemo.cc:36
edm::EDGetTokenT< l1t::MuonBxCollection > muonToken_
Definition: L1TBasicDemo.cc:39
bool isValid() const
Definition: HandleBase.h:74
edm::EDGetTokenT< l1t::JetBxCollection > jetToken_
Definition: L1TBasicDemo.cc:37
~L1TBasicDemo() override
Definition: L1TBasicDemo.cc:55
int getFirstBX() const
edm::EDGetTokenT< l1t::EGammaBxCollection > egToken_
Definition: L1TBasicDemo.cc:35
double TotalHt() const
Definition: EtSumHelper.cc:42
int getLastBX() const
double MissingHtPhi() const
Definition: EtSumHelper.cc:28
double MissingEt() const
Definition: EtSumHelper.cc:7
const_iterator begin(int bx) const