HerdSoftware  0.4.0
CaloShower.h
Go to the documentation of this file.
1 /*
2  * CaloShower.h
3  *
4  * Created on: 18 November 2021
5  * Author: Sergio Bottai
6  */
7 
10 #ifndef HERD_CALOSHOWER_H_
11 #define HERD_CALOSHOWER_H_
12 
13 // HerdSoftware headers
16 
17 #ifdef HS_USE_ROOT
18 #include "Rtypes.h"
19 #endif
20 
21 namespace Herd {
22 
30 class CaloShower {
31 public:
37  CaloShower();
38 
50  CaloShower(Herd::CaloHits caloHits, Line showerAxis, Point showerStart, float energyThreshold,
51  const CaloGeoParams &geoParams);
52 
54  virtual ~CaloShower() = default;
55 
62  [[nodiscard]] float ShowerStartLongitudinalDepth(const CaloGeoParams &geoParams) const;
63 
67  [[nodiscard]] Point StartingPoint() const { return m_startingPoint; };
68 
72  [[nodiscard]] Line ShowerAxis() const { return m_showerAxis; };
73 
77  [[nodiscard]] const Herd::CaloHits &CaloHits() const { return m_caloHits; };
78 
85  [[nodiscard]] float Edep() const { return m_edep; };
86 
93  [[nodiscard]] float MaxHitEdep() const { return m_maxHitEdep; };
94 
104  [[nodiscard]] float MaxHitOnAxisLongitudinalDepth(const CaloGeoParams &geoParams) const;
105 
111  [[nodiscard]] Point MaxHitOnAxisPosition() const { return m_maxHitOnAxis; };
112 
127  [[nodiscard]] size_t CaloClusterIndex() const { return m_caloClustersIndex; }
128 
144  [[nodiscard]] const std::string &CaloDataObjName() const { return m_caloDataObjName; }
145 
152  [[nodiscard]] size_t TrackIndex() const { return m_trackIndex; }
153 
161  [[nodiscard]] const std::string &TrackDataObjName() const { return m_trackDataObjName; }
162 
167  void SetCaloClusterIndex(size_t index) { m_caloClustersIndex = index; }
168 
176  void SetCaloDataObjName(std::string name) { m_caloDataObjName = std::move(name); }
177 
182  void SetTrackIndex(size_t index) { m_trackIndex = index; }
183 
191  void SetTrackDataObjName(std::string name) { m_trackDataObjName = std::move(name); }
192 
193 private:
194  float m_edep;
198 
199  Herd::CaloHits m_caloHits; // Internal reference to caloHits used for this Axis
200  Line m_showerAxis; // Internal reference to Line used for this shower
201 
203  std::string m_caloDataObjName{};
204  size_t m_trackIndex;
205  std::string m_trackDataObjName{};
206 
208 
209 #ifdef HS_USE_ROOT
210  ClassDef(CaloShower, 1)
211 #endif
212 };
213 
214 } // namespace Herd
215 
216 #endif /* HERD_CALOSHOWER_H_ */
Herd::CaloShower::Edep
float Edep() const
Return the total energy deposited in the shower.
Definition: CaloShower.h:85
Herd::CaloShower::SetTrackIndex
void SetTrackIndex(size_t index)
Sets the index of the Track used to build the shower.
Definition: CaloShower.h:182
Herd::CaloShower::~CaloShower
virtual ~CaloShower()=default
Virtual destructor
Herd::CaloShower::MaxHitEdep
float MaxHitEdep() const
Return the energy deposit in the hit which contain the maximum energy deposit.
Definition: CaloShower.h:93
Herd::CaloShower::m_showerAxis
Line m_showerAxis
Definition: CaloShower.h:200
Herd::Vec3D
A class describing a vector in 3D space.
Definition: Vec3D.h:33
Herd::CaloShower::CaloShower
CaloShower()
Default constructor.
Definition: CaloShower.cpp:18
Herd::CaloShower::m_trackDataObjName
std::string m_trackDataObjName
Definition: CaloShower.h:205
Herd::Line
Class describing a line in the 3D space.
Definition: Line.h:37
Herd::CaloShower::SetCaloClusterIndex
void SetCaloClusterIndex(size_t index)
Sets the index of the CALO hits cluster used to build the shower.
Definition: CaloShower.h:167
Herd::CaloShower::m_caloDataObjName
std::string m_caloDataObjName
Definition: CaloShower.h:203
Herd::CaloShower::SetTrackDataObjName
void SetTrackDataObjName(std::string name)
Sets the name of the track data object from which the Track used to build the shower was taken.
Definition: CaloShower.h:191
Herd::CaloShower::StartingPoint
Point StartingPoint() const
position (Point) of the reconstructed interaction point.
Definition: CaloShower.h:67
Herd::CaloShower::m_startingPoint
Point m_startingPoint
Definition: CaloShower.h:195
Herd::CaloShower::m_trackIndex
size_t m_trackIndex
Definition: CaloShower.h:204
Herd::CaloShower::TrackIndex
size_t TrackIndex() const
Returns the index of the track object used to build the shower.
Definition: CaloShower.h:152
Herd::CaloShower::m_maxHitEdep
float m_maxHitEdep
Definition: CaloShower.h:196
Herd::CaloShower::SetCaloDataObjName
void SetCaloDataObjName(std::string name)
Sets the name of the CALO data object from which the cluster used to build the shower was taken.
Definition: CaloShower.h:176
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::CaloShower::MaxHitOnAxisLongitudinalDepth
float MaxHitOnAxisLongitudinalDepth(const CaloGeoParams &geoParams) const
Return depth in CALO of the hit with the maximum energy deposition along the shower axis.
Definition: CaloShower.cpp:57
Herd::CaloShower::m_caloClustersIndex
size_t m_caloClustersIndex
Definition: CaloShower.h:202
Herd::CaloShower::ShowerAxis
Line ShowerAxis() const
Return the Line used as ShowerAxis in the Shower Analysis.
Definition: CaloShower.h:72
Herd::CaloShower::CaloHits
const Herd::CaloHits & CaloHits() const
Return the collection of Hits used in the Shower Analysis.
Definition: CaloShower.h:77
Herd::CaloGeoParams
Data structure for the Calo geometry parameters.
Definition: CaloGeoParams.h:35
CaloGeoParams.h
Herd::CaloShower::ShowerStartLongitudinalDepth
float ShowerStartLongitudinalDepth(const CaloGeoParams &geoParams) const
Return depth in CALO of the shower starting point.
Definition: CaloShower.cpp:46
Herd::CaloShower::CaloDataObjName
const std::string & CaloDataObjName() const
Returns the name of the CALO data object used to build the shower.
Definition: CaloShower.h:144
Herd::CaloShower::m_energyThreshold
float m_energyThreshold
Definition: CaloShower.h:207
CaloHits.h
Herd::CaloShower::m_maxHitOnAxis
Point m_maxHitOnAxis
Definition: CaloShower.h:197
Herd::CaloHits
std::vector< Hit > CaloHits
Definition: CaloHits.h:21
Herd::CaloShower::TrackDataObjName
const std::string & TrackDataObjName() const
Returns the name of the track data object used to build the shower.
Definition: CaloShower.h:161
Herd::CaloShower::MaxHitOnAxisPosition
Point MaxHitOnAxisPosition() const
Return the position of the projection on the axis of the hit containing the maximum signal....
Definition: CaloShower.h:111
Herd::CaloShower::CaloClusterIndex
size_t CaloClusterIndex() const
Returns the index of the hits cluster used to build the axis.
Definition: CaloShower.h:127
Herd::CaloShower
Container of information about the Calorimeter Shower .
Definition: CaloShower.h:30
Herd::CaloShower::m_edep
float m_edep
Definition: CaloShower.h:194
Herd::CaloShower::m_caloHits
Herd::CaloHits m_caloHits
Definition: CaloShower.h:199