HerdSoftware  0.4.0
ScdBondingDigitizerAlgo.h
Go to the documentation of this file.
1 /*
2  * ScdBondingDigitizerAlgo.h
3  *
4  * Created on: 22 Sep 2020
5  * Author: Nicola Mori
6  */
7 
8 #ifndef HERD_SCDBONDINGDIGITIZERALGO_H_
9 #define HERD_SCDBONDINGDIGITIZERALGO_H_
10 
11 // HerdSoftware headers
14 
15 // EventAnalysis headers
16 #include "algorithm/Algorithm.h"
17 
18 namespace Herd {
19 
20 // clang-format off
78 // clang-format on
79 class ScdBondingDigitizerAlgo : public EA::Algorithm {
80 public:
85  ScdBondingDigitizerAlgo(const std::string &name);
86 
91  bool Initialize() override;
92 
97  bool Process() override;
98 
107  std::vector<std::string> FreeObjects(const std::vector<std::string> &objs, EA::Memory::Status memStatus) override;
108 
109 private:
110  // Parameters
115 
118  std::shared_ptr<ScdGeoParamsColl> m_bondedGeoParamsColl;
119  EA::observer_ptr<ScdGeoParamsColl> m_origGeoParamsColl;
120  EA::StorePtr m_evStore, m_globStore;
121 
122  // Helper functions
123 
132  ScdHitsColl _Bond(const ScdHitsColl &hitsColl);
133 
143  ScdGeoParams _CreateGeoParams(const ScdGeoParams &origGeoParams, int nWafersPerLadder);
144 
145  int _NWafersPerLadder(RefFrame::Side side, int iLayer) {
147  : (iLayer % 2 == 0 ? m_nWafersPerLadderSideEven : m_nWafersPerLadderSideOdd));
148  }
149 };
150 
151 } // namespace Herd
152 
153 #endif /* HERD_SCDBONDINGDIGITIZERALGO_H_ */
Herd::ScdBondingDigitizerAlgo::m_bondedGeoParamsColl
std::shared_ptr< ScdGeoParamsColl > m_bondedGeoParamsColl
Definition: ScdBondingDigitizerAlgo.h:118
Herd::ScdBondingDigitizerAlgo::Initialize
bool Initialize() override
Initialization of the algorithm.
Definition: ScdBondingDigitizerAlgo.cpp:28
Herd::ScdBondingDigitizerAlgo::_Bond
ScdHitsColl _Bond(const ScdHitsColl &hitsColl)
Bonds the silicon strips.
Definition: ScdBondingDigitizerAlgo.cpp:159
Herd::ScdBondingDigitizerAlgo::m_bondedHitsColl
ScdHitsColl m_bondedHitsColl
Definition: ScdBondingDigitizerAlgo.h:117
Herd::ScdBondingDigitizerAlgo::m_nWafersPerLadderSideOdd
int m_nWafersPerLadderSideOdd
Definition: ScdBondingDigitizerAlgo.h:114
Herd::RefFrame::Side
Side
Aliases for the five sides.
Definition: RefFrame.h:111
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::ScdBondingDigitizerAlgo::m_nWafersPerLadderTop
int m_nWafersPerLadderTop
Number of wafers in each ladder, i.e. wafers to be bonded together, on top face.
Definition: ScdBondingDigitizerAlgo.h:111
Herd::ScdBondingDigitizerAlgo::Process
bool Process() override
Process a single event.
Definition: ScdBondingDigitizerAlgo.cpp:119
Herd::ScdBondingDigitizerAlgo::FreeObjects
std::vector< std::string > FreeObjects(const std::vector< std::string > &objs, EA::Memory::Status memStatus) override
Free the memory of unneeded objects.
Definition: ScdBondingDigitizerAlgo.cpp:145
Herd::ScdBondingDigitizerAlgo::_CreateGeoParams
ScdGeoParams _CreateGeoParams(const ScdGeoParams &origGeoParams, int nWafersPerLadder)
Creates the geometry parameter objects for the bonded detector.
Definition: ScdBondingDigitizerAlgo.cpp:238
Herd::ScdBondingDigitizerAlgo::m_nWafersPerLadderSideEven
int m_nWafersPerLadderSideEven
Definition: ScdBondingDigitizerAlgo.h:112
Herd::RefFrame::Side::TOP
@ TOP
Herd::ScdBondingDigitizerAlgo::m_origGeoParamsColl
EA::observer_ptr< ScdGeoParamsColl > m_origGeoParamsColl
Definition: ScdBondingDigitizerAlgo.h:119
ScdGeoParamsColl.h
Herd::ScdBondingDigitizerAlgo
Base algorithm for bonding digitizers of the Monte Carlo hits of the Silicon Charge Detector.
Definition: ScdBondingDigitizerAlgo.h:79
Herd::ScdBondingDigitizerAlgo::m_evStore
EA::StorePtr m_evStore
Definition: ScdBondingDigitizerAlgo.h:120
Herd::ScdBondingDigitizerAlgo::ScdBondingDigitizerAlgo
ScdBondingDigitizerAlgo(const std::string &name)
Constructor.
Definition: ScdBondingDigitizerAlgo.cpp:19
ScdHitsColl.h
Herd::ScdBondingDigitizerAlgo::m_globStore
EA::StorePtr m_globStore
Definition: ScdBondingDigitizerAlgo.h:120
Herd::ScdBondingDigitizerAlgo::_NWafersPerLadder
int _NWafersPerLadder(RefFrame::Side side, int iLayer)
Definition: ScdBondingDigitizerAlgo.h:145
Herd::ScdGeoParams
Data structure for single silicon layer geometry parameters.
Definition: ScdGeoParams.h:35
Herd::SidesArray< ScdHits >