HerdSoftware  0.4.0
CaloPDChannelInfoAlgo.h
Go to the documentation of this file.
1 /*
2  * CaloPDChannelInfoAlgo.h
3  *
4  * Created on: 20 Aug. 2020
5  * Author: Lorenzo Pacini
6  */
7 
8 #ifndef HERD_CALOPDCHANNELINFOALGO_H_
9 #define HERD_CALOPDCHANNELINFOALGO_H_
10 
11 // HerdSoftware headers
13 
14 // EventAnalysis headers
15 #include "algorithm/Algorithm.h"
16 
17 #include <random>
18 
19 namespace Herd {
20 
21 // clang-format off
85 // clang-format on
86 class CaloPDChannelInfoAlgo : public EA::Algorithm {
87 public:
92  CaloPDChannelInfoAlgo(const std::string &name);
93 
98  bool Initialize() override;
99 
104  bool Process() override;
105 
106 protected:
107 private:
115  void FillCaloPDChannelInfo(std::mt19937 &randGen, int nCubes, bool largePD);
116 
117  struct SignalRanges {
118  float lpdHighGain;
119  float lpdLowGain;
120  float spdHighGain;
121  float spdLowGain;
122  };
123 
124  struct GainRanges {
125  float high;
126  float low;
127  };
128 
134  float m_varLpdMip;
141  unsigned int m_seed;
146 
147  std::shared_ptr<CaloPDChannelInfo> m_caloLpdChannelInfo;
148  std::shared_ptr<CaloPDChannelInfo> m_caloSpdChannelInfo;
149 
150  EA::StorePtr m_evStore, m_globStore;
151 };
152 
153 } // namespace Herd
154 
155 #endif /* HERD_CALOPDCHANNELINFOALGO_H_ */
Herd::CaloPDChannelInfoAlgo::m_meanMaxVal
GainRanges m_meanMaxVal
Definition: CaloPDChannelInfoAlgo.h:139
Herd::CaloPDChannelInfoAlgo::m_varPDRatio
float m_varPDRatio
Definition: CaloPDChannelInfoAlgo.h:136
Herd::CaloPDChannelInfoAlgo::GainRanges::high
float high
Definition: CaloPDChannelInfoAlgo.h:125
Herd::CaloPDChannelInfoAlgo::m_varNoise
SignalRanges m_varNoise
Definition: CaloPDChannelInfoAlgo.h:130
Herd::CaloPDChannelInfoAlgo
Base algorithm which creates the information needed for the Calo PD read-out digitization.
Definition: CaloPDChannelInfoAlgo.h:86
Herd::CaloPDChannelInfoAlgo::SignalRanges::spdHighGain
float spdHighGain
Definition: CaloPDChannelInfoAlgo.h:120
Herd::CaloPDChannelInfoAlgo::m_globStore
EA::StorePtr m_globStore
Definition: CaloPDChannelInfoAlgo.h:150
Herd::CaloPDChannelInfoAlgo::m_meanPDRatio
float m_meanPDRatio
Definition: CaloPDChannelInfoAlgo.h:135
Herd::CaloPDChannelInfoAlgo::Initialize
bool Initialize() override
Initialization of the algorithm.
Definition: CaloPDChannelInfoAlgo.cpp:77
Herd::CaloPDChannelInfoAlgo::SignalRanges::spdLowGain
float spdLowGain
Definition: CaloPDChannelInfoAlgo.h:121
Herd::CaloPDChannelInfoAlgo::m_varSiSpdMip
float m_varSiSpdMip
Definition: CaloPDChannelInfoAlgo.h:145
Herd::CaloPDChannelInfoAlgo::m_varGainRatio
float m_varGainRatio
Definition: CaloPDChannelInfoAlgo.h:132
Herd::CaloPDChannelInfoAlgo::SignalRanges::lpdHighGain
float lpdHighGain
Definition: CaloPDChannelInfoAlgo.h:118
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::CaloPDChannelInfoAlgo::m_evStore
EA::StorePtr m_evStore
Definition: CaloPDChannelInfoAlgo.h:150
Herd::CaloPDChannelInfoAlgo::CaloPDChannelInfoAlgo
CaloPDChannelInfoAlgo(const std::string &name)
Constructor.
Definition: CaloPDChannelInfoAlgo.cpp:19
Herd::CaloPDChannelInfoAlgo::m_varSiLpdMip
float m_varSiLpdMip
Definition: CaloPDChannelInfoAlgo.h:143
Herd::CaloPDChannelInfoAlgo::m_meanGainRatio
float m_meanGainRatio
Definition: CaloPDChannelInfoAlgo.h:131
Herd::CaloPDChannelInfoAlgo::m_varLpdMip
float m_varLpdMip
Definition: CaloPDChannelInfoAlgo.h:134
Herd::CaloPDChannelInfoAlgo::SignalRanges::lpdLowGain
float lpdLowGain
Definition: CaloPDChannelInfoAlgo.h:119
Herd::CaloPDChannelInfoAlgo::m_meanPedestal
float m_meanPedestal
Definition: CaloPDChannelInfoAlgo.h:137
Herd::CaloPDChannelInfoAlgo::m_meanSiSpdMip
float m_meanSiSpdMip
Definition: CaloPDChannelInfoAlgo.h:144
Herd::CaloPDChannelInfoAlgo::m_meanLpdMip
float m_meanLpdMip
Definition: CaloPDChannelInfoAlgo.h:133
Herd::CaloPDChannelInfoAlgo::m_varMaxVal
GainRanges m_varMaxVal
Definition: CaloPDChannelInfoAlgo.h:140
Herd::CaloPDChannelInfoAlgo::m_seed
unsigned int m_seed
Definition: CaloPDChannelInfoAlgo.h:141
Herd::CaloPDChannelInfoAlgo::m_caloSpdChannelInfo
std::shared_ptr< CaloPDChannelInfo > m_caloSpdChannelInfo
Definition: CaloPDChannelInfoAlgo.h:148
Herd::CaloPDChannelInfoAlgo::m_meanNoise
SignalRanges m_meanNoise
Definition: CaloPDChannelInfoAlgo.h:129
CaloPDChannelInfo.h
Herd::CaloPDChannelInfoAlgo::GainRanges::low
float low
Definition: CaloPDChannelInfoAlgo.h:126
Herd::CaloPDChannelInfoAlgo::GainRanges
Definition: CaloPDChannelInfoAlgo.h:124
Herd::CaloPDChannelInfoAlgo::Process
bool Process() override
Process a single event.
Definition: CaloPDChannelInfoAlgo.cpp:224
Herd::CaloPDChannelInfoAlgo::m_varPedestal
float m_varPedestal
Definition: CaloPDChannelInfoAlgo.h:138
Herd::CaloPDChannelInfoAlgo::m_caloLpdChannelInfo
std::shared_ptr< CaloPDChannelInfo > m_caloLpdChannelInfo
Definition: CaloPDChannelInfoAlgo.h:147
Herd::CaloPDChannelInfoAlgo::m_meanSiLpdMip
float m_meanSiLpdMip
Definition: CaloPDChannelInfoAlgo.h:142
Herd::CaloPDChannelInfoAlgo::SignalRanges
Definition: CaloPDChannelInfoAlgo.h:117
Herd::CaloPDChannelInfoAlgo::FillCaloPDChannelInfo
void FillCaloPDChannelInfo(std::mt19937 &randGen, int nCubes, bool largePD)
Fill the channel info object related to large or small PDs (see largePD parameter).
Definition: CaloPDChannelInfoAlgo.cpp:116