ATLAS Offline Software
TileRawChannelBuilderQIEFilter.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_TILERAWCHANNELBUILDERQIEFILTER_H
6 #define TILERECUTILS_TILERAWCHANNELBUILDERQIEFILTER_H
7 
9 //
10 // Author:
11 // Alexander.Paramonov@cern.ch
12 //
13 // Created:
14 // 05 February 2016
15 //
16 // File Name:
17 // TileRawChannelBuilderQIEFilter.h
18 //
19 // Description:
20 // The code calculates time and energy/charge of QIE pulses
21 //
23 
24 // Tile includes
30 
31 #include <vector>
32 #include <string>
33 
42  public:
43 
44  TileRawChannelBuilderQIEFilter(const std::string& type, const std::string& name, const IInterface *parent);
46 
47  // virtual methods
48  virtual StatusCode initialize();
49  //virtual StatusCode execute();
50  virtual StatusCode finalize();
51 
52  // Inherited from TileRawChannelBuilder
53  virtual TileRawChannel* rawChannel(const TileDigits* digits, const EventContext& ctx);
54 
58  static const InterfaceID& interfaceID();
59 
60  private:
61 
62  //ToolHandle<TileCondToolTiming> m_tileToolTiming;
63  //ToolHandle<ITileCondToolOfc> m_tileCondToolOfc;
64  //ToolHandle<TileCondToolOfcCool> m_tileCondToolOfcCool;
65  //ToolHandle<TileCondToolNoiseSample> m_tileToolNoiseSample; //!< tool which provides noise values
66 
68  float filter(int ros, int drawer, int channel, float &amplitude, float &time);
69  int findMaxDigitPosition();
70  //float setPedestal(int ros, int drawer, int channel, int gain);
73  //int iterate(int ros, int drawer, int channel, int gain, double &pedestal, double &amplitude, double &time,
74  // double &chi2);
76  float compute(int ros, int drawer, int channel, float &amplitude, float &time);
77 
78 // void BuildPulseShape(std::vector<double> &m_pulseShape, std::vector<double> &m_pulseShapeX
79 // , std::vector<double> &m_pulseShapeT, int dignum, MsgStream &log); //!< Builds pulse shapes
80 
81  //void ofc2int(int nDigits, double* w_off, short* w_int, short& scale); // convert weights to dsp short int format
82 
83  //int m_maxIterations; //!< maximum number of iteration to perform
85  //bool m_confTB; //!< use testbeam configuration
86  //double m_timeForConvergence; //!< minimum time difference to quit iteration procedure
87  // bool m_of2; //!< bool variable for OF method: true=> OF2; false=> OF1
88  //bool m_minus1Iter; //!< bool variable for whether to apply -1 iteration (initial phase guess)
89  // bool m_correctAmplitude; //!< If true, resulting amplitude is corrected when using weights for tau=0 without iteration
90 
91  //bool m_bestPhase; // if true, use best phase from COOL DB in "fixed phase" mode (i.e., no iterations)
92  //bool m_ofcFromCool; // if true, take OFCs from DB (no on-fly calculations)
93  //bool m_emulateDsp; // if true, emulate DSP reconstruction algorithm
94  int m_nSignal;
95  //int m_nNegative; //!< internal counters
96  //int m_nCenter; //!< internal counters
97  int m_nConst;
98 
99  int m_nSamples;
100  //int m_t0SamplePosition; //!< position of peak sample = (m_nSamples-1)/2
101  //float m_maxTime; //!< max allowed time = 25*(m_nSamples-1)/2
102  //float m_minTime; //!< min allowed time = -25*(m_nSamples-1)/2
103 
104 // std::vector<double> m_LpulseShape_cis; //!< vector for low gain/CIS pulse shape
105 // std::vector<double> m_HpulseShape_cis; //!< vector for high gain/CIS pulse shape
106 // std::vector<double> m_LpulseShape_phys; //!< vector for low gain/Physics pulse shape
107 // std::vector<double> m_HpulseShape_phys; //!< vector for high gain/Physics pulse shape
108 //
109 // std::vector<double> m_LdpulseShape_cis; //!< vector for low gain/CIS pulse derivative
110 // std::vector<double> m_HdpulseShape_cis; //!< vector for high gain/CIS pulse derivative
111 // std::vector<double> m_LdpulseShape_phys; //!< vector for low gain/Physics pulse derivative
112 // std::vector<double> m_HdpulseShape_phys; //!< vector for high gain/Physics pulse derivative
113 
114  std::vector<float> m_digits;
115 };
116 
117 #endif
TileRawChannelBuilderQIEFilter::initialize
virtual StatusCode initialize()
Initialize method.
Definition: TileRawChannelBuilderQIEFilter.cxx:94
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
TileRawChannelBuilderQIEFilter::m_nSignal
int m_nSignal
internal counters
Definition: TileRawChannelBuilderQIEFilter.h:94
TileRawChannelBuilderQIEFilter::findMaxDigitPosition
int findMaxDigitPosition()
Finds maximum digit position in the pulse.
Definition: TileRawChannelBuilderQIEFilter.cxx:235
ITileCondToolOfc.h
TileCondToolTiming.h
TileRawChannelBuilderQIEFilter::m_nConst
int m_nConst
internal counters
Definition: TileRawChannelBuilderQIEFilter.h:97
Example_ReadSampleNoise.drawer
drawer
Definition: Example_ReadSampleNoise.py:39
TileRawChannelBuilderQIEFilter
Reconstructs Tile digitized pulses (ie, computes amplitude and time) for the QIE front-end.
Definition: TileRawChannelBuilderQIEFilter.h:41
TileRawChannelBuilderQIEFilter::m_digits
std::vector< float > m_digits
Definition: TileRawChannelBuilderQIEFilter.h:114
TileCondToolOfcCool.h
TileRawChannelBuilderQIEFilter::finalize
virtual StatusCode finalize()
Finalize method.
Definition: TileRawChannelBuilderQIEFilter.cxx:145
TileRawChannelBuilderQIEFilter::interfaceID
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
Definition: TileRawChannelBuilderQIEFilter.cxx:47
TileCondToolNoiseSample.h
TileRawChannelBuilderQIEFilter::compute
float compute(int ros, int drawer, int channel, float &amplitude, float &time)
< Apply the number of iterations needed for reconstruction by calling the Filter method
Definition: TileRawChannelBuilderQIEFilter.cxx:409
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TileRawChannel
Definition: TileRawChannel.h:35
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TileRawChannelBuilderQIEFilter::filter
float filter(int ros, int drawer, int channel, float &amplitude, float &time)
< Applies OF algorithm
Definition: TileRawChannelBuilderQIEFilter.cxx:309
TileRawChannelBuilder
Definition: TileRawChannelBuilder.h:59
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TileDigits
Definition: TileDigits.h:30
TileRawChannelBuilderQIEFilter::m_nSamples
int m_nSamples
number of samples in the data
Definition: TileRawChannelBuilderQIEFilter.h:99
TileRawChannelBuilder.h
TileRawChannelBuilderQIEFilter::rawChannel
virtual TileRawChannel * rawChannel(const TileDigits *digits, const EventContext &ctx)
Builder virtual method to be implemented by subclasses.
Definition: TileRawChannelBuilderQIEFilter.cxx:167
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
TileRawChannelBuilderQIEFilter::TileRawChannelBuilderQIEFilter
TileRawChannelBuilderQIEFilter(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: TileRawChannelBuilderQIEFilter.cxx:53
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TileRawChannelBuilderQIEFilter::~TileRawChannelBuilderQIEFilter
~TileRawChannelBuilderQIEFilter()
Destructor.
Definition: TileRawChannelBuilderQIEFilter.cxx:91
TileRawChannelBuilderQIEFilter::m_pedestalMode
int m_pedestalMode
pedestal mode to use
Definition: TileRawChannelBuilderQIEFilter.h:84