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>>
43 if (
const IProperty* ancestorProp = dynamic_cast<const IProperty*>( ancestor );
44 ancestorProp && ancestorProp->
hasProperty(
"RootInTES" ) ) {
45 this->
setProperty( ancestorProp->getProperty(
"RootInTES" ) ).ignore();
50 return BASE::initialize().
andThen( [&] {
74 if ( !rit.empty() && rit.back() !=
'/' ) rit +=
'/';
76 "note: overridden by parent settings"};
Definition of the MsgStream class used to transmit messages.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Implementation of property with value of concrete type.
FixTESPath(std::string name, ISvcLocator *pSvcLocator)
Algorithm constructor - the SFINAE constraint below ensures that this is constructor is only defined ...
StatusCode andThen(F &&f, ARGS &&... args) const
Chain code blocks making the execution conditional a success result.
Gaudi::Property< std::string > m_rootInTES
This class is used for returning status codes from appropriate routines.
Definition of the basic interface.
virtual bool hasProperty(const std::string &name) const =0
Return true if we have a property with the given name.
bool PyHelper() setProperty(IInterface *p, char *name, char *value)
std::string fullTESLocation(std::string_view location, std::string_view rit)
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
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.
StatusCode initialize() override
std::unique_ptr< IDataHandleVisitor > fixDataHandlePath(std::string_view rit, std::string rootName, MsgStream *dbg)
The IProperty is the basic interface for all components which have properties that can be set or get.