CMS 3D CMS Logo

HGCalTriggerNtupleTowers.cc
Go to the documentation of this file.
5 
7 public:
10  void initialize(TTree&, const edm::ParameterSet&, edm::ConsumesCollector&&) final;
11  void fill(const edm::Event& e, const edm::EventSetup& es) final;
12 
13 private:
14  void clear() final;
15 
17 
18  int tower_n_;
19  std::vector<float> tower_pt_;
20  std::vector<float> tower_energy_;
21  std::vector<float> tower_eta_;
22  std::vector<float> tower_phi_;
23  std::vector<float> tower_etEm_;
24  std::vector<float> tower_etHad_;
25  std::vector<int> tower_iEta_;
26  std::vector<int> tower_iPhi_;
27 };
28 
30 
32  : HGCalTriggerNtupleBase(conf) {}
33 
35  const edm::ParameterSet& conf,
36  edm::ConsumesCollector&& collector) {
37  towers_token_ = collector.consumes<l1t::HGCalTowerBxCollection>(conf.getParameter<edm::InputTag>("Towers"));
38 
39  std::string prefix(conf.getUntrackedParameter<std::string>("Prefix", "tower"));
40 
41  std::string bname;
42  auto withPrefix([&prefix, &bname](char const* vname) -> char const* {
43  bname = prefix + "_" + vname;
44  return bname.c_str();
45  });
46 
47  tree.Branch(withPrefix("n"), &tower_n_, (prefix + "_n/I").c_str());
48  tree.Branch(withPrefix("pt"), &tower_pt_);
49  tree.Branch(withPrefix("energy"), &tower_energy_);
50  tree.Branch(withPrefix("eta"), &tower_eta_);
51  tree.Branch(withPrefix("phi"), &tower_phi_);
52  tree.Branch(withPrefix("etEm"), &tower_etEm_);
53  tree.Branch(withPrefix("etHad"), &tower_etHad_);
54  tree.Branch(withPrefix("iEta"), &tower_iEta_);
55  tree.Branch(withPrefix("iPhi"), &tower_iPhi_);
56 }
57 
59  // retrieve towers
61  e.getByToken(towers_token_, towers_h);
62  const l1t::HGCalTowerBxCollection& towers = *towers_h;
63 
64  // retrieve geometry
67 
68  clear();
69  for (auto tower_itr = towers.begin(0); tower_itr != towers.end(0); tower_itr++) {
70  tower_n_++;
71  // physical values
72  tower_pt_.emplace_back(tower_itr->pt());
73  tower_energy_.emplace_back(tower_itr->energy());
74  tower_eta_.emplace_back(tower_itr->eta());
75  tower_phi_.emplace_back(tower_itr->phi());
76  tower_etEm_.emplace_back(tower_itr->etEm());
77  tower_etHad_.emplace_back(tower_itr->etHad());
78 
79  tower_iEta_.emplace_back(tower_itr->id().iEta());
80  tower_iPhi_.emplace_back(tower_itr->id().iPhi());
81  }
82 }
83 
85  tower_n_ = 0;
86  tower_pt_.clear();
87  tower_energy_.clear();
88  tower_eta_.clear();
89  tower_phi_.clear();
90  tower_etEm_.clear();
91  tower_etHad_.clear();
92  tower_iEta_.clear();
93  tower_iPhi_.clear();
94 }
HGCalTriggerNtupleHGCTowers::tower_phi_
std::vector< float > tower_phi_
Definition: HGCalTriggerNtupleTowers.cc:22
geometry
ESHandle< TrackerGeometry > geometry
Definition: TkLasBeamFitter.cc:200
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
edm
HLT enums.
Definition: AlignableModifier.h:19
tree
Definition: tree.py:1
geometry
Definition: geometry.py:1
HGCalTriggerNtupleHGCTowers::tower_energy_
std::vector< float > tower_energy_
Definition: HGCalTriggerNtupleTowers.cc:20
HGCalTriggerNtupleHGCTowers::tower_etEm_
std::vector< float > tower_etEm_
Definition: HGCalTriggerNtupleTowers.cc:23
HGCalTriggerNtupleHGCTowers::tower_eta_
std::vector< float > tower_eta_
Definition: HGCalTriggerNtupleTowers.cc:21
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
watchdog.const
const
Definition: watchdog.py:83
edm::Handle
Definition: AssociativeIterator.h:50
HGCalTriggerNtupleHGCTowers::fill
void fill(const edm::Event &e, const edm::EventSetup &es) final
Definition: HGCalTriggerNtupleTowers.cc:58
BXVector
Definition: BXVector.h:15
HGCalTriggerNtupleBase
Definition: HGCalTriggerNtupleBase.h:10
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
HGCalTriggerNtupleHGCTowers::towers_token_
edm::EDGetToken towers_token_
Definition: HGCalTriggerNtupleTowers.cc:16
HGCalTriggerNtupleHGCTowers::tower_etHad_
std::vector< float > tower_etHad_
Definition: HGCalTriggerNtupleTowers.cc:24
HGCalTriggerGeometryBase.h
edm::ESHandle< HGCalTriggerGeometryBase >
Event
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition: PluginFactory.h:124
CaloGeometryRecord.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HGCalTriggerNtupleHGCTowers::clear
void clear() final
Definition: HGCalTriggerNtupleTowers.cc:84
edm::ParameterSet
Definition: ParameterSet.h:36
ParameterSet
Definition: Functions.h:16
HGCalTower.h
edmplugin::PluginFactory
Definition: PluginFactory.h:34
HGCalTriggerNtupleBase.h
HGCalTriggerNtupleHGCTowers::tower_iEta_
std::vector< int > tower_iEta_
Definition: HGCalTriggerNtupleTowers.cc:25
edm::EventSetup
Definition: EventSetup.h:57
HGCalTriggerNtupleHGCTowers::initialize
void initialize(TTree &, const edm::ParameterSet &, edm::ConsumesCollector &&) final
Definition: HGCalTriggerNtupleTowers.cc:34
HGCalTriggerNtupleHGCTowers::tower_iPhi_
std::vector< int > tower_iPhi_
Definition: HGCalTriggerNtupleTowers.cc:26
get
#define get
EDGetToken
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
HGCalTriggerNtupleHGCTowers::~HGCalTriggerNtupleHGCTowers
~HGCalTriggerNtupleHGCTowers() override
Definition: HGCalTriggerNtupleTowers.cc:9
HLT_2018_cff.towers
towers
Definition: HLT_2018_cff.py:35030
std
Definition: JetResolutionObject.h:76
EventSetup
HGCalTriggerNtupleHGCTowers::tower_n_
int tower_n_
Definition: HGCalTriggerNtupleTowers.cc:18
edm::Event
Definition: Event.h:73
HGCalTriggerNtupleHGCTowers::tower_pt_
std::vector< float > tower_pt_
Definition: HGCalTriggerNtupleTowers.cc:19
HGCalTriggerNtupleHGCTowers
Definition: HGCalTriggerNtupleTowers.cc:6
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
HGCalTriggerNtupleHGCTowers::HGCalTriggerNtupleHGCTowers
HGCalTriggerNtupleHGCTowers(const edm::ParameterSet &conf)
Definition: HGCalTriggerNtupleTowers.cc:31
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
ZMuMuAnalysisNtupler_cff.prefix
prefix
Definition: ZMuMuAnalysisNtupler_cff.py:14