InterpolatingAdcMitigationService.h
Go to the documentation of this file.
1 // InterpolatingAdcMitigationService.h
2 //
3 // David Adams
4 // June 2016
5 //
6 // Implementation of service that replaces flagged samples in AdcChannelData
7 // with values interpolated from neighboring unflagged samples.
8 // This is a way to deal with the stuck bits in DUNE 35-ton data.
9 //
10 // Up to MaxConsecutiveSamples consecutive samples are replaced with interpolated values.
11 //
12 // Code is very similar to that in CalData/UnstickADCCodes_module.
13 //
14 // Consecutive flagged samples at the beginning or end of the data are treated in the
15 // same way as thos in regions with more than MaxConsecutiveSamples samples.
16 //
17 // Configuration:
18 // LogLevel - message logging level: 0=none, 1=initialization, 2+=every event
19 // SkipUnderflows - flag indicating not to update underflows
20 // SkipOverflows - flag indicating not to update overflows
21 // MaxConsecutiveSamples - maxumum number of samples to interpolate over (negative for no limit)
22 // MaxConsecutiveFlag - Flag specifying what to do when there are too many consecutive samples.
23 // 0 - Make no change.
24 // 1 - Replace values with 0.0.
25 
26 #ifndef InterpolatingAdcMitigationService_H
27 #define InterpolatingAdcMitigationService_H
28 
30 
31 namespace lariov {
32  class DetPedestalProvider;
33 }
34 
36 
37 public:
38 
40 
41  int update(AdcChannelData& data) const;
42 
43  std::ostream& print(std::ostream& out =std::cout, std::string prefix ="") const;
44 
45 private:
46 
47  // Configuration parameters.
53 
54 };
55 
57 
58 #endif
std::string string
Definition: nybbler.cc:12
DECLARE_ART_SERVICE_INTERFACE_IMPL(MySharedService, art::test::MyServiceInterface, SHARED) DEFINE_ART_SERVICE_INTERFACE_IMPL(MySharedService
Filters for channels, events, etc.