HerdSoftware  0.4.0
ParametricGeoScdReader.h
Go to the documentation of this file.
1 /*
2  * ParametricGeoScdReader.h
3  *
4  * Created on: 25 May 2021
5  * Author: Valerio Formato
6  */
7 
10 #ifndef HERD_PARAMETRICGEOSCDREADER_H_
11 #define HERD_PARAMETRICGEOSCDREADER_H_
12 
13 #ifndef GGSSMARTLOG_H_
14 #define HERD_PARAMETRICGEOSCDREADER_H_UNDEF_LOGGING
15 #endif
16 
17 // GGS headers
18 #include "montecarlo/readers/GGSTRootReader.h"
19 
20 #ifdef HERD_PARAMETRICGEOSCDREADER_H_UNDEF_LOGGING
21 // Remove the definitions of GGS output macros (would conflict with the same macros defined in EventAnalysis)
22 // We only do this if GGSSmartLog.h is being parsed in this TU, otherwise there would be nothing to undef
23 // (or we could even be undefining the EA macros)
24 #undef COUT
25 #undef CCOUT
26 #undef ENDL
27 #endif
28 
29 // EA headers
30 #include "core/ObjectWrapper.h"
31 #include "core/RetrievalResult.h"
32 #include "utils/Memory.h"
33 
34 // HerdSoftware headers
37 
38 // c++ headers
39 #include <functional>
40 #include <string>
41 
42 namespace Herd::Readers {
43 // clang-format off
49 // clang-format on
51 public:
52  explicit ParametricGeoScdReader(std::shared_ptr<GGSTRootReader> ggsReader) : m_ggsReader{ggsReader} {};
53 
55  EA::RetrievalResult GetScdGeoParamsColl(EA::ObjectWrapper &wrapper);
56 
63  std::array<int, 4> SideDetectorFirstWaferID() { return m_sideDetectorFirstWaferID; }
64 
65 private:
66  std::shared_ptr<GGSTRootReader> m_ggsReader;
67 
69  std::array<int, 4> m_sideDetectorFirstWaferID;
70 
71  bool m_geoParamsRead = false;
72 };
73 } // namespace Herd::Readers
74 
75 #endif
Herd::Readers::ParametricGeoScdReader::ParametricGeoScdReader
ParametricGeoScdReader(std::shared_ptr< GGSTRootReader > ggsReader)
Definition: ParametricGeoScdReader.h:52
Herd::Readers::ParametricGeoScdReader::IsScdGeoParamsAvailable
bool IsScdGeoParamsAvailable()
Definition: ParametricGeoScdReader.cpp:5
Herd::Readers::ParametricGeoScdReader::m_ggsReader
std::shared_ptr< GGSTRootReader > m_ggsReader
Definition: ParametricGeoScdReader.h:66
Herd::Readers
Definition: GGSCaloHitsReader.h:43
Herd::Readers::ParametricGeoScdReader::GetScdGeoParamsColl
EA::RetrievalResult GetScdGeoParamsColl(EA::ObjectWrapper &wrapper)
Definition: ParametricGeoScdReader.cpp:19
Herd::Readers::ParametricGeoScdReader
ScdGeoParams reader class.
Definition: ParametricGeoScdReader.h:50
Herd::Readers::ParametricGeoScdReader::m_sdGeoParamsColl
ScdGeoParamsColl m_sdGeoParamsColl
Definition: ParametricGeoScdReader.h:68
Herd::Readers::ParametricGeoScdReader::SideDetectorFirstWaferID
std::array< int, 4 > SideDetectorFirstWaferID()
Get the GGS volID of the first wafer for each side detector.
Definition: ParametricGeoScdReader.h:63
Herd::Readers::ParametricGeoScdReader::m_geoParamsRead
bool m_geoParamsRead
Definition: ParametricGeoScdReader.h:71
ScdGeoParamsColl.h
DefaultValues.h
Herd::SidesArray< std::vector< ScdGeoParams > >
Herd::Readers::ParametricGeoScdReader::m_sideDetectorFirstWaferID
std::array< int, 4 > m_sideDetectorFirstWaferID
Definition: ParametricGeoScdReader.h:69