Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

RootEventBaseCnv Class Reference

Base class for all Root Converters. More...

#include <RootEventBaseCnv.h>

Inheritance diagram for RootEventBaseCnv:

Converter< Ty1, Ty2 > Converter< Ty1, Ty2 > DigiCnv DigiCnv DstCnv DstCnv DstHltInfCnv DstHltInfCnv EmcDigiCnv EmcDigiCnv EmcMcHitCnv EmcMcHitCnv EmcTrackCnv EmcTrackCnv EventCnv EventCnv EvtHeaderCnv EvtHeaderCnv EvtRecCnv EvtRecCnv EvtRecDTagCnv EvtRecDTagCnv EvtRecEtaToGGCnv EvtRecEtaToGGCnv EvtRecEventCnv EvtRecEventCnv EvtRecPi0Cnv EvtRecPi0Cnv EvtRecPrimaryVertexCnv EvtRecPrimaryVertexCnv EvtRecTrackCnv EvtRecTrackCnv EvtRecVeeVertexCnv EvtRecVeeVertexCnv ExtTrackCnv ExtTrackCnv HltCnv HltCnv HltInfCnv HltInfCnv HltRawCnv HltRawCnv LumiDigiCnv LumiDigiCnv McCnv McCnv McParticleCnv McParticleCnv MdcDedxCnv MdcDedxCnv MdcDigiCnv MdcDigiCnv MdcKalTrackCnv MdcKalTrackCnv MdcMcHitCnv MdcMcHitCnv MdcTrackCnv MdcTrackCnv MucDigiCnv MucDigiCnv MucMcHitCnv MucMcHitCnv MucTrackCnv MucTrackCnv RecBTofCalHitCnv RecBTofCalHitCnv RecEmcClusterCnv RecEmcClusterCnv RecEmcHitCnv RecEmcHitCnv RecEmcShowerCnv RecEmcShowerCnv RecETofCalHitCnv RecETofCalHitCnv RecEvTimeCnv RecEvTimeCnv RecExtTrackCnv RecExtTrackCnv RecMdcDedxCnv RecMdcDedxCnv RecMdcDedxHitCnv RecMdcDedxHitCnv RecMdcHitCnv RecMdcHitCnv RecMdcKalHelixSegCnv RecMdcKalHelixSegCnv RecMdcKalTrackCnv RecMdcKalTrackCnv RecMdcTrackCnv RecMdcTrackCnv RecMucRecHitCnv RecMucRecHitCnv RecMucTrackCnv RecMucTrackCnv RecTofTrackCnv RecTofTrackCnv RecTrackCnv RecTrackCnv TofDigiCnv TofDigiCnv TofMcHitCnv TofMcHitCnv TofTrackCnv TofTrackCnv TrigCnv TrigCnv TrigDataCnv TrigDataCnv List of all members.

Public Types

typedef Ty2 destination
typedef Ty2 destination
typedef Ty1 source
typedef Ty1 source

Public Member Functions

virtual StatusCode createObj (IOpaqueAddress *addr, DataObject *&dat)
 Convert the persistent object to transient.
virtual StatusCode createObj (IOpaqueAddress *addr, DataObject *&dat)
 Convert the persistent object to transient.
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
 Convert the transient object to the requested representation.
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
 Convert the transient object to the requested representation.
virtual StatusCode DataObjectToTObject (DataObject *dat, RootAddress *addr)=0
 Do the concrete conversion from TDS to ROOT.
virtual StatusCode DataObjectToTObject (DataObject *dat, RootAddress *addr)=0
 Do the concrete conversion from TDS to ROOT.
void declareObject (const std::string &fullPath, const CLID &clid, const std::string &treename, const std::string &branchname)
 Store TDS path to link a particular converter to an object on the TDS.
void declareObject (const std::string &fullPath, const CLID &clid, const std::string &treename, const std::string &branchname)
 Store TDS path to link a particular converter to an object on the TDS.
virtual StatusCode fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
virtual StatusCode fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
virtual StatusCode finalize ()
virtual StatusCode finalize ()
TObject * getReadObject () const
 get the object to be read
TObject * getReadObject () const
 get the object to be read
virtual StatusCode initialize ()
virtual StatusCode initialize ()
destinationoperator (const source &) const
destinationoperator (const source &) const
virtual long repSvcType () const
virtual long repSvcType () const
 RootEventBaseCnv (const CLID &clid, ISvcLocator *svc)
 RootEventBaseCnv (const CLID &clid, ISvcLocator *svc)
virtual StatusCode TObjectToDataObject (DataObject *&dat)=0
 Do the concrete conversion from ROOT to TDS.
virtual StatusCode TObjectToDataObject (DataObject *&dat)=0
 Do the concrete conversion from ROOT to TDS.
virtual ~RootEventBaseCnv ()
virtual ~RootEventBaseCnv ()

Static Public Member Functions

const unsigned char storageType ()
 Storage type and class ID.
const unsigned char storageType ()
 Storage type and class ID.

Protected Member Functions

virtual destinationconvert (const source &) const =0
virtual destinationconvert (const source &) const =0

Protected Attributes

CLID CLID_top
 the CLID of the upper converter if any
std::vector< void * > m_adresses
 each converter knows the corresponding adresses
std::vector< void * > m_adresses
 each converter knows the corresponding adresses
int m_branchNr
 the branchNr of this converter for writing
int m_branchNrDst
int m_branchNrEvtHeader
int m_branchNrEvtRec
int m_branchNrMc
int m_branchNrRecon
TArrayS * m_branchNumbers
 array with number of branches for reading
TArrayS * m_branchNumbers
 array with number of branches for reading
RootCnvSvcm_cnvSvc
RootCnvSvcm_cnvSvc
std::string m_currentFileName
IDataProviderSvc * m_eds
 pointer to eventdataservice
IDataProviderSvc * m_eds
 pointer to eventdataservice
RootEvtSelectorm_evtsel
RootEvtSelectorm_evtsel
std::vector< RootCnvSvc::Leafm_leaves
std::vector< RootCnvSvc::Leafm_leaves
TObject * m_objRead
 the object that was read
TObject * m_objRead
 the object that was read
std::string m_rootBranchname
 root branchname (may be concatenated of severals)
RootInterfacem_rootInterface
 pointer to the RootInterface
RootInterfacem_rootInterface
 pointer to the RootInterface
std::string m_rootTreename
 each converter knows it's treename

Detailed Description

Base class for all Root Converters.

Based on SICb's SicbBaseCnv all specific converters inherit from this base class. The basic functions they have to implement are the pure conversions to and from DataObjects/Root Objects. In case there is more to do ( calling of upper converters, creation of branches for writing, reading of subbranches) they may also override the methods createObj/createRep. Based on the RootEventBaseCnv of Glast.


Member Typedef Documentation

template<class Ty1, class Ty2>
typedef Ty2 Converter< Ty1, Ty2 >::destination [inherited]
 

template<class Ty1, class Ty2>
typedef Ty2 Converter< Ty1, Ty2 >::destination [inherited]
 

template<class Ty1, class Ty2>
typedef Ty1 Converter< Ty1, Ty2 >::source [inherited]
 

template<class Ty1, class Ty2>
typedef Ty1 Converter< Ty1, Ty2 >::source [inherited]
 


Constructor & Destructor Documentation

RootEventBaseCnv::RootEventBaseCnv const CLID &  clid,
ISvcLocator *  svc
 

00030 : Converter(ROOT_StorageType, clid, svc) ,m_cnvSvc(0),m_rootBranchname(""),m_rootTreename("Event"), m_evtsel(0)
00031 {
00032     
00033     StatusCode sc;
00034     MsgStream log(msgSvc(), "RootEventBaseCnv");
00035 
00036     // Get DataSvc
00037     IService* isvc = 0;
00038     sc = serviceLocator()->getService("EventDataSvc", isvc, true);
00039     if(sc.isSuccess() ) {
00040         sc = isvc->queryInterface(IID_IDataProviderSvc, (void**)&m_eds);
00041     }
00042     if(sc.isFailure()){
00043         log << MSG::ERROR << "Unable start EventData service within RootEventBaseCnv" << endreq;
00044     } 
00045 
00046    m_rootInterface=RootInterface::Instance(log);
00047    if (!m_rootInterface)      log << MSG::ERROR << "Unable to start Root interface within RootCnvSvc" << endreq;
00048 
00053    
00054    sc = serviceLocator()->getService ("RootEvtSelector", isvc, false);
00055    if (!sc.isSuccess())  sc = serviceLocator()->getService ("EventSelector", isvc, false);
00056    if (sc.isSuccess()) {
00057      sc = isvc->queryInterface(IID_IRootEvtSelector, (void**)&m_evtsel);
00058    }
00059    if(sc.isFailure()) {
00060      log << MSG::WARNING << "Unable to start event selector service within RootCnvSvc" << endreq;
00061    }
00063 
00064    
00065     m_branchNr=-1;
00066     m_branchNrDst=-1;
00067     m_branchNrMc=-1;
00068     m_branchNrRecon=-1;
00069     m_branchNrEvtRec=-1;
00070     m_branchNrEvtHeader=-1;
00071     m_objRead=0;
00072     CLID_top=0;
00073     m_branchNumbers= new TArrayS(0);
00074 }

virtual RootEventBaseCnv::~RootEventBaseCnv  )  [inline, virtual]
 

00080 { };

RootEventBaseCnv::RootEventBaseCnv const CLID &  clid,
ISvcLocator *  svc
 

virtual RootEventBaseCnv::~RootEventBaseCnv  )  [inline, virtual]
 

00080 { };


Member Function Documentation

template<class Ty1, class Ty2>
virtual destination* Converter< Ty1, Ty2 >::convert const source  )  const [protected, pure virtual, inherited]
 

template<class Ty1, class Ty2>
virtual destination* Converter< Ty1, Ty2 >::convert const source  )  const [protected, pure virtual, inherited]
 

virtual StatusCode RootEventBaseCnv::createObj IOpaqueAddress *  addr,
DataObject *&  dat
[virtual]
 

Convert the persistent object to transient.

Reimplemented in EventCnv, and EventCnv.

StatusCode RootEventBaseCnv::createObj IOpaqueAddress *  addr,
DataObject *&  dat
[virtual]
 

Convert the persistent object to transient.

Reimplemented in EventCnv, and EventCnv.

00157                                                            {
00158   // transform ROOT object to TDS object
00159   MsgStream log(msgSvc(), "RootEventBaseCnv");
00160   log << MSG::DEBUG << "RootEventBaseCnv::createObj with clid " <<addr->clID()<< endreq;
00161   StatusCode sc;
00162 
00163   // add 2005-11-29
00164   // log<<MSG::INFO<<"######### RootEventBaseCnv ::createObj begin of createObj:  m_branchNumbers "<<m_branchNumbers->GetSize()<<"###############"<<endreq;
00165 
00166   RootAddress *raddr=dynamic_cast<RootAddress *>(addr);
00167   if (!raddr) {
00168     log << MSG::ERROR << "Could not downcast to Root address" << endreq;
00169     return StatusCode::FAILURE;
00170   }
00171  
00172   static int temp =0;   //control the begin of each files 2005-12-01
00173   static int entryN =0; //control the event number of each files 2005-21-01
00174   static int brN =0; //control munber of branch of the tree;
00175   int lastBrn = brN;
00176   //lastBrn = brN; 
00177   static int branchN=0;
00178   static bool isSet=true;
00179 
00180   static int entryBefore = 0;
00181   static bool addEntryEachFile = true;
00182  
00183  
00184    if(m_rootInterface->getENDFILE() || (temp >0 && temp < branchN)){ // if the file has get the end:y the go to next file to create a new tree
00185     
00186     if(m_rootInterface->getENDFILE() ) {
00187       entryN = 0;
00188     }
00189     
00190     temp++;
00191     
00192     delete m_branchNumbers;
00193     m_branchNumbers = new TArrayS(0);
00194    
00195     if(temp == branchN) {
00196       temp =0;
00197     }
00198    }
00199 
00200    if(m_rootInterface->getENDFILE()) addEntryEachFile = true;
00201    // the 2nd method 
00202    if(m_evtsel->getRecId() - entryBefore == 0) { // first event in this file
00203      delete m_branchNumbers;
00204      m_branchNumbers = new TArrayS(0);
00205    }
00206 
00207    //new method to initialize the branchNumber 
00208    if(m_currentFileName=="") m_currentFileName = m_rootInterface->getCurrentFileName();
00209    if(!(m_currentFileName == m_rootInterface->getCurrentFileName())){ 
00210            m_currentFileName = m_rootInterface->getCurrentFileName();
00211            delete m_branchNumbers;
00212            m_branchNumbers = new TArrayS(0);
00213    }   
00214    //---------------------------------------- 
00215 
00216    
00217   if (m_branchNumbers->GetSize()<=0) {
00218     if(isSet) brN++;
00219     int branchNumber;
00220     for (int nb=0;nb<raddr->getNrBranches();nb++) {
00221       sc=m_rootInterface->setBranchAddress(raddr->getTreename().c_str(),raddr->getBranchname(nb).c_str(),m_adresses[nb],branchNumber);
00222       if (!sc.isSuccess()) 
00223       {
00224         if(isSet) brN--;    //liangyt: if fail to retrieve this branch, this will be not a effective branch.
00225         //entryN++;   //liangyt: this is the second method
00226         if(temp>0) temp--;  //temp > 0 means recording effective branch number.
00227         return sc;
00228       }
00229       m_branchNumbers->Set(nb+1);
00230       m_branchNumbers->AddAt(branchNumber,nb);
00231      
00232     }
00233   }
00234 
00236   if(addEntryEachFile&&(m_evtsel->getRecId()>entryBefore)){   // for a new file, add entry for ONLY one time.
00237     entryBefore += m_rootInterface->getEntries();
00238     addEntryEachFile = false;
00239   }
00240 
00241   if(lastBrn == brN && isSet ){
00242     branchN = brN;
00243     isSet=false;    
00244   }
00245 
00246   if(isSet==false) log << MSG::INFO <<" 1st method set event as : "<<int(entryN/branchN)<<endreq;
00247   if(isSet==false) raddr->setEntryNr(int(entryN/branchN));//former method, keep it to be backup.
00248   if(m_evtsel) log << MSG::INFO <<" event id = "<<m_evtsel->getRecId()<<endreq;
00249 
00250   int eventID = 0;
00251   if(entryBefore > m_evtsel->getRecId())
00252     eventID = m_evtsel->getRecId() + m_rootInterface->getEntries() - entryBefore;
00253   else if(entryBefore == m_evtsel->getRecId()) eventID = 0;
00254   else log << MSG::ERROR <<"eventId error!!!"<<endreq;
00255   
00256   log << MSG::INFO <<" 2nd  method set event as : "<<eventID<<endreq;
00257   if(m_evtsel) raddr->setEntryNr(eventID);
00258   // read branch
00259   
00260   if (m_branchNumbers->GetSize()>0) {
00261     int nbtot=0,nb;
00262     for (int ib=0;ib<m_branchNumbers->GetSize();ib++) {
00263       //sc=m_rootInterface->getBranchEntry(m_branchNumbers->At(ib),raddr->getEntryNr(),nb);
00264       //change to get branch entry with addr(set address for each entry) liangyt
00265       sc=m_rootInterface->getBranchEntry(m_branchNumbers->At(ib),raddr->getEntryNr(),m_adresses[ib],nb);      
00266       if (sc.isFailure()) {
00267         log << MSG::ERROR << "Could not read branch " << raddr->getBranchname(nb) << endreq;
00268         return sc;
00269       }
00270       nbtot+=nb;
00271     }
00272   }
00273      
00274   else {   // get ROOT object
00275     if (CLID_top) {
00276       IConverter *p=conversionSvc()->converter(CLID_top);
00277       RootEventBaseCnv *cnv=dynamic_cast<RootEventBaseCnv *>(p);
00278       if (!cnv) {
00279         log << MSG::ERROR << "Could not downcast to RootEventBaseCnv "  << endreq;
00280         return StatusCode::FAILURE;
00281       }
00282       m_objRead=cnv->getReadObject();
00283     }
00284   }
00285 
00286   //do concrete transformation in derived converter
00287   sc = TObjectToDataObject(refpObject);
00288   if (sc.isFailure()) {
00289     log << MSG::ERROR << "Could not transform object" << endreq;
00290     return sc;
00291   }
00292 
00293   // verify if we have to register
00294   IRegistry* ent = addr->registry();
00295   if ( ent == 0)   {
00296        sc=m_eds->registerObject(raddr->getPath(),refpObject);
00297        if (sc.isFailure()) {
00298          log << MSG::ERROR << "Could not register object " << raddr->getPath()<<" status "<<sc.getCode()<<endreq;
00299        }
00300        //    }
00301   }
00302 
00303   entryN++;
00304   return StatusCode::SUCCESS;
00305 }

virtual StatusCode RootEventBaseCnv::createRep DataObject *  pObject,
IOpaqueAddress *&  refpAddress
[virtual]
 

Convert the transient object to the requested representation.

StatusCode RootEventBaseCnv::createRep DataObject *  pObject,
IOpaqueAddress *&  refpAddress
[virtual]
 

Convert the transient object to the requested representation.

00078                                                            {
00079   // Purpose and Method: Convert the transient object to ROOT
00080 
00081   MsgStream log(msgSvc(), "RootEventBaseCnv");
00082  
00083   StatusCode sc= StatusCode::SUCCESS;
00084   // get the corresponding address 
00085   RootAddress *rootaddr;
00086   sc=m_cnvSvc->createAddress(obj,addr);
00087 
00088   rootaddr = dynamic_cast<RootAddress *>(addr);
00089 
00090   if (sc.isFailure() || !rootaddr  ) { 
00091     log << MSG::ERROR << "Could not create address for clid " <<obj->clID()<<", objname "<<obj->name()<<endreq;
00092     return StatusCode::FAILURE;
00093   }
00094 
00095   //  do the real conversion in the derived converter
00096   sc = DataObjectToTObject(obj,rootaddr);
00097 
00098   delete addr;
00099   addr = NULL;
00100 
00101   if (sc.isFailure()) {
00102     log << MSG::ERROR << "Could not transform object" << endreq;
00103     return sc;
00104   }
00105 
00106   return StatusCode::SUCCESS;
00107 }

virtual StatusCode RootEventBaseCnv::DataObjectToTObject DataObject *  dat,
RootAddress addr
[pure virtual]
 

Do the concrete conversion from TDS to ROOT.

Implemented in DigiCnv, EmcDigiCnv, LumiDigiCnv, MdcDigiCnv, MucDigiCnv, TofDigiCnv, DstCnv, EmcTrackCnv, ExtTrackCnv, MdcDedxCnv, MdcKalTrackCnv, MdcTrackCnv, MucTrackCnv, TofTrackCnv, EventCnv, EvtHeaderCnv, EvtRecCnv, EvtRecDTagCnv, EvtRecEtaToGGCnv, EvtRecEventCnv, EvtRecPi0Cnv, EvtRecPrimaryVertexCnv, EvtRecTrackCnv, EvtRecVeeVertexCnv, DstHltInfCnv, HltCnv, HltInfCnv, HltRawCnv, EmcMcHitCnv, McCnv, McParticleCnv, MdcMcHitCnv, MucMcHitCnv, TofMcHitCnv, RecBTofCalHitCnv, RecEmcClusterCnv, RecEmcHitCnv, RecEmcShowerCnv, RecETofCalHitCnv, RecEvTimeCnv, RecExtTrackCnv, RecMdcDedxCnv, RecMdcDedxHitCnv, RecMdcHitCnv, RecMdcKalHelixSegCnv, RecMdcKalTrackCnv, RecMdcTrackCnv, RecMucRecHitCnv, RecMucTrackCnv, RecTofTrackCnv, RecTrackCnv, TrigCnv, TrigDataCnv, DigiCnv, EmcDigiCnv, LumiDigiCnv, MdcDigiCnv, MucDigiCnv, TofDigiCnv, DstCnv, EmcTrackCnv, ExtTrackCnv, MdcDedxCnv, MdcKalTrackCnv, MdcTrackCnv, MucTrackCnv, TofTrackCnv, EventCnv, EvtHeaderCnv, EvtRecCnv, EvtRecDTagCnv, EvtRecEtaToGGCnv, EvtRecEventCnv, EvtRecPi0Cnv, EvtRecPrimaryVertexCnv, EvtRecTrackCnv, EvtRecVeeVertexCnv, DstHltInfCnv, HltCnv, HltInfCnv, HltRawCnv, EmcMcHitCnv, McCnv, McParticleCnv, MdcMcHitCnv, MucMcHitCnv, TofMcHitCnv, RecBTofCalHitCnv, RecEmcClusterCnv, RecEmcHitCnv, RecEmcShowerCnv, RecETofCalHitCnv, RecEvTimeCnv, RecExtTrackCnv, RecMdcDedxCnv, RecMdcDedxHitCnv, RecMdcHitCnv, RecMdcKalHelixSegCnv, RecMdcKalTrackCnv, RecMdcTrackCnv, RecMucRecHitCnv, RecMucTrackCnv, RecTofTrackCnv, RecTrackCnv, TrigCnv, and TrigDataCnv.

virtual StatusCode RootEventBaseCnv::DataObjectToTObject DataObject *  dat,
RootAddress addr
[pure virtual]
 

Do the concrete conversion from TDS to ROOT.

Implemented in DigiCnv, EmcDigiCnv, LumiDigiCnv, MdcDigiCnv, MucDigiCnv, TofDigiCnv, DstCnv, EmcTrackCnv, ExtTrackCnv, MdcDedxCnv, MdcKalTrackCnv, MdcTrackCnv, MucTrackCnv, TofTrackCnv, EventCnv, EvtHeaderCnv, EvtRecCnv, EvtRecDTagCnv, EvtRecEtaToGGCnv, EvtRecEventCnv, EvtRecPi0Cnv, EvtRecPrimaryVertexCnv, EvtRecTrackCnv, EvtRecVeeVertexCnv, DstHltInfCnv, HltCnv, HltInfCnv, HltRawCnv, EmcMcHitCnv, McCnv, McParticleCnv, MdcMcHitCnv, MucMcHitCnv, TofMcHitCnv, RecBTofCalHitCnv, RecEmcClusterCnv, RecEmcHitCnv, RecEmcShowerCnv, RecETofCalHitCnv, RecEvTimeCnv, RecExtTrackCnv, RecMdcDedxCnv, RecMdcDedxHitCnv, RecMdcHitCnv, RecMdcKalHelixSegCnv, RecMdcKalTrackCnv, RecMdcTrackCnv, RecMucRecHitCnv, RecMucTrackCnv, RecTofTrackCnv, RecTrackCnv, TrigCnv, TrigDataCnv, DigiCnv, EmcDigiCnv, LumiDigiCnv, MdcDigiCnv, MucDigiCnv, TofDigiCnv, DstCnv, EmcTrackCnv, ExtTrackCnv, MdcDedxCnv, MdcKalTrackCnv, MdcTrackCnv, MucTrackCnv, TofTrackCnv, EventCnv, EvtHeaderCnv, EvtRecCnv, EvtRecDTagCnv, EvtRecEtaToGGCnv, EvtRecEventCnv, EvtRecPi0Cnv, EvtRecPrimaryVertexCnv, EvtRecTrackCnv, EvtRecVeeVertexCnv, DstHltInfCnv, HltCnv, HltInfCnv, HltRawCnv, EmcMcHitCnv, McCnv, McParticleCnv, MdcMcHitCnv, MucMcHitCnv, TofMcHitCnv, RecBTofCalHitCnv, RecEmcClusterCnv, RecEmcHitCnv, RecEmcShowerCnv, RecETofCalHitCnv, RecEvTimeCnv, RecExtTrackCnv, RecMdcDedxCnv, RecMdcDedxHitCnv, RecMdcHitCnv, RecMdcKalHelixSegCnv, RecMdcKalTrackCnv, RecMdcTrackCnv, RecMucRecHitCnv, RecMucTrackCnv, RecTofTrackCnv, RecTrackCnv, TrigCnv, and TrigDataCnv.

void RootEventBaseCnv::declareObject const std::string &  fullPath,
const CLID &  clid,
const std::string &  treename,
const std::string &  branchname
 

Store TDS path to link a particular converter to an object on the TDS.

void RootEventBaseCnv::declareObject const std::string &  fullPath,
const CLID &  clid,
const std::string &  treename,
const std::string &  branchname
 

Store TDS path to link a particular converter to an object on the TDS.

00150                                                                                       {
00151     // Purpose and Method:  Save the path on the TDS, treename, pathname in the m_leaves vector, 
00152     //   corresponding to the DataObject that the converter handles.
00153    m_leaves.push_back(RootCnvSvc::Leaf(path, cl,treename,branchname));
00154 }

virtual StatusCode RootEventBaseCnv::fillObjRefs IOpaqueAddress *  pAddress,
DataObject *  pObject
[virtual]
 

Resolve the references of the converted object.

StatusCode RootEventBaseCnv::fillObjRefs IOpaqueAddress *  pAddress,
DataObject *  pObject
[virtual]
 

Resolve the references of the converted object.

00117                                                  {
00118     // Purpose and Method:  Resolve the references of the converted object.
00119     //     It is expected that derived classes will override this method.
00120     MsgStream log(msgSvc(), "RootEventBaseCnv");
00121     return StatusCode::SUCCESS;
00122 }

virtual StatusCode RootEventBaseCnv::fillRepRefs IOpaqueAddress *  pAddress,
DataObject *  pObject
[virtual]
 

Resolve the references of the converted object.

StatusCode RootEventBaseCnv::fillRepRefs IOpaqueAddress *  pAddress,
DataObject *  pObject
[virtual]
 

Resolve the references of the converted object.

00109                                                  {
00110     // Purpose and Method:  Resolve the references of the converted object.
00111     //     It is expected that derived classes will override this method.
00112     MsgStream log(msgSvc(), "RootEventBaseCnv");
00113     return StatusCode::SUCCESS;
00114 }

virtual StatusCode RootEventBaseCnv::finalize  )  [virtual]
 

StatusCode RootEventBaseCnv::finalize  )  [virtual]
 

00141                                         {
00142     if ( m_cnvSvc )     {
00143         m_cnvSvc->release();
00144         m_cnvSvc=0;
00145     }
00146     return Converter::finalize();
00147 }

TObject* RootEventBaseCnv::getReadObject  )  const [inline]
 

get the object to be read

00124 { return m_objRead;} 

TObject* RootEventBaseCnv::getReadObject  )  const [inline]
 

get the object to be read

00124 { return m_objRead;} 

virtual StatusCode RootEventBaseCnv::initialize  )  [virtual]
 

Reimplemented in DigiCnv, DstCnv, EvtHeaderCnv, EvtRecCnv, HltCnv, McCnv, RecTrackCnv, TrigCnv, DigiCnv, DstCnv, EvtHeaderCnv, EvtRecCnv, HltCnv, McCnv, RecTrackCnv, and TrigCnv.

StatusCode RootEventBaseCnv::initialize  )  [virtual]
 

Reimplemented in DigiCnv, DstCnv, EvtHeaderCnv, EvtRecCnv, HltCnv, McCnv, RecTrackCnv, TrigCnv, DigiCnv, DstCnv, EvtHeaderCnv, EvtRecCnv, HltCnv, McCnv, RecTrackCnv, and TrigCnv.

00125                                           {
00126  
00127   StatusCode status = Converter::initialize();
00128 
00129   if ( status.isSuccess() )   {
00130     IService* isvc = 0;
00131     status = serviceLocator()->service("RootCnvSvc", isvc, false);
00132     if ( !status.isSuccess() )   status = serviceLocator()->service("EventCnvSvc", isvc, true);
00133     if ( status.isSuccess() )   {
00134       status = isvc->queryInterface(IID_IRootCnvSvc, (void**)&m_cnvSvc);
00135     }
00136   }
00137   
00138   return status;
00139 }

template<class Ty1, class Ty2>
destination* Converter< Ty1, Ty2 >::operator const source  )  const [inline, inherited]
 

template<class Ty1, class Ty2>
destination* Converter< Ty1, Ty2 >::operator const source  )  const [inline, inherited]
 

virtual long RootEventBaseCnv::repSvcType  )  const [inline, virtual]
 

00087                                     { 
00088       return ROOT_StorageType; 
00089     } 

virtual long RootEventBaseCnv::repSvcType  )  const [inline, virtual]
 

00087                                     { 
00088       return ROOT_StorageType; 
00089     } 

const unsigned char RootEventBaseCnv::storageType  )  [inline, static]
 

Storage type and class ID.

00083                                                   {
00084       return ROOT_StorageType;
00085     }

const unsigned char RootEventBaseCnv::storageType  )  [inline, static]
 

Storage type and class ID.

00083                                                   {
00084       return ROOT_StorageType;
00085     }

virtual StatusCode RootEventBaseCnv::TObjectToDataObject DataObject *&  dat  )  [pure virtual]
 

Do the concrete conversion from ROOT to TDS.

Implemented in DigiCnv, EmcDigiCnv, LumiDigiCnv, MdcDigiCnv, MucDigiCnv, TofDigiCnv, DstCnv, EmcTrackCnv, ExtTrackCnv, MdcDedxCnv, MdcKalTrackCnv, MdcTrackCnv, MucTrackCnv, TofTrackCnv, EventCnv, EvtHeaderCnv, EvtRecCnv, EvtRecDTagCnv, EvtRecEtaToGGCnv, EvtRecEventCnv, EvtRecPi0Cnv, EvtRecPrimaryVertexCnv, EvtRecTrackCnv, EvtRecVeeVertexCnv, DstHltInfCnv, HltCnv, HltInfCnv, HltRawCnv, EmcMcHitCnv, McCnv, McParticleCnv, MdcMcHitCnv, MucMcHitCnv, TofMcHitCnv, RecBTofCalHitCnv, RecEmcClusterCnv, RecEmcHitCnv, RecEmcShowerCnv, RecETofCalHitCnv, RecEvTimeCnv, RecExtTrackCnv, RecMdcDedxCnv, RecMdcDedxHitCnv, RecMdcHitCnv, RecMdcKalHelixSegCnv, RecMdcKalTrackCnv, RecMdcTrackCnv, RecMucRecHitCnv, RecMucTrackCnv, RecTofTrackCnv, RecTrackCnv, TrigCnv, TrigDataCnv, DigiCnv, EmcDigiCnv, LumiDigiCnv, MdcDigiCnv, MucDigiCnv, TofDigiCnv, DstCnv, EmcTrackCnv, ExtTrackCnv, MdcDedxCnv, MdcKalTrackCnv, MdcTrackCnv, MucTrackCnv, TofTrackCnv, EventCnv, EvtHeaderCnv, EvtRecCnv, EvtRecDTagCnv, EvtRecEtaToGGCnv, EvtRecEventCnv, EvtRecPi0Cnv, EvtRecPrimaryVertexCnv, EvtRecTrackCnv, EvtRecVeeVertexCnv, DstHltInfCnv, HltCnv, HltInfCnv, HltRawCnv, EmcMcHitCnv, McCnv, McParticleCnv, MdcMcHitCnv, MucMcHitCnv, TofMcHitCnv, RecBTofCalHitCnv, RecEmcClusterCnv, RecEmcHitCnv, RecEmcShowerCnv, RecETofCalHitCnv, RecEvTimeCnv, RecExtTrackCnv, RecMdcDedxCnv, RecMdcDedxHitCnv, RecMdcHitCnv, RecMdcKalHelixSegCnv, RecMdcKalTrackCnv, RecMdcTrackCnv, RecMucRecHitCnv, RecMucTrackCnv, RecTofTrackCnv, RecTrackCnv, TrigCnv, and TrigDataCnv.

virtual StatusCode RootEventBaseCnv::TObjectToDataObject DataObject *&  dat  )  [pure virtual]
 

Do the concrete conversion from ROOT to TDS.

Implemented in DigiCnv, EmcDigiCnv, LumiDigiCnv, MdcDigiCnv, MucDigiCnv, TofDigiCnv, DstCnv, EmcTrackCnv, ExtTrackCnv, MdcDedxCnv, MdcKalTrackCnv, MdcTrackCnv, MucTrackCnv, TofTrackCnv, EventCnv, EvtHeaderCnv, EvtRecCnv, EvtRecDTagCnv, EvtRecEtaToGGCnv, EvtRecEventCnv, EvtRecPi0Cnv, EvtRecPrimaryVertexCnv, EvtRecTrackCnv, EvtRecVeeVertexCnv, DstHltInfCnv, HltCnv, HltInfCnv, HltRawCnv, EmcMcHitCnv, McCnv, McParticleCnv, MdcMcHitCnv, MucMcHitCnv, TofMcHitCnv, RecBTofCalHitCnv, RecEmcClusterCnv, RecEmcHitCnv, RecEmcShowerCnv, RecETofCalHitCnv, RecEvTimeCnv, RecExtTrackCnv, RecMdcDedxCnv, RecMdcDedxHitCnv, RecMdcHitCnv, RecMdcKalHelixSegCnv, RecMdcKalTrackCnv, RecMdcTrackCnv, RecMucRecHitCnv, RecMucTrackCnv, RecTofTrackCnv, RecTrackCnv, TrigCnv, TrigDataCnv, DigiCnv, EmcDigiCnv, LumiDigiCnv, MdcDigiCnv, MucDigiCnv, TofDigiCnv, DstCnv, EmcTrackCnv, ExtTrackCnv, MdcDedxCnv, MdcKalTrackCnv, MdcTrackCnv, MucTrackCnv, TofTrackCnv, EventCnv, EvtHeaderCnv, EvtRecCnv, EvtRecDTagCnv, EvtRecEtaToGGCnv, EvtRecEventCnv, EvtRecPi0Cnv, EvtRecPrimaryVertexCnv, EvtRecTrackCnv, EvtRecVeeVertexCnv, DstHltInfCnv, HltCnv, HltInfCnv, HltRawCnv, EmcMcHitCnv, McCnv, McParticleCnv, MdcMcHitCnv, MucMcHitCnv, TofMcHitCnv, RecBTofCalHitCnv, RecEmcClusterCnv, RecEmcHitCnv, RecEmcShowerCnv, RecETofCalHitCnv, RecEvTimeCnv, RecExtTrackCnv, RecMdcDedxCnv, RecMdcDedxHitCnv, RecMdcHitCnv, RecMdcKalHelixSegCnv, RecMdcKalTrackCnv, RecMdcTrackCnv, RecMucRecHitCnv, RecMucTrackCnv, RecTofTrackCnv, RecTrackCnv, TrigCnv, and TrigDataCnv.


Member Data Documentation

CLID RootEventBaseCnv::CLID_top [protected]
 

the CLID of the upper converter if any

std::vector<void *> RootEventBaseCnv::m_adresses [protected]
 

each converter knows the corresponding adresses

std::vector<void *> RootEventBaseCnv::m_adresses [protected]
 

each converter knows the corresponding adresses

int RootEventBaseCnv::m_branchNr [protected]
 

the branchNr of this converter for writing

int RootEventBaseCnv::m_branchNrDst [protected]
 

int RootEventBaseCnv::m_branchNrEvtHeader [protected]
 

int RootEventBaseCnv::m_branchNrEvtRec [protected]
 

int RootEventBaseCnv::m_branchNrMc [protected]
 

int RootEventBaseCnv::m_branchNrRecon [protected]
 

TArrayS* RootEventBaseCnv::m_branchNumbers [protected]
 

array with number of branches for reading

TArrayS* RootEventBaseCnv::m_branchNumbers [protected]
 

array with number of branches for reading

RootCnvSvc* RootEventBaseCnv::m_cnvSvc [protected]
 

RootCnvSvc* RootEventBaseCnv::m_cnvSvc [protected]
 

std::string RootEventBaseCnv::m_currentFileName [protected]
 

IDataProviderSvc* RootEventBaseCnv::m_eds [protected]
 

pointer to eventdataservice

IDataProviderSvc* RootEventBaseCnv::m_eds [protected]
 

pointer to eventdataservice

RootEvtSelector* RootEventBaseCnv::m_evtsel [protected]
 

RootEvtSelector* RootEventBaseCnv::m_evtsel [protected]
 

std::vector<RootCnvSvc::Leaf> RootEventBaseCnv::m_leaves [protected]
 

std::vector<RootCnvSvc::Leaf> RootEventBaseCnv::m_leaves [protected]
 

TObject* RootEventBaseCnv::m_objRead [protected]
 

the object that was read

TObject* RootEventBaseCnv::m_objRead [protected]
 

the object that was read

std::string RootEventBaseCnv::m_rootBranchname [protected]
 

root branchname (may be concatenated of severals)

RootInterface* RootEventBaseCnv::m_rootInterface [protected]
 

pointer to the RootInterface

RootInterface* RootEventBaseCnv::m_rootInterface [protected]
 

pointer to the RootInterface

std::string RootEventBaseCnv::m_rootTreename [protected]
 

each converter knows it's treename


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 18:48:33 2011 for BOSS6.5.5 by  doxygen 1.3.9.1