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

#include <TrigThresholdDecisionTool.h>

Inheritance diagram for LVL1::TrigThresholdDecisionTool:
Collaboration diagram for LVL1::TrigThresholdDecisionTool:

Classes

struct  RPCFlagDecision
 
struct  TGCFlagDecision
 

Public Member Functions

 TrigThresholdDecisionTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual StatusCode initialize () override
 
virtual StatusCode start () override
 
virtual uint64_t getPattern (const xAOD::MuonRoI &roi, const ThrVec &menuThresholds, const TrigConf::L1ThrExtraInfoBase &menuExtraInfo) const override
 
virtual uint64_t getPattern (uint32_t dataWord, const ThrVec &menuThresholds, const TrigConf::L1ThrExtraInfoBase &menuExtraInfo) const
 
virtual std::vector< std::pair< std::shared_ptr< TrigConf::L1Threshold >, bool > > getThresholdDecisions (uint32_t dataWord, const EventContext &eventContext) const override
 
virtual std::vector< std::pair< std::shared_ptr< TrigConf::L1Threshold >, bool > > getThresholdDecisions (uint32_t dataWord, const ThrVec &menuThresholds, const TrigConf::L1ThrExtraInfoBase &menuExtraInfo) const override
 
virtual std::pair< std::string, double > getMinThresholdNameAndValue (const std::vector< std::pair< std::shared_ptr< TrigConf::L1Threshold >, bool > > &decisions, const double &eta=0) const override
 

Protected Member Functions

bool isExcludedRPCROI (const TrigConf::L1ThrExtraInfo_MU &menuExtraInfo, const std::string &rpcExclROIList, unsigned roi, unsigned sectorID, bool isSideC) const
 
bool getTGCDecision (const std::string &tgcFlags, bool F, bool C, bool H) const
 
void makeTGCDecision (const std::string &tgcFlags, bool F, bool C, bool H)
 
bool getRPCDecision (const std::string &rpcFlags, bool M) const
 
void makeRPCDecision (const std::string &rpcFlags, bool M)
 
void parseFlags (const std::string &flags)
 
std::vector< std::string > parseString (const std::string &str, const std::string &sep) const
 
std::string getShapedFlags (const std::string &flags) const
 

Protected Attributes

ToolHandle< LVL1::ITrigT1MuonRecRoiToolm_rpcTool {this, "RPCRecRoiTool", "LVL1::TrigT1RPCRecRoiTool/LVL1__TrigT1RPCRecRoiTool", "Tool to get the eta/phi coordinates in the RPC"}
 
ToolHandle< LVL1::ITrigT1MuonRecRoiToolm_tgcTool {this, "TGCRecRoiTool", "LVL1::TrigT1TGCRecRoiTool/LVL1__TrigT1TGCRecRoiTool", "Tool to get the eta/phi coordinates in the TGC"}
 
std::map< std::string, std::vector< std::vector< std::string > > > m_parsed_flags
 
std::map< std::string, std::set< TGCFlagDecision > > m_tgcFlag_decisions
 
std::map< std::string, std::set< RPCFlagDecision > > m_rpcFlag_decisions
 

Detailed Description

Definition at line 39 of file TrigThresholdDecisionTool.h.

Constructor & Destructor Documentation

◆ TrigThresholdDecisionTool()

LVL1::TrigThresholdDecisionTool::TrigThresholdDecisionTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 15 of file TrigThresholdDecisionTool.cxx.

18  : base_class(type, name, parent) {}

Member Function Documentation

◆ getMinThresholdNameAndValue()

std::pair< std::string, double > LVL1::TrigThresholdDecisionTool::getMinThresholdNameAndValue ( const std::vector< std::pair< std::shared_ptr< TrigConf::L1Threshold >, bool > > &  decisions,
const double &  eta = 0 
) const
overridevirtual

Definition at line 209 of file TrigThresholdDecisionTool.cxx.

210  {
211  //find the highest pt threshold passed - depite the name of this function
212  std::string thrName="";
213  double thrVal=0;
214  double thrValTmp=0;
215  for (unsigned idec=0;idec<decisions.size();++idec) {
216  if (!decisions[idec].second) continue;
217  std::shared_ptr<TrigConf::L1Threshold_MU> thr = std::static_pointer_cast<TrigConf::L1Threshold_MU>(decisions[idec].first);
218  if(std::abs(eta)<1.05){
219  thrValTmp = thr->ptBarrel();
220  }
221  else{
222  thrValTmp = thr->ptEndcap();
223  }
224  if (thrValTmp > thrVal)
225  {
226  thrVal = thrValTmp;
227  thrName = thr->name();
228  }
229  }
230  return std::make_pair(thrName, thrVal);
231  }

◆ getPattern() [1/2]

uint64_t LVL1::TrigThresholdDecisionTool::getPattern ( const xAOD::MuonRoI roi,
const ThrVec &  menuThresholds,
const TrigConf::L1ThrExtraInfoBase menuExtraInfo 
) const
overridevirtual

Definition at line 78 of file TrigThresholdDecisionTool.cxx.

80  {
81  return getPattern(roi.roiWord(), menuThresholds, menuExtraInfo);
82  }

◆ getPattern() [2/2]

uint64_t LVL1::TrigThresholdDecisionTool::getPattern ( uint32_t  dataWord,
const ThrVec &  menuThresholds,
const TrigConf::L1ThrExtraInfoBase menuExtraInfo 
) const
virtual

Definition at line 84 of file TrigThresholdDecisionTool.cxx.

86  {
87  uint64_t thresholdsPattern = 0;
88 
89  //first figure out if we need to use the RPC or TGC tool for decoding the ROI
90  LVL1::ITrigT1MuonRecRoiTool::MuonTriggerSystem system = m_rpcTool->getSystem(dataWord);
91  const LVL1::ITrigT1MuonRecRoiTool* roiTool;
92  if (system == LVL1::ITrigT1MuonRecRoiTool::Barrel) roiTool = &(*m_rpcTool);
93  else roiTool = &(*m_tgcTool);
94 
95  //buffer the some information
96  unsigned isub = roiTool->getBitMaskValue(&dataWord, roiTool->SubSysIDMask());
98  unsigned ptword = roiTool->getBitMaskValue(&dataWord, roiTool->ThresholdMask());
99  unsigned roi, sectorID;
100  if (system == LVL1::ITrigT1MuonRecRoiTool::Barrel) {
101  roi = roiTool->getBitMaskValue(&dataWord, roiTool->BarrelRoIMask());
102  sectorID = roiTool->getBitMaskValue(&dataWord, roiTool->BarrelSectorIDMask());
103  } else if (system == LVL1::ITrigT1MuonRecRoiTool::Endcap) {
104  roi = roiTool->getBitMaskValue(&dataWord, roiTool->EndcapRoIMask());
105  sectorID = roiTool->getBitMaskValue(&dataWord, roiTool->EndcapSectorIDMask());
106  } else { // Forward
107  roi = roiTool->getBitMaskValue(&dataWord, roiTool->ForwardRoIMask());
108  sectorID = roiTool->getBitMaskValue(&dataWord, roiTool->ForwardSectorIDMask());
109  }
110  const TrigConf::L1ThrExtraInfo_MU& muThrExtraInfo = dynamic_cast<const TrigConf::L1ThrExtraInfo_MU&>(menuExtraInfo);
111 
112  //buffer (notional) TGC/RPC flags
113  bool F=false, C=false, H=false, M=false;
115  {
116  M = dataWord & roiTool->OverflowPerRoIMask();
117  }
118  else
119  {
120  F = dataWord & roiTool->BW2Or3Mask();
121  C = dataWord & roiTool->InnerCoinMask();
122  H = dataWord & roiTool->GoodMFMask();
123  }
124 
125  //loop over the thresholds
126  for (const std::shared_ptr<TrigConf::L1Threshold>& thrBase : menuThresholds) {
127  auto thr = static_cast<TrigConf::L1Threshold_MU*>(thrBase.get());
128 
129  bool passed{false};
130  if (system == LVL1::ITrigT1MuonRecRoiTool::Barrel) {
131  //skip the threshold with regions not corresponding to ALL or barrel
132  if (thr->region().find("ALL") == std::string::npos &&
133  thr->region().find("BA") == std::string::npos) continue;
134 
135  //veto this candidate from this multiplicity if it's part of the excluded ROI list
136  const bool isSideC = (side == LVL1MUONIF::Lvl1MuCTPIInputPhase1::idSideC());
137  if (isExcludedRPCROI(muThrExtraInfo, thr->rpcExclROIList(), roi, sectorID, isSideC)) continue;
138 
139  if (ptword >= thr->idxBarrel()) {
140  // mark this threshold as passed
141  passed = true;
142  }
143 
144  passed &= getRPCDecision(getShapedFlags(thr->rpcFlags()), M);
145  }
146  else { // Endcap or Forward
147  if (system == LVL1MUONIF::Lvl1MuCTPIInputPhase1::idEndcapSystem()) { // Endcap
148  //skip the threshold with regions not corresponding to ALL or endcap
149  if (thr->region().find("ALL") == std::string::npos &&
150  thr->region().find("EC") == std::string::npos) continue;
151 
152  if (ptword >= thr->idxEndcap()) {
153  // mark this threshold as passed
154  passed = true;
155  }
156  }
157  else { // Forward
158  //skip the threshold with regions not corresponding to ALL or forward
159  if (thr->region().find("ALL") == std::string::npos &&
160  thr->region().find("FW") == std::string::npos) continue;
161 
162  if (ptword >= thr->idxForward()) {
163  // mark this threshold as passed
164  passed = true;
165  }
166  }
167 
168  passed &= getTGCDecision(getShapedFlags(thr->tgcFlags()), F, C, H);
169  } // end Endcap or Forward
170 
171  if (passed) {
172  // set the corresponding bit in the pattern
173  thresholdsPattern |= (1 << thr->mapping());
174  }
175 
176  } // loop over thresholds
177 
178  return thresholdsPattern;
179  }

◆ getRPCDecision()

bool LVL1::TrigThresholdDecisionTool::getRPCDecision ( const std::string &  rpcFlags,
bool  M 
) const
protected

Definition at line 313 of file TrigThresholdDecisionTool.cxx.

314  {
315  //check if the word has been checked before for this string of flags (it should always, as we've buffered them in 'start')
316  RPCFlagDecision decision(M);
317  auto previous_decisions = m_rpcFlag_decisions.find(rpcFlags);
318  if (previous_decisions == m_rpcFlag_decisions.end()) return false;
319 
320  auto previous_decision_itr = previous_decisions->second.find(decision);
321  if (previous_decision_itr != previous_decisions->second.end()) return previous_decision_itr->pass;
322  return false;
323  }

◆ getShapedFlags()

std::string LVL1::TrigThresholdDecisionTool::getShapedFlags ( const std::string &  flags) const
protected

Definition at line 400 of file TrigThresholdDecisionTool.cxx.

401  {
402  std::string shapedFlags = flags;
403  shapedFlags.erase(std::remove_if(shapedFlags.begin(),shapedFlags.end(),::isspace),shapedFlags.end()); // remove spaces
404  std::vector<std::string> vec_ors = parseString(shapedFlags,"|");
405  std::set<std::string> set_ors;
406  for(const auto& ors : vec_ors){
407  std::vector<std::string> vec_ands = parseString(ors,"&");
408  std::set<std::string> set_ands;
409  for(const auto& ands : vec_ands){
410  set_ands.insert(ands);
411  }
412  std::string aa = "";
413  for(const auto& ands : set_ands){
414  aa += ands;
415  aa += "&";
416  }
417  std::string bb = aa.substr(0,aa.size()-1); // remove the last "&"
418  set_ors.insert(bb);
419  }
420  std::string aa = "";
421  for(const auto& ors : set_ors){
422  aa += ors;
423  aa += "|";
424  }
425  std::string bb = aa.substr(0,aa.size()-1); // remove the last "|"
426  return bb;
427  }

◆ getTGCDecision()

bool LVL1::TrigThresholdDecisionTool::getTGCDecision ( const std::string &  tgcFlags,
bool  F,
bool  C,
bool  H 
) const
protected

Definition at line 266 of file TrigThresholdDecisionTool.cxx.

267  {
268  //check if the word has been checked before for this string of flags (it should always, as we've buffered them in 'start')
269  TGCFlagDecision decision(F,C,H);
270  auto previous_decisions = m_tgcFlag_decisions.find(tgcFlags);
271  if (previous_decisions == m_tgcFlag_decisions.end()) return false;
272 
273  auto previous_decision_itr = previous_decisions->second.find(decision);
274  if (previous_decision_itr != previous_decisions->second.end()) return previous_decision_itr->pass;
275  return false;
276  }

◆ getThresholdDecisions() [1/2]

std::vector< std::pair< std::shared_ptr< TrigConf::L1Threshold >, bool > > LVL1::TrigThresholdDecisionTool::getThresholdDecisions ( uint32_t  dataWord,
const EventContext &  eventContext 
) const
overridevirtual

Definition at line 182 of file TrigThresholdDecisionTool.cxx.

183  {
184  // Retrieve the L1 menu configuration
185  SG::ReadHandle<TrigConf::L1Menu> l1Menu = SG::makeHandle(m_l1MenuKey, eventContext);
186  std::optional<ThrVecRef> menuThresholds = getMenuThresholds(*l1Menu);
187  std::optional<ExtraInfoRef> menuExtraInfo = getMenuThresholdExtraInfo(*l1Menu);
188  // Call the other overload
189  return getThresholdDecisions(dataWord, menuThresholds.value().get(), menuExtraInfo.value().get());
190  }

◆ getThresholdDecisions() [2/2]

std::vector< std::pair< std::shared_ptr< TrigConf::L1Threshold >, bool > > LVL1::TrigThresholdDecisionTool::getThresholdDecisions ( uint32_t  dataWord,
const ThrVec &  menuThresholds,
const TrigConf::L1ThrExtraInfoBase menuExtraInfo 
) const
overridevirtual

Definition at line 193 of file TrigThresholdDecisionTool.cxx.

195  {
196 
197  const uint64_t pattern = getPattern(dataWord, menuThresholds, menuExtraInfo);
198 
199  //the object that will be returned: pairs of thresholds and pass/fail decisions
200  std::vector<std::pair<std::shared_ptr<TrigConf::L1Threshold>, bool> > threshold_decisions;
201  threshold_decisions.resize(menuThresholds.size());
202  for (const std::shared_ptr<TrigConf::L1Threshold>& thr : menuThresholds) {
203  const bool decision = pattern & (1 << thr->mapping());
204  threshold_decisions[thr->mapping()] = std::make_pair(thr, decision);
205  }
206  return threshold_decisions;
207  }

◆ initialize()

StatusCode LVL1::TrigThresholdDecisionTool::initialize ( )
overridevirtual

Definition at line 20 of file TrigThresholdDecisionTool.cxx.

21  {
22  ATH_MSG_DEBUG( "========================================" );
23  ATH_MSG_DEBUG( "Initialize for TrigThresholdDecisionTool" );
24  ATH_MSG_DEBUG( "========================================" );
25 
27  ATH_CHECK( m_rpcTool.retrieve() );
28  ATH_CHECK( m_tgcTool.retrieve() );
29  return StatusCode::SUCCESS;
30  }

◆ isExcludedRPCROI()

bool LVL1::TrigThresholdDecisionTool::isExcludedRPCROI ( const TrigConf::L1ThrExtraInfo_MU menuExtraInfo,
const std::string &  rpcExclROIList,
unsigned  roi,
unsigned  sectorID,
bool  isSideC 
) const
protected

Definition at line 233 of file TrigThresholdDecisionTool.cxx.

237  {
238  if (rpcExclROIList != "")
239  {
240  const std::map<std::string, std::vector<unsigned int> >& exclList = menuExtraInfo.exclusionList(rpcExclROIList);
241  if (exclList.size() != 0)
242  {
243  //build the sector name of this ROI to compare against the exclusion list
244  std::stringstream sectorName;
245  sectorName<<"B";
246  int sectorNumber=sectorID;
247  if (isSideC) sectorNumber += 32;
248  if (sectorNumber < 10) sectorName << "0";
249  sectorName << sectorNumber;
250 
251  //do the comparison
252  auto exclROIs = exclList.find(sectorName.str());
253  if (exclROIs != exclList.end())
254  {
255  for (auto roi_itr=exclROIs->second.begin();roi_itr!=exclROIs->second.end();roi_itr++)
256  {
257  if (*roi_itr == roi) return true;
258  }
259  }
260  }
261  } // rpcExclList != ""
262 
263  return false;
264  }

◆ makeRPCDecision()

void LVL1::TrigThresholdDecisionTool::makeRPCDecision ( const std::string &  rpcFlags,
bool  M 
)
protected

Definition at line 325 of file TrigThresholdDecisionTool.cxx.

326  {
327  //check if the word has been checked before for this string of flags
328  RPCFlagDecision decision(M);
329  auto previous_decisions = &m_rpcFlag_decisions[rpcFlags];
330  auto previous_decision_itr = previous_decisions->find(decision);
331  if (previous_decision_itr != previous_decisions->end()) return;
332  else if (rpcFlags == "") {
333  decision.pass=true;
334  previous_decisions->insert(decision);
335  }
336  else { // make the decision
337 
338  //check the quality based on the flags.
339  //loop over outer layer of "ors" and 'or' the results
340  bool passedFlags = false;
341  const std::vector<std::vector<std::string> >* vec_flags = &m_parsed_flags[rpcFlags];
342  for (auto or_itr = vec_flags->begin();or_itr!=vec_flags->end();or_itr++)
343  {
344  //loop over the inner layer of "ands" and 'and' the results
345  bool passedAnd = true;
346  for (auto and_itr = or_itr->begin();and_itr!=or_itr->end();and_itr++)
347  {
348  if (*and_itr == "M") passedAnd = passedAnd && M;
349  }
350  passedFlags = passedFlags || passedAnd;
351  }
352  //buffer the decision
353  decision.pass = passedFlags;
354  previous_decisions->insert(decision);
355  }
356  }

◆ makeTGCDecision()

void LVL1::TrigThresholdDecisionTool::makeTGCDecision ( const std::string &  tgcFlags,
bool  F,
bool  C,
bool  H 
)
protected

Definition at line 278 of file TrigThresholdDecisionTool.cxx.

279  {
280  //check if the word has been checked before for this string of flags
281  TGCFlagDecision decision(F,C,H);
282  auto previous_decisions = &m_tgcFlag_decisions[tgcFlags];
283  auto previous_decision_itr = previous_decisions->find(decision);
284  if (previous_decision_itr != previous_decisions->end()) return;
285  else if (tgcFlags == "") {
286  decision.pass=true;
287  previous_decisions->insert(decision);
288  }
289  else { // make the decision
290 
291  //check the quality based on the flags.
292  //loop over outer layer of "ors" and 'or' the results
293  bool passedFlags = false;
294  const std::vector<std::vector<std::string> >* vec_flags = &m_parsed_flags[tgcFlags];
295  for (auto or_itr = vec_flags->begin();or_itr!=vec_flags->end();or_itr++)
296  {
297  //loop over the inner layer of "ands" and 'and' the results
298  bool passedAnd = true;
299  for (auto and_itr = or_itr->begin();and_itr!=or_itr->end();and_itr++)
300  {
301  if (*and_itr == "F") passedAnd = passedAnd && F;
302  else if (*and_itr == "C") passedAnd = passedAnd && C;
303  else if (*and_itr == "H") passedAnd = passedAnd && H;
304  }
305  passedFlags = passedFlags || passedAnd;
306  }
307  //buffer the decision
308  decision.pass = passedFlags;
309  previous_decisions->insert(decision);
310  }
311  }

◆ parseFlags()

void LVL1::TrigThresholdDecisionTool::parseFlags ( const std::string &  flags)
protected

Definition at line 358 of file TrigThresholdDecisionTool.cxx.

359  {
360  //parse the logic of the quality flag into a 2D vector, where outer layer contains the logic |'s and inner layer contains the logical &'s.
361  //save the 2D vector in a map so we don't have to parse it each time we want to check the flags.
362  if (m_parsed_flags.find(flags) == m_parsed_flags.end())
363  {
364  std::vector<std::string> vec_ors = parseString(flags, "|");
365  std::vector<std::vector<std::string> > vec_flags;
366  for (unsigned ior=0;ior<vec_ors.size();ior++)
367  {
368  vec_flags.push_back(parseString(vec_ors[ior],"&"));
369  }
370  m_parsed_flags[flags] = vec_flags;
371  }
372  }

◆ parseString()

std::vector< std::string > LVL1::TrigThresholdDecisionTool::parseString ( const std::string &  str,
const std::string &  sep 
) const
protected

Definition at line 374 of file TrigThresholdDecisionTool.cxx.

375  {
376  std::vector<std::string> parsed;
377  int pos = 0;
378  bool first = true;
379  if (str.size() == 0) return parsed;
380  if (str.find(sep) == std::string::npos)
381  {
382  parsed.push_back(str);
383  return parsed;
384  }
385  while (true)
386  {
387  int newPos = str.find(sep, pos);
388  if (str.find(sep, pos) == std::string::npos)
389  {
390  if (!first) parsed.push_back(str.substr(pos, newPos-pos));
391  break;
392  }
393  std::string sub = str.substr(pos, newPos-pos);
394  parsed.push_back(sub);
395  pos = newPos+1;
396  first = false;
397  }
398  return parsed;
399  }

◆ start()

StatusCode LVL1::TrigThresholdDecisionTool::start ( )
overridevirtual

Definition at line 32 of file TrigThresholdDecisionTool.cxx.

33  {
34  ATH_MSG_DEBUG( "==========================================" );
35  ATH_MSG_DEBUG( "Start for Phase1 TrigThresholdDecisionTool" );
36  ATH_MSG_DEBUG( "==========================================" );
37 
38  m_parsed_flags.clear();
39  m_tgcFlag_decisions.clear();
40 
41  //front-load the TGC flag parsing and all possible 3-bit decisions for the menu
43  ATH_CHECK(l1Menu.isValid());
44  std::optional<ThrVecRef> menuThresholds = getMenuThresholds(*l1Menu);
45  ATH_CHECK(menuThresholds.has_value());
46 
47  for (const std::shared_ptr<TrigConf::L1Threshold>& thrBase : menuThresholds.value().get()) {
48  auto thr = static_cast<TrigConf::L1Threshold_MU*>(thrBase.get());
49 
50  //parse the tgc flags and buffer them
51  std::string tgcFlags = getShapedFlags( thr->tgcFlags() );
52  parseFlags(tgcFlags);
53 
54  //loop over all 3-bit flag combinations
55  for (unsigned flags=0;flags<8;flags++)
56  {
57  bool F=flags&0b100;
58  bool C=flags&0b010;
59  bool H=flags&0b001;
60  makeTGCDecision(tgcFlags, F, C, H);
61  }
62 
63  //parse the rpc flags and buffer them
64  std::string rpcFlags = getShapedFlags( thr->rpcFlags() );
65  parseFlags(rpcFlags);
66 
67  //loop over all 2-bit flag combinations
68  for (unsigned flags=0;flags<2;flags++)
69  {
70  bool M=flags&0b1;
71  makeRPCDecision(rpcFlags, M);
72  }
73  }
74 
75  return StatusCode::SUCCESS;
76  }

Member Data Documentation

◆ m_parsed_flags

std::map<std::string, std::vector<std::vector<std::string> > > LVL1::TrigThresholdDecisionTool::m_parsed_flags
protected

Definition at line 115 of file TrigThresholdDecisionTool.h.

◆ m_rpcFlag_decisions

std::map<std::string, std::set<RPCFlagDecision> > LVL1::TrigThresholdDecisionTool::m_rpcFlag_decisions
protected

Definition at line 119 of file TrigThresholdDecisionTool.h.

◆ m_rpcTool

ToolHandle<LVL1::ITrigT1MuonRecRoiTool> LVL1::TrigThresholdDecisionTool::m_rpcTool {this, "RPCRecRoiTool", "LVL1::TrigT1RPCRecRoiTool/LVL1__TrigT1RPCRecRoiTool", "Tool to get the eta/phi coordinates in the RPC"}
protected

Definition at line 111 of file TrigThresholdDecisionTool.h.

◆ m_tgcFlag_decisions

std::map<std::string, std::set<TGCFlagDecision> > LVL1::TrigThresholdDecisionTool::m_tgcFlag_decisions
protected

Definition at line 118 of file TrigThresholdDecisionTool.h.

◆ m_tgcTool

ToolHandle<LVL1::ITrigT1MuonRecRoiTool> LVL1::TrigThresholdDecisionTool::m_tgcTool {this, "TGCRecRoiTool", "LVL1::TrigT1TGCRecRoiTool/LVL1__TrigT1TGCRecRoiTool", "Tool to get the eta/phi coordinates in the TGC"}
protected

Definition at line 112 of file TrigThresholdDecisionTool.h.


The documentation for this class was generated from the following files:
TrigConf::L1Threshold_MU::ptEndcap
unsigned int ptEndcap() const
Definition: L1Threshold.h:414
LVL1::ITrigT1MuonRecRoiTool::ThresholdMask
unsigned int ThresholdMask() const
Definition: ITrigT1MuonRecRoiTool.h:56
mergePhysValFiles.pattern
pattern
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:26
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
TrigConf::L1ThrExtraInfo_MU
Definition: L1ThrExtraInfo.h:657
LVL1::TrigThresholdDecisionTool::getThresholdDecisions
virtual std::vector< std::pair< std::shared_ptr< TrigConf::L1Threshold >, bool > > getThresholdDecisions(uint32_t dataWord, const EventContext &eventContext) const override
Definition: TrigThresholdDecisionTool.cxx:182
LVL1::TrigThresholdDecisionTool::m_parsed_flags
std::map< std::string, std::vector< std::vector< std::string > > > m_parsed_flags
Definition: TrigThresholdDecisionTool.h:115
TrigCompositeUtils::passed
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
Definition: TrigCompositeUtilsRoot.cxx:117
LVL1::ITrigT1MuonRecRoiTool::InnerCoinMask
unsigned int InnerCoinMask() const
Definition: ITrigT1MuonRecRoiTool.h:67
LVL1::ITrigT1MuonRecRoiTool::BW2Or3Mask
unsigned int BW2Or3Mask() const
Definition: ITrigT1MuonRecRoiTool.h:66
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
AthenaPoolTestRead.flags
flags
Definition: AthenaPoolTestRead.py:8
DMTest::C
C_v1 C
Definition: C.h:26
LVL1::ITrigT1MuonRecRoiTool::BarrelRoIMask
unsigned int BarrelRoIMask() const
Definition: ITrigT1MuonRecRoiTool.h:57
LVL1::ITrigT1MuonRecRoiTool::MuonTriggerSystem
MuonTriggerSystem
Definition: ITrigT1MuonRecRoiTool.h:41
LVL1::TrigThresholdDecisionTool::parseString
std::vector< std::string > parseString(const std::string &str, const std::string &sep) const
Definition: TrigThresholdDecisionTool.cxx:374
LVL1::ITrigT1MuonRecRoiTool::GoodMFMask
unsigned int GoodMFMask() const
Definition: ITrigT1MuonRecRoiTool.h:68
TrigConf::DataStructure::name
virtual const std::string & name() const final
Definition: DataStructure.cxx:109
LVL1::ITrigT1MuonRecRoiTool::Barrel
@ Barrel
Definition: ITrigT1MuonRecRoiTool.h:42
LVL1MUONIF::Lvl1MuCTPIInputPhase1::MuonSubSystem
MuonSubSystem
Definition: Lvl1MuCTPIInputPhase1.h:49
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
LVL1::ITrigT1MuonRecRoiTool
Definition: ITrigT1MuonRecRoiTool.h:13
TRT::Hit::side
@ side
Definition: HitInfo.h:83
LVL1::ITrigT1MuonRecRoiTool::EndcapSectorIDMask
unsigned int EndcapSectorIDMask() const
Definition: ITrigT1MuonRecRoiTool.h:52
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:274
LVL1::TrigThresholdDecisionTool::parseFlags
void parseFlags(const std::string &flags)
Definition: TrigThresholdDecisionTool.cxx:358
LVL1::ITrigT1MuonRecRoiTool::BarrelSectorIDMask
unsigned int BarrelSectorIDMask() const
Definition: ITrigT1MuonRecRoiTool.h:51
H
#define H(x, y, z)
Definition: MD5.cxx:114
LVL1::TrigThresholdDecisionTool::m_rpcTool
ToolHandle< LVL1::ITrigT1MuonRecRoiTool > m_rpcTool
Definition: TrigThresholdDecisionTool.h:111
LVL1::ITrigT1MuonRecRoiTool::ForwardRoIMask
unsigned int ForwardRoIMask() const
Definition: ITrigT1MuonRecRoiTool.h:59
LVL1::ITrigT1MuonRecRoiTool::EndcapRoIMask
unsigned int EndcapRoIMask() const
Definition: ITrigT1MuonRecRoiTool.h:58
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LVL1::TrigThresholdDecisionTool::makeRPCDecision
void makeRPCDecision(const std::string &rpcFlags, bool M)
Definition: TrigThresholdDecisionTool.cxx:325
test_pyathena.parent
parent
Definition: test_pyathena.py:15
IDTPMcnv.parsed
parsed
Definition: IDTPMcnv.py:28
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TrigConf::L1ThrExtraInfo_MU::exclusionList
const std::map< std::string, std::vector< unsigned int > > & exclusionList(const std::string &listName) const
Definition: L1ThrExtraInfo.cxx:805
LVL1::TrigThresholdDecisionTool::getRPCDecision
bool getRPCDecision(const std::string &rpcFlags, bool M) const
Definition: TrigThresholdDecisionTool.cxx:313
LVL1::TrigThresholdDecisionTool::getShapedFlags
std::string getShapedFlags(const std::string &flags) const
Definition: TrigThresholdDecisionTool.cxx:400
LVL1::TrigThresholdDecisionTool::isExcludedRPCROI
bool isExcludedRPCROI(const TrigConf::L1ThrExtraInfo_MU &menuExtraInfo, const std::string &rpcExclROIList, unsigned roi, unsigned sectorID, bool isSideC) const
Definition: TrigThresholdDecisionTool.cxx:233
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
xAOD::decisions
decisions
Definition: TrigComposite_v1.cxx:101
LVL1::TrigThresholdDecisionTool::m_tgcTool
ToolHandle< LVL1::ITrigT1MuonRecRoiTool > m_tgcTool
Definition: TrigThresholdDecisionTool.h:112
grepfile.sep
sep
Definition: grepfile.py:38
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
RoIThresholdsTool::initialize
virtual StatusCode initialize() override
Definition: IRoIThresholdsTool.h:31
LVL1::TrigThresholdDecisionTool::makeTGCDecision
void makeTGCDecision(const std::string &tgcFlags, bool F, bool C, bool H)
Definition: TrigThresholdDecisionTool.cxx:278
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
LVL1MUONIF::Lvl1MuCTPIInputPhase1::idEndcapSystem
static size_t idEndcapSystem()
Definition: Lvl1MuCTPIInputPhase1.h:137
TrigConf::L1Threshold_MU
Definition: L1Threshold.h:400
LVL1::TrigThresholdDecisionTool::getTGCDecision
bool getTGCDecision(const std::string &tgcFlags, bool F, bool C, bool H) const
Definition: TrigThresholdDecisionTool.cxx:266
LVL1::ITrigT1MuonRecRoiTool::Endcap
@ Endcap
Definition: ITrigT1MuonRecRoiTool.h:42
LVL1MUONIF::Lvl1MuCTPIInputPhase1::idSideC
static size_t idSideC()
Definition: Lvl1MuCTPIInputPhase1.h:142
LVL1::ITrigT1MuonRecRoiTool::OverflowPerRoIMask
unsigned int OverflowPerRoIMask() const
Definition: ITrigT1MuonRecRoiTool.h:64
DeMoScan.first
bool first
Definition: DeMoScan.py:536
F
#define F(x, y, z)
Definition: MD5.cxx:112
LVL1::ITrigT1MuonRecRoiTool::SubSysIDMask
unsigned int SubSysIDMask() const
Definition: ITrigT1MuonRecRoiTool.h:55
LVL1::TrigThresholdDecisionTool::getPattern
virtual uint64_t getPattern(const xAOD::MuonRoI &roi, const ThrVec &menuThresholds, const TrigConf::L1ThrExtraInfoBase &menuExtraInfo) const override
Definition: TrigThresholdDecisionTool.cxx:78
LVL1::TrigThresholdDecisionTool::m_tgcFlag_decisions
std::map< std::string, std::set< TGCFlagDecision > > m_tgcFlag_decisions
Definition: TrigThresholdDecisionTool.h:118
str
Definition: BTagTrackIpAccessor.cxx:11
test_AnalysisBaseEventLoopJob.aa
aa
Definition: test_AnalysisBaseEventLoopJob.py:37
TrigConf::L1Threshold_MU::ptBarrel
unsigned int ptBarrel() const
Definition: L1Threshold.h:413
LVL1::TrigThresholdDecisionTool::m_rpcFlag_decisions
std::map< std::string, std::set< RPCFlagDecision > > m_rpcFlag_decisions
Definition: TrigThresholdDecisionTool.h:119
xAOD::MuonRoI_v1::roiWord
uint32_t roiWord() const
The "raw" RoI word describing the muon candidate.
LVL1::ITrigT1MuonRecRoiTool::getBitMaskValue
unsigned int getBitMaskValue(const unsigned int *uintValue, const unsigned int mask) const
Definition: ITrigT1MuonRecRoiTool.cxx:10
LVL1::ITrigT1MuonRecRoiTool::ForwardSectorIDMask
unsigned int ForwardSectorIDMask() const
Definition: ITrigT1MuonRecRoiTool.h:53