HerdSoftware  0.4.0
CaloPDDigitizerAlgo.h
Go to the documentation of this file.
1 /*
2  * CaloPDDigitizerAlgo.h
3  *
4  * Created on: 26 Aug. 2020
5  * Author: Lorenzo Pacini
6  */
7 
8 #ifndef HERD_CALOPDDIGITIZERALGO_H_
9 #define HERD_CALOPDDIGITIZERALGO_H_
10 
11 // HerdSoftware headers
18 
19 // EventAnalysis headers
20 #include "algorithm/Algorithm.h"
21 
22 // C++ header
23 #include <random>
24 
25 namespace Herd {
26 
27 // clang-format off
72 // clang-format on
73 class CaloPDDigitizerAlgo : public EA::Algorithm {
74 public:
79  CaloPDDigitizerAlgo(const std::string &name);
80 
85  bool Initialize() override;
86 
91  bool Process() override;
92 
93 private:
100  EA::observer_ptr<CaloPDChannelInfo> m_caloLPDChannelInfo;
101  EA::observer_ptr<CaloPDChannelInfo> m_caloSPDChannelInfo;
104 
105  unsigned int m_seed;
106  float m_mipToGeV;
109  std::unique_ptr<std::mt19937> m_rdmEngine;
110 
111  bool m_pdHits = true;
113 
114  EA::StorePtr m_evStore, m_globStore;
115 
116  void DigitizeHit(unsigned int ID, float EDep, float eDepLpd, float eDepSpd, bool LPD = true);
117 };
118 
119 } // namespace Herd
120 
121 #endif /* HERD_CALOPDDIGITIZERALGO_H_ */
Herd::CaloPDDigitizerAlgo::m_caloLPDChannelInfo
EA::observer_ptr< CaloPDChannelInfo > m_caloLPDChannelInfo
Definition: CaloPDDigitizerAlgo.h:100
Herd::CaloPDDigitizerAlgo::m_caloSPDEventChannelInfo
CaloPDEventChannelInfo m_caloSPDEventChannelInfo
Definition: CaloPDDigitizerAlgo.h:103
Herd::CaloPDDigitizerAlgo::m_seed
unsigned int m_seed
Definition: CaloPDDigitizerAlgo.h:105
Herd::CaloPDDigitizerAlgo::DigitizeHit
void DigitizeHit(unsigned int ID, float EDep, float eDepLpd, float eDepSpd, bool LPD=true)
Definition: CaloPDDigitizerAlgo.cpp:83
Herd::CaloPDDigitizerAlgo::m_caloSpdHitsDigitizedIonization
CaloSpdHits m_caloSpdHitsDigitizedIonization
Definition: CaloPDDigitizerAlgo.h:97
Herd::CaloPDDigitizerAlgo::m_caloLpdHitsDigitizedScintillation
CaloHits m_caloLpdHitsDigitizedScintillation
Definition: CaloPDDigitizerAlgo.h:98
Herd::CaloPDDigitizerAlgo::m_pdHits
bool m_pdHits
Definition: CaloPDDigitizerAlgo.h:111
Herd::CaloPDDigitizerAlgo::CaloPDDigitizerAlgo
CaloPDDigitizerAlgo(const std::string &name)
Constructor.
Definition: CaloPDDigitizerAlgo.cpp:22
Herd::CaloPDDigitizerAlgo::m_globStore
EA::StorePtr m_globStore
Definition: CaloPDDigitizerAlgo.h:114
CaloLpdHits.h
Herd::CaloPDDigitizerAlgo::m_caloSPDHits
CaloHits m_caloSPDHits
Definition: CaloPDDigitizerAlgo.h:95
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::CaloPDDigitizerAlgo::Initialize
bool Initialize() override
Initialization of the algorithm.
Definition: CaloPDDigitizerAlgo.cpp:36
CaloPDEventChannelInfo.h
Herd::CaloPDDigitizerAlgo::m_caloLpdHitsDigitizedIonization
CaloLpdHits m_caloLpdHitsDigitizedIonization
Definition: CaloPDDigitizerAlgo.h:96
CaloHits
Container for the hits of a single CALO detector.
CaloLpdHits
Container for the hits of a single LPD detector.
Herd::CaloPDDigitizerAlgo::m_caloSPDChannelInfo
EA::observer_ptr< CaloPDChannelInfo > m_caloSPDChannelInfo
Definition: CaloPDDigitizerAlgo.h:101
Herd::CaloPDEventChannelInfo
Data structure for information regarding a channel connected to a Calo photodiode.
Definition: CaloPDEventChannelInfo.h:29
CaloSpdHits.h
CaloGeoParams.h
Herd::CaloPDDigitizerAlgo::m_disentangleIonization
bool m_disentangleIonization
Definition: CaloPDDigitizerAlgo.h:112
Herd::CaloPDDigitizerAlgo::m_caloLPDEventChannelInfo
CaloPDEventChannelInfo m_caloLPDEventChannelInfo
Definition: CaloPDDigitizerAlgo.h:102
CaloHits.h
Herd::CaloPDDigitizerAlgo::m_lpdMipToGeV
float m_lpdMipToGeV
Definition: CaloPDDigitizerAlgo.h:107
Herd::CaloPDDigitizerAlgo::m_rdmEngine
std::unique_ptr< std::mt19937 > m_rdmEngine
Definition: CaloPDDigitizerAlgo.h:109
Herd::CaloPDDigitizerAlgo::m_evStore
EA::StorePtr m_evStore
Definition: CaloPDDigitizerAlgo.h:114
CaloPDChannelInfo.h
Herd::CaloPDDigitizerAlgo::Process
bool Process() override
Process a single event.
Definition: CaloPDDigitizerAlgo.cpp:183
Herd::CaloPDDigitizerAlgo::m_mipToGeV
float m_mipToGeV
Definition: CaloPDDigitizerAlgo.h:106
Herd::CaloPDDigitizerAlgo::m_spdMipToGeV
float m_spdMipToGeV
Definition: CaloPDDigitizerAlgo.h:108
Herd::CaloPDDigitizerAlgo::m_caloLPDHits
CaloHits m_caloLPDHits
Definition: CaloPDDigitizerAlgo.h:94
CaloSpdHits
Container for the hits of a single SPD detector.
Herd::CaloPDDigitizerAlgo::m_caloSpdHitsDigitizedScintillation
CaloHits m_caloSpdHitsDigitizedScintillation
Definition: CaloPDDigitizerAlgo.h:99
Herd::CaloPDDigitizerAlgo
Algorithm for digitizers of the Monte Carlo hits of Calo based on a preliminary Pd readout.
Definition: CaloPDDigitizerAlgo.h:73