CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
HGCalTriggerNtupleHGCClusters Class Reference
Inheritance diagram for HGCalTriggerNtupleHGCClusters:
HGCalTriggerNtupleBase

Public Member Functions

virtual void fill (const edm::Event &e, const edm::EventSetup &es) override final
 
 HGCalTriggerNtupleHGCClusters (const edm::ParameterSet &conf)
 
virtual void initialize (TTree &, const edm::ParameterSet &, edm::ConsumesCollector &&) override final
 
 ~HGCalTriggerNtupleHGCClusters ()
 
- Public Member Functions inherited from HGCalTriggerNtupleBase
 HGCalTriggerNtupleBase (const edm::ParameterSet &conf)
 
virtual ~HGCalTriggerNtupleBase ()
 

Private Member Functions

virtual void clear () override final
 

Private Attributes

std::vector< std::vector< uint32_t > > cl_cells_id_
 
std::vector< int > cl_cells_n_
 
std::vector< float > cl_energy_
 
std::vector< float > cl_eta_
 
std::vector< uint32_t > cl_id_
 
std::vector< int > cl_layer_
 
std::vector< float > cl_mipPt_
 
std::vector< uint32_t > cl_multicluster_id_
 
std::vector< float > cl_multicluster_pt_
 
int cl_n_
 
std::vector< float > cl_phi_
 
std::vector< float > cl_pt_
 
std::vector< int > cl_subdet_
 
edm::EDGetToken clusters_token_
 
bool filter_clusters_in_multiclusters_
 
edm::EDGetToken multiclusters_token_
 
HGCalTriggerTools triggerTools_
 

Additional Inherited Members

Detailed Description

Definition at line 13 of file HGCalTriggerNtupleHGCClusters.cc.

Constructor & Destructor Documentation

HGCalTriggerNtupleHGCClusters::HGCalTriggerNtupleHGCClusters ( const edm::ParameterSet conf)

Definition at line 54 of file HGCalTriggerNtupleHGCClusters.cc.

References initialize().

55  filter_clusters_in_multiclusters_(conf.getParameter<bool>("FilterClustersInMulticlusters"))
56 {
57 }
T getParameter(std::string const &) const
HGCalTriggerNtupleBase(const edm::ParameterSet &conf)
HGCalTriggerNtupleHGCClusters::~HGCalTriggerNtupleHGCClusters ( )
inline

Definition at line 18 of file HGCalTriggerNtupleHGCClusters.cc.

References clear(), MillePedeFileConverter_cfg::e, fill(), and initialize().

18 {};

Member Function Documentation

void HGCalTriggerNtupleHGCClusters::clear ( void  )
finaloverrideprivatevirtual

Implements HGCalTriggerNtupleBase.

Definition at line 145 of file HGCalTriggerNtupleHGCClusters.cc.

References cl_cells_id_, cl_cells_n_, cl_energy_, cl_eta_, cl_id_, cl_layer_, cl_mipPt_, cl_multicluster_id_, cl_multicluster_pt_, cl_n_, cl_phi_, cl_pt_, and cl_subdet_.

Referenced by fill(), and ~HGCalTriggerNtupleHGCClusters().

146 {
147  cl_n_ = 0;
148  cl_id_.clear();
149  cl_mipPt_.clear();
150  cl_pt_.clear();
151  cl_energy_.clear();
152  cl_eta_.clear();
153  cl_phi_.clear();
154  cl_layer_.clear();
155  cl_subdet_.clear();
156  cl_cells_n_.clear();
157  cl_cells_id_.clear();
158  cl_multicluster_id_.clear();
159  cl_multicluster_pt_.clear();
160 }
std::vector< std::vector< uint32_t > > cl_cells_id_
void HGCalTriggerNtupleHGCClusters::fill ( const edm::Event e,
const edm::EventSetup es 
)
finaloverridevirtual

Implements HGCalTriggerNtupleBase.

Definition at line 83 of file HGCalTriggerNtupleHGCClusters.cc.

References BXVector< T >::begin(), cl_cells_id_, cl_cells_n_, cl_energy_, cl_eta_, cl_id_, cl_layer_, cl_mipPt_, cl_multicluster_id_, cl_multicluster_pt_, cl_n_, cl_phi_, cl_pt_, cl_subdet_, clear(), fastPrimaryVertexProducer_cfi::clusters, clusters_token_, BXVector< T >::end(), HGCalTriggerTools::eventSetup(), filter_clusters_in_multiclusters_, geometry, edm::EventSetup::get(), edm::Event::getByToken(), HGCalTriggerTools::layerWithOffset(), multiclusters_token_, create_public_lumi_plots::transform, and triggerTools_.

Referenced by initialize(), and ~HGCalTriggerNtupleHGCClusters().

84 {
85 
86  // retrieve clusters
88  e.getByToken(clusters_token_, clusters_h);
89  const l1t::HGCalClusterBxCollection& clusters = *clusters_h;
91  e.getByToken(multiclusters_token_, multiclusters_h);
92  const l1t::HGCalMulticlusterBxCollection& multiclusters = *multiclusters_h;
93 
94  // retrieve geometry
96  es.get<CaloGeometryRecord>().get(geometry);
97 
99 
100  // Associate cells to clusters
101  std::unordered_map<uint32_t, l1t::HGCalMulticlusterBxCollection::const_iterator> cluster2multicluster;
102  for(auto mcl_itr=multiclusters.begin(0); mcl_itr!=multiclusters.end(0); mcl_itr++)
103  {
104  // loop on 2D clusters inside 3D clusters
105  for(const auto& cl_ptr : mcl_itr->constituents())
106  {
107  cluster2multicluster.emplace(cl_ptr.second->detId(), mcl_itr);
108  }
109  }
110 
111 
112 
113  clear();
114  for(auto cl_itr=clusters.begin(0); cl_itr!=clusters.end(0); cl_itr++)
115  {
116  auto mcl_itr = cluster2multicluster.find(cl_itr->detId());
117  uint32_t mcl_id = (mcl_itr!=cluster2multicluster.end() ? mcl_itr->second->detId() : 0);
118  float mcl_pt = (mcl_itr!=cluster2multicluster.end() ? mcl_itr->second->pt() : 0.);
119  if(filter_clusters_in_multiclusters_ && mcl_id==0) continue;
120  cl_n_++;
121  cl_mipPt_.emplace_back(cl_itr->mipPt());
122  // physical values
123  cl_pt_.emplace_back(cl_itr->pt());
124  cl_energy_.emplace_back(cl_itr->energy());
125  cl_eta_.emplace_back(cl_itr->eta());
126  cl_phi_.emplace_back(cl_itr->phi());
127 
128  cl_id_.emplace_back(cl_itr->detId());
129  cl_layer_.emplace_back(triggerTools_.layerWithOffset(cl_itr->detId()));
130  cl_subdet_.emplace_back(cl_itr->subdetId());
131  cl_cells_n_.emplace_back(cl_itr->constituents().size());
132  // Retrieve indices of trigger cells inside cluster
133  cl_cells_id_.emplace_back(cl_itr->constituents().size());
134  std::transform(cl_itr->constituents_begin(), cl_itr->constituents_end(),
135  cl_cells_id_.back().begin(), [](const std::pair<uint32_t,edm::Ptr<l1t::HGCalTriggerCell>>& id_tc){return id_tc.second->detId();}
136  );
137  cl_multicluster_id_.emplace_back(mcl_id);
138  cl_multicluster_pt_.emplace_back(mcl_pt);
139  }
140 }
const_iterator end(int bx) const
void eventSetup(const edm::EventSetup &)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
unsigned layerWithOffset(const DetId &) const
std::vector< std::vector< uint32_t > > cl_cells_id_
const T & get() const
Definition: EventSetup.h:55
ESHandle< TrackerGeometry > geometry
const_iterator begin(int bx) const
void HGCalTriggerNtupleHGCClusters::initialize ( TTree &  tree,
const edm::ParameterSet conf,
edm::ConsumesCollector &&  collector 
)
finaloverridevirtual

Implements HGCalTriggerNtupleBase.

Definition at line 61 of file HGCalTriggerNtupleHGCClusters.cc.

References cl_cells_id_, cl_cells_n_, cl_energy_, cl_eta_, cl_id_, cl_layer_, cl_mipPt_, cl_multicluster_id_, cl_multicluster_pt_, cl_n_, cl_phi_, cl_pt_, cl_subdet_, clusters_token_, fill(), edm::ParameterSet::getParameter(), and multiclusters_token_.

Referenced by HGCalTriggerNtupleHGCClusters(), and ~HGCalTriggerNtupleHGCClusters().

62 {
65 
66  tree.Branch("cl_n", &cl_n_, "cl_n/I");
67  tree.Branch("cl_id", &cl_id_);
68  tree.Branch("cl_mipPt", &cl_mipPt_);
69  tree.Branch("cl_pt", &cl_pt_);
70  tree.Branch("cl_energy", &cl_energy_);
71  tree.Branch("cl_eta", &cl_eta_);
72  tree.Branch("cl_phi", &cl_phi_);
73  tree.Branch("cl_layer", &cl_layer_);
74  tree.Branch("cl_subdet", &cl_subdet_);
75  tree.Branch("cl_cells_n", &cl_cells_n_);
76  tree.Branch("cl_cells_id", &cl_cells_id_);
77  tree.Branch("cl_multicluster_id", &cl_multicluster_id_);
78  tree.Branch("cl_multicluster_pt", &cl_multicluster_pt_);
79 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
std::vector< std::vector< uint32_t > > cl_cells_id_
Definition: tree.py:1

Member Data Documentation

std::vector<std::vector<uint32_t> > HGCalTriggerNtupleHGCClusters::cl_cells_id_
private

Definition at line 41 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

std::vector<int> HGCalTriggerNtupleHGCClusters::cl_cells_n_
private

Definition at line 40 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleHGCClusters::cl_energy_
private

Definition at line 35 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleHGCClusters::cl_eta_
private

Definition at line 36 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

std::vector<uint32_t> HGCalTriggerNtupleHGCClusters::cl_id_
private

Definition at line 32 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

std::vector<int> HGCalTriggerNtupleHGCClusters::cl_layer_
private

Definition at line 38 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleHGCClusters::cl_mipPt_
private

Definition at line 33 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

std::vector<uint32_t> HGCalTriggerNtupleHGCClusters::cl_multicluster_id_
private

Definition at line 42 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleHGCClusters::cl_multicluster_pt_
private

Definition at line 43 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

int HGCalTriggerNtupleHGCClusters::cl_n_
private

Definition at line 31 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleHGCClusters::cl_phi_
private

Definition at line 37 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleHGCClusters::cl_pt_
private

Definition at line 34 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

std::vector<int> HGCalTriggerNtupleHGCClusters::cl_subdet_
private

Definition at line 39 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by clear(), fill(), and initialize().

edm::EDGetToken HGCalTriggerNtupleHGCClusters::clusters_token_
private

Definition at line 27 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by fill(), and initialize().

bool HGCalTriggerNtupleHGCClusters::filter_clusters_in_multiclusters_
private

Definition at line 26 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by fill().

edm::EDGetToken HGCalTriggerNtupleHGCClusters::multiclusters_token_
private

Definition at line 27 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by fill(), and initialize().

HGCalTriggerTools HGCalTriggerNtupleHGCClusters::triggerTools_
private

Definition at line 28 of file HGCalTriggerNtupleHGCClusters.cc.

Referenced by fill().