CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
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 final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector
< edm::ProductResolverIndex >
const & 
indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector
< edm::ProductResolverIndex >
const & 
putTokenIndexToProductResolverIndex () const
 
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
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
void 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
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Private Member Functions

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
< L1GlobalTriggerReadoutRecord
m_l1GtDataDaqInputTag
 
edm::EDGetTokenT
< L1GlobalTriggerEvmReadoutRecord
m_l1GtEvmSource
 
L1GtUtils m_l1GtUtils
 
unsigned int m_lhcFill
 
const edm::ESGetToken
< L1GtTriggerMenu,
L1GtTriggerMenuRcd
m_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

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  };
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 ( const edm::ParameterSet ps)

Definition at line 60 of file L1TSync_Offline.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), m_algoAutoSelect, m_l1GtDataDaqInputTag, m_l1GtEvmSource, m_parameters, m_refPrescaleSet, m_selectedTriggers, m_verbose, and TrackValidation_cff::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
93  if (forceGlobalParameters) {
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)
96  if (doGlobalAutoSelection) {
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
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
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 ( )
override

Definition at line 312 of file L1TSync_Offline.cc.

312 {}

Member Function Documentation

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(), edm::Event::getByToken(), edm::Event::getLuminosityBlock(), dqm::impl::MonitorElement::getTH1(), mps_fire::i, edm::LuminosityBlock::index(), 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 &)
MonitorElement * m_ErrorMonitor
int iEvent
Definition: GenABIO.cc:224
unsigned int m_lhcFill
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isValid() const
Definition: HandleBase.h:70
std::map< TString, int > m_algoBit
bool bxConfig(unsigned iBx)
std::map< TString, MonitorElement * > m_algoVsBunchStructure
std::vector< bool > beam2
const cms_uint32_t lhcFillNumber() const
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputTag
double a
Definition: hdecay.h:119
std::map< std::string, std::string > m_selectedTriggers
tuple cout
Definition: gather_cfg.py:144
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > m_l1GtEvmSource
std::vector< bool > beam1
const cms_uint16_t beamMode() const
L1TBeamConfiguration m_beamConfig
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(), L1GtTriggerMenu::gtAlgorithmAliasMap(), 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
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
std::map< TString, MonitorElement * > m_algoCertification
L1GtUtils m_l1GtUtils
bool getData(T &iHolder) const
Definition: EventSetup.h:122
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:177
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcd > m_menuToken
std::map< std::string, std::string > m_selectedTriggers
tuple cout
Definition: gather_cfg.py:144
std::map< TString, unsigned int > m_certFirstLS
const AlgorithmMap & gtAlgorithmAliasMap() const
get / set the algorithm map (by alias)
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)
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 {}
void L1TSync_Offline::getBeamConfOffline ( const edm::Event iEvent)
private

Definition at line 537 of file L1TSync_Offline.cc.

References a, L1TBeamConfiguration::beam1, L1TBeamConfiguration::beam2, edm::Event::getByToken(), 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 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
bool isValid() const
Definition: HandleBase.h:70
std::map< TString, int > m_algoBit
std::vector< bool > beam2
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputTag
double a
Definition: hdecay.h:119
std::map< std::string, std::string > m_selectedTriggers
std::vector< bool > beam1
L1TBeamConfiguration m_beamConfig
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 }
tuple cout
Definition: gather_cfg.py:144
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

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

Definition at line 139 of file L1TSync_Offline.h.

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().

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

Definition at line 142 of file L1TSync_Offline.h.

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

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

Definition at line 145 of file L1TSync_Offline.h.

Referenced by bookHistograms().

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

Definition at line 146 of file L1TSync_Offline.h.

Referenced by analyze(), and bookHistograms().

L1TBeamConfiguration L1TSync_Offline::m_beamConfig
private

Definition at line 136 of file L1TSync_Offline.h.

Referenced by analyze(), and getBeamConfOffline().

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

Definition at line 143 of file L1TSync_Offline.h.

Referenced by bookHistograms().

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

Definition at line 144 of file L1TSync_Offline.h.

Referenced by bookHistograms().

MonitorElement* L1TSync_Offline::m_ErrorMonitor
private

Definition at line 151 of file L1TSync_Offline.h.

Referenced by analyze(), and bookHistograms().

L1TMenuHelper::Tokens L1TSync_Offline::m_helperTokens
private

Definition at line 157 of file L1TSync_Offline.h.

Referenced by bookHistograms().

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

Definition at line 155 of file L1TSync_Offline.h.

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

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

Definition at line 154 of file L1TSync_Offline.h.

Referenced by analyze(), and L1TSync_Offline().

L1GtUtils L1TSync_Offline::m_l1GtUtils
private

Definition at line 159 of file L1TSync_Offline.h.

Referenced by bookHistograms().

unsigned int L1TSync_Offline::m_lhcFill
private

Definition at line 133 of file L1TSync_Offline.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 156 of file L1TSync_Offline.h.

Referenced by bookHistograms().

edm::ParameterSet L1TSync_Offline::m_parameters
private

Definition at line 125 of file L1TSync_Offline.h.

Referenced by L1TSync_Offline().

int L1TSync_Offline::m_refPrescaleSet
private

Definition at line 131 of file L1TSync_Offline.h.

Referenced by bookHistograms(), and L1TSync_Offline().

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().

bool L1TSync_Offline::m_verbose
private