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

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.
void constructRun2 (const std::vector< TrigConf::TriggerThreshold * > *caloThresholds)
 Content of RoI word different in Run 2.
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.
CPRoIDecoderm_decoder {nullptr}
 Used for decoding RoI word.
TrigT1CaloDefs::RoIType m_type {TrigT1CaloDefs::RoIWordTypeError}
 Stored properties of the RoI:
CoordinateRange m_coordRange
 this contains the coordinate range worked out from the RoIWord hardware coord (i.e.
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()),
36 m_type(m_decoder->roiType(m_roiWord)),
37 m_coordRange(m_decoder->coordinate(m_roiWord))
38{
40 this->constructRun1(caloThresholds);
41 }
44 {
45 this->constructRun2(caloThresholds);
46 }
47 else
48 {
51 m_isolationMask.clear();
52 m_emIsolation.clear();
53 m_hadIsolation.clear();
54 m_hadCoreIsolation.clear();
55 m_thresholdType.clear();
56 }
57}
unsigned long int m_roiWord
this is the actual format of the data sent from the LVL1 hardware.
CoordinateRange m_coordRange
this contains the coordinate range worked out from the RoIWord hardware coord (i.e.
void constructRun2(const std::vector< TrigConf::TriggerThreshold * > *caloThresholds)
Content of RoI word different in Run 2.
void constructRun1(const std::vector< TrigConf::TriggerThreshold * > *caloThresholds)
The "construct" call unpacks the RoIWord and copies information about the passed thresholds from the ...
std::map< int, unsigned int > m_hadIsolation
std::map< int, unsigned int > m_emIsolation
std::map< int, TrigT1CaloDefs::ClusterAlgorithm > m_thresholdType
std::map< int, unsigned int > m_hadCoreIsolation
unsigned long int m_thresholdMask
CPRoIDecoder * m_decoder
Used for decoding RoI word.
TrigT1CaloDefs::RoIType m_type
Stored properties of the RoI:
std::map< int, unsigned int > m_triggerThresholdValue
std::map< int, unsigned int > m_isolationMask

◆ 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()),
63 m_type(m_decoder->roiType(m_roiWord)),
64 m_coordRange(m_decoder->coordinate(m_roiWord))
65{
66 constructRun3(l1menu);
67}
void constructRun3(const TrigConf::L1Menu *const l1menu)

◆ 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
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 =
133 m_decoder->thresholdsPassed(m_roiWord);
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}
#define M_PI
#define min(a, b)
Definition cfImp.cxx:40
virtual int thresholdValueCount() const override
static std::string & typeAsString(TriggerType tt)
Definition L1DataDef.h:53
const std::string & type() const

◆ 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;
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}
static const int TAU
Definition AtlasPID.h:79
virtual unsigned int isolation() const
returns roi isolation results (Run 2 only)
virtual unsigned int et() const
returns roi ET (Run 2 only)
static const unsigned int numOfIsolationBits
float globalEmScale() const
Definition CaloInfo.h:43

◆ constructRun3()

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

Definition at line 256 of file RecEmTauRoI.cxx.

257{
258 m_thresholdMask = 0;
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();
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 }
460}
static const unsigned int Error

◆ 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 }
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 }
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
369 return m_decoder->isolationWord(m_roiWord);
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 }
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 {
498 return (thresh <= TrigT1CaloDefs::numOfCPThresholds);
499 }
501 {
502 return (thresh <= TrigT1CaloDefs::numOfEMCMXThresholds);
503 }
505 {
506 return (thresh <= TrigT1CaloDefs::numOfTauCMXThresholds);
507 }
508 return false;
509}
static const unsigned int numOfCPThresholds
static const unsigned int numOfTauCMXThresholds
static const unsigned int numOfEMCMXThresholds

◆ 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}
bool isValidThreshold(unsigned int thresh) const
returns true if thresh is a valid threshold number

◆ 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}
constexpr float roiPhi(const AnyRoIPointer &roi)

◆ 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 =
422 m_triggerThresholdValue.find(thresh);
423 if (it != m_triggerThresholdValue.end())
424 {
425 return (it->second);
426 }
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.

141{nullptr};

◆ 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.

138{ 0 };

◆ m_thresholdMask

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

Definition at line 150 of file RecEmTauRoI.h.

150{ 0 };

◆ 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: