End-path module and trigger path disablement¶
The ability to disable end-path modules and trigger paths has been removed as of art
2.07.01.
The facility has been provided to disable, during running, trigger paths and end-path modules. This is done by means of a service PathSelection
(source:art/Framework/Services/System/PathSelection.h) which provides the following functions:
bool setTriggerPathEnabled(std::string const & name, bool enable);
bool setEndPathModuleEnabled(std::string const & label, bool enable);
This service is activated by specifying an empty parameter set:services.PathSelection: {}in the configuration.
The appropriate place from which to call these functions would be from a user service, in the PreEvent
callback slot. Note that trigger paths and end-path modules may be re-activated, but it is not possible to activate a path which was not configured at startup.
On a related note, limited module reconfiguration facilities are available by implementing a subclass of art::UserInteraction
(source:art/Framework/Services/UserInteraction/UserInteraction.h). Any reconfiguration of filters or producers will produce incorrect provenance information.
An example of the combination of the two may be seen at source:test/Integration/InFlightConfiguration.h and source:test/Integration/InFlightConfiguration_service.cc, with configuration at source:test/Integration/fcl/InFlightConfiguration_02.fcl. Note that in a user implementation should cache the PathSelection
service handle by value, as this implementation provides for a test of art behavior on incorrect configuration.