CMS 3D CMS Logo

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

#include <MuCondition.h>

Inheritance diagram for l1t::MuCondition:
l1t::ConditionEvaluation

Public Member Functions

const bool evaluateCondition (const int bxEval) const override
 the core function to check if the condition matches More...
 
const int gtCorrParDeltaPhiNrBins () const
 get / set maximum number of bins for the delta phi scales More...
 
const GlobalBoardgtGTL () const
 get / set the pointer to GTL More...
 
const int gtIfMuEtaNumberBits () const
 get / set the number of bits for eta of muon objects More...
 
const MuonTemplategtMuonTemplate () const
 get / set the pointer to a Condition More...
 
 MuCondition ()
 
 MuCondition (const GlobalCondition *, const GlobalBoard *, const int nrL1Mu, const int ifMuEtaNumberBits)
 from base template condition (from event setup usually) More...
 
 MuCondition (const MuCondition &)
 
MuConditionoperator= (const MuCondition &)
 
void print (std::ostream &myCout) const override
 print condition More...
 
void setGtCorrParDeltaPhiNrBins (const int &)
 
void setGtGTL (const GlobalBoard *)
 set the pointer to GTL More...
 
void setGtIfMuEtaNumberBits (const int &)
 
void setGtMuonTemplate (const MuonTemplate *)
 
 ~MuCondition () override
 
- Public Member Functions inherited from l1t::ConditionEvaluation
 ConditionEvaluation ()
 constructor More...
 
bool condLastResult () const
 get the latest result for the condition More...
 
int condMaxNumberObjects () const
 
void evaluateConditionStoreResult (const int bxEval)
 call evaluateCondition and save last result More...
 
CombinationsInCond const & getCombinationsInCond () const
 get all the object combinations evaluated to true in the condition More...
 
virtual std::string getNumericExpression () const
 get numeric expression More...
 
void setCondMaxNumberObjects (int condMaxNumberObjectsValue)
 
void setVerbosity (const int verbosity)
 
virtual ~ConditionEvaluation ()
 destructor More...
 

Private Member Functions

const bool checkObjectParameter (const int iCondition, const l1t::Muon &cand, const unsigned int index) const
 function to check a single object if it matches a condition More...
 
void copy (const MuCondition &cp)
 copy function for copy constructor and operator= More...
 
const l1t::MuongetCandidate (const int bx, const int indexCand) const
 load muon candidates More...
 

Private Attributes

unsigned int m_corrParDeltaPhiNrBins
 
const GlobalBoardm_gtGTL
 pointer to GTL, to be able to get the trigger objects More...
 
const MuonTemplatem_gtMuonTemplate
 pointer to a MuonTemplate More...
 
int m_ifMuEtaNumberBits
 number of bits for eta of muon objects More...
 

Additional Inherited Members

- Protected Member Functions inherited from l1t::ConditionEvaluation
template<class Type1 >
const bool checkBit (const Type1 &mask, const unsigned int bitNumber) const
 check if a bit with a given number is set in a mask More...
 
template<class Type1 >
const bool checkIndex (const Type1 &indexLo, const Type1 &indexHi, const unsigned int index) const
 check if a index is in a given range More...
 
template<class Type1 >
const bool checkRangeDeltaEta (const unsigned int obj1Eta, const unsigned int obj2Eta, const Type1 &lowerR, const Type1 &upperR, const unsigned int nEtaBits) const
 check if a value is in a given range More...
 
template<class Type1 >
const bool checkRangeDeltaPhi (const unsigned int obj1Phi, const unsigned int obj2Phi, const Type1 &lowerR, const Type1 &upperR) const
 check if a value is in a given range More...
 
template<class Type1 >
const bool checkRangeEta (const unsigned int bitNumber, const Type1 &W1beginR, const Type1 &W1endR, const Type1 &W2beginR, const Type1 &W2endR, const unsigned int nEtaBits) const
 check if a value is in a given range and outside of a veto range More...
 
template<class Type1 >
const bool checkRangePhi (const unsigned int bitNumber, const Type1 &W1beginR, const Type1 &W1endR, const Type1 &W2beginR, const Type1 &W2endR) const
 check if a value is in a given range and outside of a veto range More...
 
template<class Type1 , class Type2 >
const bool checkThreshold (const Type1 &thresholdL, const Type1 &thresholdH, const Type2 &value, bool condGEqValue) const
 
CombinationsInCondcombinationsInCond () const
 get all the object combinations (to fill it...) More...
 
- Protected Attributes inherited from l1t::ConditionEvaluation
CombinationsInCond m_combinationsInCond
 store all the object combinations evaluated to true in the condition More...
 
bool m_condLastResult
 the last result of evaluateCondition() More...
 
int m_condMaxNumberObjects
 
int m_verbosity
 verbosity level More...
 

Detailed Description

Definition at line 37 of file MuCondition.h.

Constructor & Destructor Documentation

◆ MuCondition() [1/3]

MuCondition::MuCondition ( )

constructors default

Definition at line 41 of file MuCondition.cc.

42  // empty
43 }

◆ MuCondition() [2/3]

MuCondition::MuCondition ( const GlobalCondition muonTemplate,
const GlobalBoard ptrGTL,
const int  nrL1Mu,
const int  ifMuEtaNumberBits 
)

from base template condition (from event setup usually)

Definition at line 46 of file MuCondition.cc.

51  m_gtMuonTemplate(static_cast<const MuonTemplate*>(muonTemplate)),
52  m_gtGTL(ptrGTL),
53  m_ifMuEtaNumberBits(ifMuEtaNumberBits) {
55  m_condMaxNumberObjects = nrL1Mu;
56 }

References l1t::ConditionEvaluation::m_condMaxNumberObjects, and m_corrParDeltaPhiNrBins.

◆ MuCondition() [3/3]

MuCondition::MuCondition ( const MuCondition cp)

Definition at line 73 of file MuCondition.cc.

73 : ConditionEvaluation() { copy(cp); }

References copy(), and CommonMethods::cp().

◆ ~MuCondition()

MuCondition::~MuCondition ( )
override

Definition at line 76 of file MuCondition.cc.

76  {
77  // empty
78 }

Member Function Documentation

◆ checkObjectParameter()

const bool MuCondition::checkObjectParameter ( const int  iCondition,
const l1t::Muon cand,
const unsigned int  index 
) const
private

function to check a single object if it matches a condition

checkObjectParameter - Compare a single particle with a numbered condition.

Parameters
iConditionThe number of the condition.
candThe candidate to compare.
Returns
The result of the comparison (false if a condition does not exist).

Definition at line 324 of file MuCondition.cc.

326  {
327  // number of objects in condition
328  int nObjInCond = m_gtMuonTemplate->nrObjects();
329 
330  if (iCondition >= nObjInCond || iCondition < 0) {
331  return false;
332  }
333 
334  // // empty candidates can not be compared
335  // if (cand.empty()) {
336  // return false;
337  // }
338 
339  const MuonTemplate::ObjectParameter objPar = (*(m_gtMuonTemplate->objectParameter()))[iCondition];
340 
341  // using the logic table from GTL-9U-module.pdf
342  // "Truth table for Isolation bit"
343 
344  // check thresholds:
345 
346  // value < low pt threshold
347  // fail trigger
348 
349  // low pt threshold <= value < high pt threshold & non-isolated muon:
350  // requestIso true: fail trigger
351  // requestIso false, enableIso true: fail trigger
352  // requestIso false, enableIso false: OK, trigger
353 
354  // low pt threshold <= value < high pt threshold & isolated muon:
355  // requestIso true: OK, trigger
356  // requestIso false, enableIso true: OK, trigger
357  // requestIso false, enableIso false: OK, trigger
358 
359  // value >= high pt threshold & non-isolated muon:
360  // requestIso true: fail trigger
361  // requestIso false: OK, trigger
362 
363  // value >= high pt threshold & isolated muon:
364  // OK, trigger
365 
366  LogDebug("L1TGlobal") << "\n MuonTemplate::ObjectParameter : " << std::hex << "\n\t ptHighThreshold = 0x "
367  << objPar.ptHighThreshold << "\n\t ptLowThreshold = 0x " << objPar.ptLowThreshold
368  << "\n\t indexHigh = 0x " << objPar.indexHigh << "\n\t indexLow = 0x "
369  << objPar.indexLow << "\n\t requestIso = 0x " << objPar.requestIso
370  << "\n\t enableIso = 0x " << objPar.enableIso << "\n\t etaRange = 0x "
371  << objPar.etaRange << "\n\t phiLow = 0x " << objPar.phiLow
372  << "\n\t phiHigh = 0x " << objPar.phiHigh << "\n\t phiWindow1Lower = 0x "
373  << objPar.phiWindow1Lower << "\n\t phiWindow1Upper = 0x " << objPar.phiWindow1Upper
374  << "\n\t phiWindow2Lower = 0x " << objPar.phiWindow2Lower << "\n\t phiWindow2Lower = 0x "
375  << objPar.phiWindow2Lower << "\n\t charge = 0x " << objPar.charge
376  << "\n\t qualityLUT = 0x " << objPar.qualityLUT << "\n\t isolationLUT = 0x "
377  << objPar.isolationLUT << "\n\t enableMip = 0x " << objPar.enableMip << std::endl;
378 
379  LogDebug("L1TGlobal") << "\n l1t::Muon : "
380  << "\n\t hwPt = 0x " << cand.hwPt() << "\n\t hwEtaAtVtx = 0x " << cand.hwEtaAtVtx()
381  << "\n\t hwPhiAtVtx = 0x " << cand.hwPhiAtVtx() << "\n\t hwCharge = 0x " << cand.hwCharge()
382  << "\n\t hwQual = 0x " << cand.hwQual() << "\n\t hwIso = 0x " << cand.hwIso()
383  << std::dec << std::endl;
384 
385  if (!checkThreshold(objPar.ptLowThreshold, objPar.ptHighThreshold, cand.hwPt(), m_gtMuonTemplate->condGEq())) {
386  LogDebug("L1TGlobal") << "\t\t Muon Failed checkThreshold " << std::endl;
387  return false;
388  }
389 
390  // check index
391  if (!checkIndex(objPar.indexLow, objPar.indexHigh, index)) {
392  LogDebug("L1TGlobal") << "\t\t Muon Failed checkIndex " << std::endl;
393  return false;
394  }
395 
396  // check eta
397  if (!checkRangeEta(cand.hwEtaAtVtx(),
398  objPar.etaWindow1Lower,
399  objPar.etaWindow1Upper,
400  objPar.etaWindow2Lower,
401  objPar.etaWindow2Upper,
402  8)) {
403  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed checkRange(eta)" << std::endl;
404  return false;
405  }
406 
407  // check phi
408  if (!checkRangePhi(cand.hwPhiAtVtx(),
409  objPar.phiWindow1Lower,
410  objPar.phiWindow1Upper,
411  objPar.phiWindow2Lower,
412  objPar.phiWindow2Upper)) {
413  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed checkRange(phi)" << std::endl;
414  return false;
415  }
416 
417  // check charge
418  if (objPar.charge >= 0) {
419  if (cand.hwCharge() != objPar.charge) {
420  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed charge requirement" << std::endl;
421  return false;
422  }
423  }
424 
425  // check quality ( bit check ) with quality LUT
426  // sanity check on candidate quality
427  if (cand.hwQual() > 16) {
428  LogDebug("L1TGlobal") << "\t\t l1t::Candidate has out of range hwQual = " << cand.hwQual() << std::endl;
429  return false;
430  }
431  bool passQualLUT = ((objPar.qualityLUT >> cand.hwQual()) & 1);
432  if (!passQualLUT) {
433  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed quality requirement" << std::endl;
434  return false;
435  }
436 
437  // check isolation ( bit check ) with isolation LUT
438  // sanity check on candidate isolation
439  if (cand.hwIso() > 4) {
440  LogDebug("L1TGlobal") << "\t\t l1t::Candidate has out of range hwIso = " << cand.hwIso() << std::endl;
441  return false;
442  }
443  bool passIsoLUT = ((objPar.isolationLUT >> cand.hwIso()) & 1);
444  if (!passIsoLUT) {
445  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed isolation requirement" << std::endl;
446  return false;
447  }
448 
449  // A number of values is required to trigger (at least one).
450  // "Don’t care" means that all values are allowed.
451  // Qual = 000 means then NO MUON (GTL module)
452 
453  // if (cand.hwQual() == 0) {
454  // LogDebug("L1TGlobal") << "\t\t Muon Failed hwQual() == 0" << std::endl;
455  // return false;
456  // }
457 
458  // if (objPar.qualityRange == 0) {
459  // LogDebug("L1TGlobal") << "\t\t Muon Failed qualityRange == 0" << std::endl;
460  // return false;
461  // }
462  // else {
463  // if (!checkBit(objPar.qualityRange, cand.hwQual())) {
464  // LogDebug("L1TGlobal") << "\t\t Muon Failed checkBit(qualityRange) " << std::endl;
465  // return false;
466  // }
467  // }
468 
469  // check mip
470  if (objPar.enableMip) {
471  // if (!cand.hwMip()) {
472  // LogDebug("L1TGlobal") << "\t\t Muon Failed enableMip" << std::endl;
473  // return false;
474  // }
475  }
476 
477  // particle matches if we get here
478  //LogTrace("L1TGlobal")
479  // << " checkObjectParameter: muon object OK, passes all requirements\n" << std::endl;
480 
481  return true;
482 }

References MuonTemplate::ObjectParameter::charge, TauDecayModes::dec, MuonTemplate::ObjectParameter::enableIso, MuonTemplate::ObjectParameter::enableMip, MuonTemplate::ObjectParameter::etaRange, MuonTemplate::ObjectParameter::etaWindow1Lower, MuonTemplate::ObjectParameter::etaWindow1Upper, MuonTemplate::ObjectParameter::etaWindow2Lower, MuonTemplate::ObjectParameter::etaWindow2Upper, MuonTemplate::ObjectParameter::indexHigh, MuonTemplate::ObjectParameter::indexLow, MuonTemplate::ObjectParameter::isolationLUT, LogDebug, MuonTemplate::ObjectParameter::phiHigh, MuonTemplate::ObjectParameter::phiLow, MuonTemplate::ObjectParameter::phiWindow1Lower, MuonTemplate::ObjectParameter::phiWindow1Upper, MuonTemplate::ObjectParameter::phiWindow2Lower, MuonTemplate::ObjectParameter::phiWindow2Upper, MuonTemplate::ObjectParameter::ptHighThreshold, MuonTemplate::ObjectParameter::ptLowThreshold, MuonTemplate::ObjectParameter::qualityLUT, and MuonTemplate::ObjectParameter::requestIso.

◆ copy()

void MuCondition::copy ( const MuCondition cp)
private

copy function for copy constructor and operator=

Definition at line 59 of file MuCondition.cc.

59  {
60  m_gtMuonTemplate = cp.gtMuonTemplate();
61  m_gtGTL = cp.gtGTL();
62 
63  m_ifMuEtaNumberBits = cp.gtIfMuEtaNumberBits();
64  m_corrParDeltaPhiNrBins = cp.m_corrParDeltaPhiNrBins;
65 
66  m_condMaxNumberObjects = cp.condMaxNumberObjects();
67  m_condLastResult = cp.condLastResult();
68  m_combinationsInCond = cp.getCombinationsInCond();
69 
70  m_verbosity = cp.m_verbosity;
71 }

References CommonMethods::cp().

Referenced by MuCondition().

◆ evaluateCondition()

const bool MuCondition::evaluateCondition ( const int  bxEval) const
overridevirtual

the core function to check if the condition matches

Implements l1t::ConditionEvaluation.

Definition at line 103 of file MuCondition.cc.

103  {
104  // BLW Need to pass this as an argument
105  //const int bxEval=0; //BLW Change for BXVector
106 
107  // number of trigger objects in the condition
108  int nObjInCond = m_gtMuonTemplate->nrObjects();
109 
110  // the candidates
111  const BXVector<const l1t::Muon*>* candVec = m_gtGTL->getCandL1Mu(); //BLW Change for BXVector
112 
113  // Look at objects in bx = bx + relativeBx
114  int useBx = bxEval + m_gtMuonTemplate->condRelativeBx();
115 
116  // Fail condition if attempting to get Bx outside of range
117  if ((useBx < candVec->getFirstBX()) || (useBx > candVec->getLastBX())) {
118  return false;
119  }
120 
121  int numberObjects = candVec->size(useBx); //BLW Change for BXVector
122  //LogTrace("L1TGlobal") << " numberObjects: " << numberObjects
123  // << std::endl;
124  if (numberObjects < nObjInCond) {
125  return false;
126  }
127 
128  std::vector<int> index(numberObjects);
129 
130  for (int i = 0; i < numberObjects; ++i) {
131  index[i] = i;
132  }
133 
134  int numberForFactorial = numberObjects - nObjInCond;
135 
136  // TEMPORARY FIX UNTIL IMPLEMENT NEW MUON CONDITIONS
137  int myfactorial = 1;
138  for (int i = numberForFactorial; i > 0; i--)
139  myfactorial *= i;
140 
141  int jumpIndex = 1;
142  int jump = myfactorial; //factorial(numberObjects - nObjInCond);
143 
144  int totalLoops = 0;
145  int passLoops = 0;
146 
147  // condition result condResult set to true if at least one permutation
148  // passes all requirements
149  // all possible permutations are checked
150  bool condResult = false;
151 
152  // store the indices of the muon objects
153  // from the combination evaluated in the condition
154  SingleCombInCond objectsInComb;
155  objectsInComb.reserve(nObjInCond);
156 
157  // clear the m_combinationsInCond vector
158  combinationsInCond().clear();
159 
160  do {
161  if (--jumpIndex)
162  continue;
163 
164  jumpIndex = jump;
165  totalLoops++;
166 
167  // clear the indices in the combination
168  objectsInComb.clear();
169 
170  bool tmpResult = true;
171 
172  bool passCondition = false;
173  // check if there is a permutation that matches object-parameter requirements
174  for (int i = 0; i < nObjInCond; i++) {
175  passCondition = checkObjectParameter(i, *(candVec->at(useBx, index[i])), index[i]); //BLW Change for BXVector
176  tmpResult &= passCondition;
177  if (passCondition)
178  LogDebug("L1TGlobal") << "===> MuCondition::evaluateCondition, CONGRATS!! This muon passed the condition."
179  << std::endl;
180  else
181  LogDebug("L1TGlobal") << "===> MuCondition::evaluateCondition, FAIL!! This muon failed the condition."
182  << std::endl;
183  objectsInComb.push_back(index[i]);
184  }
185 
186  // if permutation does not match particle conditions
187  // skip charge correlation and spatial correlations
188  if (!tmpResult) {
189  continue;
190  }
191 
192  // get the correlation parameters (chargeCorrelation included here also)
194 
195  // charge_correlation consists of 3 relevant bits (D2, D1, D0)
196  unsigned int chargeCorr = corrPar.chargeCorrelation;
197 
198  // charge ignore bit (D0) not set?
199  if ((chargeCorr & 1) == 0) {
200  LogDebug("L1TGlobal") << "===> MuCondition:: Checking Charge Correlation" << std::endl;
201 
202  for (int i = 0; i < nObjInCond; i++) {
203  // check valid charge - skip if invalid charge
204  int chargeValid = (candVec->at(useBx, index[i]))->hwChargeValid(); //BLW Change for BXVector
205  tmpResult &= chargeValid;
206 
207  if (chargeValid == 0) { //BLW type change for New Muon Class
208  continue;
209  }
210  }
211 
212  if (!tmpResult) {
213  LogDebug("L1TGlobal") << "===> MuCondition:: Charge Correlation Failed...No Valid Charges" << std::endl;
214  continue;
215  }
216 
217  if (nObjInCond > 1) { // more objects condition
218 
219  // find out if signs are equal
220  bool equalSigns = true;
221  for (int i = 0; i < nObjInCond - 1; i++) {
222  if ((candVec->at(useBx, index[i]))->hwCharge() !=
223  (candVec->at(useBx, index[i + 1]))->hwCharge()) { //BLW Change for BXVector
224  equalSigns = false;
225  break;
226  }
227  }
228 
229  LogDebug("L1TGlobal") << "===> MuCondition:: Checking Charge Correlation equalSigns = " << equalSigns
230  << std::endl;
231 
232  // two or three particle condition
233  if (nObjInCond == 2 || nObjInCond == 3) {
234  if (!(((chargeCorr & 2) != 0 && equalSigns) || ((chargeCorr & 4) != 0 && !equalSigns))) {
235  LogDebug("L1TGlobal") << "===> MuCondition:: 2/3 Muon Fail Charge Correlation Condition =" << chargeCorr
236  << std::endl;
237  continue;
238  }
239  } else if (nObjInCond == 4) {
240  //counter to count positive charges to determine if there are pairs
241  unsigned int posCount = 0;
242 
243  for (int i = 0; i < nObjInCond; i++) {
244  if ((candVec->at(useBx, index[i]))->hwCharge() > 0) { //BLW Change for BXVector
245  posCount++;
246  }
247  }
248 
249  if (!(((chargeCorr & 2) != 0 && equalSigns) || ((chargeCorr & 4) != 0 && posCount == 2))) {
250  LogDebug("L1TGlobal") << "===> MuCondition:: 4 Muon Fail Charge Correlation Condition = " << chargeCorr
251  << " posCnt " << posCount << std::endl;
252  continue;
253  }
254  }
255  } // end require nObjInCond > 1
256  } // end signchecks
257 
258  if (m_gtMuonTemplate->wsc()) {
259  // wsc requirements have always nObjInCond = 2
260  // one can use directly index[0] and index[1] to compute
261  // eta and phi differences
262  const int ObjInWscComb = 2;
263  if (nObjInCond != ObjInWscComb) {
264  edm::LogError("L1TGlobal") << "\n Error: "
265  << "number of particles in condition with spatial correlation = " << nObjInCond
266  << "\n it must be = " << ObjInWscComb << std::endl;
267  // TODO Perhaps I should throw here an exception,
268  // since something is really wrong if nObjInCond != ObjInWscComb (=2)
269  continue;
270  }
271 
272  // check delta eta
273  if (!checkRangeDeltaEta((candVec->at(useBx, 0))->hwEtaAtVtx(),
274  (candVec->at(useBx, 1))->hwEtaAtVtx(),
275  corrPar.deltaEtaRangeLower,
276  corrPar.deltaEtaRangeUpper,
277  8)) {
278  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed checkRangeDeltaEta" << std::endl;
279  continue;
280  }
281 
282  // check delta phi
283  if (!checkRangeDeltaPhi((candVec->at(useBx, 0))->hwPhiAtVtx(),
284  (candVec->at(useBx, 1))->hwPhiAtVtx(),
285  corrPar.deltaPhiRangeLower,
286  corrPar.deltaPhiRangeUpper)) {
287  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed checkRangeDeltaPhi" << std::endl;
288  continue;
289  }
290 
291  } // end wsc check
292 
293  // if we get here all checks were successfull for this combination
294  // set the general result for evaluateCondition to "true"
295 
296  condResult = true;
297  passLoops++;
298  (combinationsInCond()).push_back(objectsInComb);
299 
300  } while (std::next_permutation(index.begin(), index.end()));
301 
302  //LogTrace("L1TGlobal")
303  // << "\n MuCondition: total number of permutations found: " << totalLoops
304  // << "\n MuCondition: number of permutations passing requirements: " << passLoops
305  // << "\n" << std::endl;
306 
307  return condResult;
308 }

References BXVector< T >::at(), MuonTemplate::CorrelationParameter::chargeCorrelation, MuonTemplate::CorrelationParameter::deltaEtaRangeLower, MuonTemplate::CorrelationParameter::deltaEtaRangeUpper, MuonTemplate::CorrelationParameter::deltaPhiRangeLower, MuonTemplate::CorrelationParameter::deltaPhiRangeUpper, BXVector< T >::getLastBX(), mps_fire::i, LogDebug, and BXVector< T >::size().

◆ getCandidate()

const l1t::Muon * MuCondition::getCandidate ( const int  bx,
const int  indexCand 
) const
private

load muon candidates

Definition at line 311 of file MuCondition.cc.

311  {
312  return (m_gtGTL->getCandL1Mu())->at(bx, indexCand); //BLW Change for BXVector
313 }

References l1GtPatternGenerator_cfi::bx.

◆ gtCorrParDeltaPhiNrBins()

const int l1t::MuCondition::gtCorrParDeltaPhiNrBins ( ) const
inline

get / set maximum number of bins for the delta phi scales

Definition at line 79 of file MuCondition.h.

79 { return m_corrParDeltaPhiNrBins; }

References m_corrParDeltaPhiNrBins.

◆ gtGTL()

const GlobalBoard* l1t::MuCondition::gtGTL ( ) const
inline

get / set the pointer to GTL

Definition at line 69 of file MuCondition.h.

69 { return m_gtGTL; }

References m_gtGTL.

◆ gtIfMuEtaNumberBits()

const int l1t::MuCondition::gtIfMuEtaNumberBits ( ) const
inline

get / set the number of bits for eta of muon objects

Definition at line 74 of file MuCondition.h.

74 { return m_ifMuEtaNumberBits; }

References m_ifMuEtaNumberBits.

◆ gtMuonTemplate()

const MuonTemplate* l1t::MuCondition::gtMuonTemplate ( ) const
inline

get / set the pointer to a Condition

Definition at line 64 of file MuCondition.h.

64 { return m_gtMuonTemplate; }

References m_gtMuonTemplate.

◆ operator=()

l1t::MuCondition & MuCondition::operator= ( const MuCondition cp)

Definition at line 81 of file MuCondition.cc.

81  {
82  copy(cp);
83  return *this;
84 }

References filterCSVwithJSON::copy, and CommonMethods::cp().

◆ print()

void MuCondition::print ( std::ostream &  myCout) const
overridevirtual

print condition

Reimplemented from l1t::ConditionEvaluation.

Definition at line 484 of file MuCondition.cc.

484  {
485  m_gtMuonTemplate->print(myCout);
486 
487  myCout << " Number of bits for eta of muon objects = " << m_ifMuEtaNumberBits << std::endl;
488  myCout << " Maximum number of bins for the delta phi scales = " << m_corrParDeltaPhiNrBins << "\n " << std::endl;
489 
491 }

References l1t::ConditionEvaluation::print().

Referenced by l1t::CorrCondition::evaluateCondition(), l1t::CorrWithOverlapRemovalCondition::evaluateCondition(), and l1t::GlobalBoard::runGTL().

◆ setGtCorrParDeltaPhiNrBins()

void MuCondition::setGtCorrParDeltaPhiNrBins ( const int &  corrParDeltaPhiNrBins)

Definition at line 98 of file MuCondition.cc.

98  {
99  m_corrParDeltaPhiNrBins = corrParDeltaPhiNrBins;
100 }

◆ setGtGTL()

void MuCondition::setGtGTL ( const GlobalBoard ptrGTL)

set the pointer to GTL

Definition at line 90 of file MuCondition.cc.

90 { m_gtGTL = ptrGTL; }

◆ setGtIfMuEtaNumberBits()

void MuCondition::setGtIfMuEtaNumberBits ( const int &  ifMuEtaNumberBitsValue)

Definition at line 93 of file MuCondition.cc.

93  {
94  m_ifMuEtaNumberBits = ifMuEtaNumberBitsValue;
95 }

◆ setGtMuonTemplate()

void MuCondition::setGtMuonTemplate ( const MuonTemplate muonTempl)

Definition at line 87 of file MuCondition.cc.

87 { m_gtMuonTemplate = muonTempl; }

Member Data Documentation

◆ m_corrParDeltaPhiNrBins

unsigned int l1t::MuCondition::m_corrParDeltaPhiNrBins
private

Definition at line 104 of file MuCondition.h.

Referenced by gtCorrParDeltaPhiNrBins(), and MuCondition().

◆ m_gtGTL

const GlobalBoard* l1t::MuCondition::m_gtGTL
private

pointer to GTL, to be able to get the trigger objects

Definition at line 98 of file MuCondition.h.

Referenced by gtGTL().

◆ m_gtMuonTemplate

const MuonTemplate* l1t::MuCondition::m_gtMuonTemplate
private

pointer to a MuonTemplate

Definition at line 95 of file MuCondition.h.

Referenced by gtMuonTemplate().

◆ m_ifMuEtaNumberBits

int l1t::MuCondition::m_ifMuEtaNumberBits
private

number of bits for eta of muon objects

Definition at line 101 of file MuCondition.h.

Referenced by gtIfMuEtaNumberBits().

GlobalCondition::condRelativeBx
const int & condRelativeBx() const
get / set the condition relative bx
Definition: GlobalCondition.h:80
MuonTemplate::ObjectParameter::phiWindow1Upper
unsigned int phiWindow1Upper
Definition: MuonTemplate.h:77
MuonTemplate::ObjectParameter::qualityLUT
unsigned int qualityLUT
Definition: MuonTemplate.h:63
MuonTemplate::ObjectParameter::phiWindow1Lower
unsigned int phiWindow1Lower
Definition: MuonTemplate.h:76
mps_fire.i
i
Definition: mps_fire.py:355
l1t::ConditionEvaluation::checkIndex
const bool checkIndex(const Type1 &indexLo, const Type1 &indexHi, const unsigned int index) const
check if a index is in a given range
Definition: ConditionEvaluation.h:189
l1t::ConditionEvaluation::checkThreshold
const bool checkThreshold(const Type1 &thresholdL, const Type1 &thresholdH, const Type2 &value, bool condGEqValue) const
Definition: ConditionEvaluation.h:154
MuonTemplate::ObjectParameter::indexLow
unsigned int indexLow
Definition: MuonTemplate.h:59
MuonTemplate::ObjectParameter::phiHigh
unsigned int phiHigh
Definition: MuonTemplate.h:66
l1t::ConditionEvaluation::m_combinationsInCond
CombinationsInCond m_combinationsInCond
store all the object combinations evaluated to true in the condition
Definition: ConditionEvaluation.h:143
l1t::ConditionEvaluation::combinationsInCond
CombinationsInCond & combinationsInCond() const
get all the object combinations (to fill it...)
Definition: ConditionEvaluation.h:84
l1t::MuCondition::copy
void copy(const MuCondition &cp)
copy function for copy constructor and operator=
Definition: MuCondition.cc:59
l1t::MuCondition::m_gtGTL
const GlobalBoard * m_gtGTL
pointer to GTL, to be able to get the trigger objects
Definition: MuCondition.h:98
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
l1t::ConditionEvaluation::print
virtual void print(std::ostream &myCout) const
print condition
Definition: ConditionEvaluation.cc:32
MuonTemplate::correlationParameter
const CorrelationParameter * correlationParameter() const
Definition: MuonTemplate.h:108
MuonTemplate::print
void print(std::ostream &myCout) const override
print the condition
Definition: MuonTemplate.cc:70
MuonTemplate::ObjectParameter::isolationLUT
unsigned int isolationLUT
Definition: MuonTemplate.h:64
l1t::GlobalBoard::getCandL1Mu
const BXVector< const l1t::Muon * > * getCandL1Mu() const
return global muon trigger candidate
Definition: GlobalBoard.h:138
MuonTemplate::ObjectParameter::enableIso
bool enableIso
Definition: MuonTemplate.h:61
MuonTemplate::ObjectParameter::etaWindow1Lower
unsigned int etaWindow1Lower
Definition: MuonTemplate.h:71
BXVector< const l1t::Muon * >
MuonTemplate::CorrelationParameter::deltaPhiRangeUpper
unsigned int deltaPhiRangeUpper
Definition: MuonTemplate.h:102
SingleCombInCond
std::vector< int > SingleCombInCond
typedefs
Definition: L1GlobalTriggerObjectMapFwd.h:29
l1t::ConditionEvaluation::checkRangePhi
const bool checkRangePhi(const unsigned int bitNumber, const Type1 &W1beginR, const Type1 &W1endR, const Type1 &W2beginR, const Type1 &W2endR) const
check if a value is in a given range and outside of a veto range
Definition: ConditionEvaluation.h:310
MuonTemplate::ObjectParameter::phiLow
unsigned int phiLow
Definition: MuonTemplate.h:67
MuonTemplate::ObjectParameter::etaWindow1Upper
unsigned int etaWindow1Upper
Definition: MuonTemplate.h:72
GlobalCondition::wsc
const bool wsc() const
Definition: GlobalCondition.cc:137
l1t::ConditionEvaluation::ConditionEvaluation
ConditionEvaluation()
constructor
Definition: ConditionEvaluation.h:42
l1t::ConditionEvaluation::checkRangeDeltaPhi
const bool checkRangeDeltaPhi(const unsigned int obj1Phi, const unsigned int obj2Phi, const Type1 &lowerR, const Type1 &upperR) const
check if a value is in a given range
Definition: ConditionEvaluation.h:428
MuonTemplate::ObjectParameter::ptHighThreshold
unsigned int ptHighThreshold
Definition: MuonTemplate.h:56
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::LogError
Definition: MessageLogger.h:183
l1t::MuCondition::m_corrParDeltaPhiNrBins
unsigned int m_corrParDeltaPhiNrBins
Definition: MuCondition.h:104
BXVector::at
const T & at(int bx, unsigned i) const
MuonTemplate::CorrelationParameter::deltaEtaRangeUpper
unsigned int deltaEtaRangeUpper
Definition: MuonTemplate.h:99
GlobalCondition::condGEq
const bool condGEq() const
get / set condition GEq flag
Definition: GlobalCondition.h:70
cand
Definition: decayParser.h:34
MuonTemplate::CorrelationParameter::deltaEtaRangeLower
unsigned int deltaEtaRangeLower
Definition: MuonTemplate.h:98
MuonTemplate::objectParameter
const std::vector< ObjectParameter > * objectParameter() const
Definition: MuonTemplate.h:106
l1t::ConditionEvaluation::checkRangeDeltaEta
const bool checkRangeDeltaEta(const unsigned int obj1Eta, const unsigned int obj2Eta, const Type1 &lowerR, const Type1 &upperR, const unsigned int nEtaBits) const
check if a value is in a given range
Definition: ConditionEvaluation.h:379
MuonTemplate::CorrelationParameter::chargeCorrelation
unsigned int chargeCorrelation
Definition: MuonTemplate.h:86
MuonTemplate::ObjectParameter::charge
int charge
Definition: MuonTemplate.h:69
MuonTemplate::ObjectParameter::ptLowThreshold
unsigned int ptLowThreshold
Definition: MuonTemplate.h:57
MuonTemplate::ObjectParameter::phiWindow2Upper
unsigned int phiWindow2Upper
Definition: MuonTemplate.h:79
GlobalCondition::nrObjects
const int nrObjects() const
get number of trigger objects
Definition: GlobalCondition.cc:64
l1t::ConditionEvaluation::m_condLastResult
bool m_condLastResult
the last result of evaluateCondition()
Definition: ConditionEvaluation.h:140
MuonTemplate::ObjectParameter::etaRange
unsigned long long etaRange
Definition: MuonTemplate.h:65
MuonTemplate::ObjectParameter::phiWindow2Lower
unsigned int phiWindow2Lower
Definition: MuonTemplate.h:78
MuonTemplate::ObjectParameter
Definition: MuonTemplate.h:55
l1t::MuCondition::checkObjectParameter
const bool checkObjectParameter(const int iCondition, const l1t::Muon &cand, const unsigned int index) const
function to check a single object if it matches a condition
Definition: MuCondition.cc:324
MuonTemplate::ObjectParameter::enableMip
bool enableMip
Definition: MuonTemplate.h:60
MuonTemplate::ObjectParameter::etaWindow2Lower
unsigned int etaWindow2Lower
Definition: MuonTemplate.h:73
MuonTemplate::ObjectParameter::requestIso
bool requestIso
Definition: MuonTemplate.h:62
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
BXVector::size
unsigned size(int bx) const
MuonTemplate::CorrelationParameter
Definition: MuonTemplate.h:85
l1t::ConditionEvaluation::m_verbosity
int m_verbosity
verbosity level
Definition: ConditionEvaluation.h:146
MuonTemplate::ObjectParameter::indexHigh
unsigned int indexHigh
Definition: MuonTemplate.h:58
l1t::ConditionEvaluation::m_condMaxNumberObjects
int m_condMaxNumberObjects
Definition: ConditionEvaluation.h:137
l1t::MuCondition::m_gtMuonTemplate
const MuonTemplate * m_gtMuonTemplate
pointer to a MuonTemplate
Definition: MuCondition.h:95
CommonMethods.cp
def cp(fromDir, toDir, listOfFiles, overwrite=False, smallList=False)
Definition: CommonMethods.py:192
BXVector::getLastBX
int getLastBX() const
MuonTemplate::ObjectParameter::etaWindow2Upper
unsigned int etaWindow2Upper
Definition: MuonTemplate.h:74
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
l1t::ConditionEvaluation::checkRangeEta
const bool checkRangeEta(const unsigned int bitNumber, const Type1 &W1beginR, const Type1 &W1endR, const Type1 &W2beginR, const Type1 &W2endR, const unsigned int nEtaBits) const
check if a value is in a given range and outside of a veto range
Definition: ConditionEvaluation.h:235
MuonTemplate::CorrelationParameter::deltaPhiRangeLower
unsigned int deltaPhiRangeLower
Definition: MuonTemplate.h:101
l1t::MuCondition::m_ifMuEtaNumberBits
int m_ifMuEtaNumberBits
number of bits for eta of muon objects
Definition: MuCondition.h:101