HerdSoftware  0.3.2
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
15 #include "dataobjects/CaloHits.h"
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 
48  CaloShower(Herd::CaloHits caloHits, Line showerAxis, Point showerStart, float energyThreshold,
49  const CaloGeoParams &geoParams);
50 
52  virtual ~CaloShower() = default;
53 
60  float ShowerStartLongitudinalDepth(const CaloGeoParams &geoParams) const;
61 
65  Point StartingPoint() const { return m_startingPoint; };
66 
70  Line ShowerAxis() const { return m_showerAxis; };
71 
75  const Herd::CaloHits &CaloHits() const { return m_caloHits; };
76 
83  float Edep() const { return m_edep; };
84 
91  float MaxHitEdep() const { return m_maxHitEdep; };
92 
102  float MaxHitOnAxisLongitudinalDepth(const CaloGeoParams &geoParams) const;
103 
110 
125  size_t CaloClusterIndex() const { return m_caloClustersIndex; }
126 
142  const std::string &CaloDataObjName() const { return m_caloDataObjName; }
143 
150  size_t TrackIndex() const { return m_trackIndex; }
151 
159  const std::string &TrackDataObjName() const { return m_trackDataObjName; }
160 
165  void SetCaloClusterIndex(size_t index) { m_caloClustersIndex = index; }
166 
174  void SetCaloDataObjName(std::string name) { m_caloDataObjName = std::move(name); }
175 
180  void SetTrackIndex(size_t index) { m_trackIndex = index; }
181 
189  void SetTrackDataObjName(std::string name) { m_trackDataObjName = std::move(name); }
190 
191 private:
192  float m_edep;
196 
197  Herd::CaloHits m_caloHits; // Internal reference to caloHits used for this Axis
198  Line m_showerAxis; // Internal reference to Line used for this shower
199 
201  std::string m_caloDataObjName{};
202  size_t m_trackIndex;
203  std::string m_trackDataObjName{};
204 
206 
207 #ifdef HS_USE_ROOT
208  ClassDef(CaloShower, 1)
209 #endif
210 };
211 
212 } // namespace Herd
213 
214 #endif /* HERD_CALOSHOWER_H_ */
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:24
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:174
Herd::CaloHits m_caloHits
Definition: CaloShower.h:197
Point StartingPoint() const
position (Point) of the reconstructed interaction point.
Definition: CaloShower.h:65
size_t m_trackIndex
Definition: CaloShower.h:202
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:189
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:56
float m_edep
Definition: CaloShower.h:192
const std::string & TrackDataObjName() const
Returns the name of the track data object used to build the shower.
Definition: CaloShower.h:159
virtual ~CaloShower()=default
Virtual destructor.
float Edep() const
Return the total energy deposited in the shower.
Definition: CaloShower.h:83
void SetTrackIndex(size_t index)
Sets the index of the Track used to build the shower.
Definition: CaloShower.h:180
float m_energyThreshold
Definition: CaloShower.h:205
Point MaxHitOnAxisPosition() const
Return the position of the projection on the axis of the hit containing the maximum signal...
Definition: CaloShower.h:109
Point m_startingPoint
Definition: CaloShower.h:193
size_t TrackIndex() const
Returns the index of the track object used to build the shower.
Definition: CaloShower.h:150
A class describing a vector in 3D space.
Definition: Vec3D.h:33
const Herd::CaloHits & CaloHits() const
Return the collection of Hits used in the Shower Analysis.
Definition: CaloShower.h:75
Data structure for the Calo geometry parameters.
Definition: CaloGeoParams.h:34
Class describing a line in the 3D space.
Definition: Line.h:34
float ShowerStartLongitudinalDepth(const CaloGeoParams &geoParams) const
Return depth in CALO of the shower starting point.
Definition: CaloShower.cpp:46
Container of information about the Calorimeter Shower .
Definition: CaloShower.h:30
Line ShowerAxis() const
Return the Line used as ShowerAxis in the Shower Analysis.
Definition: CaloShower.h:70
float MaxHitEdep() const
Return the energy deposit in the hit which contain the maximum energy deposit.
Definition: CaloShower.h:91
std::string m_caloDataObjName
Definition: CaloShower.h:201
Line m_showerAxis
Definition: CaloShower.h:198
void SetCaloClusterIndex(size_t index)
Sets the index of the CALO hits cluster used to build the shower.
Definition: CaloShower.h:165
CaloShower()
Default constructor.
Definition: CaloShower.cpp:18
Point m_maxHitOnAxis
Definition: CaloShower.h:195
std::string m_trackDataObjName
Definition: CaloShower.h:203
std::vector< Hit > CaloHits
Definition: CaloHits.h:21
size_t m_caloClustersIndex
Definition: CaloShower.h:200
float m_maxHitEdep
Definition: CaloShower.h:194
const std::string & CaloDataObjName() const
Returns the name of the CALO data object used to build the shower.
Definition: CaloShower.h:142
size_t CaloClusterIndex() const
Returns the index of the hits cluster used to build the axis.
Definition: CaloShower.h:125