CMS 3D CMS Logo

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

Public Member Functions

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

Private Member Functions

void clear () final
 

Private Attributes

edm::ESHandle< HGCalTriggerGeometryBasegeometry_
 
std::vector< uint32_t > panel_id_
 
std::vector< int > panel_layer_
 
int panel_n_
 
std::vector< int > panel_number_
 
std::vector< int > panel_sector_
 
std::vector< std::vector< uint32_t > > panel_tc_cell_
 
std::vector< std::vector< uint32_t > > panel_tc_id_
 
std::vector< std::vector< float > > panel_tc_mipPt_
 
std::vector< std::vector< uint32_t > > panel_tc_mod_
 
std::vector< unsigned > panel_tc_n_
 
std::vector< std::vector< float > > panel_tc_pt_
 
std::vector< std::vector< uint32_t > > panel_tc_third_
 
std::vector< int > panel_zside_
 
edm::EDGetToken trigger_cells_token_
 

Static Private Attributes

static const unsigned kCell_mask_ = 0xF
 
static const unsigned kPanel_mask_ = 0x1F
 
static const unsigned kPanel_offset_ = 0
 
static const unsigned kSector_mask_ = 0x7
 
static const unsigned kSector_offset_ = 5
 
static const unsigned kThird_mask_ = 0x3
 
static const unsigned kThird_offset_ = 4
 

Additional Inherited Members

Detailed Description

Definition at line 10 of file HGCalTriggerNtupleHGCPanels.cc.

Constructor & Destructor Documentation

HGCalTriggerNtupleHGCPanels::HGCalTriggerNtupleHGCPanels ( const edm::ParameterSet conf)

Definition at line 57 of file HGCalTriggerNtupleHGCPanels.cc.

References initialize().

58 {
59 }
HGCalTriggerNtupleBase(const edm::ParameterSet &conf)
HGCalTriggerNtupleHGCPanels::~HGCalTriggerNtupleHGCPanels ( )
inlineoverride

Definition at line 15 of file HGCalTriggerNtupleHGCPanels.cc.

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

15 {};

Member Function Documentation

void HGCalTriggerNtupleHGCPanels::clear ( void  )
finalprivatevirtual

Implements HGCalTriggerNtupleBase.

Definition at line 148 of file HGCalTriggerNtupleHGCPanels.cc.

References panel_id_, panel_layer_, panel_n_, panel_number_, panel_sector_, panel_tc_cell_, panel_tc_id_, panel_tc_mipPt_, panel_tc_mod_, panel_tc_n_, panel_tc_pt_, panel_tc_third_, and panel_zside_.

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

149 {
150  panel_n_ = 0;
151  panel_id_.clear();
152  panel_zside_.clear();
153  panel_layer_.clear();
154  panel_sector_.clear();
155  panel_number_.clear();
156  panel_tc_n_.clear();
157  panel_tc_id_.clear();
158  panel_tc_mod_.clear();
159  panel_tc_third_.clear();
160  panel_tc_cell_.clear();
161  panel_tc_mipPt_.clear();
162  panel_tc_pt_.clear();
163 }
std::vector< std::vector< uint32_t > > panel_tc_mod_
std::vector< std::vector< float > > panel_tc_pt_
std::vector< std::vector< uint32_t > > panel_tc_cell_
std::vector< std::vector< float > > panel_tc_mipPt_
std::vector< std::vector< uint32_t > > panel_tc_id_
std::vector< std::vector< uint32_t > > panel_tc_third_
void HGCalTriggerNtupleHGCPanels::fill ( const edm::Event e,
const edm::EventSetup es 
)
finalvirtual

Implements HGCalTriggerNtupleBase.

Definition at line 85 of file HGCalTriggerNtupleHGCPanels.cc.

References BXVector< T >::begin(), clear(), BXVector< T >::end(), geometry_, edm::EventSetup::get(), edm::Event::getByToken(), HGCalTriggerGeometryBase::getModuleFromTriggerCell(), HGCHEB, hcalTTPDigis_cfi::id, kCell_mask_, kPanel_mask_, kPanel_offset_, kSector_mask_, kSector_offset_, kThird_mask_, kThird_offset_, panel_id_, panel_layer_, panel_n_, panel_number_, panel_sector_, panel_tc_cell_, panel_tc_id_, panel_tc_mipPt_, panel_tc_mod_, panel_tc_n_, panel_tc_pt_, panel_tc_third_, panel_zside_, trigger_cells_token_, HGCalTriggerGeometryBase::triggerLayer(), HGCalDetId::wafer(), and HGCalDetId::zside().

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

86 {
87 
88  // retrieve trigger cells
90  e.getByToken(trigger_cells_token_, trigger_cells_h);
91  const l1t::HGCalTriggerCellBxCollection& trigger_cells = *trigger_cells_h;
92 
93  // retrieve geometry
94  es.get<CaloGeometryRecord>().get(geometry_);
95 
96  clear();
97 
98  // Regroup trigger cells by panel
99  std::unordered_map< uint32_t,vector<l1t::HGCalTriggerCellBxCollection::const_iterator> > panelids_tcs;
100  for(auto tc_itr=trigger_cells.begin(0); tc_itr!=trigger_cells.end(0); tc_itr++)
101  {
102  if(tc_itr->hwPt()>0 && tc_itr->subdetId()!=ForwardSubdetector::HGCHEB)
103  {
104  HGCalDetId id(tc_itr->detId());
106  panelids_tcs[panelid].push_back(tc_itr);
107  }
108  }
109  for (const auto& panelid_tcs : panelids_tcs)
110  {
111  panel_n_++;
112  HGCalDetId panelid(panelid_tcs.first);
113  int panel_sector = (panelid.wafer()>>kSector_offset_) & kSector_mask_ ;
114  int panel_number = (panelid.wafer()>>kPanel_offset_) & kPanel_mask_ ;
115  const auto& tcs = panelid_tcs.second;
116  panel_id_.emplace_back(panelid);
117  panel_zside_.emplace_back(panelid.zside());
118  panel_layer_.emplace_back(geometry_->triggerLayer(panelid));
119  panel_sector_.emplace_back(panel_sector);
120  panel_number_.emplace_back(panel_number);
121  panel_tc_n_.emplace_back(tcs.size());
122  panel_tc_id_.emplace_back();
123  panel_tc_mod_.emplace_back();
124  panel_tc_third_.emplace_back();
125  panel_tc_cell_.emplace_back();
126  panel_tc_mipPt_.emplace_back();
127  panel_tc_pt_.emplace_back();
128 
129  for (const auto& tc : tcs)
130  {
131  panel_tc_id_.back().push_back(tc->detId());
132  panel_tc_mipPt_.back().push_back(tc->mipPt());
133  panel_tc_pt_.back().push_back(tc->pt());
134  HGCalDetId tc_detid(tc->detId());
135  unsigned module_id = tc_detid.wafer();
136  unsigned third_id = (tc_detid.cell()>>kThird_offset_) & kThird_mask_;
137  unsigned cell_id = tc_detid.cell() & kCell_mask_;
138  panel_tc_mod_.back().push_back(module_id);
139  panel_tc_third_.back().push_back(third_id);
140  panel_tc_cell_.back().push_back(cell_id);
141  }
142  }
143 }
const_iterator end(int bx) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
std::vector< std::vector< uint32_t > > panel_tc_mod_
std::vector< std::vector< float > > panel_tc_pt_
edm::ESHandle< HGCalTriggerGeometryBase > geometry_
std::vector< std::vector< uint32_t > > panel_tc_cell_
std::vector< std::vector< float > > panel_tc_mipPt_
virtual unsigned triggerLayer(const unsigned id) const =0
int wafer() const
get the wafer #
Definition: HGCalDetId.h:42
virtual unsigned getModuleFromTriggerCell(const unsigned trigger_cell_det_id) const =0
const T & get() const
Definition: EventSetup.h:55
std::vector< std::vector< uint32_t > > panel_tc_id_
const_iterator begin(int bx) const
std::vector< std::vector< uint32_t > > panel_tc_third_
void HGCalTriggerNtupleHGCPanels::initialize ( TTree &  tree,
const edm::ParameterSet conf,
edm::ConsumesCollector &&  collector 
)
finalvirtual

Implements HGCalTriggerNtupleBase.

Definition at line 63 of file HGCalTriggerNtupleHGCPanels.cc.

References fill(), edm::ParameterSet::getParameter(), panel_id_, panel_layer_, panel_n_, panel_number_, panel_sector_, panel_tc_cell_, panel_tc_id_, panel_tc_mipPt_, panel_tc_mod_, panel_tc_n_, panel_tc_pt_, panel_tc_third_, panel_zside_, and trigger_cells_token_.

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

64 {
66 
67  tree.Branch("panel_n", &panel_n_, "panel_n/I");
68  tree.Branch("panel_id", &panel_id_);
69  tree.Branch("panel_zside", &panel_zside_);
70  tree.Branch("panel_layer", &panel_layer_);
71  tree.Branch("panel_sector", &panel_sector_);
72  tree.Branch("panel_number", &panel_number_);
73  tree.Branch("panel_tc_n", &panel_tc_n_);
74  tree.Branch("panel_tc_id", &panel_tc_id_);
75  tree.Branch("panel_tc_mod", &panel_tc_mod_);
76  tree.Branch("panel_tc_third", &panel_tc_third_);
77  tree.Branch("panel_tc_cell", &panel_tc_cell_);
78  tree.Branch("panel_tc_mipPt", &panel_tc_mipPt_);
79  tree.Branch("panel_tc_pt", &panel_tc_pt_);
80 
81 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
std::vector< std::vector< uint32_t > > panel_tc_mod_
std::vector< std::vector< float > > panel_tc_pt_
std::vector< std::vector< uint32_t > > panel_tc_cell_
std::vector< std::vector< float > > panel_tc_mipPt_
Definition: tree.py:1
std::vector< std::vector< uint32_t > > panel_tc_id_
std::vector< std::vector< uint32_t > > panel_tc_third_

Member Data Documentation

edm::ESHandle<HGCalTriggerGeometryBase> HGCalTriggerNtupleHGCPanels::geometry_
private

Definition at line 24 of file HGCalTriggerNtupleHGCPanels.cc.

Referenced by fill().

const unsigned HGCalTriggerNtupleHGCPanels::kCell_mask_ = 0xF
staticprivate

Definition at line 47 of file HGCalTriggerNtupleHGCPanels.cc.

Referenced by fill().

const unsigned HGCalTriggerNtupleHGCPanels::kPanel_mask_ = 0x1F
staticprivate

Definition at line 42 of file HGCalTriggerNtupleHGCPanels.cc.

Referenced by fill().

const unsigned HGCalTriggerNtupleHGCPanels::kPanel_offset_ = 0
staticprivate

Definition at line 41 of file HGCalTriggerNtupleHGCPanels.cc.

Referenced by fill().

const unsigned HGCalTriggerNtupleHGCPanels::kSector_mask_ = 0x7
staticprivate

Definition at line 44 of file HGCalTriggerNtupleHGCPanels.cc.

Referenced by fill().

const unsigned HGCalTriggerNtupleHGCPanels::kSector_offset_ = 5
staticprivate

Definition at line 43 of file HGCalTriggerNtupleHGCPanels.cc.

Referenced by fill().

const unsigned HGCalTriggerNtupleHGCPanels::kThird_mask_ = 0x3
staticprivate

Definition at line 46 of file HGCalTriggerNtupleHGCPanels.cc.

Referenced by fill().

const unsigned HGCalTriggerNtupleHGCPanels::kThird_offset_ = 4
staticprivate

Definition at line 45 of file HGCalTriggerNtupleHGCPanels.cc.

Referenced by fill().

std::vector<uint32_t> HGCalTriggerNtupleHGCPanels::panel_id_
private

Definition at line 27 of file HGCalTriggerNtupleHGCPanels.cc.

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

std::vector<int> HGCalTriggerNtupleHGCPanels::panel_layer_
private

Definition at line 29 of file HGCalTriggerNtupleHGCPanels.cc.

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

int HGCalTriggerNtupleHGCPanels::panel_n_
private

Definition at line 26 of file HGCalTriggerNtupleHGCPanels.cc.

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

std::vector<int> HGCalTriggerNtupleHGCPanels::panel_number_
private

Definition at line 31 of file HGCalTriggerNtupleHGCPanels.cc.

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

std::vector<int> HGCalTriggerNtupleHGCPanels::panel_sector_
private

Definition at line 30 of file HGCalTriggerNtupleHGCPanels.cc.

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

std::vector<std::vector<uint32_t> > HGCalTriggerNtupleHGCPanels::panel_tc_cell_
private

Definition at line 36 of file HGCalTriggerNtupleHGCPanels.cc.

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

std::vector<std::vector<uint32_t> > HGCalTriggerNtupleHGCPanels::panel_tc_id_
private

Definition at line 33 of file HGCalTriggerNtupleHGCPanels.cc.

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

std::vector<std::vector<float> > HGCalTriggerNtupleHGCPanels::panel_tc_mipPt_
private

Definition at line 37 of file HGCalTriggerNtupleHGCPanels.cc.

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

std::vector<std::vector<uint32_t> > HGCalTriggerNtupleHGCPanels::panel_tc_mod_
private

Definition at line 34 of file HGCalTriggerNtupleHGCPanels.cc.

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

std::vector<unsigned> HGCalTriggerNtupleHGCPanels::panel_tc_n_
private

Definition at line 32 of file HGCalTriggerNtupleHGCPanels.cc.

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

std::vector<std::vector<float> > HGCalTriggerNtupleHGCPanels::panel_tc_pt_
private

Definition at line 38 of file HGCalTriggerNtupleHGCPanels.cc.

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

std::vector<std::vector<uint32_t> > HGCalTriggerNtupleHGCPanels::panel_tc_third_
private

Definition at line 35 of file HGCalTriggerNtupleHGCPanels.cc.

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

std::vector<int> HGCalTriggerNtupleHGCPanels::panel_zside_
private

Definition at line 28 of file HGCalTriggerNtupleHGCPanels.cc.

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

edm::EDGetToken HGCalTriggerNtupleHGCPanels::trigger_cells_token_
private

Definition at line 23 of file HGCalTriggerNtupleHGCPanels.cc.

Referenced by fill(), and initialize().