CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
l1t::GlobalBoard Class Reference

#include <GlobalBoard.h>

Public Member Functions

void fillAlgRecord (int iBxInEvent, std::unique_ptr< GlobalAlgBlkBxCollection > &uGtAlgRecord, int prescaleSet, int menuUUID, int firmwareUUID)
 Fill the Daq Records. More...
 
const std::bitset< GlobalAlgBlk::maxPhysicsTriggers > & getAlgorithmOR () const
 return algorithm OR decision More...
 
const BXVector< const l1t::L1Candidate * > * getCandL1EG () const
 pointer to EG data list More...
 
const BXVector< const l1t::EtSum * > * getCandL1EtSum () const
 pointer to Tau data list More...
 
const BXVector< const GlobalExtBlk * > * getCandL1External () const
 pointer to Tau data list More...
 
const BXVector< const l1t::L1Candidate * > * getCandL1Jet () const
 pointer to Jet data list More...
 
const BXVector< const l1t::Muon * > * getCandL1Mu () const
 return global muon trigger candidate More...
 
const BXVector< const l1t::MuonShower * > * getCandL1MuShower () const
 return global muon trigger candidate More...
 
const BXVector< const l1t::L1Candidate * > * getCandL1Tau () const
 pointer to Tau data list More...
 
const std::bitset< GlobalAlgBlk::maxPhysicsTriggers > & getDecisionWord () const
 return decision More...
 
 GlobalBoard ()
 
void init (const int numberPhysTriggers, const int nrL1Mu, const int nrL1MuShower, const int nrL1EG, const int nrL1Tau, const int nrL1Jet, int bxFirst, int bxLast)
 initialize the class (mainly reserve) More...
 
void printGmtData (const int iBxInEvent) const
 print received Muon dataWord More...
 
void receiveCaloObjectData (edm::Event &, const edm::EDGetTokenT< BXVector< l1t::EGamma >> &, const edm::EDGetTokenT< BXVector< l1t::Tau >> &, const edm::EDGetTokenT< BXVector< l1t::Jet >> &, const edm::EDGetTokenT< BXVector< l1t::EtSum >> &, const bool receiveEG, const int nrL1EG, const bool receiveTau, const int nrL1Tau, const bool receiveJet, const int nrL1Jet, const bool receiveEtSums)
 receive data from Global Muon Trigger More...
 
void receiveExternalData (edm::Event &, const edm::EDGetTokenT< BXVector< GlobalExtBlk >> &, const bool receiveExt)
 
void receiveMuonObjectData (edm::Event &, const edm::EDGetTokenT< BXVector< l1t::Muon >> &, const bool receiveMu, const int nrL1Mu)
 
void receiveMuonShowerObjectData (edm::Event &, const edm::EDGetTokenT< BXVector< l1t::MuonShower >> &, const bool receiveMuShower, const int nrL1MuShower)
 
void reset ()
 clear uGT More...
 
void resetCalo ()
 
void resetExternal ()
 
void resetMu ()
 
void resetMuonShower ()
 
void runFDL (edm::Event &iEvent, const int iBxInEvent, const int totalBxInEvent, const unsigned int numberPhysTriggers, const std::vector< double > &prescaleFactorsAlgoTrig, const std::vector< unsigned int > &triggerMaskAlgoTrig, const std::vector< int > &triggerMaskVetoAlgoTrig, const bool algorithmTriggersUnprescaled, const bool algorithmTriggersUnmasked)
 run the uGT FDL (Apply Prescales and Veto) More...
 
void runGTL (edm::Event &iEvent, const edm::EventSetup &evSetup, const TriggerMenu *m_l1GtMenu, const bool produceL1GtObjectMapRecord, const int iBxInEvent, std::unique_ptr< GlobalObjectMapRecord > &gtObjectMapRecord, const unsigned int numberPhysTriggers, const int nrL1Mu, const int nrL1MuShower, const int nrL1EG, const int nrL1Tau, const int nrL1Jet)
 run the uGT GTL (Conditions and Algorithms) More...
 
void setBxFirst (int bx)
 
void setBxLast (int bx)
 
void setResetPSCountersEachLumiSec (bool val)
 
void setSemiRandomInitialPSCounters (bool val)
 
void setVerbosity (const int verbosity)
 
virtual ~GlobalBoard ()
 

Static Public Member Functions

static const std::vector< double > semirandomNumber (const edm::Event &iEvent, const std::vector< double > &prescaleFactorsAlgoTrig)
 

Private Attributes

bool m_algFinalOr
 
bool m_algFinalOrVeto
 
bool m_algInitialOr
 
bool m_algIntermOr
 
bool m_algPrescaledOr
 
unsigned int m_boardEventCount
 
int m_bxFirst_
 
int m_bxLast_
 
BXVector< const l1t::L1Candidate * > * m_candL1EG
 
BXVector< const l1t::EtSum * > * m_candL1EtSum
 
BXVector< const GlobalExtBlk * > * m_candL1External
 
BXVector< const l1t::L1Candidate * > * m_candL1Jet
 
BXVector< const l1t::Muon * > * m_candL1Mu
 
BXVector< const l1t::MuonShower * > * m_candL1MuShower
 
BXVector< const l1t::L1Candidate * > * m_candL1Tau
 
std::vector< AlgorithmEvaluation::ConditionEvaluationMapm_conditionResultMaps
 
uint m_currentLumi
 
bool m_firstEv
 
bool m_firstEvLumiSegment
 
std::bitset< GlobalAlgBlk::maxPhysicsTriggersm_gtlAlgorithmOR
 
std::bitset< GlobalAlgBlk::maxPhysicsTriggersm_gtlDecisionWord
 
bool m_isDebugEnabled
 
const L1CaloGeometrym_l1CaloGeometry
 
unsigned long long m_l1CaloGeometryCacheID
 
const TriggerMenum_l1GtMenu
 
unsigned long long m_l1GtMenuCacheID
 
const L1MuTriggerScalesm_l1MuTriggerScales
 
unsigned long long m_l1MuTriggerScalesCacheID
 
std::vector< std::vector< double > > m_prescaleCounterAlgoTrig
 prescale counters: NumberPhysTriggers counters per bunch cross in event More...
 
bool m_resetPSCountersEachLumiSec = true
 
bool m_semiRandomInitialPSCounters = false
 
GlobalAlgBlk m_uGtAlgBlk
 
int m_uGtBoardNumber
 
bool m_uGtFinalBoard
 
int m_verbosity
 verbosity level More...
 

Detailed Description

Definition at line 54 of file GlobalBoard.h.

Constructor & Destructor Documentation

◆ GlobalBoard()

GlobalBoard::GlobalBoard ( )

Definition at line 63 of file GlobalBoard.cc.

References m_boardEventCount, m_gtlAlgorithmOR, m_gtlDecisionWord, m_l1CaloGeometryCacheID, m_l1GtMenuCacheID, m_l1MuTriggerScalesCacheID, m_uGtAlgBlk, m_uGtBoardNumber, m_uGtFinalBoard, and GlobalAlgBlk::reset().

71  m_firstEv(true),
73  m_currentLumi(0),
76 
77  m_gtlAlgorithmOR.reset();
78  m_gtlDecisionWord.reset();
79 
80  // initialize cached IDs
81  m_l1GtMenuCacheID = 0ULL;
84 
85  // Counter for number of events board sees
87 
88  // Need to expand use with more than one uGt GlobalBoard for now assume 1
89  m_uGtBoardNumber = 0;
90  m_uGtFinalBoard = true;
91 }
bool isDebugEnabled()
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GlobalBoard.h:225
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GlobalBoard.h:227
unsigned long long m_l1MuTriggerScalesCacheID
Definition: GlobalBoard.h:219
unsigned long long m_l1GtMenuCacheID
Definition: GlobalBoard.h:212
std::bitset< GlobalAlgBlk::maxPhysicsTriggers > m_gtlDecisionWord
Definition: GlobalBoard.h:242
unsigned int m_boardEventCount
Definition: GlobalBoard.h:269
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GlobalBoard.h:230
void reset()
reset the content of a GlobalAlgBlk
BXVector< const l1t::MuonShower * > * m_candL1MuShower
Definition: GlobalBoard.h:226
unsigned long long m_l1CaloGeometryCacheID
Definition: GlobalBoard.h:216
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GlobalBoard.h:229
GlobalAlgBlk m_uGtAlgBlk
Definition: GlobalBoard.h:244
BXVector< const GlobalExtBlk * > * m_candL1External
Definition: GlobalBoard.h:231
bool m_firstEvLumiSegment
Definition: GlobalBoard.h:253
std::bitset< GlobalAlgBlk::maxPhysicsTriggers > m_gtlAlgorithmOR
Definition: GlobalBoard.h:241
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GlobalBoard.h:228

◆ ~GlobalBoard()

GlobalBoard::~GlobalBoard ( )
virtual

Definition at line 94 of file GlobalBoard.cc.

94  {
95  //reset(); //why would we need a reset?
96  delete m_candL1Mu;
97  delete m_candL1MuShower;
98  delete m_candL1EG;
99  delete m_candL1Tau;
100  delete m_candL1Jet;
101  delete m_candL1EtSum;
102  delete m_candL1External;
103 
104  // delete m_gtEtaPhiConversions;
105 }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GlobalBoard.h:225
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GlobalBoard.h:227
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GlobalBoard.h:230
BXVector< const l1t::MuonShower * > * m_candL1MuShower
Definition: GlobalBoard.h:226
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GlobalBoard.h:229
BXVector< const GlobalExtBlk * > * m_candL1External
Definition: GlobalBoard.h:231
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GlobalBoard.h:228

Member Function Documentation

◆ fillAlgRecord()

void GlobalBoard::fillAlgRecord ( int  iBxInEvent,
std::unique_ptr< GlobalAlgBlkBxCollection > &  uGtAlgRecord,
int  prescaleSet,
int  menuUUID,
int  firmwareUUID 
)

Fill the Daq Records.

Definition at line 1096 of file GlobalBoard.cc.

References LogDebug.

1100  {
1101  if (m_verbosity) {
1102  LogDebug("L1TGlobal") << "\n**** GlobalBoard fill DAQ Records for bx= " << iBxInEvent << std::endl;
1103  }
1104 
1105  // Set header information
1106  m_uGtAlgBlk.setbxInEventNr((iBxInEvent & 0xF));
1107  m_uGtAlgBlk.setPreScColumn(prescaleSet);
1108  m_uGtAlgBlk.setL1MenuUUID(menuUUID);
1109  m_uGtAlgBlk.setL1FirmwareUUID(firmwareUUID);
1110 
1114 
1115  uGtAlgRecord->push_back(iBxInEvent, m_uGtAlgBlk);
1116 }
void setL1MenuUUID(int uuid)
set simple members
Definition: GlobalAlgBlk.h:55
void setFinalORPreVeto(bool fOR)
Definition: GlobalAlgBlk.h:59
void setbxInEventNr(int bxNr)
Definition: GlobalAlgBlk.h:57
int m_verbosity
verbosity level
Definition: GlobalBoard.h:258
void setFinalOR(bool fOR)
Definition: GlobalAlgBlk.h:60
void setFinalORVeto(bool fOR)
Definition: GlobalAlgBlk.h:58
GlobalAlgBlk m_uGtAlgBlk
Definition: GlobalBoard.h:244
void setL1FirmwareUUID(int fuuid)
Definition: GlobalAlgBlk.h:56
void setPreScColumn(int psC)
Definition: GlobalAlgBlk.h:61
#define LogDebug(id)

◆ getAlgorithmOR()

const std::bitset<GlobalAlgBlk::maxPhysicsTriggers>& l1t::GlobalBoard::getAlgorithmOR ( ) const
inline

return algorithm OR decision

Definition at line 145 of file GlobalBoard.h.

References m_gtlAlgorithmOR.

145 { return m_gtlAlgorithmOR; }
std::bitset< GlobalAlgBlk::maxPhysicsTriggers > m_gtlAlgorithmOR
Definition: GlobalBoard.h:241

◆ getCandL1EG()

const BXVector<const l1t::L1Candidate*>* l1t::GlobalBoard::getCandL1EG ( ) const
inline

pointer to EG data list

Definition at line 154 of file GlobalBoard.h.

References m_candL1EG.

154 { return m_candL1EG; }
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GlobalBoard.h:227

◆ getCandL1EtSum()

const BXVector<const l1t::EtSum*>* l1t::GlobalBoard::getCandL1EtSum ( ) const
inline

pointer to Tau data list

Definition at line 163 of file GlobalBoard.h.

References m_candL1EtSum.

163 { return m_candL1EtSum; }
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GlobalBoard.h:230

◆ getCandL1External()

const BXVector<const GlobalExtBlk*>* l1t::GlobalBoard::getCandL1External ( ) const
inline

pointer to Tau data list

Definition at line 166 of file GlobalBoard.h.

References m_candL1External.

166 { return m_candL1External; }
BXVector< const GlobalExtBlk * > * m_candL1External
Definition: GlobalBoard.h:231

◆ getCandL1Jet()

const BXVector<const l1t::L1Candidate*>* l1t::GlobalBoard::getCandL1Jet ( ) const
inline

pointer to Jet data list

Definition at line 157 of file GlobalBoard.h.

References m_candL1Jet.

157 { return m_candL1Jet; }
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GlobalBoard.h:229

◆ getCandL1Mu()

const BXVector<const l1t::Muon*>* l1t::GlobalBoard::getCandL1Mu ( ) const
inline

return global muon trigger candidate

Definition at line 148 of file GlobalBoard.h.

References m_candL1Mu.

148 { return m_candL1Mu; }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GlobalBoard.h:225

◆ getCandL1MuShower()

const BXVector<const l1t::MuonShower*>* l1t::GlobalBoard::getCandL1MuShower ( ) const
inline

return global muon trigger candidate

Definition at line 151 of file GlobalBoard.h.

References m_candL1MuShower.

151 { return m_candL1MuShower; }
BXVector< const l1t::MuonShower * > * m_candL1MuShower
Definition: GlobalBoard.h:226

◆ getCandL1Tau()

const BXVector<const l1t::L1Candidate*>* l1t::GlobalBoard::getCandL1Tau ( ) const
inline

pointer to Tau data list

Definition at line 160 of file GlobalBoard.h.

References m_candL1Tau.

160 { return m_candL1Tau; }
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GlobalBoard.h:228

◆ getDecisionWord()

const std::bitset<GlobalAlgBlk::maxPhysicsTriggers>& l1t::GlobalBoard::getDecisionWord ( ) const
inline

return decision

Definition at line 142 of file GlobalBoard.h.

References m_gtlDecisionWord.

142 { return m_gtlDecisionWord; }
std::bitset< GlobalAlgBlk::maxPhysicsTriggers > m_gtlDecisionWord
Definition: GlobalBoard.h:242

◆ init()

void GlobalBoard::init ( const int  numberPhysTriggers,
const int  nrL1Mu,
const int  nrL1MuShower,
const int  nrL1EG,
const int  nrL1Tau,
const int  nrL1Jet,
int  bxFirst,
int  bxLast 
)

initialize the class (mainly reserve)

Definition at line 112 of file GlobalBoard.cc.

References simCaloStage2Layer1Digis_cfi::bxFirst, simCaloStage2Layer1Digis_cfi::bxLast, and LogDebug.

119  {
121  setBxLast(bxLast);
122 
130 
131  m_uGtAlgBlk.reset();
132 
133  LogDebug("L1TGlobal") << "\t Initializing Board with bxFirst = " << m_bxFirst_ << ", bxLast = " << m_bxLast_
134  << std::endl;
135 }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GlobalBoard.h:225
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GlobalBoard.h:227
void setBxLast(int bx)
Definition: GlobalBoard.cc:110
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GlobalBoard.h:230
void reset()
reset the content of a GlobalAlgBlk
BXVector< const l1t::MuonShower * > * m_candL1MuShower
Definition: GlobalBoard.h:226
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GlobalBoard.h:229
GlobalAlgBlk m_uGtAlgBlk
Definition: GlobalBoard.h:244
BXVector< const GlobalExtBlk * > * m_candL1External
Definition: GlobalBoard.h:231
void setBxFirst(int bx)
Definition: GlobalBoard.cc:108
void setBXRange(int bxFirst, int bxLast)
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GlobalBoard.h:228
#define LogDebug(id)

◆ printGmtData()

void GlobalBoard::printGmtData ( const int  iBxInEvent) const

print received Muon dataWord

Definition at line 1162 of file GlobalBoard.cc.

References LogTrace.

1162  {
1163  LogTrace("L1TGlobal") << "\nl1t::L1GlobalTrigger: uGMT data received for BxInEvent = " << iBxInEvent << std::endl;
1164 
1165  int nrL1Mu = m_candL1Mu->size(iBxInEvent);
1166  LogTrace("L1TGlobal") << "Number of GMT muons = " << nrL1Mu << "\n" << std::endl;
1167 
1168  LogTrace("L1TGlobal") << std::endl;
1169 }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GlobalBoard.h:225
#define LogTrace(id)
unsigned size(int bx) const

◆ receiveCaloObjectData()

void GlobalBoard::receiveCaloObjectData ( edm::Event iEvent,
const edm::EDGetTokenT< BXVector< l1t::EGamma >> &  egInputToken,
const edm::EDGetTokenT< BXVector< l1t::Tau >> &  tauInputToken,
const edm::EDGetTokenT< BXVector< l1t::Jet >> &  jetInputToken,
const edm::EDGetTokenT< BXVector< l1t::EtSum >> &  sumInputToken,
const bool  receiveEG,
const int  nrL1EG,
const bool  receiveTau,
const int  nrL1Tau,
const bool  receiveJet,
const int  nrL1Jet,
const bool  receiveEtSums 
)

receive data from Global Muon Trigger

Definition at line 138 of file GlobalBoard.cc.

References mps_fire::i, iEvent, edm::HandleBase::isValid(), metsig::jet, LogDebug, LogTrace, and metsig::tau.

149  {
150  if (m_verbosity) {
151  LogDebug("L1TGlobal") << "\n**** Board receiving Calo Data "
152  //<< "\n from input tag " << caloInputTag << "\n"
153  << std::endl;
154  }
155 
156  resetCalo();
157 
158  // get data from Calorimeter
159  if (receiveEG) {
161  iEvent.getByToken(egInputToken, egData);
162 
163  if (!egData.isValid()) {
164  if (m_verbosity) {
165  edm::LogWarning("L1TGlobal") << "\nWarning: BXVector<l1t::EGamma> with input tag "
166  //<< caloInputTag
167  << "\nrequested in configuration, but not found in the event.\n"
168  << std::endl;
169  }
170  } else {
171  // bx in EG data
172  for (int i = egData->getFirstBX(); i <= egData->getLastBX(); ++i) {
173  // Prevent from pushing back bx that is outside of allowed range
174  if (i < m_bxFirst_ || i > m_bxLast_)
175  continue;
176 
177  //Loop over EG in this bx
178  int nObj = 0;
179  for (std::vector<l1t::EGamma>::const_iterator eg = egData->begin(i); eg != egData->end(i); ++eg) {
180  if (nObj < nrL1EG) {
181  (*m_candL1EG).push_back(i, &(*eg));
182  } else {
183  edm::LogWarning("L1TGlobal") << " Too many EG (" << nObj << ") for uGT Configuration maxEG =" << nrL1EG
184  << std::endl;
185  }
186  LogDebug("L1TGlobal") << "EG Pt " << eg->hwPt() << " Eta " << eg->hwEta() << " Phi " << eg->hwPhi()
187  << " Qual " << eg->hwQual() << " Iso " << eg->hwIso() << std::endl;
188 
189  nObj++;
190  } //end loop over EG in bx
191  } //end loop over bx
192 
193  } //end if over valid EG data
194 
195  } //end if ReveiveEG data
196 
197  if (receiveTau) {
199  iEvent.getByToken(tauInputToken, tauData);
200 
201  if (!tauData.isValid()) {
202  if (m_verbosity) {
203  edm::LogWarning("L1TGlobal") << "\nWarning: BXVector<l1t::Tau> with input tag "
204  //<< caloInputTag
205  << "\nrequested in configuration, but not found in the event.\n"
206  << std::endl;
207  }
208  } else {
209  // bx in tau data
210  for (int i = tauData->getFirstBX(); i <= tauData->getLastBX(); ++i) {
211  // Prevent from pushing back bx that is outside of allowed range
212  if (i < m_bxFirst_ || i > m_bxLast_)
213  continue;
214 
215  //Loop over tau in this bx
216  int nObj = 0;
217  for (std::vector<l1t::Tau>::const_iterator tau = tauData->begin(i); tau != tauData->end(i); ++tau) {
218  if (nObj < nrL1Tau) {
219  (*m_candL1Tau).push_back(i, &(*tau));
220  } else {
221  LogTrace("L1TGlobal") << " Too many Tau (" << nObj << ") for uGT Configuration maxTau =" << nrL1Tau
222  << std::endl;
223  }
224 
225  LogDebug("L1TGlobal") << "tau Pt " << tau->hwPt() << " Eta " << tau->hwEta() << " Phi " << tau->hwPhi()
226  << " Qual " << tau->hwQual() << " Iso " << tau->hwIso() << std::endl;
227  nObj++;
228 
229  } //end loop over tau in bx
230  } //end loop over bx
231 
232  } //end if over valid tau data
233 
234  } //end if ReveiveTau data
235 
236  if (receiveJet) {
238  iEvent.getByToken(jetInputToken, jetData);
239 
240  if (!jetData.isValid()) {
241  if (m_verbosity) {
242  edm::LogWarning("L1TGlobal") << "\nWarning: BXVector<l1t::Jet> with input tag "
243  //<< caloInputTag
244  << "\nrequested in configuration, but not found in the event.\n"
245  << std::endl;
246  }
247  } else {
248  // bx in jet data
249  for (int i = jetData->getFirstBX(); i <= jetData->getLastBX(); ++i) {
250  // Prevent from pushing back bx that is outside of allowed range
251  if (i < m_bxFirst_ || i > m_bxLast_)
252  continue;
253 
254  //Loop over jet in this bx
255  int nObj = 0;
256  for (std::vector<l1t::Jet>::const_iterator jet = jetData->begin(i); jet != jetData->end(i); ++jet) {
257  if (nObj < nrL1Jet) {
258  (*m_candL1Jet).push_back(i, &(*jet));
259  } else {
260  edm::LogWarning("L1TGlobal") << " Too many Jets (" << nObj << ") for uGT Configuration maxJet =" << nrL1Jet
261  << std::endl;
262  }
263 
264  LogDebug("L1TGlobal") << "Jet Pt " << jet->hwPt() << " Eta " << jet->hwEta() << " Phi " << jet->hwPhi()
265  << " Qual " << jet->hwQual() << " Iso " << jet->hwIso() << std::endl;
266  nObj++;
267  } //end loop over jet in bx
268  } //end loop over bx
269 
270  } //end if over valid jet data
271 
272  } //end if ReveiveJet data
273 
274  if (receiveEtSums) {
276  iEvent.getByToken(sumInputToken, etSumData);
277 
278  if (!etSumData.isValid()) {
279  if (m_verbosity) {
280  edm::LogWarning("L1TGlobal") << "\nWarning: BXVector<l1t::EtSum> with input tag "
281  //<< caloInputTag
282  << "\nrequested in configuration, but not found in the event.\n"
283  << std::endl;
284  }
285  } else {
286  for (int i = etSumData->getFirstBX(); i <= etSumData->getLastBX(); ++i) {
287  // Prevent from pushing back bx that is outside of allowed range
288  if (i < m_bxFirst_ || i > m_bxLast_)
289  continue;
290 
291  //Loop over jet in this bx
292  for (std::vector<l1t::EtSum>::const_iterator etsum = etSumData->begin(i); etsum != etSumData->end(i); ++etsum) {
293  (*m_candL1EtSum).push_back(i, &(*etsum));
294 
295  /* In case we need to split these out
296  switch ( etsum->getType() ) {
297  case l1t::EtSum::EtSumType::kMissingEt:
298  {
299  //(*m_candETM).push_back(i,&(*etsum));
300  LogDebug("L1TGlobal") << "ETM: Pt " << etsum->hwPt() << " Phi " << etsum->hwPhi() << std::endl;
301  }
302  break;
303  case l1t::EtSum::EtSumType::kMissingHt:
304  {
305  //(*m_candHTM).push_back(i,&(*etsum));
306  LogDebug("L1TGlobal") << "HTM: Pt " << etsum->hwPt() << " Phi " << etsum->hwPhi() << std::endl;
307  }
308  break;
309  case l1t::EtSum::EtSumType::kTotalEt:
310  {
311  //(*m_candETT).push_back(i,&(*etsum));
312  LogDebug("L1TGlobal") << "ETT: Pt " << etsum->hwPt() << std::endl;
313  }
314  break;
315  case l1t::EtSum::EtSumType::kTotalHt:
316  {
317  //(*m_candHTT).push_back(i,&(*etsum));
318  LogDebug("L1TGlobal") << "HTT: Pt " << etsum->hwPt() << std::endl;
319  }
320  break;
321  case l1t::EtSum::EtSumType::kTowerCount:
322  {
323  //(*m_candTowerCount).push_back(i,&(*etsum));
324  LogDebug("L1TGlobal") << "TowerCount: " << etsum->hwPt() << std::endl;
325  }
326  break;
327  default:
328  LogDebug("L1TGlobal") << "Default encounted " << std::endl;
329  break;
330  }
331 */
332 
333  } //end loop over jet in bx
334  } //end loop over Bx
335  }
336  }
337 }
#define LogTrace(id)
int m_verbosity
verbosity level
Definition: GlobalBoard.h:258
int iEvent
Definition: GenABIO.cc:224
bool isValid() const
Definition: HandleBase.h:70
Log< level::Warning, false > LogWarning
#define LogDebug(id)

◆ receiveExternalData()

void GlobalBoard::receiveExternalData ( edm::Event iEvent,
const edm::EDGetTokenT< BXVector< GlobalExtBlk >> &  extInputToken,
const bool  receiveExt 
)

Definition at line 442 of file GlobalBoard.cc.

References mps_fire::i, iEvent, edm::HandleBase::isValid(), and LogDebug.

444  {
445  if (m_verbosity) {
446  LogDebug("L1TGlobal") << "\n**** GlobalBoard receiving external data = "
447  //<< "\n from input tag " << muInputTag << "\n"
448  << std::endl;
449  }
450 
451  resetExternal();
452 
453  // get data from Global Muon Trigger
454  if (receiveExt) {
456  iEvent.getByToken(extInputToken, extData);
457 
458  if (!extData.isValid()) {
459  if (m_verbosity) {
460  edm::LogWarning("L1TGlobal") << "\nWarning: BXVector<GlobalExtBlk> with input tag "
461  //<< muInputTag
462  << "\nrequested in configuration, but not found in the event.\n"
463  << std::endl;
464  }
465  } else {
466  // bx in muon data
467  for (int i = extData->getFirstBX(); i <= extData->getLastBX(); ++i) {
468  // Prevent from pushing back bx that is outside of allowed range
469  if (i < m_bxFirst_ || i > m_bxLast_)
470  continue;
471 
472  //Loop over ext in this bx
473  for (std::vector<GlobalExtBlk>::const_iterator ext = extData->begin(i); ext != extData->end(i); ++ext) {
474  (*m_candL1External).push_back(i, &(*ext));
475  } //end loop over ext in bx
476  } //end loop over bx
477 
478  } //end if over valid ext data
479 
480  } //end if ReveiveExt data
481 }
int m_verbosity
verbosity level
Definition: GlobalBoard.h:258
int iEvent
Definition: GenABIO.cc:224
bool isValid() const
Definition: HandleBase.h:70
Log< level::Warning, false > LogWarning
Definition: memstream.h:15
#define LogDebug(id)

◆ receiveMuonObjectData()

void GlobalBoard::receiveMuonObjectData ( edm::Event iEvent,
const edm::EDGetTokenT< BXVector< l1t::Muon >> &  muInputToken,
const bool  receiveMu,
const int  nrL1Mu 
)

Definition at line 340 of file GlobalBoard.cc.

References mps_fire::i, iEvent, edm::HandleBase::isValid(), LogDebug, and amptDefaultParameters_cff::mu.

343  {
344  if (m_verbosity) {
345  LogDebug("L1TGlobal") << "\n**** GlobalBoard receiving muon data = "
346  //<< "\n from input tag " << muInputTag << "\n"
347  << std::endl;
348  }
349 
350  resetMu();
351 
352  // get data from Global Muon Trigger
353  if (receiveMu) {
355  iEvent.getByToken(muInputToken, muonData);
356 
357  if (!muonData.isValid()) {
358  if (m_verbosity) {
359  edm::LogWarning("L1TGlobal") << "\nWarning: BXVector<l1t::Muon> with input tag "
360  //<< muInputTag
361  << "\nrequested in configuration, but not found in the event.\n"
362  << std::endl;
363  }
364  } else {
365  // bx in muon data
366  for (int i = muonData->getFirstBX(); i <= muonData->getLastBX(); ++i) {
367  // Prevent from pushing back bx that is outside of allowed range
368  if (i < m_bxFirst_ || i > m_bxLast_)
369  continue;
370 
371  //Loop over Muons in this bx
372  int nObj = 0;
373  for (std::vector<l1t::Muon>::const_iterator mu = muonData->begin(i); mu != muonData->end(i); ++mu) {
374  if (nObj < nrL1Mu) {
375  (*m_candL1Mu).push_back(i, &(*mu));
376  } else {
377  edm::LogWarning("L1TGlobal") << " Too many Muons (" << nObj << ") for uGT Configuration maxMu =" << nrL1Mu
378  << std::endl;
379  }
380 
381  LogDebug("L1TGlobal") << "Muon Pt " << mu->hwPt() << " EtaAtVtx " << mu->hwEtaAtVtx() << " PhiAtVtx "
382  << mu->hwPhiAtVtx() << " Qual " << mu->hwQual() << " Iso " << mu->hwIso()
383  << std::endl;
384  nObj++;
385  } //end loop over muons in bx
386  } //end loop over bx
387 
388  } //end if over valid muon data
389 
390  } //end if ReveiveMuon data
391 }
int m_verbosity
verbosity level
Definition: GlobalBoard.h:258
int iEvent
Definition: GenABIO.cc:224
bool isValid() const
Definition: HandleBase.h:70
Log< level::Warning, false > LogWarning
#define LogDebug(id)

◆ receiveMuonShowerObjectData()

void GlobalBoard::receiveMuonShowerObjectData ( edm::Event iEvent,
const edm::EDGetTokenT< BXVector< l1t::MuonShower >> &  muShowerInputToken,
const bool  receiveMuShower,
const int  nrL1MuShower 
)

Definition at line 394 of file GlobalBoard.cc.

References iEvent, edm::HandleBase::isValid(), amptDefaultParameters_cff::mu, l1t::MuonShower::setMus0(), l1t::MuonShower::setMus1(), l1t::MuonShower::setMusOutOfTime0(), and l1t::MuonShower::setMusOutOfTime1().

397  {
398  // get data from Global Muon Trigger
399  if (receiveMuShower) {
401  iEvent.getByToken(muShowerInputToken, muonData);
402 
403  if (!muonData.isValid()) {
404  if (m_verbosity) {
405  edm::LogWarning("L1TGlobal") << "\nWarning: BXVector<l1t::MuonShower> with input tag "
406  << "\nrequested in configuration, but not found in the event.\n"
407  << std::endl;
408  }
409  } else {
410  //Loop over Muon Showers in this bx
411  int nObj = 0;
412  for (auto mu = muonData->begin(0); mu != muonData->end(0); ++mu) {
413  if (nObj < nrL1MuShower) {
414  /* Important here to split up the single object into 4 separate MuonShower
415  bits for the global board. This is because the UTM library considers those bits separate as well
416  */
417  l1t::MuonShower mus0;
418  l1t::MuonShower mus1;
419  l1t::MuonShower musOutOfTime0;
420  l1t::MuonShower musOutOfTime1;
421 
422  mus0.setMus0(mu->mus0());
423  mus1.setMus1(mu->mus1());
424  musOutOfTime0.setMusOutOfTime0(mu->musOutOfTime0());
425  musOutOfTime1.setMusOutOfTime1(mu->musOutOfTime1());
426 
427  (*m_candL1MuShower).push_back(0, &mus0);
428  (*m_candL1MuShower).push_back(0, &mus1);
429  (*m_candL1MuShower).push_back(0, &musOutOfTime0);
430  (*m_candL1MuShower).push_back(0, &musOutOfTime1);
431  } else {
432  edm::LogWarning("L1TGlobal") << " Too many Muon Showers (" << nObj
433  << ") for uGT Configuration maxMuShower =" << nrL1MuShower << std::endl;
434  }
435  nObj++;
436  } //end loop over muon showers in bx
437  } //end if over valid muon shower data
438  } //end if ReveiveMuonShower data
439 }
void setMus0(const bool bit)
Definition: MuonShower.h:59
int m_verbosity
verbosity level
Definition: GlobalBoard.h:258
int iEvent
Definition: GenABIO.cc:224
void setMusOutOfTime1(const bool bit)
Definition: MuonShower.h:62
bool isValid() const
Definition: HandleBase.h:70
void setMus1(const bool bit)
Definition: MuonShower.h:60
Log< level::Warning, false > LogWarning
void setMusOutOfTime0(const bool bit)
Definition: MuonShower.h:61

◆ reset()

void GlobalBoard::reset ( void  )

clear uGT

Definition at line 1119 of file GlobalBoard.cc.

1119  {
1120  resetMu();
1121  resetMuonShower();
1122  resetCalo();
1123  resetExternal();
1124 
1125  m_uGtAlgBlk.reset();
1126 
1127  m_gtlDecisionWord.reset();
1128  m_gtlAlgorithmOR.reset();
1129 }
std::bitset< GlobalAlgBlk::maxPhysicsTriggers > m_gtlDecisionWord
Definition: GlobalBoard.h:242
void reset()
reset the content of a GlobalAlgBlk
GlobalAlgBlk m_uGtAlgBlk
Definition: GlobalBoard.h:244
std::bitset< GlobalAlgBlk::maxPhysicsTriggers > m_gtlAlgorithmOR
Definition: GlobalBoard.h:241

◆ resetCalo()

void GlobalBoard::resetCalo ( )

Definition at line 1144 of file GlobalBoard.cc.

1144  {
1145  m_candL1EG->clear();
1146  m_candL1Tau->clear();
1147  m_candL1Jet->clear();
1148  m_candL1EtSum->clear();
1149 
1154 }
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GlobalBoard.h:227
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GlobalBoard.h:230
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GlobalBoard.h:229
void clear()
void setBXRange(int bxFirst, int bxLast)
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GlobalBoard.h:228

◆ resetExternal()

void GlobalBoard::resetExternal ( )

Definition at line 1156 of file GlobalBoard.cc.

1156  {
1159 }
BXVector< const GlobalExtBlk * > * m_candL1External
Definition: GlobalBoard.h:231
void clear()
void setBXRange(int bxFirst, int bxLast)

◆ resetMu()

void GlobalBoard::resetMu ( )

Definition at line 1132 of file GlobalBoard.cc.

1132  {
1133  m_candL1Mu->clear();
1135 }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GlobalBoard.h:225
void clear()
void setBXRange(int bxFirst, int bxLast)

◆ resetMuonShower()

void GlobalBoard::resetMuonShower ( )

Definition at line 1138 of file GlobalBoard.cc.

1138  {
1141 }
BXVector< const l1t::MuonShower * > * m_candL1MuShower
Definition: GlobalBoard.h:226
void clear()
void setBXRange(int bxFirst, int bxLast)

◆ runFDL()

void GlobalBoard::runFDL ( edm::Event iEvent,
const int  iBxInEvent,
const int  totalBxInEvent,
const unsigned int  numberPhysTriggers,
const std::vector< double > &  prescaleFactorsAlgoTrig,
const std::vector< unsigned int > &  triggerMaskAlgoTrig,
const std::vector< int > &  triggerMaskVetoAlgoTrig,
const bool  algorithmTriggersUnprescaled,
const bool  algorithmTriggersUnmasked 
)

run the uGT FDL (Apply Prescales and Veto)

if we are masking.

Definition at line 958 of file GlobalBoard.cc.

References iEvent, and LogDebug.

966  {
967  if (m_verbosity) {
968  LogDebug("L1TGlobal") << "\n**** GlobalBoard apply Final Decision Logic " << std::endl;
969  }
970 
971  // prescale counters are reset at the beginning of the luminosity segment
972  if (m_firstEv) {
973  // prescale counters: numberPhysTriggers counters per bunch cross
974  m_prescaleCounterAlgoTrig.reserve(totalBxInEvent);
975 
976  auto const& prescaleCountersAlgoTrig =
977  m_semiRandomInitialPSCounters ? semirandomNumber(iEvent, prescaleFactorsAlgoTrig) : prescaleFactorsAlgoTrig;
978 
979  for (int iBxInEvent = 0; iBxInEvent <= totalBxInEvent; ++iBxInEvent) {
980  m_prescaleCounterAlgoTrig.push_back(prescaleCountersAlgoTrig);
981  }
982  m_firstEv = false;
983  m_currentLumi = iEvent.luminosityBlock();
984  }
985 
986  // update and clear prescales at the beginning of the luminosity segment
987  if (m_firstEvLumiSegment || (m_currentLumi != iEvent.luminosityBlock() && m_resetPSCountersEachLumiSec)) {
989  for (int iBxInEvent = 0; iBxInEvent <= totalBxInEvent; ++iBxInEvent) {
991  m_prescaleCounterAlgoTrig.push_back(semirandomNumber(iEvent, prescaleFactorsAlgoTrig));
992  } else {
993  m_prescaleCounterAlgoTrig.push_back(prescaleFactorsAlgoTrig);
994  }
995  }
996  m_firstEvLumiSegment = false;
997  m_currentLumi = iEvent.luminosityBlock();
998  }
999 
1000  // Copy Algorithm bits to Prescaled word
1001  // Prescaling and Masking done below if requested.
1003 
1004  // -------------------------------------------
1005  // Apply Prescales or skip if turned off
1006  // -------------------------------------------
1007  if (!algorithmTriggersUnprescaled) {
1008  // iBxInEvent is ... -2 -1 0 1 2 ... while counters are 0 1 2 3 4 ...
1009  int inBxInEvent = totalBxInEvent / 2 + iBxInEvent;
1010 
1011  bool temp_algPrescaledOr = false;
1012  bool alreadyReported = false;
1013  for (unsigned int iBit = 0; iBit < numberPhysTriggers; ++iBit) {
1014  bool bitValue = m_uGtAlgBlk.getAlgoDecisionInitial(iBit);
1015  if (bitValue) {
1016  // Make sure algo bit in range, warn otherwise
1017  if (iBit < prescaleFactorsAlgoTrig.size()) {
1018  if (prescaleFactorsAlgoTrig.at(iBit) != 1) {
1019  (m_prescaleCounterAlgoTrig.at(inBxInEvent).at(iBit))--;
1020  if (m_prescaleCounterAlgoTrig.at(inBxInEvent).at(iBit) == 0) {
1021  // bit already true in algoDecisionWord, just reset counter
1022  m_prescaleCounterAlgoTrig.at(inBxInEvent).at(iBit) = prescaleFactorsAlgoTrig.at(iBit);
1023  temp_algPrescaledOr = true;
1024  } else {
1025  // change bit to false in prescaled word and final decision word
1026  m_uGtAlgBlk.setAlgoDecisionInterm(iBit, false);
1027 
1028  } //if Prescale counter reached zero
1029  } //if prescale factor is not 1 (ie. no prescale)
1030  else {
1031  temp_algPrescaledOr = true;
1032  }
1033  } // require bit in range
1034  else if (!alreadyReported) {
1035  alreadyReported = true;
1036  edm::LogWarning("L1TGlobal") << "\nWarning: algoBit >= prescaleFactorsAlgoTrig.size() in bx " << iBxInEvent
1037  << std::endl;
1038  }
1039  } //if algo bit is set true
1040  } //loop over alg bits
1041 
1042  m_algPrescaledOr = temp_algPrescaledOr; //temp
1043 
1044  } else {
1045  // Since not Prescaling just take OR of Initial Work
1047 
1048  } //if we are going to apply prescales.
1049 
1050  // Copy Algorithm bits fron Prescaled word to Final Word
1051  // Masking done below if requested.
1053 
1054  if (!algorithmTriggersUnmasked) {
1055  bool temp_algFinalOr = false;
1056  bool alreadyReported = false;
1057  for (unsigned int iBit = 0; iBit < numberPhysTriggers; ++iBit) {
1058  bool bitValue = m_uGtAlgBlk.getAlgoDecisionInterm(iBit);
1059 
1060  if (bitValue) {
1061  //bool isMasked = ( triggerMaskAlgoTrig.at(iBit) == 0 );
1062  bool isMasked = false;
1063  if (iBit < triggerMaskAlgoTrig.size())
1064  isMasked = (triggerMaskAlgoTrig.at(iBit) == 0);
1065  else if (!alreadyReported) {
1066  alreadyReported = true;
1067  edm::LogWarning("L1TGlobal") << "\nWarning: algoBit >= triggerMaskAlgoTrig.size() in bx " << iBxInEvent
1068  << std::endl;
1069  }
1070 
1071  bool passMask = (bitValue && !isMasked);
1072 
1073  if (passMask)
1074  temp_algFinalOr = true;
1075  else
1076  m_uGtAlgBlk.setAlgoDecisionFinal(iBit, false);
1077 
1078  // Check if veto mask is true, if it is, set the event veto flag.
1079  if (triggerMaskVetoAlgoTrig.at(iBit) == 1)
1080  m_algFinalOrVeto = true;
1081  }
1082  }
1083 
1084  m_algIntermOr = temp_algFinalOr;
1085 
1086  } else {
1088 
1089  }
1090 
1091  // Set FinalOR for this board
1093 }
void copyIntermToFinal()
Definition: GlobalAlgBlk.h:74
std::vector< std::vector< double > > m_prescaleCounterAlgoTrig
prescale counters: NumberPhysTriggers counters per bunch cross in event
Definition: GlobalBoard.h:250
static const std::vector< double > semirandomNumber(const edm::Event &iEvent, const std::vector< double > &prescaleFactorsAlgoTrig)
void copyInitialToInterm()
Copy vectors words.
Definition: GlobalAlgBlk.h:73
bool m_semiRandomInitialPSCounters
Definition: GlobalBoard.h:279
int m_verbosity
verbosity level
Definition: GlobalBoard.h:258
int iEvent
Definition: GenABIO.cc:224
void setAlgoDecisionInterm(unsigned int bit, bool val)
Definition: GlobalAlgBlk.cc:84
GlobalAlgBlk m_uGtAlgBlk
Definition: GlobalBoard.h:244
std::vector< bool > const & getAlgoDecisionInterm() const
Definition: GlobalAlgBlk.h:83
bool m_firstEvLumiSegment
Definition: GlobalBoard.h:253
std::vector< bool > const & getAlgoDecisionInitial() const
Get decision bits.
Definition: GlobalAlgBlk.h:82
Log< level::Warning, false > LogWarning
bool m_resetPSCountersEachLumiSec
Definition: GlobalBoard.h:276
void setAlgoDecisionFinal(unsigned int bit, bool val)
Definition: GlobalAlgBlk.cc:94
#define LogDebug(id)

◆ runGTL()

void GlobalBoard::runGTL ( edm::Event iEvent,
const edm::EventSetup evSetup,
const TriggerMenu m_l1GtMenu,
const bool  produceL1GtObjectMapRecord,
const int  iBxInEvent,
std::unique_ptr< GlobalObjectMapRecord > &  gtObjectMapRecord,
const unsigned int  numberPhysTriggers,
const int  nrL1Mu,
const int  nrL1MuShower,
const int  nrL1EG,
const int  nrL1Tau,
const int  nrL1Jet 
)

run the uGT GTL (Conditions and Algorithms)

DMP Start debugging here

Definition at line 484 of file GlobalBoard.cc.

References CorrelationThreeBodyTemplate::cond0Category(), CorrelationTemplate::cond0Category(), CorrelationWithOverlapRemovalTemplate::cond0Category(), CorrelationThreeBodyTemplate::cond0Index(), CorrelationTemplate::cond0Index(), CorrelationWithOverlapRemovalTemplate::cond0Index(), CorrelationThreeBodyTemplate::cond1Category(), CorrelationTemplate::cond1Category(), CorrelationWithOverlapRemovalTemplate::cond1Category(), CorrelationThreeBodyTemplate::cond1Index(), CorrelationTemplate::cond1Index(), CorrelationWithOverlapRemovalTemplate::cond1Index(), CorrelationThreeBodyTemplate::cond2Category(), CorrelationWithOverlapRemovalTemplate::cond2Category(), CorrelationThreeBodyTemplate::cond2Index(), CorrelationWithOverlapRemovalTemplate::cond2Index(), l1t::CondCalo, l1t::CondCorrelation, l1t::CondCorrelationThreeBody, l1t::CondCorrelationWithOverlapRemoval, l1t::CondEnergySum, l1t::CondExternal, l1t::CondMuon, l1t::CondMuonShower, l1t::CondNull, TriggerMenu::corCaloTemplate(), TriggerMenu::corEnergySumTemplate(), TriggerMenu::corMuonTemplate(), l1t::AlgorithmEvaluation::evaluateAlgorithm(), l1t::ConditionEvaluation::evaluateConditionStoreResult(), newFWLiteAna::found, l1t::GlobalScales::getScalesName(), l1t::AlgorithmEvaluation::gtAlgoCombinationVector(), l1t::AlgorithmEvaluation::gtAlgoResult(), TriggerMenu::gtAlgorithmMap(), TriggerMenu::gtConditionMap(), TriggerMenu::gtScales(), LogDebug, LogTrace, match(), l1t::AlgorithmEvaluation::operandTokenVector(), CalibrationSummaryClient_cfi::otype, print(), l1t::MuonShowerCondition::print(), l1t::ExternalCondition::print(), l1t::EnergySumCondition::print(), l1t::MuCondition::print(), l1t::CorrCondition::print(), l1t::CaloCondition::print(), l1t::CorrThreeBodyCondition::print(), l1t::CorrWithOverlapRemovalCondition::print(), l1t::AlgorithmEvaluation::print(), GlobalObjectMap::print(), GlobalObjectMap::setAlgoBitNumber(), GlobalObjectMap::setAlgoGtlResult(), GlobalObjectMap::setAlgoName(), l1t::CorrCondition::setScales(), l1t::CorrThreeBodyCondition::setScales(), l1t::CorrWithOverlapRemovalCondition::setScales(), l1t::ConditionEvaluation::setVerbosity(), AlCaHLTBitMon_QueryRunRegistry::string, GlobalObjectMap::swapCombinationVector(), GlobalObjectMap::swapObjectTypeVector(), and GlobalObjectMap::swapOperandTokenVector().

495  {
496  const std::vector<ConditionMap>& conditionMap = m_l1GtMenu->gtConditionMap();
497  const AlgorithmMap& algorithmMap = m_l1GtMenu->gtAlgorithmMap();
498  const GlobalScales& gtScales = m_l1GtMenu->gtScales();
499  const std::string scaleSetName = gtScales.getScalesName();
500  LogDebug("L1TGlobal") << " L1 Menu Scales -- Set Name: " << scaleSetName << std::endl;
501 
502  // Reset AlgBlk for this bx
503  m_uGtAlgBlk.reset();
504  m_algInitialOr = false;
505  m_algPrescaledOr = false;
506  m_algIntermOr = false;
507  m_algFinalOr = false;
508  m_algFinalOrVeto = false;
509 
510  const std::vector<std::vector<MuonTemplate>>& corrMuon = m_l1GtMenu->corMuonTemplate();
511 
512  // Comment out for now
513  const std::vector<std::vector<CaloTemplate>>& corrCalo = m_l1GtMenu->corCaloTemplate();
514 
515  const std::vector<std::vector<EnergySumTemplate>>& corrEnergySum = m_l1GtMenu->corEnergySumTemplate();
516 
517  LogDebug("L1TGlobal") << "Size corrMuon " << corrMuon.size() << "\nSize corrCalo " << corrCalo.size()
518  << "\nSize corrSums " << corrEnergySum.size() << std::endl;
519 
520  // loop over condition maps (one map per condition chip)
521  // then loop over conditions in the map
522  // save the results in temporary maps
523 
524  // never happens in production but at first event...
525  if (m_conditionResultMaps.size() != conditionMap.size()) {
526  m_conditionResultMaps.clear();
527  m_conditionResultMaps.resize(conditionMap.size());
528  }
529 
530  int iChip = -1;
531 
532  for (std::vector<ConditionMap>::const_iterator itCondOnChip = conditionMap.begin();
533  itCondOnChip != conditionMap.end();
534  itCondOnChip++) {
535  iChip++;
536 
538 
539  for (CItCond itCond = itCondOnChip->begin(); itCond != itCondOnChip->end(); itCond++) {
540  // evaluate condition
541  switch ((itCond->second)->condCategory()) {
542  case CondMuon: {
543  // BLW Not sure what to do with this for now
544  const int ifMuEtaNumberBits = 0;
545 
546  MuCondition* muCondition = new MuCondition(itCond->second, this, nrL1Mu, ifMuEtaNumberBits);
547 
548  muCondition->setVerbosity(m_verbosity);
549 
550  muCondition->evaluateConditionStoreResult(iBxInEvent);
551 
552  // BLW COmment out for now
553  cMapResults[itCond->first] = muCondition;
554 
555  if (m_verbosity && m_isDebugEnabled) {
556  std::ostringstream myCout;
557  muCondition->print(myCout);
558 
559  LogTrace("L1TGlobal") << myCout.str() << std::endl;
560  }
561  //delete muCondition;
562 
563  } break;
564  case CondMuonShower: {
565  MuonShowerCondition* muShowerCondition = new MuonShowerCondition(itCond->second, this, nrL1MuShower);
566 
567  muShowerCondition->setVerbosity(m_verbosity);
568 
569  muShowerCondition->evaluateConditionStoreResult(iBxInEvent);
570 
571  cMapResults[itCond->first] = muShowerCondition;
572 
573  if (m_verbosity && m_isDebugEnabled) {
574  std::ostringstream myCout;
575  muShowerCondition->print(myCout);
576 
577  edm::LogWarning("L1TGlobal") << "MuonShowerCondition " << myCout.str() << std::endl;
578  }
579  //delete muShowerCondition;
580 
581  } break;
582  case CondCalo: {
583  // BLW Not sure w hat to do with this for now
584  const int ifCaloEtaNumberBits = 0;
585 
586  CaloCondition* caloCondition =
587  new CaloCondition(itCond->second, this, nrL1EG, nrL1Jet, nrL1Tau, ifCaloEtaNumberBits);
588 
589  caloCondition->setVerbosity(m_verbosity);
590 
591  caloCondition->evaluateConditionStoreResult(iBxInEvent);
592 
593  cMapResults[itCond->first] = caloCondition;
594 
595  if (m_verbosity && m_isDebugEnabled) {
596  std::ostringstream myCout;
597  caloCondition->print(myCout);
598 
599  LogTrace("L1TGlobal") << myCout.str() << std::endl;
600  }
601  // delete caloCondition;
602 
603  } break;
604  case CondEnergySum: {
605  EnergySumCondition* eSumCondition = new EnergySumCondition(itCond->second, this);
606 
607  eSumCondition->setVerbosity(m_verbosity);
608  eSumCondition->evaluateConditionStoreResult(iBxInEvent);
609 
610  cMapResults[itCond->first] = eSumCondition;
611 
612  if (m_verbosity && m_isDebugEnabled) {
613  std::ostringstream myCout;
614  eSumCondition->print(myCout);
615 
616  LogTrace("L1TGlobal") << myCout.str() << std::endl;
617  }
618  // delete eSumCondition;
619 
620  } break;
621 
622  case CondExternal: {
623  ExternalCondition* extCondition = new ExternalCondition(itCond->second, this);
624 
625  extCondition->setVerbosity(m_verbosity);
626  extCondition->evaluateConditionStoreResult(iBxInEvent);
627 
628  cMapResults[itCond->first] = extCondition;
629 
630  if (m_verbosity && m_isDebugEnabled) {
631  std::ostringstream myCout;
632  extCondition->print(myCout);
633 
634  LogTrace("L1TGlobal") << myCout.str() << std::endl;
635  }
636  // delete extCondition;
637 
638  } break;
639  case CondCorrelation: {
640  // get first the sub-conditions
641  const CorrelationTemplate* corrTemplate = static_cast<const CorrelationTemplate*>(itCond->second);
642  const GtConditionCategory cond0Categ = corrTemplate->cond0Category();
643  const GtConditionCategory cond1Categ = corrTemplate->cond1Category();
644  const int cond0Ind = corrTemplate->cond0Index();
645  const int cond1Ind = corrTemplate->cond1Index();
646 
647  const GlobalCondition* cond0Condition = nullptr;
648  const GlobalCondition* cond1Condition = nullptr;
649 
650  // maximum number of objects received for evaluation of l1t::Type1s condition
651  int cond0NrL1Objects = 0;
652  int cond1NrL1Objects = 0;
653  LogDebug("L1TGlobal") << " cond0NrL1Objects" << cond0NrL1Objects << " cond1NrL1Objects " << cond1NrL1Objects
654  << std::endl;
655 
656  switch (cond0Categ) {
657  case CondMuon: {
658  cond0Condition = &((corrMuon[iChip])[cond0Ind]);
659  } break;
660  case CondCalo: {
661  cond0Condition = &((corrCalo[iChip])[cond0Ind]);
662  } break;
663  case CondEnergySum: {
664  cond0Condition = &((corrEnergySum[iChip])[cond0Ind]);
665  } break;
666  default: {
667  // do nothing, should not arrive here
668  } break;
669  }
670 
671  switch (cond1Categ) {
672  case CondMuon: {
673  cond1Condition = &((corrMuon[iChip])[cond1Ind]);
674  } break;
675  case CondCalo: {
676  cond1Condition = &((corrCalo[iChip])[cond1Ind]);
677  } break;
678  case CondEnergySum: {
679  cond1Condition = &((corrEnergySum[iChip])[cond1Ind]);
680  } break;
681  default: {
682  // do nothing, should not arrive here
683  } break;
684  }
685 
686  CorrCondition* correlationCond = new CorrCondition(itCond->second, cond0Condition, cond1Condition, this);
687 
688  correlationCond->setVerbosity(m_verbosity);
689  correlationCond->setScales(&gtScales);
690  correlationCond->evaluateConditionStoreResult(iBxInEvent);
691 
692  cMapResults[itCond->first] = correlationCond;
693 
694  if (m_verbosity && m_isDebugEnabled) {
695  std::ostringstream myCout;
696  correlationCond->print(myCout);
697 
698  LogTrace("L1TGlobal") << myCout.str() << std::endl;
699  }
700 
701  // delete correlationCond;
702 
703  } break;
705  // get first the sub-conditions
706  const CorrelationThreeBodyTemplate* corrTemplate =
707  static_cast<const CorrelationThreeBodyTemplate*>(itCond->second);
708  const GtConditionCategory cond0Categ = corrTemplate->cond0Category();
709  const GtConditionCategory cond1Categ = corrTemplate->cond1Category();
710  const GtConditionCategory cond2Categ = corrTemplate->cond2Category();
711  const int cond0Ind = corrTemplate->cond0Index();
712  const int cond1Ind = corrTemplate->cond1Index();
713  const int cond2Ind = corrTemplate->cond2Index();
714 
715  const GlobalCondition* cond0Condition = nullptr;
716  const GlobalCondition* cond1Condition = nullptr;
717  const GlobalCondition* cond2Condition = nullptr;
718 
719  // maximum number of objects received for evaluation of l1t::Type1s condition
720  int cond0NrL1Objects = 0;
721  int cond1NrL1Objects = 0;
722  int cond2NrL1Objects = 0;
723  LogDebug("L1TGlobal") << " cond0NrL1Objects " << cond0NrL1Objects << " cond1NrL1Objects "
724  << cond1NrL1Objects << " cond2NrL1Objects " << cond2NrL1Objects << std::endl;
725  if (cond0Categ == CondMuon) {
726  cond0Condition = &((corrMuon[iChip])[cond0Ind]);
727  } else {
728  LogDebug("L1TGlobal") << "No muon0 to evaluate three-body correlation condition";
729  }
730  if (cond1Categ == CondMuon) {
731  cond1Condition = &((corrMuon[iChip])[cond1Ind]);
732  } else {
733  LogDebug("L1TGlobal") << "No muon1 to evaluate three-body correlation condition";
734  }
735  if (cond2Categ == CondMuon) {
736  cond2Condition = &((corrMuon[iChip])[cond2Ind]);
737  } else {
738  LogDebug("L1TGlobal") << "No muon2 to evaluate three-body correlation condition";
739  }
740 
741  CorrThreeBodyCondition* correlationThreeBodyCond =
742  new CorrThreeBodyCondition(itCond->second, cond0Condition, cond1Condition, cond2Condition, this);
743 
744  correlationThreeBodyCond->setVerbosity(m_verbosity);
745  correlationThreeBodyCond->setScales(&gtScales);
746  correlationThreeBodyCond->evaluateConditionStoreResult(iBxInEvent);
747  cMapResults[itCond->first] = correlationThreeBodyCond;
748 
749  if (m_verbosity && m_isDebugEnabled) {
750  std::ostringstream myCout;
751  correlationThreeBodyCond->print(myCout);
752 
753  LogTrace("L1TGlobal") << myCout.str() << std::endl;
754  }
755  // delete correlationThreeBodyCond;
756  } break;
757 
759  // get first the sub-conditions
760  const CorrelationWithOverlapRemovalTemplate* corrTemplate =
761  static_cast<const CorrelationWithOverlapRemovalTemplate*>(itCond->second);
762  const GtConditionCategory cond0Categ = corrTemplate->cond0Category();
763  const GtConditionCategory cond1Categ = corrTemplate->cond1Category();
764  const GtConditionCategory cond2Categ = corrTemplate->cond2Category();
765  const int cond0Ind = corrTemplate->cond0Index();
766  const int cond1Ind = corrTemplate->cond1Index();
767  const int cond2Ind = corrTemplate->cond2Index();
768 
769  const GlobalCondition* cond0Condition = nullptr;
770  const GlobalCondition* cond1Condition = nullptr;
771  const GlobalCondition* cond2Condition = nullptr;
772 
773  // maximum number of objects received for evaluation of l1t::Type1s condition
774  int cond0NrL1Objects = 0;
775  int cond1NrL1Objects = 0;
776  int cond2NrL1Objects = 0;
777  LogDebug("L1TGlobal") << " cond0NrL1Objects" << cond0NrL1Objects << " cond1NrL1Objects " << cond1NrL1Objects
778  << " cond2NrL1Objects " << cond2NrL1Objects << std::endl;
779 
780  switch (cond0Categ) {
781  case CondMuon: {
782  cond0Condition = &((corrMuon[iChip])[cond0Ind]);
783  } break;
784  case CondCalo: {
785  cond0Condition = &((corrCalo[iChip])[cond0Ind]);
786  } break;
787  case CondEnergySum: {
788  cond0Condition = &((corrEnergySum[iChip])[cond0Ind]);
789  } break;
790  default: {
791  // do nothing, should not arrive here
792  } break;
793  }
794 
795  switch (cond1Categ) {
796  case CondMuon: {
797  cond1Condition = &((corrMuon[iChip])[cond1Ind]);
798  } break;
799  case CondCalo: {
800  cond1Condition = &((corrCalo[iChip])[cond1Ind]);
801  } break;
802  case CondEnergySum: {
803  cond1Condition = &((corrEnergySum[iChip])[cond1Ind]);
804  } break;
805  default: {
806  // do nothing, should not arrive here
807  } break;
808  }
809 
810  switch (cond2Categ) {
811  case CondMuon: {
812  cond2Condition = &((corrMuon[iChip])[cond2Ind]);
813  } break;
814  case CondCalo: {
815  cond2Condition = &((corrCalo[iChip])[cond2Ind]);
816  } break;
817  case CondEnergySum: {
818  cond2Condition = &((corrEnergySum[iChip])[cond2Ind]);
819  } break;
820  default: {
821  // do nothing, should not arrive here
822  } break;
823  }
824 
825  CorrWithOverlapRemovalCondition* correlationCondWOR =
826  new CorrWithOverlapRemovalCondition(itCond->second, cond0Condition, cond1Condition, cond2Condition, this);
827 
828  correlationCondWOR->setVerbosity(m_verbosity);
829  correlationCondWOR->setScales(&gtScales);
830  correlationCondWOR->evaluateConditionStoreResult(iBxInEvent);
831 
832  cMapResults[itCond->first] = correlationCondWOR;
833 
834  if (m_verbosity && m_isDebugEnabled) {
835  std::ostringstream myCout;
836  correlationCondWOR->print(myCout);
837 
838  LogTrace("L1TGlobal") << myCout.str() << std::endl;
839  }
840 
841  // delete correlationCondWOR;
842 
843  } break;
844  case CondNull: {
845  // do nothing
846 
847  } break;
848  default: {
849  // do nothing
850 
851  } break;
852  }
853  }
854  }
855 
856  // loop over algorithm map
858  // empty vector for object maps - filled during loop
859  std::vector<GlobalObjectMap> objMapVec;
860  if (produceL1GtObjectMapRecord && (iBxInEvent == 0))
861  objMapVec.reserve(numberPhysTriggers);
862 
863  for (CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
864  AlgorithmEvaluation gtAlg(itAlgo->second);
865  gtAlg.evaluateAlgorithm((itAlgo->second).algoChipNumber(), m_conditionResultMaps);
866 
867  int algBitNumber = (itAlgo->second).algoBitNumber();
868  bool algResult = gtAlg.gtAlgoResult();
869 
870  LogDebug("L1TGlobal") << " ===> for iBxInEvent = " << iBxInEvent << ":\t algBitName = " << itAlgo->first
871  << ",\t algBitNumber = " << algBitNumber << ",\t algResult = " << algResult << std::endl;
872 
873  if (algResult) {
874  // m_gtlAlgorithmOR.set(algBitNumber);
875  m_uGtAlgBlk.setAlgoDecisionInitial(algBitNumber, algResult);
876  m_algInitialOr = true;
877  }
878 
879  if (m_verbosity && m_isDebugEnabled) {
880  std::ostringstream myCout;
881  (itAlgo->second).print(myCout);
882  gtAlg.print(myCout);
883 
884  LogTrace("L1TGlobal") << myCout.str() << std::endl;
885  }
886 
887  // object maps only for BxInEvent = 0
888  if (produceL1GtObjectMapRecord && (iBxInEvent == 0)) {
889  std::vector<L1TObjectTypeInCond> otypes;
890  for (auto iop = gtAlg.operandTokenVector().begin(); iop != gtAlg.operandTokenVector().end(); ++iop) {
891  //cout << "INFO: operand name: " << iop->tokenName << "\n";
892  int myChip = -1;
893  int found = 0;
895  for (auto imap = conditionMap.begin(); imap != conditionMap.end(); imap++) {
896  myChip++;
897  auto match = imap->find(iop->tokenName);
898 
899  if (match != imap->end()) {
900  found = 1;
901  //cout << "DEBUG: found match for " << iop->tokenName << " at " << match->first << "\n";
902 
903  otype = match->second->objectType();
904 
905  for (auto itype = otype.begin(); itype != otype.end(); itype++) {
906  //cout << "type: " << *itype << "\n";
907  }
908  }
909  }
910  if (!found) {
911  edm::LogWarning("L1TGlobal") << "\n Failed to find match for operand token " << iop->tokenName << "\n";
912  } else {
913  otypes.push_back(otype);
914  }
915  }
916 
917  // set object map
918  GlobalObjectMap objMap;
919 
920  objMap.setAlgoName(itAlgo->first);
921  objMap.setAlgoBitNumber(algBitNumber);
922  objMap.setAlgoGtlResult(algResult);
923  objMap.swapOperandTokenVector(gtAlg.operandTokenVector());
924  objMap.swapCombinationVector(gtAlg.gtAlgoCombinationVector());
925  // gtAlg is empty now...
926  objMap.swapObjectTypeVector(otypes);
927 
928  if (m_verbosity && m_isDebugEnabled) {
929  std::ostringstream myCout1;
930  objMap.print(myCout1);
931 
932  LogTrace("L1TGlobal") << myCout1.str() << std::endl;
933  }
934 
935  objMapVec.push_back(objMap);
936  }
937  }
938 
939  // object maps only for BxInEvent = 0
940  if (produceL1GtObjectMapRecord && (iBxInEvent == 0)) {
941  gtObjectMapRecord->swapGtObjectMap(objMapVec);
942  }
943 
944  // loop over condition maps (one map per condition chip)
945  // then loop over conditions in the map
946  // delete the conditions created with new, zero pointer, do not clear map, keep the vector as is...
947  for (std::vector<AlgorithmEvaluation::ConditionEvaluationMap>::iterator itCondOnChip = m_conditionResultMaps.begin();
948  itCondOnChip != m_conditionResultMaps.end();
949  itCondOnChip++) {
950  for (AlgorithmEvaluation::ItEvalMap itCond = itCondOnChip->begin(); itCond != itCondOnChip->end(); itCond++) {
951  delete itCond->second;
952  itCond->second = nullptr;
953  }
954  }
955 }
void setAlgoBitNumber(int algoBitNumberValue)
const int cond0Index() const
get / set the index of the two sub-conditions in the cor* vector from menu
const l1t::GlobalScales & gtScales() const
get the scales
Definition: TriggerMenu.h:191
std::vector< l1t::GlobalObject > L1TObjectTypeInCond
void swapOperandTokenVector(std::vector< GlobalLogicParser::OperandToken > &operandTokenVectorValue)
const std::vector< std::vector< CaloTemplate > > & corCaloTemplate() const
Definition: TriggerMenu.h:168
void setAlgoDecisionInitial(unsigned int bit, bool val)
Set decision bits.
Definition: GlobalAlgBlk.cc:73
std::map< std::string, L1GtAlgorithm > AlgorithmMap
map containing the algorithms
ConditionMap::const_iterator CItCond
iterators through map containing the conditions
const l1t::AlgorithmMap & gtAlgorithmMap() const
get / set the algorithm map (by name)
Definition: TriggerMenu.h:181
const int cond1Index() const
const std::vector< std::vector< MuonTemplate > > & corMuonTemplate() const
Definition: TriggerMenu.h:163
const l1t::GtConditionCategory cond1Category() const
const int cond0Index() const
get / set the index of the two sub-conditions in the cor* vector from menu
void print(std::ostream &myCout) const
print the full object map
const l1t::GtConditionCategory cond1Category() const
void swapObjectTypeVector(std::vector< L1TObjectTypeInCond > &objectTypeVectorValue)
void swapCombinationVector(std::vector< CombinationsInCond > &combinationVectorValue)
ConditionEvaluationMap::iterator ItEvalMap
#define LogTrace(id)
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
const l1t::GtConditionCategory cond2Category() const
GtConditionCategory
condition categories
int m_verbosity
verbosity level
Definition: GlobalBoard.h:258
const l1t::GtConditionCategory cond0Category() const
get / set the category of the thre sub-conditions
const l1t::GtConditionCategory cond0Category() const
get / set the category of the two sub-conditions
void reset()
reset the content of a GlobalAlgBlk
const TriggerMenu * m_l1GtMenu
Definition: GlobalBoard.h:211
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47
const l1t::GtConditionCategory cond1Category() const
void setAlgoGtlResult(bool algoGtlResultValue)
GlobalAlgBlk m_uGtAlgBlk
Definition: GlobalBoard.h:244
void setAlgoName(const std::string &algoNameValue)
const std::vector< l1t::ConditionMap > & gtConditionMap() const
get / set / build the condition maps
Definition: TriggerMenu.h:79
const std::vector< std::vector< EnergySumTemplate > > & corEnergySumTemplate() const
Definition: TriggerMenu.h:174
const int cond0Index() const
get / set the index of the three subconditions in the cor* vector from menu
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
std::unordered_map< std::string, ConditionEvaluation * > ConditionEvaluationMap
copy constructor
const l1t::GtConditionCategory cond0Category() const
get / set the category of the three subconditions
Log< level::Warning, false > LogWarning
const l1t::GtConditionCategory cond2Category() const
#define LogDebug(id)
std::vector< AlgorithmEvaluation::ConditionEvaluationMap > m_conditionResultMaps
Definition: GlobalBoard.h:247

◆ semirandomNumber()

const std::vector< double > GlobalBoard::semirandomNumber ( const edm::Event iEvent,
const std::vector< double > &  prescaleFactorsAlgoTrig 
)
static

Definition at line 1172 of file GlobalBoard.cc.

References iEvent, and MillePedeFileConverter_cfg::out.

1173  {
1174  auto out = prescaleFactorsAlgoTrig;
1175  // pick a random number from a combination of run, lumi, event numbers
1176  std::srand(iEvent.id().run());
1177  std::srand(std::rand() + iEvent.id().luminosityBlock());
1178  // this causes different (semi)random number number for different streams
1179  // reminder: different streams have different initial event number
1180  std::srand(std::rand() + iEvent.id().event());
1181  // very large (semi)random number
1182  double const semirandom = std::rand();
1183  for (auto& ps : out) {
1184  // if the ps is smaller than 1 (e.g. ps=0, ps=1), it is not changed
1185  // else, replace ps with a semirandom integer in the [1,ps] range
1186  if (ps > 1) {
1187  auto nps = semirandom - floor(semirandom / ps) * ps;
1188  // if nps=0 or a wrong value (<0,>ps) use PS value (standard method)
1189  if (nps > 0 and nps <= ps)
1190  ps = nps;
1191  else {
1192  if (nps != 0) // complain only if nps <0 or nps >PS
1193  edm::LogWarning("L1TGlobal::semirandomNumber")
1194  << "\n The inital prescale counter obtained by L1TGlobal::semirandomNumber is wrong."
1195  << "\n This is probably do to the floating-point precision. Using the PS value."
1196  << "\n semirandom = " << semirandom << "\n PS = " << ps << "\n nps = " << nps
1197  << " <-- it should be in the range [0 , " << ps << "]" << std::endl;
1198  }
1199  }
1200  }
1201  return out;
1202 }
int iEvent
Definition: GenABIO.cc:224
Log< level::Warning, false > LogWarning

◆ setBxFirst()

void GlobalBoard::setBxFirst ( int  bx)

Definition at line 108 of file GlobalBoard.cc.

References simKBmtfDigis_cfi::bx.

◆ setBxLast()

void GlobalBoard::setBxLast ( int  bx)

Definition at line 110 of file GlobalBoard.cc.

References simKBmtfDigis_cfi::bx.

◆ setResetPSCountersEachLumiSec()

void l1t::GlobalBoard::setResetPSCountersEachLumiSec ( bool  val)
inline

Definition at line 201 of file GlobalBoard.h.

References m_resetPSCountersEachLumiSec, and heppy_batch::val.

◆ setSemiRandomInitialPSCounters()

void l1t::GlobalBoard::setSemiRandomInitialPSCounters ( bool  val)
inline

◆ setVerbosity()

void l1t::GlobalBoard::setVerbosity ( const int  verbosity)
inline

Definition at line 205 of file GlobalBoard.h.

References m_verbosity, and ctppsCommonDQMSource_cfi::verbosity.

Member Data Documentation

◆ m_algFinalOr

bool l1t::GlobalBoard::m_algFinalOr
private

Definition at line 265 of file GlobalBoard.h.

◆ m_algFinalOrVeto

bool l1t::GlobalBoard::m_algFinalOrVeto
private

Definition at line 266 of file GlobalBoard.h.

◆ m_algInitialOr

bool l1t::GlobalBoard::m_algInitialOr
private

Definition at line 262 of file GlobalBoard.h.

◆ m_algIntermOr

bool l1t::GlobalBoard::m_algIntermOr
private

Definition at line 263 of file GlobalBoard.h.

◆ m_algPrescaledOr

bool l1t::GlobalBoard::m_algPrescaledOr
private

Definition at line 264 of file GlobalBoard.h.

◆ m_boardEventCount

unsigned int l1t::GlobalBoard::m_boardEventCount
private

Definition at line 269 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_bxFirst_

int l1t::GlobalBoard::m_bxFirst_
private

Definition at line 238 of file GlobalBoard.h.

◆ m_bxLast_

int l1t::GlobalBoard::m_bxLast_
private

Definition at line 239 of file GlobalBoard.h.

◆ m_candL1EG

BXVector<const l1t::L1Candidate*>* l1t::GlobalBoard::m_candL1EG
private

Definition at line 227 of file GlobalBoard.h.

Referenced by getCandL1EG().

◆ m_candL1EtSum

BXVector<const l1t::EtSum*>* l1t::GlobalBoard::m_candL1EtSum
private

Definition at line 230 of file GlobalBoard.h.

Referenced by getCandL1EtSum().

◆ m_candL1External

BXVector<const GlobalExtBlk*>* l1t::GlobalBoard::m_candL1External
private

Definition at line 231 of file GlobalBoard.h.

Referenced by getCandL1External().

◆ m_candL1Jet

BXVector<const l1t::L1Candidate*>* l1t::GlobalBoard::m_candL1Jet
private

Definition at line 229 of file GlobalBoard.h.

Referenced by getCandL1Jet().

◆ m_candL1Mu

BXVector<const l1t::Muon*>* l1t::GlobalBoard::m_candL1Mu
private

Definition at line 225 of file GlobalBoard.h.

Referenced by getCandL1Mu().

◆ m_candL1MuShower

BXVector<const l1t::MuonShower*>* l1t::GlobalBoard::m_candL1MuShower
private

Definition at line 226 of file GlobalBoard.h.

Referenced by getCandL1MuShower().

◆ m_candL1Tau

BXVector<const l1t::L1Candidate*>* l1t::GlobalBoard::m_candL1Tau
private

Definition at line 228 of file GlobalBoard.h.

Referenced by getCandL1Tau().

◆ m_conditionResultMaps

std::vector<AlgorithmEvaluation::ConditionEvaluationMap> l1t::GlobalBoard::m_conditionResultMaps
private

Definition at line 247 of file GlobalBoard.h.

◆ m_currentLumi

uint l1t::GlobalBoard::m_currentLumi
private

Definition at line 254 of file GlobalBoard.h.

◆ m_firstEv

bool l1t::GlobalBoard::m_firstEv
private

Definition at line 252 of file GlobalBoard.h.

◆ m_firstEvLumiSegment

bool l1t::GlobalBoard::m_firstEvLumiSegment
private

Definition at line 253 of file GlobalBoard.h.

◆ m_gtlAlgorithmOR

std::bitset<GlobalAlgBlk::maxPhysicsTriggers> l1t::GlobalBoard::m_gtlAlgorithmOR
private

Definition at line 241 of file GlobalBoard.h.

Referenced by getAlgorithmOR(), and GlobalBoard().

◆ m_gtlDecisionWord

std::bitset<GlobalAlgBlk::maxPhysicsTriggers> l1t::GlobalBoard::m_gtlDecisionWord
private

Definition at line 242 of file GlobalBoard.h.

Referenced by getDecisionWord(), and GlobalBoard().

◆ m_isDebugEnabled

bool l1t::GlobalBoard::m_isDebugEnabled
private

Definition at line 259 of file GlobalBoard.h.

◆ m_l1CaloGeometry

const L1CaloGeometry* l1t::GlobalBoard::m_l1CaloGeometry
private

Definition at line 215 of file GlobalBoard.h.

◆ m_l1CaloGeometryCacheID

unsigned long long l1t::GlobalBoard::m_l1CaloGeometryCacheID
private

Definition at line 216 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_l1GtMenu

const TriggerMenu* l1t::GlobalBoard::m_l1GtMenu
private

Definition at line 211 of file GlobalBoard.h.

◆ m_l1GtMenuCacheID

unsigned long long l1t::GlobalBoard::m_l1GtMenuCacheID
private

Definition at line 212 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_l1MuTriggerScales

const L1MuTriggerScales* l1t::GlobalBoard::m_l1MuTriggerScales
private

Definition at line 218 of file GlobalBoard.h.

◆ m_l1MuTriggerScalesCacheID

unsigned long long l1t::GlobalBoard::m_l1MuTriggerScalesCacheID
private

Definition at line 219 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_prescaleCounterAlgoTrig

std::vector<std::vector<double> > l1t::GlobalBoard::m_prescaleCounterAlgoTrig
private

prescale counters: NumberPhysTriggers counters per bunch cross in event

Definition at line 250 of file GlobalBoard.h.

◆ m_resetPSCountersEachLumiSec

bool l1t::GlobalBoard::m_resetPSCountersEachLumiSec = true
private

Definition at line 276 of file GlobalBoard.h.

Referenced by setResetPSCountersEachLumiSec().

◆ m_semiRandomInitialPSCounters

bool l1t::GlobalBoard::m_semiRandomInitialPSCounters = false
private

Definition at line 279 of file GlobalBoard.h.

Referenced by setSemiRandomInitialPSCounters().

◆ m_uGtAlgBlk

GlobalAlgBlk l1t::GlobalBoard::m_uGtAlgBlk
private

Definition at line 244 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_uGtBoardNumber

int l1t::GlobalBoard::m_uGtBoardNumber
private

Definition at line 272 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_uGtFinalBoard

bool l1t::GlobalBoard::m_uGtFinalBoard
private

Definition at line 273 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_verbosity

int l1t::GlobalBoard::m_verbosity
private

verbosity level

Definition at line 258 of file GlobalBoard.h.

Referenced by setVerbosity().