10 #ifndef HERD_GGSSILICONDETECTORHITSREADER_H_ 11 #define HERD_GGSSILICONDETECTORHITSREADER_H_ 13 #ifndef GGSSMARTLOG_H_ 14 #define HERD_GGSSILICONDETECTORHITSREADER_H_UNDEF_LOGGING 18 #include "montecarlo/readers/GGSTHitsReader.h" 19 #include "montecarlo/readers/GGSTRootReader.h" 21 #ifdef HERD_GGSSILICONDETECTORHITSREADER_H_UNDEF_LOGGING 31 #include "core/ObjectWrapper.h" 32 #include "core/RetrievalResult.h" 33 #include "utils/Memory.h" 62 : m_ggsReader{std::move(ggsReader)}, m_hitReader{m_ggsReader->GetReader<GGSTHitsReader>()}, m_type{type} {};
72 bool IsSiliconDetectorHitsCollAvailable();
80 RetrievalResult GetSiliconDetectorHitsColl(ObjectWrapper &wrapper);
99 RetrievalResult GetSiliconDetectorWaferParticleHitsColl(ObjectWrapper &wrapper);
115 std::vector<std::string> FreeObjects(
const std::vector<std::string> &objs, Memory::Status memStatus);
123 void SetSiliconDetectorGeoParamsColl(observer_ptr<SiliconDetectorGeoParamsColl> sdGeoParamsColl);
140 GGSTHitsReader *m_hitReader =
nullptr;
141 long long int m_lastHitsReadEvent = std::numeric_limits<long long int>::max();
142 long long int m_lastPartHitsReadEvent = std::numeric_limits<long long int>::max();
146 observer_ptr<SiliconDetectorGeoParamsColl> m_sdGeoParamsColl =
nullptr;
147 int m_topSDDetIndex = std::numeric_limits<int>::lowest();
148 int m_sideSDHDetIndex = std::numeric_limits<int>::lowest();
149 int m_sideSDVDetIndex = std::numeric_limits<int>::lowest();
150 std::array<int, 4> m_sideSDFirstWaferID{};
155 bool firstRun =
true;
156 bool SetupSDReadout();
std::shared_ptr< GGSTRootReader > m_ggsReader
Set the GGS volID of the first strip for each side SD detector.
Definition: GGSSiliconDetectorHitsReader.h:139
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:24
SiliconDetectorParticleHitsColl m_sdWaferParticleHitsColl
Definition: GGSSiliconDetectorHitsReader.h:153
DetectorType
Definition: GGSSiliconDetectorHitsReader.h:59
void SetSideDetectorFirstWaferID(std::array< int, 4 > sideSDFirstWaferID)
Set the GGS volID of the first wafer for each side SD detector.
Definition: GGSSiliconDetectorHitsReader.h:129
DetectorType m_type
Definition: GGSSiliconDetectorHitsReader.h:144
SiliconDetectorHits reader class.
Definition: GGSSiliconDetectorHitsReader.h:57
bool IsSiliconDetectorWaferParticleHitsCollAvailable()
Checks if SiliconDetector particle hits are available in the simulation file.
Definition: GGSSiliconDetectorHitsReader.h:91
SiliconDetectorHitsColl m_sdHitsColl
Definition: GGSSiliconDetectorHitsReader.h:152
GGSSiliconDetectorHitsReader(std::shared_ptr< GGSTRootReader > ggsReader, DetectorType type)
Definition: GGSSiliconDetectorHitsReader.h:61