CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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  void analyze(edm::Event const&, edm::EventSetup const&) override;
32 
33  // EDM tokens:
39 
41 };
42 
44  egToken_ = consumes<l1t::EGammaBxCollection>(iConfig.getParameter<edm::InputTag>("EgTag"));
45  tauToken_ = consumes<l1t::TauBxCollection>(iConfig.getParameter<edm::InputTag>("TauTag"));
46  jetToken_ = consumes<l1t::JetBxCollection>(iConfig.getParameter<edm::InputTag>("JetTag"));
47  sumToken_ = consumes<l1t::EtSumBxCollection>(iConfig.getParameter<edm::InputTag>("SumTag"));
48  muonToken_ = consumes<l1t::MuonBxCollection>(iConfig.getParameter<edm::InputTag>("MuonTag"));
49  trigger_bx_only = iConfig.getParameter<bool>("UseTriggerBxOnly");
50 }
51 
53 
55  cout << "INFO: dumping EGamma BX collection:\n";
57  iEvent.getByToken(egToken_, eg);
58  if (eg.isValid()) {
59  for (int ibx = eg->getFirstBX(); ibx <= eg->getLastBX(); ++ibx) {
60  if (trigger_bx_only && (ibx != 0))
61  continue;
62  for (auto it = eg->begin(ibx); it != eg->end(ibx); it++) {
63  if (it->et() == 0)
64  continue; // if you don't care about L1T candidates with zero ET.
65  cout << "bx: " << ibx << " et: " << it->et() << " eta: " << it->eta() << " phi: " << it->phi() << "\n";
66  }
67  }
68  } else {
69  edm::LogWarning("MissingProduct") << "L1Upgrade e-gamma bx collection not found." << std::endl;
70  }
71 
72  cout << "INFO: dumping Tau BX collection:\n";
74  iEvent.getByToken(tauToken_, tau);
75  if (tau.isValid()) {
76  for (int ibx = tau->getFirstBX(); ibx <= tau->getLastBX(); ++ibx) {
77  if (trigger_bx_only && (ibx != 0))
78  continue;
79  for (auto it = tau->begin(ibx); it != tau->end(ibx); it++) {
80  if (it->et() == 0)
81  continue; // if you don't care about L1T candidates with zero ET.
82  cout << "bx: " << ibx << " et: " << it->et() << " eta: " << it->eta() << " phi: " << it->phi() << "\n";
83  }
84  }
85  } else {
86  edm::LogWarning("MissingProduct") << "L1Upgrade tau bx collection not found." << std::endl;
87  }
88 
89  cout << "INFO: dumping Jet BX collection:\n";
91  iEvent.getByToken(jetToken_, jet);
92  if (jet.isValid()) {
93  for (int ibx = jet->getFirstBX(); ibx <= jet->getLastBX(); ++ibx) {
94  if (trigger_bx_only && (ibx != 0))
95  continue;
96  for (auto it = jet->begin(ibx); it != jet->end(ibx); it++) {
97  if (it->et() == 0)
98  continue; // if you don't care about L1T candidates with zero ET.
99  cout << "bx: " << ibx << " et: " << it->et() << " eta: " << it->eta() << " phi: " << it->phi() << "\n";
100  }
101  }
102  } else {
103  edm::LogWarning("MissingProduct") << "L1Upgrade jet bx collection not found." << std::endl;
104  }
105 
106  cout << "INFO: dumping EtSum BX collection:\n";
108  iEvent.getByToken(sumToken_, sum);
109  if (sum.isValid()) {
110  l1t::EtSumHelper hsum(sum);
111  cout << "met: " << hsum.MissingEt() << "\n";
112  cout << "met phi: " << hsum.MissingEtPhi() << "\n";
113  cout << "mht: " << hsum.MissingHt() << "\n";
114  cout << "mht phi: " << hsum.MissingHtPhi() << "\n";
115  cout << "sum et: " << hsum.TotalEt() << "\n";
116  cout << "sum ht: " << hsum.TotalHt() << "\n";
117  } else {
118  edm::LogWarning("MissingProduct") << "L1Upgrade sum bx collection not found." << std::endl;
119  }
120 
121  cout << "INFO: dumping Muon BX collection:\n";
123  iEvent.getByToken(muonToken_, muon);
124  if (muon.isValid()) {
125  for (int ibx = muon->getFirstBX(); ibx <= muon->getLastBX(); ++ibx) {
126  if (trigger_bx_only && (ibx != 0))
127  continue;
128  for (auto it = muon->begin(ibx); it != muon->end(ibx); it++) {
129  if (it->et() == 0)
130  continue; // if you don't care about L1T candidates with zero ET.
131  cout << "bx: " << ibx << " et: " << it->et() << " eta: " << it->eta() << " phi: " << it->phi() << "\n";
132  }
133  }
134  } else {
135  edm::LogWarning("MissingProduct") << "L1Upgrade muon bx collection not found." << std::endl;
136  }
137 }
138 
140  //The following says we do not know what parameters are allowed so do no validation
141  // Please change this to state exactly what you do use, even if it is no parameters
143  desc.setUnknown();
144  descriptions.addDefault(desc);
145 }
146 
edm::EDGetTokenT< l1t::EtSumBxCollection > sumToken_
Definition: L1TBasicDemo.cc:37
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
double MissingEtPhi() const
Definition: EtSumHelper.cc:14
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
void analyze(edm::Event const &, edm::EventSetup const &) override
Definition: L1TBasicDemo.cc:54
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
double TotalEt() const
Definition: EtSumHelper.cc:38
int iEvent
Definition: GenABIO.cc:224
void addDefault(ParameterSetDescription const &psetDescription)
L1TBasicDemo(const edm::ParameterSet &)
Definition: L1TBasicDemo.cc:43
double MissingHt() const
Definition: EtSumHelper.cc:22
edm::EDGetTokenT< l1t::TauBxCollection > tauToken_
Definition: L1TBasicDemo.cc:35
edm::EDGetTokenT< l1t::MuonBxCollection > muonToken_
Definition: L1TBasicDemo.cc:38
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< l1t::JetBxCollection > jetToken_
Definition: L1TBasicDemo.cc:36
~L1TBasicDemo() override
Definition: L1TBasicDemo.cc:52
edm::EDGetTokenT< l1t::EGammaBxCollection > egToken_
Definition: L1TBasicDemo.cc:34
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
double TotalHt() const
Definition: EtSumHelper.cc:46
double MissingHtPhi() const
Definition: EtSumHelper.cc:30
tuple cout
Definition: gather_cfg.py:144
Log< level::Warning, false > LogWarning
double MissingEt() const
Definition: EtSumHelper.cc:6