ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtPRAtask.h
Go to the documentation of this file.
1 #ifndef AtPRATASK_H
2 #define AtPRATASK_H
3 
4 #include <FairTask.h> // for FairTask, InitStatus
5 
6 #include <Rtypes.h> // for Int_t, Double_t, Bool_t, THashConsistencyH...
7 #include <TClonesArray.h> // for TClonesArray
8 #include <TString.h>
9 
10 #include <cstddef> // for size_t
11 #include <utility>
12 
13 class AtDigiPar;
14 class TBuffer;
15 class TClass;
16 class TMemberInspector;
17 namespace AtPATTERN {
18 class AtPRA;
19 }
20 
26 class AtPRAtask : public FairTask {
27 private:
28  TString fInputBranchName;
29  TString fOutputBranchName;
30 
31  TClonesArray *fEventHArray{};
32  TClonesArray fPatternEventArray;
33 
34  AtDigiPar *fPar;
35 
36  AtPATTERN::AtPRA *fPRA{};
37 
38  Int_t fPRAlgorithm;
39 
40  Int_t fMinNumHits;
41  Int_t fMaxNumHits;
42 
43  Bool_t kIsPersistence;
44 
45  // HC parameters
46  float fHCs;
47  size_t fHCk;
48  size_t fHCn;
49  size_t fHCm;
50  float fHCr;
51  float fHCa;
52  float fHCt;
53  size_t fHCpadding;
54 
55  // Prunning parameters
56  Bool_t kSetPrunning;
57  Int_t fKNN; //<! Number of nearest neighbors kNN
58  Double_t fStdDevMulkNN; //<! Std dev multiplier for kNN
59  Double_t fkNNDist; //<! Distance threshold for outlier rejection in kNN
60 
61  // Clustering parameters
62  Double_t fClusterRadius{5.5};
63  Double_t fClusterDistance{10.0};
64 
65 public:
66  AtPRAtask();
67  ~AtPRAtask();
68 
69  virtual InitStatus Init();
70  virtual void Exec(Option_t *option);
71  virtual void SetParContainers();
72  virtual void Finish();
73 
74  void SetInputBranch(TString branchName) { fInputBranchName = std::move(branchName); }
75  void SetOutputBranch(TString branchName) { fOutputBranchName = std::move(branchName); }
76 
77  void SetPersistence(Bool_t value = kTRUE);
78  void SetPRAlgorithm(Int_t value = 0);
79 
80  void SetScluster(float s) { fHCs = s; }
81  void SetKtriplet(size_t k) { fHCk = k; }
82  void SetNtriplet(size_t n) { fHCn = n; }
83  void SetMcluster(size_t m) { fHCm = m; }
84  void SetRsmooth(float r) { fHCr = r; }
85  void SetAtriplet(float a) { fHCa = a; }
86  void SetTcluster(float t) { fHCt = t; }
87  void SetPadding(size_t padding) { fHCpadding = padding; }
88 
89  void SetMaxNumHits(Int_t maxHits) { fMaxNumHits = maxHits; }
90  void SetMinNumHits(Int_t minHits) { fMinNumHits = minHits; }
91 
92  void SetPrunning() { kSetPrunning = kTRUE; }
93  void SetkNN(Double_t knn) { fKNN = knn; }
94  void SetStdDevMulkNN(Double_t stdDevMul) { fStdDevMulkNN = stdDevMul; }
95  void SetkNNDist(Double_t dist) { fkNNDist = dist; }
96 
97  void SetClusterRadius(Double_t clusterRadius) { fClusterRadius = clusterRadius; }
98  void SetClusterDistance(Double_t clusterDistance) { fClusterDistance = clusterDistance; }
99 
101 };
102 
103 #endif
AtPRAtask::SetOutputBranch
void SetOutputBranch(TString branchName)
Definition: AtPRAtask.h:75
AtPRAtask::SetPersistence
void SetPersistence(Bool_t value=kTRUE)
Definition: AtPRAtask.cxx:54
AtPRAtask::AtPRAtask
AtPRAtask()
Definition: AtPRAtask.cxx:22
AtPRAtask::SetkNN
void SetkNN(Double_t knn)
Definition: AtPRAtask.h:93
AtPRAtask::SetMaxNumHits
void SetMaxNumHits(Int_t maxHits)
Definition: AtPRAtask.h:89
AtPRAtask::SetPadding
void SetPadding(size_t padding)
Definition: AtPRAtask.h:87
AtPRAtask::SetRsmooth
void SetRsmooth(float r)
Definition: AtPRAtask.h:84
AtPATTERN
Definition: AtEventDrawTaskS800.h:41
AtPRAtask::SetStdDevMulkNN
void SetStdDevMulkNN(Double_t stdDevMul)
Definition: AtPRAtask.h:94
AtPRAtask::SetNtriplet
void SetNtriplet(size_t n)
Definition: AtPRAtask.h:82
AtPATTERN::AtPRA
Find patterns in hit clouds.
Definition: AtPRA.h:32
AtPRAtask::Init
virtual InitStatus Init()
Definition: AtPRAtask.cxx:80
AtPRAtask::~AtPRAtask
~AtPRAtask()
Definition: AtPRAtask.cxx:49
AtPRAtask::SetMinNumHits
void SetMinNumHits(Int_t minHits)
Definition: AtPRAtask.h:90
AtPRAtask::ClassDef
ClassDef(AtPRAtask, 1)
AtPRAtask::SetParContainers
virtual void SetParContainers()
Definition: AtPRAtask.cxx:63
AtPRAtask::SetPrunning
void SetPrunning()
Definition: AtPRAtask.h:92
AtPRAtask::SetkNNDist
void SetkNNDist(Double_t dist)
Definition: AtPRAtask.h:95
AtDigiPar
Definition: AtDigiPar.h:14
AtPRAtask::SetAtriplet
void SetAtriplet(float a)
Definition: AtPRAtask.h:85
AtPRAtask::SetMcluster
void SetMcluster(size_t m)
Definition: AtPRAtask.h:83
AtPRAtask
Task for finding patterns in hit clouds.
Definition: AtPRAtask.h:26
AtPRAtask::SetClusterRadius
void SetClusterRadius(Double_t clusterRadius)
Definition: AtPRAtask.h:97
AtPRAtask::Finish
virtual void Finish()
Definition: AtPRAtask.cxx:181
AtPRAtask::SetClusterDistance
void SetClusterDistance(Double_t clusterDistance)
Definition: AtPRAtask.h:98
AtPRAtask::SetScluster
void SetScluster(float s)
Definition: AtPRAtask.h:80
AtPRAtask::SetPRAlgorithm
void SetPRAlgorithm(Int_t value=0)
Definition: AtPRAtask.cxx:58
AtPRAtask::Exec
virtual void Exec(Option_t *option)
Definition: AtPRAtask.cxx:153
AtPRAtask::SetKtriplet
void SetKtriplet(size_t k)
Definition: AtPRAtask.h:81
AtPRAtask::SetTcluster
void SetTcluster(float t)
Definition: AtPRAtask.h:86
AtPRAtask::SetInputBranch
void SetInputBranch(TString branchName)
Definition: AtPRAtask.h:74