CMS 3D CMS Logo

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

#include <GlobalBoard.h>

Classes

struct  PrescaleCounter
 

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< std::shared_ptr< 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 (const 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 (const edm::Event &, const edm::EDGetTokenT< BXVector< GlobalExtBlk >> &, const bool receiveExt)
 
void receiveMuonObjectData (const edm::Event &, const edm::EDGetTokenT< BXVector< l1t::Muon >> &, const bool receiveMu, const int nrL1Mu)
 
void receiveMuonShowerObjectData (const 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 (const 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 (const 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 Private Member Functions

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

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< std::shared_ptr< l1t::MuonShower > > * m_candL1MuShower
 
BXVector< const l1t::L1Candidate * > * m_candL1Tau
 
std::vector< AlgorithmEvaluation::ConditionEvaluationMapm_conditionResultMaps
 
unsigned int m_currentLumi
 
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< PrescaleCounter > > m_prescaleCounterAlgoTrig
 
bool m_resetPSCountersEachLumiSec = false
 
bool m_semiRandomInitialPSCounters = false
 
GlobalAlgBlk m_uGtAlgBlk
 
int m_uGtBoardNumber
 
bool m_uGtFinalBoard
 
int m_verbosity
 verbosity level More...
 

Static Private Attributes

static constexpr size_t m_singlestep = 100
 

Detailed Description

Definition at line 56 of file GlobalBoard.h.

Constructor & Destructor Documentation

◆ GlobalBoard()

GlobalBoard::GlobalBoard ( )

Definition at line 60 of file GlobalBoard.cc.

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

62  m_candL1MuShower(new BXVector<std::shared_ptr<l1t::MuonShower>>),
68  m_currentLumi(0),
71 
72  m_gtlAlgorithmOR.reset();
73  m_gtlDecisionWord.reset();
74 
76 
77  // Initialize cached IDs
78  m_l1GtMenuCacheID = 0ULL;
81 
82  // Counter for number of events board sees
84 
85  // A single uGT GlobalBoard is taken into account in the emulator
86  m_uGtBoardNumber = 0;
87  m_uGtFinalBoard = true;
88 }
bool isDebugEnabled()
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GlobalBoard.h:223
BXVector< std::shared_ptr< l1t::MuonShower > > * m_candL1MuShower
Definition: GlobalBoard.h:224
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GlobalBoard.h:225
unsigned long long m_l1MuTriggerScalesCacheID
Definition: GlobalBoard.h:217
unsigned int m_currentLumi
Definition: GlobalBoard.h:247
unsigned long long m_l1GtMenuCacheID
Definition: GlobalBoard.h:210
std::bitset< GlobalAlgBlk::maxPhysicsTriggers > m_gtlDecisionWord
Definition: GlobalBoard.h:240
unsigned int m_boardEventCount
Definition: GlobalBoard.h:262
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GlobalBoard.h:228
void reset()
reset the content of a GlobalAlgBlk
unsigned long long m_l1CaloGeometryCacheID
Definition: GlobalBoard.h:214
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GlobalBoard.h:227
std::vector< std::vector< PrescaleCounter > > m_prescaleCounterAlgoTrig
Definition: GlobalBoard.h:298
GlobalAlgBlk m_uGtAlgBlk
Definition: GlobalBoard.h:242
BXVector< const GlobalExtBlk * > * m_candL1External
Definition: GlobalBoard.h:229
std::bitset< GlobalAlgBlk::maxPhysicsTriggers > m_gtlAlgorithmOR
Definition: GlobalBoard.h:239
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GlobalBoard.h:226

◆ ~GlobalBoard()

GlobalBoard::~GlobalBoard ( )
virtual

Definition at line 91 of file GlobalBoard.cc.

91  {
92  //reset(); //why would we need a reset?
93  delete m_candL1Mu;
94  delete m_candL1MuShower;
95  delete m_candL1EG;
96  delete m_candL1Tau;
97  delete m_candL1Jet;
98  delete m_candL1EtSum;
99  delete m_candL1External;
100 }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GlobalBoard.h:223
BXVector< std::shared_ptr< l1t::MuonShower > > * m_candL1MuShower
Definition: GlobalBoard.h:224
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GlobalBoard.h:225
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GlobalBoard.h:228
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GlobalBoard.h:227
BXVector< const GlobalExtBlk * > * m_candL1External
Definition: GlobalBoard.h:229
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GlobalBoard.h:226

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 1067 of file GlobalBoard.cc.

References LogDebug.

1071  {
1072  if (m_verbosity) {
1073  LogDebug("L1TGlobal") << "\n**** GlobalBoard fill DAQ Records for bx= " << iBxInEvent;
1074  }
1075 
1076  // Set header information
1077  m_uGtAlgBlk.setbxInEventNr((iBxInEvent & 0xF));
1078  m_uGtAlgBlk.setPreScColumn(prescaleSet);
1079  m_uGtAlgBlk.setL1MenuUUID(menuUUID);
1080  m_uGtAlgBlk.setL1FirmwareUUID(firmwareUUID);
1081 
1085 
1086  uGtAlgRecord->push_back(iBxInEvent, m_uGtAlgBlk);
1087 }
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:251
void setFinalOR(bool fOR)
Definition: GlobalAlgBlk.h:60
void setFinalORVeto(bool fOR)
Definition: GlobalAlgBlk.h:58
GlobalAlgBlk m_uGtAlgBlk
Definition: GlobalBoard.h:242
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 147 of file GlobalBoard.h.

References m_gtlAlgorithmOR.

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

◆ getCandL1EG()

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

pointer to EG data list

Definition at line 156 of file GlobalBoard.h.

References m_candL1EG.

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

◆ getCandL1EtSum()

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

pointer to Tau data list

Definition at line 165 of file GlobalBoard.h.

References m_candL1EtSum.

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

◆ getCandL1External()

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

pointer to Tau data list

Definition at line 168 of file GlobalBoard.h.

References m_candL1External.

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

◆ getCandL1Jet()

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

pointer to Jet data list

Definition at line 159 of file GlobalBoard.h.

References m_candL1Jet.

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

◆ getCandL1Mu()

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

return global muon trigger candidate

Definition at line 150 of file GlobalBoard.h.

References m_candL1Mu.

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

◆ getCandL1MuShower()

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

return global muon trigger candidate

Definition at line 153 of file GlobalBoard.h.

References m_candL1MuShower.

153 { return m_candL1MuShower; }
BXVector< std::shared_ptr< l1t::MuonShower > > * m_candL1MuShower
Definition: GlobalBoard.h:224

◆ getCandL1Tau()

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

pointer to Tau data list

Definition at line 162 of file GlobalBoard.h.

References m_candL1Tau.

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

◆ getDecisionWord()

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

return decision

Definition at line 144 of file GlobalBoard.h.

References m_gtlDecisionWord.

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

◆ 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 107 of file GlobalBoard.cc.

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

114  {
116  setBxLast(bxLast);
117 
125 
126  m_uGtAlgBlk.reset();
127 
128  LogDebug("L1TGlobal") << "\t Initializing Board with bxFirst = " << m_bxFirst_ << ", bxLast = " << m_bxLast_;
129 }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GlobalBoard.h:223
BXVector< std::shared_ptr< l1t::MuonShower > > * m_candL1MuShower
Definition: GlobalBoard.h:224
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GlobalBoard.h:225
void setBxLast(int bx)
Definition: GlobalBoard.cc:105
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GlobalBoard.h:228
void reset()
reset the content of a GlobalAlgBlk
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GlobalBoard.h:227
GlobalAlgBlk m_uGtAlgBlk
Definition: GlobalBoard.h:242
BXVector< const GlobalExtBlk * > * m_candL1External
Definition: GlobalBoard.h:229
void setBxFirst(int bx)
Definition: GlobalBoard.cc:103
void setBXRange(int bxFirst, int bxLast)
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GlobalBoard.h:226
#define LogDebug(id)

◆ prescaleCounters()

std::vector< l1t::GlobalBoard::PrescaleCounter > GlobalBoard::prescaleCounters ( std::vector< double > const &  prescaleFactorsAlgoTrig)
staticprivate

Definition at line 1141 of file GlobalBoard.cc.

References MillePedeFileConverter_cfg::out.

1142  {
1143  std::vector<PrescaleCounter> out;
1144  out.reserve(prescaleFactorsAlgoTrig.size());
1145  for (size_t iAlgo = 0; iAlgo < prescaleFactorsAlgoTrig.size(); ++iAlgo) {
1146  out.emplace_back(prescaleFactorsAlgoTrig[iAlgo]);
1147  }
1148  return out;
1149 }

◆ prescaleCountersWithSemirandomInitialCounter()

std::vector< l1t::GlobalBoard::PrescaleCounter > GlobalBoard::prescaleCountersWithSemirandomInitialCounter ( std::vector< double > const &  prescaleFactorsAlgoTrig,
edm::Event const &  iEvent 
)
staticprivate

Definition at line 1152 of file GlobalBoard.cc.

References iEvent, and MillePedeFileConverter_cfg::out.

1153  {
1154  // pick a (semi)random number seeding based on run, lumi, event numbers,
1155  // this leads to different (semi)random numbers for different streams,
1156  // reminder: different streams have different initial event number
1157  std::srand(iEvent.id().run());
1158  std::srand(std::rand() + iEvent.id().luminosityBlock());
1159  std::srand(std::rand() + iEvent.id().event());
1160  int const semirandom = std::rand();
1161 
1162  std::vector<PrescaleCounter> out;
1163  out.reserve(prescaleFactorsAlgoTrig.size());
1164 
1165  for (size_t iAlgo = 0; iAlgo < prescaleFactorsAlgoTrig.size(); ++iAlgo) {
1166  out.emplace_back(prescaleFactorsAlgoTrig[iAlgo]);
1167  // initialise trigger_counter to a (semi)random integer
1168  // between 0 and prescale_count - 1 (both inclusive)
1169  // (this only changes the behaviour of triggers with PS > 1)
1170  auto& prescaleCounter = out.back();
1171  if (prescaleCounter.prescale_count > 0) {
1172  prescaleCounter.trigger_counter = semirandom % prescaleCounter.prescale_count;
1173  }
1174  }
1175 
1176  return out;
1177 }
int iEvent
Definition: GenABIO.cc:224

◆ printGmtData()

void GlobalBoard::printGmtData ( const int  iBxInEvent) const

print received Muon dataWord

Definition at line 1133 of file GlobalBoard.cc.

References LogTrace.

1133  {
1134  LogTrace("L1TGlobal") << "\nl1t::L1GlobalTrigger: uGMT data received for BxInEvent = " << iBxInEvent;
1135 
1136  int nrL1Mu = m_candL1Mu->size(iBxInEvent);
1137  LogTrace("L1TGlobal") << "Number of GMT muons = " << nrL1Mu << "\n";
1138 }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GlobalBoard.h:223
#define LogTrace(id)
unsigned size(int bx) const

◆ receiveCaloObjectData()

void GlobalBoard::receiveCaloObjectData ( const 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 132 of file GlobalBoard.cc.

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

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

Definition at line 432 of file GlobalBoard.cc.

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

434  {
435  if (m_verbosity) {
436  LogDebug("L1TGlobal") << "\n**** GlobalBoard receiving external data = ";
437  //<< "\n from input tag " << muInputTag << "\n"
438  }
439 
440  resetExternal();
441 
442  // get data from Global Muon Trigger
443  if (receiveExt) {
445  iEvent.getByToken(extInputToken, extData);
446 
447  if (!extData.isValid()) {
448  if (m_verbosity) {
449  edm::LogWarning("L1TGlobal") << "\nWarning: BXVector<GlobalExtBlk> with input tag "
450  //<< muInputTag
451  << "\nrequested in configuration, but not found in the event.\n";
452  }
453  } else {
454  // bx in muon data
455  for (int i = extData->getFirstBX(); i <= extData->getLastBX(); ++i) {
456  // Prevent from pushing back bx that is outside of allowed range
457  if (i < m_bxFirst_ || i > m_bxLast_)
458  continue;
459 
460  //Loop over ext in this bx
461  for (std::vector<GlobalExtBlk>::const_iterator ext = extData->begin(i); ext != extData->end(i); ++ext) {
462  (*m_candL1External).push_back(i, &(*ext));
463  } //end loop over ext in bx
464  } //end loop over bx
465  } //end if over valid ext data
466  } //end if ReceiveExt data
467 }
int m_verbosity
verbosity level
Definition: GlobalBoard.h:251
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 ( const edm::Event iEvent,
const edm::EDGetTokenT< BXVector< l1t::Muon >> &  muInputToken,
const bool  receiveMu,
const int  nrL1Mu 
)

Definition at line 320 of file GlobalBoard.cc.

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

323  {
324  if (m_verbosity) {
325  LogDebug("L1TGlobal") << "\n**** GlobalBoard receiving muon data = ";
326  //<< "\n from input tag " << muInputTag << "\n"
327  }
328 
329  resetMu();
330 
331  // get data from Global Muon Trigger
332  if (receiveMu) {
334  iEvent.getByToken(muInputToken, muonData);
335 
336  if (!muonData.isValid()) {
337  if (m_verbosity) {
338  edm::LogWarning("L1TGlobal") << "\nWarning: BXVector<l1t::Muon> with input tag "
339  //<< muInputTag
340  << "\nrequested in configuration, but not found in the event.\n";
341  }
342  } else {
343  // bx in muon data
344  for (int i = muonData->getFirstBX(); i <= muonData->getLastBX(); ++i) {
345  // Prevent from pushing back bx that is outside of allowed range
346  if (i < m_bxFirst_ || i > m_bxLast_)
347  continue;
348 
349  //Loop over Muons in this bx
350  int nObj = 0;
351  for (std::vector<l1t::Muon>::const_iterator mu = muonData->begin(i); mu != muonData->end(i); ++mu) {
352  if (nObj < nrL1Mu) {
353  (*m_candL1Mu).push_back(i, &(*mu));
354  } else {
355  edm::LogWarning("L1TGlobal") << " Too many Muons (" << nObj << ") for uGT Configuration maxMu =" << nrL1Mu;
356  }
357 
358  LogDebug("L1TGlobal") << "Muon Pt " << mu->hwPt() << " EtaAtVtx " << mu->hwEtaAtVtx() << " PhiAtVtx "
359  << mu->hwPhiAtVtx() << " Qual " << mu->hwQual() << " Iso " << mu->hwIso();
360  nObj++;
361  } //end loop over muons in bx
362  } //end loop over bx
363  } //end if over valid muon data
364  } //end if ReceiveMuon data
365 }
int m_verbosity
verbosity level
Definition: GlobalBoard.h:251
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 ( const edm::Event iEvent,
const edm::EDGetTokenT< BXVector< l1t::MuonShower >> &  muShowerInputToken,
const bool  receiveMuShower,
const int  nrL1MuShower 
)

Definition at line 368 of file GlobalBoard.cc.

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

371  {
372  // get data from Global Muon Trigger
373  if (receiveMuShower) {
375  iEvent.getByToken(muShowerInputToken, muonData);
376 
377  if (!muonData.isValid()) {
378  if (m_verbosity) {
379  edm::LogWarning("L1TGlobal") << "\nWarning: BXVector<l1t::MuonShower> with input tag "
380  << "\nrequested in configuration, but not found in the event.\n";
381  }
382  } else {
383  // Loop over bx in muon data
384  for (int i = muonData->getFirstBX(); i <= muonData->getLastBX(); ++i) {
385  // Prevent from pushing back bx that is outside of allowed range
386  if (i < m_bxFirst_ || i > m_bxLast_)
387  continue;
388 
389  // Loop over Muon Showers in this bx
390  int nObj = 0;
391  for (std::vector<l1t::MuonShower>::const_iterator mu = muonData->begin(i); mu != muonData->end(i); ++mu) {
392  if (nObj < nrL1MuShower) {
393  /* NOTE: here the single object is split up into 5 separate MuonShower objects
394  similarly to the description in the UTM library, where the conditions are four different objects.
395  */
396 
397  std::shared_ptr<l1t::MuonShower> musOneNominalInTime =
398  std::make_shared<l1t::MuonShower>(false, false, false, false, false, false);
399  std::shared_ptr<l1t::MuonShower> musOneTightInTime =
400  std::make_shared<l1t::MuonShower>(false, false, false, false, false, false);
401  std::shared_ptr<l1t::MuonShower> musTwoLooseDiffSectorsInTime =
402  std::make_shared<l1t::MuonShower>(false, false, false, false, false, false);
403  std::shared_ptr<l1t::MuonShower> musOutOfTime0 =
404  std::make_shared<l1t::MuonShower>(false, false, false, false, false, false);
405  std::shared_ptr<l1t::MuonShower> musOutOfTime1 =
406  std::make_shared<l1t::MuonShower>(false, false, false, false, false, false);
407 
408  musOneNominalInTime->setOneNominalInTime(mu->isOneNominalInTime());
409  musOneTightInTime->setOneTightInTime(mu->isOneTightInTime());
410  musTwoLooseDiffSectorsInTime->setTwoLooseDiffSectorsInTime(mu->isTwoLooseDiffSectorsInTime());
411  musOutOfTime0->setMusOutOfTime0(mu->musOutOfTime0());
412  musOutOfTime1->setMusOutOfTime1(mu->musOutOfTime1());
413 
414  (*m_candL1MuShower).push_back(i, musOneNominalInTime);
415  (*m_candL1MuShower).push_back(i, musOneTightInTime);
416  (*m_candL1MuShower).push_back(i, musTwoLooseDiffSectorsInTime);
417  (*m_candL1MuShower).push_back(i, musOutOfTime0);
418  (*m_candL1MuShower).push_back(i, musOutOfTime1);
419 
420  } else {
421  edm::LogWarning("L1TGlobal") << " Too many Muon Showers (" << nObj
422  << ") for uGT Configuration maxMuShower =" << nrL1MuShower;
423  }
424  nObj++;
425  } //end loop over muon showers in bx
426  } //end loop over bx
427  } //end if over valid muon shower data
428  } //end if ReceiveMuonShower data
429 }
int m_verbosity
verbosity level
Definition: GlobalBoard.h:251
int iEvent
Definition: GenABIO.cc:224
bool isValid() const
Definition: HandleBase.h:70
Log< level::Warning, false > LogWarning

◆ reset()

void GlobalBoard::reset ( void  )

clear uGT

Definition at line 1090 of file GlobalBoard.cc.

1090  {
1091  resetMu();
1092  resetMuonShower();
1093  resetCalo();
1094  resetExternal();
1095 
1096  m_uGtAlgBlk.reset();
1097 
1098  m_gtlDecisionWord.reset();
1099  m_gtlAlgorithmOR.reset();
1100 }
std::bitset< GlobalAlgBlk::maxPhysicsTriggers > m_gtlDecisionWord
Definition: GlobalBoard.h:240
void reset()
reset the content of a GlobalAlgBlk
GlobalAlgBlk m_uGtAlgBlk
Definition: GlobalBoard.h:242
std::bitset< GlobalAlgBlk::maxPhysicsTriggers > m_gtlAlgorithmOR
Definition: GlobalBoard.h:239

◆ resetCalo()

void GlobalBoard::resetCalo ( )

Definition at line 1115 of file GlobalBoard.cc.

1115  {
1116  m_candL1EG->clear();
1117  m_candL1Tau->clear();
1118  m_candL1Jet->clear();
1119  m_candL1EtSum->clear();
1120 
1125 }
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GlobalBoard.h:225
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GlobalBoard.h:228
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GlobalBoard.h:227
void clear()
void setBXRange(int bxFirst, int bxLast)
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GlobalBoard.h:226

◆ resetExternal()

void GlobalBoard::resetExternal ( )

Definition at line 1127 of file GlobalBoard.cc.

1127  {
1130 }
BXVector< const GlobalExtBlk * > * m_candL1External
Definition: GlobalBoard.h:229
void clear()
void setBXRange(int bxFirst, int bxLast)

◆ resetMu()

void GlobalBoard::resetMu ( )

Definition at line 1103 of file GlobalBoard.cc.

1103  {
1104  m_candL1Mu->clear();
1106 }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GlobalBoard.h:223
void clear()
void setBXRange(int bxFirst, int bxLast)

◆ resetMuonShower()

void GlobalBoard::resetMuonShower ( )

Definition at line 1109 of file GlobalBoard.cc.

1109  {
1112 }
BXVector< std::shared_ptr< l1t::MuonShower > > * m_candL1MuShower
Definition: GlobalBoard.h:224
void clear()
void setBXRange(int bxFirst, int bxLast)

◆ runFDL()

void GlobalBoard::runFDL ( const 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 946 of file GlobalBoard.cc.

References iEvent, LogDebug, and or.

954  {
955  if (m_verbosity) {
956  LogDebug("L1TGlobal") << "\n**** GlobalBoard apply Final Decision Logic ";
957  }
958 
959  // update and clear prescales at the beginning of the luminosity segment
960  if (m_prescaleCounterAlgoTrig.empty() or
961  (m_currentLumi != iEvent.luminosityBlock() and m_resetPSCountersEachLumiSec)) {
963  m_prescaleCounterAlgoTrig.reserve(totalBxInEvent);
964  auto const& prescaleCountersAlgoTrig =
966  : prescaleCounters(prescaleFactorsAlgoTrig);
967  for (int iBxInEvent = 0; iBxInEvent < totalBxInEvent; ++iBxInEvent) {
968  m_prescaleCounterAlgoTrig.push_back(prescaleCountersAlgoTrig);
969  }
970 
971  m_currentLumi = iEvent.luminosityBlock();
972  }
973 
974  // Copy Algorithm bits to Prescaled word
975  // Prescaling and Masking done below if requested.
977 
978  // -------------------------------------------
979  // Apply Prescales or skip if turned off
980  // -------------------------------------------
981  if (!algorithmTriggersUnprescaled) {
982  // iBxInEvent is ... -2 -1 0 1 2 ... while counters are 0 1 2 3 4 ...
983  int const inBxInEvent = totalBxInEvent / 2 + iBxInEvent;
984 
985  bool temp_algPrescaledOr = false;
986  bool alreadyReported = false;
987  for (unsigned int iBit = 0; iBit < numberPhysTriggers; ++iBit) {
988  bool const bitValue = m_uGtAlgBlk.getAlgoDecisionInitial(iBit);
989  if (bitValue) {
990  // Make sure algo bit in range, warn otherwise
991  if (iBit < prescaleFactorsAlgoTrig.size()) {
992  if (prescaleFactorsAlgoTrig.at(iBit) != 1) {
993  bool const triggered = m_prescaleCounterAlgoTrig.at(inBxInEvent).at(iBit).accept();
994  if (triggered) {
995  temp_algPrescaledOr = true;
996  } else {
997  // change bit to false in prescaled word and final decision word
998  m_uGtAlgBlk.setAlgoDecisionInterm(iBit, false);
999  } //if Prescale counter reached zero
1000  } //if prescale factor is not 1 (ie. no prescale)
1001  else {
1002  temp_algPrescaledOr = true;
1003  }
1004  } // require bit in range
1005  else if (!alreadyReported) {
1006  alreadyReported = true;
1007  edm::LogWarning("L1TGlobal") << "\nWarning: algoBit >= prescaleFactorsAlgoTrig.size() in bx " << iBxInEvent;
1008  }
1009  } //if algo bit is set true
1010  } //loop over alg bits
1011 
1012  m_algPrescaledOr = temp_algPrescaledOr; //temp
1013 
1014  } else {
1015  // Since not Prescaling just take OR of Initial Work
1017 
1018  } //if we are going to apply prescales.
1019 
1020  // Copy Algorithm bits fron Prescaled word to Final Word
1021  // Masking done below if requested.
1023 
1024  if (!algorithmTriggersUnmasked) {
1025  bool temp_algFinalOr = false;
1026  bool alreadyReported = false;
1027  for (unsigned int iBit = 0; iBit < numberPhysTriggers; ++iBit) {
1028  const bool bitValue = m_uGtAlgBlk.getAlgoDecisionInterm(iBit);
1029 
1030  if (bitValue) {
1031  //bool isMasked = ( triggerMaskAlgoTrig.at(iBit) == 0 );
1032  bool isMasked = false;
1033  if (iBit < triggerMaskAlgoTrig.size())
1034  isMasked = (triggerMaskAlgoTrig.at(iBit) == 0);
1035  else if (!alreadyReported) {
1036  alreadyReported = true;
1037  edm::LogWarning("L1TGlobal") << "\nWarning: algoBit >= triggerMaskAlgoTrig.size() in bx " << iBxInEvent;
1038  }
1039 
1040  bool const passMask = (bitValue && !isMasked);
1041 
1042  if (passMask)
1043  temp_algFinalOr = true;
1044  else
1045  m_uGtAlgBlk.setAlgoDecisionFinal(iBit, false);
1046 
1047  // Check if veto mask is true, if it is, set the event veto flag.
1048  if (triggerMaskVetoAlgoTrig.at(iBit) == 1)
1049  m_algFinalOrVeto = true;
1050  }
1051  }
1052 
1053  m_algIntermOr = temp_algFinalOr;
1054 
1055  } else {
1057 
1058  }
1059 
1060  // --------------------------
1061  // Set FinalOR for this board
1062  // --------------------------
1064 }
void copyIntermToFinal()
Definition: GlobalAlgBlk.h:74
static std::vector< PrescaleCounter > prescaleCountersWithSemirandomInitialCounter(std::vector< double > const &prescaleFactorsAlgoTrig, edm::Event const &iEvent)
void copyInitialToInterm()
Copy vectors words.
Definition: GlobalAlgBlk.h:73
bool m_semiRandomInitialPSCounters
Definition: GlobalBoard.h:272
unsigned int m_currentLumi
Definition: GlobalBoard.h:247
static std::vector< PrescaleCounter > prescaleCounters(std::vector< double > const &prescaleFactorsAlgoTrig)
int m_verbosity
verbosity level
Definition: GlobalBoard.h:251
int iEvent
Definition: GenABIO.cc:224
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
void setAlgoDecisionInterm(unsigned int bit, bool val)
Definition: GlobalAlgBlk.cc:84
std::vector< std::vector< PrescaleCounter > > m_prescaleCounterAlgoTrig
Definition: GlobalBoard.h:298
GlobalAlgBlk m_uGtAlgBlk
Definition: GlobalBoard.h:242
std::vector< bool > const & getAlgoDecisionInterm() const
Definition: GlobalAlgBlk.h:83
std::vector< bool > const & getAlgoDecisionInitial() const
Get decision bits.
Definition: GlobalAlgBlk.h:82
Log< level::Warning, false > LogWarning
bool m_resetPSCountersEachLumiSec
Definition: GlobalBoard.h:269
void setAlgoDecisionFinal(unsigned int bit, bool val)
Definition: GlobalAlgBlk.cc:94
#define LogDebug(id)

◆ runGTL()

void GlobalBoard::runGTL ( const 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)

Definition at line 470 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, l1t::AlgorithmEvaluation::operandTokenVector(), CalibrationSummaryClient_cfi::otype, print(), l1t::MuonShowerCondition::print(), l1t::MuCondition::print(), l1t::EnergySumCondition::print(), l1t::ExternalCondition::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().

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

◆ setBxFirst()

void GlobalBoard::setBxFirst ( int  bx)

Definition at line 103 of file GlobalBoard.cc.

References nano_mu_digi_cff::bx.

◆ setBxLast()

void GlobalBoard::setBxLast ( int  bx)

Definition at line 105 of file GlobalBoard.cc.

References nano_mu_digi_cff::bx.

◆ setResetPSCountersEachLumiSec()

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

Definition at line 199 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 203 of file GlobalBoard.h.

References m_verbosity, and verbosity.

203 { m_verbosity = verbosity; }
int m_verbosity
verbosity level
Definition: GlobalBoard.h:251
const int verbosity

Member Data Documentation

◆ m_algFinalOr

bool l1t::GlobalBoard::m_algFinalOr
private

Definition at line 258 of file GlobalBoard.h.

◆ m_algFinalOrVeto

bool l1t::GlobalBoard::m_algFinalOrVeto
private

Definition at line 259 of file GlobalBoard.h.

◆ m_algInitialOr

bool l1t::GlobalBoard::m_algInitialOr
private

Definition at line 255 of file GlobalBoard.h.

◆ m_algIntermOr

bool l1t::GlobalBoard::m_algIntermOr
private

Definition at line 256 of file GlobalBoard.h.

◆ m_algPrescaledOr

bool l1t::GlobalBoard::m_algPrescaledOr
private

Definition at line 257 of file GlobalBoard.h.

◆ m_boardEventCount

unsigned int l1t::GlobalBoard::m_boardEventCount
private

Definition at line 262 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_bxFirst_

int l1t::GlobalBoard::m_bxFirst_
private

Definition at line 236 of file GlobalBoard.h.

◆ m_bxLast_

int l1t::GlobalBoard::m_bxLast_
private

Definition at line 237 of file GlobalBoard.h.

◆ m_candL1EG

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

Definition at line 225 of file GlobalBoard.h.

Referenced by getCandL1EG().

◆ m_candL1EtSum

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

Definition at line 228 of file GlobalBoard.h.

Referenced by getCandL1EtSum().

◆ m_candL1External

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

Definition at line 229 of file GlobalBoard.h.

Referenced by getCandL1External().

◆ m_candL1Jet

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

Definition at line 227 of file GlobalBoard.h.

Referenced by getCandL1Jet().

◆ m_candL1Mu

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

Definition at line 223 of file GlobalBoard.h.

Referenced by getCandL1Mu().

◆ m_candL1MuShower

BXVector<std::shared_ptr<l1t::MuonShower> >* l1t::GlobalBoard::m_candL1MuShower
private

Definition at line 224 of file GlobalBoard.h.

Referenced by getCandL1MuShower().

◆ m_candL1Tau

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

Definition at line 226 of file GlobalBoard.h.

Referenced by getCandL1Tau().

◆ m_conditionResultMaps

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

Definition at line 245 of file GlobalBoard.h.

◆ m_currentLumi

unsigned int l1t::GlobalBoard::m_currentLumi
private

Definition at line 247 of file GlobalBoard.h.

◆ m_gtlAlgorithmOR

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

Definition at line 239 of file GlobalBoard.h.

Referenced by getAlgorithmOR(), and GlobalBoard().

◆ m_gtlDecisionWord

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

Definition at line 240 of file GlobalBoard.h.

Referenced by getDecisionWord(), and GlobalBoard().

◆ m_isDebugEnabled

bool l1t::GlobalBoard::m_isDebugEnabled
private

Definition at line 252 of file GlobalBoard.h.

◆ m_l1CaloGeometry

const L1CaloGeometry* l1t::GlobalBoard::m_l1CaloGeometry
private

Definition at line 213 of file GlobalBoard.h.

◆ m_l1CaloGeometryCacheID

unsigned long long l1t::GlobalBoard::m_l1CaloGeometryCacheID
private

Definition at line 214 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_l1GtMenu

const TriggerMenu* l1t::GlobalBoard::m_l1GtMenu
private

Definition at line 209 of file GlobalBoard.h.

◆ m_l1GtMenuCacheID

unsigned long long l1t::GlobalBoard::m_l1GtMenuCacheID
private

Definition at line 210 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_l1MuTriggerScales

const L1MuTriggerScales* l1t::GlobalBoard::m_l1MuTriggerScales
private

Definition at line 216 of file GlobalBoard.h.

◆ m_l1MuTriggerScalesCacheID

unsigned long long l1t::GlobalBoard::m_l1MuTriggerScalesCacheID
private

Definition at line 217 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_prescaleCounterAlgoTrig

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

Definition at line 298 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_resetPSCountersEachLumiSec

bool l1t::GlobalBoard::m_resetPSCountersEachLumiSec = false
private

Definition at line 269 of file GlobalBoard.h.

Referenced by setResetPSCountersEachLumiSec().

◆ m_semiRandomInitialPSCounters

bool l1t::GlobalBoard::m_semiRandomInitialPSCounters = false
private

Definition at line 272 of file GlobalBoard.h.

Referenced by setSemiRandomInitialPSCounters().

◆ m_singlestep

constexpr size_t l1t::GlobalBoard::m_singlestep = 100
staticprivate

Definition at line 277 of file GlobalBoard.h.

Referenced by l1t::GlobalBoard::PrescaleCounter::PrescaleCounter().

◆ m_uGtAlgBlk

GlobalAlgBlk l1t::GlobalBoard::m_uGtAlgBlk
private

Definition at line 242 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_uGtBoardNumber

int l1t::GlobalBoard::m_uGtBoardNumber
private

Definition at line 265 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_uGtFinalBoard

bool l1t::GlobalBoard::m_uGtFinalBoard
private

Definition at line 266 of file GlobalBoard.h.

Referenced by GlobalBoard().

◆ m_verbosity

int l1t::GlobalBoard::m_verbosity
private

verbosity level

Definition at line 251 of file GlobalBoard.h.

Referenced by setVerbosity().