1#include "GaudiKernel/DataObject.h"
2#include "GaudiKernel/MsgStream.h"
3#include "GaudiKernel/ObjectVector.h"
5#include "TClonesArray.h"
7#include "EventModel/EventModel.h"
8#include "LumiDigi/LumiDigi.h"
9#include "RootCnvSvc/Digi/DigiCnv.h"
10#include "RootCnvSvc/Digi/LumiDigiCnv.h"
11#include "RootCnvSvc/RootAddress.h"
12#include "RootEventData/TLumiDigi.h"
24 MsgStream log(
msgSvc(),
"LumiDigiCnv" );
25 log << MSG::DEBUG <<
"LumiDigiCnv::TObjectToDataObject" << endmsg;
26 StatusCode sc = StatusCode::SUCCESS;
29 refpObject = lumiDigiTdsCol;
31 if ( !m_lumiDigiCol )
return sc;
32 TIter lumiDigiIter( m_lumiDigiCol );
34 while ( ( lumiDigiRoot = (
TLumiDigi*)lumiDigiIter.Next() ) )
37 m_common.m_rootLumiDigiMap[lumiDigiRoot] = lumiDigiTds;
43 lumiDigiTdsCol->push_back( lumiDigiTds );
53 MsgStream log(
msgSvc(),
"LumiDigiCnv" );
54 log << MSG::DEBUG <<
"LumiDigiCnv::DataObjectToTObject" << endmsg;
55 StatusCode sc = StatusCode::SUCCESS;
58 if ( !lumiDigiColTds )
60 log << MSG::ERROR <<
"Could not downcast to LumiDigiCol" << endmsg;
61 return StatusCode::FAILURE;
68 log << MSG::ERROR <<
"Could not get DigiEvent in TDS" << endmsg;
69 return StatusCode::FAILURE;
73 { log << MSG::ERROR <<
"LumiDigiCnv: Could not downcast to TDS DigiEvent" << endmsg; }
76 m_cnvSvc->getDigiCnv()->createRep( evt, addr );
81 if ( !m_lumiDigiCol )
return sc;
83 LumiDigiCol::const_iterator lumiDigiTds;
85 for ( lumiDigiTds = lumiDigiColTds->begin(); lumiDigiTds != lumiDigiColTds->end();
90 lumiDigiRoot->
initialize( ( *lumiDigiTds )->getIntId(), ( *lumiDigiTds )->getTimeChannel(),
91 ( *lumiDigiTds )->getChargeChannel() );
92 lumiDigiRoot->
setOverflow( ( *lumiDigiTds )->getOverflow() );
ObjectVector< LumiDigi > LumiDigiCol
static const CLID & classID()
LumiDigiCnv(ISvcLocator *svc)
virtual StatusCode TObjectToDataObject(DataObject *&obj)
transformation from root
virtual StatusCode DataObjectToTObject(DataObject *obj, RootAddress *addr)
transformation to root
void setOverflow(const unsigned int overflow)
void setChargeChannel(const unsigned int chargeChannel)
void setTimeChannel(const unsigned int timeChannel)
Definition of a Root address, derived from IOpaqueAddress.
IDataProviderSvc * m_eds
pointer to eventdataservice
std::vector< void * > m_adresses
each converter knows the corresponding adresses
std::string m_rootBranchname
root branchname (may be concatenated of severals)
RootEventBaseCnv(const CLID &clid, ISvcLocator *svc)
void clearLumiDigiCol()
clear the whole array
void addLumiDigi(TLumiDigi *digi)
Add a LumiDigi into the MUC Data collection.
const TObjArray * getLumiDigiCol() const
retrieve the whole TObjArray of LumiDigi Data
UInt_t getOverflow() const
void setOverflow(const UInt_t overflow)
void initialize(UInt_t id, UInt_t time=0, UInt_t charge=0)
UInt_t getChargeChannel() const
UInt_t getTimeChannel() const
_EXTERN_ std::string Event