filter::ChannelFilter should be made into a service
Currently is it just an object that can be made anywhere. In time, when bad channels are kept in a database with different validity ranges, that information should be gotten on a run by run basis, ie from a service.
#5 Updated by Gianluca Petrillo almost 5 years ago
- % Done changed from 0 to 100
filter::ChannelFilterProvider (service provider) and a
filter::ChannelFilter Service (
art interface) interface are provided in feature branch
An implementation (
filter::SimpleChannelFilterProvider) with unit test is provided.
Also, FHiCL file configurations for Bo, ArgoNeuT and MicroBooNE are provided (
Filters/channelfilter_microboone.fcl respectively), although the latter two should be moved into
A (trivial) configuration file is provided for DUNE as
lbnecode, and the service is added to the standard service configuration.
ChannelFilter class has been reimplemented to rely internally on the service, but it will be deprecated, and therefore eventually removed.
Using the service in place of the old class takes a few changes in the code and it requires the addition of
Using the old
ChannelFilter does not require changes in the code, but it still needs the addition of
The code in
larevt (and only that) has been migrated to use the new service directly.
#7 Updated by Gianluca Petrillo almost 5 years ago
- % Done changed from 100 to 80
The outline of the solution, in branch
lbnecode, has been accepted by the LArSoft Coordinators' Meeting (https://indico.fnal.gov/conferenceDisplay.py?confId=10219).
Conversion of most of the code and of FHiCL configuration files still to come.
#8 Updated by Gianluca Petrillo over 4 years ago
Candidate code has been published by Brandon Eberly in
This code provides a DB implementation of the service, plus a MicroBooNE-specific variation of it.
The code has been presented on Sept. 22nd, 2015 at LArSoft Coordinators meeting .
The introduction of the new service mandates the update of all FHiCL files using ChannelFilter.
#9 Updated by Gianluca Petrillo over 4 years ago
- Category set to Other
I have completed code review.
The proposed amendment was pushed in
larevt as commit:6acbf11857ec81af41b65fc8d6d19de40d50ef83 , on branch
The following actions have been taken (but keep reading...):
GetProvider[Ptr](); I aim to have this a LArSoft's standard
- removed the references to database from the interface (including switching from DB-specific channel ID to LArSoft's)
Update()function from service provider interface
- shipped ArgoNeuT configuration to
- minor coding changes
GetFilter[Ptr]()has been restored to be compatible with code from LArSoft
v04_25_00that might use it (commit:83f12a5c99c3b71f65663bb9b9bb644fe6685586);
GetProvider[Ptr]()are the functions I recommend anyway
- ArgoNeuT configuration has been moved back to
#10 Updated by Gianluca Petrillo over 4 years ago
ChannelFilter class is deprecated.
All the code in LArSoft using that class has been updated to use
Instructions on how to do that are in
larevt/CalibrationDBI/Interface/IChannelStatusService.h (that for some funny reason does not show up in LArSoft Doxygen web page...).
ChannelFilter class has not been tagged with the
[[deprecated]] attribute yet.
LArSoft would compile successfully if that were done.
On the other end, in
argoneutcode some instances of
ChannelFilter are known to persist.