ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtTrackFinderTC.h
Go to the documentation of this file.
1 /********************************************************************
2  * AtTrackFinderTC (TriplClust) *
3  * Log: Class started 31-05-2021 *
4  * Author: Y. Ayyad (yassid.ayyad@usc.es) *
5  ********************************************************************/
6 
7 #ifndef AtTRACKFINDERTC_H
8 #define AtTRACKFINDERTC_H
9 
10 #ifdef _OPENMP
11 #include <omp.h>
12 #endif
13 #include "AtPRA.h" // for AtPRA
14 
15 #include <Rtypes.h> // for THashConsistencyHolder, ClassDef
16 
17 #include "cluster.h" // for Cluster
18 #include <stdio.h> // for size_t
19 
20 #include <memory> // for unique_ptr
21 #include <vector> // for vector
22 
23 class PointCloud;
24 class AtEvent;
25 class AtPatternEvent;
26 class TBuffer;
27 class TClass;
28 class TMemberInspector;
29 
30 namespace AtPATTERN {
31 struct hc_params {
32  float s;
33  size_t k;
34  size_t n;
35  size_t m;
36  float r;
37  float a;
38  float t;
39  float _padding;
40 };
41 
42 class AtTrackFinderTC : public AtPRA {
43 private:
44  hc_params inputParams{.s = 0.3, .k = 19, .n = 2, .m = 15, .r = 2, .a = 0.03, .t = 4.0};
45 
46 public:
48  ~AtTrackFinderTC() = default;
49 
50  std::unique_ptr<AtPatternEvent> FindTracks(AtEvent &event) override;
51 
52  void SetScluster(float s) { inputParams.s = s; }
53  void SetKtriplet(size_t k) { inputParams.k = k; }
54  void SetNtriplet(size_t n) { inputParams.n = n; }
55  void SetMcluster(size_t m) { inputParams.m = m; }
56  void SetRsmooth(float r) { inputParams.r = r; }
57  void SetAtriplet(float a) { inputParams.a = a; }
58  void SetTcluster(float t) { inputParams.t = t; }
59  void SetPadding(size_t padding) { inputParams._padding = padding; }
60 
61 private:
62  void eventToClusters(AtEvent &event, PointCloud &cloud);
63  std::unique_ptr<AtPatternEvent>
64  clustersToTrack(PointCloud &cloud, const std::vector<cluster_t> &clusters, AtEvent &event);
65 
66  ClassDefOverride(AtTrackFinderTC, 1);
67 };
68 
69 } // namespace AtPATTERN
70 
71 #endif
AtPatternEvent
Definition: AtPatternEvent.h:19
AtPATTERN::hc_params::_padding
float _padding
Definition: AtTrackFinderHC.h:45
AtPATTERN::AtTrackFinderTC::~AtTrackFinderTC
~AtTrackFinderTC()=default
AtPATTERN
Definition: AtEventDrawTaskS800.h:41
AtPATTERN::AtTrackFinderTC::SetTcluster
void SetTcluster(float t)
Definition: AtTrackFinderTC.h:58
AtPRA.h
AtPATTERN::AtTrackFinderTC::SetPadding
void SetPadding(size_t padding)
Definition: AtTrackFinderTC.h:59
AtPATTERN::AtPRA
Find patterns in hit clouds.
Definition: AtPRA.h:32
AtEvent
Definition: AtEvent.h:22
AtPATTERN::AtTrackFinderTC::AtTrackFinderTC
AtTrackFinderTC()
Definition: AtTrackFinderTC.cxx:28
AtPATTERN::hc_params::s
float s
Definition: AtTrackFinderHC.h:38
AtPATTERN::AtTrackFinderTC::SetNtriplet
void SetNtriplet(size_t n)
Definition: AtTrackFinderTC.h:54
AtPATTERN::hc_params::r
float r
Definition: AtTrackFinderHC.h:42
AtPATTERN::hc_params::t
float t
Definition: AtTrackFinderHC.h:44
AtPATTERN::AtTrackFinderTC::SetScluster
void SetScluster(float s)
Definition: AtTrackFinderTC.h:52
AtPATTERN::hc_params
Definition: AtTrackFinderHC.h:37
AtPATTERN::AtTrackFinderTC::FindTracks
std::unique_ptr< AtPatternEvent > FindTracks(AtEvent &event) override
Definition: AtTrackFinderTC.cxx:30
AtPATTERN::AtTrackFinderTC::SetRsmooth
void SetRsmooth(float r)
Definition: AtTrackFinderTC.h:56
hc_params
Definition: main.cpp:54
PointCloud
Definition: pointcloud.h:60
AtPATTERN::hc_params::m
size_t m
Definition: AtTrackFinderHC.h:41
AtPATTERN::AtTrackFinderTC::SetMcluster
void SetMcluster(size_t m)
Definition: AtTrackFinderTC.h:55
AtPATTERN::AtTrackFinderTC::SetAtriplet
void SetAtriplet(float a)
Definition: AtTrackFinderTC.h:57
AtPATTERN::hc_params::a
float a
Definition: AtTrackFinderHC.h:43
AtPATTERN::hc_params::k
size_t k
Definition: AtTrackFinderHC.h:39
AtPATTERN::AtTrackFinderTC::SetKtriplet
void SetKtriplet(size_t k)
Definition: AtTrackFinderTC.h:53
AtPATTERN::hc_params::n
size_t n
Definition: AtTrackFinderHC.h:40
AtPATTERN::AtTrackFinderTC
Definition: AtTrackFinderTC.h:42