CMS 3D CMS Logo

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

#include <L1TSync_Offline.h>

Inheritance diagram for L1TSync_Offline:
DQMOneEDAnalyzer< edm::LuminosityBlockCache< ltso::LSValid > > edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

enum  BeamMode {
  NOMODE = 1, SETUP = 2, INJPILOT = 3, INJINTR = 4,
  INJNOMN = 5, PRERAMP = 6, RAMP = 7, FLATTOP = 8,
  QUEEZE = 9, ADJUST = 10, STABLE = 11, UNSTABLE = 12,
  BEAMDUMP = 13, RAMPDOWN = 14, RECOVERY = 15, INJDUMP = 16,
  CIRCDUMP = 17, ABORT = 18, CYCLING = 19, WBDUMP = 20,
  NOBEAM = 21
}
 
enum  Errors {
  UNKNOWN = 1, WARNING_DB_CONN_FAILED = 2, WARNING_DB_QUERY_FAILED = 3, WARNING_DB_INCORRECT_NBUNCHES = 4,
  ERROR_UNABLE_RETRIVE_PRODUCT = 5, ERROR_TRIGGERALIAS_NOTVALID = 6, ERROR_LSBLOCK_NOTVALID = 7
}
 
- Public Types inherited from DQMOneEDAnalyzer< edm::LuminosityBlockCache< ltso::LSValid > >
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
 

Public Member Functions

 L1TSync_Offline (const edm::ParameterSet &ps)
 
 ~L1TSync_Offline () override
 
- Public Member Functions inherited from DQMOneEDAnalyzer< edm::LuminosityBlockCache< ltso::LSValid > >
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 noexcept final
 
bool wantsGlobalRuns () const noexcept final
 
bool wantsInputProcessBlocks () const noexcept final
 
bool wantsProcessBlocks () const noexcept final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const noexcept
 
bool wantsStreamRuns () const noexcept
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
void bookHistograms (DQMStore::IBooker &ibooker, const edm::Run &, const edm::EventSetup &) override
 BeginRun. More...
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
std::shared_ptr< ltso::LSValidglobalBeginLuminosityBlock (edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &c) const final
 
void globalEndLuminosityBlock (edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &c) final
 
- Protected Member Functions inherited from DQMOneEDAnalyzer< edm::LuminosityBlockCache< ltso::LSValid > >
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 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

void getBeamConfOffline (const edm::Event &)
 

Private Attributes

const std::vector< std::vector< int > > * ListsPrescaleFactors
 
std::map< std::string, bool > m_algoAutoSelect
 
std::map< TString, int > m_algoBit
 
std::map< TString, MonitorElement * > m_algoCertification
 
std::map< TString, MonitorElement * > m_algoVsBunchStructure
 
L1TBeamConfiguration m_beamConfig
 
std::map< TString, unsigned int > m_certFirstLS
 
std::map< TString, unsigned int > m_certLastLS
 
MonitorElementm_ErrorMonitor
 
L1TMenuHelper::Tokens m_helperTokens
 
edm::EDGetTokenT< L1GlobalTriggerReadoutRecordm_l1GtDataDaqInputTag
 
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecordm_l1GtEvmSource
 
L1GtUtils m_l1GtUtils
 
unsigned int m_lhcFill
 
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcdm_menuToken
 
edm::ParameterSet m_parameters
 
int m_refPrescaleSet
 
std::map< std::string, std::string > m_selectedTriggers
 
bool m_verbose
 

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::LuminosityBlockCache< ltso::LSValid > >
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Description: offline DQM module for L1Trigger/bunchStructure synchronization

Implementation: <TODO: enter implementation details>

Author
: Pietro Vischia - LIP Lisbon pietr.nosp@m.o.vi.nosp@m.schia.nosp@m.@gma.nosp@m.il.co.nosp@m.m

Changelog: 2012/08/10 11:01:01: First creation. Dummy module with actual code commented.

Todo:

Definition at line 66 of file L1TSync_Offline.h.

Member Enumeration Documentation

◆ BeamMode

Enumerator
NOMODE 
SETUP 
INJPILOT 
INJINTR 
INJNOMN 
PRERAMP 
RAMP 
FLATTOP 
QUEEZE 
ADJUST 
STABLE 
UNSTABLE 
BEAMDUMP 
RAMPDOWN 
RECOVERY 
INJDUMP 
CIRCDUMP 
ABORT 
CYCLING 
WBDUMP 
NOBEAM 

Definition at line 68 of file L1TSync_Offline.h.

68  {
69  NOMODE = 1,
70  SETUP = 2,
71  INJPILOT = 3,
72  INJINTR = 4,
73  INJNOMN = 5,
74  PRERAMP = 6,
75  RAMP = 7,
76  FLATTOP = 8,
77  QUEEZE = 9,
78  ADJUST = 10,
79  STABLE = 11,
80  UNSTABLE = 12,
81  BEAMDUMP = 13,
82  RAMPDOWN = 14,
83  RECOVERY = 15,
84  INJDUMP = 16,
85  CIRCDUMP = 17,
86  ABORT = 18,
87  CYCLING = 19,
88  WBDUMP = 20,
89  NOBEAM = 21
90  };

◆ Errors

Enumerator
UNKNOWN 
WARNING_DB_CONN_FAILED 
WARNING_DB_QUERY_FAILED 
WARNING_DB_INCORRECT_NBUNCHES 
ERROR_UNABLE_RETRIVE_PRODUCT 
ERROR_TRIGGERALIAS_NOTVALID 
ERROR_LSBLOCK_NOTVALID 

Definition at line 92 of file L1TSync_Offline.h.

Constructor & Destructor Documentation

◆ L1TSync_Offline()

L1TSync_Offline::L1TSync_Offline ( const edm::ParameterSet ps)

Definition at line 60 of file L1TSync_Offline.cc.

References L1TSync_cfi::Categories, L1TSync_cfi::doGlobalAutoSelection, L1TSync_cfi::forceGlobalParameters, m_algoAutoSelect, m_l1GtDataDaqInputTag, m_l1GtEvmSource, m_parameters, m_refPrescaleSet, m_selectedTriggers, m_verbose, and muonDTDigis_cfi::pset.

61  : m_menuToken(esConsumes<edm::Transition::BeginRun>()),
62  m_helperTokens(L1TMenuHelper::consumes<edm::Transition::BeginRun>(consumesCollector())),
63  m_l1GtUtils(pset, consumesCollector(), false, *this) {
65 
66  // Mapping parameter input variables
67  m_l1GtDataDaqInputTag = consumes<L1GlobalTriggerReadoutRecord>(pset.getParameter<InputTag>("inputTagL1GtDataDaq"));
68  m_l1GtEvmSource = consumes<L1GlobalTriggerEvmReadoutRecord>(pset.getParameter<InputTag>("inputTagtEvmSource"));
69  m_verbose = pset.getUntrackedParameter<bool>("verbose", false);
70  m_refPrescaleSet = pset.getParameter<int>("refPrescaleSet");
71 
72  // Getting which categories to monitor
73  ParameterSet Categories = pset.getParameter<ParameterSet>("Categories");
74 
75  bool forceGlobalParameters = Categories.getParameter<bool>("forceGlobalParameters");
76  bool doGlobalAutoSelection = Categories.getParameter<bool>("doGlobalAutoSelection");
77 
78  ParameterSet CatBPTX = Categories.getParameter<ParameterSet>("BPTX");
79  ParameterSet CatMu = Categories.getParameter<ParameterSet>("Mu");
80  ParameterSet CatEG = Categories.getParameter<ParameterSet>("EG");
81  ParameterSet CatIsoEG = Categories.getParameter<ParameterSet>("IsoEG");
82  ParameterSet CatJet = Categories.getParameter<ParameterSet>("Jet");
83  ParameterSet CatCenJet = Categories.getParameter<ParameterSet>("CenJet");
84  ParameterSet CatForJet = Categories.getParameter<ParameterSet>("ForJet");
85  ParameterSet CatTauJet = Categories.getParameter<ParameterSet>("TauJet");
86  ParameterSet CatETM = Categories.getParameter<ParameterSet>("ETT");
87  ParameterSet CatETT = Categories.getParameter<ParameterSet>("ETM");
88  ParameterSet CatHTT = Categories.getParameter<ParameterSet>("HTT");
89  ParameterSet CatHTM = Categories.getParameter<ParameterSet>("HTM");
90 
91  // --> Setting parameters related to which algos to monitor
92  // If global parameters are forced they take precedence over algo-by-algo parameters
94  // If global automatic selection if enable all categories set to be monitored will have
95  // their algos auto selected (the lowest prescale algo will be selected)
97  if (CatMu.getParameter<bool>("monitor")) {
98  m_algoAutoSelect["Mu"] = true;
99  } else {
100  m_algoAutoSelect["Mu"] = false;
101  }
102  if (CatEG.getParameter<bool>("monitor")) {
103  m_algoAutoSelect["EG"] = true;
104  } else {
105  m_algoAutoSelect["EG"] = false;
106  }
107  if (CatIsoEG.getParameter<bool>("monitor")) {
108  m_algoAutoSelect["IsoEG"] = true;
109  } else {
110  m_algoAutoSelect["IsoEG"] = false;
111  }
112  if (CatJet.getParameter<bool>("monitor")) {
113  m_algoAutoSelect["Jet"] = true;
114  } else {
115  m_algoAutoSelect["Jet"] = false;
116  }
117  if (CatCenJet.getParameter<bool>("monitor")) {
118  m_algoAutoSelect["CenJet"] = true;
119  } else {
120  m_algoAutoSelect["CenJet"] = false;
121  }
122  if (CatForJet.getParameter<bool>("monitor")) {
123  m_algoAutoSelect["ForJet"] = true;
124  } else {
125  m_algoAutoSelect["ForJet"] = false;
126  }
127  if (CatTauJet.getParameter<bool>("monitor")) {
128  m_algoAutoSelect["TauJet"] = true;
129  } else {
130  m_algoAutoSelect["TauJet"] = false;
131  }
132  if (CatETM.getParameter<bool>("monitor")) {
133  m_algoAutoSelect["ETM"] = true;
134  } else {
135  m_algoAutoSelect["ETM"] = false;
136  }
137  if (CatETT.getParameter<bool>("monitor")) {
138  m_algoAutoSelect["ETT"] = true;
139  } else {
140  m_algoAutoSelect["ETT"] = false;
141  }
142  if (CatHTM.getParameter<bool>("monitor")) {
143  m_algoAutoSelect["HTM"] = true;
144  } else {
145  m_algoAutoSelect["HTM"] = false;
146  }
147  if (CatHTT.getParameter<bool>("monitor")) {
148  m_algoAutoSelect["HTT"] = true;
149  } else {
150  m_algoAutoSelect["HTT"] = false;
151  }
152 
153  // If global non-automatic selection is enable all categories set to be monitored will use
154  // user defined algos
155  } else {
156  m_algoAutoSelect["Mu"] = false;
157  m_algoAutoSelect["EG"] = false;
158  m_algoAutoSelect["IsoEG"] = false;
159  m_algoAutoSelect["Jet"] = false;
160  m_algoAutoSelect["CenJet"] = false;
161  m_algoAutoSelect["ForJet"] = false;
162  m_algoAutoSelect["TauJet"] = false;
163  m_algoAutoSelect["ETM"] = false;
164  m_algoAutoSelect["ETT"] = false;
165  m_algoAutoSelect["HTM"] = false;
166  m_algoAutoSelect["HTT"] = false;
167 
168  if (CatMu.getParameter<bool>("monitor")) {
169  m_selectedTriggers["Mu"] = CatMu.getParameter<string>("algo");
170  }
171  if (CatEG.getParameter<bool>("monitor")) {
172  m_selectedTriggers["EG"] = CatEG.getParameter<string>("algo");
173  }
174  if (CatIsoEG.getParameter<bool>("monitor")) {
175  m_selectedTriggers["IsoEG"] = CatIsoEG.getParameter<string>("algo");
176  }
177  if (CatJet.getParameter<bool>("monitor")) {
178  m_selectedTriggers["Jet"] = CatJet.getParameter<string>("algo");
179  }
180  if (CatCenJet.getParameter<bool>("monitor")) {
181  m_selectedTriggers["CenJet"] = CatCenJet.getParameter<string>("algo");
182  }
183  if (CatForJet.getParameter<bool>("monitor")) {
184  m_selectedTriggers["CatForJet"] = CatForJet.getParameter<string>("algo");
185  }
186  if (CatTauJet.getParameter<bool>("monitor")) {
187  m_selectedTriggers["TauJet"] = CatTauJet.getParameter<string>("algo");
188  }
189  if (CatETM.getParameter<bool>("monitor")) {
190  m_selectedTriggers["ETM"] = CatETM.getParameter<string>("algo");
191  }
192  if (CatETT.getParameter<bool>("monitor")) {
193  m_selectedTriggers["ETT"] = CatETT.getParameter<string>("algo");
194  }
195  if (CatHTM.getParameter<bool>("monitor")) {
196  m_selectedTriggers["HTM"] = CatHTM.getParameter<string>("algo");
197  }
198  if (CatHTT.getParameter<bool>("monitor")) {
199  m_selectedTriggers["HTT"] = CatHTT.getParameter<string>("algo");
200  }
201  }
202 
203  // If we are using algo-by-algo parametes we get them and set what is needed
204  } else {
205  if (CatBPTX.getParameter<bool>("monitor")) {
206  m_selectedTriggers["BPTX"] = CatBPTX.getParameter<string>("algo");
207  }
208 
209  if (CatMu.getParameter<bool>("monitor")) {
210  m_algoAutoSelect["Mu"] = CatMu.getParameter<bool>("doAutoSelection");
211  if (!m_algoAutoSelect["Mu"]) {
212  m_selectedTriggers["Mu"] = CatMu.getParameter<string>("algo");
213  }
214  } else {
215  m_algoAutoSelect["Mu"] = false;
216  }
217 
218  if (CatEG.getParameter<bool>("monitor")) {
219  m_algoAutoSelect["EG"] = CatEG.getParameter<bool>("doAutoSelection");
220  if (!m_algoAutoSelect["EG"]) {
221  m_selectedTriggers["EG"] = CatEG.getParameter<string>("algo");
222  }
223  } else {
224  m_algoAutoSelect["EG"] = false;
225  }
226 
227  if (CatIsoEG.getParameter<bool>("monitor")) {
228  m_algoAutoSelect["IsoEG"] = CatIsoEG.getParameter<bool>("doAutoSelection");
229  if (!m_algoAutoSelect["IsoEG"]) {
230  m_selectedTriggers["IsoEG"] = CatIsoEG.getParameter<string>("algo");
231  }
232  } else {
233  m_algoAutoSelect["IsoEG"] = false;
234  }
235 
236  if (CatJet.getParameter<bool>("monitor")) {
237  m_algoAutoSelect["Jet"] = CatJet.getParameter<bool>("doAutoSelection");
238  if (!m_algoAutoSelect["Jet"]) {
239  m_selectedTriggers["Jet"] = CatJet.getParameter<string>("algo");
240  }
241  } else {
242  m_algoAutoSelect["Jet"] = false;
243  }
244 
245  if (CatCenJet.getParameter<bool>("monitor")) {
246  m_algoAutoSelect["CenJet"] = CatCenJet.getParameter<bool>("doAutoSelection");
247  if (!m_algoAutoSelect["CenJet"]) {
248  m_selectedTriggers["CenJet"] = CatCenJet.getParameter<string>("algo");
249  }
250  } else {
251  m_algoAutoSelect["CenJet"] = false;
252  }
253 
254  if (CatForJet.getParameter<bool>("monitor")) {
255  m_algoAutoSelect["CatForJet"] = CatForJet.getParameter<bool>("doAutoSelection");
256  if (!m_algoAutoSelect["CatForJet"]) {
257  m_selectedTriggers["CatForJet"] = CatForJet.getParameter<string>("algo");
258  }
259  } else {
260  m_algoAutoSelect["CatForJet"] = false;
261  }
262 
263  if (CatTauJet.getParameter<bool>("monitor")) {
264  m_algoAutoSelect["TauJet"] = CatTauJet.getParameter<bool>("doAutoSelection");
265  if (!m_algoAutoSelect["TauJet"]) {
266  m_selectedTriggers["TauJet"] = CatTauJet.getParameter<string>("algo");
267  }
268  } else {
269  m_algoAutoSelect["TauJet"] = false;
270  }
271 
272  if (CatETM.getParameter<bool>("monitor")) {
273  m_algoAutoSelect["ETM"] = CatETM.getParameter<bool>("doAutoSelection");
274  if (!m_algoAutoSelect["ETM"]) {
275  m_selectedTriggers["ETM"] = CatETM.getParameter<string>("algo");
276  }
277  } else {
278  m_algoAutoSelect["ETM"] = false;
279  }
280 
281  if (CatETT.getParameter<bool>("monitor")) {
282  m_algoAutoSelect["ETT"] = CatETT.getParameter<bool>("doAutoSelection");
283  if (!m_algoAutoSelect["ETT"]) {
284  m_selectedTriggers["ETT"] = CatETT.getParameter<string>("algo");
285  }
286  } else {
287  m_algoAutoSelect["ETT"] = false;
288  }
289 
290  if (CatHTM.getParameter<bool>("monitor")) {
291  m_algoAutoSelect["HTM"] = CatHTM.getParameter<bool>("doAutoSelection");
292  if (!m_algoAutoSelect["HTM"]) {
293  m_selectedTriggers["HTM"] = CatHTM.getParameter<string>("algo");
294  }
295  } else {
296  m_algoAutoSelect["HTM"] = false;
297  }
298 
299  if (CatHTT.getParameter<bool>("monitor")) {
300  m_algoAutoSelect["HTT"] = CatHTT.getParameter<bool>("doAutoSelection");
301  if (!m_algoAutoSelect["HTT"]) {
302  m_selectedTriggers["HTT"] = CatHTT.getParameter<string>("algo");
303  }
304  } else {
305  m_algoAutoSelect["HTT"] = false;
306  }
307  }
308 }
L1TMenuHelper::Tokens m_helperTokens
L1GtUtils m_l1GtUtils
edm::ParameterSet m_parameters
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::map< std::string, bool > m_algoAutoSelect
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcd > m_menuToken
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputTag
std::map< std::string, std::string > m_selectedTriggers
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > m_l1GtEvmSource

◆ ~L1TSync_Offline()

L1TSync_Offline::~L1TSync_Offline ( )
override

Definition at line 312 of file L1TSync_Offline.cc.

312 {}

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMOneEDAnalyzer< edm::LuminosityBlockCache< ltso::LSValid > >.

Definition at line 405 of file L1TSync_Offline.cc.

References a, funct::abs(), L1TBeamConfiguration::beam1, L1TBeamConfiguration::beam2, L1GtfeExtWord::beamMode(), L1TBeamConfiguration::bxConfig(), gather_cfg::cout, ERROR_UNABLE_RETRIVE_PRODUCT, getBeamConfOffline(), dqm::impl::MonitorElement::getTH1(), L1GlobalTriggerReadoutRecord::gtFdlVector(), L1GlobalTriggerEvmReadoutRecord::gtfeWord(), mps_fire::i, iEvent, L1TBeamConfiguration::isValid(), edm::HandleBase::isValid(), L1GtfeExtWord::lhcFillNumber(), m_algoBit, m_algoVsBunchStructure, m_beamConfig, m_ErrorMonitor, m_l1GtDataDaqInputTag, m_l1GtEvmSource, m_lhcFill, m_selectedTriggers, m_verbose, and STABLE.

405  {
406  if (m_verbose) {
407  cout << "[L1TSync_Offline] Called analyze." << endl;
408  }
409 
410  // We only start analyzing if current LS is still valid
411  auto& currentLSValid = luminosityBlockCache(iEvent.getLuminosityBlock().index())->lsIsValid;
412  if (currentLSValid) {
413  if (m_verbose) {
414  cout << "[L1TSync_Offline] -> currentLSValid=" << currentLSValid << endl;
415  }
416 
417  // Retriving information from GT
419  iEvent.getByToken(m_l1GtEvmSource, gtEvmReadoutRecord);
420 
421  // Determining beam mode and fill number
422  if (gtEvmReadoutRecord.isValid()) {
423  const L1GtfeExtWord& gtfeEvmWord = gtEvmReadoutRecord->gtfeWord();
424  unsigned int lhcBeamMode = gtfeEvmWord.beamMode(); // Updating beam mode
425 
426  if (m_lhcFill == 0) {
427  m_lhcFill = gtfeEvmWord.lhcFillNumber(); // Getting LHC Fill Number from GT
428 
429  //I AM HERE
430  getBeamConfOffline(iEvent); // Getting Beam Configuration from OMDS
431  // no OMDS //
432  /* (Savannah ticket https://savannah.cern.ch/task/?31857 )
433  Purged the OMDS helper from the module, since apparently we don't have access to that information from Offline.
434  The comparison with the closest BPTX trigger will be performed via conditions objects which are being implemented by Joao Pela.
435  In the meantime, for being able to test the module, he suggested to pass the correct bunch structure by hand for the specific run which is run during the test.
436  The idea of the temporary fix is setting the vector variable that stores the bunch structure either by hand or filling it with the BPTX fires (that is check for the event the BX's where tech0 fired and set those as true in the vector.
437  */
438  // no OMDS // m_beamConfig = myOMDSHelper.getBeamConfiguration(m_lhcFill,errorRetrieve); Yuhuuu!!!OB asked Joao Pela how to fetch that
439  }
440 
441  if (lhcBeamMode != STABLE) {
442  currentLSValid = false;
443  if (m_verbose) {
444  cout << "[L1TSync_Offline] -> currentLSValid=" << currentLSValid << "because beams mode not stable, being "
445  << lhcBeamMode << endl;
446  }
447  } // If Beams are not stable we invalidate this LS
448  } else {
449  int eCount = m_ErrorMonitor->getTH1()->GetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT);
450  eCount++;
451  m_ErrorMonitor->getTH1()->SetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT, eCount);
452  }
453  } else {
454  if (m_verbose) {
455  cout << "[L1TSync_Offline] -> currentLSValid=" << currentLSValid << endl;
456  }
457  }
458 
459  // Commenting out un-necessary print outs (S.Dutta)
460  /* for(size_t l=0; l<m_beamConfig.beam1.size(); l++){
461  cout << "Beam 1: element " << l << " is in state " << m_beamConfig.beam1[l] << " --- Beam 2: element " << l << " is in state " << m_beamConfig.beam2[l] << endl;
462  }*/
463  //------------------------------------------------------------------------------
464  // If current LS is valid and Beam Configuration is Valid we analyse this event
465  //------------------------------------------------------------------------------
466  if (currentLSValid && m_beamConfig.isValid()) {
467  // Getting Final Decision Logic (FDL) Data from GT
468  edm::Handle<L1GlobalTriggerReadoutRecord> gtReadoutRecordData;
469  iEvent.getByToken(m_l1GtDataDaqInputTag, gtReadoutRecordData);
470 
471  if (gtReadoutRecordData.isValid()) {
472  const vector<L1GtFdlWord>& gtFdlVectorData = gtReadoutRecordData->gtFdlVector();
473 
474  // Running over selected triggers
475  for (map<string, string>::const_iterator i = m_selectedTriggers.begin(); i != m_selectedTriggers.end(); i++) {
476  string tTrigger = (*i).second;
477 
478  // Analyse only defined triggers
479  if (tTrigger != "Undefined" && tTrigger != "Undefined (Wrong Name)") {
480  bool beamSingleConfig = false; // Single beam configured for this event
481  bool firedAlgo = false; // Algo fired in this event
482  unsigned int eventBx = ~0;
483 
484  // Running over FDL results to get which bits fired
485  for (unsigned int a = 0; a < gtFdlVectorData.size(); a++) {
486  // Selecting the FDL that triggered
487  if (gtFdlVectorData[a].bxInEvent() == 0) {
488  eventBx = gtFdlVectorData[a].localBxNr();
489  if (gtFdlVectorData[a].gtDecisionWord()[m_algoBit[tTrigger]]) {
490  firedAlgo = true;
491  }
492  }
493  }
494 
495  // Checking beam configuration
496  if (m_beamConfig.beam1.size() > eventBx && m_beamConfig.beam2.size() > eventBx) {
497  if (m_beamConfig.beam1[eventBx] && !m_beamConfig.beam2[eventBx]) {
498  beamSingleConfig = true;
499  }
500  if (!m_beamConfig.beam1[eventBx] && m_beamConfig.beam2[eventBx]) {
501  beamSingleConfig = true;
502  }
503  }
504  // Analyse only if this trigger fired in this event
505  // NOTE: Veto cases where a single beam is configured since
506  // for this cases this could be a real-satelite bunch collision
507  // -> Calculate the minimum bx diference between this event and a configured bx
508  if (firedAlgo && !beamSingleConfig) {
509  int DifAlgoVsBunchStructure = 9999; // Majorated
510 
511  for (unsigned int a = 0; a < gtFdlVectorData.size(); a++) {
512  int bxFDL = gtFdlVectorData[a].localBxNr();
513  int bxInEvent = gtFdlVectorData[a].bxInEvent();
514 
515  if (m_beamConfig.bxConfig(bxFDL) && abs(bxInEvent) < abs(DifAlgoVsBunchStructure)) {
516  DifAlgoVsBunchStructure = -1 * bxInEvent;
517  }
518  }
519 
520  m_algoVsBunchStructure[tTrigger]->Fill(0 /*m_currentLS*/, DifAlgoVsBunchStructure);
521  }
522  }
523  }
524  } else {
525  int eCount = m_ErrorMonitor->getTH1()->GetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT);
526  eCount++;
527  m_ErrorMonitor->getTH1()->SetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT, eCount);
528  }
529  }
530 }
void getBeamConfOffline(const edm::Event &)
const cms_uint16_t beamMode() const
MonitorElement * m_ErrorMonitor
const L1GtfeExtWord gtfeWord() const
get / set GTFE word (record) in the GT readout record
int iEvent
Definition: GenABIO.cc:224
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
unsigned int m_lhcFill
const cms_uint32_t lhcFillNumber() const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::map< TString, int > m_algoBit
bool bxConfig(unsigned iBx)
std::map< TString, MonitorElement * > m_algoVsBunchStructure
std::vector< bool > beam2
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputTag
double a
Definition: hdecay.h:121
std::map< std::string, std::string > m_selectedTriggers
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > m_l1GtEvmSource
std::vector< bool > beam1
L1TBeamConfiguration m_beamConfig

◆ bookHistograms()

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

BeginRun.

Implements DQMOneEDAnalyzer< edm::LuminosityBlockCache< ltso::LSValid > >.

Definition at line 320 of file L1TSync_Offline.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), gather_cfg::cout, ERROR_LSBLOCK_NOTVALID, ERROR_TRIGGERALIAS_NOTVALID, ERROR_UNABLE_RETRIVE_PRODUCT, edm::EventSetup::getData(), L1TMenuHelper::getLUSOTrigger(), mps_fire::i, m_algoAutoSelect, m_algoBit, m_algoCertification, m_algoVsBunchStructure, m_certFirstLS, m_certLastLS, m_ErrorMonitor, m_helperTokens, m_l1GtUtils, m_lhcFill, m_menuToken, m_refPrescaleSet, m_selectedTriggers, m_verbose, relval_steps::menu, L1GtUtils::retrieveL1EventSetup(), dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), L1TMenuHelper::testAlgos(), UNKNOWN, WARNING_DB_CONN_FAILED, WARNING_DB_INCORRECT_NBUNCHES, and WARNING_DB_QUERY_FAILED.

320  {
321  if (m_verbose) {
322  cout << "[L1TSync_Offline] Called beginRun." << endl;
323  }
324 
325  // Initializing variables
326  int maxNbins = 2501;
327 
328  // Reseting run dependent variables
329  m_lhcFill = 0;
330  m_certFirstLS.clear();
331  m_certLastLS.clear();
332 
333  // Getting Trigger menu from GT
334  const L1GtTriggerMenu& menu = iSetup.getData(m_menuToken);
335 
336  // Filling Alias-Bit Map
337  for (const auto& algo : menu.gtAlgorithmAliasMap()) {
338  m_algoBit[algo.second.algoAlias()] = algo.second.algoBitNumber();
339  }
340 
341  // Getting fill number for this run
342  //Handle<ConditionsInRunBlock> runConditions;
343  //iRun.getByType(runConditions);
344  //int lhcFillNumber = runConditions->lhcFillNumber;
345  //
346  //ESHandle<L1GtPrescaleFactors> l1GtPfAlgo;
347  //iSetup.get<L1GtPrescaleFactorsAlgoTrigRcd>().get(l1GtPfAlgo);
348  //const L1GtPrescaleFactors* m_l1GtPfAlgo = l1GtPfAlgo.product();
349 
350  L1TMenuHelper myMenuHelper = L1TMenuHelper(iSetup, m_helperTokens);
351 
353 
355  map<string, string> tAutoSelTrig = myMenuHelper.getLUSOTrigger(m_algoAutoSelect, m_refPrescaleSet, m_l1GtUtils);
356  m_selectedTriggers.insert(tAutoSelTrig.begin(), tAutoSelTrig.end());
357 
358  // Initializing DQM Monitor Elements
359  ibooker.setCurrentFolder("L1T/L1TSync");
360  m_ErrorMonitor = ibooker.book1D("ErrorMonitor", "ErrorMonitor", 7, 0, 7);
361  m_ErrorMonitor->setBinLabel(UNKNOWN, "UNKNOWN");
362  m_ErrorMonitor->setBinLabel(WARNING_DB_CONN_FAILED, "WARNING_DB_CONN_FAILED"); // Errors from L1TOMDSHelper
363  m_ErrorMonitor->setBinLabel(WARNING_DB_QUERY_FAILED, "WARNING_DB_QUERY_FAILED"); // Errors from L1TOMDSHelper
365  "WARNING_DB_INCORRECT_NBUNCHES"); // Errors from L1TOMDSHelper
366  m_ErrorMonitor->setBinLabel(ERROR_UNABLE_RETRIVE_PRODUCT, "ERROR_UNABLE_RETRIVE_PRODUCT");
367  m_ErrorMonitor->setBinLabel(ERROR_TRIGGERALIAS_NOTVALID, "ERROR_TRIGGERALIAS_NOTVALID");
368  m_ErrorMonitor->setBinLabel(ERROR_LSBLOCK_NOTVALID, "ERROR_LSBLOCK_NOTVALID");
369 
370  // Looping over selected triggers
371  for (map<string, string>::const_iterator i = m_selectedTriggers.begin(); i != m_selectedTriggers.end(); i++) {
372  string tCategory = (*i).first;
373  string tTrigger = (*i).second;
374 
375  // Initializing LS blocks for certification
376  m_certFirstLS[(*i).second] = 0;
377  m_certLastLS[(*i).second] = 0;
378 
379  // Initializing DQM Monitors
380  ibooker.setCurrentFolder("L1T/L1TSync/AlgoVsBunchStructure/");
381  m_algoVsBunchStructure[tTrigger] = ibooker.book2D(
382  tCategory, "min #Delta(" + tTrigger + ",Bunch)", maxNbins, -0.5, double(maxNbins) - 0.5, 5, -2.5, 2.5);
383  m_algoVsBunchStructure[tTrigger]->setAxisTitle("Lumi Section", 1);
384 
385  ibooker.setCurrentFolder("L1T/L1TSync/Certification/");
386  m_algoCertification[tTrigger] =
387  ibooker.book1D(tCategory, "fraction of in sync: " + tTrigger, maxNbins, -0.5, double(maxNbins) - 0.5);
388  m_algoCertification[tTrigger]->setAxisTitle("Lumi Section", 1);
389  }
390 }
L1TMenuHelper::Tokens m_helperTokens
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
MonitorElement * m_ErrorMonitor
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
std::map< TString, MonitorElement * > m_algoCertification
L1GtUtils m_l1GtUtils
unsigned int m_lhcFill
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< std::string, std::string > testAlgos(const std::map< std::string, std::string > &)
std::map< std::string, bool > m_algoAutoSelect
std::map< TString, MonitorElement * > m_algoVsBunchStructure
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:221
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcd > m_menuToken
std::map< std::string, std::string > m_selectedTriggers
std::map< TString, unsigned int > m_certFirstLS
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
std::map< TString, unsigned int > m_certLastLS
std::map< std::string, std::string > getLUSOTrigger(const std::map< std::string, bool > &iCategories, int IndexRefPrescaleFactors, L1GtUtils const &myUtils)

◆ dqmBeginRun()

void L1TSync_Offline::dqmBeginRun ( const edm::Run ,
const edm::EventSetup  
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer< edm::LuminosityBlockCache< ltso::LSValid > >.

Definition at line 316 of file L1TSync_Offline.cc.

316 {}

◆ getBeamConfOffline()

void L1TSync_Offline::getBeamConfOffline ( const edm::Event iEvent)
private

Definition at line 537 of file L1TSync_Offline.cc.

References a, L1TBeamConfiguration::beam1, L1TBeamConfiguration::beam2, L1GlobalTriggerReadoutRecord::gtFdlVector(), iEvent, edm::HandleBase::isValid(), m_algoBit, m_beamConfig, m_l1GtDataDaqInputTag, m_selectedTriggers, and L1TBeamConfiguration::m_valid.

Referenced by analyze().

537  {
538  //Getting connection parameters
539  // [11:21:35] Pietro Vischia: pathCondDB and oracleDB are available in offline?
540  // [11:21:51] Joao Pela: no
541  // [11:21:56] Pietro Vischia: cool
542  // [11:21:58] Pietro Vischia: tks
543  // [11:22:00] Joao Pela: well
544  // [11:22:02] Joao Pela: maybe
545  // [11:22:05] Joao Pela: but assume no
546  // [11:22:22] Joao Pela: definitely assume no
547  // *** UPDATE: now we have a DB for Rate parameters, it would be useful to have s.th also for L1TSync
548 
549  // string oracleDB = m_parameters.getParameter<string>("oracleDB");
550  // string pathCondDB = m_parameters.getParameter<string>("pathCondDB");
551 
552  // m_beamConfig = myOMDSHelper.getBeamConfiguration(m_lhcFill,errorRetrieve);
553  // m_lhcFill -> lhcFillNumber
554  // errorRetrieve -> error
555  // m_beamConfig -> bConfig
556 
557  // No error codes at the moment. Taking info from BPTX fires
558  // int errorRetrieve = 0; // NO_ERROR;
559  m_beamConfig.m_valid = true;
560 
561  // bool beamSingleConfig = false; // Single beam configured for this event
562  bool firedAlgo = false; // Algo fired in this event
563  // int eventBx = -1;
564 
565  // Running over FDL results to get which bits fired for BPTX (temporary fix Savannah ticket https://savannah.cern.ch/task/?31857 )
566  // Getting Final Decision Logic (FDL) Data from GT
567  edm::Handle<L1GlobalTriggerReadoutRecord> gtReadoutRecordData;
568  iEvent.getByToken(m_l1GtDataDaqInputTag, gtReadoutRecordData);
569 
570  if (gtReadoutRecordData.isValid()) {
571  const vector<L1GtFdlWord>& gtFdlVectorData = gtReadoutRecordData->gtFdlVector();
572 
573  for (unsigned int a = 0; a < gtFdlVectorData.size(); a++) {
574  // Selecting the FDL that triggered
575  if (gtFdlVectorData[a].bxInEvent() == 0) {
576  //eventBx = gtFdlVectorData[a].localBxNr();
577  if (gtFdlVectorData[a].gtDecisionWord()[m_algoBit[m_selectedTriggers["BPTX"]]]) {
578  firedAlgo = true;
579  }
580  }
581 
582  // Fill beam status with BPTX fires
583  if (firedAlgo) {
584  m_beamConfig.beam1.push_back(true);
585  m_beamConfig.beam2.push_back(true);
586  } else {
587  m_beamConfig.beam1.push_back(false);
588  m_beamConfig.beam2.push_back(false);
589  }
590  // End fill beam status with BPTX fires
591  } // End loop on FDL
592  } // End if readout is valid
593 }
int iEvent
Definition: GenABIO.cc:224
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
std::map< TString, int > m_algoBit
std::vector< bool > beam2
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputTag
double a
Definition: hdecay.h:121
std::map< std::string, std::string > m_selectedTriggers
std::vector< bool > beam1
L1TBeamConfiguration m_beamConfig

◆ globalBeginLuminosityBlock()

std::shared_ptr< ltso::LSValid > L1TSync_Offline::globalBeginLuminosityBlock ( edm::LuminosityBlock const &  lumiBlock,
edm::EventSetup const &  c 
) const
finalprotected

Definition at line 395 of file L1TSync_Offline.cc.

References gather_cfg::cout, and m_verbose.

396  {
397  if (m_verbose) {
398  cout << "[L1TSync_Offline] Called beginLuminosityBlock." << endl;
399  }
400 
401  return std::make_shared<ltso::LSValid>();
402 }

◆ globalEndLuminosityBlock()

void L1TSync_Offline::globalEndLuminosityBlock ( edm::LuminosityBlock const &  lumiBlock,
edm::EventSetup const &  c 
)
inlinefinalprotected

Definition at line 112 of file L1TSync_Offline.h.

112 {}

Member Data Documentation

◆ ListsPrescaleFactors

const std::vector<std::vector<int> >* L1TSync_Offline::ListsPrescaleFactors
private

Definition at line 139 of file L1TSync_Offline.h.

◆ m_algoAutoSelect

std::map<std::string, bool> L1TSync_Offline::m_algoAutoSelect
private

Definition at line 147 of file L1TSync_Offline.h.

Referenced by bookHistograms(), and L1TSync_Offline().

◆ m_algoBit

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

Definition at line 142 of file L1TSync_Offline.h.

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

◆ m_algoCertification

std::map<TString, MonitorElement*> L1TSync_Offline::m_algoCertification
private

Definition at line 145 of file L1TSync_Offline.h.

Referenced by bookHistograms().

◆ m_algoVsBunchStructure

std::map<TString, MonitorElement*> L1TSync_Offline::m_algoVsBunchStructure
private

Definition at line 146 of file L1TSync_Offline.h.

Referenced by analyze(), and bookHistograms().

◆ m_beamConfig

L1TBeamConfiguration L1TSync_Offline::m_beamConfig
private

Definition at line 136 of file L1TSync_Offline.h.

Referenced by analyze(), and getBeamConfOffline().

◆ m_certFirstLS

std::map<TString, unsigned int> L1TSync_Offline::m_certFirstLS
private

Definition at line 143 of file L1TSync_Offline.h.

Referenced by bookHistograms().

◆ m_certLastLS

std::map<TString, unsigned int> L1TSync_Offline::m_certLastLS
private

Definition at line 144 of file L1TSync_Offline.h.

Referenced by bookHistograms().

◆ m_ErrorMonitor

MonitorElement* L1TSync_Offline::m_ErrorMonitor
private

Definition at line 151 of file L1TSync_Offline.h.

Referenced by analyze(), and bookHistograms().

◆ m_helperTokens

L1TMenuHelper::Tokens L1TSync_Offline::m_helperTokens
private

Definition at line 157 of file L1TSync_Offline.h.

Referenced by bookHistograms().

◆ m_l1GtDataDaqInputTag

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

Definition at line 155 of file L1TSync_Offline.h.

Referenced by analyze(), getBeamConfOffline(), and L1TSync_Offline().

◆ m_l1GtEvmSource

edm::EDGetTokenT<L1GlobalTriggerEvmReadoutRecord> L1TSync_Offline::m_l1GtEvmSource
private

Definition at line 154 of file L1TSync_Offline.h.

Referenced by analyze(), and L1TSync_Offline().

◆ m_l1GtUtils

L1GtUtils L1TSync_Offline::m_l1GtUtils
private

Definition at line 159 of file L1TSync_Offline.h.

Referenced by bookHistograms().

◆ m_lhcFill

unsigned int L1TSync_Offline::m_lhcFill
private

Definition at line 133 of file L1TSync_Offline.h.

Referenced by analyze(), and bookHistograms().

◆ m_menuToken

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

Definition at line 156 of file L1TSync_Offline.h.

Referenced by bookHistograms().

◆ m_parameters

edm::ParameterSet L1TSync_Offline::m_parameters
private

Definition at line 125 of file L1TSync_Offline.h.

Referenced by L1TSync_Offline().

◆ m_refPrescaleSet

int L1TSync_Offline::m_refPrescaleSet
private

Definition at line 131 of file L1TSync_Offline.h.

Referenced by bookHistograms(), and L1TSync_Offline().

◆ m_selectedTriggers

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

Definition at line 148 of file L1TSync_Offline.h.

Referenced by analyze(), bookHistograms(), getBeamConfOffline(), and L1TSync_Offline().

◆ m_verbose

bool L1TSync_Offline::m_verbose
private