ATLAS Offline Software
TileRawChannelBuilderWienerFilter.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_TILERAWCHANNELBUILDERWIENERFILTER_H
6 #define TILERECUTILS_TILERAWCHANNELBUILDERWIENERFILTER_H
7 
9 //
10 // AUTHOR : G. Goncalves <ginaciog@cern.ch>
11 // CREATED: May 2019
12 //
13 // TileRawChannelBuilderWienerFilter.h
14 //
15 // implementation of the Wiener Filter for
16 // energy/time reconstruction in TileCal
17 //
19 
20 // Tile includes
26 
27 // Atlas includes
30 
31 #include <vector>
32 #include <string>
33 
49  public:
50 
51  TileRawChannelBuilderWienerFilter(const std::string& type, const std::string& name,
52  const IInterface *parent);
54 
55  // virtual methods
56  virtual StatusCode initialize() override;
57  virtual StatusCode finalize() override;
58 
59  // Inherited from TileRawChannelBuilder
60  virtual TileRawChannel* rawChannel(const TileDigits* digits, const EventContext& ctx) override;
61 
65  static const InterfaceID& interfaceID();
66 
67  private:
68 
69  ToolHandle<TileCondToolNoiseSample> m_tileToolNoiseSample{this,
70  "TileCondToolNoiseSample", "TileCondToolNoiseSample", "Tile noise sample tool"};
71 
73  "BunchCrossingCondDataKey", "BunchCrossingData" ,"SG Key of BunchCrossing CDO"};
74 
76  double filter(int ros, int drawer, int channel, int &gain, double &pedestal, double &amplitude, double &time, const EventContext &ctx);
77  int findMaxDigitPosition();
78  float getPedestal(int ros, int drawer, int channel, int gain, const EventContext &ctx);
81  double compute(int ros, int drawer, int channel, int gain, double &pedestal, double &amplitude, double &time, double& phase);
83  int getBCIDIndex(const EventContext &ctx);
84 
87  bool m_confTB;
89  bool m_isMC;
90  bool m_minus1Iter;
93 
94  bool m_bestPhase; // if true, use best phase from COOL DB in "fixed phase" mode (i.e., no iterations)
95  bool m_emulateDsp; // if true, emulate DSP reconstruction algorithm
96  int m_nSignal;
98  int m_nCenter;
99  int m_nConst;
100 
103  double m_maxTime;
104  double m_minTime;
105 
107 
108  std::vector<float> m_digits;
109 };
110 
111 #endif
ReadOfcFromCool.phase
phase
Definition: ReadOfcFromCool.py:127
TileRawChannelBuilderWienerFilter::m_nConst
int m_nConst
internal counters
Definition: TileRawChannelBuilderWienerFilter.h:99
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
TileRawChannelBuilderWienerFilter::interfaceID
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
Definition: TileRawChannelBuilderWienerFilter.cxx:35
TileRawChannelBuilderWienerFilter::m_maxTime
double m_maxTime
max allowed time = 25*(m_nSamples-1)/2
Definition: TileRawChannelBuilderWienerFilter.h:103
TileRawChannelBuilderWienerFilter::m_minTime
double m_minTime
min allowed time = -25*(m_nSamples-1)/2
Definition: TileRawChannelBuilderWienerFilter.h:104
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
ITileCondToolOfc.h
TileRawChannelBuilderWienerFilter::m_nSamples
int m_nSamples
number of samples in the data
Definition: TileRawChannelBuilderWienerFilter.h:101
TileWienerFilterWeights.h
TileWienerFilterWeightsStruct
Definition: TileWienerFilterWeights.h:11
TileRawChannelBuilderWienerFilter::m_isMC
bool m_isMC
bool variable for MC: true=> MC; false=> data
Definition: TileRawChannelBuilderWienerFilter.h:89
TileRawChannelBuilderWienerFilter::m_timeForConvergence
double m_timeForConvergence
minimum time difference to quit iteration procedure
Definition: TileRawChannelBuilderWienerFilter.h:88
TileCondToolTiming.h
Example_ReadSampleNoise.drawer
drawer
Definition: Example_ReadSampleNoise.py:39
TileRawChannelBuilderWienerFilter
Reconstructs Tile digitized pulses (ie, computes amplitude, time and pedestal) as a linear combinatio...
Definition: TileRawChannelBuilderWienerFilter.h:48
TileCondToolNoiseSample.h
TileRawChannelBuilderWienerFilter::m_digits
std::vector< float > m_digits
Definition: TileRawChannelBuilderWienerFilter.h:108
TileRawChannelBuilderWienerFilter::~TileRawChannelBuilderWienerFilter
~TileRawChannelBuilderWienerFilter()
Destructor.
Definition: TileRawChannelBuilderWienerFilter.cxx:75
TileRawChannelBuilderWienerFilter::m_nCenter
int m_nCenter
internal counters
Definition: TileRawChannelBuilderWienerFilter.h:98
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TileRawChannelBuilderWienerFilter::m_bunchCrossingKey
SG::ReadCondHandleKey< BunchCrossingCondData > m_bunchCrossingKey
Tool to get distance into bunch train.
Definition: TileRawChannelBuilderWienerFilter.h:72
TileRawChannelBuilderWienerFilter::m_nSignal
int m_nSignal
internal counters
Definition: TileRawChannelBuilderWienerFilter.h:96
TileRawChannelBuilderWienerFilter::m_correctAmplitude
bool m_correctAmplitude
If true, resulting amplitude is corrected when using weights for tau=0 without iteration.
Definition: TileRawChannelBuilderWienerFilter.h:91
TileRawChannel
Definition: TileRawChannel.h:35
TileRawChannelBuilderWienerFilter::m_correctTimeNI
bool m_correctTimeNI
If true, resulting time is corrected when using method without iteration.
Definition: TileRawChannelBuilderWienerFilter.h:92
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TileRawChannelBuilderWienerFilter::finalize
virtual StatusCode finalize() override
Finalize method.
Definition: TileRawChannelBuilderWienerFilter.cxx:154
TileRawChannelBuilderWienerFilter::compute
double compute(int ros, int drawer, int channel, int gain, double &pedestal, double &amplitude, double &time, double &phase)
Gets the BCID index within the train.
Definition: TileRawChannelBuilderWienerFilter.cxx:410
TileRawChannelBuilderWienerFilter::initialize
virtual StatusCode initialize() override
Initialize method.
Definition: TileRawChannelBuilderWienerFilter.cxx:78
TileRawChannelBuilderWienerFilter::m_minus1Iter
bool m_minus1Iter
bool variable for whether to apply -1 iteration (initial phase guess)
Definition: TileRawChannelBuilderWienerFilter.h:90
TileRawChannelBuilder
Definition: TileRawChannelBuilder.h:59
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
TileRawChannelBuilderWienerFilter::m_bestPhase
bool m_bestPhase
Definition: TileRawChannelBuilderWienerFilter.h:94
TileRawChannelBuilderWienerFilter::findMaxDigitPosition
int findMaxDigitPosition()
Finds maximum digit position in the pulse.
Definition: TileRawChannelBuilderWienerFilter.cxx:244
TileRawChannelBuilderWienerFilter::m_maxIterations
int m_maxIterations
maximum number of iteration to perform
Definition: TileRawChannelBuilderWienerFilter.h:85
ReadCondHandleKey.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TileDigits
Definition: TileDigits.h:30
TileRawChannelBuilderWienerFilter::m_confTB
bool m_confTB
use testbeam configuration
Definition: TileRawChannelBuilderWienerFilter.h:87
TileRawChannelBuilderWienerFilter::TileRawChannelBuilderWienerFilter
TileRawChannelBuilderWienerFilter(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: TileRawChannelBuilderWienerFilter.cxx:42
TileRawChannelBuilderWienerFilter::m_tileToolNoiseSample
ToolHandle< TileCondToolNoiseSample > m_tileToolNoiseSample
Definition: TileRawChannelBuilderWienerFilter.h:69
TileRawChannelBuilderWienerFilter::m_pedestalMode
int m_pedestalMode
pedestal mode to use
Definition: TileRawChannelBuilderWienerFilter.h:86
TileRawChannelBuilder.h
SG::ReadCondHandleKey< BunchCrossingCondData >
TileRawChannelBuilderWienerFilter::getPedestal
float getPedestal(int ros, int drawer, int channel, int gain, const EventContext &ctx)
Computes A,time,ped using OF.
Definition: TileRawChannelBuilderWienerFilter.cxx:274
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TileRawChannelBuilderWienerFilter::m_nNegative
int m_nNegative
internal counters
Definition: TileRawChannelBuilderWienerFilter.h:97
TileRawChannelBuilderWienerFilter::filter
double filter(int ros, int drawer, int channel, int &gain, double &pedestal, double &amplitude, double &time, const EventContext &ctx)
Definition: TileRawChannelBuilderWienerFilter.cxx:352
TileRawChannelBuilderWienerFilter::rawChannel
virtual TileRawChannel * rawChannel(const TileDigits *digits, const EventContext &ctx) override
Builder virtual method to be implemented by subclasses.
Definition: TileRawChannelBuilderWienerFilter.cxx:168
BunchCrossingCondData.h
Replaces the BunchCrossing AlgTool used in run1/2.
TileRawChannelBuilderWienerFilter::m_t0SamplePosition
int m_t0SamplePosition
position of peak sample = (m_nSamples-1)/2
Definition: TileRawChannelBuilderWienerFilter.h:102
TileRawChannelBuilderWienerFilter::m_emulateDsp
bool m_emulateDsp
Definition: TileRawChannelBuilderWienerFilter.h:95
TileRawChannelBuilderWienerFilter::getBCIDIndex
int getBCIDIndex(const EventContext &ctx)
Definition: TileRawChannelBuilderWienerFilter.cxx:313
TileRawChannelBuilderWienerFilter::m_weights
const TileWienerFilterWeightsStruct * m_weights
structure for Wiener Filter weights
Definition: TileRawChannelBuilderWienerFilter.h:106