|
ATLAS Offline Software
|
Go to the documentation of this file.
46 ATH_MSG_ERROR(
"Readout of more than 8 BCs is not supported by the simulation");
47 return StatusCode::FAILURE;
49 return StatusCode::SUCCESS;
61 const EventContext& ctx = Gaudi::Hive::currentContext();
71 "RPC data loaded from G3:" << 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)
81 unsigned long int debug;
87 ATH_MSG_DEBUG (
"CMApatterns created from RPC digits:" << std::endl
96 ATH_MSG_DEBUG (
"PADs created from CMA patterns:" << std::endl
115 ATH_CHECK(wh_muctpiRpc.
record(std::make_unique<LVL1MUONIF::Lvl1MuCTPIInputPhase1>()));
116 ctpiPhase1InRPC = wh_muctpiRpc.
ptr();
119 ATH_CHECK(wh_muctpiRpc.
record(std::make_unique<LVL1MUONIF::Lvl1MuCTPIInput>()));
120 ctpiInRPC = wh_muctpiRpc.
ptr();
127 while(SLit != sectors_patterns.end())
130 int sector = (*SLit)->sector();
132 int logic_sector = sector%32;
136 unsigned int data_word = 0;
140 catch (
const std::out_of_range& ex) {
145 <<
", SL= " << logic_sector
149 <<
", data word " << MSG::hex << data_word
158 for(
int icand = 0 ; icand < 2 ; icand++){
159 sldata2.
pt(icand, sldata.
pt(icand) );
160 sldata2.
roi(icand, sldata.
roi(icand) );
161 sldata2.
ovl(icand, sldata.
ovl(icand) );
209 ATH_MSG_DEBUG(
"Start retrieving data from the RPC bytestream class");
213 while (
it != PADmap.end())
218 (*it).second.give_pad_readout()->bytestream(
PADdata);
221 ATH_MSG_DEBUG (
"Start dumping the PAD " << (*it).second.PAD()
222 <<
" bytestream structure" << std::endl
226 for (
int i=0;
i<8;++
i)
229 <<
" into the PAD n. " << (*it).second.PAD());
259 ATH_CHECK(wh_bis78RpcTrigData.
record(std::make_unique<Muon::RpcBis78_TrigRawDataContainer>()));
260 bis78RpcTrigData = wh_bis78RpcTrigData.
ptr();
268 return StatusCode::SUCCESS;
273 std::string space =
" ";
281 return StatusCode::SUCCESS;
288 int bisStationIndex =
m_idHelperSvc->rpcIdHelper().stationNameIndex(
"BIS");
293 Identifier moduleId = rpcCollection->identify();
300 for (
const RpcDigit *rpcDigit : *rpcCollection) {
304 std::string StationName =
m_idHelperSvc->rpcIdHelper().stationNameString(stationType);
321 unsigned long int strip_code_cab = readCdo->
strip_code_fromOffId(StationName, StationEta, StationPhi,
322 DoubletR, DoubletZ, DoubletP, GasGap, MeasuresPhi, Strip);
331 xyz[0] = rpcDigit->time();
333 int param[3] = {0, 0, 0};
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);
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());
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());
371 std::string
id =
m_idHelperSvc->rpcIdHelper().show_to_string(moduleId);
374 return StatusCode::SUCCESS;
JetConstituentVector::iterator iterator
const RpcReadoutElement * getRpcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
char data[hepevt_bytes_allocation_ATLAS]
StatusCode fill_RPCdata(RPCsimuData &, const RpcCablingCondData *readCdo, const MuonGM::MuonDetectorManager *muDetMgr)
IntegerProperty m_cma_debug
IntegerProperty m_fast_debug
unsigned short int ROI1(unsigned long int slword)
SG::ReadCondHandleKey< RpcCablingCondData > m_readKey
const_pointer_type cptr()
Dereference the pointer.
std::list< SLpatterns * > PatternsList
std::vector< std::string > patterns
Use IdentifiableContainer with RpcDigitCollection.
IntegerProperty m_rx_ro_debug
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
SG::WriteHandleKey< LVL1MUONIF::Lvl1MuCTPIInputPhase1 > m_muctpiPhase1Key
TrigT1RPC(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< int > m_nobxs
IntegerProperty m_sl_rostruct_debug
IntegerProperty m_pad_rostruct_debug
void set2candidatesInSector()
const Lvl1MuSectorLogicData & convertFromWordFormat(const SectorLogicWord &)
Convert SectorLogicData from 32 bit word data.
BooleanProperty m_data_detail
Gaudi::Property< int > m_bczero
IntegerProperty m_lastBC_to_MUCTPI
const PAD_Readout & pad_readout(void) const
unsigned short int PT1(unsigned long int slword)
StringProperty m_bytestream_file
::StatusCode StatusCode
StatusCode definition for legacy code.
pointer_type ptr()
Dereference the pointer.
IntegerProperty m_sl_ro_debug
void clear2candidates(size_t id)
Class representing data from a barrel SL board.
Class representing data from a barrel SL board.
IntegerProperty m_cma_ro_debug
#define CHECK(...)
Evaluate an expression and check for errors.
int charge(size_t id) const
BooleanProperty m_bytestream_production
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
unsigned int AddStrip(int sectoreta, int sectorphi, int igap, int mphi, int strip)
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_muDetMgrKey
SG::WriteHandleKey< LVL1MUONIF::Lvl1MuCTPIInput > m_muctpiKey
void set2candidates(size_t id)
IntegerProperty m_cma_rostruct_debug
void build_trigRawData(Muon::RpcBis78_TrigRawDataContainer *trgContainer, uint8_t dstrip_phi, uint8_t dstrip_eta, uint16_t bcid)
Amg::Vector3D stripPos(const Identifier &id) const
StatusCode initialize(bool used=true)
setEventNumber setTimeStamp bcid
Eigen::Matrix< double, 3, 1 > Vector3D
IntegerProperty m_rx_rostruct_debug
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
PatternsList give_patterns(void)
int charge(size_t id) const
IntegerProperty m_pad_debug
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
#define ATH_MSG_WARNING(x)
bool is2candidates(size_t id) const
IntegerProperty m_pad_ro_debug
void clear2candidatesInSector()
SG::WriteHandleKey< Muon::RpcBis78_TrigRawDataContainer > m_bis78TrigKey
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
bool is2candidatesInSector() const
SG::ReadHandleKey< RpcDigitContainer > m_rpcDigitKey
std::map< int, PADreadout, std::less< int > > PAD_Readout
IntegerProperty m_firstBC_to_MUCTPI
BooleanProperty m_hardware_emulation
CMAword outputToMuCTPI(int deltaBC=0)
BIS78_triggerSimulation m_BIS78TrigSim
IntegerProperty m_sl_debug
BooleanProperty m_useRun3Config