ATLAS Offline Software
TileRawChannelBuilderFlatFilter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TILERECUTILS_TILERAWCHANNELBUILDERFLATFILTER_H
6 #define TILERECUTILS_TILERAWCHANNELBUILDERFLATFILTER_H
7 
8 /********************************************************************
9  *
10  * NAME: TileRawChannelBuilderFlatFilter.h
11  * PACKAGE: offline/TileCalorimeter/TileRecUtils
12  *
13  * AUTHOR : K. Gellerstedt
14  * CREATED: Oct 17 2003
15  *
16  * PURPOSE: Build TileRawChannels from digits using flat filter
17  *
18  * Input: TileDigitsContainer
19  * Output: TileRawChannelContainer
20  * Parameters: TileRawChannelCont - Name of output container in SG
21  * PedStart
22  * PedLength
23  * PedOffset
24  * SignalStart
25  * SignalLength
26  * FilterLength
27  * FrameLength
28  * DeltaCutLo
29  * DeltaCutHi
30  * RMSCutLo
31  * RMSCutHi
32  ********************************************************************/
33 
34 // Tile includes
36 
37 #include <inttypes.h>
38 
40  public:
41 
42  // constructor
43  TileRawChannelBuilderFlatFilter(const std::string& type, const std::string& name,
44  const IInterface *parent);
45  // destructor
47 
48  // virtual methods
49  virtual StatusCode initialize();
50  virtual StatusCode finalize();
51 
52  // Inherited from TileRawChannelBuilder
53  virtual TileRawChannel * rawChannel(const TileDigits* digits, const EventContext& ctx);
54 
61  void flatFilter(const std::vector<uint32_t> &digits, const int gain
62  , double& amplitude, double& time) const;
63 
70  void flatFilter(const std::vector<float> &digits, const int gain
71  , double& amplitude, double& time) const;
72 
76  static const InterfaceID& interfaceID();
77 
78  private:
79 
93  bool isSignalInFrame(const std::vector<float> &digits, double deltaCut, double rmsCut,
94  int &frameMax, int &frameMin, double &frameMean, double &frameRMS) const;
103  double getPedestal(const std::vector<float> &digits, int pedStart, int pedLgt) const;
104 
116  int getMaxAdder(const std::vector<float> &digits, int filterLength, int signalStart,
117  int signalLength, int &tMax, int &tMaxFrame, int &adderFrame) const;
118 
119  int getMaxSample(const std::vector<float> &digits, int signalStart, int signalLength
120  , int &tMax, int &tMaxFrame, int &sampleFrame) const;
121 
122  double calculatePeak(const std::vector<float> &digits, int peakPos, double ped,
123  double &position) const;
124 
136  double calculateFlatFilter(const std::vector<float> &digits, int filterStart
137  , int filterLength, double ped, double &position) const;
138 
149  double getTime(const std::vector<float> &digits, int signalStart
150  , int signalLength, double ped) const;
151 
152  // parameters
153  int m_pedStart; // start of pedestal window
154  int m_pedLength; // length of pedestal window
155  int m_pedOffset; // if > 0 ped can be taken after signal as well
156  int m_signalStart; // start of signal window
157  int m_signalLength; // length of signal window
158  int m_filterLength;
159  int m_frameLength;
160 
161  double m_deltaCut[2]; // Cut for signalInFrame, lo/hi gain
162  double m_rmsCut[2]; // RMS cut for signalInFram, lo/hi gain
163 
164 };
165 
166 #endif
TileRawChannelBuilderFlatFilter::finalize
virtual StatusCode finalize()
Definition: TileRawChannelBuilderFlatFilter.cxx:86
TileRawChannelBuilderFlatFilter::m_pedOffset
int m_pedOffset
Definition: TileRawChannelBuilderFlatFilter.h:179
TileRawChannelBuilderFlatFilter::m_pedLength
int m_pedLength
Definition: TileRawChannelBuilderFlatFilter.h:178
TileRawChannelBuilderFlatFilter::getMaxAdder
int getMaxAdder(const std::vector< float > &digits, int filterLength, int signalStart, int signalLength, int &tMax, int &tMaxFrame, int &adderFrame) const
Get position of maximal adder (sum of <filterLength> samples) in whole frame and in signal window (<s...
Definition: TileRawChannelBuilderFlatFilter.cxx:217
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
TileRawChannelBuilderFlatFilter::calculatePeak
double calculatePeak(const std::vector< float > &digits, int peakPos, double ped, double &position) const
Definition: TileRawChannelBuilderFlatFilter.cxx:359
TileRawChannelBuilderFlatFilter::m_deltaCut
double m_deltaCut[2]
Definition: TileRawChannelBuilderFlatFilter.h:185
TileRawChannelBuilderFlatFilter::isSignalInFrame
bool isSignalInFrame(const std::vector< float > &digits, double deltaCut, double rmsCut, int &frameMax, int &frameMin, double &frameMean, double &frameRMS) const
Find min and max sample Calculate mean and RMS of all samples.
Definition: TileRawChannelBuilderFlatFilter.cxx:143
TileRawChannelBuilderFlatFilter::initialize
virtual StatusCode initialize()
Initializer.
Definition: TileRawChannelBuilderFlatFilter.cxx:74
TileRawChannelBuilderFlatFilter::m_signalLength
int m_signalLength
Definition: TileRawChannelBuilderFlatFilter.h:181
TileRawChannelBuilderFlatFilter
Definition: TileRawChannelBuilderFlatFilter.h:39
TileRawChannelBuilderFlatFilter::m_pedStart
int m_pedStart
Definition: TileRawChannelBuilderFlatFilter.h:177
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TileRawChannelBuilderFlatFilter::~TileRawChannelBuilderFlatFilter
~TileRawChannelBuilderFlatFilter()
Destructor.
Definition: TileRawChannelBuilderFlatFilter.cxx:68
TileRawChannel
Definition: TileRawChannel.h:35
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TileRawChannelBuilder
Definition: TileRawChannelBuilder.h:59
TileRawChannelBuilderFlatFilter::flatFilter
void flatFilter(const std::vector< uint32_t > &digits, const int gain, double &amplitude, double &time) const
Filter given digits using FlatFilter method.
Definition: TileRawChannelBuilderFlatFilter.cxx:558
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TileDigits
Definition: TileDigits.h:30
TileRawChannelBuilderFlatFilter::getTime
double getTime(const std::vector< float > &digits, int signalStart, int signalLength, double ped) const
Calculate the time of signal in window of <signalLength> starting at <signalStart> Result is sum of t...
Definition: TileRawChannelBuilderFlatFilter.cxx:445
TileRawChannelBuilderFlatFilter::m_filterLength
int m_filterLength
Definition: TileRawChannelBuilderFlatFilter.h:182
Example_ReadSampleNoise.ped
ped
Definition: Example_ReadSampleNoise.py:45
TileRawChannelBuilderFlatFilter::getPedestal
double getPedestal(const std::vector< float > &digits, int pedStart, int pedLgt) const
Calculate pedestal as mean of <pedLgt> samples starting from <pedStart>
Definition: TileRawChannelBuilderFlatFilter.cxx:174
TileRawChannelBuilder.h
TileRawChannelBuilderFlatFilter::calculateFlatFilter
double calculateFlatFilter(const std::vector< float > &digits, int filterStart, int filterLength, double ped, double &position) const
Calculate energy using flat filter Sum of <filterLength> samples starting at <filterStart> Requires p...
Definition: TileRawChannelBuilderFlatFilter.cxx:415
TileRawChannelBuilderFlatFilter::m_rmsCut
double m_rmsCut[2]
Definition: TileRawChannelBuilderFlatFilter.h:186
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TileRawChannelBuilderFlatFilter::getMaxSample
int getMaxSample(const std::vector< float > &digits, int signalStart, int signalLength, int &tMax, int &tMaxFrame, int &sampleFrame) const
Definition: TileRawChannelBuilderFlatFilter.cxx:290
TileRawChannelBuilderFlatFilter::TileRawChannelBuilderFlatFilter
TileRawChannelBuilderFlatFilter(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: TileRawChannelBuilderFlatFilter.cxx:41
TileRawChannelBuilderFlatFilter::rawChannel
virtual TileRawChannel * rawChannel(const TileDigits *digits, const EventContext &ctx)
Builder virtual method to be implemented by subclasses.
Definition: TileRawChannelBuilderFlatFilter.cxx:92
TileRawChannelBuilderFlatFilter::m_signalStart
int m_signalStart
Definition: TileRawChannelBuilderFlatFilter.h:180
TileRawChannelBuilderFlatFilter::m_frameLength
int m_frameLength
Definition: TileRawChannelBuilderFlatFilter.h:183
TileRawChannelBuilderFlatFilter::interfaceID
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
Definition: TileRawChannelBuilderFlatFilter.cxx:31