ATLAS Offline Software
TrigT1RPC.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "TrigT1RPC.h"
6 
8 #include "AtlasHepMC/GenEvent.h"
9 
11 
14 
17 
20 
21 #include <algorithm>
22 #include <cmath>
23 #include <stdexcept>
24 
27 
28 TrigT1RPC::TrigT1RPC(const std::string& name, ISvcLocator* pSvcLocator) :
29  AthAlgorithm(name, pSvcLocator) {
30 }
31 
32 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
33 
35  ATH_MSG_INFO("Initializing");
36  ATH_CHECK(m_idHelperSvc.retrieve());
43  if(m_nobxs>8){
44  //The RPC simulation uses many arrays that assume maximum 8 BCs are readout
45  //See TrigT1/TrigT1RPChardware/Matrix.h for example
46  ATH_MSG_ERROR("Readout of more than 8 BCs is not supported by the simulation");
47  return StatusCode::FAILURE;
48  }
49  return StatusCode::SUCCESS;
50 }
51 
52 
53 
54 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
55 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
56 
57 
59 
60  ATH_MSG_DEBUG ("in execute()");
61  const EventContext& ctx = Gaudi::Hive::currentContext();
63  const RpcCablingCondData* readCdo{*readHandle};
65  const MuonGM::MuonDetectorManager* muDetMgr = muDetMgrHandle.cptr();
66 
67  RPCsimuData data; // instanciate the container for the RPC digits
68  CHECK(fill_RPCdata(data, readCdo, muDetMgr)); // fill the data with RPC simulated digts
69 
71  "RPC data loaded from G3:" << std::endl
72  << ShowData<RPCsimuData>(data,"",m_data_detail) << std::endl
73  << "RPC digits into station 1 ==> "
74  << data.how_many(-1,-1,1,-1,-1,-1) << std::endl
75  << "RPC digits into station 2 ==> "
76  << data.how_many(-1,-1,2,-1,-1,-1) << std::endl
77  << "RPC digits into station 3 ==> "
78  << data.how_many(-1,-1,3,-1,-1,-1)
79  );
80  // ******************** Start of Level-1 simulation section *****************
81  unsigned long int debug;
82 
85  CMAdata patterns(&data, readCdo, debug); //
86  //
87  ATH_MSG_DEBUG ( "CMApatterns created from RPC digits:" << std::endl //
90 
91 
94  PADdata pads(&patterns,debug); //
95  //
96  ATH_MSG_DEBUG ( "PADs created from CMA patterns:" << std::endl
97  << ShowData<PADdata>(pads,"",m_data_detail) );
99 
100 
103  SLdata sectors(&pads,debug); //
104  //
105  ATH_MSG_DEBUG("Sector Logics created from PAD patterns:" //
106  << std::endl //
107  << ShowData<SLdata>(sectors,"",m_data_detail) ); //
109 
111  LVL1MUONIF::Lvl1MuCTPIInput * ctpiInRPC = nullptr;
112  LVL1MUONIF::Lvl1MuCTPIInputPhase1 * ctpiPhase1InRPC = nullptr;
113  if(m_useRun3Config){
115  ATH_CHECK(wh_muctpiRpc.record(std::make_unique<LVL1MUONIF::Lvl1MuCTPIInputPhase1>()));
116  ctpiPhase1InRPC = wh_muctpiRpc.ptr();
117  }else{
119  ATH_CHECK(wh_muctpiRpc.record(std::make_unique<LVL1MUONIF::Lvl1MuCTPIInput>()));
120  ctpiInRPC = wh_muctpiRpc.ptr();
121  }
122 
123  //
124  SLdata::PatternsList sectors_patterns = sectors.give_patterns(); //
125  SLdata::PatternsList::iterator SLit = sectors_patterns.begin(); //
126  //
127  while(SLit != sectors_patterns.end()) //
128  { //
129  SectorLogic* logic = (*SLit)->give_SectorL(readCdo, m_nobxs, m_bczero);
130  int sector = (*SLit)->sector(); //
131  int subsystem = (sector > 31)? 1 : 0; //
132  int logic_sector = sector%32;//
133 
134  for (int dbc=m_firstBC_to_MUCTPI; dbc<=m_lastBC_to_MUCTPI; dbc++){
135 
136  unsigned int data_word = 0;
137  try {
138  data_word = logic->outputToMuCTPI(dbc);
139  }
140  catch (const std::out_of_range& ex) {
141  ATH_MSG_WARNING(ex.what());
142  }
143  ATH_MSG_DEBUG( //
144  "Input to MuCTPI: side=" << subsystem //
145  << ", SL= " << logic_sector //
146  << ", BC= " << dbc
147  << ", RoI=" << TriggerRPC::ROI1(data_word) //
148  << ", Th=" << TriggerRPC::PT1(data_word) //
149  << ", data word " << MSG::hex << data_word //
150  << MSG::dec ); //
151  if(m_useRun3Config){
153  sldata.convertFromWordFormat(data_word);
155  sldata2.bcid( sldata.bcid() );
156  if(sldata.is2candidatesInSector()) sldata2.set2candidatesInSector();
157  else sldata2.clear2candidatesInSector();
158  for(int icand = 0 ; icand < 2 ; icand++){ // up to 2 candidates
159  sldata2.pt(icand, sldata.pt(icand) );
160  sldata2.roi(icand, sldata.roi(icand) );
161  sldata2.ovl(icand, sldata.ovl(icand) );
162  sldata2.charge(icand, sldata.charge(icand) );
163  if(sldata.is2candidates(icand)) sldata2.set2candidates(icand);
164  else sldata2.clear2candidates(icand);
165  }
166  ctpiPhase1InRPC->setSectorLogicData(sldata2,0,subsystem,logic_sector,dbc);
167  }else{
168  ctpiInRPC->setSectorLogicData(data_word,0,subsystem,logic_sector,dbc);
169  }
170  }
171  //
172  ++SLit; //
173  }
174 
175  //
176  //
177 
178  ATH_MSG_DEBUG ("put RPC Lvl1MuCTPIInput into SG" ); //
179 
181 
182 
183 
184  // ******************* Start of Level-1 computation section *****************
185 
186 
187  // ******************* Start Byte Stream production *************************
188 
190  {
191  RPCbytestream bytestream (patterns,
192  (std::string) m_bytestream_file,
193  msg(),
194  (unsigned long int) m_cma_ro_debug,
195  (unsigned long int) m_pad_ro_debug,
196  (unsigned long int) m_rx_ro_debug,
197  (unsigned long int) m_sl_ro_debug,
198  (unsigned long int) m_cma_rostruct_debug,
199  (unsigned long int) m_pad_rostruct_debug,
200  (unsigned long int) m_rx_rostruct_debug,
201  (unsigned long int) m_sl_rostruct_debug,
202  m_nobxs, m_bczero);
203 
204 
205  // Example on how to access the byte stream data.
206  // Only the bare structure is dump. To access a specific data member, use
207  // the interface methods of MatrixReadOut and PadReadOut classes.
208 
209  ATH_MSG_DEBUG("Start retrieving data from the RPC bytestream class");
210 
211  RPCbytestream::PAD_Readout PADmap = bytestream.pad_readout();
212  RPCbytestream::PAD_Readout::iterator it = PADmap.begin();
213  while (it != PADmap.end())
214  {
215  // load the PAD data into a ostrstream object
216  std::ostringstream PADdata;
217 
218  (*it).second.give_pad_readout()->bytestream(PADdata);
219 
220  //access to PadReadOut class and print the informations inside
221  ATH_MSG_DEBUG ("Start dumping the PAD " << (*it).second.PAD()
222  << " bytestream structure" << std::endl
223  << PADdata.str());
224 
225  //access to MatrixReadOut classes given in input to that PAD
226  for (int i=0;i<8;++i)
227  {
228  ATH_MSG_DEBUG( "Start dumping the Matrix " << i
229  << " into the PAD n. " << (*it).second.PAD());
230 
231  MatrixReadOut* matrix_read_out=(*it).second.matrices_readout(i);
232 
233  if(matrix_read_out)
234  { // load the Matrix data into a ostrstream object
235  std::ostringstream CMAdata;
236  CMAdata << *matrix_read_out;
237 
238  ATH_MSG_DEBUG (CMAdata.str());
239  }
240  else
241  {
242  ATH_MSG_DEBUG( "Matrix Read Out not loaded");
243  }
244  }
245 
246  ++it;
247  }
248  }
249 
250  // ******************* Start of BIS78 section *****************
251 
252  // Now BIS78 Trigger
253  uint8_t dstrip_phi=1; // Delta phi for BIS78 coincidence
254  uint8_t dstrip_eta=1; // Delta eta for BIS78 coincidence
255  uint16_t bcid=0;
256 
257  Muon::RpcBis78_TrigRawDataContainer* bis78RpcTrigData = nullptr;
259  ATH_CHECK(wh_bis78RpcTrigData.record(std::make_unique<Muon::RpcBis78_TrigRawDataContainer>()));
260  bis78RpcTrigData = wh_bis78RpcTrigData.ptr();
261 
262  m_BIS78TrigSim.build_trigRawData(bis78RpcTrigData, dstrip_phi, dstrip_eta, bcid);
263  ATH_MSG_DEBUG ("put bis78TrgContainer into SG" ); //
264 
265 
266  ATH_MSG_DEBUG ( "TrigT1RPC terminated succesfully!" );
267 
268  return StatusCode::SUCCESS;
269 }
270 
272 {
273  std::string space = " ";
274 
275  ATH_MSG_DEBUG("in execute(): fill RPC data");
276 
278  if (!rh_rpcDigits.isValid())
279  {
280  ATH_MSG_WARNING("No RPC digits container found");
281  return StatusCode::SUCCESS;
282  }
283  const RpcDigitContainer *container = rh_rpcDigits.cptr();
284 
285  // Cleanup the BIS78 strip data
287 
288  int bisStationIndex = m_idHelperSvc->rpcIdHelper().stationNameIndex("BIS");
289 
290  for (const RpcDigitCollection *rpcCollection : *container)
291  {
292 
293  Identifier moduleId = rpcCollection->identify();
294 
295  if (!m_idHelperSvc->isRpc(moduleId))
296  {
297  continue;
298  }
299 
300  for (const RpcDigit *rpcDigit : *rpcCollection) {
301 
302  Identifier channelId = rpcDigit->identify();
303  const int stationType = m_idHelperSvc->rpcIdHelper().stationName(channelId);
304  std::string StationName = m_idHelperSvc->rpcIdHelper().stationNameString(stationType);
305  int StationEta = m_idHelperSvc->rpcIdHelper().stationEta(channelId);
306  int StationPhi = m_idHelperSvc->rpcIdHelper().stationPhi(channelId);
307  int DoubletR = m_idHelperSvc->rpcIdHelper().doubletR(channelId);
308  int DoubletZ = m_idHelperSvc->rpcIdHelper().doubletZ(channelId);
309  int DoubletP = m_idHelperSvc->rpcIdHelper().doubletPhi(channelId);
310  int GasGap = m_idHelperSvc->rpcIdHelper().gasGap(channelId);
311  int MeasuresPhi = m_idHelperSvc->rpcIdHelper().measuresPhi(channelId);
312  int Strip = m_idHelperSvc->rpcIdHelper().strip(channelId);
313 
314  const MuonGM::RpcReadoutElement *descriptor =
315  muDetMgr->getRpcReadoutElement(channelId);
316 
317  // Get the global position of RPC strip from MuonDetDesc
318  Amg::Vector3D pos = descriptor->stripPos(channelId);
319 
320  // Get the Level-1 numbering schema for the RPC strips
321  unsigned long int strip_code_cab = readCdo->strip_code_fromOffId(StationName, StationEta, StationPhi,
322  DoubletR, DoubletZ, DoubletP, GasGap, MeasuresPhi, Strip);
323 
324  if (strip_code_cab)
325  {
326  // Fill data for the Level-1 RPC digit
327  float xyz[4];
328  xyz[1] = pos.x() / 10.; // coo[0]; //RPC strip x coordinate
329  xyz[2] = pos.y() / 10.; // coo[1]; //RPC strip y coordinate
330  xyz[3] = pos.z() / 10.; // coo[2]; //RPC strip z coordinate
331  xyz[0] = rpcDigit->time(); // time of digits
332 
333  int param[3] = {0, 0, 0};
334 
335  RPCsimuDigit digit(0, strip_code_cab, param, xyz);
336 
337  data << digit;
338 
339  ATH_MSG_DEBUG("Muon Identifiers from GM:" << std::endl
340  << space << "StationName = " << StationName << std::endl
341  << space << "StationEta = " << StationEta << std::endl
342  << space << "StationPhi = " << StationPhi << std::endl
343  << space << "DoubletR = " << DoubletR << std::endl
344  << space << "DoubletZ = " << DoubletZ << std::endl
345  << space << "DoubletP = " << DoubletP << std::endl
346  << space << "GasGap = " << GasGap << std::endl
347  << space << "MeasuresPhi = " << MeasuresPhi << std::endl
348  << space << "Strip = " << Strip);
349 
350  ATH_MSG_DEBUG("RPC Digit from GM:" << std::endl
351  << space << std::hex << channelId << std::dec << std::endl
352  << space << "GlobalPosition (cm) = "
353  << setiosflags(std::ios::fixed) << std::setprecision(3)
354  << std::setw(11) << pos.x()
355  << setiosflags(std::ios::fixed) << std::setprecision(3)
356  << std::setw(11) << pos.y()
357  << setiosflags(std::ios::fixed) << std::setprecision(3)
358  << std::setw(11) << pos.z());
359  }
360 
361  // This section fills the BIS strip data
362  if (stationType == bisStationIndex) {
363  ATH_MSG_DEBUG("Filling BIS strip data: StationName=" << StationName << " StationEta=" << StationEta
364  << " StationPhi=" << StationPhi << " MeasuresPhi=" << MeasuresPhi
365  << " Strip=" << Strip << " GasGap=" << GasGap
366  << " Time=" << rpcDigit->time());
367 
368  m_BIS78TrigSim.AddStrip(StationEta, StationPhi, GasGap, MeasuresPhi, Strip);
369  }
370  }
371  std::string id = m_idHelperSvc->rpcIdHelper().show_to_string(moduleId);
372  }
373 
374  return StatusCode::SUCCESS;
375 }
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
MuonGM::MuonDetectorManager::getRpcReadoutElement
const RpcReadoutElement * getRpcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:168
LVL1MUONIF::Lvl1MuCTPIInputPhase1::setSectorLogicData
void setSectorLogicData(const Lvl1MuSectorLogicDataPhase1 &data, size_t systemAddress, size_t subSystemAddress, size_t sectorAddress, int bcid=0)
Definition: Lvl1MuCTPIInputPhase1.cxx:69
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
GenEvent.h
TrigT1RPC::fill_RPCdata
StatusCode fill_RPCdata(RPCsimuData &, const RpcCablingCondData *readCdo, const MuonGM::MuonDetectorManager *muDetMgr)
Definition: TrigT1RPC.cxx:271
LVL1MUONIF::Lvl1MuCTPIInput::setSectorLogicData
void setSectorLogicData(const Lvl1MuSectorLogicData &data, size_t systemAddress, size_t subSystemAddress, size_t sectorAddress, int bcid=0)
Definition: Lvl1MuCTPIInput.cxx:58
TrigT1RPC::m_cma_debug
IntegerProperty m_cma_debug
Definition: TrigT1RPC.h:46
TrigT1RPC::m_fast_debug
IntegerProperty m_fast_debug
Definition: TrigT1RPC.h:44
ShowData
Definition: ShowData.h:9
TriggerRPC::ROI1
unsigned short int ROI1(unsigned long int slword)
Definition: decodeSL.cxx:20
LVL1MUONIF::Lvl1MuSectorLogicData::pt
int pt(size_t id) const
Definition: Lvl1MuSectorLogicData.h:50
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
TrigT1RPC::m_readKey
SG::ReadCondHandleKey< RpcCablingCondData > m_readKey
Definition: TrigT1RPC.h:82
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
RpcDigit
Definition: RpcDigit.h:16
LVL1MUONIF::Lvl1MuCTPIInput
Class representing (part of) the input data to the MuCTPI.
Definition: Lvl1MuCTPIInput.h:37
SLdata::PatternsList
std::list< SLpatterns * > PatternsList
Definition: SLdata.h:19
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
patterns
std::vector< std::string > patterns
Definition: listroot.cxx:187
LVL1MUONIF::Lvl1MuSectorLogicData::bcid
int bcid() const
Definition: Lvl1MuSectorLogicData.h:47
RpcDigitContainer
Use IdentifiableContainer with RpcDigitCollection.
Definition: RpcDigitContainer.h:53
RpcDigitCollection
Definition: RpcDigitCollection.h:17
TrigT1RPC::execute
StatusCode execute()
Definition: TrigT1RPC.cxx:58
LVL1MUONIF::Lvl1MuCTPIInputPhase1
Class representing (part of) the input data to the MuCTPI for Phase 1.
Definition: Lvl1MuCTPIInputPhase1.h:34
skel.it
it
Definition: skel.GENtoEVGEN.py:396
SLdata
Definition: SLdata.h:16
TrigT1RPC::m_rx_ro_debug
IntegerProperty m_rx_ro_debug
Definition: TrigT1RPC.h:52
xyz
#define xyz
MuonGM::RpcReadoutElement
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/RpcReadoutElement.h:55
TrigT1RPC::m_muctpiPhase1Key
SG::WriteHandleKey< LVL1MUONIF::Lvl1MuCTPIInputPhase1 > m_muctpiPhase1Key
Definition: TrigT1RPC.h:86
TrigT1RPC::TrigT1RPC
TrigT1RPC(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TrigT1RPC.cxx:28
TrigT1RPC::m_nobxs
Gaudi::Property< int > m_nobxs
Definition: TrigT1RPC.h:89
checkRpcDigits.digit
digit
Definition: checkRpcDigits.py:186
TrigT1RPC::m_sl_rostruct_debug
IntegerProperty m_sl_rostruct_debug
Definition: TrigT1RPC.h:58
ShowData.h
SectorLogic
Definition: SectorLogic.h:96
CMAdata
Definition: CMAdata.h:19
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::ovl
int ovl(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:51
RpcCablingCondData
Definition: RpcCablingCondData.h:21
TrigT1RPC::m_pad_rostruct_debug
IntegerProperty m_pad_rostruct_debug
Definition: TrigT1RPC.h:56
Lvl1MuCTPIInputPhase1.h
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::set2candidatesInSector
void set2candidatesInSector()
Definition: Lvl1MuSectorLogicDataPhase1.h:60
LVL1MUONIF::Lvl1MuBarrelSectorLogicData::convertFromWordFormat
const Lvl1MuSectorLogicData & convertFromWordFormat(const SectorLogicWord &)
Convert SectorLogicData from 32 bit word data.
Definition: Lvl1MuBarrelSectorLogicData.cxx:98
MatrixReadOut
Definition: MatrixReadOut.h:18
TrigT1RPC::m_data_detail
BooleanProperty m_data_detail
Definition: TrigT1RPC.h:66
TrigT1RPC::m_bczero
Gaudi::Property< int > m_bczero
Definition: TrigT1RPC.h:90
TrigT1RPC::m_lastBC_to_MUCTPI
IntegerProperty m_lastBC_to_MUCTPI
Definition: TrigT1RPC.h:70
RPCbytestream::pad_readout
const PAD_Readout & pad_readout(void) const
Definition: RPCbytestream.h:64
TriggerRPC::PT1
unsigned short int PT1(unsigned long int slword)
Definition: decodeSL.cxx:56
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
McEventCollection.h
TrigT1RPC::initialize
StatusCode initialize()
Definition: TrigT1RPC.cxx:34
LVL1MUONIF::Lvl1MuSectorLogicData::ovl
int ovl(size_t id) const
Definition: Lvl1MuSectorLogicData.h:49
lumiFormat.i
int i
Definition: lumiFormat.py:85
TrigT1RPC::m_bytestream_file
StringProperty m_bytestream_file
Definition: TrigT1RPC.h:64
TrigT1RPC.h
decodeSL.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SG::WriteHandle::ptr
pointer_type ptr()
Dereference the pointer.
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TrigT1RPC::m_sl_ro_debug
IntegerProperty m_sl_ro_debug
Definition: TrigT1RPC.h:53
PADdata
Definition: PADdata.h:16
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::clear2candidates
void clear2candidates(size_t id)
Definition: Lvl1MuSectorLogicDataPhase1.h:69
LVL1MUONIF::Lvl1MuBarrelSectorLogicData
Class representing data from a barrel SL board.
Definition: Lvl1MuBarrelSectorLogicData.h:27
LVL1MUONIF::Lvl1MuBarrelSectorLogicDataPhase1
Class representing data from a barrel SL board.
Definition: Lvl1MuBarrelSectorLogicDataPhase1.h:26
LVL1MUONIF::Lvl1MuSectorLogicData::roi
int roi(size_t id) const
Definition: Lvl1MuSectorLogicData.h:48
TrigT1RPC::m_cma_ro_debug
IntegerProperty m_cma_ro_debug
Definition: TrigT1RPC.h:50
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::charge
int charge(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:53
TrigT1RPC::m_bytestream_production
BooleanProperty m_bytestream_production
Definition: TrigT1RPC.h:63
Muon::RpcBis78_TrigRawDataContainer
Definition: RpcBis78_TrigRawDataContainer.h:21
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
BIS78_triggerSimulation::AddStrip
unsigned int AddStrip(int sectoreta, int sectorphi, int igap, int mphi, int strip)
Definition: BIS78_triggerSimulation.cxx:18
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:122
AthAlgorithm
Definition: AthAlgorithm.h:47
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
TrigT1RPC::m_muDetMgrKey
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_muDetMgrKey
Definition: TrigT1RPC.h:79
TrigT1RPC::m_muctpiKey
SG::WriteHandleKey< LVL1MUONIF::Lvl1MuCTPIInput > m_muctpiKey
Definition: TrigT1RPC.h:85
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::set2candidates
void set2candidates(size_t id)
Definition: Lvl1MuSectorLogicDataPhase1.h:68
TrigT1RPC::m_cma_rostruct_debug
IntegerProperty m_cma_rostruct_debug
Definition: TrigT1RPC.h:55
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
BIS78_triggerSimulation::build_trigRawData
void build_trigRawData(Muon::RpcBis78_TrigRawDataContainer *trgContainer, uint8_t dstrip_phi, uint8_t dstrip_eta, uint16_t bcid)
Definition: BIS78_triggerSimulation.cxx:46
MuonGM::RpcReadoutElement::stripPos
Amg::Vector3D stripPos(const Identifier &id) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/RpcReadoutElement.cxx:177
RPCbytestream
Definition: RPCbytestream.h:20
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
xAOD::bcid
setEventNumber setTimeStamp bcid
Definition: EventInfo_v1.cxx:133
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
TrigT1RPC::m_rx_rostruct_debug
IntegerProperty m_rx_rostruct_debug
Definition: TrigT1RPC.h:57
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
RpcCablingCondData::strip_code_fromOffId
unsigned long int strip_code_fromOffId(const std::string &stationName, int stationEta, int stationPhi, int doubletR, int doubletZ, int doubletPhi, int gasGap, int measuresPhi, int strip) const
Definition: RpcCablingCondData.cxx:185
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
SLdata::give_patterns
PatternsList give_patterns(void)
Definition: SLdata.cxx:78
LVL1MUONIF::Lvl1MuSectorLogicData::charge
int charge(size_t id) const
Definition: Lvl1MuSectorLogicData.h:51
TrigT1RPC::m_pad_debug
IntegerProperty m_pad_debug
Definition: TrigT1RPC.h:47
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::pt
int pt(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:52
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:50
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
LVL1MUONIF::Lvl1MuSectorLogicData::is2candidates
bool is2candidates(size_t id) const
Definition: Lvl1MuSectorLogicData.h:52
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::roi
int roi(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:50
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::bcid
int bcid() const
Definition: Lvl1MuSectorLogicDataPhase1.h:48
TrigT1RPC::m_pad_ro_debug
IntegerProperty m_pad_ro_debug
Definition: TrigT1RPC.h:51
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::clear2candidatesInSector
void clear2candidatesInSector()
Definition: Lvl1MuSectorLogicDataPhase1.h:61
TrigT1RPC::m_bis78TrigKey
SG::WriteHandleKey< Muon::RpcBis78_TrigRawDataContainer > m_bis78TrigKey
Definition: TrigT1RPC.h:87
TrigT1RPC::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: TrigT1RPC.h:80
LVL1MUONIF::Lvl1MuSectorLogicData::is2candidatesInSector
bool is2candidatesInSector() const
Definition: Lvl1MuSectorLogicData.h:46
RPCsimuData
Definition: RPCsimuData.h:19
BIS78_triggerSimulation::clear
StatusCode clear()
Definition: BIS78_triggerSimulation.cxx:31
RPCsimuDigit
Definition: RPCsimuDigit.h:16
TrigT1RPC::m_rpcDigitKey
SG::ReadHandleKey< RpcDigitContainer > m_rpcDigitKey
Definition: TrigT1RPC.h:84
RPCbytestream::PAD_Readout
std::map< int, PADreadout, std::less< int > > PAD_Readout
Definition: RPCbytestream.h:24
TrigT1RPC::m_firstBC_to_MUCTPI
IntegerProperty m_firstBC_to_MUCTPI
Definition: TrigT1RPC.h:69
L1TopoSimulationConfig.subsystem
subsystem
Definition: L1TopoSimulationConfig.py:263
MatrixReadOut.h
TrigT1RPC::m_hardware_emulation
BooleanProperty m_hardware_emulation
Definition: TrigT1RPC.h:62
SectorLogic::outputToMuCTPI
CMAword outputToMuCTPI(int deltaBC=0)
Definition: SectorLogic.cxx:194
SectorLogic.h
Lvl1MuCTPIInput.h
TrigT1RPC::m_BIS78TrigSim
BIS78_triggerSimulation m_BIS78TrigSim
Definition: TrigT1RPC.h:76
TrigT1RPC::m_sl_debug
IntegerProperty m_sl_debug
Definition: TrigT1RPC.h:48
TrigT1RPC::m_useRun3Config
BooleanProperty m_useRun3Config
Definition: TrigT1RPC.h:72
RpcReadoutElement.h
Identifier
Definition: IdentifierFieldParser.cxx:14