|
ATLAS Offline Software
|
Go to the documentation of this file.
22 #ifdef CTP_MUCTPI_HAVE_SAME_ROS
34 :
Converter( storageType(), classID(), svcloc ),
35 m_tool(
"MuCTPIByteStreamTool" ),
36 #ifdef CTP_MUCTPI_HAVE_SAME_ROS
37 m_ctp_tool(
"CTPByteStreamTool" ),
38 m_ctp_rec_tool(
"RecCTPByteStreamTool" ),
39 m_storeGate(
"StoreGateSvc",
"MuCTPIByteStreamCnv" ),
41 m_robDataProvider(
"ROBDataProviderSvc",
"MuCTPIByteStreamCnv" ),
42 m_ByteStreamEventAccess(
"ByteStreamCnvSvc",
"MuCTPIByteStreamCnv" ) {
70 MsgStream
log(
msgSvc(),
"MuCTPIByteStreamCnv" );
84 #ifdef CTP_MUCTPI_HAVE_SAME_ROS
102 log << MSG::WARNING <<
"Can't get ROBDataProviderSvc" <<
endmsg;
108 return StatusCode::SUCCESS;
118 MsgStream
log(
msgSvc(),
"MuCTPIByteStreamCnv" );
124 log << MSG::ERROR <<
" Can not cast to ByteStreamAddress " <<
endmsg ;
125 return StatusCode::FAILURE;
135 log <<
MSG::DEBUG <<
" expected ROB sub-detector ID: " << std::hex
136 << robId << std::dec <<
endmsg;
138 std::vector< uint32_t > vID;
139 vID.push_back( robId );
150 if( robFrags.size() == 0 ) {
158 vID[0] = ( robId | 0x00000b );
159 #ifdef CTP_MUCTPI_HAVE_SAME_ROS
160 vID.push_back( robId | 0x00000a );
164 if( robFrags.size() == 0 ) {
167 #ifdef CTP_MUCTPI_HAVE_SAME_ROS
172 if( robFrags.size() == 0 ) {
173 log << MSG::WARNING <<
"No MuCTPI ROB fragments found!" <<
endmsg;
177 return StatusCode::SUCCESS;
182 IROBDataProviderSvc::VROBFRAG::const_iterator
it = robFrags.begin();
185 if(
sc.isFailure() ) {
186 log << MSG::ERROR <<
" Failed to create Objects: " << *( pBS_Addr->par() ) <<
endmsg;
195 #ifdef CTP_MUCTPI_HAVE_SAME_ROS
201 if( robFrags.size() > 1 ) {
204 if(
it != robFrags.end() ) {
212 ATH_CHECK( m_storeGate->record( ctp_result,
"CTP_RDO" ) );
217 ATH_CHECK( m_storeGate->record( ctp_rio_result,
"CTP_RIO" ) );
233 MsgStream
log(
msgSvc(),
"MuCTPIByteStreamCnv" );
240 log << MSG::ERROR <<
" Cannot cast to MuCTPI_RDO" <<
endmsg;
241 return StatusCode::FAILURE;
OFFLINE_FRAGMENTS_NAMESPACE_WRITE::FullEventFragment RawEventWrite
data type for writing raw event
uint32_t getRobID(uint32_t rod_id) const
Make a ROB Source ID from a ROD source ID.
uint32_t getRodID() const
get a ROD Source ID
const ROBFragment * getROBFragment() const
Return the ROBFragment.
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
Service used when reading the BS data.
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
convert to and from a SG storable
ROBData_T< OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment, OFFLINE_FRAGMENTS_NAMESPACE::PointerType > ROBData
Defines the ROB data entity. The ROB data is an abstract entity that is used to discase the raw event...
templete data class to wrap ROB fragment for accessing ROD data
virtual StatusCode initialize() override
Function connecting to all the needed services/tools.
static long storageType()
Function needed by the framework.
DataObject * asStorable(SG::DataObjectSharedPtr< T > pObject)
static const CLID & ID()
the CLID of T
ServiceHandle< IByteStreamEventAccess > m_ByteStreamEventAccess
Service used when writing the BS data.
msgSvc
Provide convenience handles for various services.
static const CLID & classID()
Function needed by the framework.
::StatusCode StatusCode
StatusCode definition for legacy code.
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
std::vector< const ROBF * > VROBFRAG
uint32_t CLID
The Class ID type.
static constexpr long storageType()
MuCTPISrcIdMap m_srcIdMap
Object storing the various IDs of the MuCTPI fragment.
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&pAddr) override
Function creating the MuCTPI ROB fragment from a MuCTPI_RDO object.
Class representing the readout data of the MuCTPI hardware and simulation.
virtual StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&pObj) override
Function creating the MuCTPI_RDO object from a MuCTPI ROB fragment.
const boost::regex re(r_e)
ToolHandle< MuCTPIByteStreamTool > m_tool
Tool doing the actual conversion.
MuCTPIByteStreamCnv(ISvcLocator *svcloc)
Standard constructor.