CMS 3D CMS Logo

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

#include <L1GtTrigReport.h>

Inheritance diagram for L1GtTrigReport:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 L1GtTrigReport (const edm::ParameterSet &)
 constructor More...
 
 ~L1GtTrigReport () override
 destructor More...
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () 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)
 

Private Types

typedef std::list< L1GtTrigReportEntry * >::const_iterator CItEntry
 
typedef std::list< L1GtTrigReportEntry * >::iterator ItEntry
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 analyze each event More...
 
void beginJob () override
 
void endJob () override
 end of job More...
 

Private Attributes

std::list< L1GtTrigReportEntry * > m_entryList
 list of individual entries in the report for physics algorithms More...
 
std::list< L1GtTrigReportEntry * > m_entryListTechTrig
 list of individual entries in the report for technical triggers More...
 
std::vector< int > m_globalNrAccepts
 global number of events accepted by any of the L1 algorithm in any menu More...
 
std::vector< int > m_globalNrErrors
 global number of events with error (EDProduct[s] not found) More...
 
const L1GtTriggerMenum_l1GtMenu
 
unsigned long long m_l1GtMenuCacheID
 
const L1GtPrescaleFactorsm_l1GtPfAlgo
 prescale factors More...
 
unsigned long long m_l1GtPfAlgoCacheID
 
const L1GtPrescaleFactorsm_l1GtPfTech
 
unsigned long long m_l1GtPfTechCacheID
 
const edm::InputTag m_l1GtRecordInputTag
 input tag for GT record (L1 GT DAQ record or L1 GT "lite" record): More...
 
const edm::EDGetTokenT< L1GlobalTriggerRecordm_l1GtRecordInputToken1
 
const edm::EDGetTokenT< L1GlobalTriggerReadoutRecordm_l1GtRecordInputToken2
 
const L1GtStableParametersm_l1GtStablePar
 cached stuff More...
 
unsigned long long m_l1GtStableParCacheID
 
const L1GtTriggerMaskm_l1GtTmAlgo
 trigger masks & veto masks More...
 
unsigned long long m_l1GtTmAlgoCacheID
 
const L1GtTriggerMaskm_l1GtTmTech
 
unsigned long long m_l1GtTmTechCacheID
 
const L1GtTriggerMaskm_l1GtTmVetoAlgo
 
unsigned long long m_l1GtTmVetoAlgoCacheID
 
const L1GtTriggerMaskm_l1GtTmVetoTech
 
unsigned long long m_l1GtTmVetoTechCacheID
 
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcdm_menuToken
 
unsigned int m_numberDaqPartitions
 number of DAQ partitions More...
 
unsigned int m_numberDaqPartitionsMax
 
unsigned int m_numberPhysTriggers
 number of physics triggers More...
 
unsigned int m_numberTechnicalTriggers
 number of technical triggers More...
 
const edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsAlgoTrigRcdm_pfAlgoToken
 
const edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsTechTrigRcdm_pfTechToken
 
const unsigned int m_physicsDaqPartition
 index of physics DAQ partition More...
 
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
 
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
 
const int m_printOutput
 print output More...
 
const int m_printVerbosity
 print verbosity More...
 
const edm::ESGetToken< L1GtStableParameters, L1GtStableParametersRcdm_stableParToken
 
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskAlgoTrigRcdm_tmAlgoToken
 
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskTechTrigRcdm_tmTechToken
 
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskVetoAlgoTrigRcdm_tmVetoAlgoToken
 
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskVetoTechTrigRcdm_tmVetoTechToken
 
int m_totalEvents
 counters More...
 
std::vector< unsigned int > m_triggerMaskAlgoTrig
 
std::vector< unsigned int > m_triggerMaskTechTrig
 
std::vector< unsigned int > m_triggerMaskVetoAlgoTrig
 
std::vector< unsigned int > m_triggerMaskVetoTechTrig
 
const bool m_useL1GlobalTriggerRecord
 boolean flag to select the input record More...
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- 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)
 

Detailed Description

Description: L1 Trigger report.

Implementation: <TODO: enter implementation details>

Author
: Vasile Mihai Ghete - HEPHY Vienna

Definition at line 52 of file L1GtTrigReport.h.

Member Typedef Documentation

◆ CItEntry

typedef std::list<L1GtTrigReportEntry*>::const_iterator L1GtTrigReport::CItEntry
private

Definition at line 161 of file L1GtTrigReport.h.

◆ ItEntry

typedef std::list<L1GtTrigReportEntry*>::iterator L1GtTrigReport::ItEntry
private

Definition at line 162 of file L1GtTrigReport.h.

Constructor & Destructor Documentation

◆ L1GtTrigReport()

L1GtTrigReport::L1GtTrigReport ( const edm::ParameterSet pSet)
explicit

constructor

Definition at line 64 of file L1GtTrigReport.cc.

References edm::InputTag::label(), LogDebug, m_l1GtRecordInputTag, m_printOutput, m_printVerbosity, and m_useL1GlobalTriggerRecord.

65  :
66 
67  // initialize cached IDs
68 
69  //
71 
76 
77  //
78  m_l1GtPfAlgoCacheID(0ULL),
79  m_l1GtPfTechCacheID(0ULL),
80 
81  m_l1GtTmAlgoCacheID(0ULL),
82  m_l1GtTmTechCacheID(0ULL),
83 
86 
87  //
88  m_l1GtMenuCacheID(0ULL),
89 
90  // boolean flag to select the input record
91  // if true, it will use L1GlobalTriggerRecord
92  m_useL1GlobalTriggerRecord(pSet.getParameter<bool>("UseL1GlobalTriggerRecord")),
93 
95  m_l1GtRecordInputTag(pSet.getParameter<edm::InputTag>("L1GtRecordInputTag")),
99  ? consumes<L1GlobalTriggerReadoutRecord>(m_l1GtRecordInputTag)
101 
110 
111  // print verbosity
112  m_printVerbosity(pSet.getUntrackedParameter<int>("PrintVerbosity", 2)),
113 
114  // print output
115  m_printOutput(pSet.getUntrackedParameter<int>("PrintOutput", 3)),
116 
117  // initialize global counters
118 
119  // number of events processed
120  m_totalEvents(0),
121 
122  //
123  m_entryList(),
125 
126  // set the index of physics DAQ partition TODO input parameter?
128 
129 {
130  LogDebug("L1GtTrigReport") << "\n Use L1GlobalTriggerRecord: " << m_useL1GlobalTriggerRecord
131  << "\n (if false: L1GtTrigReport uses L1GlobalTriggerReadoutRecord.)"
132  << "\n Input tag for L1 GT record: " << m_l1GtRecordInputTag.label() << " \n"
133  << "\n Print verbosity level: " << m_printVerbosity << " \n"
134  << "\n Print output: " << m_printOutput << " \n"
135  << std::endl;
136 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
std::list< L1GtTrigReportEntry * > m_entryListTechTrig
list of individual entries in the report for technical triggers
const edm::InputTag m_l1GtRecordInputTag
input tag for GT record (L1 GT DAQ record or L1 GT "lite" record):
const edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsAlgoTrigRcd > m_pfAlgoToken
unsigned int m_numberDaqPartitions
number of DAQ partitions
unsigned long long m_l1GtStableParCacheID
const unsigned int m_physicsDaqPartition
index of physics DAQ partition
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskAlgoTrigRcd > m_tmAlgoToken
unsigned long long m_l1GtPfTechCacheID
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskVetoAlgoTrigRcd > m_tmVetoAlgoToken
unsigned int m_numberDaqPartitionsMax
std::string const & label() const
Definition: InputTag.h:36
T getUntrackedParameter(std::string const &, T const &) const
std::list< L1GtTrigReportEntry * > m_entryList
list of individual entries in the report for physics algorithms
const int m_printVerbosity
print verbosity
const int m_printOutput
print output
const edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsTechTrigRcd > m_pfTechToken
const edm::ESGetToken< L1GtStableParameters, L1GtStableParametersRcd > m_stableParToken
unsigned long long m_l1GtPfAlgoCacheID
const bool m_useL1GlobalTriggerRecord
boolean flag to select the input record
unsigned long long m_l1GtTmAlgoCacheID
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskVetoTechTrigRcd > m_tmVetoTechToken
unsigned int m_numberTechnicalTriggers
number of technical triggers
unsigned long long m_l1GtTmVetoTechCacheID
unsigned long long m_l1GtMenuCacheID
unsigned long long m_l1GtTmTechCacheID
int m_totalEvents
counters
const edm::EDGetTokenT< L1GlobalTriggerRecord > m_l1GtRecordInputToken1
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcd > m_menuToken
unsigned int m_numberPhysTriggers
number of physics triggers
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskTechTrigRcd > m_tmTechToken
const edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtRecordInputToken2
unsigned long long m_l1GtTmVetoAlgoCacheID
#define LogDebug(id)

◆ ~L1GtTrigReport()

L1GtTrigReport::~L1GtTrigReport ( )
override

destructor

Definition at line 139 of file L1GtTrigReport.cc.

References m_entryList, and m_entryListTechTrig.

139  {
140  for (ItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
141  if (*itEntry != nullptr) {
142  delete *itEntry;
143  *itEntry = nullptr;
144  }
145  }
146 
147  m_entryList.clear();
148 
149  for (ItEntry itEntry = m_entryListTechTrig.begin(); itEntry != m_entryListTechTrig.end(); itEntry++) {
150  if (*itEntry != nullptr) {
151  delete *itEntry;
152  *itEntry = nullptr;
153  }
154  }
155 
156  m_entryListTechTrig.clear();
157 }
std::list< L1GtTrigReportEntry * > m_entryListTechTrig
list of individual entries in the report for technical triggers
std::list< L1GtTrigReportEntry * > m_entryList
list of individual entries in the report for physics algorithms
std::list< L1GtTrigReportEntry * >::iterator ItEntry

Member Function Documentation

◆ analyze()

void L1GtTrigReport::analyze ( const edm::Event iEvent,
const edm::EventSetup evSetup 
)
overrideprivatevirtual

analyze each event

Implements edm::one::EDAnalyzerBase.

Definition at line 167 of file L1GtTrigReport.cc.

References L1GtTrigReportEntry::addErrorEntry(), L1GtTrigReportEntry::addValidEntry(), L1GlobalTriggerRecord::decision(), L1GlobalTriggerRecord::decisionWord(), L1GlobalTriggerReadoutRecord::decisionWord(), L1GlobalTriggerRecord::decisionWordBeforeMask(), L1GlobalTriggerReadoutRecord::finalOR(), edm::EventSetup::get(), edm::EventSetup::getData(), L1GtTriggerMenu::gtAlgorithmMap(), L1GlobalTriggerReadoutRecord::gtFdlVector(), L1GlobalTriggerReadoutRecord::gtFdlWord(), L1GtStableParameters::gtNumberPhysTriggers(), L1GtStableParameters::gtNumberTechnicalTriggers(), L1GlobalTriggerRecord::gtPrescaleFactorIndexAlgo(), L1GlobalTriggerRecord::gtPrescaleFactorIndexTech(), L1GtPrescaleFactors::gtPrescaleFactors(), L1GtTriggerMenu::gtTechnicalTriggerMap(), L1GtTriggerMask::gtTriggerMask(), L1GtTriggerMenu::gtTriggerMenuName(), iEvent, edm::HandleBase::isValid(), edm::InputTag::label(), LogDebug, m_entryList, m_entryListTechTrig, m_globalNrAccepts, m_globalNrErrors, m_l1GtMenu, m_l1GtMenuCacheID, m_l1GtPfAlgo, m_l1GtPfAlgoCacheID, m_l1GtPfTech, m_l1GtPfTechCacheID, m_l1GtRecordInputTag, m_l1GtRecordInputToken1, m_l1GtRecordInputToken2, m_l1GtStablePar, m_l1GtStableParCacheID, m_l1GtTmAlgo, m_l1GtTmAlgoCacheID, m_l1GtTmTech, m_l1GtTmTechCacheID, m_l1GtTmVetoAlgo, m_l1GtTmVetoAlgoCacheID, m_l1GtTmVetoTech, m_l1GtTmVetoTechCacheID, m_menuToken, m_numberDaqPartitions, m_numberDaqPartitionsMax, m_numberPhysTriggers, m_numberTechnicalTriggers, m_pfAlgoToken, m_pfTechToken, m_physicsDaqPartition, m_prescaleFactorsAlgoTrig, m_prescaleFactorsTechTrig, m_stableParToken, m_tmAlgoToken, m_tmTechToken, m_tmVetoAlgoToken, m_tmVetoTechToken, m_totalEvents, m_triggerMaskAlgoTrig, m_triggerMaskTechTrig, m_triggerMaskVetoAlgoTrig, m_triggerMaskVetoTechTrig, m_useL1GlobalTriggerRecord, Skims_PDWG_cff::prescaleFactor, AlCaHLTBitMon_QueryRunRegistry::string, L1GlobalTriggerRecord::technicalTriggerWord(), L1GlobalTriggerReadoutRecord::technicalTriggerWord(), L1GlobalTriggerRecord::technicalTriggerWordBeforeMask(), and to_string().

167  {
168  // increase the number of processed events
169  m_totalEvents++;
170 
171  // get / update the stable parameters from the EventSetup
172  // local cache & check on cacheIdentifier
173 
174  unsigned long long l1GtStableParCacheID = evSetup.get<L1GtStableParametersRcd>().cacheIdentifier();
175 
176  if (m_l1GtStableParCacheID != l1GtStableParCacheID) {
178 
179  // number of physics triggers
181 
182  // number of technical triggers
184 
185  // number of DAQ partitions
186  m_numberDaqPartitions = 8; // FIXME add it to stable parameters
187 
189  int numberDaqPartitionsOld = m_numberDaqPartitionsMax;
191 
194 
195  for (unsigned int iDaq = numberDaqPartitionsOld; iDaq < m_numberDaqPartitionsMax; ++iDaq) {
196  m_globalNrErrors.push_back(0);
197  m_globalNrAccepts.push_back(0);
198  }
199  }
200 
201  //
202  m_l1GtStableParCacheID = l1GtStableParCacheID;
203  }
204 
205  // get / update the prescale factors from the EventSetup
206  // local cache & check on cacheIdentifier
207 
208  unsigned long long l1GtPfAlgoCacheID = evSetup.get<L1GtPrescaleFactorsAlgoTrigRcd>().cacheIdentifier();
209 
210  if (m_l1GtPfAlgoCacheID != l1GtPfAlgoCacheID) {
211  m_l1GtPfAlgo = &evSetup.getData(m_pfAlgoToken);
212 
214 
215  m_l1GtPfAlgoCacheID = l1GtPfAlgoCacheID;
216  }
217 
218  unsigned long long l1GtPfTechCacheID = evSetup.get<L1GtPrescaleFactorsTechTrigRcd>().cacheIdentifier();
219 
220  if (m_l1GtPfTechCacheID != l1GtPfTechCacheID) {
221  m_l1GtPfTech = &evSetup.getData(m_pfTechToken);
222 
224 
225  m_l1GtPfTechCacheID = l1GtPfTechCacheID;
226  }
227 
228  // get / update the trigger mask from the EventSetup
229  // local cache & check on cacheIdentifier
230 
231  unsigned long long l1GtTmAlgoCacheID = evSetup.get<L1GtTriggerMaskAlgoTrigRcd>().cacheIdentifier();
232 
233  if (m_l1GtTmAlgoCacheID != l1GtTmAlgoCacheID) {
234  m_l1GtTmAlgo = &evSetup.getData(m_tmAlgoToken);
235 
237 
238  m_l1GtTmAlgoCacheID = l1GtTmAlgoCacheID;
239  }
240 
241  unsigned long long l1GtTmTechCacheID = evSetup.get<L1GtTriggerMaskTechTrigRcd>().cacheIdentifier();
242 
243  if (m_l1GtTmTechCacheID != l1GtTmTechCacheID) {
244  m_l1GtTmTech = &evSetup.getData(m_tmTechToken);
245 
247 
248  m_l1GtTmTechCacheID = l1GtTmTechCacheID;
249  }
250 
251  unsigned long long l1GtTmVetoAlgoCacheID = evSetup.get<L1GtTriggerMaskVetoAlgoTrigRcd>().cacheIdentifier();
252 
253  if (m_l1GtTmVetoAlgoCacheID != l1GtTmVetoAlgoCacheID) {
255 
257 
258  m_l1GtTmVetoAlgoCacheID = l1GtTmVetoAlgoCacheID;
259  }
260 
261  unsigned long long l1GtTmVetoTechCacheID = evSetup.get<L1GtTriggerMaskVetoTechTrigRcd>().cacheIdentifier();
262 
263  if (m_l1GtTmVetoTechCacheID != l1GtTmVetoTechCacheID) {
265 
267 
268  m_l1GtTmVetoTechCacheID = l1GtTmVetoTechCacheID;
269  }
270 
271  // get / update the trigger menu from the EventSetup
272  // local cache & check on cacheIdentifier
273 
274  unsigned long long l1GtMenuCacheID = evSetup.get<L1GtTriggerMenuRcd>().cacheIdentifier();
275 
276  if (m_l1GtMenuCacheID != l1GtMenuCacheID) {
277  m_l1GtMenu = &evSetup.getData(m_menuToken);
278 
279  m_l1GtMenuCacheID = l1GtMenuCacheID;
280 
281  LogDebug("L1GtTrigReport") << "\n Changing L1 menu to : \n"
282  << m_l1GtMenu->gtTriggerMenuName() << "\n\n"
283  << std::endl;
284  }
285 
286  const AlgorithmMap& algorithmMap = m_l1GtMenu->gtAlgorithmMap();
287  const AlgorithmMap& technicalTriggerMap = m_l1GtMenu->gtTechnicalTriggerMap();
288 
289  const std::string& menuName = m_l1GtMenu->gtTriggerMenuName();
290 
291  // ... end EventSetup
292 
293  // get L1GlobalTriggerReadoutRecord or L1GlobalTriggerRecord
294  // in L1GlobalTriggerRecord, only the physics partition is available
297 
299  iEvent.getByToken(m_l1GtRecordInputToken1, gtRecord);
300  } else {
301  iEvent.getByToken(m_l1GtRecordInputToken2, gtReadoutRecord);
302  }
303 
304  bool validRecord = false;
305 
306  unsigned int pfIndexAlgo = 0; // get them later from the record
307  unsigned int pfIndexTech = 0;
308 
309  DecisionWord gtDecisionWordBeforeMask;
310  DecisionWord gtDecisionWordAfterMask;
311 
312  TechnicalTriggerWord technicalTriggerWordBeforeMask;
313  TechnicalTriggerWord technicalTriggerWordAfterMask;
314 
316  if (gtRecord.isValid()) {
317  // get Global Trigger decision and the decision word
318  bool gtDecision = gtRecord->decision();
319 
320  gtDecisionWordBeforeMask = gtRecord->decisionWordBeforeMask();
321  gtDecisionWordAfterMask = gtRecord->decisionWord();
322 
323  technicalTriggerWordBeforeMask = gtRecord->technicalTriggerWordBeforeMask();
324  technicalTriggerWordAfterMask = gtRecord->technicalTriggerWord();
325 
326  if (gtDecision) {
328  }
329 
330  pfIndexAlgo = gtRecord->gtPrescaleFactorIndexAlgo();
331  pfIndexTech = gtRecord->gtPrescaleFactorIndexTech();
332 
333  validRecord = true;
334 
335  } else {
337 
338  edm::LogWarning("L1GtTrigReport") << "\n L1GlobalTriggerRecord with input tag " << m_l1GtRecordInputTag.label()
339  << " not found."
340  << "\n Event classified as Error\n\n"
341  << std::endl;
342  }
343 
344  } else {
345  if (gtReadoutRecord.isValid()) {
346  // check if the readout record has size greater than zero, then proceeds
347  const std::vector<L1GtFdlWord>& fdlVec = gtReadoutRecord->gtFdlVector();
348  size_t fdlVecSize = fdlVec.size();
349 
350  if (fdlVecSize > 0) {
351  LogDebug("L1GtTrigReport") << "\n L1GlobalTriggerReadoutRecord with input tag " << m_l1GtRecordInputTag.label()
352  << " has gtFdlVector of size " << fdlVecSize << std::endl;
353 
354  // get Global Trigger finalOR and the decision word
355  uint16_t gtFinalOR = gtReadoutRecord->finalOR();
356 
357  gtDecisionWordBeforeMask = gtReadoutRecord->decisionWord();
358  technicalTriggerWordBeforeMask = gtReadoutRecord->technicalTriggerWord();
359 
360  for (unsigned int iDaqPartition = 0; iDaqPartition < m_numberDaqPartitions; ++iDaqPartition) {
361  bool gtDecision = static_cast<bool>(gtFinalOR & (1 << iDaqPartition));
362  if (gtDecision) {
363  m_globalNrAccepts[iDaqPartition]++;
364  }
365  }
366 
367  pfIndexAlgo = static_cast<unsigned int>((gtReadoutRecord->gtFdlWord()).gtPrescaleFactorIndexAlgo());
368  pfIndexTech = static_cast<unsigned int>((gtReadoutRecord->gtFdlWord()).gtPrescaleFactorIndexTech());
369 
370  validRecord = true;
371 
372  } else {
373  for (unsigned int iDaqPartition = 0; iDaqPartition < m_numberDaqPartitions; ++iDaqPartition) {
374  m_globalNrErrors[iDaqPartition]++;
375  }
376 
377  edm::LogWarning("L1GtTrigReport")
378  << "\n L1GlobalTriggerReadoutRecord with input tag " << m_l1GtRecordInputTag.label()
379  << " has gtFdlVector of size " << fdlVecSize << "\n Invalid L1GlobalTriggerReadoutRecord!"
380  << "\n Event classified as Error\n\n"
381  << std::endl;
382 
383  validRecord = false;
384  }
385 
386  } else {
387  for (unsigned int iDaqPartition = 0; iDaqPartition < m_numberDaqPartitions; ++iDaqPartition) {
388  m_globalNrErrors[iDaqPartition]++;
389  }
390 
391  edm::LogWarning("L1GtTrigReport") << "\n L1GlobalTriggerReadoutRecord with input tag "
392  << m_l1GtRecordInputTag.label() << " not found."
393  << "\n Event classified as Error\n\n"
394  << std::endl;
395  }
396  }
397 
398  // get the prescale factor set used in the actual luminosity segment
399  const std::vector<int>& prescaleFactorsAlgoTrig = (*m_prescaleFactorsAlgoTrig).at(pfIndexAlgo);
400 
401  const std::vector<int>& prescaleFactorsTechTrig = (*m_prescaleFactorsTechTrig).at(pfIndexTech);
402 
403  if (validRecord) {
404  // loop over algorithms and increase the corresponding counters
405  for (CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
406  std::string algName = itAlgo->first;
407  int algBitNumber = (itAlgo->second).algoBitNumber();
408 
409  // the result before applying the trigger masks is available
410  // in both L1GlobalTriggerReadoutRecord or L1GlobalTriggerRecord
411  bool algResultBeforeMask = gtDecisionWordBeforeMask[algBitNumber];
412 
413  int prescaleFactor = prescaleFactorsAlgoTrig.at(algBitNumber);
414 
415  for (unsigned int iDaqPartition = 0; iDaqPartition < m_numberDaqPartitions; ++iDaqPartition) {
416  unsigned int triggerMask = (m_triggerMaskAlgoTrig.at(algBitNumber)) & (1 << iDaqPartition);
417 
418  bool algResultAfterMask = false;
419 
421  if (iDaqPartition == m_physicsDaqPartition) {
422  // result available already for physics DAQ partition
423  // in lite record
424  algResultAfterMask = gtDecisionWordAfterMask[algBitNumber];
425  } else {
426  // apply the masks for other partitions
427  algResultAfterMask = algResultBeforeMask;
428 
429  if (triggerMask) {
430  algResultAfterMask = false;
431  }
432  }
433  } else {
434  // apply the masks for L1GlobalTriggerReadoutRecord
435  algResultAfterMask = algResultBeforeMask;
436 
437  if (triggerMask) {
438  algResultAfterMask = false;
439  }
440  }
441 
442  L1GtTrigReportEntry* entryRep =
443  new L1GtTrigReportEntry(menuName, algName, prescaleFactor, triggerMask, iDaqPartition);
444 
445  int iCount = 0;
446 
447  for (CItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
448  if ((*entryRep) == *(*itEntry)) {
449  iCount++;
450  // increase the corresponding counter in the list entry
451  (*itEntry)->addValidEntry(algResultAfterMask, algResultBeforeMask);
452  }
453  }
454 
455  if (iCount == 0) {
456  // if entry not in the list, increase the corresponding counter
457  // and push the entry in the list
458  entryRep->addValidEntry(algResultAfterMask, algResultBeforeMask);
459  m_entryList.push_back(entryRep);
460  } else {
461  delete entryRep;
462  }
463  }
464  }
465 
466  // loop over technical triggers and increase the corresponding counters
467  for (CItAlgo itAlgo = technicalTriggerMap.begin(); itAlgo != technicalTriggerMap.end(); itAlgo++) {
468  //for (unsigned int iTechTrig = 0; iTechTrig < m_numberTechnicalTriggers; ++iTechTrig) {
469 
470  std::string ttName = itAlgo->first;
471  int ttBitNumber = (itAlgo->second).algoBitNumber();
472  // std::string ttName = std::to_string(iTechTrig);
473  // int ttBitNumber = iTechTrig;
474 
475  // the result before applying the trigger masks is available
476  // in both L1GlobalTriggerReadoutRecord or L1GlobalTriggerRecord
477  bool ttResultBeforeMask = technicalTriggerWordBeforeMask[ttBitNumber];
478 
479  int prescaleFactor = prescaleFactorsTechTrig.at(ttBitNumber);
480 
481  for (unsigned int iDaqPartition = 0; iDaqPartition < m_numberDaqPartitions; ++iDaqPartition) {
482  unsigned int triggerMask = (m_triggerMaskTechTrig.at(ttBitNumber)) & (1 << iDaqPartition);
483 
484  bool ttResultAfterMask = false;
485 
487  if (iDaqPartition == m_physicsDaqPartition) {
488  // result available already for physics DAQ partition
489  // in lite record
490  ttResultAfterMask = technicalTriggerWordAfterMask[ttBitNumber];
491  } else {
492  // apply the masks for other partitions
493  ttResultAfterMask = ttResultBeforeMask;
494 
495  if (triggerMask) {
496  ttResultAfterMask = false;
497  }
498  }
499  } else {
500  // apply the masks for L1GlobalTriggerReadoutRecord
501  ttResultAfterMask = ttResultBeforeMask;
502 
503  if (triggerMask) {
504  ttResultAfterMask = false;
505  }
506  }
507 
508  L1GtTrigReportEntry* entryRep =
509  new L1GtTrigReportEntry(menuName, ttName, prescaleFactor, triggerMask, iDaqPartition);
510 
511  int iCount = 0;
512 
513  for (CItEntry itEntry = m_entryListTechTrig.begin(); itEntry != m_entryListTechTrig.end(); itEntry++) {
514  if ((*entryRep) == *(*itEntry)) {
515  iCount++;
516  // increase the corresponding counter in the list entry
517  (*itEntry)->addValidEntry(ttResultAfterMask, ttResultBeforeMask);
518  }
519  }
520 
521  if (iCount == 0) {
522  // if entry not in the list, increase the corresponding counter
523  // and push the entry in the list
524  entryRep->addValidEntry(ttResultAfterMask, ttResultBeforeMask);
525  m_entryListTechTrig.push_back(entryRep);
526  } else {
527  delete entryRep;
528  }
529  }
530  }
531 
532  } else {
533  // loop over algorithms and increase the error counters
534  for (CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
535  std::string algName = itAlgo->first;
536  int algBitNumber = (itAlgo->second).algoBitNumber();
537 
538  int prescaleFactor = prescaleFactorsAlgoTrig.at(algBitNumber);
539 
540  for (unsigned int iDaqPartition = 0; iDaqPartition < m_numberDaqPartitions; ++iDaqPartition) {
541  unsigned int triggerMask = (m_triggerMaskAlgoTrig.at(algBitNumber)) & (1 << iDaqPartition);
542 
543  L1GtTrigReportEntry* entryRep =
544  new L1GtTrigReportEntry(menuName, algName, prescaleFactor, triggerMask, iDaqPartition);
545 
546  int iCount = 0;
547 
548  for (CItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
549  if ((*entryRep) == *(*itEntry)) {
550  iCount++;
551  // increase the corresponding counter in the list entry
552  (*itEntry)->addErrorEntry();
553  }
554  }
555 
556  if (iCount == 0) {
557  // if entry not in the list, increase the corresponding counter
558  // and push the entry in the list
559  entryRep->addErrorEntry();
560  m_entryList.push_back(entryRep);
561  } else {
562  delete entryRep;
563  }
564  }
565  }
566 
567  // loop over technical triggers and increase the error counters
568  // FIXME move to names when technical triggers available in menu
569  //for (CItAlgo itAlgo = technicalTriggerMap.begin(); itAlgo != technicalTriggerMap.end(); itAlgo++) {
570  for (unsigned int iTechTrig = 0; iTechTrig < m_numberTechnicalTriggers; ++iTechTrig) {
571  //std::string ttName = itAlgo->first;
572  //int ttBitNumber = ( itAlgo->second ).algoBitNumber();
573  std::string ttName = std::to_string(iTechTrig);
574  int ttBitNumber = iTechTrig;
575 
576  int prescaleFactor = prescaleFactorsTechTrig.at(ttBitNumber);
577 
578  for (unsigned int iDaqPartition = 0; iDaqPartition < m_numberDaqPartitions; ++iDaqPartition) {
579  unsigned int triggerMask = (m_triggerMaskTechTrig.at(ttBitNumber)) & (1 << iDaqPartition);
580 
581  L1GtTrigReportEntry* entryRep =
582  new L1GtTrigReportEntry(menuName, ttName, prescaleFactor, triggerMask, iDaqPartition);
583 
584  int iCount = 0;
585 
586  for (CItEntry itEntry = m_entryListTechTrig.begin(); itEntry != m_entryListTechTrig.end(); itEntry++) {
587  if ((*entryRep) == *(*itEntry)) {
588  iCount++;
589  // increase the corresponding counter in the list entry
590  (*itEntry)->addErrorEntry();
591  }
592  }
593 
594  if (iCount == 0) {
595  // if entry not in the list, increase the corresponding counter
596  // and push the entry in the list
597  entryRep->addErrorEntry();
598  m_entryListTechTrig.push_back(entryRep);
599  } else {
600  delete entryRep;
601  }
602  }
603  }
604  }
605 }
const AlgorithmMap & gtTechnicalTriggerMap() const
get / set the technical trigger map
const std::vector< unsigned int > & gtTriggerMask() const
get the trigger mask
std::vector< int > m_globalNrErrors
global number of events with error (EDProduct[s] not found)
std::list< L1GtTrigReportEntry * >::const_iterator CItEntry
std::list< L1GtTrigReportEntry * > m_entryListTechTrig
list of individual entries in the report for technical triggers
const L1GtTriggerMenu * m_l1GtMenu
const edm::InputTag m_l1GtRecordInputTag
input tag for GT record (L1 GT DAQ record or L1 GT "lite" record):
std::vector< unsigned int > m_triggerMaskTechTrig
const edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsAlgoTrigRcd > m_pfAlgoToken
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
unsigned int m_numberDaqPartitions
number of DAQ partitions
unsigned long long m_l1GtStableParCacheID
const L1GtStableParameters * m_l1GtStablePar
cached stuff
std::vector< unsigned int > m_triggerMaskAlgoTrig
const unsigned int m_physicsDaqPartition
index of physics DAQ partition
std::map< std::string, L1GtAlgorithm > AlgorithmMap
map containing the algorithms
void addValidEntry(const bool algResultAfterMask, const bool algResultBeforeMask)
increase # of events accepted/rejected for this entry
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskAlgoTrigRcd > m_tmAlgoToken
unsigned long long m_l1GtPfTechCacheID
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskVetoAlgoTrigRcd > m_tmVetoAlgoToken
unsigned int m_numberDaqPartitionsMax
const DecisionWord & decisionWord(int bxInEventValue) const
const L1GtTriggerMask * m_l1GtTmVetoTech
const L1GtPrescaleFactors * m_l1GtPfTech
std::string const & label() const
Definition: InputTag.h:36
const L1GtTriggerMask * m_l1GtTmVetoAlgo
const std::vector< std::vector< int > > & gtPrescaleFactors() const
get the prescale factors by reference
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
static std::string to_string(const XMLCh *ch)
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
const std::string & gtTriggerMenuName() const
std::list< L1GtTrigReportEntry * > m_entryList
list of individual entries in the report for physics algorithms
const edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsTechTrigRcd > m_pfTechToken
const edm::ESGetToken< L1GtStableParameters, L1GtStableParametersRcd > m_stableParToken
int iEvent
Definition: GenABIO.cc:224
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
unsigned long long m_l1GtPfAlgoCacheID
std::vector< bool > DecisionWord
typedefs
const unsigned int gtPrescaleFactorIndexTech() const
get/set index of the set of prescale factors
const L1GtTriggerMask * m_l1GtTmAlgo
trigger masks & veto masks
const L1GtPrescaleFactors * m_l1GtPfAlgo
prescale factors
const bool m_useL1GlobalTriggerRecord
boolean flag to select the input record
unsigned long long m_l1GtTmAlgoCacheID
const cms_uint16_t finalOR(int bxInEventValue) const
T get() const
Definition: EventSetup.h:79
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
std::vector< unsigned int > m_triggerMaskVetoTechTrig
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskVetoTechTrigRcd > m_tmVetoTechToken
const TechnicalTriggerWord technicalTriggerWord() const
unsigned int m_numberTechnicalTriggers
number of technical triggers
unsigned long long m_l1GtTmVetoTechCacheID
void addErrorEntry()
increase # of events with error
const L1GtTriggerMask * m_l1GtTmTech
std::vector< int > m_globalNrAccepts
global number of events accepted by any of the L1 algorithm in any menu
unsigned long long m_l1GtMenuCacheID
unsigned long long m_l1GtTmTechCacheID
std::vector< unsigned int > m_triggerMaskVetoAlgoTrig
int m_totalEvents
counters
const bool decision() const
const edm::EDGetTokenT< L1GlobalTriggerRecord > m_l1GtRecordInputToken1
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcd > m_menuToken
bool isValid() const
Definition: HandleBase.h:70
unsigned int m_numberPhysTriggers
number of physics triggers
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
const DecisionWord decisionWordBeforeMask() const
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskTechTrigRcd > m_tmTechToken
unsigned int gtNumberTechnicalTriggers() const
get / set the number of technical triggers
const unsigned int gtPrescaleFactorIndexAlgo() const
Log< level::Warning, false > LogWarning
const AlgorithmMap & gtAlgorithmMap() const
get / set the algorithm map (by name)
const TechnicalTriggerWord technicalTriggerWordBeforeMask() const
const DecisionWord decisionWord() const
const edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtRecordInputToken2
unsigned int gtNumberPhysTriggers() const
get / set the number of physics trigger algorithms
unsigned long long m_l1GtTmVetoAlgoCacheID
#define LogDebug(id)

◆ beginJob()

void L1GtTrigReport::beginJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 162 of file L1GtTrigReport.cc.

162  {
163  // empty
164 }

◆ endJob()

void L1GtTrigReport::endJob ( void  )
overrideprivatevirtual

end of job

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 608 of file L1GtTrigReport.cc.

References gather_cfg::cout, TauDecayModes::dec, alignBH_cfg::fixed, LogTrace, m_entryList, m_entryListTechTrig, m_globalNrAccepts, m_globalNrErrors, m_numberDaqPartitions, m_physicsDaqPartition, m_printOutput, m_printVerbosity, m_totalEvents, m_useL1GlobalTriggerRecord, and mathSSE::sqrt().

608  {
609  // define an output stream to print into
610  // it can then be directed to whatever log level is desired
611  std::ostringstream myCout;
612 
613  myCout << std::dec << std::endl;
614  myCout << "L1T-Report "
615  << "---------- Event Summary ----------\n";
616  myCout << "L1T-Report "
617  << "Total number of events processed: " << m_totalEvents << "\n";
618  myCout << "L1T-Report\n";
619 
620  myCout << "\n"
621  << " DAQ partition "
622  << " Total "
623  << " Passed[finalOR] "
624  << " Rejected "
625  << " Errors "
626  << "\n"
627  << std::endl;
628 
629  for (unsigned int iDaqPartition = 0; iDaqPartition < m_numberDaqPartitions; ++iDaqPartition) {
630  int rejectedEvents = m_totalEvents - m_globalNrErrors[iDaqPartition] - m_globalNrAccepts[iDaqPartition];
631 
632  if (m_useL1GlobalTriggerRecord && (iDaqPartition != m_physicsDaqPartition)) {
633  continue;
634  } else {
635  myCout << std::right << std::setw(16) << iDaqPartition << " " << std::right << std::setw(16) << m_totalEvents
636  << " " << std::right << std::setw(16) << m_globalNrAccepts[iDaqPartition] << " " << std::right
637  << std::setw(16) << rejectedEvents << " " << std::right << std::setw(16) << m_globalNrErrors[iDaqPartition]
638  << std::endl;
639  }
640  }
641 
642  // get the list of menus for the sample analyzed
643  //
644  std::set<std::string> menuList;
645  typedef std::set<std::string>::const_iterator CItL1Menu;
646 
647  for (CItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
648  menuList.insert((*itEntry)->gtTriggerMenuName());
649  }
650 
651  myCout << "\nThe following L1 menus were used for this sample: " << std::endl;
652  for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
653  myCout << " " << (*itMenu) << std::endl;
654  }
655  myCout << "\n" << std::endl;
656 
657  switch (m_printVerbosity) {
658  case 0: {
659  myCout << "\nL1T-Report "
660  << "---------- L1 Trigger Global Summary - DAQ Partition " << m_physicsDaqPartition << "----------\n\n";
661 
662  myCout << "\n\n Number of events written after applying L1 prescale factors"
663  << " and trigger masks\n"
664  << " if not explicitly mentioned.\n\n";
665 
666  for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
667  myCout << "\nReport for L1 menu: " << (*itMenu) << "\n" << std::endl;
668 
669  myCout << std::right << std::setw(45) << "Algorithm Key"
670  << " " << std::right << std::setw(10) << "Passed"
671  << " " << std::right << std::setw(10) << "Rejected"
672  << " " << std::right << std::setw(10) << "Error"
673  << "\n";
674 
675  for (CItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
676  if (((*itEntry)->gtDaqPartition() == m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
677  myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() << " " << std::right << std::setw(10)
678  << (*itEntry)->gtNrEventsAccept() << " " << std::right << std::setw(10)
679  << (*itEntry)->gtNrEventsReject() << " " << std::right << std::setw(10)
680  << (*itEntry)->gtNrEventsError() << "\n";
681  }
682  }
683 
684  myCout << "\n\n"
685  << std::right << std::setw(45) << "Technical Trigger Key"
686  << " " << std::right << std::setw(10) << "Passed"
687  << " " << std::right << std::setw(10) << "Rejected"
688  << " " << std::right << std::setw(10) << "Error"
689  << "\n";
690 
691  for (CItEntry itEntry = m_entryListTechTrig.begin(); itEntry != m_entryListTechTrig.end(); itEntry++) {
692  if (((*itEntry)->gtDaqPartition() == m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
693  myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() << " " << std::right << std::setw(10)
694  << (*itEntry)->gtNrEventsAccept() << " " << std::right << std::setw(10)
695  << (*itEntry)->gtNrEventsReject() << " " << std::right << std::setw(10)
696  << (*itEntry)->gtNrEventsError() << "\n";
697  }
698  }
699  }
700 
701  }
702 
703  break;
704  case 1: {
705  myCout << "\nL1T-Report "
706  << "---------- L1 Trigger Global Summary - DAQ Partition " << m_physicsDaqPartition << "----------\n\n";
707 
708  myCout << "\n\n Number of events written after applying L1 prescale factors"
709  << " and trigger masks\n"
710  << " if not explicitly mentioned.\n\n";
711 
712  for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
713  myCout << "\nReport for L1 menu: " << (*itMenu) << "\n" << std::endl;
714  myCout << std::right << std::setw(45) << "Algorithm Key"
715  << " " << std::right << std::setw(10) << "Prescale"
716  << " " << std::right << std::setw(5) << "Mask"
717  << " " << std::right << std::setw(10) << "Passed"
718  << " " << std::right << std::setw(10) << "Rejected"
719  << " " << std::right << std::setw(10) << "Error" << std::setw(2) << " "
720  << "\n";
721 
722  for (CItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
723  if (((*itEntry)->gtDaqPartition() == m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
724  myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() << " " << std::right << std::setw(10)
725  << (*itEntry)->gtPrescaleFactor() << " " << std::right << std::setw(2) //<< std::setfill('0')
726  << std::hex << (*itEntry)->gtTriggerMask() //<< std::setfill(' ')
727  << std::dec << " " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() << " "
728  << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() << " " << std::right
729  << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) << " "
730  << "\n";
731  }
732  }
733 
734  myCout << "\n\n"
735  << std::right << std::setw(45) << "Technical Trigger Key"
736  << " " << std::right << std::setw(10) << "Prescale"
737  << " " << std::right << std::setw(5) << "Mask"
738  << " " << std::right << std::setw(10) << "Passed"
739  << " " << std::right << std::setw(10) << "Rejected"
740  << " " << std::right << std::setw(10) << "Error" << std::setw(2) << " "
741  << "\n";
742 
743  for (CItEntry itEntry = m_entryListTechTrig.begin(); itEntry != m_entryListTechTrig.end(); itEntry++) {
744  if (((*itEntry)->gtDaqPartition() == m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
745  myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() << " " << std::right << std::setw(10)
746  << (*itEntry)->gtPrescaleFactor() << " " << std::right << std::setw(2) //<< std::setfill('0')
747  << std::hex << (*itEntry)->gtTriggerMask() //<< std::setfill(' ')
748  << std::dec << " " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() << " "
749  << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() << " " << std::right
750  << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) << " "
751  << "\n";
752  }
753  }
754  }
755 
756  }
757 
758  break;
759  case 2: {
760  for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
761  myCout << "\nReport for L1 menu: " << (*itMenu) << "\n" << std::endl;
762 
763  myCout << std::right << std::setw(45) << "Algorithm Key"
764  << " " << std::right << std::setw(10) << "Passed"
765  << " " << std::right << std::setw(10) << "Rejected"
766  << " " << std::right << std::setw(10) << "Error"
767  << "\n";
768 
769  for (CItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
770  if (((*itEntry)->gtDaqPartition() == m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
771  int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
772  int nrEventsReject = (*itEntry)->gtNrEventsReject();
773  int nrEventsError = (*itEntry)->gtNrEventsError();
774 
775  myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) << " " << std::right << std::setw(10)
776  << nrEventsAccept << " " << std::right << std::setw(10) << nrEventsReject << " " << std::right
777  << std::setw(10) << nrEventsError << "\n";
778  }
779  }
780 
781  // efficiency and its statistical error
782 
783  myCout << "\n\n"
784  << std::right << std::setw(45) << "Algorithm Key"
785  << " " << std::right << std::setw(10) << "Efficiency "
786  << " " << std::right << std::setw(10) << "Stat error (%)"
787  << "\n";
788 
789  for (CItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
790  if (((*itEntry)->gtDaqPartition() == 0) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
791  int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
792  int nrEventsReject = (*itEntry)->gtNrEventsReject();
793  int nrEventsError = (*itEntry)->gtNrEventsError();
794 
795  int totalEvents = nrEventsAccept + nrEventsReject + nrEventsError;
796 
797  // efficiency and their statistical error
798  float eff = 0.;
799  float statErrEff = 0.;
800 
801  if (totalEvents != 0) {
802  eff = static_cast<float>(nrEventsAccept) / static_cast<float>(totalEvents);
803  statErrEff = sqrt(eff * (1.0 - eff) / static_cast<float>(totalEvents));
804  }
805 
806  myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) << " " << std::right << std::setw(10)
807  << std::fixed << std::setprecision(2) << 100. * eff << " +- " << std::right << std::setw(10)
808  << std::setprecision(2) << 100. * statErrEff << "\n";
809  }
810  }
811 
812  myCout << "\n\n"
813  << std::right << std::setw(45) << "Technical Trigger Key"
814  << " " << std::right << std::setw(10) << "Passed"
815  << " " << std::right << std::setw(10) << "Rejected"
816  << " " << std::right << std::setw(10) << "Error"
817  << "\n";
818 
819  for (CItEntry itEntry = m_entryListTechTrig.begin(); itEntry != m_entryListTechTrig.end(); itEntry++) {
820  if (((*itEntry)->gtDaqPartition() == m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
821  int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
822  int nrEventsReject = (*itEntry)->gtNrEventsReject();
823  int nrEventsError = (*itEntry)->gtNrEventsError();
824 
825  myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) << " " << std::right << std::setw(10)
826  << nrEventsAccept << " " << std::right << std::setw(10) << nrEventsReject << " " << std::right
827  << std::setw(10) << nrEventsError << "\n";
828  }
829  }
830 
831  // efficiency and its statistical error
832 
833  myCout << "\n\n"
834  << std::right << std::setw(45) << "Technical Trigger Key"
835  << " " << std::right << std::setw(10) << "Efficiency "
836  << " " << std::right << std::setw(10) << "Stat error (%)"
837  << "\n";
838 
839  for (CItEntry itEntry = m_entryListTechTrig.begin(); itEntry != m_entryListTechTrig.end(); itEntry++) {
840  if (((*itEntry)->gtDaqPartition() == 0) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
841  int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
842  int nrEventsReject = (*itEntry)->gtNrEventsReject();
843  int nrEventsError = (*itEntry)->gtNrEventsError();
844 
845  int totalEvents = nrEventsAccept + nrEventsReject + nrEventsError;
846 
847  // efficiency and their statistical error
848  float eff = 0.;
849  float statErrEff = 0.;
850 
851  if (totalEvents != 0) {
852  eff = static_cast<float>(nrEventsAccept) / static_cast<float>(totalEvents);
853  statErrEff = sqrt(eff * (1.0 - eff) / static_cast<float>(totalEvents));
854  }
855 
856  myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) << " " << std::right << std::setw(10)
857  << std::fixed << std::setprecision(2) << 100. * eff << " +- " << std::right << std::setw(10)
858  << std::setprecision(2) << 100. * statErrEff << "\n";
859  }
860  }
861  }
862 
863  } break;
864 
865  case 10: {
866  myCout << "\nL1T-Report "
867  << "---------- L1 Trigger Global Summary - DAQ Partition " << m_physicsDaqPartition << "----------\n\n";
868 
869  for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
870  myCout << "\nReport for L1 menu: " << (*itMenu) << "\n" << std::endl;
871  myCout << std::right << std::setw(45) << "Algorithm Key"
872  << " " << std::right << std::setw(10) << "Prescale"
873  << " " << std::right << std::setw(5) << "Mask"
874  << " " << std::right << std::setw(25) << "Before Mask"
875  << " " << std::right << std::setw(30) << "After Mask"
876  << " " << std::right << std::setw(22) << "Error"
877  << "\n"
878  << std::right << std::setw(64) << " " << std::setw(15) << "Passed" << std::right << std::setw(1) << " "
879  << std::setw(15) << "Rejected" << std::right << std::setw(1) << " " << std::setw(15) << "Passed"
880  << std::right << std::setw(1) << " " << std::setw(15) << "Rejected"
881  << "\n";
882 
883  for (CItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
884  if (((*itEntry)->gtDaqPartition() == m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
885  myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() << " " << std::right << std::setw(10)
886  << (*itEntry)->gtPrescaleFactor() << " " << std::right << std::setw(5) << " " << std::hex
887  << (*itEntry)->gtTriggerMask() << std::dec << " " << std::right << std::setw(15)
888  << (*itEntry)->gtNrEventsAcceptBeforeMask() << " " << std::right << std::setw(15)
889  << (*itEntry)->gtNrEventsRejectBeforeMask() << " " << std::right << std::setw(15)
890  << (*itEntry)->gtNrEventsAccept() << " " << std::right << std::setw(15)
891  << (*itEntry)->gtNrEventsReject() << " " << std::right << std::setw(15)
892  << (*itEntry)->gtNrEventsError() << "\n";
893  }
894  }
895 
896  myCout << "\n\n"
897  << std::right << std::setw(45) << "Technical Trigger Key"
898  << " " << std::right << std::setw(10) << "Prescale"
899  << " " << std::right << std::setw(5) << "Mask"
900  << " " << std::right << std::setw(25) << "Before Mask"
901  << " " << std::right << std::setw(30) << "After Mask"
902  << " " << std::right << std::setw(22) << "Error"
903  << "\n"
904  << std::right << std::setw(64) << " " << std::setw(15) << "Passed" << std::right << std::setw(1) << " "
905  << std::setw(15) << "Rejected" << std::right << std::setw(1) << " " << std::setw(15) << "Passed"
906  << std::right << std::setw(1) << " " << std::setw(15) << "Rejected"
907  << "\n";
908 
909  for (CItEntry itEntry = m_entryListTechTrig.begin(); itEntry != m_entryListTechTrig.end(); itEntry++) {
910  if (((*itEntry)->gtDaqPartition() == m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
911  myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() << " " << std::right << std::setw(10)
912  << (*itEntry)->gtPrescaleFactor() << " " << std::right << std::setw(5) << " " << std::hex
913  << (*itEntry)->gtTriggerMask() << std::dec << " " << std::right << std::setw(15)
914  << (*itEntry)->gtNrEventsAcceptBeforeMask() << " " << std::right << std::setw(15)
915  << (*itEntry)->gtNrEventsRejectBeforeMask() << " " << std::right << std::setw(15)
916  << (*itEntry)->gtNrEventsAccept() << " " << std::right << std::setw(15)
917  << (*itEntry)->gtNrEventsReject() << " " << std::right << std::setw(15)
918  << (*itEntry)->gtNrEventsError() << "\n";
919  }
920  }
921  }
922  }
923 
924  break;
925  case 100: {
926  for (unsigned int iDaqPartition = 0; iDaqPartition < m_numberDaqPartitions; ++iDaqPartition) {
927  myCout << "\nL1T-Report "
928  << "---------- L1 Trigger Global Summary - DAQ Partition " << iDaqPartition << " "
929  << "----------\n\n";
930 
931  myCout << std::right << std::setw(45) << "Algorithm Key"
932  << " " << std::right << std::setw(10) << "Passed"
933  << " " << std::right << std::setw(10) << "Rejected"
934  << " " << std::right << std::setw(10) << "Error" << std::setw(2) << " "
935  << "\n";
936 
937  for (CItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
938  if (((*itEntry)->gtDaqPartition() == 0)) {
939  myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() << " " << std::right << std::setw(10)
940  << (*itEntry)->gtNrEventsAccept() << " " << std::right << std::setw(10)
941  << (*itEntry)->gtNrEventsReject() << " " << std::right << std::setw(10)
942  << (*itEntry)->gtNrEventsError() << std::setw(2) << " "
943  << "\n";
944  }
945  }
946 
947  myCout << "\n\n"
948  << std::right << std::setw(45) << "Technical Trigger Key"
949  << " " << std::right << std::setw(10) << "Passed"
950  << " " << std::right << std::setw(10) << "Rejected"
951  << " " << std::right << std::setw(10) << "Error" << std::setw(2) << " "
952  << "\n";
953 
954  for (CItEntry itEntry = m_entryListTechTrig.begin(); itEntry != m_entryListTechTrig.end(); itEntry++) {
955  if ((*itEntry)->gtDaqPartition() == 0) {
956  myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() << " " << std::right << std::setw(10)
957  << (*itEntry)->gtNrEventsAccept() << " " << std::right << std::setw(10)
958  << (*itEntry)->gtNrEventsReject() << " " << std::right << std::setw(10)
959  << (*itEntry)->gtNrEventsError() << std::setw(2) << " " << std::right << std::setw(20)
960  << (*itEntry)->gtTriggerMenuName() << "\n";
961  }
962  }
963  }
964  }
965 
966  break;
967  case 101: {
968  for (unsigned int iDaqPartition = 0; iDaqPartition < m_numberDaqPartitions; ++iDaqPartition) {
969  myCout << "\nL1T-Report "
970  << "---------- L1 Trigger Global Summary - DAQ Partition " << iDaqPartition << " "
971  << "----------\n\n";
972 
973  myCout << std::right << std::setw(45) << "Algorithm Key"
974  << " " << std::right << std::setw(10) << "Prescale"
975  << " " << std::right << std::setw(5) << "Mask"
976  << " " << std::right << std::setw(10) << "Passed"
977  << " " << std::right << std::setw(10) << "Rejected"
978  << " " << std::right << std::setw(10) << "Error" << std::setw(2) << " "
979  << "\n";
980 
981  for (CItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
982  if ((*itEntry)->gtDaqPartition() == 0) {
983  myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() << " " << std::right << std::setw(10)
984  << (*itEntry)->gtPrescaleFactor() << " " << std::right << std::setw(2) //<< std::setfill('0')
985  << std::hex << (*itEntry)->gtTriggerMask() //<< std::setfill(' ')
986  << std::dec << " " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() << " "
987  << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() << " " << std::right
988  << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) << " "
989  << "\n";
990  }
991  }
992 
993  myCout << "\n\n"
994  << std::right << std::setw(45) << "Technical Trigger Key"
995  << " " << std::right << std::setw(10) << "Prescale"
996  << " " << std::right << std::setw(5) << "Mask"
997  << " " << std::right << std::setw(10) << "Passed"
998  << " " << std::right << std::setw(10) << "Rejected"
999  << " " << std::right << std::setw(10) << "Error" << std::setw(2) << " "
1000  << "\n";
1001 
1002  for (CItEntry itEntry = m_entryListTechTrig.begin(); itEntry != m_entryListTechTrig.end(); itEntry++) {
1003  if ((*itEntry)->gtDaqPartition() == 0) {
1004  myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() << " " << std::right << std::setw(10)
1005  << (*itEntry)->gtPrescaleFactor() << " " << std::right << std::setw(2) //<< std::setfill('0')
1006  << std::hex << (*itEntry)->gtTriggerMask() //<< std::setfill(' ')
1007  << std::dec << " " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() << " "
1008  << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() << " " << std::right
1009  << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) << " "
1010  << "\n";
1011  }
1012  }
1013  }
1014  }
1015 
1016  break;
1017  default: {
1018  myCout << "\n\nL1GtTrigReport: Error - no print verbosity level = " << m_printVerbosity
1019  << " defined! \nCheck available values in the cfi file."
1020  << "\n";
1021  }
1022 
1023  break;
1024  }
1025 
1026  // TODO for other verbosity levels
1027  // print the trigger menu, the prescale factors and the trigger mask, etc
1028 
1029  myCout << std::endl;
1030  myCout << "L1T-Report end!" << std::endl;
1031  myCout << std::endl;
1032 
1033  switch (m_printOutput) {
1034  case 0: {
1035  std::cout << myCout.str() << std::endl;
1036 
1037  }
1038 
1039  break;
1040  case 1: {
1041  LogTrace("L1GtTrigReport") << myCout.str() << std::endl;
1042 
1043  } break;
1044 
1045  case 2: {
1046  edm::LogVerbatim("L1GtTrigReport") << myCout.str() << std::endl;
1047 
1048  }
1049 
1050  break;
1051  case 3: {
1052  edm::LogInfo("L1GtTrigReport") << myCout.str();
1053 
1054  }
1055 
1056  break;
1057  default: {
1058  std::cout << "\n\n L1GtTrigReport: Error - no print output = " << m_printOutput
1059  << " defined! \n Check available values in the cfi file."
1060  << "\n"
1061  << std::endl;
1062 
1063  } break;
1064  }
1065 }
Log< level::Info, true > LogVerbatim
std::vector< int > m_globalNrErrors
global number of events with error (EDProduct[s] not found)
std::list< L1GtTrigReportEntry * >::const_iterator CItEntry
std::list< L1GtTrigReportEntry * > m_entryListTechTrig
list of individual entries in the report for technical triggers
unsigned int m_numberDaqPartitions
number of DAQ partitions
const unsigned int m_physicsDaqPartition
index of physics DAQ partition
#define LogTrace(id)
std::list< L1GtTrigReportEntry * > m_entryList
list of individual entries in the report for physics algorithms
const int m_printVerbosity
print verbosity
const int m_printOutput
print output
T sqrt(T t)
Definition: SSEVec.h:19
const bool m_useL1GlobalTriggerRecord
boolean flag to select the input record
std::vector< int > m_globalNrAccepts
global number of events accepted by any of the L1 algorithm in any menu
Log< level::Info, false > LogInfo
int m_totalEvents
counters

Member Data Documentation

◆ m_entryList

std::list<L1GtTrigReportEntry*> L1GtTrigReport::m_entryList
private

list of individual entries in the report for physics algorithms

Definition at line 156 of file L1GtTrigReport.h.

Referenced by analyze(), endJob(), and ~L1GtTrigReport().

◆ m_entryListTechTrig

std::list<L1GtTrigReportEntry*> L1GtTrigReport::m_entryListTechTrig
private

list of individual entries in the report for technical triggers

Definition at line 159 of file L1GtTrigReport.h.

Referenced by analyze(), endJob(), and ~L1GtTrigReport().

◆ m_globalNrAccepts

std::vector<int> L1GtTrigReport::m_globalNrAccepts
private

global number of events accepted by any of the L1 algorithm in any menu

Definition at line 153 of file L1GtTrigReport.h.

Referenced by analyze(), and endJob().

◆ m_globalNrErrors

std::vector<int> L1GtTrigReport::m_globalNrErrors
private

global number of events with error (EDProduct[s] not found)

Definition at line 150 of file L1GtTrigReport.h.

Referenced by analyze(), and endJob().

◆ m_l1GtMenu

const L1GtTriggerMenu* L1GtTrigReport::m_l1GtMenu
private

Definition at line 116 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtMenuCacheID

unsigned long long L1GtTrigReport::m_l1GtMenuCacheID
private

Definition at line 117 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtPfAlgo

const L1GtPrescaleFactors* L1GtTrigReport::m_l1GtPfAlgo
private

prescale factors

Definition at line 87 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtPfAlgoCacheID

unsigned long long L1GtTrigReport::m_l1GtPfAlgoCacheID
private

Definition at line 88 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtPfTech

const L1GtPrescaleFactors* L1GtTrigReport::m_l1GtPfTech
private

Definition at line 90 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtPfTechCacheID

unsigned long long L1GtTrigReport::m_l1GtPfTechCacheID
private

Definition at line 91 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtRecordInputTag

const edm::InputTag L1GtTrigReport::m_l1GtRecordInputTag
private

input tag for GT record (L1 GT DAQ record or L1 GT "lite" record):

Definition at line 124 of file L1GtTrigReport.h.

Referenced by analyze(), and L1GtTrigReport().

◆ m_l1GtRecordInputToken1

const edm::EDGetTokenT<L1GlobalTriggerRecord> L1GtTrigReport::m_l1GtRecordInputToken1
private

Definition at line 126 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtRecordInputToken2

const edm::EDGetTokenT<L1GlobalTriggerReadoutRecord> L1GtTrigReport::m_l1GtRecordInputToken2
private

Definition at line 127 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtStablePar

const L1GtStableParameters* L1GtTrigReport::m_l1GtStablePar
private

cached stuff

stable parameters

Definition at line 73 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtStableParCacheID

unsigned long long L1GtTrigReport::m_l1GtStableParCacheID
private

Definition at line 74 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtTmAlgo

const L1GtTriggerMask* L1GtTrigReport::m_l1GtTmAlgo
private

trigger masks & veto masks

Definition at line 97 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtTmAlgoCacheID

unsigned long long L1GtTrigReport::m_l1GtTmAlgoCacheID
private

Definition at line 98 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtTmTech

const L1GtTriggerMask* L1GtTrigReport::m_l1GtTmTech
private

Definition at line 100 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtTmTechCacheID

unsigned long long L1GtTrigReport::m_l1GtTmTechCacheID
private

Definition at line 101 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtTmVetoAlgo

const L1GtTriggerMask* L1GtTrigReport::m_l1GtTmVetoAlgo
private

Definition at line 103 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtTmVetoAlgoCacheID

unsigned long long L1GtTrigReport::m_l1GtTmVetoAlgoCacheID
private

Definition at line 104 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtTmVetoTech

const L1GtTriggerMask* L1GtTrigReport::m_l1GtTmVetoTech
private

Definition at line 106 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_l1GtTmVetoTechCacheID

unsigned long long L1GtTrigReport::m_l1GtTmVetoTechCacheID
private

Definition at line 107 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_menuToken

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

Definition at line 136 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_numberDaqPartitions

unsigned int L1GtTrigReport::m_numberDaqPartitions
private

number of DAQ partitions

Definition at line 83 of file L1GtTrigReport.h.

Referenced by analyze(), and endJob().

◆ m_numberDaqPartitionsMax

unsigned int L1GtTrigReport::m_numberDaqPartitionsMax
private

Definition at line 84 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_numberPhysTriggers

unsigned int L1GtTrigReport::m_numberPhysTriggers
private

number of physics triggers

Definition at line 77 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_numberTechnicalTriggers

unsigned int L1GtTrigReport::m_numberTechnicalTriggers
private

number of technical triggers

Definition at line 80 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_pfAlgoToken

const edm::ESGetToken<L1GtPrescaleFactors, L1GtPrescaleFactorsAlgoTrigRcd> L1GtTrigReport::m_pfAlgoToken
private

Definition at line 130 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_pfTechToken

const edm::ESGetToken<L1GtPrescaleFactors, L1GtPrescaleFactorsTechTrigRcd> L1GtTrigReport::m_pfTechToken
private

Definition at line 131 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_physicsDaqPartition

const unsigned int L1GtTrigReport::m_physicsDaqPartition
private

index of physics DAQ partition

Definition at line 165 of file L1GtTrigReport.h.

Referenced by analyze(), and endJob().

◆ m_prescaleFactorsAlgoTrig

const std::vector<std::vector<int> >* L1GtTrigReport::m_prescaleFactorsAlgoTrig
private

Definition at line 93 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_prescaleFactorsTechTrig

const std::vector<std::vector<int> >* L1GtTrigReport::m_prescaleFactorsTechTrig
private

Definition at line 94 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_printOutput

const int L1GtTrigReport::m_printOutput
private

print output

Definition at line 142 of file L1GtTrigReport.h.

Referenced by endJob(), and L1GtTrigReport().

◆ m_printVerbosity

const int L1GtTrigReport::m_printVerbosity
private

print verbosity

Definition at line 139 of file L1GtTrigReport.h.

Referenced by endJob(), and L1GtTrigReport().

◆ m_stableParToken

const edm::ESGetToken<L1GtStableParameters, L1GtStableParametersRcd> L1GtTrigReport::m_stableParToken
private

Definition at line 129 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_tmAlgoToken

const edm::ESGetToken<L1GtTriggerMask, L1GtTriggerMaskAlgoTrigRcd> L1GtTrigReport::m_tmAlgoToken
private

Definition at line 132 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_tmTechToken

const edm::ESGetToken<L1GtTriggerMask, L1GtTriggerMaskTechTrigRcd> L1GtTrigReport::m_tmTechToken
private

Definition at line 133 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_tmVetoAlgoToken

const edm::ESGetToken<L1GtTriggerMask, L1GtTriggerMaskVetoAlgoTrigRcd> L1GtTrigReport::m_tmVetoAlgoToken
private

Definition at line 134 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_tmVetoTechToken

const edm::ESGetToken<L1GtTriggerMask, L1GtTriggerMaskVetoTechTrigRcd> L1GtTrigReport::m_tmVetoTechToken
private

Definition at line 135 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_totalEvents

int L1GtTrigReport::m_totalEvents
private

counters

global number of events processed

Definition at line 147 of file L1GtTrigReport.h.

Referenced by analyze(), and endJob().

◆ m_triggerMaskAlgoTrig

std::vector<unsigned int> L1GtTrigReport::m_triggerMaskAlgoTrig
private

Definition at line 109 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_triggerMaskTechTrig

std::vector<unsigned int> L1GtTrigReport::m_triggerMaskTechTrig
private

Definition at line 110 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_triggerMaskVetoAlgoTrig

std::vector<unsigned int> L1GtTrigReport::m_triggerMaskVetoAlgoTrig
private

Definition at line 112 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_triggerMaskVetoTechTrig

std::vector<unsigned int> L1GtTrigReport::m_triggerMaskVetoTechTrig
private

Definition at line 113 of file L1GtTrigReport.h.

Referenced by analyze().

◆ m_useL1GlobalTriggerRecord

const bool L1GtTrigReport::m_useL1GlobalTriggerRecord
private

boolean flag to select the input record

Definition at line 121 of file L1GtTrigReport.h.

Referenced by analyze(), endJob(), and L1GtTrigReport().