Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
LVL1::RecEmTauRoI Class Reference

This class defines the reconstructed em/tau hadron ROI. More...

#include <RecEmTauRoI.h>

Inheritance diagram for LVL1::RecEmTauRoI:
Collaboration diagram for LVL1::RecEmTauRoI:

Public Member Functions

 RecEmTauRoI ()
 
 RecEmTauRoI (unsigned int RoIWord, const std::vector< TrigConf::TriggerThreshold * > *caloThresholds)
 constructor using Run 1+2 configuration More...
 
 RecEmTauRoI (unsigned int RoIWord, const TrigConf::L1Menu *const l1menu)
 constructor using Run 3 configuration More...
 
 RecEmTauRoI (const RecEmTauRoI &obj)
 
RecEmTauRoIoperator= (const RecEmTauRoI &obj)
 
 ~RecEmTauRoI ()
 
virtual unsigned int roiWord () const
 returns roi word More...
 
virtual double phi () const
 returns phi coord of ROI More...
 
virtual double eta () const
 returns eta coord of ROI More...
 
virtual unsigned int crate () const
 returns CP crate number More...
 
virtual unsigned int module () const
 returns CPM number More...
 
virtual unsigned int fpga () const
 returns FPGA number More...
 
virtual unsigned int localcoord () const
 returns local coordinate within FPGA More...
 
virtual unsigned int et () const
 returns roi ET (Run 2 only) More...
 
virtual unsigned int isolation () const
 returns roi isolation results (Run 2 only) More...
 
virtual TrigT1CaloDefs::RoIType roiType () const
 returns roi type (EM = TrigT1CaloDefs::EMRoIWordType, Tau = TrigT1CaloDefs::TauRoIWordType, Run 1 = TrigT1CaloDefs::CpRoIWordType) More...
 
bool passedThreshold (unsigned int threshold_number) const
 returns TRUE if threshold number threshold_number has been passed by this ROI. More...
 
const CoordinateRangecoord () const
 returns the CoordinateRange. More...
 
std::vector< unsigned int > * thresholdsPassed () const
 returns a vector of thresholds passed. More...
 
unsigned int thresholdPattern () const
 returns bitmask of passed thresholds More...
 
unsigned int triggerThreshold (unsigned int thresh) const
 returns the value of the trigger threshold for the threshold passed. More...
 
unsigned int emIsolation (unsigned int thresh) const
 returns the value of the em isolation ring for the threshold passed. More...
 
unsigned int hadIsolation (unsigned int thresh) const
 returns the value of the hadronic layer isolation ring for the threshold passed. More...
 
unsigned int hadCoreIsolation (unsigned int thresh) const
 returns the value of the hadronic layer core isolation for the threshold passed. More...
 
unsigned int isolationMask (unsigned int thresh) const
 returns the isolation bits required for the threshold passed (Run 2) More...
 
bool isValidThreshold (unsigned int thresh) const
 returns true if thresh is a valid threshold number More...
 
TrigT1CaloDefs::ClusterAlgorithm thresholdType (unsigned int thresh) const
 returns the type of the threshold, which is either EMAlg or TauAlg. More...
 

Private Member Functions

void constructRun1 (const std::vector< TrigConf::TriggerThreshold * > *caloThresholds)
 The "construct" call unpacks the RoIWord and copies information about the passed thresholds from the vector of TriggerThresholds into maps for later retrieval. More...
 
void constructRun2 (const std::vector< TrigConf::TriggerThreshold * > *caloThresholds)
 Content of RoI word different in Run 2. More...
 
void constructRun3 (const TrigConf::L1Menu *const l1menu)
 

Private Attributes

unsigned long int m_roiWord { 0 }
 this is the actual format of the data sent from the LVL1 hardware. More...
 
CPRoIDecoderm_decoder {nullptr}
 Used for decoding RoI word. More...
 
TrigT1CaloDefs::RoIType m_type {TrigT1CaloDefs::RoIWordTypeError}
 Stored properties of the RoI: More...
 
CoordinateRange m_coordRange
 this contains the coordinate range worked out from the RoIWord hardware coord (i.e. More...
 
unsigned long int m_thresholdMask { 0 }
 
std::map< int, unsigned int > m_triggerThresholdValue
 
std::map< int, unsigned int > m_isolationMask
 
std::map< int, unsigned int > m_emIsolation
 
std::map< int, unsigned int > m_hadIsolation
 
std::map< int, unsigned int > m_hadCoreIsolation
 
std::map< int, TrigT1CaloDefs::ClusterAlgorithmm_thresholdType
 

Detailed Description

This class defines the reconstructed em/tau hadron ROI.

It is generated from the Slink output of TrigT1Calo

Author
Edward Moyse

Definition at line 44 of file RecEmTauRoI.h.

Constructor & Destructor Documentation

◆ RecEmTauRoI() [1/4]

LVL1::RecEmTauRoI::RecEmTauRoI ( )
inline

Definition at line 48 of file RecEmTauRoI.h.

48 {}

◆ RecEmTauRoI() [2/4]

LVL1::RecEmTauRoI::RecEmTauRoI ( unsigned int  RoIWord,
const std::vector< TrigConf::TriggerThreshold * > *  caloThresholds 
)

constructor using Run 1+2 configuration

The constructor doesn't do much - all the work is in the "construct" method.

Definition at line 32 of file RecEmTauRoI.cxx.

34  : m_roiWord(RoIWord),
35  m_decoder(new CPRoIDecoder()),
38 {
40  this->constructRun1(caloThresholds);
41  }
44  {
45  this->constructRun2(caloThresholds);
46  }
47  else
48  {
49  m_thresholdMask = 0;
51  m_isolationMask.clear();
52  m_emIsolation.clear();
53  m_hadIsolation.clear();
54  m_hadCoreIsolation.clear();
55  m_thresholdType.clear();
56  }
57 }

◆ RecEmTauRoI() [3/4]

LVL1::RecEmTauRoI::RecEmTauRoI ( unsigned int  RoIWord,
const TrigConf::L1Menu *const  l1menu 
)

constructor using Run 3 configuration

Definition at line 59 of file RecEmTauRoI.cxx.

60  :
61  m_roiWord(RoIWord),
62  m_decoder(new CPRoIDecoder()),
65 {
67 }

◆ RecEmTauRoI() [4/4]

LVL1::RecEmTauRoI::RecEmTauRoI ( const RecEmTauRoI obj)

Definition at line 70 of file RecEmTauRoI.cxx.

70  :
71  m_roiWord{obj.m_roiWord},
72  m_decoder{new CPRoIDecoder()},
73  m_type{obj.m_type},
74  m_coordRange{obj.m_coordRange},
75  m_thresholdMask{obj.m_thresholdMask},
76  m_triggerThresholdValue{obj.m_triggerThresholdValue},
77  m_isolationMask{obj.m_isolationMask},
78  m_emIsolation{obj.m_emIsolation},
79  m_hadIsolation{obj.m_hadIsolation},
80  m_hadCoreIsolation{obj.m_hadCoreIsolation},
81  m_thresholdType{obj.m_thresholdType}
82 {}

◆ ~RecEmTauRoI()

LVL1::RecEmTauRoI::~RecEmTauRoI ( )

Definition at line 105 of file RecEmTauRoI.cxx.

105  {
106  delete m_decoder;
107 }

Member Function Documentation

◆ constructRun1()

void LVL1::RecEmTauRoI::constructRun1 ( const std::vector< TrigConf::TriggerThreshold * > *  caloThresholds)
private

The "construct" call unpacks the RoIWord and copies information about the passed thresholds from the vector of TriggerThresholds into maps for later retrieval.

One warning here: the methods of the RecRoI classes assume threshold numbering starts at 1, rather than 0 in the calorimeter trigger simulation and Lvl1ConfigSvc. Hence the odd "-1" in a couple of places in this class

Definition at line 119 of file RecEmTauRoI.cxx.

121 {
122 
123  m_thresholdMask = m_roiWord & 0xffff;
124 
125  m_triggerThresholdValue.clear();
126  m_isolationMask.clear();
127  m_emIsolation.clear();
128  m_hadIsolation.clear();
129  m_hadCoreIsolation.clear();
130  m_thresholdType.clear();
131 
132  const vector<unsigned int> passed_thresholds =
134 
135  // Copy the thresholds into a map - makes matching up the passed ones very easy
136  std::map<int, TriggerThreshold *> thrMap;
137 
138  for (std::vector<TriggerThreshold *>::const_iterator it =
139  caloThresholds->begin();
140  it != caloThresholds->end(); ++it)
141  {
142  if ((*it)->type() == L1DataDef::typeAsString(L1DataDef::EM) ||
143  (*it)->type() == L1DataDef::typeAsString(L1DataDef::TAU))
144  {
145  int num = (*it)->thresholdNumber();
146  thrMap.insert(std::map<int, TriggerThreshold *>::value_type(num, (*it)));
147  }
148  }
149 
150  //
151  // Extract the properties of the passed thresholds:
152  //
153 
154  int ieta = int((m_coordRange.etaRange().min() + 0.025) / 0.1) +
155  ((m_coordRange.etaRange().min() + 0.025 > 0) ? 0 : -1);
156  int iphi = int((m_coordRange.phiRange().min() + 0.025) * 32 / M_PI);
157 
158  for (vector<unsigned int>::const_iterator itp = passed_thresholds.begin();
159  itp != passed_thresholds.end(); ++itp)
160  {
161  std::map<int, TriggerThreshold *>::const_iterator thr =
162  thrMap.find(*itp - 1);
163  if (thr != thrMap.end())
164  {
165  TriggerThresholdValue *ttv =
166  thr->second->triggerThresholdValue(ieta, iphi);
167  ClusterThresholdValue *ctv = dynamic_cast<ClusterThresholdValue *>(ttv);
168  if (ctv)
169  {
170  m_triggerThresholdValue.insert(std::map<int, unsigned int>::value_type(
171  *itp, ctv->thresholdValueCount()));
172  m_emIsolation.insert(std::map<int, unsigned int>::value_type(
173  *itp, ctv->emIsolationCount()));
174  m_hadIsolation.insert(std::map<int, unsigned int>::value_type(
175  *itp, ctv->hadIsolationCount()));
176  m_hadCoreIsolation.insert(
177  std::map<int, unsigned int>::value_type(*itp, ctv->hadVetoCount()));
181  m_thresholdType.insert(
182  std::map<int, TrigT1CaloDefs::ClusterAlgorithm>::value_type(*itp,
183  type));
184  }
185  } // end "found threshold in map"
186  } // end loop through passed thresholds
187 
188  return;
189 }

◆ constructRun2()

void LVL1::RecEmTauRoI::constructRun2 ( const std::vector< TrigConf::TriggerThreshold * > *  caloThresholds)
private

Content of RoI word different in Run 2.

To obtain thresholds passed need to simulate thresholding. Hence have an alternate constructor here

Definition at line 195 of file RecEmTauRoI.cxx.

196 {
197 
198  m_thresholdMask = 0;
199  m_triggerThresholdValue.clear();
200  m_isolationMask.clear();
201  m_emIsolation.clear();
202  m_hadIsolation.clear();
203  m_hadCoreIsolation.clear();
204  m_thresholdType.clear();
205 
206  std::string triggerType =
208  : L1DataDef::typeAsString(L1DataDef::TAU));
209 
210  int ieta = int((m_coordRange.etaRange().min() + 0.025) / 0.1) +
211  ((m_coordRange.etaRange().min() + 0.025 > 0) ? 0 : -1);
212  int iphi = int((m_coordRange.phiRange().min() + 0.025) * 32 / M_PI);
213 
214  unsigned int isolWord = isolation();
215 
216  // Iterate through vector of thresholds and see which ones this RoI satisfies
217  for (std::vector<TriggerThreshold *>::const_iterator it =
218  caloThresholds->begin();
219  it != caloThresholds->end(); ++it) {
220  if ((*it)->type() == triggerType) {
221  // Does it satisfy this one?
222  // Start by extracting threshold values
223  TriggerThresholdValue *ttv = (*it)->triggerThresholdValue(ieta, iphi);
224  ClusterThresholdValue *ctv = dynamic_cast<ClusterThresholdValue *>(ttv);
225  if (ctv) {
226  float scale = ctv->caloInfo().globalEmScale();
227  unsigned int etCut = ctv->ptcut();
228  unsigned int threshold = etCut * scale;
229  unsigned int isolMask = ctv->isolationMask();
230 
231  bool isolationPassed = true;
232  for (unsigned int bit = 0; bit < TrigT1CaloDefs::numOfIsolationBits;
233  ++bit)
234  if ((isolMask & (1 << bit)) && !(isolWord & (1 << bit)))
235  isolationPassed = false;
236 
237  if (et() > threshold && isolationPassed) {
238  int num = (*it)->thresholdNumber();
240  std::map<int, unsigned int>::value_type(num, etCut));
241  m_isolationMask.insert(
242  std::map<int, unsigned int>::value_type(num, isolMask));
246  m_thresholdType.insert(
247  std::map<int, TrigT1CaloDefs::ClusterAlgorithm>::value_type(
248  num, type));
249  m_thresholdMask |= (1 << num);
250  } // passes cuts
251  } // ClusterThresholdValue pointer valid
252  } // correct threshold type
253  } // Loop over thresholds
254 }

◆ constructRun3()

void LVL1::RecEmTauRoI::constructRun3 ( const TrigConf::L1Menu *const  l1menu)
private

Definition at line 256 of file RecEmTauRoI.cxx.

257 {
258  m_thresholdMask = 0;
259  m_triggerThresholdValue.clear();
260  m_isolationMask.clear();
261  m_emIsolation.clear();
262  m_hadIsolation.clear();
263  m_hadCoreIsolation.clear();
264  m_thresholdType.clear();
265 
266  std::string triggerType = (m_type == TrigT1CaloDefs::EMRoIWordType ? "EM" : "TAU");
267 
268  // get the integer eta value
269  // eta value of ROIs goes in steps of 0.1 and on the negative side 1 is subtracted to avoid overlap at 0
270  // (copied from constructRun2)
271  int ieta = int((m_coordRange.etaRange().min() + 0.025) / 0.1) +
272  ((m_coordRange.etaRange().min() + 0.025 > 0) ? 0 : -1);
273 
274  unsigned int isolWord = RecEmTauRoI::isolation();
275 
276  // Iterate through the configured thresholds and see which ones this RoI satisfies
277  for (const shared_ptr<TrigConf::L1Threshold> &thr : l1menu->thresholds(triggerType))
278  {
279  // Start by extracting threshold values
280  auto caloThr = dynamic_cast<TrigConf::L1Threshold_Calo*>(thr.get());
281  if (!caloThr)
282  {
283  continue;
284  }
285 
286  // test eT
287  unsigned int etCut = std::round(caloThr->thrValue(ieta)); // threshold value in GeV (integer for legacy thr)
288  unsigned int etCounts = caloThr->thrValueCounts(ieta); // threshold counts (threshold value * emscale)
289  bool eTPassed = (RecEmTauRoI::et() > etCounts);
290 
291  // test isolation
292  unsigned int isolMask = 0;
293  if (triggerType == "EM")
294  {
295  auto emThr = dynamic_cast<TrigConf::L1Threshold_EM*>(thr.get());
296  if (emThr)
297  {
298  isolMask = emThr->isolationMask(ieta);
299  }
300  }
301  else if (triggerType == "TAU")
302  {
303  auto tauThr = dynamic_cast<TrigConf::L1Threshold_TAU*>(thr.get());
304  if (tauThr)
305  {
306  isolMask = tauThr->isolationMask();
307  }
308  }
309  bool isolationPassed = true;
310  for (unsigned int bit = 0; bit < TrigT1CaloDefs::numOfIsolationBits; ++bit)
311  {
312  if ((isolMask & (1 << bit)) && !(isolWord & (1 << bit)))
313  {
314  isolationPassed = false;
315  }
316  }
317 
318  if (eTPassed && isolationPassed)
319  {
320  int num = thr->mapping();
321  m_triggerThresholdValue[num] = etCut;
322  m_isolationMask[num] = isolMask;
324  m_thresholdMask |= (1 << num);
325  } // passes cuts
326  } // Loop over thresholds
327 }

◆ coord()

const LVL1::CoordinateRange & LVL1::RecEmTauRoI::coord ( ) const

returns the CoordinateRange.

This is worked out from the RoIWord's hardware coords (i.e. crate number, CPM number etc.) by the RoIDecoder class.

Definition at line 392 of file RecEmTauRoI.cxx.

392 { return m_coordRange; }

◆ crate()

unsigned int LVL1::RecEmTauRoI::crate ( ) const
virtual

returns CP crate number

returns crate number of ROI

Definition at line 345 of file RecEmTauRoI.cxx.

345 { return m_decoder->crate(m_roiWord); }

◆ emIsolation()

unsigned int LVL1::RecEmTauRoI::emIsolation ( unsigned int  thresh) const

returns the value of the em isolation ring for the threshold passed.

(Run 1)

(Run 1 only)

Definition at line 448 of file RecEmTauRoI.cxx.

449 {
450 
452  return 0;
453 
454  std::map<int, unsigned int>::const_iterator it = m_emIsolation.find(thresh);
455  if (it != m_emIsolation.end())
456  {
457  return (it->second);
458  }
459  return TrigT1CaloDefs::Error;
460 }

◆ et()

unsigned int LVL1::RecEmTauRoI::et ( ) const
virtual

returns roi ET (Run 2 only)

returns cluster ET of Run 2 RoI

Definition at line 363 of file RecEmTauRoI.cxx.

363 { return m_decoder->et(m_roiWord); }

◆ eta()

double LVL1::RecEmTauRoI::eta ( ) const
virtual

returns eta coord of ROI

Implements iRecCoordRoI.

Definition at line 342 of file RecEmTauRoI.cxx.

342 { return m_coordRange.eta(); }

◆ fpga()

unsigned int LVL1::RecEmTauRoI::fpga ( ) const
virtual

returns FPGA number

returns FPGA number of ROI

Definition at line 354 of file RecEmTauRoI.cxx.

354 { return m_decoder->chip(m_roiWord); }

◆ hadCoreIsolation()

unsigned int LVL1::RecEmTauRoI::hadCoreIsolation ( unsigned int  thresh) const

returns the value of the hadronic layer core isolation for the threshold passed.

(Run 1)

(Run 1 only)

Definition at line 479 of file RecEmTauRoI.cxx.

480 {
481 
483  return 0;
484 
485  map<int, unsigned int>::const_iterator it = m_hadCoreIsolation.find(thresh);
486  if (it != m_hadCoreIsolation.end())
487  {
488  return (it->second);
489  }
490  return TrigT1CaloDefs::Error;
491 }

◆ hadIsolation()

unsigned int LVL1::RecEmTauRoI::hadIsolation ( unsigned int  thresh) const

returns the value of the hadronic layer isolation ring for the threshold passed.

(Run 1)

(Run 1 only)

Definition at line 464 of file RecEmTauRoI.cxx.

465 {
467  return 0;
468 
469  map<int, unsigned int>::const_iterator it = m_hadIsolation.find(thresh);
470  if (it != m_hadIsolation.end())
471  {
472  return (it->second);
473  }
474  return TrigT1CaloDefs::Error;
475 }

◆ isolation()

unsigned int LVL1::RecEmTauRoI::isolation ( ) const
virtual

returns roi isolation results (Run 2 only)

returns isolation word of Run 2 RoI

Definition at line 366 of file RecEmTauRoI.cxx.

367 {
368 
370 }

◆ isolationMask()

unsigned int LVL1::RecEmTauRoI::isolationMask ( unsigned int  thresh) const

returns the isolation bits required for the threshold passed (Run 2)

returns the value of the isolation mask for the threshold passed.

(Run 2 only)

Definition at line 432 of file RecEmTauRoI.cxx.

433 {
434 
436  return 0;
437 
438  std::map<int, unsigned int>::const_iterator it = m_isolationMask.find(thresh);
439  if (it != m_isolationMask.end())
440  {
441  return (it->second);
442  }
443  return TrigT1CaloDefs::Error;
444 }

◆ isValidThreshold()

bool LVL1::RecEmTauRoI::isValidThreshold ( unsigned int  thresh) const

returns true if thresh is a valid threshold number

Definition at line 494 of file RecEmTauRoI.cxx.

495 {
497  {
499  }
501  {
503  }
505  {
507  }
508  return false;
509 }

◆ localcoord()

unsigned int LVL1::RecEmTauRoI::localcoord ( ) const
virtual

returns local coordinate within FPGA

returns local coordinate of ROI

Definition at line 357 of file RecEmTauRoI.cxx.

358 {
359  return m_decoder->localcoord(m_roiWord);
360 }

◆ module()

unsigned int LVL1::RecEmTauRoI::module ( ) const
virtual

returns CPM number

returns module number of ROI

Definition at line 348 of file RecEmTauRoI.cxx.

349 {
350  return m_decoder->module(m_roiWord);
351 }

◆ operator=()

LVL1::RecEmTauRoI & LVL1::RecEmTauRoI::operator= ( const RecEmTauRoI obj)

Definition at line 86 of file RecEmTauRoI.cxx.

87 {
88  if(this != &rhs) {
89  m_roiWord = rhs.m_roiWord;
90  delete m_decoder;
91  m_decoder = new CPRoIDecoder();
92  m_type = rhs.m_type;
93  m_coordRange = rhs.m_coordRange;
94  m_thresholdMask = rhs.m_thresholdMask;
95  m_triggerThresholdValue = rhs.m_triggerThresholdValue;
96  m_isolationMask = rhs.m_isolationMask;
97  m_emIsolation = rhs.m_emIsolation;
98  m_hadIsolation = rhs.m_hadIsolation;
99  m_hadCoreIsolation = rhs.m_hadCoreIsolation;
100  m_thresholdType = rhs.m_thresholdType;
101  }
102  return *this;
103 }

◆ passedThreshold()

bool LVL1::RecEmTauRoI::passedThreshold ( unsigned int  threshold_number) const

returns TRUE if threshold number threshold_number has been passed by this ROI.

Definition at line 381 of file RecEmTauRoI.cxx.

382 {
383  if (this->isValidThreshold(threshold_number)) {
384  return ((1 << threshold_number) & m_thresholdMask) != 0;
385  }
386  return false;
387 }

◆ phi()

double LVL1::RecEmTauRoI::phi ( ) const
virtual

returns phi coord of ROI

Implements iRecCoordRoI.

Definition at line 332 of file RecEmTauRoI.cxx.

333 {
334 
335  double roiPhi = m_coordRange.phi();
336  if (roiPhi > M_PI)
337  roiPhi -= 2 * M_PI;
338  return roiPhi;
339 }

◆ roiType()

LVL1::TrigT1CaloDefs::RoIType LVL1::RecEmTauRoI::roiType ( ) const
virtual

returns roi type (EM = TrigT1CaloDefs::EMRoIWordType, Tau = TrigT1CaloDefs::TauRoIWordType, Run 1 = TrigT1CaloDefs::CpRoIWordType)

returns type of RoI

Definition at line 377 of file RecEmTauRoI.cxx.

377 { return m_type; }

◆ roiWord()

unsigned int LVL1::RecEmTauRoI::roiWord ( ) const
virtual

returns roi word

Implements iRecCoordRoI.

Definition at line 329 of file RecEmTauRoI.cxx.

329 { return m_roiWord; }

◆ thresholdPattern()

unsigned int LVL1::RecEmTauRoI::thresholdPattern ( ) const

returns bitmask of passed thresholds

returns bitmask of thresholds passed by RoI

Definition at line 373 of file RecEmTauRoI.cxx.

373 { return m_thresholdMask; }

◆ thresholdsPassed()

std::vector< unsigned int > * LVL1::RecEmTauRoI::thresholdsPassed ( ) const

returns a vector of thresholds passed.

Definition at line 396 of file RecEmTauRoI.cxx.

397 {
398  std::vector<unsigned int> *newVec = new std::vector<unsigned int>;
399 
400  unsigned int nThresh = TrigT1CaloDefs::numOfCPThresholds;
405 
406  for (unsigned int iTh = 0; iTh <= nThresh; ++iTh) {
407  std::map<int, unsigned int>::const_iterator it =
408  m_triggerThresholdValue.find(iTh);
409  if (it != m_triggerThresholdValue.end())
410  newVec->push_back(iTh);
411  }
412 
413  return newVec;
414 }

◆ thresholdType()

LVL1::TrigT1CaloDefs::ClusterAlgorithm LVL1::RecEmTauRoI::thresholdType ( unsigned int  thresh) const

returns the type of the threshold, which is either EMAlg or TauAlg.

If there is a problem, ClustAlgError is returned

Definition at line 514 of file RecEmTauRoI.cxx.

515 {
516 
517  map<int, TrigT1CaloDefs::ClusterAlgorithm>::const_iterator it =
518  m_thresholdType.find(thresh);
519  if (it != m_thresholdType.end())
520  {
521  return it->second;
522  }
524 }

◆ triggerThreshold()

unsigned int LVL1::RecEmTauRoI::triggerThreshold ( unsigned int  thresh) const

returns the value of the trigger threshold for the threshold passed.

The trigger threshold is also sometimes called the cluster threshold.

Todo:
Thresholds can vary by coordinate. Return value which matches coord of RecRoI

The trigger threshold is also sometimes called the cluster threshold.

Definition at line 418 of file RecEmTauRoI.cxx.

419 {
420 
421  std::map<int, unsigned int>::const_iterator it =
423  if (it != m_triggerThresholdValue.end())
424  {
425  return (it->second);
426  }
427  return TrigT1CaloDefs::Error;
428 }

Member Data Documentation

◆ m_coordRange

CoordinateRange LVL1::RecEmTauRoI::m_coordRange
private

this contains the coordinate range worked out from the RoIWord hardware coord (i.e.

crate number, CPM number etc.)

Definition at line 148 of file RecEmTauRoI.h.

◆ m_decoder

CPRoIDecoder* LVL1::RecEmTauRoI::m_decoder {nullptr}
private

Used for decoding RoI word.

Definition at line 141 of file RecEmTauRoI.h.

◆ m_emIsolation

std::map< int, unsigned int > LVL1::RecEmTauRoI::m_emIsolation
private

Definition at line 153 of file RecEmTauRoI.h.

◆ m_hadCoreIsolation

std::map< int, unsigned int > LVL1::RecEmTauRoI::m_hadCoreIsolation
private

Definition at line 155 of file RecEmTauRoI.h.

◆ m_hadIsolation

std::map< int, unsigned int > LVL1::RecEmTauRoI::m_hadIsolation
private

Definition at line 154 of file RecEmTauRoI.h.

◆ m_isolationMask

std::map< int, unsigned int > LVL1::RecEmTauRoI::m_isolationMask
private

Definition at line 152 of file RecEmTauRoI.h.

◆ m_roiWord

unsigned long int LVL1::RecEmTauRoI::m_roiWord { 0 }
private

this is the actual format of the data sent from the LVL1 hardware.

See ATL-DAQ-99-015 for further explanation.

Definition at line 138 of file RecEmTauRoI.h.

◆ m_thresholdMask

unsigned long int LVL1::RecEmTauRoI::m_thresholdMask { 0 }
private

Definition at line 150 of file RecEmTauRoI.h.

◆ m_thresholdType

std::map< int, TrigT1CaloDefs::ClusterAlgorithm > LVL1::RecEmTauRoI::m_thresholdType
private

Definition at line 156 of file RecEmTauRoI.h.

◆ m_triggerThresholdValue

std::map< int, unsigned int > LVL1::RecEmTauRoI::m_triggerThresholdValue
private

Definition at line 151 of file RecEmTauRoI.h.

◆ m_type

TrigT1CaloDefs::RoIType LVL1::RecEmTauRoI::m_type {TrigT1CaloDefs::RoIWordTypeError}
private

Stored properties of the RoI:

Definition at line 144 of file RecEmTauRoI.h.


The documentation for this class was generated from the following files:
TrigConf::TriggerThresholdValue
Definition: TriggerThresholdValue.h:22
TrigConf::ClusterThresholdValue::thresholdValueCount
virtual int thresholdValueCount() const override
Definition: ClusterThresholdValue.cxx:58
LVL1::CPRoIDecoder::isolationWord
unsigned int isolationWord(const unsigned int roiWord) const
Extract isolation results from Run 2 RoI word.
Definition: CPRoIDecoder.cxx:142
LVL1::CPRoIDecoder::crate
unsigned int crate(const unsigned int roiWord) const
Decode crate number from RoI word.
Definition: CPRoIDecoder.cxx:104
TruthTest.itp
itp
Definition: TruthTest.py:46
LVL1::Coordinate::phi
double phi() const
return phi
Definition: Coordinate.cxx:50
LVL1::CoordinateRange::phiRange
PhiRange phiRange() const
Definition: CoordinateRange.cxx:40
HLTSeedingRoIToolDefs::roiPhi
constexpr float roiPhi(const AnyRoIPointer &roi)
Definition: HLTSeedingRoIToolDefs.h:167
LVL1::RecEmTauRoI::m_thresholdType
std::map< int, TrigT1CaloDefs::ClusterAlgorithm > m_thresholdType
Definition: RecEmTauRoI.h:156
LVL1::TrigT1CaloDefs::ClustAlgError
@ ClustAlgError
Definition: TrigT1CaloDefs.h:212
LVL1::TrigT1CaloDefs::TauRoIWordType
@ TauRoIWordType
Definition: TrigT1CaloDefs.h:174
physval_make_web_display.thresh
thresh
Definition: physval_make_web_display.py:36
LVL1::Range::min
double min() const
Definition: Trigger/TrigT1/TrigT1Interfaces/src/Range.cxx:31
LVL1::RecEmTauRoI::isolation
virtual unsigned int isolation() const
returns roi isolation results (Run 2 only)
Definition: RecEmTauRoI.cxx:366
LVL1::RecEmTauRoI::m_decoder
CPRoIDecoder * m_decoder
Used for decoding RoI word.
Definition: RecEmTauRoI.h:141
MuonGM::round
float round(const float toRound, const unsigned int decimals)
Definition: Mdt.cxx:27
skel.it
it
Definition: skel.GENtoEVGEN.py:407
TrigConf::TriggerThresholdValue::ptcut
float ptcut() const
Definition: TriggerThresholdValue.h:45
M_PI
#define M_PI
Definition: ActiveFraction.h:11
LVL1::TrigT1CaloDefs::ClusterAlgorithm
ClusterAlgorithm
Definition: TrigT1CaloDefs.h:208
LVL1::RecEmTauRoI::m_emIsolation
std::map< int, unsigned int > m_emIsolation
Definition: RecEmTauRoI.h:153
LVL1::TrigT1CaloDefs::EMAlg
@ EMAlg
Definition: TrigT1CaloDefs.h:209
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
TrigConf::L1Threshold_EM::isolationMask
uint16_t isolationMask(int eta) const
Definition: L1Threshold.h:28
TrigConf::ClusterThresholdValue
Definition: ClusterThresholdValue.h:13
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
TrigConf::ClusterThresholdValue::isolationMask
uint16_t isolationMask() const
Definition: ClusterThresholdValue.h:33
LVL1::RecEmTauRoI::constructRun2
void constructRun2(const std::vector< TrigConf::TriggerThreshold * > *caloThresholds)
Content of RoI word different in Run 2.
Definition: RecEmTauRoI.cxx:195
TCS::TAU
@ TAU
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:18
TrigConf::L1Threshold_Calo
Definition: L1ThresholdBase.h:188
LVL1::RecEmTauRoI::m_hadCoreIsolation
std::map< int, unsigned int > m_hadCoreIsolation
Definition: RecEmTauRoI.h:155
LVL1::TrigT1CaloDefs::numOfIsolationBits
static const unsigned int numOfIsolationBits
Definition: TrigT1CaloDefs.h:135
LVL1::CPRoIDecoder::et
unsigned int et(const unsigned int roiWord) const
ET and Isolation information (Run 2 RoIs)
Definition: CPRoIDecoder.cxx:132
TrigConf::ClusterThresholdValue::emIsolationCount
int emIsolationCount() const
Definition: ClusterThresholdValue.cxx:28
LVL1::RecEmTauRoI::isValidThreshold
bool isValidThreshold(unsigned int thresh) const
returns true if thresh is a valid threshold number
Definition: RecEmTauRoI.cxx:494
TrigConf::L1DataDef
Definition: L1DataDef.h:16
LVL1::CPRoIDecoder::thresholdsPassed
const std::vector< unsigned int > thresholdsPassed(const unsigned int word) const
Thresholds passed (Run 1 RoIs)
Definition: CPRoIDecoder.cxx:153
LVL1::RecEmTauRoI::constructRun3
void constructRun3(const TrigConf::L1Menu *const l1menu)
Definition: RecEmTauRoI.cxx:256
python.LArMinBiasAlgConfig.int
int
Definition: LArMinBiasAlgConfig.py:59
LVL1::TrigT1CaloDefs::TauAlg
@ TauAlg
Definition: TrigT1CaloDefs.h:210
TrigConf::TriggerThresholdValue::type
const std::string & type() const
Definition: TriggerThresholdValue.h:44
TrigConf::L1Threshold_TAU::isolationMask
uint16_t isolationMask() const
Definition: L1Threshold.h:44
LVL1::CoordinateRange::etaRange
Range etaRange() const
Definition: CoordinateRange.cxx:42
LVL1::TrigT1CaloDefs::numOfTauCMXThresholds
static const unsigned int numOfTauCMXThresholds
Definition: TrigT1CaloDefs.h:133
trigbs_pickEvents.num
num
Definition: trigbs_pickEvents.py:76
TrigConf::L1DataDef::typeAsString
static std::string & typeAsString(TriggerType tt)
Definition: L1DataDef.h:53
LVL1::RecEmTauRoI::m_thresholdMask
unsigned long int m_thresholdMask
Definition: RecEmTauRoI.h:150
threshold
Definition: chainparser.cxx:74
LVL1::RecEmTauRoI::constructRun1
void constructRun1(const std::vector< TrigConf::TriggerThreshold * > *caloThresholds)
The "construct" call unpacks the RoIWord and copies information about the passed thresholds from the ...
Definition: RecEmTauRoI.cxx:119
LVL1::Coordinate::eta
double eta() const
return eta
Definition: Coordinate.cxx:45
LVL1::CPRoIDecoder::localcoord
unsigned int localcoord(const unsigned int roiWord) const
Decode local coordinate from RoI word.
Definition: CPRoIDecoder.cxx:125
TrigConf::ClusterThresholdValue::hadIsolationCount
int hadIsolationCount() const
Definition: ClusterThresholdValue.cxx:40
TrigConf::L1DataDef::TAU
@ TAU
Definition: L1DataDef.h:20
LVL1::RecEmTauRoI::m_isolationMask
std::map< int, unsigned int > m_isolationMask
Definition: RecEmTauRoI.h:152
LVL1::PhiRange::min
double min() const
Definition: PhiRange.cxx:35
LVL1::CPRoIDecoder::coordinate
virtual CoordinateRange coordinate(const unsigned int roiWord) const override
RoI coordinate information.
Definition: CPRoIDecoder.cxx:50
LVL1::CPRoIDecoder::module
unsigned int module(const unsigned int roiWord) const
Decode module number from RoI word.
Definition: CPRoIDecoder.cxx:111
LVL1::CPRoIDecoder::chip
unsigned int chip(const unsigned int roiWord) const
Decode CP chip number from RoI word.
Definition: CPRoIDecoder.cxx:118
LVL1::TrigT1CaloDefs::numOfCPThresholds
static const unsigned int numOfCPThresholds
Definition: TrigT1CaloDefs.h:125
LVL1::TrigT1CaloDefs::numOfEMCMXThresholds
static const unsigned int numOfEMCMXThresholds
Definition: TrigT1CaloDefs.h:132
LVL1::RecEmTauRoI::m_hadIsolation
std::map< int, unsigned int > m_hadIsolation
Definition: RecEmTauRoI.h:154
TrigConf::TriggerThresholdValue::caloInfo
const CaloInfo & caloInfo() const
Definition: TriggerThresholdValue.cxx:35
python.XMLReader.l1menu
l1menu
Definition: XMLReader.py:73
RunTileMonitoring.triggerType
triggerType
Definition: RunTileMonitoring.py:162
LVL1::RecEmTauRoI::m_coordRange
CoordinateRange m_coordRange
this contains the coordinate range worked out from the RoIWord hardware coord (i.e.
Definition: RecEmTauRoI.h:148
LVL1::TrigT1CaloDefs::EMRoIWordType
@ EMRoIWordType
Definition: TrigT1CaloDefs.h:173
TrigConf::ClusterThresholdValue::hadVetoCount
int hadVetoCount() const
Definition: ClusterThresholdValue.cxx:49
LVL1::RecEmTauRoI::m_type
TrigT1CaloDefs::RoIType m_type
Stored properties of the RoI:
Definition: RecEmTauRoI.h:144
LVL1::RecEmTauRoI::m_roiWord
unsigned long int m_roiWord
this is the actual format of the data sent from the LVL1 hardware.
Definition: RecEmTauRoI.h:138
LVL1::RecEmTauRoI::m_triggerThresholdValue
std::map< int, unsigned int > m_triggerThresholdValue
Definition: RecEmTauRoI.h:151
TrigConf::L1Threshold_TAU
Definition: L1Threshold.h:37
TrigConf::CaloInfo::globalEmScale
float globalEmScale() const
Definition: CaloInfo.h:43
python.PyAthena.obj
obj
Definition: PyAthena.py:132
LVL1::TrigT1CaloDefs::CpRoIWordType
@ CpRoIWordType
Definition: TrigT1CaloDefs.h:167
LVL1::RecEmTauRoI::et
virtual unsigned int et() const
returns roi ET (Run 2 only)
Definition: RecEmTauRoI.cxx:363
TrigConf::L1Threshold_EM
Definition: L1Threshold.h:17
TrigConf::L1DataDef::EM
@ EM
Definition: L1DataDef.h:20
LVL1::CPRoIDecoder::roiType
TrigT1CaloDefs::RoIType roiType(unsigned int word) const
CP-RoI specific, but can distinguish Run 1/Run 2.
Definition: CPRoIDecoder.cxx:31
LVL1::TrigT1CaloDefs::Error
static const unsigned int Error
Definition: TrigT1CaloDefs.h:122