CMS 3D CMS Logo

MuCondition.cc
Go to the documentation of this file.
1 
16 // this class header
18 
19 // system include files
20 #include <iostream>
21 #include <iomanip>
22 
23 #include <string>
24 #include <vector>
25 #include <algorithm>
26 
27 // user include files
28 // base classes
31 
33 
35 
38 
39 // constructors
40 // default
42  // empty
43 }
44 
45 // from base template condition (from event setup usually)
47  const GlobalBoard* ptrGTL,
48  const int nrL1Mu,
49  const int ifMuEtaNumberBits)
51  m_gtMuonTemplate(static_cast<const MuonTemplate*>(muonTemplate)),
52  m_gtGTL(ptrGTL),
53  m_ifMuEtaNumberBits(ifMuEtaNumberBits) {
55  m_condMaxNumberObjects = nrL1Mu;
56 }
57 
58 // copy constructor
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 }
72 
74 
75 // destructor
77  // empty
78 }
79 
80 // equal operator
82  copy(cp);
83  return *this;
84 }
85 
86 // methods
87 void l1t::MuCondition::setGtMuonTemplate(const MuonTemplate* muonTempl) { m_gtMuonTemplate = muonTempl; }
88 
90 void l1t::MuCondition::setGtGTL(const GlobalBoard* ptrGTL) { m_gtGTL = ptrGTL; }
91 
92 // set the number of bits for eta of muon objects
93 void l1t::MuCondition::setGtIfMuEtaNumberBits(const int& ifMuEtaNumberBitsValue) {
94  m_ifMuEtaNumberBits = ifMuEtaNumberBitsValue;
95 }
96 
97 // set the maximum number of bins for the delta phi scales
98 void l1t::MuCondition::setGtCorrParDeltaPhiNrBins(const int& corrParDeltaPhiNrBins) {
99  m_corrParDeltaPhiNrBins = corrParDeltaPhiNrBins;
100 }
101 
102 // try all object permutations and check spatial correlations, if required
103 const bool l1t::MuCondition::evaluateCondition(const int bxEval) const {
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)
193  MuonTemplate::CorrelationParameter corrPar = *(m_gtMuonTemplate->correlationParameter());
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 }
309 
310 // load muon candidates
311 const l1t::Muon* l1t::MuCondition::getCandidate(const int bx, const int indexCand) const {
312  return (m_gtGTL->getCandL1Mu())->at(bx, indexCand); //BLW Change for BXVector
313 }
314 
324 const bool l1t::MuCondition::checkObjectParameter(const int iCondition,
325  const l1t::Muon& cand,
326  const unsigned int index) const {
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 (objPar.unconstrainedPtHigh > 0) // Check if unconstrained pT cut-window is valid
386  {
387  if (!checkUnconstrainedPt(objPar.unconstrainedPtLow,
388  objPar.unconstrainedPtHigh,
389  cand.hwPtUnconstrained(),
390  m_gtMuonTemplate->condGEq())) {
391  LogDebug("L1TGlobal") << "\t\t Muon Failed unconstrainedPt checkThreshold; iCondition = " << iCondition
392  << std::endl;
393  return false;
394  }
395  }
396 
397  if (objPar.impactParameterLUT != 0) // Check if impact parameter LUT is valid. 0xF is default; 0x0 is invalid
398  {
399  // check impact parameter ( bit check ) with impact parameter LUT
400  // sanity check on candidate impact parameter
401  if (cand.hwDXY() > 3) {
402  LogDebug("L1TGlobal") << "\t\t l1t::Candidate has out of range hwDXY = " << cand.hwDXY() << std::endl;
403  return false;
404  }
405  bool passImpactParameterLUT = ((objPar.impactParameterLUT >> cand.hwDXY()) & 1);
406  if (!passImpactParameterLUT) {
407  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed impact parameter requirement" << std::endl;
408  return false;
409  }
410  }
411 
412  if (!checkThreshold(objPar.ptLowThreshold, objPar.ptHighThreshold, cand.hwPt(), m_gtMuonTemplate->condGEq())) {
413  LogDebug("L1TGlobal") << "\t\t Muon Failed checkThreshold " << std::endl;
414  return false;
415  }
416 
417  // check index
418  if (!checkIndex(objPar.indexLow, objPar.indexHigh, index)) {
419  LogDebug("L1TGlobal") << "\t\t Muon Failed checkIndex " << std::endl;
420  return false;
421  }
422 
423  // check eta
424  if (!checkRangeEta(cand.hwEtaAtVtx(),
425  objPar.etaWindow1Lower,
426  objPar.etaWindow1Upper,
427  objPar.etaWindow2Lower,
428  objPar.etaWindow2Upper,
429  8)) {
430  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed checkRange(eta)" << std::endl;
431  return false;
432  }
433 
434  // check phi
435  if (!checkRangePhi(cand.hwPhiAtVtx(),
436  objPar.phiWindow1Lower,
437  objPar.phiWindow1Upper,
438  objPar.phiWindow2Lower,
439  objPar.phiWindow2Upper)) {
440  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed checkRange(phi)" << std::endl;
441  return false;
442  }
443 
444  // check charge
445  if (objPar.charge >= 0) {
446  if (cand.hwCharge() != objPar.charge) {
447  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed charge requirement" << std::endl;
448  return false;
449  }
450  }
451 
452  // check quality ( bit check ) with quality LUT
453  // sanity check on candidate quality
454  if (cand.hwQual() > 16) {
455  LogDebug("L1TGlobal") << "\t\t l1t::Candidate has out of range hwQual = " << cand.hwQual() << std::endl;
456  return false;
457  }
458  bool passQualLUT = ((objPar.qualityLUT >> cand.hwQual()) & 1);
459  if (!passQualLUT) {
460  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed quality requirement" << std::endl;
461  return false;
462  }
463 
464  // check isolation ( bit check ) with isolation LUT
465  // sanity check on candidate isolation
466  if (cand.hwIso() > 4) {
467  LogDebug("L1TGlobal") << "\t\t l1t::Candidate has out of range hwIso = " << cand.hwIso() << std::endl;
468  return false;
469  }
470  bool passIsoLUT = ((objPar.isolationLUT >> cand.hwIso()) & 1);
471  if (!passIsoLUT) {
472  LogDebug("L1TGlobal") << "\t\t l1t::Candidate failed isolation requirement" << std::endl;
473  return false;
474  }
475 
476  // A number of values is required to trigger (at least one).
477  // "Don’t care" means that all values are allowed.
478  // Qual = 000 means then NO MUON (GTL module)
479 
480  // if (cand.hwQual() == 0) {
481  // LogDebug("L1TGlobal") << "\t\t Muon Failed hwQual() == 0" << std::endl;
482  // return false;
483  // }
484 
485  // if (objPar.qualityRange == 0) {
486  // LogDebug("L1TGlobal") << "\t\t Muon Failed qualityRange == 0" << std::endl;
487  // return false;
488  // }
489  // else {
490  // if (!checkBit(objPar.qualityRange, cand.hwQual())) {
491  // LogDebug("L1TGlobal") << "\t\t Muon Failed checkBit(qualityRange) " << std::endl;
492  // return false;
493  // }
494  // }
495 
496  // check mip
497  if (objPar.enableMip) {
498  // if (!cand.hwMip()) {
499  // LogDebug("L1TGlobal") << "\t\t Muon Failed enableMip" << std::endl;
500  // return false;
501  // }
502  }
503 
504  // particle matches if we get here
505  //LogTrace("L1TGlobal")
506  // << " checkObjectParameter: muon object OK, passes all requirements\n" << std::endl;
507 
508  return true;
509 }
510 
511 void l1t::MuCondition::print(std::ostream& myCout) const {
512  m_gtMuonTemplate->print(myCout);
513 
514  myCout << " Number of bits for eta of muon objects = " << m_ifMuEtaNumberBits << std::endl;
515  myCout << " Maximum number of bins for the delta phi scales = " << m_corrParDeltaPhiNrBins << "\n " << std::endl;
516 
518 }
l1t::GlobalBoard
Definition: GlobalBoard.h:52
MuonTemplate::ObjectParameter::phiWindow1Upper
unsigned int phiWindow1Upper
Definition: MuonTemplate.h:82
MuonTemplate::ObjectParameter::qualityLUT
unsigned int qualityLUT
Definition: MuonTemplate.h:67
MuonTemplate::ObjectParameter::phiWindow1Lower
unsigned int phiWindow1Lower
Definition: MuonTemplate.h:81
MuonTemplate::ObjectParameter::impactParameterLUT
unsigned int impactParameterLUT
Definition: MuonTemplate.h:69
mps_fire.i
i
Definition: mps_fire.py:428
GlobalBoard.h
MessageLogger.h
MuonTemplate::ObjectParameter::indexLow
unsigned int indexLow
Definition: MuonTemplate.h:63
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
MuonTemplate::ObjectParameter::phiHigh
unsigned int phiHigh
Definition: MuonTemplate.h:71
l1t::MuCondition::copy
void copy(const MuCondition &cp)
copy function for copy constructor and operator=
Definition: MuCondition.cc:59
Muon.h
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
l1t::MuCondition::evaluateCondition
const bool evaluateCondition(const int bxEval) const override
the core function to check if the condition matches
Definition: MuCondition.cc:103
l1t::ConditionEvaluation::print
virtual void print(std::ostream &myCout) const
print condition
Definition: ConditionEvaluation.cc:32
l1t::MuCondition::setGtIfMuEtaNumberBits
void setGtIfMuEtaNumberBits(const int &)
Definition: MuCondition.cc:93
l1t::MuCondition::MuCondition
MuCondition()
Definition: MuCondition.cc:41
MuonTemplate::ObjectParameter::isolationLUT
unsigned int isolationLUT
Definition: MuonTemplate.h:68
watchdog.const
const
Definition: watchdog.py:83
MuonTemplate::ObjectParameter::enableIso
bool enableIso
Definition: MuonTemplate.h:65
MuonTemplate::ObjectParameter::etaWindow1Lower
unsigned int etaWindow1Lower
Definition: MuonTemplate.h:76
BXVector< const l1t::Muon * >
MuonTemplate::CorrelationParameter::deltaPhiRangeUpper
unsigned int deltaPhiRangeUpper
Definition: MuonTemplate.h:107
SingleCombInCond
std::vector< int > SingleCombInCond
typedefs
Definition: L1GlobalTriggerObjectMapFwd.h:29
MuonTemplate.h
MuonTemplate::ObjectParameter::phiLow
unsigned int phiLow
Definition: MuonTemplate.h:72
MuonTemplate::ObjectParameter::etaWindow1Upper
unsigned int etaWindow1Upper
Definition: MuonTemplate.h:77
MuonTemplate::ObjectParameter::unconstrainedPtHigh
unsigned int unconstrainedPtHigh
Definition: MuonTemplate.h:56
l1t::MuCondition::~MuCondition
~MuCondition() override
Definition: MuCondition.cc:76
MuonTemplate
Definition: MuonTemplate.h:33
l1t::MuCondition::getCandidate
const l1t::Muon * getCandidate(const int bx, const int indexCand) const
load muon candidates
Definition: MuCondition.cc:311
MuonTemplate::ObjectParameter::ptHighThreshold
unsigned int ptHighThreshold
Definition: MuonTemplate.h:60
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
MessageDrop.h
l1t::MuCondition::m_corrParDeltaPhiNrBins
unsigned int m_corrParDeltaPhiNrBins
Definition: MuCondition.h:104
BXVector::at
const T & at(int bx, unsigned i) const
l1t::MuCondition::print
void print(std::ostream &myCout) const override
print condition
Definition: MuCondition.cc:511
MuonTemplate::CorrelationParameter::deltaEtaRangeUpper
unsigned int deltaEtaRangeUpper
Definition: MuonTemplate.h:104
MuonTemplate::ObjectParameter::unconstrainedPtLow
unsigned int unconstrainedPtLow
Definition: MuonTemplate.h:57
cand
Definition: decayParser.h:32
MuonTemplate::CorrelationParameter::deltaEtaRangeLower
unsigned int deltaEtaRangeLower
Definition: MuonTemplate.h:103
l1t::MuCondition
Definition: MuCondition.h:37
l1t::MuCondition::setGtMuonTemplate
void setGtMuonTemplate(const MuonTemplate *)
Definition: MuCondition.cc:87
ConditionEvaluation.h
MuCondition.h
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
MuonTemplate::CorrelationParameter::chargeCorrelation
unsigned int chargeCorrelation
Definition: MuonTemplate.h:91
MuonTemplate::ObjectParameter::charge
int charge
Definition: MuonTemplate.h:74
MuonTemplate::ObjectParameter::ptLowThreshold
unsigned int ptLowThreshold
Definition: MuonTemplate.h:61
MuonTemplate::ObjectParameter::phiWindow2Upper
unsigned int phiWindow2Upper
Definition: MuonTemplate.h:84
MuonTemplate::ObjectParameter::etaRange
unsigned long long etaRange
Definition: MuonTemplate.h:70
l1t::ConditionEvaluation
Definition: ConditionEvaluation.h:39
MuonTemplate::ObjectParameter::phiWindow2Lower
unsigned int phiWindow2Lower
Definition: MuonTemplate.h:83
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:64
l1t::MuCondition::operator=
MuCondition & operator=(const MuCondition &)
Definition: MuCondition.cc:81
MuonTemplate::ObjectParameter::etaWindow2Lower
unsigned int etaWindow2Lower
Definition: MuonTemplate.h:78
MuonTemplate::ObjectParameter::requestIso
bool requestIso
Definition: MuonTemplate.h:66
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
BXVector::size
unsigned size(int bx) const
MuonTemplate::CorrelationParameter
Definition: MuonTemplate.h:90
GlobalCondition
Definition: GlobalCondition.h:33
MuonTemplate::ObjectParameter::indexHigh
unsigned int indexHigh
Definition: MuonTemplate.h:62
l1t::ConditionEvaluation::m_condMaxNumberObjects
int m_condMaxNumberObjects
Definition: ConditionEvaluation.h:148
l1t::Muon
Definition: Muon.h:21
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:79
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
MuonTemplate::CorrelationParameter::deltaPhiRangeLower
unsigned int deltaPhiRangeLower
Definition: MuonTemplate.h:106
l1t::MuCondition::setGtGTL
void setGtGTL(const GlobalBoard *)
set the pointer to GTL
Definition: MuCondition.cc:90
l1t::MuCondition::setGtCorrParDeltaPhiNrBins
void setGtCorrParDeltaPhiNrBins(const int &)
Definition: MuCondition.cc:98