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 119 of file HGCalTriggerValidator.cc.

Constructor & Destructor Documentation

◆ HGCalTriggerValidator()

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

Definition at line 142 of file HGCalTriggerValidator.cc.

References edm::ParameterSet::getParameter().

143  : trigger_cells_token_{consumes<l1t::HGCalTriggerCellBxCollection>(
144  iConfig.getParameter<edm::InputTag>("TriggerCells"))},
145  clusters_token_{consumes<l1t::HGCalClusterBxCollection>(iConfig.getParameter<edm::InputTag>("Clusters"))},
147  consumes<l1t::HGCalMulticlusterBxCollection>(iConfig.getParameter<edm::InputTag>("Multiclusters"))},
148  towers_token_{consumes<l1t::HGCalTowerBxCollection>(iConfig.getParameter<edm::InputTag>("Towers"))},
149  triggerGeomToken_(esConsumes<HGCalTriggerGeometryBase, CaloGeometryRecord, edm::Transition::BeginRun>()),
150  id_{HGCalTriggerClusterIdentificationFactory::get()->create("HGCalTriggerClusterIdentificationBDT")} {
151  id_->initialize(iConfig.getParameter<edm::ParameterSet>("EGIdentification"));
152 
153  triggerTools_ = std::make_shared<HGCalTriggerTools>();
154 }
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 163 of file HGCalTriggerValidator.cc.

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

166  {
167  iBooker.cd();
168  iBooker.setCurrentFolder("HGCALTPG");
169 
170  //initiating histograms
171  // trigger cells
172  histograms.h_tc_n_ = iBooker.book1D("tc_n", "trigger cell number; number", 100, 10000, 40000);
173  histograms.h_tc_mipPt_ = iBooker.book1D("tc_mipPt", "trigger cell mipPt; mipPt", 100, 0, 10);
174  histograms.h_tc_pt_ = iBooker.book1D("tc_pt", "trigger cell pt; pt [GeV]", 100, 0, 2);
175  histograms.h_tc_energy_ = iBooker.book1D("tc_energy", "trigger cell energy; energy [GeV]", 100, 0, 5);
176  histograms.h_tc_eta_ = iBooker.book1D("tc_eta", "trigger cell eta; eta", 320, -3.2, 3.2);
177  histograms.h_tc_phi_ = iBooker.book1D("tc_phi", "trigger cell phi; phi", 100, -M_PI, M_PI);
178  histograms.h_tc_x_ = iBooker.book1D("tc_x", "trigger cell x; x [cm]", 100, -250, 250);
179  histograms.h_tc_y_ = iBooker.book1D("tc_y", "trigger cell y; y [cm]", 100, -250, 250);
180  histograms.h_tc_z_ = iBooker.book1D("tc_z", "trigger cell z; z [cm]", 100, -550, 550);
181  histograms.h_tc_layer_ = iBooker.book1D("tc_layer", "trigger cell layer; layer", 50, 0, 50);
182 
183  // cluster 2D histograms
184  histograms.h_cl_n_ = iBooker.book1D("cl_n", "cluster2D number; number", 100, 10000, 40000);
185  histograms.h_cl_mipPt_ = iBooker.book1D("cl_mipPt", "cluster2D mipPt; mipPt", 100, 0, 10);
186  histograms.h_cl_pt_ = iBooker.book1D("cl_pt", "cluster2D pt; pt [GeV]", 100, 0, 2);
187  histograms.h_cl_energy_ = iBooker.book1D("cl_energy", "cluster2D energy; energy [GeV]", 100, 0, 5);
188  histograms.h_cl_eta_ = iBooker.book1D("cl_eta", "cluster2D eta; eta", 320, -3.2, 3.2);
189  histograms.h_cl_phi_ = iBooker.book1D("cl_phi", "cluster2D phi; phi", 100, -M_PI, M_PI);
190  histograms.h_cl_cells_n_ = iBooker.book1D("cl_cells_n", "cluster2D cells_n; cells_n", 20, 0, 20);
191  histograms.h_cl_layer_ = iBooker.book1D("cl_layer", "cluster2D layer; layer", 50, 0, 50);
192 
193  // multiclusters
194  histograms.h_cl3d_n_ = iBooker.book1D("cl3d_n", "cl3duster3D number; number", 200, 0, 400);
195  histograms.h_cl3d_pt_ = iBooker.book1D("cl3d_pt", "cl3duster3D pt; pt [GeV]", 50, 0, 50);
196  histograms.h_cl3d_energy_ = iBooker.book1D("cl3d_energy", "cl3duster3D energy; energy [GeV]", 50, 0, 200);
197  histograms.h_cl3d_eta_ = iBooker.book1D("cl3d_eta", "cl3duster3D eta; eta", 320, -3.2, 3.2);
198  histograms.h_cl3d_phi_ = iBooker.book1D("cl3d_phi", "cl3duster3D phi; phi", 100, -M_PI, M_PI);
199  histograms.h_cl3d_clusters_n_ = iBooker.book1D("cl3d_clusters_n", "cl3duster3D clusters_n; clusters_n", 50, 0, 200);
200  // cluster shower shapes
201  histograms.h_cl3d_showerlength_ =
202  iBooker.book1D("cl3d_showerlength", "cl3duster3D showerlength; showerlength", 50, 0, 50);
203  histograms.h_cl3d_coreshowerlength_ =
204  iBooker.book1D("cl3d_coreshowerlength", "cl3duster3D coreshowerlength; coreshowerlength", 20, 0, 20);
205  histograms.h_cl3d_firstlayer_ = iBooker.book1D("cl3d_firstlayer", "cl3duster3D firstlayer; firstlayer", 10, 0, 10);
206  histograms.h_cl3d_maxlayer_ = iBooker.book1D("cl3d_maxlayer", "cl3duster3D maxlayer; maxlayer", 50, 0, 50);
207  histograms.h_cl3d_seetot_ = iBooker.book1D("cl3d_seetot", "cl3duster3D seetot; seetot", 50, 0, 0.1);
208  histograms.h_cl3d_seemax_ = iBooker.book1D("cl3d_seemax", "cl3duster3D seemax; seemax", 50, 0, 0.2);
209  histograms.h_cl3d_spptot_ = iBooker.book1D("cl3d_spptot", "cl3duster3D spptot; spptot", 50, 0, 0.1);
210  histograms.h_cl3d_sppmax_ = iBooker.book1D("cl3d_sppmax", "cl3duster3D sppmax; sppmax", 50, 0, 0.15);
211  histograms.h_cl3d_szz_ = iBooker.book1D("cl3d_szz", "cl3duster3D szz; szz", 50, 0, 80);
212  histograms.h_cl3d_srrtot_ = iBooker.book1D("cl3d_srrtot", "cl3duster3D srrtot; srrtot", 50, 0, 0.01);
213  histograms.h_cl3d_srrmax_ = iBooker.book1D("cl3d_srrmax", "cl3duster3D srrmax; srrmax", 50, 0, 0.014);
214  histograms.h_cl3d_srrmean_ = iBooker.book1D("cl3d_srrmean", "cl3duster3D srrmean; srrmean", 50, 0, 0.006);
215  histograms.h_cl3d_emaxe_ = iBooker.book1D("cl3d_emaxe", "cl3duster3D emaxe; emaxe", 50, 0, 1.01);
216  histograms.h_cl3d_hoe_ = iBooker.book1D("cl3d_hoe", "cl3duster3D hoe; hoe", 50, 0, 2.);
217  histograms.h_cl3d_meanz_ = iBooker.book1D("cl3d_meanz", "cl3duster3D meanz; meanz", 50, 300, 400);
218  histograms.h_cl3d_layer10_ = iBooker.book1D("cl3d_layer10", "cl3duster3D layer10; layer10", 10, 0, 10);
219  histograms.h_cl3d_layer50_ = iBooker.book1D("cl3d_layer50", "cl3duster3D layer50; layer50", 20, 0, 20);
220  histograms.h_cl3d_layer90_ = iBooker.book1D("cl3d_layer90", "cl3duster3D layer90; layer90", 40, 0, 40);
221  histograms.h_cl3d_first1layers_ =
222  iBooker.book1D("cl3d_first1layers", "cl3duster3D first1layers; first1layers", 50, 0, 1.01);
223  histograms.h_cl3d_first3layers_ =
224  iBooker.book1D("cl3d_first3layers", "cl3duster3D first3layers; first3layers", 50, 0, 1.01);
225  histograms.h_cl3d_first5layers_ =
226  iBooker.book1D("cl3d_first5layers", "cl3duster3D first5layers; first5layers", 50, 0, 1.01);
227  histograms.h_cl3d_firstHcal1layers_ =
228  iBooker.book1D("cl3d_firstHcal1layers", "cl3duster3D firstHcal1layers; hcal1layers", 50, 0, 0.5);
229  histograms.h_cl3d_firstHcal3layers_ =
230  iBooker.book1D("cl3d_firstHcal3layers", "cl3duster3D firstHcal3layers; hcal1layers", 50, 0, 0.5);
231  histograms.h_cl3d_firstHcal5layers_ =
232  iBooker.book1D("cl3d_firstHcal5layers", "cl3duster3D firstHcal5layers; hcal1layers", 50, 0, 0.5);
233  histograms.h_cl3d_last1layers_ =
234  iBooker.book1D("cl3d_last1layers", "cl3duster3D last1layers; last1layers", 50, 0, 0.1);
235  histograms.h_cl3d_last3layers_ =
236  iBooker.book1D("cl3d_last3layers", "cl3duster3D last3layers; last3layers", 50, 0, 0.1);
237  histograms.h_cl3d_last5layers_ =
238  iBooker.book1D("cl3d_last5layers", "cl3duster3D last5layers; last5layers", 50, 0, 0.1);
239  histograms.h_cl3d_emax1layers_ =
240  iBooker.book1D("cl3d_emax1layers", "cl3duster3D emax1layers; emax1layers", 50, 0, 1.01);
241  histograms.h_cl3d_emax3layers_ =
242  iBooker.book1D("cl3d_emax3layers", "cl3duster3D emax3layers; emax3layers", 50, 0, 1.01);
243  histograms.h_cl3d_emax5layers_ =
244  iBooker.book1D("cl3d_emax5layers", "cl3duster3D emax5layers; emax5layers", 50, 0, 1.01);
245  histograms.h_cl3d_eot_ = iBooker.book1D("cl3d_eot", "cl3duster3D eot; eot", 50, 0, 1.01);
246  histograms.h_cl3d_ebm0_ = iBooker.book1D("cl3d_ebm0", "cl3duster3D ebm0; ebm0", 50, 0, 9000);
247  histograms.h_cl3d_ebm1_ = iBooker.book1D("cl3d_ebm1", "cl3duster3D ebm1; ebm1", 50, 0, 9000);
248  histograms.h_cl3d_hbm_ = iBooker.book1D("cl3d_hbm", "cl3duster3D hbm; hbm", 50, 0, 4000);
249  histograms.h_cl3d_ntc67_ = iBooker.book1D("cl3d_ntc67", "cl3duster3D ntc67; ntc67", 50, 0, 50);
250  histograms.h_cl3d_ntc90_ = iBooker.book1D("cl3d_ntc90", "cl3duster3D ntc90; ntc90", 50, 0, 100);
251  histograms.h_cl3d_bdteg_ = iBooker.book1D("cl3d_bdteg", "cl3duster3D bdteg; bdteg", 50, -1., 1.);
252  histograms.h_cl3d_quality_ = iBooker.book1D("cl3d_quality", "cl3duster3D quality; quality", 5, 0, 5);
253 
254  // towers
255  histograms.h_tower_n_ = iBooker.book1D("tower_n", "tower n; number", 100, 2000, 3000);
256  histograms.h_tower_pt_ = iBooker.book1D("tower_pt", "tower pt; pt [GeV]", 100, 0, 10);
257  histograms.h_tower_energy_ = iBooker.book1D("tower_energy", "tower energy; energy [GeV]", 100, 0, 100);
258  histograms.h_tower_eta_ = iBooker.book1D("tower_eta", "tower eta; eta", 640, -3.2, 3.2);
259  histograms.h_tower_phi_ = iBooker.book1D("tower_phi", "tower phi; phi", 600, -M_PI, M_PI);
260  histograms.h_tower_etEm_ = iBooker.book1D("tower_etEm", "tower etEm; etEm", 100, 0, 10);
261  histograms.h_tower_etHad_ = iBooker.book1D("tower_etHad", "tower etHad; etHad", 100, 0, 5);
262  histograms.h_tower_iEta_ = iBooker.book1D("tower_iEta", "tower iEta; iEta", 20, 0, 20);
263  histograms.h_tower_iPhi_ = iBooker.book1D("tower_iPhi", "tower iPhi; iPhi", 80, 0, 80);
264 }
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
#define M_PI
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 266 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_2024v11_cff::towers, towers_token_, trigger_cells_token_, and triggerTools_.

268  {
269  int tc_n = 0;
270  int cl_n = 0;
271  int cl3d_n = 0;
272  int tower_n = 0;
273 
274  // retrieve trigger cells
276  iEvent.getByToken(trigger_cells_token_, trigger_cells_h);
277  const l1t::HGCalTriggerCellBxCollection &trigger_cells = *trigger_cells_h;
278 
279  if (trigger_cells_h.isValid()) {
280  for (auto tc_itr = trigger_cells.begin(0); tc_itr != trigger_cells.end(0); tc_itr++) {
281  tc_n++;
282  DetId id(tc_itr->detId());
283  histograms.h_tc_pt_->Fill(tc_itr->pt());
284  histograms.h_tc_mipPt_->Fill(tc_itr->mipPt());
285  histograms.h_tc_energy_->Fill(tc_itr->energy());
286  histograms.h_tc_eta_->Fill(tc_itr->eta());
287  histograms.h_tc_phi_->Fill(tc_itr->phi());
288  histograms.h_tc_x_->Fill(tc_itr->position().x());
289  histograms.h_tc_y_->Fill(tc_itr->position().y());
290  histograms.h_tc_z_->Fill(tc_itr->position().z());
291  histograms.h_tc_layer_->Fill(triggerTools_->layerWithOffset(id));
292  }
293  }
294  histograms.h_tc_n_->Fill(tc_n);
295 
296  // retrieve clusters
298  iEvent.getByToken(clusters_token_, clusters_h);
299  const l1t::HGCalClusterBxCollection &clusters = *clusters_h;
300 
301  if (clusters_h.isValid()) {
302  for (auto cl_itr = clusters.begin(0); cl_itr != clusters.end(0); cl_itr++) {
303  cl_n++;
304  histograms.h_cl_mipPt_->Fill(cl_itr->mipPt());
305  histograms.h_cl_pt_->Fill(cl_itr->pt());
306  histograms.h_cl_energy_->Fill(cl_itr->energy());
307  histograms.h_cl_eta_->Fill(cl_itr->eta());
308  histograms.h_cl_phi_->Fill(cl_itr->phi());
309  histograms.h_cl_layer_->Fill(triggerTools_->layerWithOffset(cl_itr->detId()));
310  histograms.h_cl_cells_n_->Fill(cl_itr->constituents().size());
311  }
312  }
313  histograms.h_cl_n_->Fill(cl_n);
314 
315  // retrieve clusters 3D
317  iEvent.getByToken(multiclusters_token_, multiclusters_h);
318  const l1t::HGCalMulticlusterBxCollection &multiclusters = *multiclusters_h;
319 
320  if (multiclusters_h.isValid()) {
321  for (auto cl3d_itr = multiclusters.begin(0); cl3d_itr != multiclusters.end(0); cl3d_itr++) {
322  cl3d_n++;
323  histograms.h_cl3d_pt_->Fill(cl3d_itr->pt());
324  histograms.h_cl3d_energy_->Fill(cl3d_itr->energy());
325  histograms.h_cl3d_eta_->Fill(cl3d_itr->eta());
326  histograms.h_cl3d_phi_->Fill(cl3d_itr->phi());
327  histograms.h_cl3d_clusters_n_->Fill(cl3d_itr->constituents().size());
328  // cluster shower shapes
329  histograms.h_cl3d_showerlength_->Fill(cl3d_itr->showerLength());
330  histograms.h_cl3d_coreshowerlength_->Fill(cl3d_itr->coreShowerLength());
331  histograms.h_cl3d_firstlayer_->Fill(cl3d_itr->firstLayer());
332  histograms.h_cl3d_maxlayer_->Fill(cl3d_itr->maxLayer());
333  histograms.h_cl3d_seetot_->Fill(cl3d_itr->sigmaEtaEtaTot());
334  histograms.h_cl3d_seemax_->Fill(cl3d_itr->sigmaEtaEtaMax());
335  histograms.h_cl3d_spptot_->Fill(cl3d_itr->sigmaPhiPhiTot());
336  histograms.h_cl3d_sppmax_->Fill(cl3d_itr->sigmaPhiPhiMax());
337  histograms.h_cl3d_szz_->Fill(cl3d_itr->sigmaZZ());
338  histograms.h_cl3d_srrtot_->Fill(cl3d_itr->sigmaRRTot());
339  histograms.h_cl3d_srrmax_->Fill(cl3d_itr->sigmaRRMax());
340  histograms.h_cl3d_srrmean_->Fill(cl3d_itr->sigmaRRMean());
341  histograms.h_cl3d_emaxe_->Fill(cl3d_itr->eMax() / cl3d_itr->energy());
342  histograms.h_cl3d_hoe_->Fill(cl3d_itr->hOverE());
343  histograms.h_cl3d_meanz_->Fill(cl3d_itr->zBarycenter());
344  histograms.h_cl3d_layer10_->Fill(cl3d_itr->layer10percent());
345  histograms.h_cl3d_layer50_->Fill(cl3d_itr->layer50percent());
346  histograms.h_cl3d_layer90_->Fill(cl3d_itr->layer90percent());
347  histograms.h_cl3d_first1layers_->Fill(cl3d_itr->first1layers());
348  histograms.h_cl3d_first3layers_->Fill(cl3d_itr->first3layers());
349  histograms.h_cl3d_first5layers_->Fill(cl3d_itr->first5layers());
350  histograms.h_cl3d_firstHcal1layers_->Fill(cl3d_itr->firstHcal1layers());
351  histograms.h_cl3d_firstHcal3layers_->Fill(cl3d_itr->firstHcal3layers());
352  histograms.h_cl3d_firstHcal5layers_->Fill(cl3d_itr->firstHcal5layers());
353  histograms.h_cl3d_last1layers_->Fill(cl3d_itr->last1layers());
354  histograms.h_cl3d_last3layers_->Fill(cl3d_itr->last3layers());
355  histograms.h_cl3d_last5layers_->Fill(cl3d_itr->last5layers());
356  histograms.h_cl3d_emax1layers_->Fill(cl3d_itr->emax1layers());
357  histograms.h_cl3d_emax3layers_->Fill(cl3d_itr->emax3layers());
358  histograms.h_cl3d_emax5layers_->Fill(cl3d_itr->emax5layers());
359  histograms.h_cl3d_eot_->Fill(cl3d_itr->eot());
360  histograms.h_cl3d_ebm0_->Fill(cl3d_itr->ebm0());
361  histograms.h_cl3d_ebm1_->Fill(cl3d_itr->ebm1());
362  histograms.h_cl3d_hbm_->Fill(cl3d_itr->hbm());
363  histograms.h_cl3d_ntc67_->Fill(cl3d_itr->triggerCells67percent());
364  histograms.h_cl3d_ntc90_->Fill(cl3d_itr->triggerCells90percent());
365  histograms.h_cl3d_bdteg_->Fill(id_->value(*cl3d_itr));
366  histograms.h_cl3d_quality_->Fill(cl3d_itr->hwQual());
367  }
368  }
369  histograms.h_cl3d_n_->Fill(cl3d_n);
370 
371  // retrieve towers
373  iEvent.getByToken(towers_token_, towers_h);
374  const l1t::HGCalTowerBxCollection &towers = *towers_h;
375 
376  if (towers_h.isValid()) {
377  for (auto tower_itr = towers.begin(0); tower_itr != towers.end(0); tower_itr++) {
378  tower_n++;
379  histograms.h_tower_pt_->Fill(tower_itr->pt());
380  histograms.h_tower_energy_->Fill(tower_itr->energy());
381  histograms.h_tower_eta_->Fill(tower_itr->eta());
382  histograms.h_tower_phi_->Fill(tower_itr->phi());
383  histograms.h_tower_etEm_->Fill(tower_itr->etEm());
384  histograms.h_tower_etHad_->Fill(tower_itr->etHad());
385  histograms.h_tower_iEta_->Fill(tower_itr->id().iEta());
386  histograms.h_tower_iPhi_->Fill(tower_itr->id().iPhi());
387  }
388  }
389  histograms.h_tower_n_->Fill(tower_n);
390 }
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 156 of file HGCalTriggerValidator.cc.

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

158  {
159  auto const triggerGeometry = iSetup.getHandle(triggerGeomToken_);
160  triggerTools_->setGeometry(triggerGeometry.product());
161 }
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 132 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze().

◆ id_

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

Definition at line 137 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze().

◆ multiclusters_token_

const edm::EDGetToken HGCalTriggerValidator::multiclusters_token_
private

Definition at line 133 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze().

◆ towers_token_

const edm::EDGetToken HGCalTriggerValidator::towers_token_
private

Definition at line 134 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze().

◆ trigger_cells_token_

const edm::EDGetToken HGCalTriggerValidator::trigger_cells_token_
private

Definition at line 131 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze().

◆ triggerGeomToken_

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

Definition at line 135 of file HGCalTriggerValidator.cc.

Referenced by dqmBeginRun().

◆ triggerTools_

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

Definition at line 139 of file HGCalTriggerValidator.cc.

Referenced by dqmAnalyze(), and dqmBeginRun().