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  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 
L1TBasicDemo::tauToken_
edm::EDGetTokenT< l1t::TauBxCollection > tauToken_
Definition: L1TBasicDemo.cc:35
l1t::EtSumHelper::MissingHtPhi
double MissingHtPhi() const
Definition: EtSumHelper.cc:30
MessageLogger.h
L1TBasicDemo::~L1TBasicDemo
~L1TBasicDemo() override
Definition: L1TBasicDemo.cc:52
metsig::tau
Definition: SignAlgoResolutions.h:49
muon
Definition: MuonCocktails.h:17
L1TBasicDemo::jetToken_
edm::EDGetTokenT< l1t::JetBxCollection > jetToken_
Definition: L1TBasicDemo.cc:36
edm::EDGetTokenT
Definition: EDGetToken.h:33
Muon.h
gather_cfg.cout
cout
Definition: gather_cfg.py:144
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
Jet.h
l1t::EtSumHelper::MissingEtPhi
double MissingEtPhi() const
Definition: EtSumHelper.cc:14
EDAnalyzer.h
l1t::EtSumHelper::MissingHt
double MissingHt() const
Definition: EtSumHelper.cc:22
HLT_2018_cff.muon
muon
Definition: HLT_2018_cff.py:10349
edm::Handle
Definition: AssociativeIterator.h:50
edm::EDAnalyzer
Definition: EDAnalyzer.h:29
BXVector::getFirstBX
int getFirstBX() const
L1TBasicDemo
Definition: L1TBasicDemo.cc:23
MakerMacros.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
EGamma.h
L1TBasicDemo::analyze
void analyze(edm::Event const &, edm::EventSetup const &) override
Definition: L1TBasicDemo.cc:54
BXVector::begin
const_iterator begin(int bx) const
L1TBasicDemo::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: L1TBasicDemo.cc:139
L1TBasicDemo::egToken_
edm::EDGetTokenT< l1t::EGammaBxCollection > egToken_
Definition: L1TBasicDemo.cc:34
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
edm::LogWarning
Definition: MessageLogger.h:141
BXVector::end
const_iterator end(int bx) const
edm::ParameterSet
Definition: ParameterSet.h:36
Event.h
iEvent
int iEvent
Definition: GenABIO.cc:224
L1TBasicDemo::sumToken_
edm::EDGetTokenT< l1t::EtSumBxCollection > sumToken_
Definition: L1TBasicDemo.cc:37
edm::ParameterSetDescription::setUnknown
void setUnknown()
Definition: ParameterSetDescription.cc:39
l1t::EtSumHelper::TotalHt
double TotalHt() const
Definition: EtSumHelper.cc:46
edm::EventSetup
Definition: EventSetup.h:57
L1TBasicDemo::L1TBasicDemo
L1TBasicDemo(const edm::ParameterSet &)
Definition: L1TBasicDemo.cc:43
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
L1TBasicDemo::trigger_bx_only
int trigger_bx_only
Definition: L1TBasicDemo.cc:40
l1t::EtSumHelper
Definition: EtSumHelper.h:12
metsig::jet
Definition: SignAlgoResolutions.h:47
EventSetup.h
l1t::EtSumHelper::MissingEt
double MissingEt() const
Definition: EtSumHelper.cc:6
l1t::EtSumHelper::TotalEt
double TotalEt() const
Definition: EtSumHelper.cc:38
ParameterSet.h
EtSum.h
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::Event
Definition: Event.h:73
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
BXVector::getLastBX
int getLastBX() const
edm::InputTag
Definition: InputTag.h:15
EtSumHelper.h
L1TBasicDemo::muonToken_
edm::EDGetTokenT< l1t::MuonBxCollection > muonToken_
Definition: L1TBasicDemo.cc:38
Tau.h