ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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  ATH_CHECK(m_tgcRdoKey.initialize());
37  ATH_CHECK(m_readKey.initialize());
38  ATH_CHECK(m_eventInfoKey.initialize());
39  ATH_CHECK(m_rpcPadKey.initialize());
40 
41  return StatusCode::SUCCESS;
42 
43 }
44 
45 // --------------------------------------------------------------------------------
46 // --------------------------------------------------------------------------------
47 
48 
50 {
51 
52  std::string name = m_calBufferName;
53  name += "_"+m_algInstanceName;
54 
55  if ( m_circ == nullptr ) {
56  try
57  {
58  m_circ = new TrigL2MuonSA::MuCalCircClient (0, name, calBufferSize);
59  }
60 
62  {
63  ATH_MSG_WARNING("Could not open muon calibration buffer: name="
64  << name << " buffer size=" << calBufferSize);
65  }
66 
67  ATH_MSG_INFO("Opening muon calibration stream. Buffer name: "
68  << name << " buffer size: " << calBufferSize);
69  }
70 
71  return StatusCode::SUCCESS;
72 }
73 
74 
75 
76 
77 // --------------------------------------------------------------------------------
78 // --------------------------------------------------------------------------------
79 
81 {
82 
83  std::string name = m_calBufferName+"_"+m_algInstanceName;
84  ATH_MSG_DEBUG("I'm going to close the stream "<<name);
85 
86  if (m_circ)
87  {
88  delete m_circ;
89  m_circ = nullptr;
90  }
91 
92  return StatusCode::SUCCESS;
93 
94 }
95 
96 
97 // --------------------------------------------------------------------------------
98 // --------------------------------------------------------------------------------
99 
100 bool TrigL2MuonSA::MuCalStreamerTool::isStreamOpen() {return m_circ!=nullptr;}
101 
102 
103 // --------------------------------------------------------------------------------
104 // --------------------------------------------------------------------------------
105 
108  TrigL2MuonSA::MdtHits& mdtHits,
109  TrigL2MuonSA::RpcHits& rpcHits,
110  TrigL2MuonSA::TgcHits& tgcHits,
111  std::vector<uint32_t>& localBuffer, // Add localBuffer parameter
112  bool doDataScouting,
113  const EventContext& ctx) const
114  {
115 
116  ATH_MSG_DEBUG("Data scouting is set to"<<doDataScouting);
117 
118  // skip the event if it's a noise burst
119  unsigned int totalHits = mdtHits.size()+rpcHits.size()+tgcHits.size();
120  if ( totalHits > 500 ) {
121  ATH_MSG_DEBUG("Too many hits: skip the RoI");
122  return StatusCode::SUCCESS;
123  }
124 
125  // init roi pointer
126  if ( !inputroi ) {
127  ATH_MSG_ERROR("Roi not initialized");
128  return StatusCode::FAILURE;
129  }
130 
131  // pointer to the muon roi
132  const xAOD::MuonRoI* roi {inputroi};
133 
134 
135  // retrieve the event and trigger info
136  SG::ReadHandle<xAOD::EventInfo> eventInfo (m_eventInfoKey, ctx);
137  uint32_t runId = ctx.eventID().run_number();
138  uint32_t lvl1Id = eventInfo->extendedLevel1ID();
139 
140 
141  // get track parameters
142  float eta = (float) track.etaVtx;
143  float phi = (float) track.phiVtx;
144  float pt = (float) track.pt;
145 
146  uint32_t mrods[4] = {0, 0, 0, 0};
147  // prepare the header information
148  std::vector<uint32_t> robIdList_MDT;
149  double etaMin = roi->eta()-0.05;
150  double etaMax = roi->eta()+0.05;
151  double phi_roi = roi->phi();
152  double phiMin = roi->phi()-0.05;
153  double phiMax = roi->phi()+0.05;
154  if( phi_roi < 0 ) phi_roi += 2*M_PI;
155  if( phiMin < 0 ) phiMin += 2*M_PI;
156  if( phiMax < 0 ) phiMax += 2*M_PI;
157 
158  TrigRoiDescriptor roiDescr( roi->eta(), etaMin, etaMax, phi_roi, phiMin, phiMax );
159 
160  const IRoiDescriptor* iroi = (IRoiDescriptor*) &roiDescr;
161  m_regSel_MDT->lookup( ctx )->ROBIDList(*iroi,robIdList_MDT);
162 
163  // dump the list of robs for debugging
164  ATH_MSG_DEBUG("Size of the MDT rob list: " << robIdList_MDT.size());
165  int isize = robIdList_MDT.size()<5 ? robIdList_MDT.size() : 4;
166  for (int ii = 0 ; ii<isize ; ++ii ) {
167  ATH_MSG_DEBUG("robId: 0x" << std::hex << robIdList_MDT.at(ii) << std::dec);
168  mrods[ii] = robIdList_MDT.at(ii);
169  }
170 
171  // get the list of TGC robs
172  std::vector<uint32_t> robIdList_TGC;
173  m_regSel_TGC->lookup(ctx)->ROBIDList(*iroi,robIdList_TGC);
174  ATH_MSG_DEBUG("Size of the TGC rob list: " << robIdList_TGC.size());
175 
176 
177  LVL2_MUON_CALIBRATION::CalibEvent event(1,runId,lvl1Id,1,1,mrods,name().c_str(),eta,phi,pt);
178  LVL2_MUON_CALIBRATION::MdtCalibFragment mdtFragment;
179 
180  // create the MDT fragment
181  if ( mdtHits.size()>0 ) {
182  ATH_CHECK( createMdtFragment(mdtHits,mdtFragment,phi) );
183 
184  // add the mdt fragment to the event
185  event << mdtFragment;
186  }
187  else{
188  // do not write the calib stream
189  return StatusCode::SUCCESS;
190  }
191 
192  // create the RPC fragment
193  if ( rpcHits.size() > 0 ) {
194  LVL2_MUON_CALIBRATION::RpcCalibFragment rpcFragment;
195 
196  if ( createRpcFragment(roi, rpcFragment, ctx) != StatusCode::SUCCESS ) {
197  ATH_MSG_WARNING("Could not create the Rpc fragment of the calibration stream");
198  }
199  else {
200  ATH_MSG_DEBUG("Adding the RPC fragment to the calibration stream");
201  event << rpcFragment;
202  }
203  }
204 
205  if ( tgcHits.size() > 0 ) {
206  LVL2_MUON_CALIBRATION::TgcCalibFragment tgcFragment;
207 
208  if ( createTgcFragment(robIdList_TGC,tgcFragment) != StatusCode::SUCCESS ) {
209  ATH_MSG_ERROR("Could not create the Tgc fragment of the calibration stream");
210  }
211  else {
212  ATH_MSG_DEBUG("Adding the TGC fragment to the calibration stream");
213  event << tgcFragment;
214  }
215  }
216 
217 
218 
219  ATH_MSG_DEBUG("Dumping the event stream");
221  if (m_circ)
222  {
223  m_circ->dumpToCirc (event);
224  }
225 
226 
227  if (doDataScouting) {
228  // Perform data scouting specific operations
229  uint16_t eventSize_ds = event.size();
230  if (eventSize_ds>1000) return StatusCode::SUCCESS;
231 
232  std::unique_ptr<uint8_t[]> buff_ds = std::make_unique<uint8_t[]>(eventSize_ds);
233 
234  // encode the event
235  uint16_t eventSize8bits = eventSize_ds;
236  uint16_t eventSize32bits = eventSize8bits/4;
237  event.dumpWords(buff_ds.get(),eventSize_ds);
238 
239  // fill the local buffer
240  // dump the words also in the local buffer
241  // dump the encoded event to the screen
242  ATH_MSG_DEBUG("Size of the DATASCOUTING buffer in 32 bits words: " << eventSize32bits);
243  for ( uint16_t words = 0 ; words != eventSize32bits ; words++) {
244  uint32_t byte1 = buff_ds[words*4];
245  uint32_t byte2 = buff_ds[words*4 + 1];
246  uint32_t byte3 = buff_ds[words*4 + 2];
247  uint32_t byte4 = buff_ds[words*4 + 3];
248 
249  // encoding in big-endian for now ( revert order for little-endian )
250  uint32_t dataWord = (byte4 << 24) + (byte3 << 16) + (byte2 << 8) + byte1 ;
251  // std::cout << "Number of data words: " << words << std::endl;
252  ATH_MSG_DEBUG("Data word " << words << " = " << std::hex << "0x" << dataWord << std::dec);
253 
254  localBuffer.push_back(dataWord);
255  }
256 
257  ATH_MSG_DEBUG("Local buffer size = " << localBuffer.size());
258 
259  }
260  return StatusCode::SUCCESS;
261  }
262 
263  //
264  // prepare the Mdt fragment of the stream
265  //
267  LVL2_MUON_CALIBRATION::MdtCalibFragment& mdtFragment,
268  float trackPhi) const
269  {
270 
271  TrigL2MuonSA::MdtHits::const_iterator it = mdtHits.begin();
272  for ( ; it != mdtHits.end() ; ++it ) {
273 
274  int stationName = (*it).name;
275  int stationEta = (*it).StationEta;
276  int stationPhi = (*it).StationPhi;
277  int multilayer = (*it).Multilayer;
278  int layer = (*it).TubeLayer;
279  int tube = (*it).Tube;
280 
281  uint32_t ID = LVL2_MUON_CALIBRATION::MdtIdIntoWord(stationName,
282  stationEta,stationPhi,multilayer,layer,tube);
283 
284  uint16_t leadingCoarseTime = (*it).LeadingCoarseTime;
285  uint16_t leadingFineTime = (*it).LeadingFineTime;
286  uint16_t trailingCoarseTime = (*it).TrailingCoarseTime;
287  uint16_t trailingFineTime = (*it).TrailingFineTime;
288  uint16_t adc = (*it).Adc;
289 
290  LVL2_MUON_CALIBRATION::MdtCalibData mdt(ID,leadingCoarseTime,leadingFineTime,
291  trailingCoarseTime,trailingFineTime,adc
292  ,trackPhi);
293 
294  ATH_MSG_DEBUG("Dumping MDT Hit");
295  ATH_MSG_DEBUG(mdt);
296 
297  mdtFragment << mdt;
298  }
299 
300  return StatusCode::SUCCESS;
301  }
302 
304 //
305 // prepare the Rpc fragment of the stream
306 //
309  LVL2_MUON_CALIBRATION::RpcCalibFragment& rpcFragment,const EventContext& ctx) const
310 {
311 
312  // exit if it's not in the barrel
313  //if ( roi->sysID() != 0 ) return StatusCode::SUCCESS;
314  if ( roi->getSource() != 0 ) return StatusCode::SUCCESS;
315 
316  // retrieve the padId from the RecMuonRoi
317 
318  // decode roIWord
319  unsigned int side = roi->getHemisphere()==xAOD::MuonRoI::Hemisphere::Positive ? 1 : 0;
320  unsigned int sector = roi->getSectorID();
321  unsigned int roiNumber = roi->getRoI();
322 
323  // retrieve the pad container
324  SG::ReadHandle<RpcPadContainer> rh_rpcPad{m_rpcPadKey, ctx};
325  const RpcPadContainer* rpcPadContainer=rh_rpcPad.cptr();
326 
327  SG::ReadCondHandle<RpcCablingCondData> readHandle{m_readKey,ctx};
328  const RpcCablingCondData* readCdo{*readHandle};
329  unsigned int padIdHash;
330  if (readCdo->give_PAD_address( side, sector, roiNumber, padIdHash)) {
331 
332  auto itPad = rpcPadContainer->indexFindPtr(padIdHash);
333  if( itPad==nullptr ) {
334  ATH_MSG_WARNING("Failed to retrieve PAD hash Id " << padIdHash);
335  return StatusCode::FAILURE;
336  }
337  const RpcPad* rpcPad = itPad;
338 
339  uint16_t sector = rpcPad->sector();
340  uint16_t sysId = (sector<32)? 0x66 : 0x65;
341  uint16_t secId = sector%32;
342  uint16_t padId = rpcPad->onlineId();
343  uint16_t status = rpcPad->status();
344  uint16_t error = rpcPad->errorCode();
345 
346  LVL2_MUON_CALIBRATION::RpcCalibFragment frag(sysId,secId,padId,status,error);
347  rpcFragment = frag;
348  RpcPad::const_iterator it3 = rpcPad->begin();
349  for (; it3!=rpcPad->end() ; ++it3) {
350  const RpcCoinMatrix * cma = (*it3);
351 
352  uint16_t cmaId = cma->onlineId();
353  uint16_t fel1Id = cma->fel1Id();
354  uint16_t febcId = cma->febcId();
355  uint16_t crc = cma->crc();
356 
357  LVL2_MUON_CALIBRATION::RpcCalibData matrix(cmaId,fel1Id,febcId,crc);
358 
359  //for each cma for over fired channels
360  RpcCoinMatrix::const_iterator it5 = (*it3)->begin();
361  for (; it5 != (*it3)->end() ; ++it5) {
362  const RpcFiredChannel * fChannel = (*it5);
363 
364  uint16_t bcid = fChannel->bcid();
365  uint16_t time = fChannel->time();
366  uint16_t ijk = fChannel->ijk();
367  uint16_t channel = fChannel->channel();
368  uint16_t ovl = fChannel->ovl();
369  uint16_t thr = fChannel->thr();
370 
371  if(ijk!=7) matrix.getHit(bcid,time,ijk,channel);
372  else matrix.getHit(bcid,time,ijk,ovl,thr);
373 
374  } // loop on the matrix hits
375 
376  rpcFragment << matrix;
377  } // loop on the pad matrices
378 
379  }
380  else {
381  ATH_MSG_WARNING("Can't get the pad address from the RpcCablingCondData");
382  return StatusCode::FAILURE;
383  }
384 
385  return StatusCode::SUCCESS;
386 }
387 
389 //
390 // prepare the TGC fragment of the stream
391 //
394  LVL2_MUON_CALIBRATION::TgcCalibFragment& tgcFragment) const
395 {
396 
397 
398  if ( robIdList_TGC.size()<1 ) {
399  ATH_MSG_DEBUG("No TGC Rob found");
400  return StatusCode::SUCCESS;
401  }
402 
403  // system Id = 1 should correspond to the endcap
404  uint16_t systemId = 1;
405  // this is the subdetector Id
406  uint16_t subSystemId = ( (robIdList_TGC.at(0) & 0xff0000) >> 16 );
407  uint16_t rdoId = ( robIdList_TGC.at(0) & 0xff );
408 
409  uint16_t roiNumber = 0;
410 
411  tgcFragment = LVL2_MUON_CALIBRATION::TgcCalibFragment(systemId,subSystemId,rdoId,roiNumber);
412 
413  // retrieve the tgcrdo container
414  SG::ReadHandle<TgcRdoContainer> rdoRH(m_tgcRdoKey);
415  if (!rdoRH.isValid()) {
416  ATH_MSG_ERROR( "No TGC RDO container found!" );
417  return StatusCode::FAILURE;
418  }
419  const TgcRdoContainer* tgcRdoContainer = rdoRH.cptr();
420 
421  // now get the list of ROB Ids and from the the subdetector ID ( that corresponds to the
422  // subsystem ID
423 
424 
425  LVL2_MUON_CALIBRATION::TgcCalibData tgc_payload;
426  TgcRdoContainer::const_iterator it = tgcRdoContainer->begin();
427 
428  for ( ; it != tgcRdoContainer->end() ; ++it ) {
429 
430  ATH_MSG_DEBUG("Adding the hits from a new TGC chamber");
431 
432  // loop on the element of the TGC RDO
433  ATH_MSG_DEBUG("Number of hits: " << (*it)->size());
434 
435  TgcRdo::const_iterator itRaw = (*it)->begin();
436  for ( ; itRaw != (*it)->end() ; ++itRaw ) {
437 
438  const TgcRawData* raw = (*itRaw);
439  LVL2_MUON_CALIBRATION::TGC_BYTESTREAM_READOUTHIT roh;
440  LVL2_MUON_CALIBRATION::TGC_BYTESTREAM_READOUTTRIPLETSTRIP tps;
441  LVL2_MUON_CALIBRATION::TGC_BYTESTREAM_READOUTTRACKLET rot;
442  LVL2_MUON_CALIBRATION::TGC_BYTESTREAM_HIPT hpt;
443  LVL2_MUON_CALIBRATION::TGC_BYTESTREAM_SL sl;
444 
445 
446  switch (raw->type()) {
448  {
449  roh.channel = raw->channel()-40;
450  roh.sbId = raw->slbId();
451  roh.sbType = raw->slbType();
452  roh.adj = raw->isAdjacent();
453  roh.ldbId = raw->sswId();
454  roh.bcBitmap = bcBitmap(raw->bcTag());
455  roh.tracklet = raw->tracklet();
456  roh.ok = 1;
457 
458  }
459  break;
462  {
463  tps.phi = raw->position();
464  tps.seg = raw->segment();
465  tps.sbId = raw->slbId();
466  tps.ldbId = raw->sswId();
467  tps.bcBitmap = bcBitmap(raw->bcTag());
469  tps.ok = 1;
470  }
471  else
472  {
473  rot.rphi = raw->position();
474  rot.subm = raw->subMatrix();
475  rot.seg = raw->segment();
476  rot.delta = raw->delta();
477  rot.sbId = raw->slbId();
478  rot.ldbId = raw->sswId();
479  rot.bcBitmap = bcBitmap(raw->bcTag());
480  rot.slbType = raw->slbType();
482  rot.slbType = 4;
483  rot.ok = 1;
484  }
485  break;
487  {
488  hpt.delta = raw->delta();
489  hpt.hitId = raw->hitId();
490  hpt.hipt = raw->isHipt();
491  hpt.cand = raw->index();
492  hpt.chip = raw->chip();
493  hpt.sector = raw->sector();
494  hpt.fwd = raw->isForward();
495  hpt.strip = raw->isStrip();
496  hpt.bcBitmap = bcBitmap(raw->bcTag());
497  }
498  break;
499  case TgcRawData::TYPE_SL:
500  {
501  sl.roi = raw->roi();
502  sl.overlap = raw->isOverlap();
503  sl.threshold = raw->threshold();
504  sl.sign = raw->isMuplus();
505  sl.cand = raw->index();
506  sl.sector = raw->sector();
507  sl.fwd = raw->isForward();
508  sl.bcBitmap = bcBitmap(raw->bcTag());
509  sl.cand2plus = raw->cand3plus();
510  }
511  break;
512  default:
513  {
514  ATH_MSG_ERROR("Invalid TgcRawData type: " << raw->type());
515  return StatusCode::FAILURE;
516  }
517  }
518 
519  tgc_payload.getHit(roh,tps,rot,hpt,sl);
520 
521  }
522  }
523 
524  tgcFragment << tgc_payload;
525 
526  return StatusCode::SUCCESS;
527 }
TrigL2MuonSA::MuCalStreamerTool::createRoiFragment
StatusCode createRoiFragment(const xAOD::MuonRoI *roi, TrigL2MuonSA::TrackPattern &trackPattern, TrigL2MuonSA::MdtHits &mdtHits, TrigL2MuonSA::RpcHits &rpcHits, TrigL2MuonSA::TgcHits &tgcHits, std::vector< uint32_t > &localBuffer, bool doDataScouting, const EventContext &ctx) const
Definition: MuCalStreamerTool.cxx:106
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:80
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:67
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:308
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:407
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:49
RpcCoinMatrix
Definition: RpcCoinMatrix.h:20
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
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::createTgcFragment
StatusCode createTgcFragment(std::vector< uint32_t > &tgcRobIdList, LVL2_MUON_CALIBRATION::TgcCalibFragment &tgcFragment) const
Definition: MuCalStreamerTool.cxx:393
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
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:240
TgcRawData::chip
uint16_t chip() const
Definition: TgcRawData.h:337
PlotCalibFromCool.words
words
Definition: PlotCalibFromCool.py:51
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
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:492
TrigRoiDescriptor.h
merge.status
status
Definition: merge.py:17
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:100
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
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:266
python.LArMinBiasAlgConfig.float
float
Definition: LArMinBiasAlgConfig.py:65
RpcPadContainer
Use IdentifiableContainer with RpcPad.
Definition: RpcPadContainer.h:23