Loading [MathJax]/extensions/tex2jax.js
Go to the documentation of this file.
11 #ifndef GAUDIALG_FIXTESPATH_H
12 #define GAUDIALG_FIXTESPATH_H
15 #include <string_view>
16 #include <type_traits>
34 template <
typename U = BASE,
typename = std::enable_if_t<std::is_base_of_v<Gaudi::Algorithm, BASE>, U>>
39 template <
typename U = BASE,
typename = std::enable_if_t<std::is_base_of_v<AlgTool, BASE>, U>>
44 ancestorProp && ancestorProp->
hasProperty(
"RootInTES" ) ) {
45 this->
setProperty( ancestorProp->getProperty(
"RootInTES" ) ).ignore();
50 return BASE::initialize().
andThen( [&] {
54 rootInTES(), dataMgrSvc->rootName(), BASE::msgLevel(
MSG::DEBUG ) ? &this->debug() :
nullptr );
74 if ( !rit.empty() && rit.back() !=
'/' ) rit +=
'/';
76 "note: overridden by parent settings" };
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
bool PyHelper() setProperty(IInterface *p, char *name, char *value)
StatusCode andThen(F &&f, ARGS &&... args) const
Chain code blocks making the execution conditional a success result.
std::string fullTESLocation(std::string_view location, std::string_view rit)
const ValueType & value() const
virtual bool hasProperty(std::string_view name) const =0
Return true if we have a property with the given name.
FixTESPath(std::string name, ISvcLocator *pSvcLocator)
Algorithm constructor - the SFINAE constraint below ensures that this is constructor is only defined ...
StatusCode initialize() override
Gaudi::Property< std::string > m_rootInTES
const std::string & rootInTES() const
Returns the "rootInTES" string.
FixTESPath(std::string type, std::string name, const IInterface *ancestor)
Tool constructor - SFINAE-ed to insure this constructor is only defined if BASE derives from AlgTool.
std::string fullTESLocation(std::string_view location, bool useRootInTES) const
Returns the full correct event location given the rootInTes settings.
std::unique_ptr< IDataHandleVisitor > fixDataHandlePath(std::string_view rit, std::string rootName, MsgStream *dbg)