CMS 3D CMS Logo

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

#include <L1GtMuonCondition.h>

Inheritance diagram for L1GtMuonCondition:
L1GtConditionEvaluation

Public Member Functions

const bool evaluateCondition () 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 L1GlobalTriggerGTLgtGTL () 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 L1GtMuonTemplategtMuonTemplate () const
 get / set the pointer to a L1GtCondition More...
 
 L1GtMuonCondition ()
 
 L1GtMuonCondition (const L1GtCondition *, const L1GlobalTriggerGTL *, const int nrL1Mu, const int ifMuEtaNumberBits)
 from base template condition (from event setup usually) More...
 
 L1GtMuonCondition (const L1GtMuonCondition &)
 
L1GtMuonConditionoperator= (const L1GtMuonCondition &)
 
void print (std::ostream &myCout) const override
 print condition More...
 
void setGtCorrParDeltaPhiNrBins (const int &)
 
void setGtGTL (const L1GlobalTriggerGTL *)
 set the pointer to GTL More...
 
void setGtIfMuEtaNumberBits (const int &)
 
void setGtMuonTemplate (const L1GtMuonTemplate *)
 
 ~L1GtMuonCondition () override
 
- Public Member Functions inherited from L1GtConditionEvaluation
bool condLastResult () const
 get the latest result for the condition More...
 
int condMaxNumberObjects () const
 
void evaluateConditionStoreResult ()
 call evaluateCondition and save last result More...
 
const CombinationsInCondgetCombinationsInCond () const
 get all the object combinations evaluated to true in the condition More...
 
virtual std::string getNumericExpression () const
 get numeric expression More...
 
 L1GtConditionEvaluation ()
 constructor More...
 
void setCondMaxNumberObjects (int condMaxNumberObjectsValue)
 
void setVerbosity (const int verbosity)
 
virtual ~L1GtConditionEvaluation ()
 destructor More...
 

Private Member Functions

const bool checkObjectParameter (const int iCondition, const L1MuGMTCand &cand) const
 function to check a single object if it matches a condition More...
 
void copy (const L1GtMuonCondition &cp)
 copy function for copy constructor and operator= More...
 
const L1MuGMTCandgetCandidate (const int indexCand) const
 load muon candidates More...
 

Private Attributes

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

Additional Inherited Members

- Protected Member Functions inherited from L1GtConditionEvaluation
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 , class Type2 >
const bool checkThreshold (const Type1 &threshold, const Type2 &value, const bool condGEqValue) const
 
CombinationsInCondcombinationsInCond () const
 get all the object combinations (to fill it...) More...
 
- Protected Attributes inherited from L1GtConditionEvaluation
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

Description: evaluation of a CondMuon condition.

Implementation: <TODO: enter implementation details>

Author
: Vasile Mihai Ghete - HEPHY Vienna

Definition at line 35 of file L1GtMuonCondition.h.

Constructor & Destructor Documentation

◆ L1GtMuonCondition() [1/3]

L1GtMuonCondition::L1GtMuonCondition ( )

constructors default

Definition at line 43 of file L1GtMuonCondition.cc.

44  // empty
45 }

◆ L1GtMuonCondition() [2/3]

L1GtMuonCondition::L1GtMuonCondition ( const L1GtCondition muonTemplate,
const L1GlobalTriggerGTL ptrGTL,
const int  nrL1Mu,
const int  ifMuEtaNumberBits 
)

from base template condition (from event setup usually)

Definition at line 48 of file L1GtMuonCondition.cc.

53  m_gtMuonTemplate(static_cast<const L1GtMuonTemplate *>(muonTemplate)),
54  m_gtGTL(ptrGTL),
55  m_ifMuEtaNumberBits(ifMuEtaNumberBits) {
57  m_condMaxNumberObjects = nrL1Mu;
58 }

References L1GtConditionEvaluation::m_condMaxNumberObjects, and m_corrParDeltaPhiNrBins.

◆ L1GtMuonCondition() [3/3]

L1GtMuonCondition::L1GtMuonCondition ( const L1GtMuonCondition cp)

Definition at line 75 of file L1GtMuonCondition.cc.

References copy().

◆ ~L1GtMuonCondition()

L1GtMuonCondition::~L1GtMuonCondition ( )
override

Definition at line 78 of file L1GtMuonCondition.cc.

78  {
79  // empty
80 }

Member Function Documentation

◆ checkObjectParameter()

const bool L1GtMuonCondition::checkObjectParameter ( const int  iCondition,
const L1MuGMTCand cand 
) 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 362 of file L1GtMuonCondition.cc.

362  {
363  // number of objects in condition
364  int nObjInCond = m_gtMuonTemplate->nrObjects();
365 
366  if (iCondition >= nObjInCond || iCondition < 0) {
367  return false;
368  }
369 
370  // empty candidates can not be compared
371  if (cand.empty()) {
372  return false;
373  }
374 
375  const L1GtMuonTemplate::ObjectParameter objPar = (*(m_gtMuonTemplate->objectParameter()))[iCondition];
376 
377  // using the logic table from GTL-9U-module.pdf
378  // "Truth table for Isolation bit"
379 
380  // check thresholds:
381 
382  // value < low pt threshold
383  // fail trigger
384 
385  // low pt threshold <= value < high pt threshold & non-isolated muon:
386  // requestIso true: fail trigger
387  // requestIso false, enableIso true: fail trigger
388  // requestIso false, enableIso false: OK, trigger
389 
390  // low pt threshold <= value < high pt threshold & isolated muon:
391  // requestIso true: OK, trigger
392  // requestIso false, enableIso true: OK, trigger
393  // requestIso false, enableIso false: OK, trigger
394 
395  // value >= high pt threshold & non-isolated muon:
396  // requestIso true: fail trigger
397  // requestIso false: OK, trigger
398 
399  // value >= high pt threshold & isolated muon:
400  // OK, trigger
401 
402  if (!checkThreshold(objPar.ptHighThreshold, cand.ptIndex(), m_gtMuonTemplate->condGEq())) {
403  if (!checkThreshold(objPar.ptLowThreshold, cand.ptIndex(), m_gtMuonTemplate->condGEq())) {
404  return false;
405  } else {
406  // check isolation
407  if (!cand.isol()) {
408  if (objPar.requestIso || objPar.enableIso) {
409  return false;
410  }
411  }
412  }
413 
414  } else {
415  if (!cand.isol()) {
416  if (objPar.requestIso) {
417  return false;
418  }
419  }
420  }
421 
422  // check eta
423 
424  if (!checkBit(objPar.etaRange, cand.etaIndex())) {
425  return false;
426  }
427 
428  // check phi - in the requested range (no LUT used - LUT too big for hw chip)
429  // for phiLow <= phiHigh takes [phiLow, phiHigh]
430  // for phiLow >= phiHigh takes [phiLow, phiHigh] over zero angle!
431 
432  if (objPar.phiHigh >= objPar.phiLow) {
433  if (!((objPar.phiLow <= cand.phiIndex()) && (cand.phiIndex() <= objPar.phiHigh))) {
434  return false;
435  }
436 
437  } else { // go over zero angle!!
438  if (!((objPar.phiLow <= cand.phiIndex()) || (cand.phiIndex() <= objPar.phiHigh))) {
439  return false;
440  }
441  }
442 
443  // check quality ( bit check )
444 
445  // A number of values is required to trigger (at least one).
446  // "Don’t care" means that all values are allowed.
447  // Qual = 000 means then NO MUON (GTL module)
448 
449  if (cand.quality() == 0) {
450  return false;
451  }
452 
453  if (objPar.qualityRange == 0) {
454  return false;
455  } else {
456  if (!checkBit(objPar.qualityRange, cand.quality())) {
457  return false;
458  }
459  }
460 
461  // check mip
462  if (objPar.enableMip) {
463  if (!cand.mip()) {
464  return false;
465  }
466  }
467 
468  // particle matches if we get here
469  // LogTrace("L1GlobalTrigger")
470  // << " checkObjectParameter: muon object OK, passes all requirements\n"
471  // << std::endl;
472 
473  return true;
474 }

References L1GtConditionEvaluation::checkBit(), L1GtConditionEvaluation::checkThreshold(), L1GtCondition::condGEq(), L1GtMuonTemplate::ObjectParameter::enableIso, L1GtMuonTemplate::ObjectParameter::enableMip, L1GtMuonTemplate::ObjectParameter::etaRange, m_gtMuonTemplate, L1GtCondition::nrObjects(), L1GtMuonTemplate::objectParameter(), L1GtMuonTemplate::ObjectParameter::phiHigh, L1GtMuonTemplate::ObjectParameter::phiLow, L1GtMuonTemplate::ObjectParameter::ptHighThreshold, L1GtMuonTemplate::ObjectParameter::ptLowThreshold, L1GtMuonTemplate::ObjectParameter::qualityRange, and L1GtMuonTemplate::ObjectParameter::requestIso.

Referenced by evaluateCondition().

◆ copy()

void L1GtMuonCondition::copy ( const L1GtMuonCondition cp)
private

copy function for copy constructor and operator=

Definition at line 61 of file L1GtMuonCondition.cc.

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

References L1GtConditionEvaluation::m_combinationsInCond, L1GtConditionEvaluation::m_condLastResult, L1GtConditionEvaluation::m_condMaxNumberObjects, m_corrParDeltaPhiNrBins, m_gtGTL, m_gtMuonTemplate, m_ifMuEtaNumberBits, and L1GtConditionEvaluation::m_verbosity.

Referenced by L1GtMuonCondition(), and operator=().

◆ evaluateCondition()

const bool L1GtMuonCondition::evaluateCondition ( ) const
overridevirtual

the core function to check if the condition matches

Implements L1GtConditionEvaluation.

Definition at line 105 of file L1GtMuonCondition.cc.

105  {
106  // number of trigger objects in the condition
107  int nObjInCond = m_gtMuonTemplate->nrObjects();
108 
109  // the candidates
110  const std::vector<const L1MuGMTCand *> *candVec = m_gtGTL->getCandL1Mu();
111 
112  int numberObjects = candVec->size();
113  // LogTrace("L1GlobalTrigger") << " numberObjects: " << numberObjects
114  // << std::endl;
115  if (numberObjects < nObjInCond) {
116  return false;
117  }
118 
119  std::vector<int> index(numberObjects);
120 
121  for (int i = 0; i < numberObjects; ++i) {
122  index[i] = i;
123  }
124 
125  int jumpIndex = 1;
126  int jump = factorial(numberObjects - nObjInCond);
127 
128  int totalLoops = 0;
129  int passLoops = 0;
130 
131  // condition result condResult set to true if at least one permutation
132  // passes all requirements
133  // all possible permutations are checked
134  bool condResult = false;
135 
136  // store the indices of the muon objects
137  // from the combination evaluated in the condition
138  SingleCombInCond objectsInComb;
139  objectsInComb.reserve(nObjInCond);
140 
141  // clear the m_combinationsInCond vector
143 
144  do {
145  if (--jumpIndex)
146  continue;
147 
148  jumpIndex = jump;
149  totalLoops++;
150 
151  // clear the indices in the combination
152  objectsInComb.clear();
153 
154  bool tmpResult = true;
155 
156  // check if there is a permutation that matches object-parameter
157  // requirements
158  for (int i = 0; i < nObjInCond; i++) {
159  tmpResult &= checkObjectParameter(i, *(*candVec)[index[i]]);
160  objectsInComb.push_back(index[i]);
161  }
162 
163  // if permutation does not match particle conditions
164  // skip charge correlation and spatial correlations
165  if (!tmpResult) {
166  continue;
167  }
168 
169  // get the correlation parameters (chargeCorrelation included here also)
171 
172  // charge_correlation consists of 3 relevant bits (D2, D1, D0)
173  unsigned int chargeCorr = corrPar.chargeCorrelation;
174 
175  // charge ignore bit (D0) not set?
176  if ((chargeCorr & 1) == 0) {
177  for (int i = 0; i < nObjInCond; i++) {
178  // check valid charge - skip if invalid charge
179  bool chargeValid = (*candVec)[index[i]]->charge_valid();
180  tmpResult &= chargeValid;
181 
182  if (!chargeValid) {
183  continue;
184  }
185  }
186 
187  if (!tmpResult) {
188  continue;
189  }
190 
191  if (nObjInCond == 1) { // one object condition
192 
193  // D2..enable pos, D1..enable neg
194  if (!(((chargeCorr & 4) != 0 && (*candVec)[index[0]]->charge() > 0) ||
195  ((chargeCorr & 2) != 0 && (*candVec)[index[0]]->charge() < 0))) {
196  continue;
197  }
198 
199  } else { // more objects condition
200 
201  // find out if signs are equal
202  bool equalSigns = true;
203  for (int i = 0; i < nObjInCond - 1; i++) {
204  if ((*candVec)[index[i]]->charge() != (*candVec)[index[i + 1]]->charge()) {
205  equalSigns = false;
206  break;
207  }
208  }
209 
210  // two or three particle condition
211  if (nObjInCond == 2 || nObjInCond == 3) {
212  // D2..enable equal, D1..enable not equal
213  if (!(((chargeCorr & 4) != 0 && equalSigns) || ((chargeCorr & 2) != 0 && !equalSigns))) {
214  continue;
215  }
216  }
217 
218  // four particle condition
219  if (nObjInCond == 4) {
220  // counter to count positive charges to determine if there are pairs
221  unsigned int posCount = 0;
222 
223  for (int i = 0; i < nObjInCond; i++) {
224  if ((*candVec)[index[i]]->charge() > 0) {
225  posCount++;
226  }
227  }
228 
229  // D2..enable equal, D1..enable pairs
230  if (!(((chargeCorr & 4) != 0 && equalSigns) || ((chargeCorr & 2) != 0 && posCount == 2))) {
231  continue;
232  }
233  }
234  }
235  } // end signchecks
236 
237  if (m_gtMuonTemplate->wsc()) {
238  // wsc requirements have always nObjInCond = 2
239  // one can use directly index[0] and index[1] to compute
240  // eta and phi differences
241  const int ObjInWscComb = 2;
242  if (nObjInCond != ObjInWscComb) {
243  edm::LogError("L1GlobalTrigger") << "\n Error: "
244  << "number of particles in condition with spatial correlation = " << nObjInCond
245  << "\n it must be = " << ObjInWscComb << std::endl;
246  // TODO Perhaps I should throw here an exception,
247  // since something is really wrong if nObjInCond != ObjInWscComb (=2)
248  continue;
249  }
250 
251  unsigned int candDeltaEta;
252  unsigned int candDeltaPhi;
253 
254  // check candDeltaEta
255 
256  // get eta index and the sign bit of the eta index (MSB is the sign)
257  // signedEta[i] is the signed eta index of (*candVec)[index[i]]
258  int signedEta[ObjInWscComb];
259  int signBit[ObjInWscComb] = {0, 0};
260 
261  int scaleEta = 1 << (m_ifMuEtaNumberBits - 1);
262 
263  for (int i = 0; i < ObjInWscComb; ++i) {
264  signBit[i] = ((*candVec)[index[i]]->etaIndex() & scaleEta) >> (m_ifMuEtaNumberBits - 1);
265  signedEta[i] = ((*candVec)[index[i]]->etaIndex()) % scaleEta;
266 
267  if (signBit[i] == 1) {
268  signedEta[i] = (-1) * signedEta[i];
269  }
270  }
271 
272  // compute candDeltaEta - add 1 if signs are different (due to +0/-0
273  // indices)
274  candDeltaEta =
275  static_cast<int>(std::abs(signedEta[1] - signedEta[0])) + static_cast<int>(signBit[1] ^ signBit[0]);
276 
277  if (!checkBit(corrPar.deltaEtaRange, candDeltaEta)) {
278  continue;
279  }
280 
281  // check candDeltaPhi
282 
283  // calculate absolute value of candDeltaPhi
284  if ((*candVec)[index[0]]->phiIndex() > (*candVec)[index[1]]->phiIndex()) {
285  candDeltaPhi = (*candVec)[index[0]]->phiIndex() - (*candVec)[index[1]]->phiIndex();
286  } else {
287  candDeltaPhi = (*candVec)[index[1]]->phiIndex() - (*candVec)[index[0]]->phiIndex();
288  }
289 
290  // check if candDeltaPhi > 180 (via delta_phi_maxbits)
291  // delta_phi contains bits for 0..180 (0 and 180 included)
292  // protect also against infinite loop...
293 
294  int nMaxLoop = 10;
295  int iLoop = 0;
296 
297  while (candDeltaPhi >= m_corrParDeltaPhiNrBins) {
298  unsigned int candDeltaPhiInitial = candDeltaPhi;
299 
300  // candDeltaPhi > 180 ==> take 360 - candDeltaPhi
301  candDeltaPhi = (m_corrParDeltaPhiNrBins - 1) * 2 - candDeltaPhi;
302  if (m_verbosity) {
303  LogTrace("L1GlobalTrigger") << " Initial candDeltaPhi = " << candDeltaPhiInitial
304  << " > m_corrParDeltaPhiNrBins = " << m_corrParDeltaPhiNrBins
305  << " ==> candDeltaPhi rescaled to: " << candDeltaPhi << " [ loop index " << iLoop
306  << "; breaks after " << nMaxLoop << " loops ]\n"
307  << std::endl;
308  }
309 
310  iLoop++;
311  if (iLoop > nMaxLoop) {
312  return false;
313  }
314  }
315 
316  // delta_phi bitmask is saved in two uint64_t words
317  if (candDeltaPhi < 64) {
318  if (!checkBit(corrPar.deltaPhiRange0Word, candDeltaPhi)) {
319  continue;
320  }
321  } else {
322  if (!checkBit(corrPar.deltaPhiRange1Word, (candDeltaPhi - 64))) {
323  continue;
324  }
325  }
326 
327  } // end wsc check
328 
329  // if we get here all checks were successfull for this combination
330  // set the general result for evaluateCondition to "true"
331 
332  condResult = true;
333  passLoops++;
334  (combinationsInCond()).push_back(objectsInComb);
335 
336  } while (std::next_permutation(index.begin(), index.end()));
337 
338  // LogTrace("L1GlobalTrigger")
339  // << "\n L1GtMuonCondition: total number of permutations found: " <<
340  // totalLoops
341  // << "\n L1GtMuonCondition: number of permutations passing requirements:
342  // " << passLoops
343  // << "\n" << std::endl;
344 
345  return condResult;
346 }

References funct::abs(), ALCARECOTkAlJpsiMuMu_cff::charge, L1GtMuonTemplate::CorrelationParameter::chargeCorrelation, L1GtConditionEvaluation::checkBit(), checkObjectParameter(), clear(), L1GtConditionEvaluation::combinationsInCond(), L1GtMuonTemplate::correlationParameter(), L1GtMuonTemplate::CorrelationParameter::deltaEtaRange, L1GtMuonTemplate::CorrelationParameter::deltaPhiRange0Word, L1GtMuonTemplate::CorrelationParameter::deltaPhiRange1Word, factorial(), L1GlobalTriggerGTL::getCandL1Mu(), mps_fire::i, LogTrace, m_corrParDeltaPhiNrBins, m_gtGTL, m_gtMuonTemplate, m_ifMuEtaNumberBits, L1GtConditionEvaluation::m_verbosity, L1GtCondition::nrObjects(), and L1GtCondition::wsc().

◆ getCandidate()

const L1MuGMTCand * L1GtMuonCondition::getCandidate ( const int  indexCand) const
private

load muon candidates

Definition at line 349 of file L1GtMuonCondition.cc.

349  {
350  return (*(m_gtGTL->getCandL1Mu()))[indexCand];
351 }

References L1GlobalTriggerGTL::getCandL1Mu(), and m_gtGTL.

◆ gtCorrParDeltaPhiNrBins()

const int L1GtMuonCondition::gtCorrParDeltaPhiNrBins ( ) const
inline

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

Definition at line 77 of file L1GtMuonCondition.h.

77 { return m_corrParDeltaPhiNrBins; }

References m_corrParDeltaPhiNrBins.

◆ gtGTL()

const L1GlobalTriggerGTL* L1GtMuonCondition::gtGTL ( ) const
inline

get / set the pointer to GTL

Definition at line 67 of file L1GtMuonCondition.h.

67 { return m_gtGTL; }

References m_gtGTL.

◆ gtIfMuEtaNumberBits()

const int L1GtMuonCondition::gtIfMuEtaNumberBits ( ) const
inline

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

Definition at line 72 of file L1GtMuonCondition.h.

72 { return m_ifMuEtaNumberBits; }

References m_ifMuEtaNumberBits.

◆ gtMuonTemplate()

const L1GtMuonTemplate* L1GtMuonCondition::gtMuonTemplate ( ) const
inline

get / set the pointer to a L1GtCondition

Definition at line 62 of file L1GtMuonCondition.h.

62 { return m_gtMuonTemplate; }

References m_gtMuonTemplate.

◆ operator=()

L1GtMuonCondition & L1GtMuonCondition::operator= ( const L1GtMuonCondition cp)

Definition at line 83 of file L1GtMuonCondition.cc.

83  {
84  copy(cp);
85  return *this;
86 }

References copy().

◆ print()

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

print condition

Reimplemented from L1GtConditionEvaluation.

Definition at line 476 of file L1GtMuonCondition.cc.

476  {
477  m_gtMuonTemplate->print(myCout);
478 
479  myCout << " Number of bits for eta of muon objects = " << m_ifMuEtaNumberBits << std::endl;
480  myCout << " Maximum number of bins for the delta phi scales = " << m_corrParDeltaPhiNrBins << "\n " << std::endl;
481 
483 }

References m_corrParDeltaPhiNrBins, m_gtMuonTemplate, m_ifMuEtaNumberBits, L1GtConditionEvaluation::print(), and L1GtMuonTemplate::print().

Referenced by L1GtCorrelationCondition::evaluateCondition(), and L1GlobalTriggerGTL::run().

◆ setGtCorrParDeltaPhiNrBins()

void L1GtMuonCondition::setGtCorrParDeltaPhiNrBins ( const int &  corrParDeltaPhiNrBins)

Definition at line 100 of file L1GtMuonCondition.cc.

100  {
101  m_corrParDeltaPhiNrBins = corrParDeltaPhiNrBins;
102 }

References m_corrParDeltaPhiNrBins.

Referenced by L1GlobalTriggerGTL::run().

◆ setGtGTL()

void L1GtMuonCondition::setGtGTL ( const L1GlobalTriggerGTL ptrGTL)

set the pointer to GTL

Definition at line 92 of file L1GtMuonCondition.cc.

92 { m_gtGTL = ptrGTL; }

References m_gtGTL.

◆ setGtIfMuEtaNumberBits()

void L1GtMuonCondition::setGtIfMuEtaNumberBits ( const int &  ifMuEtaNumberBitsValue)

Definition at line 95 of file L1GtMuonCondition.cc.

95  {
96  m_ifMuEtaNumberBits = ifMuEtaNumberBitsValue;
97 }

References m_ifMuEtaNumberBits.

◆ setGtMuonTemplate()

void L1GtMuonCondition::setGtMuonTemplate ( const L1GtMuonTemplate muonTempl)

Definition at line 89 of file L1GtMuonCondition.cc.

89 { m_gtMuonTemplate = muonTempl; }

References m_gtMuonTemplate.

Member Data Documentation

◆ m_corrParDeltaPhiNrBins

unsigned int L1GtMuonCondition::m_corrParDeltaPhiNrBins
private

◆ m_gtGTL

const L1GlobalTriggerGTL* L1GtMuonCondition::m_gtGTL
private

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

Definition at line 96 of file L1GtMuonCondition.h.

Referenced by copy(), evaluateCondition(), getCandidate(), gtGTL(), and setGtGTL().

◆ m_gtMuonTemplate

const L1GtMuonTemplate* L1GtMuonCondition::m_gtMuonTemplate
private

◆ m_ifMuEtaNumberBits

int L1GtMuonCondition::m_ifMuEtaNumberBits
private

number of bits for eta of muon objects

Definition at line 99 of file L1GtMuonCondition.h.

Referenced by copy(), evaluateCondition(), gtIfMuEtaNumberBits(), print(), and setGtIfMuEtaNumberBits().

L1GtMuonCondition::m_gtMuonTemplate
const L1GtMuonTemplate * m_gtMuonTemplate
pointer to a L1GtMuonTemplate
Definition: L1GtMuonCondition.h:93
L1GtMuonCondition::checkObjectParameter
const bool checkObjectParameter(const int iCondition, const L1MuGMTCand &cand) const
function to check a single object if it matches a condition
Definition: L1GtMuonCondition.cc:362
mps_fire.i
i
Definition: mps_fire.py:428
L1GtConditionEvaluation::m_verbosity
int m_verbosity
verbosity level
Definition: L1GtConditionEvaluation.h:105
L1GtMuonTemplate::CorrelationParameter::deltaPhiRange1Word
unsigned long long deltaPhiRange1Word
Definition: L1GtMuonTemplate.h:78
L1GtMuonCondition::copy
void copy(const L1GtMuonCondition &cp)
copy function for copy constructor and operator=
Definition: L1GtMuonCondition.cc:61
L1GtCondition::nrObjects
const int nrObjects() const
get number of trigger objects
Definition: L1GtCondition.cc:62
L1GlobalTriggerGTL::getCandL1Mu
const std::vector< const L1MuGMTCand * > * getCandL1Mu() const
return global muon trigger candidate
Definition: L1GlobalTriggerGTL.h:99
L1GtConditionEvaluation::combinationsInCond
CombinationsInCond & combinationsInCond() const
get all the object combinations (to fill it...)
Definition: L1GtConditionEvaluation.h:82
L1GtCondition::condGEq
const bool condGEq() const
get / set condition GEq flag
Definition: L1GtCondition.h:72
L1GtMuonTemplate::correlationParameter
const CorrelationParameter * correlationParameter() const
Definition: L1GtMuonTemplate.h:87
L1GtConditionEvaluation::checkBit
const bool checkBit(const Type1 &mask, const unsigned int bitNumber) const
check if a bit with a given number is set in a mask
Definition: L1GtConditionEvaluation.h:149
L1GtConditionEvaluation::print
virtual void print(std::ostream &myCout) const
print condition
Definition: L1GtConditionEvaluation.cc:34
L1GtMuonTemplate::ObjectParameter
Definition: L1GtMuonTemplate.h:56
L1GtMuonTemplate::print
void print(std::ostream &myCout) const override
print the condition
Definition: L1GtMuonTemplate.cc:72
L1GtCondition::wsc
const bool wsc() const
Definition: L1GtCondition.cc:114
factorial
int factorial(int n)
factorial function
Definition: L1GlobalTriggerFunctions.cc:13
L1GtMuonTemplate::objectParameter
const std::vector< ObjectParameter > * objectParameter() const
Definition: L1GtMuonTemplate.h:85
L1GtConditionEvaluation::m_combinationsInCond
CombinationsInCond m_combinationsInCond
store all the object combinations evaluated to true in the condition
Definition: L1GtConditionEvaluation.h:102
hgcal_conditions::parameters
Definition: HGCConditions.h:86
L1GtMuonTemplate::ObjectParameter::etaRange
unsigned long long etaRange
Definition: L1GtMuonTemplate.h:63
L1GtConditionEvaluation::checkThreshold
const bool checkThreshold(const Type1 &threshold, const Type2 &value, const bool condGEqValue) const
Definition: L1GtConditionEvaluation.h:113
L1GtConditionEvaluation::m_condLastResult
bool m_condLastResult
the last result of evaluateCondition()
Definition: L1GtConditionEvaluation.h:99
L1GtMuonTemplate::CorrelationParameter
Definition: L1GtMuonTemplate.h:73
SingleCombInCond
std::vector< int > SingleCombInCond
typedefs
Definition: L1GlobalTriggerObjectMapFwd.h:29
L1GtMuonCondition::m_corrParDeltaPhiNrBins
unsigned int m_corrParDeltaPhiNrBins
Definition: L1GtMuonCondition.h:102
L1GtMuonTemplate::ObjectParameter::enableIso
bool enableIso
Definition: L1GtMuonTemplate.h:60
L1GtMuonCondition::m_ifMuEtaNumberBits
int m_ifMuEtaNumberBits
number of bits for eta of muon objects
Definition: L1GtMuonCondition.h:99
L1GtMuonTemplate::ObjectParameter::qualityRange
unsigned int qualityRange
Definition: L1GtMuonTemplate.h:62
L1GtMuonTemplate::ObjectParameter::phiLow
unsigned int phiLow
Definition: L1GtMuonTemplate.h:65
L1GtConditionEvaluation::L1GtConditionEvaluation
L1GtConditionEvaluation()
constructor
Definition: L1GtConditionEvaluation.h:40
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
L1GtMuonCondition::m_gtGTL
const L1GlobalTriggerGTL * m_gtGTL
pointer to GTL, to be able to get the trigger objects
Definition: L1GtMuonCondition.h:96
clear
void clear(HadCaloObj &c)
Definition: data.h:124
L1GtMuonTemplate::ObjectParameter::requestIso
bool requestIso
Definition: L1GtMuonTemplate.h:61
L1GtConditionEvaluation::m_condMaxNumberObjects
int m_condMaxNumberObjects
Definition: L1GtConditionEvaluation.h:96
cand
Definition: decayParser.h:32
L1GtMuonTemplate::CorrelationParameter::deltaPhiRange0Word
unsigned long long deltaPhiRange0Word
Definition: L1GtMuonTemplate.h:77
L1GtMuonTemplate::ObjectParameter::ptLowThreshold
unsigned int ptLowThreshold
Definition: L1GtMuonTemplate.h:58
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
L1GtMuonTemplate::ObjectParameter::phiHigh
unsigned int phiHigh
Definition: L1GtMuonTemplate.h:64
L1GtMuonTemplate::CorrelationParameter::chargeCorrelation
unsigned int chargeCorrelation
Definition: L1GtMuonTemplate.h:74
L1GtMuonTemplate::CorrelationParameter::deltaEtaRange
unsigned long long deltaEtaRange
Definition: L1GtMuonTemplate.h:75
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
L1GtMuonTemplate::ObjectParameter::ptHighThreshold
unsigned int ptHighThreshold
Definition: L1GtMuonTemplate.h:57
L1GtMuonTemplate::ObjectParameter::enableMip
bool enableMip
Definition: L1GtMuonTemplate.h:59