CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
HGCalTriggerValidator Class Reference
Inheritance diagram for HGCalTriggerValidator:
DQMGlobalEDAnalyzer< Histograms > DQMGlobalEDAnalyzerBase< Histograms, Args... > edm::global::EDProducer< edm::RunCache< Histograms >, edm::EndRunProducer, edm::Accumulator, Args... > edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 HGCalTriggerValidator (const edm::ParameterSet &)
 
 ~HGCalTriggerValidator () override=default
 
- Public Member Functions inherited from DQMGlobalEDAnalyzer< Histograms >
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &, Histograms const &) const
 
void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup) const final
 
- Public Member Functions inherited from DQMGlobalEDAnalyzerBase< Histograms, Args... >
void accumulate (edm::StreamID id, edm::Event const &event, edm::EventSetup const &setup) const final
 
 DQMGlobalEDAnalyzerBase ()
 
std::shared_ptr< HistogramsglobalBeginRun (edm::Run const &run, edm::EventSetup const &setup) const final
 
void globalEndRun (edm::Run const &, edm::EventSetup const &) const final
 
- Public Member Functions inherited from edm::global::EDProducer< edm::RunCache< Histograms >, edm::EndRunProducer, edm::Accumulator, Args... >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, Histograms &) const override
 
void dqmAnalyze (edm::Event const &, edm::EventSetup const &, Histograms const &) const override
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &, Histograms &) const override
 

Private Attributes

const edm::EDGetToken clusters_token_
 
std::unique_ptr< HGCalTriggerClusterIdentificationBaseid_
 
const edm::EDGetToken multiclusters_token_
 
const edm::EDGetToken towers_token_
 
const edm::EDGetToken trigger_cells_token_
 
const edm::ESGetToken< HGCalTriggerGeometryBase, CaloGeometryRecordtriggerGeomToken_
 
std::shared_ptr< HGCalTriggerToolstriggerTools_
 

Additional Inherited Members

- Public Types inherited from DQMGlobalEDAnalyzerBase< Histograms, Args... >
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from DQMGlobalEDAnalyzerBase< Histograms, Args... >
uint64_t meId (edm::Run const &run) const
 
- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 
- Protected Attributes inherited from DQMGlobalEDAnalyzerBase< Histograms, Args... >
DQMStoredqmstore_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 96 of file HGCalTriggerValidator.cc.

Constructor & Destructor Documentation

◆ HGCalTriggerValidator()

HGCalTriggerValidator::HGCalTriggerValidator ( const edm::ParameterSet iConfig)
explicit

Definition at line 119 of file HGCalTriggerValidator.cc.

References edm::ParameterSet::getParameter().

120  : trigger_cells_token_{consumes<l1t::HGCalTriggerCellBxCollection>(
121  iConfig.getParameter<edm::InputTag>("TriggerCells"))},
122  clusters_token_{consumes<l1t::HGCalClusterBxCollection>(iConfig.getParameter<edm::InputTag>("Clusters"))},
124  consumes<l1t::HGCalMulticlusterBxCollection>(iConfig.getParameter<edm::InputTag>("Multiclusters"))},
125  towers_token_{consumes<l1t::HGCalTowerBxCollection>(iConfig.getParameter<edm::InputTag>("Towers"))},
126  triggerGeomToken_(esConsumes<HGCalTriggerGeometryBase, CaloGeometryRecord, edm::Transition::BeginRun>()),
127  id_{HGCalTriggerClusterIdentificationFactory::get()->create("HGCalTriggerClusterIdentificationBDT")} {
128  id_->initialize(iConfig.getParameter<edm::ParameterSet>("EGIdentification"));
129 
130  triggerTools_ = std::make_shared<HGCalTriggerTools>();
131 }
const edm::EDGetToken clusters_token_
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::unique_ptr< HGCalTriggerClusterIdentificationBase > id_
const edm::EDGetToken towers_token_
const edm::EDGetToken multiclusters_token_
const edm::ESGetToken< HGCalTriggerGeometryBase, CaloGeometryRecord > triggerGeomToken_
std::shared_ptr< HGCalTriggerTools > triggerTools_
const edm::EDGetToken trigger_cells_token_
#define get

◆ ~HGCalTriggerValidator()

HGCalTriggerValidator::~HGCalTriggerValidator ( )
overridedefault

Member Function Documentation

◆ bookHistograms()

void HGCalTriggerValidator::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &  iSetup,
Histograms histograms 
) const
overrideprivatevirtual

Implements DQMGlobalEDAnalyzerBase< Histograms, Args... >.

Definition at line 140 of file HGCalTriggerValidator.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::NavigatorBase::cd(), and dqm::implementation::NavigatorBase::setCurrentFolder().

143  {
144  iBooker.cd();
145  iBooker.setCurrentFolder("HGCALTPG");
146 
147  //initiating histograms
148  // trigger cells
149  histograms.h_tc_n_ = iBooker.book1D("tc_n", "trigger cell number; number", 400, 0, 400);
150  histograms.h_tc_mipPt_ = iBooker.book1D("tc_mipPt", "trigger cell mipPt; mipPt", 400, 0, 400);
151  histograms.h_tc_pt_ = iBooker.book1D("tc_pt", "trigger cell pt; pt [GeV]", 15, 0, 15);
152  histograms.h_tc_energy_ = iBooker.book1D("tc_energy", "trigger cell energy; energy [GeV]", 70, 0, 70);
153  histograms.h_tc_eta_ = iBooker.book1D("tc_eta", "trigger cell eta; eta", 60, -3.14, 3.14);
154  histograms.h_tc_phi_ = iBooker.book1D("tc_phi", "trigger cell phi; phi", 60, -3.14, 3.14);
155  histograms.h_tc_x_ = iBooker.book1D("tc_x", "trigger cell x; x [cm]", 500, -250, 250);
156  histograms.h_tc_y_ = iBooker.book1D("tc_y", "trigger cell y; y [cm]", 500, -250, 250);
157  histograms.h_tc_z_ = iBooker.book1D("tc_z", "trigger cell z; z [cm]", 1100, -550, 550);
158  histograms.h_tc_layer_ = iBooker.book1D("tc_layer", "trigger cell layer; layer", 50, 0, 50);
159 
160  // cluster 2D histograms
161  histograms.h_cl_n_ = iBooker.book1D("cl_n", "cluster2D number; number", 80, 0, 80);
162  histograms.h_cl_mipPt_ = iBooker.book1D("cl_mipPt", "cluster2D mipPt; mipPt", 600, 0, 600);
163  histograms.h_cl_pt_ = iBooker.book1D("cl_pt", "cluster2D pt; pt [GeV]", 20, 0, 20);
164  histograms.h_cl_energy_ = iBooker.book1D("cl_energy", "cluster2D energy; energy [GeV]", 80, 0, 80);
165  histograms.h_cl_eta_ = iBooker.book1D("cl_eta", "cluster2D eta; eta", 60, -3.14, 3.14);
166  histograms.h_cl_phi_ = iBooker.book1D("cl_phi", "cluster2D phi; phi", 60, -3.14, 3.14);
167  histograms.h_cl_cells_n_ = iBooker.book1D("cl_cells_n", "cluster2D cells_n; cells_n", 16, 0, 16);
168  histograms.h_cl_layer_ = iBooker.book1D("cl_layer", "cluster2D layer; layer", 50, 0, 50);
169 
170  // multiclusters
171  histograms.h_cl3d_n_ = iBooker.book1D("cl3d_n", "cl3duster3D number; number", 12, 0, 12);
172  histograms.h_cl3d_pt_ = iBooker.book1D("cl3d_pt", "cl3duster3D pt; pt [GeV]", 50, 0, 50);
173  histograms.h_cl3d_energy_ = iBooker.book1D("cl3d_energy", "cl3duster3D energy; energy [GeV]", 80, 0, 80);
174  histograms.h_cl3d_eta_ = iBooker.book1D("cl3d_eta", "cl3duster3D eta; eta", 60, -3.14, 3.14);
175  histograms.h_cl3d_phi_ = iBooker.book1D("cl3d_phi", "cl3duster3D phi; phi", 60, -3.14, 3.14);
176  histograms.h_cl3d_clusters_n_ = iBooker.book1D("cl3d_clusters_n", "cl3duster3D clusters_n; clusters_n", 30, 0, 30);
177  // cluster shower shapes
178  histograms.h_cl3d_showerlength_ =
179  iBooker.book1D("cl3d_showerlength", "cl3duster3D showerlength; showerlength", 50, 0, 50);
180  histograms.h_cl3d_coreshowerlength_ =
181  iBooker.book1D("cl3d_coreshowerlength", "cl3duster3D coreshowerlength; coreshowerlength", 16, 0, 16);
182  histograms.h_cl3d_firstlayer_ = iBooker.book1D("cl3d_firstlayer", "cl3duster3D firstlayer; firstlayer", 50, 0, 50);
183  histograms.h_cl3d_maxlayer_ = iBooker.book1D("cl3d_maxlayer", "cl3duster3D maxlayer; maxlayer", 50, 0, 50);
184  histograms.h_cl3d_seetot_ = iBooker.book1D("cl3d_seetot", "cl3duster3D seetot; seetot", 50, 0, 0.05);
185  histograms.h_cl3d_seemax_ = iBooker.book1D("cl3d_seemax", "cl3duster3D seemax; seemax", 40, 0, 0.04);
186  histograms.h_cl3d_spptot_ = iBooker.book1D("cl3d_spptot", "cl3duster3D spptot; spptot", 800, 0, 0.08);
187  histograms.h_cl3d_sppmax_ = iBooker.book1D("cl3d_sppmax", "cl3duster3D sppmax; sppmax", 800, 0, 0.08);
188  histograms.h_cl3d_szz_ = iBooker.book1D("cl3d_szz", "cl3duster3D szz; szz", 50, 0, 50);
189  histograms.h_cl3d_srrtot_ = iBooker.book1D("cl3d_srrtot", "cl3duster3D srrtot; srrtot", 800, 0, 0.008);
190  histograms.h_cl3d_srrmax_ = iBooker.book1D("cl3d_srrmax", "cl3duster3D srrmax; srrmax", 900, 0, 0.009);
191  histograms.h_cl3d_srrmean_ = iBooker.book1D("cl3d_srrmean", "cl3duster3D srrmean; srrmean", 800, 0, 0.008);
192  histograms.h_cl3d_emaxe_ = iBooker.book1D("cl3d_emaxe", "cl3duster3D emaxe; emaxe", 15, 0, 1.5);
193  histograms.h_cl3d_bdteg_ = iBooker.book1D("cl3d_bdteg", "cl3duster3D bdteg; bdteg", 30, -0.7, 0.4);
194  histograms.h_cl3d_quality_ = iBooker.book1D("cl3d_quality", "cl3duster3D quality; quality", 20, 0, 2);
195 
196  // towers
197  histograms.h_tower_n_ = iBooker.book1D("tower_n", "tower n; number", 400, 1200, 1600);
198  histograms.h_tower_pt_ = iBooker.book1D("tower_pt", "tower pt; pt [GeV]", 50, 0, 50);
199  histograms.h_tower_energy_ = iBooker.book1D("tower_energy", "tower energy; energy [GeV]", 200, 0, 200);
200  histograms.h_tower_eta_ = iBooker.book1D("tower_eta", "tower eta; eta", 60, -3.14, 3.14);
201  histograms.h_tower_phi_ = iBooker.book1D("tower_phi", "tower phi; phi", 60, -3.14, 3.14);
202  histograms.h_tower_etEm_ = iBooker.book1D("tower_etEm", "tower etEm; etEm", 50, 0, 50);
203  histograms.h_tower_etHad_ = iBooker.book1D("tower_etHad", "tower etHad; etHad", 30, 0, 0.3);
204  histograms.h_tower_iEta_ = iBooker.book1D("tower_iEta", "tower iEta; iEta", 20, 0, 20);
205  histograms.h_tower_iPhi_ = iBooker.book1D("tower_iPhi", "tower iPhi; iPhi", 80, 0, 80);
206 }
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98

◆ dqmAnalyze()

void HGCalTriggerValidator::dqmAnalyze ( edm::Event const &  iEvent,
edm::EventSetup const &  iSetup,
Histograms const &  histograms 
) const
overrideprivatevirtual

Implements DQMGlobalEDAnalyzerBase< Histograms, Args... >.

Definition at line 208 of file HGCalTriggerValidator.cc.

References BXVector< T >::begin(), bsc_activity_cfg::clusters, clusters_token_, BXVector< T >::end(), l1ctLayer2EG_cff::id, id_, iEvent, edm::HandleBase::isValid(), multiclusters_token_, HLT_2023v12_cff::towers, towers_token_, trigger_cells_token_, and triggerTools_.

210  {
211  int tc_n = 0;
212  int cl_n = 0;
213  int cl3d_n = 0;
214  int tower_n = 0;
215 
216  // retrieve trigger cells
218  iEvent.getByToken(trigger_cells_token_, trigger_cells_h);
219  const l1t::HGCalTriggerCellBxCollection &trigger_cells = *trigger_cells_h;
220 
221  if (trigger_cells_h.isValid()) {
222  for (auto tc_itr = trigger_cells.begin(0); tc_itr != trigger_cells.end(0); tc_itr++) {
223  tc_n++;
224  DetId id(tc_itr->detId());
225  histograms.h_tc_pt_->Fill(tc_itr->pt());
226  histograms.h_tc_mipPt_->Fill(tc_itr->mipPt());
227  histograms.h_tc_energy_->Fill(tc_itr->energy());
228  histograms.h_tc_eta_->Fill(tc_itr->eta());
229  histograms.h_tc_phi_->Fill(tc_itr->phi());
230  histograms.h_tc_x_->Fill(tc_itr->position().x());
231  histograms.h_tc_y_->Fill(tc_itr->position().y());
232  histograms.h_tc_z_->Fill(tc_itr->position().z());
233  histograms.h_tc_layer_->Fill(triggerTools_->layerWithOffset(id));
234  }
235  }
236  histograms.h_tc_n_->Fill(tc_n);
237 
238  // retrieve clusters
240  iEvent.getByToken(clusters_token_, clusters_h);
241  const l1t::HGCalClusterBxCollection &clusters = *clusters_h;
242 
243  if (clusters_h.isValid()) {
244  for (auto cl_itr = clusters.begin(0); cl_itr != clusters.end(0); cl_itr++) {
245  cl_n++;
246  histograms.h_cl_mipPt_->Fill(cl_itr->mipPt());
247  histograms.h_cl_pt_->Fill(cl_itr->pt());
248  histograms.h_cl_energy_->Fill(cl_itr->energy());
249  histograms.h_cl_eta_->Fill(cl_itr->eta());
250  histograms.h_cl_phi_->Fill(cl_itr->phi());
251  histograms.h_cl_layer_->Fill(triggerTools_->layerWithOffset(cl_itr->detId()));
252  histograms.h_cl_cells_n_->Fill(cl_itr->constituents().size());
253  }
254  }
255  histograms.h_cl_n_->Fill(cl_n);
256 
257  // retrieve clusters 3D
259  iEvent.getByToken(multiclusters_token_, multiclusters_h);
260  const l1t::HGCalMulticlusterBxCollection &multiclusters = *multiclusters_h;
261 
262  if (multiclusters_h.isValid()) {
263  for (auto cl3d_itr = multiclusters.begin(0); cl3d_itr != multiclusters.end(0); cl3d_itr++) {
264  cl3d_n++;
265  histograms.h_cl3d_pt_->Fill(cl3d_itr->pt());
266  histograms.h_cl3d_energy_->Fill(cl3d_itr->energy());
267  histograms.h_cl3d_eta_->Fill(cl3d_itr->eta());
268  histograms.h_cl3d_phi_->Fill(cl3d_itr->phi());
269  histograms.h_cl3d_clusters_n_->Fill(cl3d_itr->constituents().size());
270  // cluster shower shapes
271  histograms.h_cl3d_showerlength_->Fill(cl3d_itr->showerLength());
272  histograms.h_cl3d_coreshowerlength_->Fill(cl3d_itr->coreShowerLength());
273  histograms.h_cl3d_firstlayer_->Fill(cl3d_itr->firstLayer());
274  histograms.h_cl3d_maxlayer_->Fill(cl3d_itr->maxLayer());
275  histograms.h_cl3d_seetot_->Fill(cl3d_itr->sigmaEtaEtaTot());
276  histograms.h_cl3d_seemax_->Fill(cl3d_itr->sigmaEtaEtaMax());
277  histograms.h_cl3d_spptot_->Fill(cl3d_itr->sigmaPhiPhiTot());
278  histograms.h_cl3d_sppmax_->Fill(cl3d_itr->sigmaPhiPhiMax());
279  histograms.h_cl3d_szz_->Fill(cl3d_itr->sigmaZZ());
280  histograms.h_cl3d_srrtot_->Fill(cl3d_itr->sigmaRRTot());
281  histograms.h_cl3d_srrmax_->Fill(cl3d_itr->sigmaRRMax());
282  histograms.h_cl3d_srrmean_->Fill(cl3d_itr->sigmaRRMean());
283  histograms.h_cl3d_emaxe_->Fill(cl3d_itr->eMax() / cl3d_itr->energy());
284  histograms.h_cl3d_bdteg_->Fill(id_->value(*cl3d_itr));
285  histograms.h_cl3d_quality_->Fill(cl3d_itr->hwQual());
286  }
287  }
288  histograms.h_cl3d_n_->Fill(cl3d_n);
289 
290  // retrieve towers
292  iEvent.getByToken(towers_token_, towers_h);
293  const l1t::HGCalTowerBxCollection &towers = *towers_h;
294 
295  if (towers_h.isValid()) {
296  for (auto tower_itr = towers.begin(0); tower_itr != towers.end(0); tower_itr++) {
297  tower_n++;
298  histograms.h_tower_pt_->Fill(tower_itr->pt());
299  histograms.h_tower_energy_->Fill(tower_itr->energy());
300  histograms.h_tower_eta_->Fill(tower_itr->eta());
301  histograms.h_tower_phi_->Fill(tower_itr->phi());
302  histograms.h_tower_etEm_->Fill(tower_itr->etEm());
303  histograms.h_tower_etHad_->Fill(tower_itr->etHad());
304  histograms.h_tower_iEta_->Fill(tower_itr->id().iEta());
305  histograms.h_tower_iPhi_->Fill(tower_itr->id().iPhi());
306  }
307  }
308  histograms.h_tower_n_->Fill(tower_n);
309 }
const edm::EDGetToken clusters_token_
const_iterator begin(int bx) const
std::unique_ptr< HGCalTriggerClusterIdentificationBase > id_
int iEvent
Definition: GenABIO.cc:224
const edm::EDGetToken towers_token_
Definition: DetId.h:17
const edm::EDGetToken multiclusters_token_
bool isValid() const
Definition: HandleBase.h:70
const_iterator end(int bx) const
std::shared_ptr< HGCalTriggerTools > triggerTools_
const edm::EDGetToken trigger_cells_token_

◆ dqmBeginRun()

void HGCalTriggerValidator::dqmBeginRun ( edm::Run const &  iRun,
edm::EventSetup const &  iSetup,
Histograms histograms 
) const
overrideprivatevirtual

Reimplemented from DQMGlobalEDAnalyzerBase< Histograms, Args... >.

Definition at line 133 of file HGCalTriggerValidator.cc.

References edm::EventSetup::getHandle(), triggerGeomToken_, and triggerTools_.

135  {
136  auto const triggerGeometry = iSetup.getHandle(triggerGeomToken_);
137  triggerTools_->setGeometry(triggerGeometry.product());
138 }
const edm::ESGetToken< HGCalTriggerGeometryBase, CaloGeometryRecord > triggerGeomToken_
std::shared_ptr< HGCalTriggerTools > triggerTools_

Member Data Documentation

◆ clusters_token_

const edm::EDGetToken HGCalTriggerValidator::clusters_token_
private

Definition at line 109 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze().

◆ id_

std::unique_ptr<HGCalTriggerClusterIdentificationBase> HGCalTriggerValidator::id_
private

Definition at line 114 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze().

◆ multiclusters_token_

const edm::EDGetToken HGCalTriggerValidator::multiclusters_token_
private

Definition at line 110 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze().

◆ towers_token_

const edm::EDGetToken HGCalTriggerValidator::towers_token_
private

Definition at line 111 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze().

◆ trigger_cells_token_

const edm::EDGetToken HGCalTriggerValidator::trigger_cells_token_
private

Definition at line 108 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze().

◆ triggerGeomToken_

const edm::ESGetToken<HGCalTriggerGeometryBase, CaloGeometryRecord> HGCalTriggerValidator::triggerGeomToken_
private

Definition at line 112 of file HGCalTriggerValidator.cc.

Referenced by dqmBeginRun().

◆ triggerTools_

std::shared_ptr<HGCalTriggerTools> HGCalTriggerValidator::triggerTools_
private

Definition at line 116 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze(), and dqmBeginRun().