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) 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
 
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
 
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 &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
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
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
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 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 bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)=0
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
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)
 
template<Transition B>
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 (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (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)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (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

◆ Errors

Enumerator
UNKNOWN 
WARNING_PY_MISSING_FIT 

Definition at line 46 of file L1TRate_Offline.h.

46 { UNKNOWN = 1, WARNING_PY_MISSING_FIT = 2 };

Constructor & Destructor Documentation

◆ L1TRate_Offline()

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

Definition at line 19 of file L1TRate_Offline.cc.

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 }

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.

◆ ~L1TRate_Offline()

L1TRate_Offline::~L1TRate_Offline ( )
override

Definition at line 56 of file L1TRate_Offline.cc.

56 {}

Member Function Documentation

◆ analyze()

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

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

Definition at line 341 of file L1TRate_Offline.cc.

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

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

◆ beginLuminosityBlock()

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

Definition at line 213 of file L1TRate_Offline.cc.

213  {
214  if (m_verbose) {
215  cout << "[L1TRate_Offline:] Called beginLuminosityBlock at LS=" << lumiBlock.id().luminosityBlock() << endl;
216  }
217 }

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

◆ bookHistograms()

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.

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,
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,
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,
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 }

References gather_cfg::cout, edm::EventSetup::get(), get, L1TMenuHelper::getEtaRangeByAlias(), L1TMenuHelper::getLUSOTrigger(), edm::ParameterSet::getParameter(), L1TMenuHelper::getPrescaleByAlias(), L1TMenuHelper::getQualityAlias(), getXSexFitsPython(), 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(), tools::TF1, UNKNOWN, and WARNING_PY_MISSING_FIT.

◆ endLuminosityBlock()

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

Definition at line 220 of file L1TRate_Offline.cc.

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

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, findQualityFiles::size, and tools::TF1.

◆ getXSexFitsPython()

bool L1TRate_Offline::getXSexFitsPython ( const edm::ParameterSet ps)
protected

Definition at line 477 of file L1TRate_Offline.cc.

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

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

Referenced by bookHistograms().

Member Data Documentation

◆ m_algoBit

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

Definition at line 86 of file L1TRate_Offline.h.

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

◆ m_algoFit

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

Definition at line 87 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

◆ m_CountsVsLS

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

Definition at line 96 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

◆ m_DelivLumiVsLS

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

Definition at line 102 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

◆ m_ErrorMonitor

MonitorElement* L1TRate_Offline::m_ErrorMonitor
private

Definition at line 118 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and getXSexFitsPython().

◆ m_inputCategories

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

Definition at line 88 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and L1TRate_Offline().

◆ m_InstLumiVsLS

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

Definition at line 97 of file L1TRate_Offline.h.

◆ m_l1GtDataDaqInputTag

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

Definition at line 112 of file L1TRate_Offline.h.

Referenced by analyze(), and L1TRate_Offline().

◆ m_l1GtUtils

L1GtUtils L1TRate_Offline::m_l1GtUtils
private

Definition at line 120 of file L1TRate_Offline.h.

Referenced by bookHistograms().

◆ m_listsPrescaleFactors

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

Definition at line 79 of file L1TRate_Offline.h.

Referenced by bookHistograms().

◆ m_lsCounts

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

Definition at line 107 of file L1TRate_Offline.h.

◆ m_lsDeadTime

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

Definition at line 82 of file L1TRate_Offline.h.

Referenced by analyze(), and endLuminosityBlock().

◆ m_lsLuminosity

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

Definition at line 84 of file L1TRate_Offline.h.

Referenced by analyze(), and endLuminosityBlock().

◆ m_lsPrescaleIndex

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

Definition at line 83 of file L1TRate_Offline.h.

Referenced by analyze(), and endLuminosityBlock().

◆ m_lsRates

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

Definition at line 85 of file L1TRate_Offline.h.

Referenced by analyze(), and endLuminosityBlock().

◆ m_lsShiftGTRates

int L1TRate_Offline::m_lsShiftGTRates
private

Definition at line 73 of file L1TRate_Offline.h.

Referenced by analyze(), and L1TRate_Offline().

◆ m_maxNbins

int L1TRate_Offline::m_maxNbins
private

Definition at line 72 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and L1TRate_Offline().

◆ m_outputFile

std::string L1TRate_Offline::m_outputFile
private

Definition at line 76 of file L1TRate_Offline.h.

◆ m_parameters

edm::ParameterSet L1TRate_Offline::m_parameters
private

Definition at line 115 of file L1TRate_Offline.h.

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

◆ m_PrescIndexVsLS

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

Definition at line 98 of file L1TRate_Offline.h.

◆ m_RecorLumiVsLS

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

Definition at line 103 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

◆ m_refPrescaleSet

int L1TRate_Offline::m_refPrescaleSet
private

Definition at line 71 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and L1TRate_Offline().

◆ m_scalersSource_L1TSCollection

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

Definition at line 111 of file L1TRate_Offline.h.

Referenced by analyze(), and L1TRate_Offline().

◆ m_scalersSource_LSCollection

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

Definition at line 110 of file L1TRate_Offline.h.

Referenced by analyze(), and L1TRate_Offline().

◆ m_selectedTriggers

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

Definition at line 89 of file L1TRate_Offline.h.

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

◆ m_templateFunctions

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

Definition at line 105 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and getXSexFitsPython().

◆ m_verbose

bool L1TRate_Offline::m_verbose
private

◆ m_xSecObservedToExpected

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

Definition at line 90 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

◆ m_xSecObservedVsDelivLumi

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

Definition at line 93 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

◆ m_xSecObservedVsLS

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

Definition at line 101 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

◆ m_xSecObservedVsRecorLumi

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

Definition at line 94 of file L1TRate_Offline.h.

Referenced by bookHistograms(), and endLuminosityBlock().

◆ m_xSecVsInstLumi

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

Definition at line 91 of file L1TRate_Offline.h.

L1TRate_Offline::m_RecorLumiVsLS
std::map< TString, MonitorElement * > m_RecorLumiVsLS
Definition: L1TRate_Offline.h:103
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
mps_fire.i
i
Definition: mps_fire.py:355
L1GtPrescaleFactors
Definition: L1GtPrescaleFactors.h:32
L1TSync_cfi.Categories
Categories
Definition: L1TSync_cfi.py:26
L1TRate_Offline::m_algoFit
std::map< TString, TF1 * > m_algoFit
Definition: L1TRate_Offline.h:87
L1TRate_Offline::m_verbose
bool m_verbose
Definition: L1TRate_Offline.h:68
gather_cfg.cout
cout
Definition: gather_cfg.py:144
L1TRate_Offline::m_l1GtUtils
L1GtUtils m_l1GtUtils
Definition: L1TRate_Offline.h:120
L1TRate_Offline::m_listsPrescaleFactors
const std::vector< std::vector< int > > * m_listsPrescaleFactors
Definition: L1TRate_Offline.h:79
L1TRate_cfi.minInstantLuminosity
minInstantLuminosity
Definition: L1TRate_cfi.py:28
L1GtPrescaleFactors::gtPrescaleFactors
const std::vector< std::vector< int > > & gtPrescaleFactors() const
get the prescale factors by reference
Definition: L1GtPrescaleFactors.h:45
L1TRate_Offline::m_algoBit
std::map< TString, int > m_algoBit
Definition: L1TRate_Offline.h:86
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:71
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
L1TMenuHelper::getQualityAlias
unsigned int getQualityAlias(const TString &iCategory, const TString &iAlias)
Definition: L1TMenuHelper.cc:754
tools.TF1
TF1
Definition: tools.py:23
L1TRate_Offline::m_CountsVsLS
std::map< TString, MonitorElement * > m_CountsVsLS
Definition: L1TRate_Offline.h:96
edm::Handle
Definition: AssociativeIterator.h:50
L1TMenuHelper::getPrescaleByAlias
int getPrescaleByAlias(const TString &iCategory, const TString &iAlias)
Definition: L1TMenuHelper.cc:604
L1TRate_Offline::m_maxNbins
int m_maxNbins
Definition: L1TRate_Offline.h:72
cmsdt::algo
algo
Definition: constants.h:164
L1TRate_Offline::m_scalersSource_LSCollection
edm::EDGetTokenT< LumiScalersCollection > m_scalersSource_LSCollection
Definition: L1TRate_Offline.h:110
Level1TriggerRates
Definition: Level1TriggerRates.h:30
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
CItAlgo
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
Definition: L1GtTriggerMenuFwd.h:38
L1TRate_Offline::m_xSecObservedVsRecorLumi
std::map< TString, MonitorElement * > m_xSecObservedVsRecorLumi
Definition: L1TRate_Offline.h:94
L1TRate_Offline::m_lsShiftGTRates
int m_lsShiftGTRates
Definition: L1TRate_Offline.h:73
L1GtTriggerMenuRcd
Definition: L1GtTriggerMenuRcd.h:32
edm::ESHandle< L1GtTriggerMenu >
b
double b
Definition: hdecay.h:118
dqm::impl::MonitorElement::getTH1
virtual TH1 * getTH1()
Definition: MonitorElement.cc:969
L1TMenuHelper
Definition: L1TMenuHelper.h:79
optionsL1T.menu
menu
Definition: optionsL1T.py:29
edm::ParameterSet
Definition: ParameterSet.h:36
a
double a
Definition: hdecay.h:119
L1GtTriggerMenu
Definition: L1GtTriggerMenu.h:48
L1TRate_Offline::m_lsDeadTime
std::map< int, double > m_lsDeadTime
Definition: L1TRate_Offline.h:82
L1TRate_Offline::m_scalersSource_L1TSCollection
edm::EDGetTokenT< Level1TriggerScalersCollection > m_scalersSource_L1TSCollection
Definition: L1TRate_Offline.h:111
iEvent
int iEvent
Definition: GenABIO.cc:224
dqm::impl::MonitorElement::setBinLabel
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)
Definition: MonitorElement.cc:771
L1GtUtils::retrieveL1EventSetup
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:127
L1TRate_Offline::m_ErrorMonitor
MonitorElement * m_ErrorMonitor
Definition: L1TRate_Offline.h:118
get
#define get
muonGEMDigis_cfi.instLumi
instLumi
Definition: muonGEMDigis_cfi.py:10
L1TRate_Offline::m_xSecObservedToExpected
std::map< TString, MonitorElement * > m_xSecObservedToExpected
Definition: L1TRate_Offline.h:90
L1TRate_cfi.maxInstantLuminosity
maxInstantLuminosity
Definition: L1TRate_cfi.py:29
L1TRate_Offline::m_inputCategories
std::map< std::string, bool > m_inputCategories
Definition: L1TRate_Offline.h:88
L1TRate_Offline::m_selectedTriggers
std::map< std::string, std::string > m_selectedTriggers
Definition: L1TRate_Offline.h:89
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
L1TRate_Offline::WARNING_PY_MISSING_FIT
Definition: L1TRate_Offline.h:46
L1TRate_Offline::m_lsRates
std::map< int, std::map< TString, double > > m_lsRates
Definition: L1TRate_Offline.h:85
L1TMenuHelper::getLUSOTrigger
std::map< std::string, std::string > getLUSOTrigger(const std::map< std::string, bool > &iCategories, int IndexRefPrescaleFactors, L1GtUtils const &myUtils)
Definition: L1TMenuHelper.cc:57
L1TRate_Offline::m_lsPrescaleIndex
std::map< int, int > m_lsPrescaleIndex
Definition: L1TRate_Offline.h:83
L1TRate_Offline::m_xSecObservedVsLS
std::map< TString, MonitorElement * > m_xSecObservedVsLS
Definition: L1TRate_Offline.h:101
dqmiodumpmetadata.counts
counts
Definition: dqmiodumpmetadata.py:25
L1TMenuHelper::getEtaRangeByAlias
unsigned int getEtaRangeByAlias(const TString &iCategory, const TString &iAlias)
Definition: L1TMenuHelper.cc:679
L1TRate_Offline::m_l1GtDataDaqInputTag
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputTag
Definition: L1TRate_Offline.h:112
L1TRate_Offline::m_parameters
edm::ParameterSet m_parameters
Definition: L1TRate_Offline.h:115
L1TRate_Offline::getXSexFitsPython
bool getXSexFitsPython(const edm::ParameterSet &ps)
Definition: L1TRate_Offline.cc:477
L1TRate_Offline::m_refPrescaleSet
int m_refPrescaleSet
Definition: L1TRate_Offline.h:71
genParticles_cff.map
map
Definition: genParticles_cff.py:11
L1GtPrescaleFactorsAlgoTrigRcd
Definition: L1GtPrescaleFactorsAlgoTrigRcd.h:38
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
L1TRate_Offline::m_xSecObservedVsDelivLumi
std::map< TString, MonitorElement * > m_xSecObservedVsDelivLumi
Definition: L1TRate_Offline.h:93
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
L1TRate_Offline::UNKNOWN
Definition: L1TRate_Offline.h:46
lumi
Definition: LumiSectionData.h:20
L1TRate_Offline::m_templateFunctions
std::map< TString, TF1 * > m_templateFunctions
Definition: L1TRate_Offline.h:105
L1TRate_Offline::m_lsLuminosity
std::map< int, double > m_lsLuminosity
Definition: L1TRate_Offline.h:84
edm::InputTag
Definition: InputTag.h:15
L1TRate_Offline::m_DelivLumiVsLS
std::map< TString, MonitorElement * > m_DelivLumiVsLS
Definition: L1TRate_Offline.h:102
L1GlobalTriggerReadoutRecord::gtFdlVector
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
Definition: L1GlobalTriggerReadoutRecord.h:119
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443