| The Gaudi Framework v32r1 (f65d50dc)

Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
RootHistCnv::RConverter Class Reference

Root Converter. More...

`#include <src/RConverter.h>`

Inheritance diagram for RootHistCnv::RConverter:
[legend]
Collaboration diagram for RootHistCnv::RConverter:
[legend]

## Public Member Functions
StatusCode | createRep (DataObject *pObj, IOpaqueAddress *&refpAddr) override
| Convert the transient object to the requested representation. More...
long | repSvcType () const override
StatusCode | error (const std::string &msg)
StatusCode | regTFile (const std::string, const TFile *)
StatusCode | findTFile (const std::string, TFile *&)
std::string | diskDirectory (const std::string &loc)
std::string | directory (const std::string &loc)
void | setDirectory (const std::string &loc)
void | setDiskDirectory (const std::string &loc)
StatusCode | createDirectory (const std::string &loc)
StatusCode | createDiskDirectory (const std::string &loc)
std::string | getDirectory ()
std::string | convertId (const std::string &) const
Public Member Functions inherited from Converter
StatusCode | initialize () override
| Initialize the converter. More...
StatusCode | finalize () override
| Initialize the converter. More...
StatusCode | setDataProvider (IDataProviderSvc *svc) override
| Set Data provider service. More...
SmartIF< IDataProviderSvc > & | dataProvider () const override
| Get Data provider service. More...
StatusCode | setConversionSvc (IConversionSvc *svc) override
| Set conversion service the converter is connected to. More...
SmartIF< IConversionSvc > & | conversionSvc () const override
| Get conversion service the converter is connected to. More...
StatusCode | setAddressCreator (IAddressCreator *creator) override
| Set address creator facility. More...
SmartIF< IAddressCreator > & | addressCreator () const override
| Retrieve address creator facility. More...
const CLID & | objType () const override
| Retrieve the class type of objects the converter produces. More...
virtual long | i_repSvcType () const
| Retrieve the class type of the data store the converter uses. More...
StatusCode | createObj (IOpaqueAddress *pAddress, DataObject *&refpObject) override
| Create the transient representation of an object. More...
StatusCode | fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject) override
| Resolve the references of the created transient object. More...
StatusCode | updateObj (IOpaqueAddress *pAddress, DataObject *refpObject) override
| Update the transient object from the other representation. More...
StatusCode | updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject) override
| Update the references of an updated transient object. More...
StatusCode | createRep (DataObject *pObject, IOpaqueAddress *&refpAddress) override
| Convert the transient object to the requested representation. More...
StatusCode | fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) override
| Resolve the references of the converted object. More...
StatusCode | updateRep (IOpaqueAddress *pAddress, DataObject *pObject) override
| Update the converted representation of a transient object. More...
StatusCode | updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) override
| Update the references of an already converted object. More...
| Converter (long storage_type, const CLID &class_type, ISvcLocator *svc=0)
| Standard Constructor. More...
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=false) const
| Access a service by name, creating it if it doesn't already exist. More...
template<class T >
StatusCode | service (const std::string &type, const std::string &name, T *&psvc) const
| Access a service by name, type creating it if it doesn't already exist. More...
SmartIF< IService > | service (const std::string &name, const bool createIf=true) const
| Return a pointer to the service identified by name (or "type/name") More...
Public Member Functions inherited from implements< IConverter >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
| implements ()=default
| Default constructor. More...
| implements (const implements &)
| Copy constructor (zero the reference count) More...
implements & | operator= (const implements &)
| Assignment operator (do not touch the reference count). More...
unsigned long | addRef () override
| Reference Interface instance. More...
unsigned long | release () override
| Release Interface instance. More...
unsigned long | refCount () const override
| Current reference count. More...

## Static Public Member Functions
static long | storageType ()
| Inquire storage type. More...

## Protected Member Functions
| RConverter (const CLID &clid, ISvcLocator *svc)
| Standard constructor. More...
virtual StatusCode | readObject (IOpaqueAddress *pAddr, DataObject *&refpObj)
| Create the transient representation of an object. More...
virtual TObject * | createPersistent (DataObject *pObj)
| Create the persistent representation of an object. More...
StatusCode | createAddress (DataObject *pObject, TDirectory *pDir, TObject *pTObject, IOpaqueAddress *&refpAddr)
| Create address of the transient object according to the requested representation. More...
StatusCode | createAddress (const std::string &rzdir, const CLID &clid, long id, TObject *pTobj, IOpaqueAddress *&refpAddress)
StatusCode | createAddress (const std::string &rzdir, const CLID &clid, const std::string &title, TObject *pTobj, IOpaqueAddress *&refpAddress)
TDirectory * | changeDirectory (DataObject *pObject)
| Switch to object directory (=Parent directory) More...
Protected Member Functions inherited from Converter
SmartIF< ISvcLocator > & | serviceLocator () const
| Retrieve pointer to service locator. More...
SmartIF< IMessageSvc > & | msgSvc () const
| Retrieve pointer to message service. More...
SmartIF< IDataManagerSvc > & | dataManager () const
| Get Data Manager service. More...

## Additional Inherited Members
Public Types inherited from Converter
using | Factory = Gaudi::PluginService::Factory< IConverter *(ISvcLocator *)>
Public Types inherited from implements< IConverter >
using | base_class = implements< Interfaces... >
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces... >
| Typedef to the base of this class. More...
using | iids = typename extend_interfaces_base::ext_iids
Public Types inherited from extend_interfaces< Interfaces... >
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
| take union of the ext_iids of all Interfaces... More...
Protected Attributes inherited from implements< IConverter >
std::atomic_ulong | m_refCount
| Reference counter. More...

## Detailed Description

Root Converter.

Author
  Charles Leggett

Definition at line 31 of file RConverter.h.

## Constructor & Destructor Documentation

## ◆ RConverter()

RootHistCnv::RConverter::RConverter | ( | const CLID & | clid,
|  | ISvcLocator * | svc
| ) |  |
| inline protected

Standard constructor.

Definition at line 55 of file RConverter.h.

55 : Converter( storageType(), clid, svc ) {}
Converter::Converter
Converter(long storage_type, const CLID &class_type, ISvcLocator *svc=0)
Standard Constructor.
Definition: Converter.cpp:104
RootHistCnv::RConverter::storageType
static long storageType()
Inquire storage type.
Definition: RConverter.h:36

## Member Function Documentation

## ◆ changeDirectory()

TDirectory * RootHistCnv::RConverter::changeDirectory | ( | DataObject * | pObject | ) |
| protected

Switch to object directory (=Parent directory)

Definition at line 200 of file RConverter.cpp.

202 {
203 if ( pObject ) {
204 IRegistry* pReg = pObject->registry();
205 if ( pReg ) {
206 auto dataMgr = dataProvider().as<IDataManagerSvc>();
207 if ( dataMgr ) {
208 IRegistry* pParentReg = nullptr;
209 StatusCode status = dataMgr->objectParent( pReg, pParentReg );
210 if ( status.isSuccess() ) {
211 IOpaqueAddress* pParAddr = pParentReg->address();
212 if ( pParAddr ) {
213 TDirectory* pParentDir = (TDirectory*)pParAddr->ipar()[0];
214 if ( pParentDir ) {
215 gDirectory->cd( pParentDir->GetPath() );
216 return pParentDir;
217 }
218 }
219 }
220 }
221 }
222 }
223 return nullptr;
224 }
DataObject::registry
IRegistry * registry() const
Get pointer to Registry.
Definition: DataObject.h:72
IDataManagerSvc
Definition: IDataManagerSvc.h:45
SmartIF::as
SmartIF< IFace > as() const
return a new SmartIF instance to another interface
Definition: SmartIF.h:107
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
IRegistry
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
IRegistry::address
virtual IOpaqueAddress * address() const =0
Retrieve opaque storage address.
Converter::dataProvider
SmartIF< IDataProviderSvc > & dataProvider() const override
Get Data provider service.
Definition: Converter.cpp:68
IOpaqueAddress
Opaque address interface definition.
Definition: IOpaqueAddress.h:23
IOpaqueAddress::ipar
virtual const unsigned long * ipar() const =0
Access to generic link parameters.

## ◆ convertId()

std::string RootHistCnv::RConverter::convertId | ( | const std::string & | id | ) | const

Definition at line 312 of file RConverter.cpp.

314 {
315 bool forced = false;
316 if ( id.size() > 0 && isdigit( id[0] ) ) {
317 try {
318 Gaudi::Property<bool> tmp;
319 tmp.assign( conversionSvc().as<IProperty>()->getProperty( "ForceAlphaIds" ) );
320 forced = tmp.value();
321 } catch ( ... ) {}
322 }
323 if ( forced )
324 return "h" + id;
325 else
326 return id;
327 }
details::size
constexpr auto size(const T &, Args &&...) noexcept
Definition: AnyDataWrapper.h:14
Converter::conversionSvc
SmartIF< IConversionSvc > & conversionSvc() const override
Get conversion service the converter is connected to.
Definition: Converter.cpp:80
Gaudi::Property
Implementation of property with value of concrete type.
Definition: Property.h:352
getProperty
const char *PyHelper() getProperty(IInterface *p, char *name)
Definition: Bootstrap.cpp:237
std::isdigit
T isdigit(T... args)
Gaudi::Property::value
const ValueType & value() const
Backward compatibility (.
Definition: Property.h:526
Gaudi::Property::assign
bool assign(const Details::PropertyBase &source) override
get the value from another property
Definition: Property.h:659

## ◆ createAddress() [1/3]

StatusCode RootHistCnv::RConverter::createAddress | ( | DataObject * | pObject,
|  | TDirectory * | pDir,
|  | TObject * | pTObject,
|  | IOpaqueAddress *& | refpAddr
| ) |  |
| protected

Create address of the transient object according to the requested representation.

Definition at line 155 of file RConverter.cpp.

158 {
159 // Get address again....it does not change
160 IRegistry* pReg = pObj->registry();
161 if ( pReg ) {
162 refpAddr = pReg->address();
163 if ( !refpAddr ) {
164 refpAddr = new RootObjAddress( repSvcType(), objType(), pReg->name(), "", (unsigned long)( pDir ),
165 (unsigned long)( pTObj ), pTObj );
166
167 return StatusCode::SUCCESS;
168 }
169 }
170 return StatusCode::FAILURE;
171 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
IRegistry::name
virtual const name_type & name() const =0
Name of the directory (or key)
IRegistry
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
IRegistry::address
virtual IOpaqueAddress * address() const =0
Retrieve opaque storage address.
RootHistCnv::RConverter::repSvcType
long repSvcType() const override
Definition: RConverter.h:37
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
Converter::objType
const CLID & objType() const override
Retrieve the class type of objects the converter produces.
Definition: Converter.cpp:13

## ◆ createAddress() [2/3]

StatusCode RootHistCnv::RConverter::createAddress | ( | const std::string & | rzdir,
|  | const CLID & | clid,
|  | long | id,
|  | TObject * | pTobj,
|  | IOpaqueAddress *& | refpAddress
| ) |  |
| protected

Definition at line 185 of file RConverter.cpp.

188 {
189 auto obj = std::to_string( id );
190 StatusCode status = createAddress( rzdir, clid, obj, pTobj, refpAddress );
191 if ( status.isSuccess() ) {
192 unsigned long* ipar = (unsigned long*)refpAddress->ipar();
193 ipar[0] = id;
194 }
195 return status;
196 }
std::to_string
T to_string(T... args)
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
IOpaqueAddress::ipar
virtual const unsigned long * ipar() const =0
Access to generic link parameters.
RootHistCnv::RConverter::createAddress
StatusCode createAddress(DataObject *pObject, TDirectory *pDir, TObject *pTObject, IOpaqueAddress *&refpAddr)
Create address of the transient object according to the requested representation.
Definition: RConverter.cpp:155

## ◆ createAddress() [3/3]

StatusCode RootHistCnv::RConverter::createAddress | ( | const std::string & | rzdir,
|  | const CLID & | clid,
|  | const std::string & | title,
|  | TObject * | pTobj,
|  | IOpaqueAddress *& | refpAddress
| ) |  |
| protected

Definition at line 174 of file RConverter.cpp.

177 {
178 auto pA = new RootObjAddress( repSvcType(), clid, rzdir, title, 0, 0, pTObj );
179
180 refpAddress = pA;
181 return StatusCode::SUCCESS;
182 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
RootHistCnv::RConverter::repSvcType
long repSvcType() const override
Definition: RConverter.h:37

## ◆ createDirectory()

StatusCode RootHistCnv::RConverter::createDirectory | ( | const std::string & | loc | ) |

Definition at line 24 of file RConverter.cpp.

26 {
27 MsgStream log( msgSvc(), "RConverter::createDir" );
28
29 // Get rid of leading /NTUPLES
30 std::string full = diskDirectory( loc );
31
32 std::string fil, cur, s;
33 TDirectory* gDir = gDirectory;
34
35 TFile* tf = nullptr;
36 if ( findTFile( loc, tf ).isSuccess() ) { tf->cd(); }
37
38 std::vector<std::string> lpath;
39 int i = 1;
40
41 auto p = full.find( ":", 0 );
42 if ( p != std::string::npos ) {
43 fil = full.substr( 0, p );
44 i = p + 1;
45 fil += ":/";
46 gDirectory->cd( fil.c_str() );
47 }
48
49 while ( ( p = full.find( "/", i ) ) != std::string::npos ) {
50 s = full.substr( i, p - i );
51 lpath.push_back( s );
52 i = p + 1;
53 }
54 lpath.push_back( full.substr( i ) );
55
56 if ( full.compare( 0, 1, "/" ) == 0 ) gDirectory->cd( "/" );
57
58 for ( const auto& litr : lpath ) {
59 cur = litr;
60 if ( !gDirectory->GetKey( litr.c_str() ) ) { gDirectory->mkdir( litr.c_str() ); }
61 gDirectory->cd( litr.c_str() );
62 }
63
64 gDirectory = gDir;
65
66 return StatusCode::SUCCESS;
67 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
RootHistCnv::RConverter::diskDirectory
std::string diskDirectory(const std::string &loc)
Definition: RConverter.cpp:69
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
RootHistCnv::RConverter::findTFile
StatusCode findTFile(const std::string, TFile *&)
Definition: RConverter.cpp:279
std::string
STL class.
Converter::msgSvc
SmartIF< IMessageSvc > & msgSvc() const
Retrieve pointer to message service.
Definition: Converter.cpp:95
std::vector::push_back
T push_back(T... args)
Gaudi::Accumulators::atomicity::full
std::vector< std::string >
std::string::c_str
T c_str(T... args)
gaudirun.s
string s
Definition: gaudirun.py:316
Gaudi.Configuration.log
log
Definition: Configuration.py:13

## ◆ createDiskDirectory()

StatusCode RootHistCnv::RConverter::createDiskDirectory | ( | const std::string & | loc | ) |

## ◆ createPersistent()

TObject * RootHistCnv::RConverter::createPersistent | ( | DataObject * | pObj | ) |
| protected virtual

Create the persistent representation of an object.

Reimplemented in RootHistCnv::RHistogramCnv< T, S, Q >.

Definition at line 261 of file RConverter.cpp.

261 { return nullptr; }

## ◆ createRep()

StatusCode RootHistCnv::RConverter::createRep | ( | DataObject * | pObj,
|  | IOpaqueAddress *& | refpAddr
| ) |  |
| override

Convert the transient object to the requested representation.

Definition at line 228 of file RConverter.cpp.

230 {
231 GlobalDirectoryRestore restore;
232 pAddr = nullptr;
233 try {
234 TDirectory* pParentDir = changeDirectory( pObject );
235 if ( pParentDir ) {
236 TObject* pTObj = createPersistent( pObject );
237 if ( pTObj ) {
238 pTObj->Write();
239 delete pTObj;
240 return createAddress( pObject, pParentDir, nullptr, pAddr );
241 }
242 }
243 } catch ( ... ) {}
244 MsgStream log( msgSvc(), "RConverter" );
245 log << MSG::ERROR << "Failed to create persistent Object!" << endmsg;
246 return StatusCode::FAILURE;
247 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
RootHistCnv::RConverter::changeDirectory
TDirectory * changeDirectory(DataObject *pObject)
Switch to object directory (=Parent directory)
Definition: RConverter.cpp:200
Converter::msgSvc
SmartIF< IMessageSvc > & msgSvc() const
Retrieve pointer to message service.
Definition: Converter.cpp:95
RootHistCnv::RConverter::createPersistent
virtual TObject * createPersistent(DataObject *pObj)
Create the persistent representation of an object.
Definition: RConverter.cpp:261
GlobalDirectoryRestore
Definition: RConverter.h:16
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
MSG::ERROR
Definition: IMessageSvc.h:15
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192
RootHistCnv::RConverter::createAddress
StatusCode createAddress(DataObject *pObject, TDirectory *pDir, TObject *pTObject, IOpaqueAddress *&refpAddr)
Create address of the transient object according to the requested representation.
Definition: RConverter.cpp:155
Gaudi.Configuration.log
log
Definition: Configuration.py:13

## ◆ directory()

std::string RootHistCnv::RConverter::directory | ( | const std::string & | loc | ) |

Definition at line 101 of file RConverter.cpp.

103 {
104 return diskDirectory( loc );
105 }
RootHistCnv::RConverter::diskDirectory
std::string diskDirectory(const std::string &loc)
Definition: RConverter.cpp:69

## ◆ diskDirectory()

std::string RootHistCnv::RConverter::diskDirectory | ( | const std::string & | loc | ) |

Definition at line 69 of file RConverter.cpp.

71 {
72 // Get rid of leading /NTUPLES/{INPUT_STREAM} or /stat/{INPUT_STREAM}
73 std::string dir;
74 long lf1 = loc.find( "/NTUPLES/" );
75 long lf2 = loc.find( "/stat/" );
76 long ll;
77 if ( lf1 != -1 ) {
78 ll = loc.find( "/", lf1 + 9 );
79
80 } else if ( lf2 != -1 ) {
81 ll = loc.find( "/", lf2 + 6 );
82
83 } else {
84 MsgStream log( msgSvc(), "RConverter" );
85 log << MSG::ERROR << "diskDirectory(" << loc << ")"
86 << " --> no leading /NTUPLES/ or /stat/" << endmsg;
87 return loc;
88 }
89 // dir = loc.substr(ll+8);
90
91 if ( ll == -1 ) {
92 dir = "/";
93 } else {
94 dir = loc.substr( ll );
95 }
96
97 return dir;
98 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
std::string
STL class.
Converter::msgSvc
SmartIF< IMessageSvc > & msgSvc() const
Retrieve pointer to message service.
Definition: Converter.cpp:95
std::string::find
T find(T... args)
MSG::ERROR
Definition: IMessageSvc.h:15
std::string::substr
T substr(T... args)
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192
Gaudi.Configuration.log
log
Definition: Configuration.py:13

## ◆ error()

StatusCode RootHistCnv::RConverter::error | ( | const std::string & | msg | ) |

Definition at line 329 of file RConverter.cpp.

331 {
332 MsgStream log( msgSvc(), "RootHistCnv" );
333 log << MSG::ERROR << msg << endmsg;
334 return StatusCode::FAILURE;
335 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
Converter::msgSvc
SmartIF< IMessageSvc > & msgSvc() const
Retrieve pointer to message service.
Definition: Converter.cpp:95
GaudiMP.FdsRegistry.msg
msg
Definition: FdsRegistry.py:8
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
MSG::ERROR
Definition: IMessageSvc.h:15
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192
Gaudi.Configuration.log
log
Definition: Configuration.py:13

## ◆ findTFile()

StatusCode RootHistCnv::RConverter::findTFile | ( | const std::string | id,
|  | TFile *& | tfile
| ) |  |

Definition at line 279 of file RConverter.cpp.

281 {
282 MsgStream log( msgSvc(), "RConverter" );
283 tfile = nullptr;
284
285 std::string idm;
286
287 // make sure we only get first two parts of id
288 int i1, i2, i3;
289 i1 = id.find( "/", 0 );
290 if ( i1 != 0 ) {
291 log << MSG::ERROR << "Directory name does not start with \"/\": " << id << endmsg;
292 return StatusCode::FAILURE;
293 }
294 i2 = id.find( "/", i1 + 1 );
295 if ( i2 == -1 ) {
296 log << MSG::ERROR << "Directory name has only one part: " << id << endmsg;
297 return StatusCode::FAILURE;
298 }
299 i3 = id.find( "/", i2 + 1 );
300 if ( i3 == -1 ) {
301 idm = id;
302 } else {
303 idm = id.substr( 0, i3 );
304 }
305
306 auto imap = s_fileMap.find( idm );
307 if ( imap == s_fileMap.end() ) return StatusCode::FAILURE;
308 tfile = imap->second;
309 return StatusCode::SUCCESS;
310 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::string
STL class.
Converter::msgSvc
SmartIF< IMessageSvc > & msgSvc() const
Retrieve pointer to message service.
Definition: Converter.cpp:95
std::string::find
T find(T... args)
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
MSG::ERROR
Definition: IMessageSvc.h:15
std::string::substr
T substr(T... args)
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192
Gaudi.Configuration.log
log
Definition: Configuration.py:13

## ◆ getDirectory()

std::string RootHistCnv::RConverter::getDirectory | ( |  | ) |

Definition at line 148 of file RConverter.cpp.

150 {
151 return gDirectory->GetPath();
152 }

## ◆ readObject()

StatusCode RootHistCnv::RConverter::readObject | ( | IOpaqueAddress * | pAddr,
|  | DataObject *& | refpObj
| ) |  |
| protected virtual

Create the transient representation of an object.

Definition at line 250 of file RConverter.cpp.

250 {
251 // MsgStream log(msgSvc(), "RConverter::readObject");
252 // log << MSG::WARNING << pAddr->par()[0] << " <> " << pAddr->par()[1]
253 // << " <> "
254 // << pAddr->ipar()[0] << " <> " << pAddr->ipar()[1] << " <> "
255 // << pAddr->registry()->identifier() << endmsg;
256
257 return StatusCode::SUCCESS;
258 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85

## ◆ regTFile()

StatusCode RootHistCnv::RConverter::regTFile | ( | const std::string | id,
|  | const TFile * | tfile
| ) |  |

Definition at line 264 of file RConverter.cpp.

266 {
267 auto imap = s_fileMap.find( id );
268 if ( imap != s_fileMap.end() ) {
269 MsgStream log( msgSvc(), "RConverter" );
270 log << MSG::ERROR << "cannot register TTree " << id << ": already exists" << endmsg;
271 return StatusCode::FAILURE;
272 }
273 s_fileMap[id] = const_cast<TFile*>( tfile );
274
275 return StatusCode::SUCCESS;
276 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
Converter::msgSvc
SmartIF< IMessageSvc > & msgSvc() const
Retrieve pointer to message service.
Definition: Converter.cpp:95
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
MSG::ERROR
Definition: IMessageSvc.h:15
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192
Gaudi.Configuration.log
log
Definition: Configuration.py:13

## ◆ repSvcType()

long RootHistCnv::RConverter::repSvcType | ( |  | ) | const
| inline override

Definition at line 37 of file RConverter.h.

37 { return i_repSvcType(); }
Converter::i_repSvcType
virtual long i_repSvcType() const
Retrieve the class type of the data store the converter uses.
Definition: Converter.cpp:16

## ◆ setDirectory()

void RootHistCnv::RConverter::setDirectory | ( | const std::string & | loc | ) |

Definition at line 108 of file RConverter.cpp.

110 {
111 MsgStream log( msgSvc(), "RConverter" );
112 TFile* tf = nullptr;
113
114 std::string full = diskDirectory( loc );
115
116 // get associated TFile
117 if ( findTFile( loc, tf ).isSuccess() ) {
118 tf->cd();
119 } else {
120 log << MSG::ERROR << "error getting TFile name " << loc << endmsg;
121 }
122
123 int p, i = 1;
124 std::string cur, sdir;
125
126 gDirectory->cd( "/" );
127 while ( ( p = full.find( "/", i ) ) != -1 ) {
128 sdir = full.substr( i, p - i );
129 if ( !gDirectory->GetKey( sdir.c_str() ) ) {
130 log << MSG::ERROR << "cannot cd to " << full << " from " << gDirectory->GetPath() << endmsg;
131 return;
132 }
133 gDirectory->cd( sdir.c_str() );
134
135 i = p + 1;
136 }
137 gDirectory->cd( full.substr( i ).c_str() );
138 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
RootHistCnv::RConverter::diskDirectory
std::string diskDirectory(const std::string &loc)
Definition: RConverter.cpp:69
RootHistCnv::RConverter::findTFile
StatusCode findTFile(const std::string, TFile *&)
Definition: RConverter.cpp:279
std::string
STL class.
Converter::msgSvc
SmartIF< IMessageSvc > & msgSvc() const
Retrieve pointer to message service.
Definition: Converter.cpp:95
Gaudi::Accumulators::atomicity::full
std::string::c_str
T c_str(T... args)
MSG::ERROR
Definition: IMessageSvc.h:15
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192
Gaudi.Configuration.log
log
Definition: Configuration.py:13

## ◆ setDiskDirectory()

void RootHistCnv::RConverter::setDiskDirectory | ( | const std::string & | loc | ) |

Definition at line 141 of file RConverter.cpp.

143 {
144 setDirectory( loc );
145 }
RootHistCnv::RConverter::setDirectory
void setDirectory(const std::string &loc)
Definition: RConverter.cpp:108

## ◆ storageType()

static long RootHistCnv::RConverter::storageType | ( |  | ) |
| inline static

Inquire storage type.

Definition at line 36 of file RConverter.h.

36 { return ROOT_StorageType; }
ROOT_StorageType
const long ROOT_StorageType
Definition: ClassID.h:52

The documentation for this class was generated from the following files:

- RootHistCnv/src/RConverter.h
- RootHistCnv/src/RConverter.cpp