RootCnvSvc Class Reference

Root Event Conversion Service which coordinates all of our converters. More...

#include <RootCnvSvc.h>

List of all members.

Public Member Functions

RootInterfacegetRootInterface ()
virtual StatusCode initialize ()
virtual StatusCode finalize ()
virtual StatusCode updateServiceState (IOpaqueAddress *pAddress)
 Update state of the service.
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvInterface)
 Override inherited queryInterface due to enhanced interface.
virtual StatusCode declareObject (const Leaf &leaf)
 Associates a path on TDS with a particular converter.
virtual StatusCode commitOutput (const std::string &output, bool do_commit)
 Commit pending output (fill the TTrees).
virtual StatusCode createAddress (long int svc_type, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress)
 create address containing ROOT treename, branchname, entry number
virtual StatusCode createAddress (DataObject *obj, IOpaqueAddress *&refpAddress)
virtual StatusCode createAddress (std::string path, IOpaqueAddress *&refpAddress)
DigiCnvgetDigiCnv ()
DstCnvgetDstCnv ()
McCnvgetMcCnv ()
TrigCnvgetTrigCnv ()
HltCnvgetHltCnv ()
EvtRecCnvgetEvtRecCnv ()
void setDigiCnv (DigiCnv *reccnv)
void setDstCnv (DstCnv *dstcnv)
void setMcCnv (McCnv *mccnv)
void setTrigCnv (TrigCnv *trigcnv)
void setHltCnv (HltCnv *hltcnv)
void setEvtRecCnv (EvtRecCnv *evtreccnv)
void setRecTrackCnv (RecTrackCnv *rectrackcnv)
void setEvtHeaderCnv (EvtHeaderCnv *evtheadercnv)
void setEvtNavigatorCnv (EvtNavigatorCnv *evtnavigatorcnv)
void setEventCnv (EventCnv *eventCnv)
RecTrackCnvgetRecTrackCnv ()
EvtHeaderCnvgetEvtHeaderCnv ()
EvtNavigatorCnvgetEvtNavigatorCnv ()
EventCnvgetEventCnv ()

Protected Member Functions

 RootCnvSvc (const std::string &name, ISvcLocator *svc)
virtual ~RootCnvSvc ()

Private Types

typedef std::map< std::string,
Leaf * > 
LeafMap
 Map with leaf entries.

Private Member Functions

StatusCode addConverters ()
 Add converters to the service.
StatusCode initFiles ()

Private Attributes

bool m_selectFromTag
std::vector< std::stringm_tagInputFile
RootInterfacem_rootInterface
 access to the RootInterface
RootEvtSelectorm_evtsel
 access to the EventSelector
LeafMap m_leaves
const int m_minSplit
std::vector< std::stringm_difileName
 digi input filename
std::string m_dofileName
 digi output filename
int m_dsplitMode
 digi split mode
int m_dbufSize
 buffer size for digi file
int m_dcompressionLevel
 compression level for digix file
std::string m_dtreeName
 digi treename
DigiCnvm_dCnv
 pointers to top converters
DstCnvm_dstCnv
McCnvm_mcCnv
TrigCnvm_trigCnv
HltCnvm_hltCnv
EvtRecCnvm_evtRecCnv
RecTrackCnvm_rectrackCnv
EvtHeaderCnvm_evtheaderCnv
EvtNavigatorCnvm_evtnavigatorCnv
EventCnvm_eventCnv
commonData m_common
 relational maps to be cleared

Friends

class SvcFactory< RootCnvSvc >

Classes

class  Leaf
 object regrouping CLID and pathname with treename/branchname More...


Detailed Description

Root Event Conversion Service which coordinates all of our converters.

When a component requests an item not yet available on the TDS, the RootcnvSvc is called to find the appropriiate converter to gain access to the data and put it on the TDS. Based on SICb service written by Markus Frank. If an item is mentioned in the jobOptions as one to be written out, it will be converted from TDS to ROOT by the appropriate converter

Based on the RootCnvSvc of GLast.

Definition at line 40 of file RootCnvSvc.h.


Member Typedef Documentation

typedef std::map<std::string, Leaf*> RootCnvSvc::LeafMap [private]

Map with leaf entries.

Definition at line 78 of file RootCnvSvc.h.


Constructor & Destructor Documentation

RootCnvSvc::RootCnvSvc ( const std::string name,
ISvcLocator *  svc 
) [protected]

Definition at line 100 of file RootCnvSvc.cxx.

References Bes_Common::DEBUG, calibUtil::ERROR, IID_IRootEvtSelector(), RootInterface::Instance(), m_dbufSize, m_dcompressionLevel, m_difileName, m_dofileName, m_dsplitMode, m_dtreeName, m_evtsel, m_minSplit, m_rootInterface, m_selectFromTag, m_tagInputFile, msgSvc(), ROOT_StorageType, and Bes_Common::WARNING.

00101   : ConversionSvc(name, svc, ROOT_StorageType), m_minSplit(1), m_evtsel(0)              
00102 {
00103   StatusCode sc;
00104   MsgStream log(msgSvc(), "RootCnvSvc");
00105   log << MSG::DEBUG << "RootCnvSvc::constructor" << endreq;
00106   
00107   IService* isvc = 0;
00108   sc = serviceLocator()->getService ("RootEvtSelector", isvc, false);
00109   if (!sc.isSuccess())  sc = serviceLocator()->getService ("EventSelector", isvc, false);
00110   if (sc.isSuccess()) {
00111     sc = isvc->queryInterface(IID_IRootEvtSelector, (void**)&m_evtsel);
00112   }
00113   if(sc.isFailure()) {
00114     log << MSG::WARNING << "Unable to start event selector service within RootCnvSvc" << endreq;
00115   }
00116   
00117   m_rootInterface= RootInterface::Instance(log);
00118   if (!m_rootInterface)      log << MSG::ERROR << "Unable to start Root service within RootCnvSvc" << endreq;
00119  
00120 
00121   
00122     //Digi
00123   declareProperty("digiTreeName", m_dtreeName="Event"); //"Rec"->"Event" 
00124   
00125   declareProperty("digiRootInputFile",m_difileName);
00126   //if (m_difileName.size()==0){
00127   //  m_difileName.push_back("digi.root");
00128   //}
00129   declareProperty("digiRootOutputFile",m_dofileName = "");
00130 
00131   // Split mode for writing the TTree [0,99] 
00132   declareProperty("digiSplitMode", m_dsplitMode=m_minSplit);
00133      // Buffer size for writing ROOT data
00134   declareProperty("digiBufferSize", m_dbufSize=3200000);
00135     // ROOT default compression
00136   declareProperty("digiCompressionLevel", m_dcompressionLevel=1);
00137   declareProperty("selectFromTag", m_selectFromTag=0);
00138   declareProperty("tagInputFile", m_tagInputFile);
00139   //declareProperty("tagFileFormat", m_tagFileFormat=1);
00140   
00141 }

virtual RootCnvSvc::~RootCnvSvc (  )  [inline, protected, virtual]

Definition at line 179 of file RootCnvSvc.h.

00179 { };


Member Function Documentation

StatusCode RootCnvSvc::addConverters (  )  [private]

Add converters to the service.

Definition at line 513 of file RootCnvSvc.cxx.

References EvtRecDTagCnv::classID(), EvtRecEtaToGGCnv::classID(), EvtRecPi0Cnv::classID(), EvtRecVeeVertexCnv::classID(), EvtRecPrimaryVertexCnv::classID(), EvtRecTrackCnv::classID(), EvtRecEventCnv::classID(), EvtRecCnv::classID(), RecZddChannelCnv::classID(), RecExtTrackCnv::classID(), RecMucRecHitCnv::classID(), RecMucTrackCnv::classID(), RecEmcShowerCnv::classID(), RecEmcClusterCnv::classID(), RecEmcHitCnv::classID(), RecETofCalHitCnv::classID(), RecBTofCalHitCnv::classID(), RecTofTrackCnv::classID(), RecEvTimeCnv::classID(), RecMdcDedxHitCnv::classID(), RecMdcDedxCnv::classID(), RecMdcKalHelixSegCnv::classID(), RecMdcKalTrackCnv::classID(), RecMdcHitCnv::classID(), RecMdcTrackCnv::classID(), RecTrackCnv::classID(), DstHltInfCnv::classID(), HltInfCnv::classID(), HltRawCnv::classID(), HltCnv::classID(), TrigDataCnv::classID(), TrigCnv::classID(), LumiDigiCnv::classID(), TofTrackCnv::classID(), TofMcHitCnv::classID(), TofDigiCnv::classID(), DigiCnv::classID(), MucTrackCnv::classID(), MucMcHitCnv::classID(), MucDigiCnv::classID(), MdcTrackCnv::classID(), MdcMcHitCnv::classID(), MdcKalTrackCnv::classID(), MdcDigiCnv::classID(), McParticleCnv::classID(), McCnv::classID(), ExtTrackCnv::classID(), EvtNavigatorCnv::classID(), EvtHeaderCnv::classID(), EventCnv::classID(), EmcTrackCnv::classID(), EmcMcHitCnv::classID(), EmcDigiCnv::classID(), DstCnv::classID(), MdcDedxCnv::classID(), declareObject(), EventModel::Dst::DstEmcShowerCol, EventModel::Dst::DstExtTrackCol, EventModel::Hlt::DstHltInf, EventModel::Dst::DstMdcDedxCol, EventModel::Dst::DstMdcKalTrackCol, EventModel::Dst::DstMdcTrackCol, EventModel::Dst::DstMucTrackCol, EventModel::Dst::DstTofTrackCol, EventModel::Digi::EmcDigiCol, EventModel::MC::EmcMcHitCol, EventModel::EvtRec::Event, EventModel::Recon::Event, EventModel::Hlt::Event, EventModel::Trig::Event, EventModel::Digi::Event, EventModel::MC::Event, EventModel::Dst::Event, EventModel::EventHeader, EventModel::EvtRec::EvtRecDTagCol, EventModel::EvtRec::EvtRecEtaToGGCol, EventModel::EvtRec::EvtRecEvent, EventModel::EvtRec::EvtRecPi0Col, EventModel::EvtRec::EvtRecPrimaryVertex, EventModel::EvtRec::EvtRecTrackCol, EventModel::EvtRec::EvtRecVeeVertexCol, EventModel::Hlt::HltInf, EventModel::Hlt::HltRawCol, EventModel::Digi::LumiDigiCol, EventModel::MC::McParticleCol, EventModel::Digi::MdcDigiCol, EventModel::MC::MdcMcHitCol, msgSvc(), EventModel::Digi::MucDigiCol, EventModel::MC::MucMcHitCol, EventModel::Recon::MucRecHitCol, EventModel::Navigator, EventModel::Recon::RecBTofCalHitCol, EventModel::Recon::RecEmcClusterCol, EventModel::Recon::RecEmcHitCol, EventModel::Recon::RecEmcShowerCol, EventModel::Recon::RecEsTimeCol, EventModel::Recon::RecETofCalHitCol, EventModel::Recon::RecExtTrackCol, EventModel::Recon::RecMdcDedxCol, EventModel::Recon::RecMdcDedxHitCol, EventModel::Recon::RecMdcHitCol, EventModel::Recon::RecMdcKalHelixSegCol, EventModel::Recon::RecMdcKalTrackCol, EventModel::Recon::RecMdcTrackCol, EventModel::Recon::RecMucTrackCol, EventModel::Recon::RecTofTrackCol, EventModel::Recon::RecZddChannelCol, EventModel::Digi::TofDigiCol, EventModel::MC::TofMcHitCol, and EventModel::Trig::TrigData.

Referenced by initialize().

00513                                         {
00514     MsgStream log(msgSvc(), name());
00515     declareObject(Leaf(EventModel::Dst::DstMdcDedxCol, MdcDedxCnv::classID(), "Event", "m_mdcDedxCol"));
00516     declareObject(Leaf(EventModel::Dst::Event, DstCnv::classID(), "Event", ""));
00517     declareObject(Leaf(EventModel::Digi::EmcDigiCol, EmcDigiCnv::classID(), "Event", "m_emcDigiCol"));
00518     declareObject(Leaf(EventModel::MC::EmcMcHitCol, EmcMcHitCnv::classID(), "Event", "m_emcMcHitCol"));
00519     declareObject(Leaf(EventModel::Dst::DstEmcShowerCol, EmcTrackCnv::classID(), "Event", "m_emcTrackCol"));
00520 
00521     declareObject(Leaf("/Event", EventCnv::classID(), "", ""));
00522     declareObject(Leaf(EventModel::EventHeader, EvtHeaderCnv::classID(), "Event", "m_runId:m_eventId:m_time:m_eventTag:m_flag1:m_flag2"));
00523     declareObject(Leaf(EventModel::Navigator, EvtNavigatorCnv::classID(), "Event", "m_mcMdcMcHits:m_mcMdcTracks:m_mcEmcMcHits:m_mcEmcRecShowers"));
00524     declareObject(Leaf(EventModel::Dst::DstExtTrackCol, ExtTrackCnv::classID(), "Event", "m_extTrackCol"));
00525     declareObject(Leaf(EventModel::MC::Event, McCnv::classID(), "Event", ""));
00526     declareObject(Leaf(EventModel::MC::McParticleCol, McParticleCnv::classID(), "Event", "m_mcParticleCol"));
00527     declareObject(Leaf(EventModel::Digi::MdcDigiCol, MdcDigiCnv::classID(), "Event", "m_mdcDigiCol"));
00528     declareObject(Leaf(EventModel::Dst::DstMdcKalTrackCol, MdcKalTrackCnv::classID(), "Event", "m_mdcKalTrackCol"));
00529     declareObject(Leaf(EventModel::MC::MdcMcHitCol, MdcMcHitCnv::classID(), "Event", "m_mdcMcHitCol"));
00530     declareObject(Leaf(EventModel::Dst::DstMdcTrackCol, MdcTrackCnv::classID(), "Event", "m_mdcTrackCol"));
00531     declareObject(Leaf(EventModel::Digi::MucDigiCol, MucDigiCnv::classID(), "Event", "m_mucDigiCol"));
00532     declareObject(Leaf(EventModel::MC::MucMcHitCol, MucMcHitCnv::classID(), "Event", "m_mucMcHitCol"));
00533     declareObject(Leaf(EventModel::Dst::DstMucTrackCol, MucTrackCnv::classID(), "Event", "m_mucTrackCol"));
00534     declareObject(Leaf(EventModel::Digi::Event, DigiCnv::classID(), "Event", "m_fromMc"));
00535     declareObject(Leaf(EventModel::Digi::TofDigiCol, TofDigiCnv::classID(), "Event", "m_tofDigiCol"));
00536     declareObject(Leaf(EventModel::MC::TofMcHitCol, TofMcHitCnv::classID(), "Event", "m_tofMcHitCol"));
00537     declareObject(Leaf(EventModel::Dst::DstTofTrackCol, TofTrackCnv::classID(), "Event", "m_tofTrackCol"));
00538     //declareObject(Leaf("/Event/Digi/LumiDigiCol", LumiDigiCnv::classID(), "Event", "m_lumiDigiCol"));
00539     declareObject(Leaf(EventModel::Digi::LumiDigiCol, LumiDigiCnv::classID(), "Event", "m_lumiDigiCol"));
00540 
00541     declareObject(Leaf(EventModel::Trig::Event, TrigCnv::classID(), "Event", ""));
00542     declareObject(Leaf(EventModel::Trig::TrigData, TrigDataCnv::classID(), "Event", "m_trigData"));
00543 
00544     declareObject(Leaf(EventModel::Hlt::Event, HltCnv::classID(), "Event", ""));
00545     declareObject(Leaf(EventModel::Hlt::HltRawCol, HltRawCnv::classID(), "Event", "m_hltRawCol"));
00546     declareObject(Leaf(EventModel::Hlt::HltInf, HltInfCnv::classID(), "Event", "m_hltInf"));
00547     declareObject(Leaf(EventModel::Hlt::DstHltInf, DstHltInfCnv::classID(), "Event", "m_dstHltInf"));
00548 
00549     declareObject(Leaf(EventModel::Recon::Event, RecTrackCnv::classID(), "Event", ""));
00550 
00551     declareObject(Leaf(EventModel::Recon::RecMdcTrackCol, RecMdcTrackCnv::classID(), "Event", "m_recMdcTrackCol"));
00552     declareObject(Leaf(EventModel::Recon::RecMdcHitCol, RecMdcHitCnv::classID(), "Event", "m_recMdcHitCol"));
00553     declareObject(Leaf(EventModel::Recon::RecMdcKalTrackCol, RecMdcKalTrackCnv::classID(),"Event", "m_recMdcKalTrackCol"));
00554     declareObject(Leaf(EventModel::Recon::RecMdcKalHelixSegCol, RecMdcKalHelixSegCnv::classID(),"Event", "m_recMdcKalHelixSegCol"));
00555     declareObject(Leaf(EventModel::Recon::RecMdcDedxCol, RecMdcDedxCnv::classID(),"Event", "m_recMdcDedxCol"));
00556     declareObject(Leaf(EventModel::Recon::RecMdcDedxHitCol, RecMdcDedxHitCnv::classID(),"Event", "m_recMdcDedxHitCol"));
00557 
00558     declareObject(Leaf(EventModel::Recon::RecEsTimeCol, RecEvTimeCnv::classID(),"Event", "m_recEvTimeCol"));
00559     declareObject(Leaf(EventModel::Recon::RecTofTrackCol, RecTofTrackCnv::classID(), "Event", "m_recTofTrackCol"));
00560     declareObject(Leaf(EventModel::Recon::RecBTofCalHitCol, RecBTofCalHitCnv::classID(), "Event", "m_recBTofCalHitCol"));
00561     declareObject(Leaf(EventModel::Recon::RecETofCalHitCol, RecETofCalHitCnv::classID(), "Event", "m_recETofCalHitCol"));
00562     declareObject(Leaf(EventModel::Recon::RecEmcHitCol, RecEmcHitCnv::classID(), "Event", "m_recEmcHitCol"));
00563     declareObject(Leaf(EventModel::Recon::RecEmcClusterCol, RecEmcClusterCnv::classID(), "Event", "m_recEmcClusterCol"));
00564     declareObject(Leaf(EventModel::Recon::RecEmcShowerCol, RecEmcShowerCnv::classID(), "Event", "m_recEmcShowerCol"));
00565     declareObject(Leaf(EventModel::Recon::RecMucTrackCol, RecMucTrackCnv::classID(), "Event", "m_recMucTrackCol"));
00566     declareObject(Leaf(EventModel::Recon::MucRecHitCol, RecMucRecHitCnv::classID(), "Event", "m_recMucHitCol"));
00567     declareObject(Leaf(EventModel::Recon::RecExtTrackCol, RecExtTrackCnv::classID(),"Event", "m_recExtTrackCol"));
00568     declareObject(Leaf(EventModel::Recon::RecZddChannelCol, RecZddChannelCnv::classID(), "Event", "m_recZddChannelCol"));   
00569     declareObject(Leaf(EventModel::EvtRec::Event, EvtRecCnv::classID(), "Event", ""));
00570     declareObject(Leaf(EventModel::EvtRec::EvtRecEvent, EvtRecEventCnv::classID(), "Event", "m_evtRecEvent"));
00571     declareObject(Leaf(EventModel::EvtRec::EvtRecTrackCol, EvtRecTrackCnv::classID(), "Event", "m_evtRecTrackCol"));
00572     declareObject(Leaf(EventModel::EvtRec::EvtRecPrimaryVertex, EvtRecPrimaryVertexCnv::classID(), "Event", "m_evtRecPrimaryVertex"));
00573     declareObject(Leaf(EventModel::EvtRec::EvtRecVeeVertexCol, EvtRecVeeVertexCnv::classID(), "Event", "m_evtRecVeeVertexCol"));   
00574     declareObject(Leaf(EventModel::EvtRec::EvtRecPi0Col, EvtRecPi0Cnv::classID(), "Event", "m_evtRecPi0Col"));   
00575     declareObject(Leaf(EventModel::EvtRec::EvtRecEtaToGGCol, EvtRecEtaToGGCnv::classID(), "Event", "m_evtRecEtaToGGCol"));   
00576     declareObject(Leaf(EventModel::EvtRec::EvtRecDTagCol, EvtRecDTagCnv::classID(), "Event", "m_evtRecDTagCol"));   
00577 
00578     return StatusCode::SUCCESS;
00579 
00580   }

StatusCode RootCnvSvc::commitOutput ( const std::string output,
bool  do_commit 
) [virtual]

Commit pending output (fill the TTrees).

Definition at line 397 of file RootCnvSvc.cxx.

References commonData::clear(), THltEvent::Clear(), TTrigEvent::Clear(), TEvtRecObject::Clear(), TRecTrackEvent::Clear(), TMcEvent::Clear(), TDstEvent::Clear(), TDigiEvent::Clear(), TEvtNavigator::Clear(), TEvtHeader::Clear(), calibUtil::ERROR, RootInterface::fillTrees(), HltCnv::getWriteObject(), TrigCnv::getWriteObject(), EvtRecCnv::getWriteObject(), RecTrackCnv::getWriteObject(), McCnv::getWriteObject(), DstCnv::getWriteObject(), DigiCnv::getWriteObject(), EvtNavigatorCnv::getWriteObject(), EvtHeaderCnv::getWriteObject(), Bes_Common::INFO, m_common, m_dCnv, m_dstCnv, m_evtheaderCnv, m_evtnavigatorCnv, m_evtRecCnv, m_hltCnv, m_mcCnv, m_rectrackCnv, m_rootInterface, m_trigCnv, and msgSvc().

00398   {
00399 
00400 
00401 
00402     MsgStream log( msgSvc(), name() );
00403     log << MSG::INFO << "RootCnvSvc::commitOutput starts." << endreq;
00404 
00405     StatusCode sc=m_rootInterface->fillTrees();
00406     if (sc.isFailure()) 
00407       log << MSG::ERROR << "No Root tree was filled" << endreq;
00408 
00409     // objects must be cleared after fill
00410     else{
00411       TObject*   oEvtHeader = m_evtheaderCnv->getWriteObject();
00412       if (oEvtHeader) oEvtHeader->Clear();
00413       TObject*   oEvtNavigator = m_evtnavigatorCnv->getWriteObject();
00414       if (oEvtNavigator) oEvtNavigator->Clear();
00415       TObject*   o=m_dCnv->getWriteObject();
00416       if (o)    o->Clear();
00417       TObject*   oDst=m_dstCnv->getWriteObject();
00418       if (oDst)    oDst->Clear(); 
00419       TObject*   oMc=m_mcCnv->getWriteObject();
00420       if (oMc)    oMc->Clear();
00421       TObject*   oRecTrack=m_rectrackCnv->getWriteObject();
00422       if (oRecTrack) oRecTrack->Clear();  
00423       TObject*   oEvtRecEvent = m_evtRecCnv->getWriteObject();
00424       if (oEvtRecEvent) oEvtRecEvent->Clear();
00425       TObject*   oTrig = m_trigCnv->getWriteObject();
00426       if(oTrig) oTrig->Clear();
00427       TObject*   oHlt = m_hltCnv->getWriteObject();
00428       if(oHlt) oHlt->Clear();
00429     }
00430     m_common.clear();
00431 
00432     return sc;
00433   }

StatusCode RootCnvSvc::createAddress ( std::string  path,
IOpaqueAddress *&  refpAddress 
) [virtual]

Definition at line 478 of file RootCnvSvc.cxx.

References RootEvtSelector::getRecId(), if(), m_evtsel, m_leaves, msgSvc(), ROOT_StorageType, and deljobs::string.

00478                                                                                  {
00479 
00480     //    create address for this object
00481     MsgStream log(msgSvc(), name());
00482 
00483     StatusCode status;
00484     LeafMap::iterator itm = m_leaves.find(path);
00485     SmartIF<IDataManagerSvc> iaddrReg(dataProvider());
00486     if ( itm != m_leaves.end() )    {
00487       Leaf* leaf = (*itm).second;
00488       if ( 0 != leaf )    {
00489         std::string spars[3] ;
00490         spars[0]=path;
00491         spars[1]=leaf->treename;
00492         spars[2]=leaf->branchname;
00493 
00494         unsigned long ipars[2] = {0,0};
00495         if (m_evtsel) ipars[0]=m_evtsel->getRecId();  
00496         status=addressCreator()->createAddress(ROOT_StorageType,leaf->clid,spars,ipars,newAddr);
00497         if ( status.isSuccess() )   {
00498           status = iaddrReg->registerAddress((IRegistry*)0,path, newAddr);
00499           if ( !status.isSuccess() )    {
00500             newAddr->release();
00501           }
00502         }
00503         return StatusCode::SUCCESS;
00504       }
00505     }
00506 
00507 
00508     return StatusCode::FAILURE;
00509   }

StatusCode RootCnvSvc::createAddress ( DataObject *  obj,
IOpaqueAddress *&  refpAddress 
) [virtual]

Definition at line 435 of file RootCnvSvc.cxx.

References Bes_Common::DEBUG, RootEvtSelector::getRecId(), if(), m_evtsel, m_leaves, msgSvc(), ROOT_StorageType, and deljobs::string.

00435                                                                                   {
00436 
00437     //    create address for this object
00438     MsgStream log(msgSvc(), name());
00439 
00440 
00441     log << MSG::DEBUG << "RootCnvSvc::createAddress"<<endreq;
00442 
00443     StatusCode status = INVALID_ADDRESS;
00444     IRegistry* ent = obj->registry();
00445 
00446     if ( 0 != ent )   {
00447       SmartIF<IDataManagerSvc> iaddrReg(dataProvider());
00448       std::string path = ent->identifier();
00449       LeafMap::iterator itm = m_leaves.find(path);
00450 
00451 
00452       if ( itm != m_leaves.end() )    {
00453         Leaf* leaf = (*itm).second;
00454         if ( 0 != leaf )    {
00455           std::string spars[3] ;
00456           spars[0]=path;
00457           spars[1]=leaf->treename;
00458           spars[2]=leaf->branchname;
00459 
00460 
00461           unsigned long ipars[2] ={0,0};  
00462           if (m_evtsel)  ipars[0]=m_evtsel->getRecId();
00463 
00464           status=addressCreator()->createAddress(ROOT_StorageType,leaf->clid,spars,ipars,newAddr);
00465           if ( status.isSuccess() )   {
00466             status = iaddrReg->registerAddress((IRegistry*)0,path, newAddr);
00467             if ( !status.isSuccess() )    {
00468               newAddr->release();
00469             }
00470           }
00471           return StatusCode::SUCCESS;
00472         }
00473       }
00474     }
00475     return status;
00476   }

StatusCode RootCnvSvc::createAddress ( long int  svc_type,
const CLID &  clid,
const std::string par,
const unsigned long *  ip,
IOpaqueAddress *&  refpAddress 
) [virtual]

create address containing ROOT treename, branchname, entry number

Definition at line 372 of file RootCnvSvc.cxx.

References calibUtil::ERROR, msgSvc(), ROOT_StorageType, and deljobs::string.

Referenced by RootEventBaseCnv::createRep(), and updateServiceState().

00377   {
00378     MsgStream log( msgSvc(), name() );
00379 
00380     if (svc_type != repSvcType() ) {
00381       log << MSG::ERROR << "RootCnvSvc::bad storage type" << svc_type << endreq;
00382       return StatusCode::FAILURE;
00383     }
00384 
00385     std::string path = spars[0];
00386     std::string treename = spars[1];
00387     std::string branchname = spars[2];
00388     int entry=ipars[0];
00389     if (path.size()==0) path="/Event";  
00390     refpAddress = new RootAddress(ROOT_StorageType,
00391         clid,
00392         path,treename,branchname,entry);
00393     return StatusCode::SUCCESS;
00394   }

StatusCode RootCnvSvc::declareObject ( const Leaf leaf  )  [virtual]

Associates a path on TDS with a particular converter.

Definition at line 297 of file RootCnvSvc.cxx.

References RootCnvSvc::Leaf::clid, Bes_Common::DEBUG, m_leaves, msgSvc(), RootCnvSvc::Leaf::path, and dchain::value_type().

Referenced by addConverters().

00297                                                        {
00298   // Purpose and Method:  Callback from each of the individual converters that allows
00299   //  association of TDS path and converter.
00300   MsgStream log(msgSvc(), name());
00301   log << MSG::DEBUG << "RootCnvSvc::declareObject " << leaf.path << " classid: " << leaf.clid << endreq;
00302   Leaf* ll = new Leaf(leaf);
00303   std::pair<LeafMap::iterator, bool> p = m_leaves.insert(LeafMap::value_type( leaf.path, ll) );
00304   if( p.second )    {
00305     return StatusCode::SUCCESS;
00306   }
00307   delete ll;
00308   return StatusCode::FAILURE;
00309 }

StatusCode RootCnvSvc::finalize (  )  [virtual]

Definition at line 198 of file RootCnvSvc.cxx.

References Bes_Common::DEBUG, RootInterface::finalize(), m_leaves, m_rootInterface, and msgSvc().

00198                                     {
00199   MsgStream log(msgSvc(), name());
00200   log << MSG::DEBUG << "RootCnvSvc::finalize" << endreq;
00201 
00202   ConversionSvc::finalize();
00203   // log << MSG::INFO<<"this is the end of RootCnvsvc finalize"<<endreq;
00204   for (LeafMap::iterator k = m_leaves.begin(); k != m_leaves.end(); k++ )   {
00205     delete (*k).second;
00206   }
00207   m_leaves.erase(m_leaves.begin(), m_leaves.end());
00208  
00209   return m_rootInterface->finalize();
00210 }

DigiCnv* RootCnvSvc::getDigiCnv (  )  [inline]

Definition at line 151 of file RootCnvSvc.h.

References m_dCnv.

Referenced by TofDigiCnv::DataObjectToTObject(), MucDigiCnv::DataObjectToTObject(), MdcDigiCnv::DataObjectToTObject(), LumiDigiCnv::DataObjectToTObject(), EmcDigiCnv::DataObjectToTObject(), and BesVisAlg::producer().

00151 {return m_dCnv;}

DstCnv* RootCnvSvc::getDstCnv (  )  [inline]

Definition at line 152 of file RootCnvSvc.h.

References m_dstCnv.

Referenced by TofTrackCnv::DataObjectToTObject(), MucTrackCnv::DataObjectToTObject(), MdcTrackCnv::DataObjectToTObject(), MdcKalTrackCnv::DataObjectToTObject(), MdcDedxCnv::DataObjectToTObject(), ExtTrackCnv::DataObjectToTObject(), and EmcTrackCnv::DataObjectToTObject().

00152 {return m_dstCnv;}

EventCnv* RootCnvSvc::getEventCnv (  )  [inline]

Definition at line 173 of file RootCnvSvc.h.

References m_eventCnv.

00173 {return m_eventCnv;}

EvtHeaderCnv* RootCnvSvc::getEvtHeaderCnv (  )  [inline]

Definition at line 171 of file RootCnvSvc.h.

References m_evtheaderCnv.

Referenced by BesVisAlg::producer().

00171 {return m_evtheaderCnv;}

EvtNavigatorCnv* RootCnvSvc::getEvtNavigatorCnv (  )  [inline]

Definition at line 172 of file RootCnvSvc.h.

References m_evtnavigatorCnv.

00172 {return m_evtnavigatorCnv;}

EvtRecCnv* RootCnvSvc::getEvtRecCnv (  )  [inline]

Definition at line 156 of file RootCnvSvc.h.

References m_evtRecCnv.

Referenced by EvtRecVeeVertexCnv::DataObjectToTObject(), EvtRecTrackCnv::DataObjectToTObject(), EvtRecPrimaryVertexCnv::DataObjectToTObject(), EvtRecPi0Cnv::DataObjectToTObject(), EvtRecEventCnv::DataObjectToTObject(), EvtRecEtaToGGCnv::DataObjectToTObject(), and EvtRecDTagCnv::DataObjectToTObject().

00156 { return m_evtRecCnv; } //zoujh

HltCnv* RootCnvSvc::getHltCnv (  )  [inline]

Definition at line 155 of file RootCnvSvc.h.

References m_hltCnv.

Referenced by HltRawCnv::DataObjectToTObject(), HltInfCnv::DataObjectToTObject(), and DstHltInfCnv::DataObjectToTObject().

00155 { return m_hltCnv; } //fucd

McCnv* RootCnvSvc::getMcCnv (  )  [inline]

Definition at line 153 of file RootCnvSvc.h.

References m_mcCnv.

Referenced by TofMcHitCnv::DataObjectToTObject(), MucMcHitCnv::DataObjectToTObject(), MdcMcHitCnv::DataObjectToTObject(), McParticleCnv::DataObjectToTObject(), and EmcMcHitCnv::DataObjectToTObject().

00153 {return m_mcCnv;}

RecTrackCnv* RootCnvSvc::getRecTrackCnv (  )  [inline]

Definition at line 170 of file RootCnvSvc.h.

References m_rectrackCnv.

Referenced by RecZddChannelCnv::DataObjectToTObject(), RecTofTrackCnv::DataObjectToTObject(), RecMucTrackCnv::DataObjectToTObject(), RecMdcTrackCnv::DataObjectToTObject(), RecMdcKalTrackCnv::DataObjectToTObject(), RecMdcKalHelixSegCnv::DataObjectToTObject(), RecMdcHitCnv::DataObjectToTObject(), RecMdcDedxHitCnv::DataObjectToTObject(), RecMdcDedxCnv::DataObjectToTObject(), RecExtTrackCnv::DataObjectToTObject(), RecEvTimeCnv::DataObjectToTObject(), RecEmcShowerCnv::DataObjectToTObject(), RecEmcHitCnv::DataObjectToTObject(), RecEmcClusterCnv::DataObjectToTObject(), and BesVisAlg::producer().

00170 {return m_rectrackCnv;}   //*******liangyt

RootInterface* RootCnvSvc::getRootInterface (  )  [inline]

Definition at line 124 of file RootCnvSvc.h.

References m_rootInterface.

00124 {return m_rootInterface;}

TrigCnv* RootCnvSvc::getTrigCnv (  )  [inline]

Definition at line 154 of file RootCnvSvc.h.

References m_trigCnv.

Referenced by TrigDataCnv::DataObjectToTObject(), and BesVisAlg::producer().

00154 { return m_trigCnv; } //caogf

StatusCode RootCnvSvc::initFiles (  )  [private]

Definition at line 212 of file RootCnvSvc.cxx.

References RootInterface::addInput(), RootInterface::addOutput(), Bes_Common::DEBUG, genRecEmupikp::i, Bes_Common::INFO, m_dbufSize, m_dcompressionLevel, m_difileName, m_dofileName, m_dsplitMode, m_dtreeName, m_minSplit, m_rootInterface, msgSvc(), boss::pos, s, deljobs::string, and Bes_Common::WARNING.

Referenced by initialize().

00212                                   {
00213     MsgStream log(msgSvc(), name());
00214     log << MSG::DEBUG << "RootCnvSvc::initFiles" << endreq;
00215     StatusCode sc=StatusCode::SUCCESS;
00216 
00217   // Use the Job options service to set the Algorithm's parameters
00218   // This will retrieve parameters set in the job options file
00219     setProperties();
00220     
00221     //Read inpout files files from job options
00222     int nSize = m_difileName.size();
00223     log<<MSG::INFO<<"Root Input files "<<nSize<<endreq;
00224     if(nSize == 0){
00225       log<<MSG::INFO<<"Unable to find input file"<<endreq;
00226       //return StatusCode::FAILURE;
00227     }
00228     
00229     for(int i = 0;i<nSize;i++){
00230       facilities::Util::expandEnvVar(&m_difileName[i]);
00231       std::string s=m_difileName[i];
00232       std::vector<int> wildcardPos;
00233       for(int pos=0;pos<s.size();pos++) {
00234         pos=s.find_first_of('?',pos);
00235         if(pos!=-1) {
00236           wildcardPos.push_back(pos);
00237         }
00238         else{
00239           break;
00240         }
00241       }
00242       if(wildcardPos.size()!=0) {
00243         int nEnd=facilities::Util::catchOptionVal(&s)+1;
00244         int maxNo=pow(10.,(int)wildcardPos.size());
00245         if(nEnd!=0&&nEnd<maxNo) maxNo=nEnd;
00246         int nStart=facilities::Util::catchOptionVal(&s,0,"&(",")");
00247         int i=1;
00248         if(nStart!=-1) i=nStart;
00249         if(nStart>nEnd) log<<MSG::WARNING<<"file's StartNo>EndNo"<<endreq;  
00250         for(;i<maxNo;i++){
00251           std::vector<int>::iterator it=wildcardPos.end();
00252           int id=i;
00253           while(it!=wildcardPos.begin()){
00254             it--;
00255             char c=id%10+48;
00256             id /=10;
00257             s.replace((*it),1,1,c);
00258           }
00259           if(access(s.c_str(),0)!=-1) {
00260             sc = m_rootInterface->addInput(m_dtreeName,s);
00261             if (sc.isFailure()) return sc;
00262           }
00263         }
00264       }
00265       else {
00266         sc = m_rootInterface->addInput(m_dtreeName,m_difileName[i]);
00267         if (sc.isFailure()) return sc;
00268       }
00269     }
00270     
00271     //facilities::Util::expandEnvVar(&m_difileName[0]);
00272     //sc = m_rootInterface->addInput(m_dtreeName,m_difileName[0]);
00273     //if (sc.isFailure()) return sc;
00274     
00275     
00276     //Digi
00277     //facilities::Util::expandEnvVar(&m_difileName);
00278     facilities::Util::expandEnvVar(&m_dofileName);
00279    // sc = m_rootInterface->addInput(m_dtreeName,m_difileName);
00280    // if (sc.isFailure()) return sc;
00281 
00282     if (m_dsplitMode<m_minSplit) {
00283       log << MSG::WARNING << "RootCnvSvc::initFiles Recon splitlevel cant be lower than "<<m_minSplit<<", reset" << endreq;
00284       m_dsplitMode=m_minSplit;
00285     }
00286 
00287     if( "" != m_dofileName ){
00288       sc=m_rootInterface->addOutput(m_dtreeName,m_dofileName,m_dsplitMode,m_dbufSize,m_dcompressionLevel);
00289     }else{
00290       log << MSG::WARNING << "No specified digiRootOutputFile!" << endreq;
00291     }
00292 
00293     return sc;
00294 }

StatusCode RootCnvSvc::initialize (  )  [virtual]

Definition at line 143 of file RootCnvSvc.cxx.

References addConverters(), Bes_Common::DEBUG, calibUtil::ERROR, for, initFiles(), ganga-rec::j, m_leaves, m_rootInterface, m_selectFromTag, m_tagInputFile, msgSvc(), RootInterface::setSelectFromTag(), RootInterface::setTagInputFile(), and deljobs::string.

00143                                       {
00144   // Purpose and Method:  Setup GLAST's Event Converter Service.
00145   //   Associate RootCnvSvc with the EventDataSvc
00146   //   Associate the list of known converters with this RootCnvSvc
00147   //   configure map of leaves
00148 
00149   MsgStream log(msgSvc(), name());
00150   log << MSG::DEBUG << "RootCnvSvc::initialize" << endreq;
00151   StatusCode status = ConversionSvc::initialize();
00152   if ( status.isSuccess() )   {
00153     //        ISvcLocator* svclocator = serviceLocator();  [unused for now]
00154     IDataProviderSvc *pIDP = 0;
00155     // Set event data service
00156     status = service("EventDataSvc", pIDP, true);
00157     if ( status.isSuccess() )   {
00158       status = setDataProvider ( pIDP );
00159     }
00160     else    {
00161       return status;
00162     }
00163 
00164     
00165     // Add converters to the service 
00166     status = addConverters();
00167     if ( !status.isSuccess() )   {
00168       log << MSG::ERROR << "Unable to add converters to the service" << endreq;
00169       return status;
00170     }
00171 
00172       
00173     // Now we have to configure the map of leaves
00174     // Which should contain the association of converters with 
00175     // paths on the TDS
00176     for (LeafMap::iterator k = m_leaves.begin(); k != m_leaves.end(); k++ )   {
00177       std::string path = (*k).first;
00178       for (LeafMap::iterator j = m_leaves.begin(); j != m_leaves.end(); j++ )   {
00179         std::string path2 = (*j).first;
00180         std::string pp = (*j).first.substr(0, (*j).first.rfind("/"));
00181         if ( path == pp && path != (*j).first )   {
00182           (*k).second->push_back((*j).second);
00183         }
00184       }
00185     }   
00186   }
00187 
00188   // get properties and tell RootInterface about files
00189   status=initFiles();
00190 
00191   m_rootInterface->setSelectFromTag(m_selectFromTag);
00192   m_rootInterface->setTagInputFile(m_tagInputFile);
00193   //m_rootInterface->setTagFileFormat(m_tagFileFormat);
00194    
00195   return status;
00196 }

StatusCode RootCnvSvc::queryInterface ( const InterfaceID &  riid,
void **  ppvInterface 
) [virtual]

Override inherited queryInterface due to enhanced interface.

Definition at line 359 of file RootCnvSvc.cxx.

References IID_IRootCnvSvc.

00359                                                                                      {
00360 
00361     if ( IID_IRootCnvSvc == riid )  {
00362       *ppvInterface = (RootCnvSvc*)this;
00363     }
00364     else  {
00365       // Interface is not directly availible: try out a base class
00366       return ConversionSvc::queryInterface(riid, ppvInterface);
00367     }
00368     addRef();
00369     return StatusCode::SUCCESS;
00370   }

void RootCnvSvc::setDigiCnv ( DigiCnv reccnv  )  [inline]

Definition at line 158 of file RootCnvSvc.h.

References m_dCnv.

Referenced by DigiCnv::initialize().

00158 {m_dCnv=reccnv;}

void RootCnvSvc::setDstCnv ( DstCnv dstcnv  )  [inline]

Definition at line 159 of file RootCnvSvc.h.

References m_dstCnv.

Referenced by DstCnv::initialize().

00159 {m_dstCnv=dstcnv;}

void RootCnvSvc::setEventCnv ( EventCnv eventCnv  )  [inline]

Definition at line 167 of file RootCnvSvc.h.

References m_eventCnv.

00167 {m_eventCnv=eventCnv;}

void RootCnvSvc::setEvtHeaderCnv ( EvtHeaderCnv evtheadercnv  )  [inline]

Definition at line 165 of file RootCnvSvc.h.

References m_evtheaderCnv.

Referenced by EvtHeaderCnv::initialize().

00165 {m_evtheaderCnv=evtheadercnv;}

void RootCnvSvc::setEvtNavigatorCnv ( EvtNavigatorCnv evtnavigatorcnv  )  [inline]

Definition at line 166 of file RootCnvSvc.h.

References m_evtnavigatorCnv.

Referenced by EvtNavigatorCnv::initialize().

00166 {m_evtnavigatorCnv=evtnavigatorcnv;}

void RootCnvSvc::setEvtRecCnv ( EvtRecCnv evtreccnv  )  [inline]

Definition at line 163 of file RootCnvSvc.h.

References m_evtRecCnv.

Referenced by EvtRecCnv::initialize().

00163 { m_evtRecCnv = evtreccnv; } //zoujh

void RootCnvSvc::setHltCnv ( HltCnv hltcnv  )  [inline]

Definition at line 162 of file RootCnvSvc.h.

References m_hltCnv.

Referenced by HltCnv::initialize().

00162 { m_hltCnv = hltcnv; } //fucd

void RootCnvSvc::setMcCnv ( McCnv mccnv  )  [inline]

Definition at line 160 of file RootCnvSvc.h.

References m_mcCnv.

Referenced by McCnv::initialize().

00160 {m_mcCnv=mccnv;}

void RootCnvSvc::setRecTrackCnv ( RecTrackCnv rectrackcnv  )  [inline]

Definition at line 164 of file RootCnvSvc.h.

References m_rectrackCnv.

Referenced by RecTrackCnv::initialize().

00164 {m_rectrackCnv=rectrackcnv;}

void RootCnvSvc::setTrigCnv ( TrigCnv trigcnv  )  [inline]

Definition at line 161 of file RootCnvSvc.h.

References m_trigCnv.

Referenced by TrigCnv::initialize().

00161 { m_trigCnv = trigcnv; } //caogf

StatusCode RootCnvSvc::updateServiceState ( IOpaqueAddress *  pAddress  )  [virtual]

Update state of the service.

Definition at line 312 of file RootCnvSvc.cxx.

References createAddress(), Bes_Common::DEBUG, RootEvtSelector::getRecId(), if(), ir, m_evtsel, m_leaves, msgSvc(), ROOT_StorageType, and deljobs::string.

00312                                                                      {
00313 
00314   // not sure about the use of recid or bank...
00315   MsgStream log(msgSvc(), name());
00316 
00317   log << MSG::DEBUG << "RootCnvSvc::updateServiceState" << endreq;
00318 
00319   StatusCode status = INVALID_ADDRESS;
00320   IRegistry* ent = pAddress->registry();
00321   if ( 0 != ent )   {
00322     SmartIF<IDataManagerSvc> iaddrReg(dataProvider());
00323     //       if ( 0 != iaddrReg )   {
00324     status = StatusCode::SUCCESS;
00325     std::string path = ent->identifier();
00326     LeafMap::iterator itm = m_leaves.find(path);
00327     if ( itm != m_leaves.end() )    {
00328       Leaf* leaf = (*itm).second;
00329       if ( 0 != leaf )    {
00330         for ( Leaf::iterator il = leaf->begin(); il != leaf->end(); il++ )   {
00331           IOpaqueAddress* newAddr = 0;
00332           unsigned long ipars[2] = {0, 0}; //
00333           if (m_evtsel)  ipars[0]=m_evtsel->getRecId();
00334 
00335           std::string spars[3]={(*il)->path,(*il)->treename,(*il)->branchname}; 
00336 
00337           StatusCode ir =createAddress(ROOT_StorageType, 
00338               (*il)->clid, 
00339               spars, 
00340               ipars,
00341               newAddr);
00342           log << MSG::DEBUG << "RootCnvSvc::updateService " << " *****  " << 
00343             (*il)->clid << " *****  " << (*il)->path <<endreq;
00344 
00345           if ( ir.isSuccess() )   {
00346             ir = iaddrReg->registerAddress((*il)->path, newAddr);
00347             if ( !ir.isSuccess() )    {
00348               newAddr->release();
00349               status = ir;
00350             }
00351           }    
00352         }
00353       }
00354     }
00355   }
00356   return StatusCode::SUCCESS;
00357   }


Friends And Related Function Documentation

friend class SvcFactory< RootCnvSvc > [friend]

Definition at line 42 of file RootCnvSvc.h.


Member Data Documentation

commonData RootCnvSvc::m_common [private]

relational maps to be cleared

Definition at line 118 of file RootCnvSvc.h.

Referenced by commitOutput().

int RootCnvSvc::m_dbufSize [private]

buffer size for digi file

Definition at line 96 of file RootCnvSvc.h.

Referenced by initFiles(), and RootCnvSvc().

DigiCnv* RootCnvSvc::m_dCnv [private]

pointers to top converters

Definition at line 105 of file RootCnvSvc.h.

Referenced by commitOutput(), getDigiCnv(), and setDigiCnv().

int RootCnvSvc::m_dcompressionLevel [private]

compression level for digix file

Definition at line 99 of file RootCnvSvc.h.

Referenced by initFiles(), and RootCnvSvc().

std::vector<std::string> RootCnvSvc::m_difileName [private]

digi input filename

Definition at line 86 of file RootCnvSvc.h.

Referenced by initFiles(), and RootCnvSvc().

std::string RootCnvSvc::m_dofileName [private]

digi output filename

Definition at line 89 of file RootCnvSvc.h.

Referenced by initFiles(), and RootCnvSvc().

int RootCnvSvc::m_dsplitMode [private]

digi split mode

Definition at line 93 of file RootCnvSvc.h.

Referenced by initFiles(), and RootCnvSvc().

DstCnv* RootCnvSvc::m_dstCnv [private]

Definition at line 106 of file RootCnvSvc.h.

Referenced by commitOutput(), getDstCnv(), and setDstCnv().

std::string RootCnvSvc::m_dtreeName [private]

digi treename

Definition at line 102 of file RootCnvSvc.h.

Referenced by initFiles(), and RootCnvSvc().

EventCnv* RootCnvSvc::m_eventCnv [private]

Definition at line 115 of file RootCnvSvc.h.

Referenced by getEventCnv(), and setEventCnv().

EvtHeaderCnv* RootCnvSvc::m_evtheaderCnv [private]

Definition at line 113 of file RootCnvSvc.h.

Referenced by commitOutput(), getEvtHeaderCnv(), and setEvtHeaderCnv().

EvtNavigatorCnv* RootCnvSvc::m_evtnavigatorCnv [private]

Definition at line 114 of file RootCnvSvc.h.

Referenced by commitOutput(), getEvtNavigatorCnv(), and setEvtNavigatorCnv().

EvtRecCnv* RootCnvSvc::m_evtRecCnv [private]

Definition at line 110 of file RootCnvSvc.h.

Referenced by commitOutput(), getEvtRecCnv(), and setEvtRecCnv().

RootEvtSelector* RootCnvSvc::m_evtsel [private]

access to the EventSelector

Definition at line 76 of file RootCnvSvc.h.

Referenced by createAddress(), RootCnvSvc(), and updateServiceState().

HltCnv* RootCnvSvc::m_hltCnv [private]

Definition at line 109 of file RootCnvSvc.h.

Referenced by commitOutput(), getHltCnv(), and setHltCnv().

LeafMap RootCnvSvc::m_leaves [private]

Definition at line 79 of file RootCnvSvc.h.

Referenced by createAddress(), declareObject(), finalize(), initialize(), and updateServiceState().

McCnv* RootCnvSvc::m_mcCnv [private]

Definition at line 107 of file RootCnvSvc.h.

Referenced by commitOutput(), getMcCnv(), and setMcCnv().

const int RootCnvSvc::m_minSplit [private]

properties minimal split required

Definition at line 83 of file RootCnvSvc.h.

Referenced by initFiles(), and RootCnvSvc().

RecTrackCnv* RootCnvSvc::m_rectrackCnv [private]

Definition at line 112 of file RootCnvSvc.h.

Referenced by commitOutput(), getRecTrackCnv(), and setRecTrackCnv().

RootInterface* RootCnvSvc::m_rootInterface [private]

access to the RootInterface

Definition at line 74 of file RootCnvSvc.h.

Referenced by commitOutput(), finalize(), getRootInterface(), initFiles(), initialize(), and RootCnvSvc().

bool RootCnvSvc::m_selectFromTag [private]

Definition at line 69 of file RootCnvSvc.h.

Referenced by initialize(), and RootCnvSvc().

std::vector<std::string> RootCnvSvc::m_tagInputFile [private]

Definition at line 70 of file RootCnvSvc.h.

Referenced by initialize(), and RootCnvSvc().

TrigCnv* RootCnvSvc::m_trigCnv [private]

Definition at line 108 of file RootCnvSvc.h.

Referenced by commitOutput(), getTrigCnv(), and setTrigCnv().


Generated on Tue Nov 29 23:35:51 2016 for BOSS_7.0.2 by  doxygen 1.4.7