CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
L1TRate Class Reference

#include <L1TRate.h>

Inheritance diagram for L1TRate:
DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks > edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 L1TRate (const edm::ParameterSet &ps)
 
 ~L1TRate () override
 
- Public Member Functions inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () 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
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > 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
 
bool registeredToConsumeMany (TypeID const &, 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::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &c) override
 
void bookHistograms (DQMStore::IBooker &ibooker, const edm::Run &, const edm::EventSetup &) override
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
void endLuminosityBlock (edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &c) override
 
- Protected Member Functions inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
virtual void dqmEndRun (edm::Run const &, edm::EventSetup 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 ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
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)
 

Private Member Functions

bool getXSexFitsOMDS (const edm::ParameterSet &ps)
 
bool getXSexFitsPython (const edm::ParameterSet &ps)
 

Private Attributes

std::map< TString, int > m_algoBit
 
MonitorElementm_ErrorMonitor
 
L1TMenuHelper::Tokens m_helperTokens
 
std::map< std::string, bool > m_inputCategories
 
edm::EDGetTokenT< L1GlobalTriggerReadoutRecordm_l1GtDataDaqInputTag
 
const edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsAlgoTrigRcdm_l1GtPfAlgoToken
 
L1GtUtils m_l1GtUtils
 
const std::vector< std::vector< int > > * m_listsPrescaleFactors
 
std::map< int, double > m_lsLuminosity
 
std::map< int, int > m_lsPrescaleIndex
 
std::map< int, std::map< TString, double > > m_lsRates
 
int m_lsShiftGTRates
 
int m_maxNbins
 
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcdm_menuToken
 
std::string m_outputFile
 
edm::ParameterSet m_parameters
 
int m_refPrescaleSet
 
edm::EDGetTokenT< LumiScalersCollectionm_scalersSource_colLScal
 
edm::EDGetTokenT< Level1TriggerScalersCollectionm_scalersSource_triggerScalers
 
std::map< std::string, std::string > m_selectedTriggers
 
std::map< TString, TF1 * > m_templateFunctions
 
bool m_verbose
 
std::map< TString, MonitorElement * > m_xSecObservedToExpected
 
std::map< TString, MonitorElement * > m_xSecVsInstLumi
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::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::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 47 of file L1TRate.h.

Constructor & Destructor Documentation

◆ L1TRate()

L1TRate::L1TRate ( const edm::ParameterSet ps)

Definition at line 32 of file L1TRate.cc.

References L1TSync_cfi::Categories, gather_cfg::cout, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), m_inputCategories, m_l1GtDataDaqInputTag, m_lsShiftGTRates, m_maxNbins, m_outputFile, m_parameters, m_refPrescaleSet, m_scalersSource_colLScal, m_scalersSource_triggerScalers, and m_verbose.

33  : m_menuToken(esConsumes<edm::Transition::BeginRun>()),
34  m_l1GtPfAlgoToken(esConsumes<edm::Transition::BeginRun>()),
35  m_helperTokens(L1TMenuHelper::consumes<edm::Transition::BeginRun>(consumesCollector())),
36  m_l1GtUtils(ps, consumesCollector(), false, *this) {
37  m_maxNbins = 2500; // Maximum LS for each run (for binning purposes)
38  m_parameters = ps;
39 
40  // Mapping parameter input variables
42  consumes<LumiScalersCollection>(m_parameters.getParameter<InputTag>("inputTagScalersResults"));
44  consumes<Level1TriggerScalersCollection>(m_parameters.getParameter<InputTag>("inputTagScalersResults"));
46  consumes<L1GlobalTriggerReadoutRecord>(m_parameters.getParameter<InputTag>("inputTagL1GtDataDaq"));
47  m_verbose = m_parameters.getUntrackedParameter<bool>("verbose", false);
48  m_refPrescaleSet = m_parameters.getParameter<int>("refPrescaleSet");
49  m_lsShiftGTRates = m_parameters.getUntrackedParameter<int>("lsShiftGTRates", 0);
50 
51  // Getting which categories to monitor
53  m_inputCategories["Mu"] = Categories.getUntrackedParameter<bool>("Mu");
54  m_inputCategories["EG"] = Categories.getUntrackedParameter<bool>("EG");
55  m_inputCategories["IsoEG"] = Categories.getUntrackedParameter<bool>("IsoEG");
56  m_inputCategories["Jet"] = Categories.getUntrackedParameter<bool>("Jet");
57  m_inputCategories["CenJet"] = Categories.getUntrackedParameter<bool>("CenJet");
58  m_inputCategories["ForJet"] = Categories.getUntrackedParameter<bool>("ForJet");
59  m_inputCategories["TauJet"] = Categories.getUntrackedParameter<bool>("TauJet");
60  m_inputCategories["ETM"] = Categories.getUntrackedParameter<bool>("ETM");
61  m_inputCategories["ETT"] = Categories.getUntrackedParameter<bool>("ETT");
62  m_inputCategories["HTT"] = Categories.getUntrackedParameter<bool>("HTT");
63  m_inputCategories["HTM"] = Categories.getUntrackedParameter<bool>("HTM");
64 
65  // What to do if we want our output to be saved to a external file
66  m_outputFile = ps.getUntrackedParameter<string>("outputFile", "");
67 
68  if (!m_outputFile.empty()) {
69  cout << "L1T Monitoring histograms will be saved to " << m_outputFile.c_str() << endl;
70  }
71 
72  bool disable = ps.getUntrackedParameter<bool>("disableROOToutput", false);
73  if (disable) {
74  m_outputFile = "";
75  }
76 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< LumiScalersCollection > m_scalersSource_colLScal
Definition: L1TRate.h:96
edm::EDGetTokenT< Level1TriggerScalersCollection > m_scalersSource_triggerScalers
Definition: L1TRate.h:97
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputTag
Definition: L1TRate.h:98
std::map< std::string, bool > m_inputCategories
Definition: L1TRate.h:89
edm::ParameterSet m_parameters
Definition: L1TRate.h:104
bool m_verbose
Definition: L1TRate.h:71
const edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsAlgoTrigRcd > m_l1GtPfAlgoToken
Definition: L1TRate.h:100
L1GtUtils m_l1GtUtils
Definition: L1TRate.h:112
T getUntrackedParameter(std::string const &, T const &) const
int m_lsShiftGTRates
Definition: L1TRate.h:76
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
int m_maxNbins
Definition: L1TRate.h:75
int m_refPrescaleSet
Definition: L1TRate.h:74
L1TMenuHelper::Tokens m_helperTokens
Definition: L1TRate.h:101
std::string m_outputFile
Definition: L1TRate.h:79
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcd > m_menuToken
Definition: L1TRate.h:99

◆ ~L1TRate()

L1TRate::~L1TRate ( )
override

Definition at line 79 of file L1TRate.cc.

79 {}

Member Function Documentation

◆ analyze()

void L1TRate::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >.

Definition at line 285 of file L1TRate.cc.

References gather_cfg::cout, edm::ParameterSet::getUntrackedParameter(), Level1TriggerRates::gtAlgoCountsRate(), L1GlobalTriggerReadoutRecord::gtFdlVector(), mps_fire::i, iEvent, muonGEMDigis_cfi::instLumi, edm::HandleBase::isValid(), m_algoBit, m_l1GtDataDaqInputTag, m_lsLuminosity, m_lsPrescaleIndex, m_lsRates, m_lsShiftGTRates, m_parameters, m_scalersSource_colLScal, m_scalersSource_triggerScalers, m_selectedTriggers, and m_verbose.

285  {
286  edm::Handle<L1GlobalTriggerReadoutRecord> gtReadoutRecordData;
289 
290  iEvent.getByToken(m_l1GtDataDaqInputTag, gtReadoutRecordData);
291  iEvent.getByToken(m_scalersSource_colLScal, colLScal);
292  iEvent.getByToken(m_scalersSource_triggerScalers, triggerScalers);
293 
294  // Integers
295  int EventRun = iEvent.id().run();
296  unsigned int eventLS = iEvent.id().luminosityBlock();
297 
298  // Getting the trigger trigger rates from GT and buffering it
299  if (triggerScalers.isValid()) {
300  Level1TriggerScalersCollection::const_iterator itL1TScalers = triggerScalers->begin();
301  Level1TriggerRates trigRates(*itL1TScalers, EventRun);
302 
303  int gtLS = (*itL1TScalers).lumiSegmentNr() + m_lsShiftGTRates;
304 
305  // If we haven't got the data from this LS yet get it
306  if (m_lsRates.find(gtLS) == m_lsRates.end()) {
307  if (m_verbose) {
308  cout << "[L1TRate:] Buffering GT Rates for LS=" << gtLS << endl;
309  }
310  map<TString, double> bufferRate;
311 
312  // Buffer the rate informations for all selected bits
313  for (map<string, string>::const_iterator i = m_selectedTriggers.begin(); i != m_selectedTriggers.end(); i++) {
314  string tTrigger = (*i).second;
315 
316  // If trigger name is defined we store the rate
317  if (tTrigger != "Undefined") {
318  unsigned int trigBit = m_algoBit[tTrigger];
319  double trigRate = trigRates.gtAlgoCountsRate()[trigBit];
320 
321  bufferRate[tTrigger] = trigRate;
322  }
323  }
324  m_lsRates[gtLS] = bufferRate;
325  }
326  }
327 
328  // Getting from the SCAL the luminosity information and buffering it
329  if (colLScal.isValid() && !colLScal->empty()) {
330  LumiScalersCollection::const_iterator itLScal = colLScal->begin();
331  unsigned int scalLS = itLScal->sectionNumber();
332 
333  // If we haven't got the data from this SCAL LS yet get it
334  if (m_lsLuminosity.find(scalLS) == m_lsLuminosity.end()) {
335  if (m_verbose) {
336  cout << "[L1TRate:] Buffering SCAL-HF Lumi for LS=" << scalLS << endl;
337  }
338  double instLumi = itLScal->instantLumi(); // Getting Instant Lumi from HF (via SCAL)
339  double deadTimeNormHF = itLScal->deadTimeNormalization(); // Getting Dead Time Normalization from HF (via SCAL)
340 
341  // If HF Dead Time Corrections is requested we apply it
342  // NOTE: By default this is assumed false since for now WbM fits do NOT assume this correction
343  if (m_parameters.getUntrackedParameter<bool>("useHFDeadTimeNormalization", false)) {
344  // Protecting for deadtime = 0
345  if (deadTimeNormHF == 0) {
346  instLumi = 0;
347  } else {
348  instLumi = instLumi / deadTimeNormHF;
349  }
350  }
351  // Buffering the luminosity information
352  m_lsLuminosity[scalLS] = instLumi;
353  }
354  }
355 
356  // Getting the prescale index used when this event was triggered
357  if (gtReadoutRecordData.isValid()) {
358  // If we haven't got the data from this LS yet get it
359  if (m_lsPrescaleIndex.find(eventLS) == m_lsPrescaleIndex.end()) {
360  if (m_verbose) {
361  cout << "[L1TRate:] Buffering Prescale Index for LS=" << eventLS << endl;
362  }
363 
364  // Getting Final Decision Logic (FDL) Data from GT
365  const vector<L1GtFdlWord>& gtFdlVectorData = gtReadoutRecordData->gtFdlVector();
366 
367  // Getting the index for the fdl data for this event
368  int indexFDL = 0;
369  for (unsigned int i = 0; i < gtFdlVectorData.size(); i++) {
370  if (gtFdlVectorData[i].bxInEvent() == 0) {
371  indexFDL = i;
372  break;
373  }
374  }
375 
376  int CurrentPrescalesIndex = gtFdlVectorData[indexFDL].gtPrescaleFactorIndexAlgo();
377  m_lsPrescaleIndex[eventLS] = CurrentPrescalesIndex;
378  }
379  }
380 }
std::map< int, std::map< TString, double > > m_lsRates
Definition: L1TRate.h:87
edm::EDGetTokenT< LumiScalersCollection > m_scalersSource_colLScal
Definition: L1TRate.h:96
edm::EDGetTokenT< Level1TriggerScalersCollection > m_scalersSource_triggerScalers
Definition: L1TRate.h:97
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputTag
Definition: L1TRate.h:98
edm::ParameterSet m_parameters
Definition: L1TRate.h:104
bool m_verbose
Definition: L1TRate.h:71
T getUntrackedParameter(std::string const &, T const &) const
int m_lsShiftGTRates
Definition: L1TRate.h:76
int iEvent
Definition: GenABIO.cc:224
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
std::map< TString, int > m_algoBit
Definition: L1TRate.h:88
std::map< std::string, std::string > m_selectedTriggers
Definition: L1TRate.h:90
bool isValid() const
Definition: HandleBase.h:70
std::map< int, double > m_lsLuminosity
Definition: L1TRate.h:86
std::map< int, int > m_lsPrescaleIndex
Definition: L1TRate.h:85

◆ beginLuminosityBlock()

void L1TRate::beginLuminosityBlock ( edm::LuminosityBlock const &  lumiBlock,
edm::EventSetup const &  c 
)
overrideprotected

Definition at line 193 of file L1TRate.cc.

References gather_cfg::cout, edm::LuminosityBlockBase::id(), edm::LuminosityBlockID::luminosityBlock(), and m_verbose.

193  {
194  if (m_verbose) {
195  cout << "[L1TRate:] Called beginLuminosityBlock at LS=" << lumiBlock.id().luminosityBlock() << endl;
196  }
197 }
bool m_verbose
Definition: L1TRate.h:71

◆ bookHistograms()

void L1TRate::bookHistograms ( DQMStore::IBooker ibooker,
const edm::Run ,
const edm::EventSetup iSetup 
)
overrideprotectedvirtual

Implements DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >.

Definition at line 84 of file L1TRate.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), edm::EventSetup::getData(), L1TMenuHelper::getEtaRangeByAlias(), L1TMenuHelper::getLUSOTrigger(), edm::ParameterSet::getParameter(), L1TMenuHelper::getPrescaleByAlias(), L1TMenuHelper::getQualityAlias(), getXSexFitsOMDS(), getXSexFitsPython(), L1GtPrescaleFactors::gtPrescaleFactors(), mps_fire::i, m_algoBit, m_ErrorMonitor, m_helperTokens, m_inputCategories, m_l1GtPfAlgoToken, m_l1GtUtils, m_listsPrescaleFactors, m_maxNbins, m_menuToken, m_parameters, m_refPrescaleSet, m_selectedTriggers, m_templateFunctions, m_xSecObservedToExpected, m_xSecVsInstLumi, L1TRate_cfi::maxInstantLuminosity, optionsL1T::menu, L1TRate_cfi::minInstantLuminosity, L1GtUtils::retrieveL1EventSetup(), dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), and L1TRate_cfi::srcAlgoXSecFit.

84  {
85  const L1GtTriggerMenu& menu = iSetup.getData(m_menuToken);
86  const L1GtPrescaleFactors& l1GtPfAlgo = iSetup.getData(m_l1GtPfAlgoToken);
87 
88  // Initializing DQM Monitor Elements
89  ibooker.setCurrentFolder("L1T/L1TRate");
90  m_ErrorMonitor = ibooker.book1D("ErrorMonitor", "ErrorMonitor", 5, 0, 5);
91  m_ErrorMonitor->setBinLabel(1, "WARNING_DB_CONN_FAILED"); // Errors from L1TOMDSHelper
92  m_ErrorMonitor->setBinLabel(2, "WARNING_DB_QUERY_FAILED"); // Errors from L1TOMDSHelper
93  m_ErrorMonitor->setBinLabel(3, "WARNING_DB_INCORRECT_NBUNCHES"); // Errors from L1TOMDSHelper
94  m_ErrorMonitor->setBinLabel(4, "WARNING_PY_MISSING_FIT");
95  m_ErrorMonitor->setBinLabel(5, "UNKNOWN");
96 
97  // Retriving the list of prescale sets
98  m_listsPrescaleFactors = &(l1GtPfAlgo.gtPrescaleFactors());
99 
100  // Getting Lowest Prescale Single Object Triggers from the menu
101  L1TMenuHelper myMenuHelper = L1TMenuHelper(iSetup, m_helperTokens);
104 
105  //-> Getting template fits for the algLo cross sections
106  int srcAlgoXSecFit = m_parameters.getParameter<int>("srcAlgoXSecFit");
107  if (srcAlgoXSecFit == 0) {
109  } else if (srcAlgoXSecFit == 1) {
111  }
112 
113  for (const auto& algo : menu.gtAlgorithmMap()) {
114  m_algoBit[algo.second.algoAlias()] = algo.second.algoBitNumber();
115  }
116 
117  double minInstantLuminosity = m_parameters.getParameter<double>("minInstantLuminosity");
118  double maxInstantLuminosity = m_parameters.getParameter<double>("maxInstantLuminosity");
119 
120  // Initializing DQM Monitor Elements
121  for (map<string, string>::const_iterator i = m_selectedTriggers.begin(); i != m_selectedTriggers.end(); i++) {
122  TString tCategory = (*i).first;
123  TString tTrigger = (*i).second;
124 
125  TString tErrorMessage = "";
126  TF1* tTestFunction;
127 
128  if (tTrigger != "Undefined" && m_templateFunctions.find(tTrigger) != m_templateFunctions.end()) {
129  tTestFunction = m_templateFunctions[tTrigger];
130  } else if (tTrigger == "Undefined") {
131  TString tFunc = "-1";
132  tTestFunction = new TF1("FitParametrization_" + tTrigger, tFunc, 0, double(m_maxNbins) - 0.5);
133  } else if (m_templateFunctions.find(tTrigger) == m_templateFunctions.end()) {
134  TString tFunc = "-1";
135  tTestFunction = new TF1("FitParametrization_" + tTrigger, tFunc, 0, double(m_maxNbins) - 0.5);
136  tErrorMessage = " (Undefined Test Function)";
137  } else {
138  TString tFunc = "-1";
139  tTestFunction = new TF1("FitParametrization_" + tTrigger, tFunc, 0, double(m_maxNbins) - 0.5);
140  }
141 
142  if (tTrigger != "Undefined") {
143  if (myMenuHelper.getPrescaleByAlias(tCategory, tTrigger) != 1) {
144  tErrorMessage += " WARNING: Default Prescale = ";
145  tErrorMessage += myMenuHelper.getPrescaleByAlias(tCategory, tTrigger);
146  }
147 
148  if (tCategory == "Mu" && myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger) != 4294967295) {
149  tErrorMessage += " WARNING: Eta Range = ";
150  tErrorMessage += myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger);
151  } else if (tCategory == "EG" && myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger) != 32639) {
152  tErrorMessage += " WARNING: Eta Range = ";
153  tErrorMessage += myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger);
154  } else if (tCategory == "IsoEG" && myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger) != 32639) {
155  tErrorMessage += " WARNING: Eta Range = ";
156  tErrorMessage += myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger);
157  }
158 
159  if (tCategory == "Mu" && myMenuHelper.getQualityAlias(tCategory, tTrigger) != 240) {
160  tErrorMessage += " WARNING: Quality = ";
161  tErrorMessage += myMenuHelper.getQualityAlias(tCategory, tTrigger);
162  }
163  }
164 
165  ibooker.setCurrentFolder("L1T/L1TRate/TriggerCrossSections");
166  m_xSecVsInstLumi[tTrigger] = ibooker.bookProfile(tCategory,
167  "Cross Sec. vs Inst. Lumi Algo: " + tTrigger + tErrorMessage,
168  m_maxNbins,
171  0,
172  500);
173  m_xSecVsInstLumi[tTrigger]->setAxisTitle("Instantaneous Luminosity [10^{30}cm^{-2}s^{-1}]", 1);
174  m_xSecVsInstLumi[tTrigger]->setAxisTitle("Algorithm #sigma [#mu b]", 2);
175  m_xSecVsInstLumi[tTrigger]->getTProfile()->GetListOfFunctions()->Add(tTestFunction);
176  m_xSecVsInstLumi[tTrigger]->getTProfile()->SetMarkerStyle(23);
177 
178  ibooker.setCurrentFolder("L1T/L1TRate/Certification");
179  m_xSecObservedToExpected[tTrigger] =
180  ibooker.book1D(tCategory, "Algo: " + tTrigger + tErrorMessage, m_maxNbins, -0.5, double(m_maxNbins) - 0.5);
181  m_xSecObservedToExpected[tTrigger]->setAxisTitle("Lumi Section", 1);
182  m_xSecObservedToExpected[tTrigger]->setAxisTitle("#sigma_{obs} / #sigma_{exp}", 2);
183  }
184 }
std::map< TString, TF1 * > m_templateFunctions
Definition: L1TRate.h:93
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
void retrieveL1EventSetup(const edm::EventSetup &, bool isRun=true)
retrieve all the relevant L1 trigger event setup records and cache them to improve the speed ...
Definition: L1GtUtils.cc:128
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
std::map< std::string, bool > m_inputCategories
Definition: L1TRate.h:89
edm::ParameterSet m_parameters
Definition: L1TRate.h:104
const std::vector< std::vector< int > > & gtPrescaleFactors() const
get the prescale factors by reference
const edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsAlgoTrigRcd > m_l1GtPfAlgoToken
Definition: L1TRate.h:100
L1GtUtils m_l1GtUtils
Definition: L1TRate.h:112
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:399
bool getXSexFitsPython(const edm::ParameterSet &ps)
Definition: L1TRate.cc:464
int m_maxNbins
Definition: L1TRate.h:75
const std::vector< std::vector< int > > * m_listsPrescaleFactors
Definition: L1TRate.h:82
int m_refPrescaleSet
Definition: L1TRate.h:74
bool getData(T &iHolder) const
Definition: EventSetup.h:122
unsigned int getQualityAlias(const TString &iCategory, const TString &iAlias)
std::map< TString, int > m_algoBit
Definition: L1TRate.h:88
bool getXSexFitsOMDS(const edm::ParameterSet &ps)
Definition: L1TRate.cc:391
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
std::map< TString, MonitorElement * > m_xSecVsInstLumi
Definition: L1TRate.h:92
std::map< TString, MonitorElement * > m_xSecObservedToExpected
Definition: L1TRate.h:91
L1TMenuHelper::Tokens m_helperTokens
Definition: L1TRate.h:101
std::map< std::string, std::string > m_selectedTriggers
Definition: L1TRate.h:90
MonitorElement * m_ErrorMonitor
Definition: L1TRate.h:107
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcd > m_menuToken
Definition: L1TRate.h:99
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
unsigned int getEtaRangeByAlias(const TString &iCategory, const TString &iAlias)
int getPrescaleByAlias(const TString &iCategory, const TString &iAlias)
std::map< std::string, std::string > getLUSOTrigger(const std::map< std::string, bool > &iCategories, int IndexRefPrescaleFactors, L1GtUtils const &myUtils)

◆ dqmBeginRun()

void L1TRate::dqmBeginRun ( edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >.

Definition at line 186 of file L1TRate.cc.

References gather_cfg::cout, and m_verbose.

186  {
187  //
188  if (m_verbose) {
189  cout << "[L1TRate:] Called beginRun." << endl;
190  }
191 }
bool m_verbose
Definition: L1TRate.h:71

◆ endLuminosityBlock()

void L1TRate::endLuminosityBlock ( edm::LuminosityBlock const &  lumiBlock,
edm::EventSetup const &  c 
)
overrideprotected

Definition at line 200 of file L1TRate.cc.

References gather_cfg::cout, mps_fire::i, edm::LuminosityBlockBase::id(), eostools::ls(), edm::LuminosityBlockID::luminosityBlock(), m_algoBit, m_lsLuminosity, m_lsPrescaleIndex, m_lsRates, m_selectedTriggers, m_verbose, m_xSecObservedToExpected, m_xSecVsInstLumi, and genParticles_cff::map.

200  {
201  int eventLS = lumiBlock.id().luminosityBlock();
202  if (m_verbose) {
203  cout << "[L1TRate:] Called endLuminosityBlock at LS=" << eventLS << endl;
204  }
205 
206  // We can certify LS -1 since we should have available:
207  // gt rates: (current LS)-1
208  // prescale: current LS
209  // lumi : current LS
210  //eventLS--;
211 
212  // Checking if all necessary quantities are defined for our calculations
213  bool isDefRate, isDefLumi, isDefPrescaleIndex;
214  map<TString, double>* rates = nullptr;
215  double lumi = 0;
216  int prescalesIndex = 0;
217 
218  // Reseting MonitorElements so we can refill them
219  for (map<string, string>::const_iterator i = m_selectedTriggers.begin(); i != m_selectedTriggers.end(); i++) {
220  string tTrigger = (*i).second;
221  m_xSecObservedToExpected[tTrigger]->getTH1()->Reset("ICE");
222  m_xSecVsInstLumi[tTrigger]->getTH1()->Reset("ICE");
223  }
224 
225  for (map<int, map<TString, double> >::iterator i = m_lsRates.begin(); i != m_lsRates.end(); i++) {
226  unsigned int ls = (*i).first;
227  rates = &(*i).second;
228  isDefRate = true;
229 
230  if (m_lsLuminosity.find(ls) == m_lsLuminosity.end()) {
231  isDefLumi = false;
232  } else {
233  isDefLumi = true;
235  }
236 
237  if (m_lsPrescaleIndex.find(ls) == m_lsPrescaleIndex.end()) {
238  isDefPrescaleIndex = false;
239  } else {
240  isDefPrescaleIndex = true;
241  prescalesIndex = m_lsPrescaleIndex[ls];
242  }
243 
244  if (isDefRate && isDefLumi && isDefPrescaleIndex) {
245  const vector<int>& currentPrescaleFactors = (*m_listsPrescaleFactors).at(prescalesIndex);
246 
247  for (map<string, string>::const_iterator i = m_selectedTriggers.begin(); i != m_selectedTriggers.end(); i++) {
248  string tTrigger = (*i).second;
249  TF1* tTestFunction = (TF1*)m_xSecVsInstLumi[tTrigger]->getTProfile()->GetListOfFunctions()->First();
250 
251  // If trigger name is defined we get the rate fit parameters
252  if (tTrigger != "Undefined") {
253  unsigned int trigBit = m_algoBit[tTrigger];
254  double trigPrescale = currentPrescaleFactors[trigBit];
255  double trigRate = (*rates)[tTrigger];
256 
257  if (lumi != 0 && trigPrescale != 0 && trigRate != 0) {
258  double AlgoXSec = (trigPrescale * trigRate) / lumi;
259  double TemplateFunctionValue = tTestFunction->Eval(lumi);
260 
261  // Checking against Template function
262  int ibin = m_xSecObservedToExpected[tTrigger]->getTH1()->FindBin(ls);
263  m_xSecObservedToExpected[tTrigger]->setBinContent(ibin, AlgoXSec / TemplateFunctionValue);
264  m_xSecVsInstLumi[tTrigger]->Fill(lumi, AlgoXSec);
265 
266  if (m_verbose) {
267  cout << "[L1TRate:] ls=" << ls << " Algo=" << tTrigger << " XSec=" << AlgoXSec
268  << " Test=" << AlgoXSec / TemplateFunctionValue << endl;
269  }
270 
271  } else {
272  int ibin = m_xSecObservedToExpected[tTrigger]->getTH1()->FindBin(ls);
273  m_xSecObservedToExpected[tTrigger]->setBinContent(ibin, 0.000001);
274  if (m_verbose) {
275  cout << "[L1TRate:] Algo=" << tTrigger << " XSec=Failed" << endl;
276  }
277  }
278  }
279  }
280  }
281  }
282 }
std::map< int, std::map< TString, double > > m_lsRates
Definition: L1TRate.h:87
bool m_verbose
Definition: L1TRate.h:71
std::map< TString, int > m_algoBit
Definition: L1TRate.h:88
std::map< TString, MonitorElement * > m_xSecVsInstLumi
Definition: L1TRate.h:92
std::map< TString, MonitorElement * > m_xSecObservedToExpected
Definition: L1TRate.h:91
std::map< std::string, std::string > m_selectedTriggers
Definition: L1TRate.h:90
def ls(path, rec=False)
Definition: eostools.py:349
std::map< int, double > m_lsLuminosity
Definition: L1TRate.h:86
std::map< int, int > m_lsPrescaleIndex
Definition: L1TRate.h:85

◆ getXSexFitsOMDS()

bool L1TRate::getXSexFitsOMDS ( const edm::ParameterSet ps)
private

Definition at line 391 of file L1TRate.cc.

References a, WbMTriggerXSecFit::bitName, L1TOMDSHelper::connect(), dqm::impl::MonitorElement::Fill(), WbMTriggerXSecFit::fitFunction, edm::ParameterSet::getParameter(), m_ErrorMonitor, m_parameters, m_selectedTriggers, m_templateFunctions, L1TRate_cfi::maxInstantLuminosity, L1TRate_cfi::minInstantLuminosity, L1TOMDSHelper::NO_ERROR, L1TBPTX_cfi::oracleDB, WbMTriggerXSecFit::p0, WbMTriggerXSecFit::p1, WbMTriggerXSecFit::p2, L1TBPTX_cfi::pathCondDB, and WbMTriggerXSecFit::pm1.

Referenced by bookHistograms().

391  {
392  bool noError = true;
393 
394  string oracleDB = ps.getParameter<string>("oracleDB");
395  string pathCondDB = ps.getParameter<string>("pathCondDB");
396 
397  L1TOMDSHelper myOMDSHelper;
398  int conError;
399  myOMDSHelper.connect(oracleDB, pathCondDB, conError);
400 
401  map<string, WbMTriggerXSecFit> wbmFits;
402 
403  if (conError == L1TOMDSHelper::NO_ERROR) {
404  int errorRetrive;
405  wbmFits = myOMDSHelper.getWbMAlgoXsecFits(errorRetrive);
406 
407  // Filling errors if they exist
408  if (errorRetrive != L1TOMDSHelper::NO_ERROR) {
409  noError = false;
410  string eName = myOMDSHelper.enumToStringError(errorRetrive);
411  m_ErrorMonitor->Fill(eName);
412  }
413  } else {
414  noError = false;
415  string eName = myOMDSHelper.enumToStringError(conError);
416  m_ErrorMonitor->Fill(eName);
417  }
418 
419  double minInstantLuminosity = m_parameters.getParameter<double>("minInstantLuminosity");
420  double maxInstantLuminosity = m_parameters.getParameter<double>("maxInstantLuminosity");
421 
422  // Getting rate fit parameters for all input triggers
423  for (map<string, string>::const_iterator a = m_selectedTriggers.begin(); a != m_selectedTriggers.end(); a++) {
424  string tTrigger = (*a).second;
425 
426  // If trigger name is defined we get the rate fit parameters
427  if (tTrigger != "Undefined") {
428  if (wbmFits.find(tTrigger) != wbmFits.end()) {
429  WbMTriggerXSecFit tWbMParameters = wbmFits[tTrigger];
430 
431  vector<double> tParameters;
432  tParameters.push_back(tWbMParameters.pm1);
433  tParameters.push_back(tWbMParameters.p0);
434  tParameters.push_back(tWbMParameters.p1);
435  tParameters.push_back(tWbMParameters.p2);
436 
437  // Retriving and populating the m_templateFunctions array
438  m_templateFunctions[tTrigger] = new TF1("FitParametrization_" + tWbMParameters.bitName,
439  tWbMParameters.fitFunction,
442  m_templateFunctions[tTrigger]->SetParameters(&tParameters[0]);
443  m_templateFunctions[tTrigger]->SetLineWidth(1);
444  m_templateFunctions[tTrigger]->SetLineColor(kRed);
445 
446  } else {
447  noError = false;
448  }
449  }
450  }
451 
452  return noError;
453 }
std::map< TString, TF1 * > m_templateFunctions
Definition: L1TRate.h:93
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
bool connect(std::string iOracleDB, std::string iPathCondDB, int &error)
edm::ParameterSet m_parameters
Definition: L1TRate.h:104
void Fill(long long x)
std::map< std::string, std::string > m_selectedTriggers
Definition: L1TRate.h:90
double a
Definition: hdecay.h:119
MonitorElement * m_ErrorMonitor
Definition: L1TRate.h:107

◆ getXSexFitsPython()

bool L1TRate::getXSexFitsPython ( const edm::ParameterSet ps)
private

Definition at line 464 of file L1TRate.cc.

References a, b, dqm::impl::MonitorElement::Fill(), edm::ParameterSet::getParameter(), m_ErrorMonitor, m_parameters, m_selectedTriggers, m_templateFunctions, L1TRate_cfi::maxInstantLuminosity, and L1TRate_cfi::minInstantLuminosity.

Referenced by bookHistograms().

464  {
465  // error meaning
466  bool noError = true;
467 
468  // Getting fit parameters
469  std::vector<edm::ParameterSet> m_fitParameters = ps.getParameter<vector<ParameterSet> >("fitParameters");
470 
471  double minInstantLuminosity = m_parameters.getParameter<double>("minInstantLuminosity");
472  double maxInstantLuminosity = m_parameters.getParameter<double>("maxInstantLuminosity");
473 
474  // Getting rate fit parameters for all input triggers
475  for (map<string, string>::const_iterator a = m_selectedTriggers.begin(); a != m_selectedTriggers.end(); a++) {
476  string tTrigger = (*a).second;
477 
478  // If trigger name is defined we get the rate fit parameters
479  if (tTrigger != "Undefined") {
480  bool foundFit = false;
481 
482  for (unsigned int b = 0; b < m_fitParameters.size(); b++) {
483  if (tTrigger == m_fitParameters[b].getParameter<string>("AlgoName")) {
484  TString tAlgoName = m_fitParameters[b].getParameter<string>("AlgoName");
485  TString tTemplateFunction = m_fitParameters[b].getParameter<string>("TemplateFunction");
486  vector<double> tParameters = m_fitParameters[b].getParameter<vector<double> >("Parameters");
487 
488  // Retriving and populating the m_templateFunctions array
489  m_templateFunctions[tTrigger] =
490  new TF1("FitParametrization_" + tAlgoName, tTemplateFunction, minInstantLuminosity, maxInstantLuminosity);
491  m_templateFunctions[tTrigger]->SetParameters(&tParameters[0]);
492  m_templateFunctions[tTrigger]->SetLineWidth(1);
493  m_templateFunctions[tTrigger]->SetLineColor(kRed);
494 
495  foundFit = true;
496  break;
497  }
498  }
499  if (!foundFit) {
500  noError = false;
501  string eName = "WARNING_PY_MISSING_FIT";
502  m_ErrorMonitor->Fill(eName);
503  }
504  }
505  }
506 
507  return noError;
508 }
std::map< TString, TF1 * > m_templateFunctions
Definition: L1TRate.h:93
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::ParameterSet m_parameters
Definition: L1TRate.h:104
void Fill(long long x)
std::map< std::string, std::string > m_selectedTriggers
Definition: L1TRate.h:90
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119
MonitorElement * m_ErrorMonitor
Definition: L1TRate.h:107

Member Data Documentation

◆ m_algoBit

std::map<TString, int> L1TRate::m_algoBit
private

Definition at line 88 of file L1TRate.h.

Referenced by analyze(), bookHistograms(), and endLuminosityBlock().

◆ m_ErrorMonitor

MonitorElement* L1TRate::m_ErrorMonitor
private

Definition at line 107 of file L1TRate.h.

Referenced by bookHistograms(), getXSexFitsOMDS(), and getXSexFitsPython().

◆ m_helperTokens

L1TMenuHelper::Tokens L1TRate::m_helperTokens
private

Definition at line 101 of file L1TRate.h.

Referenced by bookHistograms().

◆ m_inputCategories

std::map<std::string, bool> L1TRate::m_inputCategories
private

Definition at line 89 of file L1TRate.h.

Referenced by bookHistograms(), and L1TRate().

◆ m_l1GtDataDaqInputTag

edm::EDGetTokenT<L1GlobalTriggerReadoutRecord> L1TRate::m_l1GtDataDaqInputTag
private

Definition at line 98 of file L1TRate.h.

Referenced by analyze(), and L1TRate().

◆ m_l1GtPfAlgoToken

const edm::ESGetToken<L1GtPrescaleFactors, L1GtPrescaleFactorsAlgoTrigRcd> L1TRate::m_l1GtPfAlgoToken
private

Definition at line 100 of file L1TRate.h.

Referenced by bookHistograms().

◆ m_l1GtUtils

L1GtUtils L1TRate::m_l1GtUtils
private

Definition at line 112 of file L1TRate.h.

Referenced by bookHistograms().

◆ m_listsPrescaleFactors

const std::vector<std::vector<int> >* L1TRate::m_listsPrescaleFactors
private

Definition at line 82 of file L1TRate.h.

Referenced by bookHistograms().

◆ m_lsLuminosity

std::map<int, double> L1TRate::m_lsLuminosity
private

Definition at line 86 of file L1TRate.h.

Referenced by analyze(), and endLuminosityBlock().

◆ m_lsPrescaleIndex

std::map<int, int> L1TRate::m_lsPrescaleIndex
private

Definition at line 85 of file L1TRate.h.

Referenced by analyze(), and endLuminosityBlock().

◆ m_lsRates

std::map<int, std::map<TString, double> > L1TRate::m_lsRates
private

Definition at line 87 of file L1TRate.h.

Referenced by analyze(), and endLuminosityBlock().

◆ m_lsShiftGTRates

int L1TRate::m_lsShiftGTRates
private

Definition at line 76 of file L1TRate.h.

Referenced by analyze(), and L1TRate().

◆ m_maxNbins

int L1TRate::m_maxNbins
private

Definition at line 75 of file L1TRate.h.

Referenced by bookHistograms(), and L1TRate().

◆ m_menuToken

const edm::ESGetToken<L1GtTriggerMenu, L1GtTriggerMenuRcd> L1TRate::m_menuToken
private

Definition at line 99 of file L1TRate.h.

Referenced by bookHistograms().

◆ m_outputFile

std::string L1TRate::m_outputFile
private

Definition at line 79 of file L1TRate.h.

Referenced by L1TRate().

◆ m_parameters

edm::ParameterSet L1TRate::m_parameters
private

Definition at line 104 of file L1TRate.h.

Referenced by analyze(), bookHistograms(), getXSexFitsOMDS(), getXSexFitsPython(), and L1TRate().

◆ m_refPrescaleSet

int L1TRate::m_refPrescaleSet
private

Definition at line 74 of file L1TRate.h.

Referenced by bookHistograms(), and L1TRate().

◆ m_scalersSource_colLScal

edm::EDGetTokenT<LumiScalersCollection> L1TRate::m_scalersSource_colLScal
private

Definition at line 96 of file L1TRate.h.

Referenced by analyze(), and L1TRate().

◆ m_scalersSource_triggerScalers

edm::EDGetTokenT<Level1TriggerScalersCollection> L1TRate::m_scalersSource_triggerScalers
private

Definition at line 97 of file L1TRate.h.

Referenced by analyze(), and L1TRate().

◆ m_selectedTriggers

std::map<std::string, std::string> L1TRate::m_selectedTriggers
private

◆ m_templateFunctions

std::map<TString, TF1*> L1TRate::m_templateFunctions
private

Definition at line 93 of file L1TRate.h.

Referenced by bookHistograms(), getXSexFitsOMDS(), and getXSexFitsPython().

◆ m_verbose

bool L1TRate::m_verbose
private

Definition at line 71 of file L1TRate.h.

Referenced by analyze(), beginLuminosityBlock(), dqmBeginRun(), endLuminosityBlock(), and L1TRate().

◆ m_xSecObservedToExpected

std::map<TString, MonitorElement*> L1TRate::m_xSecObservedToExpected
private

Definition at line 91 of file L1TRate.h.

Referenced by bookHistograms(), and endLuminosityBlock().

◆ m_xSecVsInstLumi

std::map<TString, MonitorElement*> L1TRate::m_xSecVsInstLumi
private

Definition at line 92 of file L1TRate.h.

Referenced by bookHistograms(), and endLuminosityBlock().