HerdSoftware  0.4.0
PsdThreshTimeDigitizerAlgo.h
Go to the documentation of this file.
1 /*
2  * PsdThreshTimeDigitizerAlgo.h
3  *
4  * Created on: 17 Feb 2022
5  * Author: Nicola Mori
6  */
7 
8 #ifndef HERD_PSDTHRESHTIMEDIGITIZERALGO_H_
9 #define HERD_PSDTHRESHTIMEDIGITIZERALGO_H_
10 
11 // BSB headers
13 
14 // EventAnalysis headers
15 #include "algorithm/Algorithm.h"
16 using namespace EA;
17 
18 // C/C++ headers
19 #include <random>
20 
21 namespace Herd {
22 
23 // clang-format off
62 // clang-format on
63 class PsdThreshTimeDigitizerAlgo : public Algorithm {
64 public:
69  PsdThreshTimeDigitizerAlgo(const std::string &name);
70 
75  bool Initialize();
76 
81  bool Process();
82 
83 private:
84  // Parameters
85  std::string m_psdPartHitsCollName, // Name of PSD hits collection to be used
86  m_psdHitsCollName; // Name of PSD particle hits collection to be used
87  float m_threshold, // Value of energy threshold for the signal detection in a PSD tile
88  m_sigma; // Value of the gaussian uncertainty to be simulated on the time measurement
89  unsigned int m_rngSeed; // Seed for the random generator
90 
91  StorePtr m_evStore, m_globStore;
92 
93  PsdTimeStampsColl m_timeStampsColl; // Collection of timestamps to be published
94  std::mt19937 m_rnGenerator; // 32 bit Mersenne-Twister generator
95  std::unique_ptr<std::normal_distribution<float>> m_gaussDist;
96 };
97 
98 } // namespace Herd
99 
100 #endif // HERD_PSDTHRESHTIMEDIGITIZERALGO_H_
Herd::PsdThreshTimeDigitizerAlgo::m_globStore
StorePtr m_globStore
Definition: PsdThreshTimeDigitizerAlgo.h:91
Herd::PsdThreshTimeDigitizerAlgo::m_threshold
float m_threshold
Definition: PsdThreshTimeDigitizerAlgo.h:87
Herd::PsdThreshTimeDigitizerAlgo::m_rnGenerator
std::mt19937 m_rnGenerator
Definition: PsdThreshTimeDigitizerAlgo.h:94
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
PsdTimeStampsColl.h
Herd::PsdThreshTimeDigitizerAlgo::m_psdPartHitsCollName
std::string m_psdPartHitsCollName
Definition: PsdThreshTimeDigitizerAlgo.h:85
Herd::PsdThreshTimeDigitizerAlgo::m_psdHitsCollName
std::string m_psdHitsCollName
Definition: PsdThreshTimeDigitizerAlgo.h:86
Herd::PsdThreshTimeDigitizerAlgo::m_sigma
float m_sigma
Definition: PsdThreshTimeDigitizerAlgo.h:88
Herd::PsdThreshTimeDigitizerAlgo::m_gaussDist
std::unique_ptr< std::normal_distribution< float > > m_gaussDist
Definition: PsdThreshTimeDigitizerAlgo.h:95
Herd::PsdThreshTimeDigitizerAlgo
Algorithm that digitizes the PSD time measurement using a threshold identification.
Definition: PsdThreshTimeDigitizerAlgo.h:63
Herd::PsdThreshTimeDigitizerAlgo::m_timeStampsColl
PsdTimeStampsColl m_timeStampsColl
Definition: PsdThreshTimeDigitizerAlgo.h:93
Herd::PsdThreshTimeDigitizerAlgo::m_rngSeed
unsigned int m_rngSeed
Definition: PsdThreshTimeDigitizerAlgo.h:89
Herd::SidesArray< PsdTimeStamps >