ATLAS Offline Software
MuCalStreamerTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "MuCalStreamerTool.h"
6 #include "MuCalCircClient.h"
7 
8 #include <cmath>
9 
13 
14 #include "MuCalDecode/CalibEvent.h"
15 #include "MuCalDecode/CalibUti.h"
16 
17 // --------------------------------------------------------------------------------
18 // --------------------------------------------------------------------------------
19 
21  const std::string& name,
22  const IInterface* parent):
24 {
25 }
26 
27 // --------------------------------------------------------------------------------
28 // --------------------------------------------------------------------------------
29 
31 {
32  // locate the region selector
33  ATH_CHECK( m_regSel_MDT.retrieve() );
34  ATH_CHECK( m_regSel_TGC.retrieve() );
35 
36 
37  m_localBuffer.clear();
38 
39  m_localBufferSize = 0;
40 
41  ATH_CHECK(m_tgcRdoKey.initialize());
42  ATH_CHECK(m_readKey.initialize());
43  ATH_CHECK(m_eventInfoKey.initialize());
44  ATH_CHECK(m_rpcPadKey.initialize());
45 
46  return StatusCode::SUCCESS;
47 
48 }
49 
50 // --------------------------------------------------------------------------------
51 // --------------------------------------------------------------------------------
52 
53 
55 {
56 
57  std::string name = m_calBufferName;
58  name += "_"+m_algInstanceName;
59 
60  if ( m_circ == nullptr ) {
61  try
62  {
63  m_circ = new TrigL2MuonSA::MuCalCircClient (0, name, calBufferSize);
64  }
65 
67  {
68  ATH_MSG_WARNING("Could not open muon calibration buffer: name="
69  << name << " buffer size=" << calBufferSize);
70  }
71 
72  ATH_MSG_INFO("Opening muon calibration stream. Buffer name: "
73  << name << " buffer size: " << calBufferSize);
74  }
75 
76  return StatusCode::SUCCESS;
77 }
78 
79 
80 
81 
82 // --------------------------------------------------------------------------------
83 // --------------------------------------------------------------------------------
84 
86 {
87 
88  std::string name = m_calBufferName+"_"+m_algInstanceName;
89  ATH_MSG_DEBUG("I'm going to close the stream "<<name);
90 
91  if (m_circ)
92  {
93  delete m_circ;
94  m_circ = nullptr;
95  }
96 
97  return StatusCode::SUCCESS;
98 
99 }
100 
101 
102 // --------------------------------------------------------------------------------
103 // --------------------------------------------------------------------------------
104 
105 bool TrigL2MuonSA::MuCalStreamerTool::isStreamOpen() {return m_circ!=nullptr;}
106 
107 
108 // --------------------------------------------------------------------------------
109 // --------------------------------------------------------------------------------
110 
113  TrigL2MuonSA::MdtHits& mdtHits,
114  TrigL2MuonSA::RpcHits& rpcHits,
115  TrigL2MuonSA::TgcHits& tgcHits,
116  // int calBufferSize,
117  bool doDataScouting,
118  bool &updateTriggerElement, const EventContext& ctx) const
119  {
120 
121  // create the fragment
122  // ( dummy input for now )
123 
124  ATH_MSG_DEBUG("Data scouting is set to"<<doDataScouting);
125 
126  // skip the event if it's a noise burst
127  unsigned int totalHits = mdtHits.size()+rpcHits.size()+tgcHits.size();
128  if ( totalHits > 500 ) {
129  ATH_MSG_DEBUG("Too many hits: skip the RoI");
130  updateTriggerElement=false;
131  return StatusCode::SUCCESS;
132  }
133 
134  // init roi pointer
135  if ( !inputroi ) {
136  ATH_MSG_ERROR("Roi not initialized");
137  return StatusCode::FAILURE;
138  }
139 
140  // pointer to the muon roi
141  const xAOD::MuonRoI* roi {inputroi};
142 
143 
144  // retrieve the event and trigger info
145  SG::ReadHandle<xAOD::EventInfo> eventInfo (m_eventInfoKey, ctx);
146  uint32_t runId = ctx.eventID().run_number();
147  uint32_t lvl1Id = eventInfo->extendedLevel1ID();
148 
149 
150  // get track parameters
151  float eta = (float) track.etaVtx;
152  float phi = (float) track.phiVtx;
153  float pt = (float) track.pt;
154 
155  uint32_t mrods[4] = {0, 0, 0, 0};
156  // prepare the header information
157  std::vector<uint32_t> robIdList_MDT;
158  double etaMin = roi->eta()-0.05;
159  double etaMax = roi->eta()+0.05;
160  double phi_roi = roi->phi();
161  double phiMin = roi->phi()-0.05;
162  double phiMax = roi->phi()+0.05;
163  if( phi_roi < 0 ) phi_roi += 2*M_PI;
164  if( phiMin < 0 ) phiMin += 2*M_PI;
165  if( phiMax < 0 ) phiMax += 2*M_PI;
166 
167  TrigRoiDescriptor roiDescr( roi->eta(), etaMin, etaMax, phi_roi, phiMin, phiMax );
168 
169  const IRoiDescriptor* iroi = (IRoiDescriptor*) &roiDescr;
170  m_regSel_MDT->lookup( ctx )->ROBIDList(*iroi,robIdList_MDT);
171 
172  // dump the list of robs for debugging
173  ATH_MSG_DEBUG("Size of the MDT rob list: " << robIdList_MDT.size());
174  int isize = robIdList_MDT.size()<5 ? robIdList_MDT.size() : 4;
175  for (int ii = 0 ; ii<isize ; ++ii ) {
176  ATH_MSG_DEBUG("robId: 0x" << std::hex << robIdList_MDT.at(ii) << std::dec);
177  mrods[ii] = robIdList_MDT.at(ii);
178  }
179 
180  // get the list of TGC robs
181  std::vector<uint32_t> robIdList_TGC;
182  m_regSel_TGC->lookup(ctx)->ROBIDList(*iroi,robIdList_TGC);
183  ATH_MSG_DEBUG("Size of the TGC rob list: " << robIdList_TGC.size());
184 
185 
186  LVL2_MUON_CALIBRATION::CalibEvent event(1,runId,lvl1Id,1,1,mrods,name().c_str(),eta,phi,pt);
187  LVL2_MUON_CALIBRATION::MdtCalibFragment mdtFragment;
188 
189  // create the MDT fragment
190  if ( mdtHits.size()>0 ) {
191  ATH_CHECK( createMdtFragment(mdtHits,mdtFragment,phi) );
192 
193  // add the mdt fragment to the event
194  event << mdtFragment;
195  }
196  else{
197  // do not write the calib stream
198  return StatusCode::SUCCESS;
199  }
200 
201  // create the RPC fragment
202  if ( rpcHits.size() > 0 ) {
203  LVL2_MUON_CALIBRATION::RpcCalibFragment rpcFragment;
204 
205  if ( createRpcFragment(roi, rpcFragment, ctx) != StatusCode::SUCCESS ) {
206  ATH_MSG_WARNING("Could not create the Rpc fragment of the calibration stream");
207  }
208  else {
209  ATH_MSG_DEBUG("Adding the RPC fragment to the calibration stream");
210  event << rpcFragment;
211  }
212  }
213 
214  if ( tgcHits.size() > 0 ) {
215  LVL2_MUON_CALIBRATION::TgcCalibFragment tgcFragment;
216 
217  if ( createTgcFragment(robIdList_TGC,tgcFragment) != StatusCode::SUCCESS ) {
218  ATH_MSG_ERROR("Could not create the Tgc fragment of the calibration stream");
219  }
220  else {
221  ATH_MSG_DEBUG("Adding the TGC fragment to the calibration stream");
222  event << tgcFragment;
223  }
224  }
225 
226 
227 
228  ATH_MSG_DEBUG("Dumping the event stream");
230  if (m_circ)
231  {
232  m_circ->dumpToCirc (event);
233  }
234 
235  return StatusCode::SUCCESS;
236  }
237 
238  //
239  // prepare the Mdt fragment of the stream
240  //
242  LVL2_MUON_CALIBRATION::MdtCalibFragment& mdtFragment,
243  float trackPhi) const
244  {
245 
246  TrigL2MuonSA::MdtHits::const_iterator it = mdtHits.begin();
247  for ( ; it != mdtHits.end() ; ++it ) {
248 
249  int stationName = (*it).name;
250  int stationEta = (*it).StationEta;
251  int stationPhi = (*it).StationPhi;
252  int multilayer = (*it).Multilayer;
253  int layer = (*it).TubeLayer;
254  int tube = (*it).Tube;
255 
256  uint32_t ID = LVL2_MUON_CALIBRATION::MdtIdIntoWord(stationName,
257  stationEta,stationPhi,multilayer,layer,tube);
258 
259  uint16_t leadingCoarseTime = (*it).LeadingCoarseTime;
260  uint16_t leadingFineTime = (*it).LeadingFineTime;
261  uint16_t trailingCoarseTime = (*it).TrailingCoarseTime;
262  uint16_t trailingFineTime = (*it).TrailingFineTime;
263  uint16_t adc = (*it).Adc;
264 
265  LVL2_MUON_CALIBRATION::MdtCalibData mdt(ID,leadingCoarseTime,leadingFineTime,
266  trailingCoarseTime,trailingFineTime,adc
267  ,trackPhi);
268 
269  ATH_MSG_DEBUG("Dumping MDT Hit");
270  ATH_MSG_DEBUG(mdt);
271 
272  mdtFragment << mdt;
273  }
274 
275  return StatusCode::SUCCESS;
276  }
277 
279 //
280 // prepare the Rpc fragment of the stream
281 //
284  LVL2_MUON_CALIBRATION::RpcCalibFragment& rpcFragment,const EventContext& ctx) const
285 {
286 
287  // exit if it's not in the barrel
288  //if ( roi->sysID() != 0 ) return StatusCode::SUCCESS;
289  if ( roi->getSource() != 0 ) return StatusCode::SUCCESS;
290 
291  // retrieve the padId from the RecMuonRoi
292 
293  // decode roIWord
294  unsigned int side = roi->getHemisphere()==xAOD::MuonRoI::Hemisphere::Positive ? 1 : 0;
295  unsigned int sector = roi->getSectorID();
296  unsigned int roiNumber = roi->getRoI();
297 
298  // retrieve the pad container
299  SG::ReadHandle<RpcPadContainer> rh_rpcPad{m_rpcPadKey, ctx};
300  const RpcPadContainer* rpcPadContainer=rh_rpcPad.cptr();
301 
302  SG::ReadCondHandle<RpcCablingCondData> readHandle{m_readKey,ctx};
303  const RpcCablingCondData* readCdo{*readHandle};
304  unsigned int padIdHash;
305  if (readCdo->give_PAD_address( side, sector, roiNumber, padIdHash)) {
306 
307  auto itPad = rpcPadContainer->indexFindPtr(padIdHash);
308  if( itPad==nullptr ) {
309  ATH_MSG_WARNING("Failed to retrieve PAD hash Id " << padIdHash);
310  return StatusCode::FAILURE;
311  }
312  const RpcPad* rpcPad = itPad;
313 
314  uint16_t sector = rpcPad->sector();
315  uint16_t sysId = (sector<32)? 0x66 : 0x65;
316  uint16_t secId = sector%32;
317  uint16_t padId = rpcPad->onlineId();
318  uint16_t status = rpcPad->status();
319  uint16_t error = rpcPad->errorCode();
320 
321  LVL2_MUON_CALIBRATION::RpcCalibFragment frag(sysId,secId,padId,status,error);
322  rpcFragment = frag;
323  RpcPad::const_iterator it3 = rpcPad->begin();
324  for (; it3!=rpcPad->end() ; ++it3) {
325  const RpcCoinMatrix * cma = (*it3);
326 
327  uint16_t cmaId = cma->onlineId();
328  uint16_t fel1Id = cma->fel1Id();
329  uint16_t febcId = cma->febcId();
330  uint16_t crc = cma->crc();
331 
332  LVL2_MUON_CALIBRATION::RpcCalibData matrix(cmaId,fel1Id,febcId,crc);
333 
334  //for each cma for over fired channels
335  RpcCoinMatrix::const_iterator it5 = (*it3)->begin();
336  for (; it5 != (*it3)->end() ; ++it5) {
337  const RpcFiredChannel * fChannel = (*it5);
338 
339  uint16_t bcid = fChannel->bcid();
340  uint16_t time = fChannel->time();
341  uint16_t ijk = fChannel->ijk();
342  uint16_t channel = fChannel->channel();
343  uint16_t ovl = fChannel->ovl();
344  uint16_t thr = fChannel->thr();
345 
346  if(ijk!=7) matrix.getHit(bcid,time,ijk,channel);
347  else matrix.getHit(bcid,time,ijk,ovl,thr);
348 
349  } // loop on the matrix hits
350 
351  rpcFragment << matrix;
352  } // loop on the pad matrices
353 
354  }
355  else {
356  ATH_MSG_WARNING("Can't get the pad address from the RpcCablingCondData");
357  return StatusCode::FAILURE;
358  }
359 
360  return StatusCode::SUCCESS;
361 }
362 
364 //
365 // prepare the TGC fragment of the stream
366 //
369  LVL2_MUON_CALIBRATION::TgcCalibFragment& tgcFragment) const
370 {
371 
372 
373  if ( robIdList_TGC.size()<1 ) {
374  ATH_MSG_DEBUG("No TGC Rob found");
375  return StatusCode::SUCCESS;
376  }
377 
378  // system Id = 1 should correspond to the endcap
379  uint16_t systemId = 1;
380  // this is the subdetector Id
381  uint16_t subSystemId = ( (robIdList_TGC.at(0) & 0xff0000) >> 16 );
382  uint16_t rdoId = ( robIdList_TGC.at(0) & 0xff );
383 
384  uint16_t roiNumber = 0;
385 
386  tgcFragment = LVL2_MUON_CALIBRATION::TgcCalibFragment(systemId,subSystemId,rdoId,roiNumber);
387 
388  // retrieve the tgcrdo container
389  SG::ReadHandle<TgcRdoContainer> rdoRH(m_tgcRdoKey);
390  if (!rdoRH.isValid()) {
391  ATH_MSG_ERROR( "No TGC RDO container found!" );
392  return StatusCode::FAILURE;
393  }
394  const TgcRdoContainer* tgcRdoContainer = rdoRH.cptr();
395 
396  // now get the list of ROB Ids and from the the subdetector ID ( that corresponds to the
397  // subsystem ID
398 
399 
400  LVL2_MUON_CALIBRATION::TgcCalibData tgc_payload;
401  TgcRdoContainer::const_iterator it = tgcRdoContainer->begin();
402 
403  for ( ; it != tgcRdoContainer->end() ; ++it ) {
404 
405  ATH_MSG_DEBUG("Adding the hits from a new TGC chamber");
406 
407  // loop on the element of the TGC RDO
408  ATH_MSG_DEBUG("Number of hits: " << (*it)->size());
409 
410  TgcRdo::const_iterator itRaw = (*it)->begin();
411  for ( ; itRaw != (*it)->end() ; ++itRaw ) {
412 
413  const TgcRawData* raw = (*itRaw);
414  LVL2_MUON_CALIBRATION::TGC_BYTESTREAM_READOUTHIT roh;
415  LVL2_MUON_CALIBRATION::TGC_BYTESTREAM_READOUTTRIPLETSTRIP tps;
416  LVL2_MUON_CALIBRATION::TGC_BYTESTREAM_READOUTTRACKLET rot;
417  LVL2_MUON_CALIBRATION::TGC_BYTESTREAM_HIPT hpt;
418  LVL2_MUON_CALIBRATION::TGC_BYTESTREAM_SL sl;
419 
420 
421  switch (raw->type()) {
423  {
424  roh.channel = raw->channel()-40;
425  roh.sbId = raw->slbId();
426  roh.sbType = raw->slbType();
427  roh.adj = raw->isAdjacent();
428  roh.ldbId = raw->sswId();
429  roh.bcBitmap = bcBitmap(raw->bcTag());
430  roh.tracklet = raw->tracklet();
431  roh.ok = 1;
432 
433  }
434  break;
437  {
438  tps.phi = raw->position();
439  tps.seg = raw->segment();
440  tps.sbId = raw->slbId();
441  tps.ldbId = raw->sswId();
442  tps.bcBitmap = bcBitmap(raw->bcTag());
444  tps.ok = 1;
445  }
446  else
447  {
448  rot.rphi = raw->position();
449  rot.subm = raw->subMatrix();
450  rot.seg = raw->segment();
451  rot.delta = raw->delta();
452  rot.sbId = raw->slbId();
453  rot.ldbId = raw->sswId();
454  rot.bcBitmap = bcBitmap(raw->bcTag());
455  rot.slbType = raw->slbType();
457  rot.slbType = 4;
458  rot.ok = 1;
459  }
460  break;
462  {
463  hpt.delta = raw->delta();
464  hpt.hitId = raw->hitId();
465  hpt.hipt = raw->isHipt();
466  hpt.cand = raw->index();
467  hpt.chip = raw->chip();
468  hpt.sector = raw->sector();
469  hpt.fwd = raw->isForward();
470  hpt.strip = raw->isStrip();
471  hpt.bcBitmap = bcBitmap(raw->bcTag());
472  }
473  break;
474  case TgcRawData::TYPE_SL:
475  {
476  sl.roi = raw->roi();
477  sl.overlap = raw->isOverlap();
478  sl.threshold = raw->threshold();
479  sl.sign = raw->isMuplus();
480  sl.cand = raw->index();
481  sl.sector = raw->sector();
482  sl.fwd = raw->isForward();
483  sl.bcBitmap = bcBitmap(raw->bcTag());
484  sl.cand2plus = raw->cand3plus();
485  }
486  break;
487  default:
488  {
489  ATH_MSG_ERROR("Invalid TgcRawData type: " << raw->type());
490  return StatusCode::FAILURE;
491  }
492  }
493 
494  tgc_payload.getHit(roh,tps,rot,hpt,sl);
495 
496  }
497  }
498 
499  tgcFragment << tgc_payload;
500 
501  return StatusCode::SUCCESS;
502 }
RpcFiredChannel::ijk
ubit16 ijk() const
Definition: RpcFiredChannel.h:56
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
RpcFiredChannel::time
ubit16 time() const
Definition: RpcFiredChannel.h:54
TrigL2MuonSA::MuCalCircClient
Definition: MuCalCircClient.h:28
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
TrigL2MuonSA::MuCalStreamerTool::closeStream
StatusCode closeStream()
Definition: MuCalStreamerTool.cxx:85
RpcFiredChannel::ovl
ubit16 ovl() const
Definition: RpcFiredChannel.h:61
RpcFiredChannel::thr
ubit16 thr() const
Definition: RpcFiredChannel.h:65
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
RpcCoinMatrix::crc
ubit16 crc() const
Definition: RpcCoinMatrix.h:69
TgcRawData::cand3plus
bool cand3plus() const
Definition: TgcRawData.h:357
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
ID
std::vector< Identifier > ID
Definition: CalibHitIDCheck.h:24
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
TgcRawData::isMuplus
bool isMuplus() const
Definition: TgcRawData.h:361
TrigL2MuonSA::RpcHits
std::vector< RpcHitData > RpcHits
Definition: RpcData.h:57
RpcFiredChannel::channel
ubit16 channel() const
Definition: RpcFiredChannel.h:58
TgcRawData::TYPE_HIT
@ TYPE_HIT
Definition: TgcRawData.h:43
dumpTgcDigiDeadChambers.stationName
dictionary stationName
Definition: dumpTgcDigiDeadChambers.py:30
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
TgcRawData::delta
int16_t delta() const
Definition: TgcRawData.h:317
TrigL2MuonSA::MuCalStreamerTool::createRpcFragment
StatusCode createRpcFragment(const xAOD::MuonRoI *roi, LVL2_MUON_CALIBRATION::RpcCalibFragment &rpcFragment, const EventContext &ctx) const
Definition: MuCalStreamerTool.cxx:283
TrigL2MuonSA::MuCalStreamerTool::initialize
virtual StatusCode initialize() override
Definition: MuCalStreamerTool.cxx:30
TrigL2MuonSA::MdtHits
std::vector< MdtHitData > MdtHits
Definition: MdtData.h:57
TrigL2MuonSA::TgcHits
std::vector< TgcHitData > TgcHits
Definition: TgcData.h:43
skel.it
it
Definition: skel.GENtoEVGEN.py:396
test_pyathena.pt
pt
Definition: test_pyathena.py:11
M_PI
#define M_PI
Definition: ActiveFraction.h:11
xAOD::etaMax
etaMax
Definition: HIEventShape_v2.cxx:46
RecMuonRoI.h
RpcPad::status
ubit16 status() const
Definition: RpcPad.h:105
TrigRoiDescriptor
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
Definition: TrigRoiDescriptor.h:56
TgcRawData::isHipt
bool isHipt() const
Definition: TgcRawData.h:341
xAOD::MuonRoI_v1::getHemisphere
Hemisphere getHemisphere() const
Returns the hemisphere that detected the muon candidate.
Definition: MuonRoI_v1.cxx:220
TrigL2MuonSA::MuCalStreamerTool::openStream
StatusCode openStream(int calBufferSize)
Definition: MuCalStreamerTool.cxx:54
RpcCoinMatrix
Definition: RpcCoinMatrix.h:20
RpcFiredChannel
Definition: RpcFiredChannel.h:20
RpcCablingCondData
Definition: RpcCablingCondData.h:21
TrigL2MuonSA::TrackPattern
Definition: TrackData.h:16
TRT::Hit::side
@ side
Definition: HitInfo.h:83
TgcRawData::subMatrix
uint16_t subMatrix() const
Definition: TgcRawData.h:329
TrigL2MuonSA::MuCalStreamerTool::createRoiFragment
StatusCode createRoiFragment(const xAOD::MuonRoI *roi, TrigL2MuonSA::TrackPattern &trackPattern, TrigL2MuonSA::MdtHits &mdtHits, TrigL2MuonSA::RpcHits &rpcHits, TrigL2MuonSA::TgcHits &tgcHits, bool doDataScouting, bool &updateTriggerElement, const EventContext &ctx) const
Definition: MuCalStreamerTool.cxx:111
TrigL2MuonSA::MuCalStreamerTool::createTgcFragment
StatusCode createTgcFragment(std::vector< uint32_t > &tgcRobIdList, LVL2_MUON_CALIBRATION::TgcCalibFragment &tgcFragment) const
Definition: MuCalStreamerTool.cxx:368
RpcPad::errorCode
ubit16 errorCode() const
Definition: RpcPad.h:106
TgcRawData::isForward
bool isForward() const
Definition: TgcRawData.h:289
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
TgcRdoContainer
Definition: TgcRdoContainer.h:25
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IRoiDescriptor
Describes the API of the Region of Ineterest geometry.
Definition: IRoiDescriptor.h:23
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TgcRawData::tracklet
uint16_t tracklet() const
Definition: TgcRawData.h:301
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
xAOD::MuonRoI_v1
Class describing a LVL1 muon region of interest.
Definition: MuonRoI_v1.h:29
xAOD::EventInfo_v1::extendedLevel1ID
uint32_t extendedLevel1ID() const
The extended Level-1 identifier.
test_pyathena.parent
parent
Definition: test_pyathena.py:15
xAOD::MuonRoI_v1::getSource
RoISource getSource() const
Returns the system that detected the muon candidate.
Definition: MuonRoI_v1.cxx:202
TgcRawData::TYPE_SL
@ TYPE_SL
Definition: TgcRawData.h:46
CaloCondBlobAlgs_fillNoiseFromASCII.systemId
systemId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:108
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IdentifiableContainerMT::end
const_iterator end() const
return const_iterator for end of container
Definition: IdentifiableContainerMT.h:239
TgcRawData::sector
uint16_t sector() const
Definition: TgcRawData.h:333
RpcCoinMatrix::onlineId
ubit16 onlineId() const
Definition: RpcCoinMatrix.h:67
IdentifiableContainerMT::const_iterator
Definition: IdentifiableContainerMT.h:79
IdentifiableContainerMT::begin
const_iterator begin() const
return const_iterator for first entry
Definition: IdentifiableContainerMT.h:233
TgcRawData::sswId
uint16_t sswId() const
Definition: TgcRawData.h:272
xAOD::MuonRoI_v1::getRoI
int getRoI() const
Get the "RoI number" (position inside the sector)
Definition: MuonRoI_v1.cxx:89
TgcRawData::isStrip
bool isStrip() const
Definition: TgcRawData.h:353
RpcPad::onlineId
ubit16 onlineId() const
Definition: RpcPad.h:107
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
bcBitmap
unsigned bcBitmap(uint16_t bcTag)
Definition: TgcByteStreamData.h:351
TgcRawData::position
uint16_t position() const
Definition: TgcRawData.h:313
TgcRawData::hitId
uint16_t hitId() const
Definition: TgcRawData.h:345
TgcRawData::threshold
uint16_t threshold() const
Definition: TgcRawData.h:365
Positive
@ Positive
Definition: RPCdef.h:9
TgcRawData::segment
uint16_t segment() const
Definition: TgcRawData.h:325
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
TgcRawData::chip
uint16_t chip() const
Definition: TgcRawData.h:337
TgcRawData::roi
uint16_t roi() const
Definition: TgcRawData.h:377
TgcRawData::isAdjacent
bool isAdjacent() const
Definition: TgcRawData.h:305
IdentifierHash.h
xAOD::roiNumber
setTeId setLumiBlock setRoiId setRoiSubsystem roiNumber
Definition: L2StandAloneMuon_v1.cxx:339
xAOD::bcid
setEventNumber setTimeStamp bcid
Definition: EventInfo_v1.cxx:133
MuCalCircClient.h
RpcPad
Definition: RpcPad.h:21
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
IdentifiableContainerMT::indexFindPtr
virtual const T * indexFindPtr(IdentifierHash hashId) const override final
return pointer on the found entry or null if out of range using hashed index - fast version,...
Definition: IdentifiableContainerMT.h:289
TgcRawData::bcTag
uint16_t bcTag() const
Definition: TgcRawData.h:251
RpcFiredChannel::bcid
ubit16 bcid() const
Definition: RpcFiredChannel.h:52
python.testIfMatch.matrix
matrix
Definition: testIfMatch.py:66
TgcRawData::slbId
uint16_t slbId() const
Definition: TgcRawData.h:276
TgcRawData::index
uint16_t index() const
Definition: TgcRawData.h:309
TgcRawData::channel
uint16_t channel() const
Definition: TgcRawData.h:297
LArCellBinning.etaMin
etaMin
Definition: LArCellBinning.py:84
RpcCoinMatrix::fel1Id
ubit16 fel1Id() const
Definition: RpcCoinMatrix.h:71
RpcPad::sector
int sector() const
Definition: RpcPad.h:112
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
TgcRawData::TYPE_HIPT
@ TYPE_HIPT
Definition: TgcRawData.h:45
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TgcRawData
An unit object of TGC ROD output.
Definition: TgcRawData.h:23
TgcRawData::isOverlap
bool isOverlap() const
Definition: TgcRawData.h:369
TrigL2MuonSA::MuCalStreamerTool::MuCalStreamerTool
MuCalStreamerTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: MuCalStreamerTool.cxx:20
TgcRawData::slbType
SlbType slbType() const
Definition: TgcRawData.h:285
TgcRawData::SLB_TYPE_INNER_STRIP
@ SLB_TYPE_INNER_STRIP
Definition: TgcRawData.h:37
TgcRawData::type
DataType type() const
Definition: TgcRawData.h:280
RpcCoinMatrix::febcId
ubit16 febcId() const
Definition: RpcCoinMatrix.h:73
TauGNNUtils::Variables::Track::trackPhi
bool trackPhi(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:482
TrigRoiDescriptor.h
merge.status
status
Definition: merge.py:17
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::MuonRoI_v1::getSectorID
int getSectorID() const
Get the sector ID number.
Definition: MuonRoI_v1.cxx:133
AthAlgTool
Definition: AthAlgTool.h:26
TrigL2MuonSA::MuCalStreamerTool::isStreamOpen
bool isStreamOpen()
Definition: MuCalStreamerTool.cxx:105
TgcRawData::TYPE_TRACKLET
@ TYPE_TRACKLET
Definition: TgcRawData.h:44
error
Definition: IImpactPoint3dEstimator.h:70
TgcRawData::SLB_TYPE_TRIPLET_STRIP
@ SLB_TYPE_TRIPLET_STRIP
Definition: TgcRawData.h:35
readCCLHist.float
float
Definition: readCCLHist.py:83
calibdata.tube
tube
Definition: calibdata.py:31
TrigL2MuonSA::Circexception
Definition: MuCalCircClient.h:20
CaloTime_fillDB.runId
runId
Definition: CaloTime_fillDB.py:347
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
MuCalStreamerTool.h
TrigL2MuonSA::MuCalStreamerTool::createMdtFragment
StatusCode createMdtFragment(TrigL2MuonSA::MdtHits &mdtHits, LVL2_MUON_CALIBRATION::MdtCalibFragment &mdtFragment, float phi) const
Definition: MuCalStreamerTool.cxx:241
RpcPadContainer
Use IdentifiableContainer with RpcPad.
Definition: RpcPadContainer.h:23