HerdSoftware  0.4.0
ScdGeometricDigitizerAlgo.h
Go to the documentation of this file.
1 /*
2  * ScdGeometricDigitizerAlgo.h
3  *
4  * Created on: 15 Nov 2019
5  * Author: Lorenzo Pacini
6  */
7 
8 #ifndef HERD_SCDGEOMETRICDIGITIZERALGO_H_
9 #define HERD_SCDGEOMETRICDIGITIZERALGO_H_
10 
11 // HerdSoftware headers
15 
16 // EventAnalysis headers
17 #include "algorithm/Algorithm.h"
18 
19 namespace Herd {
20 
21 // clang-format off
65 // clang-format on
66 class ScdGeometricDigitizerAlgo : public EA::Algorithm {
67 public:
72  ScdGeometricDigitizerAlgo(const std::string &name);
73 
78  bool Initialize() override;
79 
84  bool Process() override;
85 
94  std::vector<std::string> FreeObjects(const std::vector<std::string> &objs, EA::Memory::Status memStatus) override;
95 
96 private:
97  // Parameters
98  float m_pitch;
99 
101  EA::observer_ptr<ScdGeoParamsColl> m_origScdGeoParamsColl;
102  std::shared_ptr<ScdGeoParamsColl> m_digScdGeoParamsColl;
103 
104  EA::StorePtr m_evStore, m_globStore;
105 
106  // Helper functions
107 
117  void _Digitize(const ScdParticleHitsColl &particleHitsColl, const ScdHitsColl &hitsColl, ScdHitsColl &digHitsColl);
118 
129  ScdGeoParams _CreateGeoParams(const ScdGeoParams &origGeoParams);
130 };
131 
132 } // namespace Herd
133 
134 #endif /* HERD_SCDGEOMETRICDIGITIZERALGO_H_ */
Herd::ScdGeometricDigitizerAlgo::m_pitch
float m_pitch
Definition: ScdGeometricDigitizerAlgo.h:98
Herd::ScdGeometricDigitizerAlgo
Base algorithm for digitizers of the Monte Carlo hits of the Silicon Charge Detector,...
Definition: ScdGeometricDigitizerAlgo.h:66
Herd::ScdGeometricDigitizerAlgo::_Digitize
void _Digitize(const ScdParticleHitsColl &particleHitsColl, const ScdHitsColl &hitsColl, ScdHitsColl &digHitsColl)
Digitizes the silicon hits.
Definition: ScdGeometricDigitizerAlgo.cpp:109
Herd::ScdGeometricDigitizerAlgo::ScdGeometricDigitizerAlgo
ScdGeometricDigitizerAlgo(const std::string &name)
Constructor.
Definition: ScdGeometricDigitizerAlgo.cpp:19
Herd::ScdGeometricDigitizerAlgo::m_origScdGeoParamsColl
EA::observer_ptr< ScdGeoParamsColl > m_origScdGeoParamsColl
Definition: ScdGeometricDigitizerAlgo.h:101
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::ScdGeometricDigitizerAlgo::m_digScdGeoParamsColl
std::shared_ptr< ScdGeoParamsColl > m_digScdGeoParamsColl
Definition: ScdGeometricDigitizerAlgo.h:102
Herd::ScdGeometricDigitizerAlgo::Initialize
bool Initialize() override
Initialization of the algorithm.
Definition: ScdGeometricDigitizerAlgo.cpp:24
Herd::ScdGeometricDigitizerAlgo::m_evStore
EA::StorePtr m_evStore
Definition: ScdGeometricDigitizerAlgo.h:104
Herd::ScdGeometricDigitizerAlgo::_CreateGeoParams
ScdGeoParams _CreateGeoParams(const ScdGeoParams &origGeoParams)
Creates the geometry parameter objects for the digitized detector.
Definition: ScdGeometricDigitizerAlgo.cpp:181
ScdGeoParamsColl.h
Herd::ScdGeometricDigitizerAlgo::Process
bool Process() override
Process a single event.
Definition: ScdGeometricDigitizerAlgo.cpp:66
ScdHitsColl.h
Herd::ScdGeometricDigitizerAlgo::m_globStore
EA::StorePtr m_globStore
Definition: ScdGeometricDigitizerAlgo.h:104
ScdParticleHitsColl.h
Herd::ScdGeometricDigitizerAlgo::FreeObjects
std::vector< std::string > FreeObjects(const std::vector< std::string > &objs, EA::Memory::Status memStatus) override
Free the memory of unneeded objects.
Definition: ScdGeometricDigitizerAlgo.cpp:95
Herd::ScdGeoParams
Data structure for single silicon layer geometry parameters.
Definition: ScdGeoParams.h:35
Herd::ScdGeometricDigitizerAlgo::m_siliconDetectorDigHitsColl
ScdHitsColl m_siliconDetectorDigHitsColl
Definition: ScdGeometricDigitizerAlgo.h:100
Herd::SidesArray< ScdHits >