HerdSoftware  0.4.0
PsdGeometricDigitizerAlgo.h
Go to the documentation of this file.
1 /*
2  * PsdGeometricDigitizerAlgo.h
3  *
4  * Created on: 11 Jan 2019
5  * Author: Nicola Mori
6  */
7 
8 #ifndef HERD_PSDGEOMETRICDIGITIZERALGO_H_
9 #define HERD_PSDGEOMETRICDIGITIZERALGO_H_
10 
11 // HerdSoftware headers
15 
16 // EventAnalysis headers
17 #include "algorithm/Algorithm.h"
18 
19 namespace Herd {
20 
21 // clang-format off
74 // clang-format on
75 
76 class PsdGeometricDigitizerAlgo : public EA::Algorithm {
77 public:
82  PsdGeometricDigitizerAlgo(const std::string &name);
83 
88  bool Initialize() override;
89 
96  bool Process() override;
97 
106  std::vector<std::string> FreeObjects(const std::vector<std::string> &objs, EA::Memory::Status memStatus) override;
107 
108 private:
109  // Parameters
111 
112  PsdHitsColl m_aggrPsdHitsColl; // New aggregated hits
113  PsdParticleHitsColl m_aggrPsdParticleHitsColl; // New aggregated particle hits
114  EA::observer_ptr<PsdGeoParamsColl> m_origPsdGeoParamsColl; // Original parameters
115  std::shared_ptr<PsdGeoParamsColl> m_aggrPsdGeoParamsColl; // New aggregated parameters
116 
117  EA::StorePtr m_evStore, m_globStore;
118 
148  void Aggregate(const std::vector<PsdGeoParams> &originalGeoParams, const PsdHits &originalHits,
149  EA::observer_ptr<const PsdParticleHits> originalParticleHits, const AxesArray<int> &aggrFactors,
150  const std::vector<PsdGeoParams> &aggregatedGeoParams, PsdHits &aggregatedHits,
151  PsdParticleHits &aggregatedParticleHits);
152  // Utility variables for calling _AggregateTiles
154 
156  const AxesArray<int> &aggrFactors);
157 };
158 
159 } // namespace Herd
160 
161 #endif /* HERD_PSDGEOMETRICDIGITIZERALGO_H_ */
Herd::PsdGeometricDigitizerAlgo::m_topAggrFactor
AxesArray< int > m_topAggrFactor
Definition: PsdGeometricDigitizerAlgo.h:110
Herd::PsdGeometricDigitizerAlgo::m_aggrPsdGeoParamsColl
std::shared_ptr< PsdGeoParamsColl > m_aggrPsdGeoParamsColl
Definition: PsdGeometricDigitizerAlgo.h:115
Herd::PsdGeometricDigitizerAlgo::m_latAggrFactor
AxesArray< int > m_latAggrFactor
Definition: PsdGeometricDigitizerAlgo.h:110
Herd::PsdGeometricDigitizerAlgo
Algorithm that groups the Monte Carlo PSD hits based on a purely geometric criterion.
Definition: PsdGeometricDigitizerAlgo.h:76
Herd::CooArray< unsigned char >
Herd::PsdGeometricDigitizerAlgo::Initialize
bool Initialize() override
Initialization of the algorithm.
Definition: PsdGeometricDigitizerAlgo.cpp:46
Herd::PsdGeometricDigitizerAlgo::Aggregate
void Aggregate(const std::vector< PsdGeoParams > &originalGeoParams, const PsdHits &originalHits, EA::observer_ptr< const PsdParticleHits > originalParticleHits, const AxesArray< int > &aggrFactors, const std::vector< PsdGeoParams > &aggregatedGeoParams, PsdHits &aggregatedHits, PsdParticleHits &aggregatedParticleHits)
Aggregate hits for a single PSD detector.
Definition: PsdGeometricDigitizerAlgo.cpp:210
Herd::PsdGeometricDigitizerAlgo::PsdGeometricDigitizerAlgo
PsdGeometricDigitizerAlgo(const std::string &name)
Constructor.
Definition: PsdGeometricDigitizerAlgo.cpp:20
Herd::AxesArray< int >
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::PsdGeometricDigitizerAlgo::Process
bool Process() override
Process a single event.
Definition: PsdGeometricDigitizerAlgo.cpp:147
Herd::PsdGeometricDigitizerAlgo::m_globStore
EA::StorePtr m_globStore
Definition: PsdGeometricDigitizerAlgo.h:117
PsdHitsColl.h
Herd::PsdGeometricDigitizerAlgo::m_tileMainAggrAxis
SidesArray< RefFrame::Axis > m_tileMainAggrAxis
Definition: PsdGeometricDigitizerAlgo.h:153
Herd::PsdGeometricDigitizerAlgo::m_evStore
EA::StorePtr m_evStore
Definition: PsdGeometricDigitizerAlgo.h:117
Herd::PsdGeometricDigitizerAlgo::AggregatedIndexes
CooArray< unsigned char > AggregatedIndexes(const CooArray< unsigned char > &origIndexes, const AxesArray< int > &aggrFactors)
Definition: PsdGeometricDigitizerAlgo.cpp:274
Herd::PsdGeometricDigitizerAlgo::m_aggrPsdHitsColl
PsdHitsColl m_aggrPsdHitsColl
Definition: PsdGeometricDigitizerAlgo.h:112
PsdHits
Container for the hits of a single PSD detector.
Herd::PsdGeometricDigitizerAlgo::FreeObjects
std::vector< std::string > FreeObjects(const std::vector< std::string > &objs, EA::Memory::Status memStatus) override
Free the memory of unneeded objects.
Definition: PsdGeometricDigitizerAlgo.cpp:193
PsdParticleHitsColl.h
Herd::PsdGeometricDigitizerAlgo::m_aggrPsdParticleHitsColl
PsdParticleHitsColl m_aggrPsdParticleHitsColl
Definition: PsdGeometricDigitizerAlgo.h:113
PsdParticleHits
Container for the particle hits of a single PSD detector.
Herd::PsdGeometricDigitizerAlgo::m_origPsdGeoParamsColl
EA::observer_ptr< PsdGeoParamsColl > m_origPsdGeoParamsColl
Definition: PsdGeometricDigitizerAlgo.h:114
Herd::PsdGeometricDigitizerAlgo::m_tileSecAggrAxis
SidesArray< RefFrame::Axis > m_tileSecAggrAxis
Definition: PsdGeometricDigitizerAlgo.h:153
PsdGeoParamsColl.h
Herd::SidesArray< PsdHits >