HerdSoftware  0.4.0
HFCluster.h
Go to the documentation of this file.
1 /*
2  * HFCluster.h
3  *
4  * Created on: 18 Oct 2019
5  * Author: Valerio Formato
6  */
7 
8 #ifndef HFCLUSTER_H_
9 #define HFCLUSTER_H_
10 
14 
15 #include "core/ObserverPtr.h"
16 
17 #include <numeric>
18 
19 namespace Herd {
20 
21 class HFCluster : public Cluster {
22 public:
23  enum class DetectorType { NONE = -1, Scd, Fit };
24 
25  HFCluster() = default;
26  HFCluster(const Cluster &cl, const TrackingDetectorGeoParams &geoParams, DetectorType type);
27 
28  [[nodiscard]] Point COGPosition() const { return m_cogPosition; };
29 
30  [[nodiscard]] RefFrame::Side Side() const { return m_side; };
31  [[nodiscard]] size_t LayerNumber() const { return m_layerNumber; };
32  [[nodiscard]] RefFrame::Axis NormalAxis() const { return m_normalAxis; };
33  [[nodiscard]] DetectorType Type() const { return m_type; }
34 
35 private:
37  Point m_cogPosition{defaultValue<Point>};
39  size_t m_layerNumber{defaultValue<size_t>};
41 };
42 } // namespace Herd
43 
44 #endif
ScdGeoParams.h
Herd::HFCluster::HFCluster
HFCluster()=default
Herd::TrackingDetectorGeoParams
Base data structure for single tracking detector layer geometry parameters.
Definition: TrackingDetectorGeoParams.h:31
Herd::HFCluster::COGPosition
Point COGPosition() const
Definition: HFCluster.h:28
Herd::Vec3D
A class describing a vector in 3D space.
Definition: Vec3D.h:33
Herd::HFCluster::Side
RefFrame::Side Side() const
Definition: HFCluster.h:30
Herd::HFCluster::DetectorType::Fit
@ Fit
Herd::Cluster
Tracker cluster object for transient data model.
Definition: Cluster.h:30
Herd::RefFrame::Axis::NONE
@ NONE
Herd::HFCluster::m_type
DetectorType m_type
Definition: HFCluster.h:36
Herd::HFCluster::NormalAxis
RefFrame::Axis NormalAxis() const
Definition: HFCluster.h:32
Herd::RefFrame::Side
Side
Aliases for the five sides.
Definition: RefFrame.h:111
Herd::HFCluster::m_side
RefFrame::Side m_side
Definition: HFCluster.h:38
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::HFCluster::LayerNumber
size_t LayerNumber() const
Definition: HFCluster.h:31
RefFrame.h
Herd::HFCluster::m_normalAxis
RefFrame::Axis m_normalAxis
Definition: HFCluster.h:40
Herd::RefFrame::Axis
Axis
Aliases for the axes.
Definition: RefFrame.h:34
Herd::HFCluster::Type
DetectorType Type() const
Definition: HFCluster.h:33
Herd::HFCluster::m_layerNumber
size_t m_layerNumber
Definition: HFCluster.h:39
Herd::HFCluster::DetectorType::NONE
@ NONE
Cluster.h
Herd::HFCluster::DetectorType
DetectorType
Definition: HFCluster.h:23
Herd::HFCluster::m_cogPosition
Point m_cogPosition
Definition: HFCluster.h:37
Herd::RefFrame::Side::NONE
@ NONE
Herd::HFCluster
Definition: HFCluster.h:21
Herd::HFCluster::DetectorType::Scd
@ Scd