CMS 3D CMS Logo

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

#include <L1TRate_Offline.h>

Inheritance diagram for L1TRate_Offline:
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 Types

enum  Errors { UNKNOWN = 1, WARNING_PY_MISSING_FIT = 2 }
 
- 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
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
 

Public Member Functions

 L1TRate_Offline (const edm::ParameterSet &ps)
 
 ~L1TRate_Offline () override
 
- Public Member Functions inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
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
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () 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
 
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)
 
 ~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
 
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::vector< ModuleDescription const * > &modules, 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
 
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 &run, const edm::EventSetup &iSetup) override
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
void endLuminosityBlock (edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &c) override
 
bool getXSexFitsPython (const edm::ParameterSet &ps)
 
- Protected Member Functions inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
virtual void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)=0
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
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<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)
 

Private Attributes

std::map< TString, int > m_algoBit
 
std::map< TString, TF1 * > m_algoFit
 
std::map< TString, MonitorElement * > m_CountsVsLS
 
std::map< TString, MonitorElement * > m_DelivLumiVsLS
 
MonitorElementm_ErrorMonitor
 
std::map< std::string, bool > m_inputCategories
 
std::map< TString, MonitorElement * > m_InstLumiVsLS
 
edm::EDGetTokenT< L1GlobalTriggerReadoutRecordm_l1GtDataDaqInputTag
 
L1GtUtils m_l1GtUtils
 
const std::vector< std::vector< int > > * m_listsPrescaleFactors
 
std::map< int, std::map< TString, double > > m_lsCounts
 
std::map< int, double > m_lsDeadTime
 
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
 
std::string m_outputFile
 
edm::ParameterSet m_parameters
 
std::map< TString, MonitorElement * > m_PrescIndexVsLS
 
std::map< TString, MonitorElement * > m_RecorLumiVsLS
 
int m_refPrescaleSet
 
edm::EDGetTokenT< Level1TriggerScalersCollectionm_scalersSource_L1TSCollection
 
edm::EDGetTokenT< LumiScalersCollectionm_scalersSource_LSCollection
 
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_xSecObservedVsDelivLumi
 
std::map< TString, MonitorElement * > m_xSecObservedVsLS
 
std::map< TString, MonitorElement * > m_xSecObservedVsRecorLumi
 
std::map< TString, MonitorElement * > m_xSecVsInstLumi
 

Additional Inherited Members

- 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 44 of file L1TRate_Offline.h.

Member Enumeration Documentation

Enumerator
UNKNOWN 
WARNING_PY_MISSING_FIT 

Definition at line 46 of file L1TRate_Offline.h.

Constructor & Destructor Documentation

L1TRate_Offline::L1TRate_Offline ( const edm::ParameterSet ps)

Definition at line 19 of file L1TRate_Offline.cc.

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

19  : m_l1GtUtils(ps, consumesCollector(), false, *this) {
20  m_maxNbins = 2500; // Maximum LS for each run (for binning purposes)
21  m_parameters = ps;
22 
23  // Mapping parameter input variables
25  consumes<LumiScalersCollection>(m_parameters.getParameter<InputTag>("inputTagScalersResults"));
27  consumes<Level1TriggerScalersCollection>(m_parameters.getParameter<InputTag>("inputTagScalersResults"));
29  consumes<L1GlobalTriggerReadoutRecord>(m_parameters.getParameter<InputTag>("inputTagL1GtDataDaq"));
30  m_verbose = m_parameters.getUntrackedParameter<bool>("verbose", false);
31  m_refPrescaleSet = m_parameters.getParameter<int>("refPrescaleSet");
32  m_lsShiftGTRates = m_parameters.getUntrackedParameter<int>("lsShiftGTRates", 0);
33 
34  // Getting which categories to monitor
36  m_inputCategories["Mu"] = Categories.getUntrackedParameter<bool>("Mu");
37  m_inputCategories["EG"] = Categories.getUntrackedParameter<bool>("EG");
38  m_inputCategories["IsoEG"] = Categories.getUntrackedParameter<bool>("IsoEG");
39  m_inputCategories["Jet"] = Categories.getUntrackedParameter<bool>("Jet");
40  m_inputCategories["CenJet"] = Categories.getUntrackedParameter<bool>("CenJet");
41  m_inputCategories["ForJet"] = Categories.getUntrackedParameter<bool>("ForJet");
42  m_inputCategories["TauJet"] = Categories.getUntrackedParameter<bool>("TauJet");
43  m_inputCategories["ETM"] = Categories.getUntrackedParameter<bool>("ETM");
44  m_inputCategories["ETT"] = Categories.getUntrackedParameter<bool>("ETT");
45  m_inputCategories["HTT"] = Categories.getUntrackedParameter<bool>("HTT");
46  m_inputCategories["HTM"] = Categories.getUntrackedParameter<bool>("HTM");
47 
48  // Initializing Variables
49  if (m_verbose) {
50  cout << "[L1TRate_Offline:] ____________ Storage initialization ____________ " << endl;
51  cout << "[L1TRate_Offline:] Setting up dbe folder: L1T/L1TRate" << endl;
52  }
53 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< Level1TriggerScalersCollection > m_scalersSource_L1TSCollection
std::map< std::string, bool > m_inputCategories
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputTag
edm::ParameterSet m_parameters
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
L1GtUtils m_l1GtUtils
edm::EDGetTokenT< LumiScalersCollection > m_scalersSource_LSCollection
L1TRate_Offline::~L1TRate_Offline ( )
override

Definition at line 56 of file L1TRate_Offline.cc.

56 {}

Member Function Documentation

void L1TRate_Offline::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overrideprotected

Definition at line 344 of file L1TRate_Offline.cc.

References gather_cfg::cout, Level1TriggerRates::deadtimePercent(), edm::Event::getByToken(), edm::ParameterSet::getUntrackedParameter(), L1GlobalTriggerReadoutRecord::gtFdlVector(), mps_fire::i, edm::EventBase::id(), muonGEMDigis_cfi::instLumi, edm::HandleBase::isValid(), edm::EventID::luminosityBlock(), m_algoBit, m_l1GtDataDaqInputTag, m_lsDeadTime, m_lsLuminosity, m_lsPrescaleIndex, m_lsRates, m_lsShiftGTRates, m_parameters, m_scalersSource_L1TSCollection, m_scalersSource_LSCollection, m_selectedTriggers, m_verbose, and edm::EventID::run().

344  {
345  edm::Handle<L1GlobalTriggerReadoutRecord> gtReadoutRecordData;
348 
349  iEvent.getByToken(m_l1GtDataDaqInputTag, gtReadoutRecordData);
350  iEvent.getByToken(m_scalersSource_LSCollection, colLScal);
351  iEvent.getByToken(m_scalersSource_L1TSCollection, triggerScalers);
352 
353  // Integers
354  int EventRun = iEvent.id().run();
355  unsigned int eventLS = iEvent.id().luminosityBlock();
356 
357  // Getting the trigger trigger rates from GT and buffering it
358  if (triggerScalers.isValid() && !triggerScalers->empty()) {
359  Level1TriggerScalersCollection::const_iterator itL1TScalers = triggerScalers->begin();
360  Level1TriggerRates trigRates(*itL1TScalers, EventRun);
361 
362  //Trying to retrieve GT DeadTime
363  //unsigned long long deadtime = itL1TScalers->deadtime();
364  //double deadtime = itL1TScalers->deadtime();
365  double deadtime = trigRates.deadtimePercent(); //correct DeadTime % to retrieve
366 
367  // Trying to get the trigger counts
368  const std::vector<unsigned int> gtAlgoCounts = itL1TScalers->gtAlgoCounts();
369 
370  // int lumisegment = (*itL1TScalers).lumiSegmentNr();
371 
372  // cout << "deadtime =" << deadtime << " --
373  // cout << "lumisegment = " << lumisegment << endl;
374 
375  int gtLS = (*itL1TScalers).lumiSegmentNr() + m_lsShiftGTRates;
376 
377  // If we haven't got the data from this LS yet get it
378  if (m_lsRates.find(gtLS) == m_lsRates.end()) {
379  map<TString, double> bufferCount;
380 
381  // Buffer the rate informations for all selected bits
382  for (map<string, string>::const_iterator i = m_selectedTriggers.begin(); i != m_selectedTriggers.end(); i++) {
383  string tTrigger = (*i).second;
384 
385  // If trigger name is defined we store the rate
386  if (tTrigger != "Undefined") {
387  unsigned int trigBit = m_algoBit[tTrigger];
388  double trigCount = gtAlgoCounts[trigBit];
389 
390  bufferCount[tTrigger] = trigCount;
391  }
392  }
393  m_lsRates[gtLS] = bufferCount;
394  m_lsDeadTime[gtLS] = deadtime;
395  }
396  }
397 
398  // Getting from the SCAL the luminosity information and buffering it
399  if (colLScal.isValid() && !colLScal->empty()) {
400  LumiScalersCollection::const_iterator itLScal = colLScal->begin();
401  unsigned int scalLS = itLScal->sectionNumber();
402 
403  // If we haven't got the data from this SCAL LS yet get it
404  if (m_lsLuminosity.find(scalLS) == m_lsLuminosity.end()) {
405  if (m_verbose) {
406  cout << "[L1TRate_Offline:] Buffering SCAL-HF Lumi for LS=" << scalLS << endl;
407  }
408  double instLumi =
409  itLScal->instantLumi(); // Getting Instant Lumi from HF (via SCAL) // <###### WE NEED TO STORE THIS
410  double deadTimeNormHF = itLScal->deadTimeNormalization(); // Getting Dead Time Normalization from HF (via SCAL)
411 
412  // double mylumiFill = itLScal->lumiFill(); // Integrated lumi since beginning of fill, delivered
413  // double mylumiRun = itLScal->lumiRun(); // Integrated lumi since beginning of run, delivered
414  // double myliveLumiFill = itLScal->liveLumiFill(); // Integrated lumi since beginning of fill, live
415  // double myliveLumiRun = itLScal->liveLumiRun(); // Integrated lumi since beginning of run, live
416  // double mysectionNumber = itLScal->sectionNumber(); // Lumi section number for this info
417  // double mynumOrbits = itLScal->numOrbits(); // Number of orbits that have passed this run
418 
419  // cout << "instantLumi = " << instLumi << endl;
420  // cout << "lumiFill = " << mylumiFill << endl;
421  // cout << "lumiRun = " << mylumiRun << endl;
422  // cout << "livelumiFill = " << myliveLumiFill << endl;
423  // cout << "livelumiRun = " << myliveLumiRun << endl;
424  // cout << "sectionNumber = " << mysectionNumber << endl;
425  // cout << "numOrbits = " << mynumOrbits << endl;
426 
427  // If HF Dead Time Corrections is requested we apply it
428  // NOTE: By default this is assumed false since for now WbM fits do NOT assume this correction
429  if (m_parameters.getUntrackedParameter<bool>("useHFDeadTimeNormalization", false)) {
430  // Protecting for deadtime = 0
431  if (deadTimeNormHF == 0) {
432  instLumi = 0;
433  } else {
434  instLumi = instLumi / deadTimeNormHF;
435  }
436  }
437  // Buffering the luminosity information
438  m_lsLuminosity[scalLS] = instLumi;
439  }
440  }
441 
442  // Getting the prescale index used when this event was triggered
443  if (gtReadoutRecordData.isValid()) {
444  // If we haven't got the data from this LS yet get it
445  if (m_lsPrescaleIndex.find(eventLS) == m_lsPrescaleIndex.end()) {
446  if (m_verbose) {
447  cout << "[L1TRate_Offline:] Buffering Prescale Index for LS=" << eventLS << endl;
448  }
449 
450  // Getting Final Decision Logic (FDL) Data from GT
451  const vector<L1GtFdlWord>& gtFdlVectorData = gtReadoutRecordData->gtFdlVector();
452 
453  // Getting the index for the fdl data for this event
454  int indexFDL = 0;
455  for (unsigned int i = 0; i < gtFdlVectorData.size(); i++) {
456  if (gtFdlVectorData[i].bxInEvent() == 0) {
457  indexFDL = i;
458  break;
459  }
460  }
461 
462  if (!gtFdlVectorData.empty()) {
463  int CurrentPrescalesIndex =
464  gtFdlVectorData[indexFDL].gtPrescaleFactorIndexAlgo(); // <###### WE NEED TO STORE THIS
465  m_lsPrescaleIndex[eventLS] = CurrentPrescalesIndex;
466  }
467  }
468  }
469 }
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< Level1TriggerScalersCollection > m_scalersSource_L1TSCollection
std::map< int, double > m_lsDeadTime
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
std::map< int, int > m_lsPrescaleIndex
std::map< std::string, std::string > m_selectedTriggers
std::map< int, std::map< TString, double > > m_lsRates
std::map< int, double > m_lsLuminosity
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputTag
edm::ParameterSet m_parameters
int iEvent
Definition: GenABIO.cc:224
bool isValid() const
Definition: HandleBase.h:70
std::map< TString, int > m_algoBit
edm::EDGetTokenT< LumiScalersCollection > m_scalersSource_LSCollection
void L1TRate_Offline::beginLuminosityBlock ( edm::LuminosityBlock const &  lumiBlock,
edm::EventSetup const &  c 
)
overrideprotected

Definition at line 216 of file L1TRate_Offline.cc.

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

216  {
217  if (m_verbose) {
218  cout << "[L1TRate_Offline:] Called beginLuminosityBlock at LS=" << lumiBlock.id().luminosityBlock() << endl;
219  }
220 }
void L1TRate_Offline::bookHistograms ( DQMStore::IBooker ibooker,
const edm::Run run,
const edm::EventSetup iSetup 
)
overrideprotected

Definition at line 61 of file L1TRate_Offline.cc.

References ecalcalib_dqm_sourceclient-live_cfg::algo, dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), gather_cfg::cout, edm::EventSetup::get(), L1TMenuHelper::getEtaRangeByAlias(), L1TMenuHelper::getLUSOTrigger(), edm::ParameterSet::getParameter(), L1TMenuHelper::getPrescaleByAlias(), L1TMenuHelper::getQualityAlias(), getXSexFitsPython(), L1GtTriggerMenu::gtAlgorithmMap(), L1GtPrescaleFactors::gtPrescaleFactors(), mps_fire::i, m_algoBit, m_algoFit, m_CountsVsLS, m_DelivLumiVsLS, m_ErrorMonitor, m_inputCategories, m_l1GtUtils, m_listsPrescaleFactors, m_maxNbins, m_parameters, m_RecorLumiVsLS, m_refPrescaleSet, m_selectedTriggers, m_templateFunctions, m_verbose, m_xSecObservedToExpected, m_xSecObservedVsDelivLumi, m_xSecObservedVsLS, m_xSecObservedVsRecorLumi, L1TRate_cfi::maxInstantLuminosity, optionsL1T::menu, L1TRate_cfi::minInstantLuminosity, edm::ESHandle< T >::product(), L1GtUtils::retrieveL1EventSetup(), dqm::impl::MonitorElement::setBinLabel(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), UNKNOWN, and WARNING_PY_MISSING_FIT.

61  {
62  if (m_verbose) {
63  cout << "[L1TRate_Offline:] Called beginRun." << endl;
64  }
65 
68 
69  iSetup.get<L1GtTriggerMenuRcd>().get(menuRcd);
70  iSetup.get<L1GtPrescaleFactorsAlgoTrigRcd>().get(l1GtPfAlgo);
71 
72  const L1GtTriggerMenu* menu = menuRcd.product();
73  const L1GtPrescaleFactors* m_l1GtPfAlgo = l1GtPfAlgo.product();
74 
75  // Initializing DQM Monitor Elements
76  ibooker.setCurrentFolder("L1T/L1TRate");
77  m_ErrorMonitor = ibooker.book1D("ErrorMonitor", "ErrorMonitor", 2, 0, 2);
78  m_ErrorMonitor->setBinLabel(UNKNOWN, "UNKNOWN");
79  m_ErrorMonitor->setBinLabel(WARNING_PY_MISSING_FIT, "WARNING_PY_MISSING_FIT");
80 
81  if (m_verbose) {
82  cout << "[L1TRate_Offline:] m_ErrorMonitor: " << m_ErrorMonitor << endl;
83  }
84 
85  // Retriving the list of prescale sets
86  m_listsPrescaleFactors = &(m_l1GtPfAlgo->gtPrescaleFactors());
87 
88  // Getting Lowest Prescale Single Object Triggers from the menu
89  L1TMenuHelper myMenuHelper = L1TMenuHelper(iSetup);
92 
93  //-> Getting template fits for the algLo cross sections
95 
96  for (CItAlgo algo = menu->gtAlgorithmMap().begin(); algo != menu->gtAlgorithmMap().end(); ++algo) {
97  m_algoBit[(algo->second).algoAlias()] = (algo->second).algoBitNumber();
98  }
99 
100  double minInstantLuminosity = m_parameters.getParameter<double>("minInstantLuminosity");
101  double maxInstantLuminosity = m_parameters.getParameter<double>("maxInstantLuminosity");
102 
103  // Initializing DQM Monitor Elements
104  for (map<string, string>::const_iterator i = m_selectedTriggers.begin(); i != m_selectedTriggers.end(); i++) {
105  TString tCategory = (*i).first;
106  TString tTrigger = (*i).second;
107 
108  TString tErrorMessage = "";
109  TF1* tTestFunction;
110 
111  if (tTrigger != "Undefined" && m_templateFunctions.find(tTrigger) != m_templateFunctions.end()) {
112  tTestFunction = m_templateFunctions[tTrigger];
113  } else if (tTrigger == "Undefined") {
114  TString tFunc = "-1";
115  tTestFunction = new TF1("FitParametrization_" + tTrigger, tFunc, 0, double(m_maxNbins) - 0.5);
116  } else if (m_templateFunctions.find(tTrigger) == m_templateFunctions.end()) {
117  TString tFunc = "-1";
118  tTestFunction = new TF1("FitParametrization_" + tTrigger, tFunc, 0, double(m_maxNbins) - 0.5);
119  tErrorMessage = " (Undefined Test Function)";
120  } else {
121  TString tFunc = "-1";
122  tTestFunction = new TF1("FitParametrization_" + tTrigger, tFunc, 0, double(m_maxNbins) - 0.5);
123  }
124 
125  if (tTrigger != "Undefined") {
126  if (myMenuHelper.getPrescaleByAlias(tCategory, tTrigger) != 1) {
127  tErrorMessage += " WARNING: Default Prescale = ";
128  tErrorMessage += myMenuHelper.getPrescaleByAlias(tCategory, tTrigger);
129  }
130 
131  if (tCategory == "Mu" &&
132  myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger) != 4294967295) { //hexadecimal of the whole range
133  tErrorMessage += " WARNING: Eta Range = ";
134  tErrorMessage += myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger);
135  } else if (tCategory == "EG" && myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger) != 32639) {
136  tErrorMessage += " WARNING: Eta Range = ";
137  tErrorMessage += myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger);
138  } else if (tCategory == "IsoEG" && myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger) != 32639) {
139  tErrorMessage += " WARNING: Eta Range = ";
140  tErrorMessage += myMenuHelper.getEtaRangeByAlias(tCategory, tTrigger);
141  }
142 
143  if (tCategory == "Mu" && myMenuHelper.getQualityAlias(tCategory, tTrigger) != 240) {
144  tErrorMessage += " WARNING: Quality = ";
145  tErrorMessage += myMenuHelper.getQualityAlias(tCategory, tTrigger);
146  }
147  }
148 
149  ibooker.setCurrentFolder("L1T/L1TRate/xSecDelivLumi"); // trigger counts...
150  m_xSecObservedVsDelivLumi[tTrigger] = ibooker.bookProfile(tCategory,
151  "Cross Sec. vs Deliv. Lumi: " + tTrigger + tErrorMessage,
152  m_maxNbins,
153  minInstantLuminosity,
154  maxInstantLuminosity,
155  0,
156  500);
157  m_xSecObservedVsDelivLumi[tTrigger]->setAxisTitle("Delivered Luminosity [10^{30}cm^{-2}s^{-1}]", 1);
158  m_xSecObservedVsDelivLumi[tTrigger]->setAxisTitle("Algorithm #sigma [#mu b]", 2);
159 
160  ibooker.setCurrentFolder("L1T/L1TRate/xSecRecorLumi"); // trigger counts...
161  m_xSecObservedVsRecorLumi[tTrigger] = ibooker.bookProfile(tCategory,
162  "Cross Sec. vs Recor. Lumi: " + tTrigger + tErrorMessage,
163  m_maxNbins,
164  minInstantLuminosity,
165  maxInstantLuminosity,
166  0,
167  500);
168  m_xSecObservedVsRecorLumi[tTrigger]->setAxisTitle("Recorded Luminosity [10^{30}cm^{-2}s^{-1}]", 1);
169  m_xSecObservedVsRecorLumi[tTrigger]->setAxisTitle("Algorithm #sigma [#mu b]", 2);
170 
171  ibooker.setCurrentFolder("L1T/L1TRate/TriggerCounts"); // trigger counts...
172  m_CountsVsLS[tTrigger] = ibooker.bookProfile(tCategory,
173  "Cross Sec. vs Inst. Lumi Algo: " + tTrigger + tErrorMessage,
174  m_maxNbins,
175  minInstantLuminosity,
176  maxInstantLuminosity,
177  0,
178  500);
179  m_CountsVsLS[tTrigger]->setAxisTitle("Instantaneous Luminosity [10^{30}cm^{-2}s^{-1}]", 1);
180  m_CountsVsLS[tTrigger]->setAxisTitle("Algorithm #sigma [#mu b]", 2);
181  m_CountsVsLS[tTrigger]->getTProfile()->GetListOfFunctions()->Add(tTestFunction);
182  m_CountsVsLS[tTrigger]->getTProfile()->SetMarkerStyle(23);
183 
184  m_algoFit[tTrigger] = (TF1*)tTestFunction->Clone("Fit_" + tTrigger); // NOTE: Workaround
185 
186  ibooker.setCurrentFolder("L1T/L1TRate/xSecObs");
187  m_xSecObservedVsLS[tTrigger] =
188  ibooker.book1D(tCategory, "Algo: " + tTrigger + tErrorMessage, m_maxNbins, -0.5, double(m_maxNbins) - 0.5);
189  m_xSecObservedVsLS[tTrigger]->setAxisTitle("Lumi Section", 1);
190  m_xSecObservedVsLS[tTrigger]->setAxisTitle("#sigma_{obs}", 2);
191 
192  ibooker.setCurrentFolder("L1T/L1TRate/Delivered");
193  m_DelivLumiVsLS[tTrigger] =
194  ibooker.book1D(tCategory, "Algo: " + tTrigger + tErrorMessage, m_maxNbins, -0.5, double(m_maxNbins) - 0.5);
195  m_DelivLumiVsLS[tTrigger]->setAxisTitle("Lumi Section", 1);
196  m_DelivLumiVsLS[tTrigger]->setAxisTitle("Deliv. Lumi", 2);
197 
198  ibooker.setCurrentFolder("L1T/L1TRate/Recorded");
199  m_RecorLumiVsLS[tTrigger] =
200  ibooker.book1D(tCategory, "Algo: " + tTrigger + tErrorMessage, m_maxNbins, -0.5, double(m_maxNbins) - 0.5);
201  m_RecorLumiVsLS[tTrigger]->setAxisTitle("Lumi Section", 1);
202  m_RecorLumiVsLS[tTrigger]->setAxisTitle("Recor. Lumi", 2);
203 
204  ibooker.setCurrentFolder("L1T/L1TRate/Ratio");
205  m_xSecObservedToExpected[tTrigger] =
206  ibooker.book1D(tCategory, "Algo: " + tTrigger + tErrorMessage, m_maxNbins, -0.5, double(m_maxNbins) - 0.5);
207  m_xSecObservedToExpected[tTrigger]->setAxisTitle("Lumi Section", 1);
208  m_xSecObservedToExpected[tTrigger]->setAxisTitle("#sigma_{obs} / #sigma_{exp}", 2);
209  }
210 }
T getParameter(std::string const &) const
MonitorElement * m_ErrorMonitor
std::map< TString, MonitorElement * > m_xSecObservedToExpected
std::map< std::string, bool > m_inputCategories
std::map< std::string, std::string > m_selectedTriggers
bool getXSexFitsPython(const edm::ParameterSet &ps)
std::map< TString, MonitorElement * > m_xSecObservedVsLS
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
std::map< TString, MonitorElement * > m_xSecObservedVsDelivLumi
edm::ParameterSet m_parameters
std::map< TString, MonitorElement * > m_RecorLumiVsLS
std::map< TString, TF1 * > m_templateFunctions
std::map< TString, MonitorElement * > m_DelivLumiVsLS
void retrieveL1EventSetup(const edm::EventSetup &)
retrieve all the relevant L1 trigger event setup records and cache them to improve the speed ...
Definition: L1GtUtils.cc:112
unsigned int getQualityAlias(const TString &iCategory, const TString &iAlias)
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, int > m_algoBit
std::map< TString, TF1 * > m_algoFit
const std::vector< std::vector< int > > * m_listsPrescaleFactors
const std::vector< std::vector< int > > & gtPrescaleFactors() const
get the prescale factors by reference
L1GtUtils m_l1GtUtils
std::map< TString, MonitorElement * > m_CountsVsLS
T get() const
Definition: EventSetup.h:73
const AlgorithmMap & gtAlgorithmMap() const
get / set the algorithm map (by name)
unsigned int getEtaRangeByAlias(const TString &iCategory, const TString &iAlias)
std::map< TString, MonitorElement * > m_xSecObservedVsRecorLumi
int getPrescaleByAlias(const TString &iCategory, const TString &iAlias)
T const * product() const
Definition: ESHandle.h:86
std::map< std::string, std::string > getLUSOTrigger(const std::map< std::string, bool > &iCategories, int IndexRefPrescaleFactors, L1GtUtils const &myUtils)
void L1TRate_Offline::dqmBeginRun ( edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

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

Definition at line 214 of file L1TRate_Offline.cc.

214 {}
void L1TRate_Offline::endLuminosityBlock ( edm::LuminosityBlock const &  lumiBlock,
edm::EventSetup const &  c 
)
overrideprotected

Definition at line 223 of file L1TRate_Offline.cc.

References dqmiodumpmetadata::counts, gather_cfg::cout, mps_fire::i, edm::LuminosityBlockBase::id(), dqmiolumiharvest::j, edm::LuminosityBlockID::luminosityBlock(), m_algoBit, m_algoFit, m_CountsVsLS, m_DelivLumiVsLS, m_lsDeadTime, m_lsLuminosity, m_lsPrescaleIndex, m_lsRates, m_RecorLumiVsLS, m_selectedTriggers, m_verbose, m_xSecObservedToExpected, m_xSecObservedVsDelivLumi, m_xSecObservedVsLS, m_xSecObservedVsRecorLumi, genParticles_cff::map, and findQualityFiles::size.

223  {
224  int eventLS = lumiBlock.id().luminosityBlock();
225  if (m_verbose) {
226  cout << "[L1TRate_Offline:] Called endLuminosityBlock at LS=" << eventLS << endl;
227  }
228 
229  // We can certify LS -1 since we should have available:
230  // gt rates: (current LS)-1
231  // prescale: current LS
232  // lumi : current LS
233  //eventLS--;
234 
235  // Checking if all necessary quantities are defined for our calculations
236  //bool isDefRate,isDefLumi,isDefPrescaleIndex;
237  bool isDefLumi, isDefPrescaleIndex;
238  //map<TString,double>* rates=0;
239  double lumi = 0;
240  double deadtime = 0;
241  unsigned int prescalesIndex = 0;
242 
243  bool isDefCount;
244  map<TString, double>* counts = nullptr;
245 
246  // Resetting MonitorElements so we can refill them
247  for (map<string, string>::const_iterator i = m_selectedTriggers.begin(); i != m_selectedTriggers.end(); i++) {
248  string tTrigger = (*i).second;
249  // m_DeadTimeVsLS [tTrigger]->getTH1()->Reset("ICE");
250  m_CountsVsLS[tTrigger]->getTH1()->Reset("ICE");
251  m_xSecObservedToExpected[tTrigger]->getTH1()->Reset("ICE");
252 
253  m_xSecObservedVsLS[tTrigger]->getTH1()->Reset("ICE");
254  m_DelivLumiVsLS[tTrigger]->getTH1()->Reset("ICE");
255  m_RecorLumiVsLS[tTrigger]->getTH1()->Reset("ICE");
256 
257  m_xSecObservedVsDelivLumi[tTrigger]->getTH1()->Reset("ICE");
258  m_xSecObservedVsRecorLumi[tTrigger]->getTH1()->Reset("ICE");
259  }
260 
261  //Trying to do the same with Counts....
262  for (map<int, map<TString, double> >::iterator j = m_lsRates.begin(); j != m_lsRates.end(); j++) {
263  unsigned int lsOffline = (*j).first;
264  counts = &(*j).second;
265  isDefCount = true;
266 
267  unsigned int lsPreInd;
268 
269  if (m_lsLuminosity.find(lsOffline) == m_lsLuminosity.end()) {
270  isDefLumi = false;
271  } else {
272  isDefLumi = true;
273  lumi = m_lsLuminosity[lsOffline];
274  deadtime = m_lsDeadTime[lsOffline];
275  }
276 
277  lsPreInd = lsOffline + 1; // NOTE: Workaround
278 
279  if (m_lsPrescaleIndex.find(lsPreInd) == m_lsPrescaleIndex.end()) {
280  isDefPrescaleIndex = false;
281  } else {
282  isDefPrescaleIndex = true;
283  prescalesIndex = m_lsPrescaleIndex[lsPreInd];
284  }
285 
286  if (isDefCount && isDefLumi && isDefPrescaleIndex && (prescalesIndex < m_listsPrescaleFactors->size())) {
287  const vector<int>& currentPrescaleFactors = (*m_listsPrescaleFactors).at(prescalesIndex);
288 
289  for (map<string, string>::const_iterator j = m_selectedTriggers.begin(); j != m_selectedTriggers.end(); j++) {
290  string tTrigger = (*j).second;
291  double trigCount = (*counts)[tTrigger];
292 
293  // TF1* tTestFunction = (TF1*) m_CountsVsLS[tTrigger]->getTProfile()->GetListOfFunctions()->First();
294  TF1* tTestFunction = m_algoFit[tTrigger]; // NOTE: Workaround....
295 
296  // If trigger name is defined we get the rate fit parameters
297  if (tTrigger != "Undefined") {
298  unsigned int trigBit = m_algoBit[tTrigger];
299  double trigPrescale = currentPrescaleFactors[trigBit];
300 
301  if (lumi != 0 && trigCount != 0 && trigPrescale != 0) {
302  double RecLumi = lumi * (1. - deadtime / 100.);
303 
304  double AlgoXSec = (trigPrescale * trigCount) / RecLumi;
305  double TemplateFunctionValue = tTestFunction->Eval(lumi);
306 
307  // Checking against Template function
308  // m_DeadTimeVsLS [tTrigger]->Fill(lumi,deadtime);
309 
310  m_xSecObservedVsRecorLumi[tTrigger]->Fill(RecLumi, AlgoXSec);
311 
312  m_CountsVsLS[tTrigger]->Fill(lumi, AlgoXSec);
313 
314  int ibin = m_xSecObservedToExpected[tTrigger]->getTH1()->FindBin(lsOffline);
315  m_xSecObservedToExpected[tTrigger]->setBinContent(ibin, AlgoXSec / TemplateFunctionValue);
316 
317  m_DelivLumiVsLS[tTrigger]->setBinContent(ibin, lumi);
318  m_RecorLumiVsLS[tTrigger]->setBinContent(ibin, RecLumi);
319 
320  m_xSecObservedVsLS[tTrigger]->setBinContent(ibin, AlgoXSec);
321 
322  } else {
323  // m_DeadTimeVsLS [tTrigger]->Fill(0.000001,0.000001);
324 
325  m_xSecObservedVsRecorLumi[tTrigger]->Fill(0.000001, 0.000001);
326 
327  m_CountsVsLS[tTrigger]->Fill(0.000001, 0.000001);
328 
329  int ibin = m_xSecObservedToExpected[tTrigger]->getTH1()->FindBin(lsOffline);
330  m_xSecObservedToExpected[tTrigger]->setBinContent(ibin, 0.000001);
331 
332  m_DelivLumiVsLS[tTrigger]->setBinContent(ibin, 0.000001);
333  m_RecorLumiVsLS[tTrigger]->setBinContent(ibin, 0.000001);
334 
335  m_xSecObservedVsLS[tTrigger]->setBinContent(ibin, 0.000001);
336  }
337  }
338  }
339  }
340  }
341 }
size
Write out results.
std::map< int, double > m_lsDeadTime
std::map< TString, MonitorElement * > m_xSecObservedToExpected
std::map< int, int > m_lsPrescaleIndex
std::map< std::string, std::string > m_selectedTriggers
std::map< int, std::map< TString, double > > m_lsRates
std::map< TString, MonitorElement * > m_xSecObservedVsLS
std::map< TString, MonitorElement * > m_xSecObservedVsDelivLumi
std::map< int, double > m_lsLuminosity
std::map< TString, MonitorElement * > m_RecorLumiVsLS
std::map< TString, MonitorElement * > m_DelivLumiVsLS
std::map< TString, int > m_algoBit
std::map< TString, TF1 * > m_algoFit
std::map< TString, MonitorElement * > m_CountsVsLS
std::map< TString, MonitorElement * > m_xSecObservedVsRecorLumi
bool L1TRate_Offline::getXSexFitsPython ( const edm::ParameterSet ps)
protected

Definition at line 480 of file L1TRate_Offline.cc.

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

Referenced by bookHistograms().

480  {
481  // error meaning
482  bool noError = true;
483 
484  // Getting fit parameters
485  std::vector<edm::ParameterSet> m_fitParameters = ps.getParameter<vector<ParameterSet> >("fitParameters");
486 
487  double minInstantLuminosity = m_parameters.getParameter<double>("minInstantLuminosity");
488  double maxInstantLuminosity = m_parameters.getParameter<double>("maxInstantLuminosity");
489 
490  // Getting rate fit parameters for all input triggers
491  for (map<string, string>::const_iterator a = m_selectedTriggers.begin(); a != m_selectedTriggers.end(); a++) {
492  string tTrigger = (*a).second;
493 
494  // If trigger name is defined we get the rate fit parameters
495  if (tTrigger != "Undefined") {
496  bool foundFit = false;
497 
498  for (unsigned int b = 0; b < m_fitParameters.size(); b++) {
499  if (tTrigger == m_fitParameters[b].getParameter<string>("AlgoName")) {
500  TString tAlgoName = m_fitParameters[b].getParameter<string>("AlgoName");
501  TString tTemplateFunction = m_fitParameters[b].getParameter<string>("TemplateFunction");
502  vector<double> tParameters = m_fitParameters[b].getParameter<vector<double> >("Parameters");
503 
504  // Retriving and populating the m_templateFunctions array
505  m_templateFunctions[tTrigger] =
506  new TF1("FitParametrization_" + tAlgoName, tTemplateFunction, minInstantLuminosity, maxInstantLuminosity);
507  m_templateFunctions[tTrigger]->SetParameters(&tParameters[0]);
508  m_templateFunctions[tTrigger]->SetLineWidth(1);
509  m_templateFunctions[tTrigger]->SetLineColor(kRed);
510 
511  foundFit = true;
512  break;
513  }
514 
515  if (!foundFit) {
516  noError = false;
517 
518  int eCount = m_ErrorMonitor->getTH1()->GetBinContent(WARNING_PY_MISSING_FIT);
519  eCount++;
520  m_ErrorMonitor->getTH1()->SetBinContent(WARNING_PY_MISSING_FIT, eCount);
521  }
522  }
523  }
524  }
525 
526  return noError;
527 }
T getParameter(std::string const &) const
MonitorElement * m_ErrorMonitor
std::map< std::string, std::string > m_selectedTriggers
edm::ParameterSet m_parameters
std::map< TString, TF1 * > m_templateFunctions
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119

Member Data Documentation

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

Definition at line 87 of file L1TRate_Offline.h.

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

std::map<TString, TF1*> L1TRate_Offline::m_algoFit
private

Definition at line 88 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

std::map<TString, MonitorElement*> L1TRate_Offline::m_CountsVsLS
private

Definition at line 97 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

std::map<TString, MonitorElement*> L1TRate_Offline::m_DelivLumiVsLS
private

Definition at line 103 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

MonitorElement* L1TRate_Offline::m_ErrorMonitor
private

Definition at line 119 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and getXSexFitsPython().

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

Definition at line 89 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and L1TRate_Offline().

std::map<TString, MonitorElement*> L1TRate_Offline::m_InstLumiVsLS
private

Definition at line 98 of file L1TRate_Offline.h.

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

Definition at line 113 of file L1TRate_Offline.h.

Referenced by analyze(), and L1TRate_Offline().

L1GtUtils L1TRate_Offline::m_l1GtUtils
private

Definition at line 121 of file L1TRate_Offline.h.

Referenced by bookHistograms().

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

Definition at line 80 of file L1TRate_Offline.h.

Referenced by bookHistograms().

std::map<int, std::map<TString, double> > L1TRate_Offline::m_lsCounts
private

Definition at line 108 of file L1TRate_Offline.h.

std::map<int, double> L1TRate_Offline::m_lsDeadTime
private

Definition at line 83 of file L1TRate_Offline.h.

Referenced by analyze(), and endLuminosityBlock().

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

Definition at line 85 of file L1TRate_Offline.h.

Referenced by analyze(), and endLuminosityBlock().

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

Definition at line 84 of file L1TRate_Offline.h.

Referenced by analyze(), and endLuminosityBlock().

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

Definition at line 86 of file L1TRate_Offline.h.

Referenced by analyze(), and endLuminosityBlock().

int L1TRate_Offline::m_lsShiftGTRates
private

Definition at line 74 of file L1TRate_Offline.h.

Referenced by analyze(), and L1TRate_Offline().

int L1TRate_Offline::m_maxNbins
private

Definition at line 73 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and L1TRate_Offline().

std::string L1TRate_Offline::m_outputFile
private

Definition at line 77 of file L1TRate_Offline.h.

edm::ParameterSet L1TRate_Offline::m_parameters
private

Definition at line 116 of file L1TRate_Offline.h.

Referenced by analyze(), bookHistograms(), getXSexFitsPython(), and L1TRate_Offline().

std::map<TString, MonitorElement*> L1TRate_Offline::m_PrescIndexVsLS
private

Definition at line 99 of file L1TRate_Offline.h.

std::map<TString, MonitorElement*> L1TRate_Offline::m_RecorLumiVsLS
private

Definition at line 104 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

int L1TRate_Offline::m_refPrescaleSet
private

Definition at line 72 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and L1TRate_Offline().

edm::EDGetTokenT<Level1TriggerScalersCollection> L1TRate_Offline::m_scalersSource_L1TSCollection
private

Definition at line 112 of file L1TRate_Offline.h.

Referenced by analyze(), and L1TRate_Offline().

edm::EDGetTokenT<LumiScalersCollection> L1TRate_Offline::m_scalersSource_LSCollection
private

Definition at line 111 of file L1TRate_Offline.h.

Referenced by analyze(), and L1TRate_Offline().

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

Definition at line 90 of file L1TRate_Offline.h.

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

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

Definition at line 106 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and getXSexFitsPython().

bool L1TRate_Offline::m_verbose
private
std::map<TString, MonitorElement*> L1TRate_Offline::m_xSecObservedToExpected
private

Definition at line 91 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

std::map<TString, MonitorElement*> L1TRate_Offline::m_xSecObservedVsDelivLumi
private

Definition at line 94 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

std::map<TString, MonitorElement*> L1TRate_Offline::m_xSecObservedVsLS
private

Definition at line 102 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

std::map<TString, MonitorElement*> L1TRate_Offline::m_xSecObservedVsRecorLumi
private

Definition at line 95 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

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

Definition at line 92 of file L1TRate_Offline.h.