2#define EmcDigiCnv_CXX 1
4#include "GaudiKernel/DataObject.h"
5#include "GaudiKernel/MsgStream.h"
6#include "GaudiKernel/ObjectVector.h"
8#include "TClonesArray.h"
10#include "EmcRawEvent/EmcDigi.h"
11#include "EventModel/EventModel.h"
12#include "RawEvent/DigiEvent.h"
13#include "RootCnvSvc/Digi/DigiCnv.h"
14#include "RootCnvSvc/Digi/EmcDigiCnv.h"
15#include "RootCnvSvc/RootAddress.h"
16#include "RootEventData/TDigiEvent.h"
17#include "RootEventData/TEmcDigi.h"
26 MsgStream log(
msgSvc(),
"EmcDigiCnv" );
37 MsgStream log(
msgSvc(),
"EmcDigiCnv" );
38 log << MSG::DEBUG <<
"EmcDigiCnv::TObjectToDataObject" << endmsg;
39 StatusCode sc = StatusCode::SUCCESS;
43 refpObject = emcDigiTdsCol;
46 if ( !m_emcDigiCol )
return sc;
47 TIter emcDigiIter( m_emcDigiCol );
49 while ( ( emcDigiRoot = (
TEmcDigi*)emcDigiIter.Next() ) )
51 unsigned int id = emcDigiRoot->
getIntId();
54 unsigned int measure = emcDigiRoot->
getMeasure();
58 m_common.m_rootEmcDigiMap[emcDigiRoot] = emcDigiTds;
65 emcDigiTdsCol->push_back( emcDigiTds );
70 return StatusCode::SUCCESS;
75 MsgStream log(
msgSvc(),
"EmcDigiCnv" );
76 log << MSG::DEBUG <<
"EmcDigiCnv::DataObjectToTObject" << endmsg;
77 StatusCode sc = StatusCode::SUCCESS;
82 log << MSG::ERROR <<
"Could not downcast to EmcDigiCol" << endmsg;
83 return StatusCode::FAILURE;
90 log << MSG::ERROR <<
"Could not get DigiEvent in TDS " << endmsg;
91 return StatusCode::FAILURE;
95 { log << MSG::ERROR <<
"EmcDigiCnv:Could not downcast to TDS DigiEvent" << endmsg; }
98 m_cnvSvc->getDigiCnv()->createRep( evt, addr );
102 if ( !m_emcDigiCol )
return sc;
105 EmcDigiCol::const_iterator emcDigiTds;
107 for ( emcDigiTds = emcDigiColTds->begin(); emcDigiTds != emcDigiColTds->end(); emcDigiTds++ )
109 UInt_t measure = ( *emcDigiTds )->getMeasure();
110 UInt_t
time = ( *emcDigiTds )->getTimeChannel();
111 UInt_t charge = ( *emcDigiTds )->getChargeChannel();
112 UInt_t
id = ( *emcDigiTds )->getIntId();
113 Int_t trackIndex = ( *emcDigiTds )->getTrackIndex();
125 return StatusCode::SUCCESS;
ObjectVector< EmcDigi > EmcDigiCol
EmcDigiCnv(ISvcLocator *svc)
virtual StatusCode DataObjectToTObject(DataObject *obj, RootAddress *addr)
transformation to root
static const CLID & classID()
virtual StatusCode TObjectToDataObject(DataObject *&obj)
transformation from root
void setMeasure(const unsigned int measure)
void setTrackIndex(const int trackIndex)
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 addEmcDigi(TEmcDigi *digi)
Add a TkrDigi into the TKR data collection.
void clearEmcDigiCol()
clear the whole array (necessary because of the consts-s)
const TObjArray * getEmcDigiCol() const
retrieve the whole TObjArray of TkrDigi Data
UInt_t getMeasure() const
void setMeasure(const UInt_t measure)
void initialize(UInt_t id, UInt_t time=0, UInt_t charge=0)
void setTrackIndex(const int trackIndex)
int getTrackIndex() const
UInt_t getChargeChannel() const
UInt_t getTimeChannel() const
_EXTERN_ std::string Event