CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
 
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)
 

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
< L1GlobalTriggerRecord
m_l1GtRecordInputToken1
 
const edm::EDGetTokenT
< L1GlobalTriggerReadoutRecord
m_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,
L1GtTriggerMenuRcd
m_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,
L1GtPrescaleFactorsAlgoTrigRcd
m_pfAlgoToken
 
const edm::ESGetToken
< L1GtPrescaleFactors,
L1GtPrescaleFactorsTechTrigRcd
m_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,
L1GtStableParametersRcd
m_stableParToken
 
const edm::ESGetToken
< L1GtTriggerMask,
L1GtTriggerMaskAlgoTrigRcd
m_tmAlgoToken
 
const edm::ESGetToken
< L1GtTriggerMask,
L1GtTriggerMaskTechTrigRcd
m_tmTechToken
 
const edm::ESGetToken
< L1GtTriggerMask,
L1GtTriggerMaskVetoAlgoTrigRcd
m_tmVetoAlgoToken
 
const edm::ESGetToken
< L1GtTriggerMask,
L1GtTriggerMaskVetoTechTrigRcd
m_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< B > consumes (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 () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
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

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

Definition at line 161 of file L1GtTrigReport.h.

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

Definition at line 162 of file L1GtTrigReport.h.

Constructor & Destructor Documentation

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

constructor

Definition at line 66 of file L1GtTrigReport.cc.

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

67  :
68 
69  // initialize cached IDs
70 
71  //
73 
78 
79  //
80  m_l1GtPfAlgoCacheID(0ULL),
81  m_l1GtPfTechCacheID(0ULL),
82 
83  m_l1GtTmAlgoCacheID(0ULL),
84  m_l1GtTmTechCacheID(0ULL),
85 
88 
89  //
90  m_l1GtMenuCacheID(0ULL),
91 
92  // boolean flag to select the input record
93  // if true, it will use L1GlobalTriggerRecord
94  m_useL1GlobalTriggerRecord(pSet.getParameter<bool>("UseL1GlobalTriggerRecord")),
95 
97  m_l1GtRecordInputTag(pSet.getParameter<edm::InputTag>("L1GtRecordInputTag")),
101  ? consumes<L1GlobalTriggerReadoutRecord>(m_l1GtRecordInputTag)
103 
112 
113  // print verbosity
114  m_printVerbosity(pSet.getUntrackedParameter<int>("PrintVerbosity", 2)),
115 
116  // print output
117  m_printOutput(pSet.getUntrackedParameter<int>("PrintOutput", 3)),
118 
119  // initialize global counters
120 
121  // number of events processed
122  m_totalEvents(0),
123 
124  //
125  m_entryList(),
127 
128  // set the index of physics DAQ partition TODO input parameter?
130 
131 {
132  LogDebug("L1GtTrigReport") << "\n Use L1GlobalTriggerRecord: " << m_useL1GlobalTriggerRecord
133  << "\n (if false: L1GtTrigReport uses L1GlobalTriggerReadoutRecord.)"
134  << "\n Input tag for L1 GT record: " << m_l1GtRecordInputTag.label() << " \n"
135  << "\n Print verbosity level: " << m_printVerbosity << " \n"
136  << "\n Print output: " << m_printOutput << " \n"
137  << std::endl;
138 }
T getUntrackedParameter(std::string const &, T const &) const
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 &quot;lite&quot; 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::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
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcd > m_menuToken
std::string const & label() const
Definition: InputTag.h:36
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 ( )
override

destructor

Definition at line 141 of file L1GtTrigReport.cc.

References m_entryList, and m_entryListTechTrig.

141  {
142  for (ItEntry itEntry = m_entryList.begin(); itEntry != m_entryList.end(); itEntry++) {
143  if (*itEntry != nullptr) {
144  delete *itEntry;
145  *itEntry = nullptr;
146  }
147  }
148 
149  m_entryList.clear();
150 
151  for (ItEntry itEntry = m_entryListTechTrig.begin(); itEntry != m_entryListTechTrig.end(); itEntry++) {
152  if (*itEntry != nullptr) {
153  delete *itEntry;
154  *itEntry = nullptr;
155  }
156  }
157 
158  m_entryListTechTrig.clear();
159 }
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

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

analyze each event

Implements edm::one::EDAnalyzerBase.

Definition at line 169 of file L1GtTrigReport.cc.

References L1GtTrigReportEntry::addErrorEntry(), L1GtTrigReportEntry::addValidEntry(), edm::EventSetup::get(), edm::Event::getByToken(), edm::EventSetup::getData(), L1GtTriggerMenu::gtAlgorithmMap(), L1GtStableParameters::gtNumberPhysTriggers(), L1GtStableParameters::gtNumberTechnicalTriggers(), L1GtPrescaleFactors::gtPrescaleFactors(), L1GtTriggerMenu::gtTechnicalTriggerMap(), L1GtTriggerMask::gtTriggerMask(), L1GtTriggerMenu::gtTriggerMenuName(), 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, dtDQMClient_cfg::prescaleFactor, and AlCaHLTBitMon_QueryRunRegistry::string.

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

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 164 of file L1GtTrigReport.cc.

164  {
165  // empty
166 }
void L1GtTrigReport::endJob ( void  )
overrideprivatevirtual

end of job

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 610 of file L1GtTrigReport.cc.

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

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

Member Data Documentation

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

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

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

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

const L1GtTriggerMenu* L1GtTrigReport::m_l1GtMenu
private

Definition at line 116 of file L1GtTrigReport.h.

Referenced by analyze().

unsigned long long L1GtTrigReport::m_l1GtMenuCacheID
private

Definition at line 117 of file L1GtTrigReport.h.

Referenced by analyze().

const L1GtPrescaleFactors* L1GtTrigReport::m_l1GtPfAlgo
private

prescale factors

Definition at line 87 of file L1GtTrigReport.h.

Referenced by analyze().

unsigned long long L1GtTrigReport::m_l1GtPfAlgoCacheID
private

Definition at line 88 of file L1GtTrigReport.h.

Referenced by analyze().

const L1GtPrescaleFactors* L1GtTrigReport::m_l1GtPfTech
private

Definition at line 90 of file L1GtTrigReport.h.

Referenced by analyze().

unsigned long long L1GtTrigReport::m_l1GtPfTechCacheID
private

Definition at line 91 of file L1GtTrigReport.h.

Referenced by analyze().

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

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

Definition at line 126 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 127 of file L1GtTrigReport.h.

Referenced by analyze().

const L1GtStableParameters* L1GtTrigReport::m_l1GtStablePar
private

cached stuff

stable parameters

Definition at line 73 of file L1GtTrigReport.h.

Referenced by analyze().

unsigned long long L1GtTrigReport::m_l1GtStableParCacheID
private

Definition at line 74 of file L1GtTrigReport.h.

Referenced by analyze().

const L1GtTriggerMask* L1GtTrigReport::m_l1GtTmAlgo
private

trigger masks & veto masks

Definition at line 97 of file L1GtTrigReport.h.

Referenced by analyze().

unsigned long long L1GtTrigReport::m_l1GtTmAlgoCacheID
private

Definition at line 98 of file L1GtTrigReport.h.

Referenced by analyze().

const L1GtTriggerMask* L1GtTrigReport::m_l1GtTmTech
private

Definition at line 100 of file L1GtTrigReport.h.

Referenced by analyze().

unsigned long long L1GtTrigReport::m_l1GtTmTechCacheID
private

Definition at line 101 of file L1GtTrigReport.h.

Referenced by analyze().

const L1GtTriggerMask* L1GtTrigReport::m_l1GtTmVetoAlgo
private

Definition at line 103 of file L1GtTrigReport.h.

Referenced by analyze().

unsigned long long L1GtTrigReport::m_l1GtTmVetoAlgoCacheID
private

Definition at line 104 of file L1GtTrigReport.h.

Referenced by analyze().

const L1GtTriggerMask* L1GtTrigReport::m_l1GtTmVetoTech
private

Definition at line 106 of file L1GtTrigReport.h.

Referenced by analyze().

unsigned long long L1GtTrigReport::m_l1GtTmVetoTechCacheID
private

Definition at line 107 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 136 of file L1GtTrigReport.h.

Referenced by analyze().

unsigned int L1GtTrigReport::m_numberDaqPartitions
private

number of DAQ partitions

Definition at line 83 of file L1GtTrigReport.h.

Referenced by analyze(), and endJob().

unsigned int L1GtTrigReport::m_numberDaqPartitionsMax
private

Definition at line 84 of file L1GtTrigReport.h.

Referenced by analyze().

unsigned int L1GtTrigReport::m_numberPhysTriggers
private

number of physics triggers

Definition at line 77 of file L1GtTrigReport.h.

Referenced by analyze().

unsigned int L1GtTrigReport::m_numberTechnicalTriggers
private

number of technical triggers

Definition at line 80 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 130 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 131 of file L1GtTrigReport.h.

Referenced by analyze().

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

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

Definition at line 93 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 94 of file L1GtTrigReport.h.

Referenced by analyze().

const int L1GtTrigReport::m_printOutput
private

print output

Definition at line 142 of file L1GtTrigReport.h.

Referenced by endJob(), and L1GtTrigReport().

const int L1GtTrigReport::m_printVerbosity
private

print verbosity

Definition at line 139 of file L1GtTrigReport.h.

Referenced by endJob(), and L1GtTrigReport().

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

Definition at line 129 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 132 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 133 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 134 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 135 of file L1GtTrigReport.h.

Referenced by analyze().

int L1GtTrigReport::m_totalEvents
private

counters

global number of events processed

Definition at line 147 of file L1GtTrigReport.h.

Referenced by analyze(), and endJob().

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

Definition at line 109 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 110 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 112 of file L1GtTrigReport.h.

Referenced by analyze().

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

Definition at line 113 of file L1GtTrigReport.h.

Referenced by analyze().

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