BmnRoot
Loading...
Searching...
No Matches
BmnNdetClusterFinder.h
Go to the documentation of this file.
1
6#ifndef BMNNDETCLUSTERFINDER_H
7#define BMNNDETCLUSTERFINDER_H
8
9#include "BmnNdetCluster.h"
10#include "TObject.h"
11
12#include <vector>
13
14using namespace std;
15
25class BmnNdetClusterFinder : public TObject
26{
27 public:
30 {
32 kIsUsed
33 };
34
43
44 private:
46 vector<BmnNdetCluster*> fClusters;
48 vector<eClusterStatus> fClusterStatus;
49
51 Int_t fNCells;
53 Int_t fNClusters;
55 Int_t fNUncheckedCellsInEvent;
56
58 vector<Int_t> fIndexTime;
60 vector<Int_t> fIndexEdep;
62 vector<Int_t> fIndexBeta;
63
65 vector<eCellStatus> fCellStatus;
66
68 vector<Int_t> fCell;
70 vector<Int_t> fColumn;
72 vector<Int_t> fRow;
74 vector<Int_t> fLayer;
76 vector<Double_t> fXcoord;
78 vector<Double_t> fYcoord;
80 vector<Double_t> fZcoord;
82 vector<Double_t> fTime;
84 vector<Double_t> fEdep;
86 vector<Double_t> fBeta;
87
88 vector<vector<vector<Int_t>>> fIndexXYZ;
89
90 public:
92 BmnNdetClusterFinder(const Int_t kNColumns = 11, const Int_t kNRows = 11, const Int_t kNLayers = 16);
95
97 Int_t GetNClusters();
98
100 Int_t GetNCells();
101
106 Int_t GetNCells(Double_t threshold);
107
109 Int_t GetNColumns();
110
112 Int_t GetNRows();
113
115 Int_t GetNLayers();
116
118 vector<Int_t> GetCells();
119
121 vector<Int_t> GetColumns();
122
124 vector<Int_t> GetRows();
125
127 vector<Int_t> GetLayers();
128
130 vector<Double_t> GetX();
131
133 vector<Double_t> GetY();
134
136 vector<Double_t> GetZ();
137
139 vector<Double_t> GetTime();
140
142 vector<Double_t> GetEdep();
143
145 vector<Double_t> GetBeta();
146
151 Int_t GetClusterStatus(Int_t i_cluster);
152
157 void SetClusterStatus(Int_t i_cluster, eClusterStatus status);
158
174 void Fill(Int_t cell,
175 Int_t column,
176 Int_t row,
177 Int_t layer,
178 Double_t x,
179 Double_t y,
180 Double_t z,
181 Double_t t,
182 Double_t e_dep);
183
185 void Clear();
186
188 void Print();
189
194 BmnNdetCluster* GetCluster(Int_t i_cluster);
195
200
206 void AddCellToCluster(Int_t i_cell, Int_t i_cluster);
207
214 Int_t FindClusters1();
215
223 Int_t FindClusters1_2();
224
232 Int_t FindClusters2();
233
242 Int_t FindClusters2_2();
243
252 Int_t FindClusters3(Double_t cut_beta = 0.03);
253
264 Int_t FindClusters4(Double_t cut_beta = 0.01);
265
272 Int_t SelectNeutrons(Double_t cut_angle = 45., Int_t cut_ncells = 3, Bool_t check_border = kFALSE);
273
282 Int_t MergeClusters(Int_t i_cluster_1, Int_t i_cluster_2);
283
291 Int_t CalculateNumberOfNeutrons(Double_t weight_edep = 1.,
292 Double_t weight_ncells = 0.01,
293 Double_t weight_nclusters = 0.05,
294 Double_t threshold12 = 0.);
295
296 virtual const char* GetClassName() { return "BmnNdetClusterFinder"; }
297 ClassDef(BmnNdetClusterFinder, 1)
298};
299
300#endif /* BMNNDETCLUSTERFINDER_H */
Class for description of algorithm of recognition of clusters in Bmn Ndet detector.
vector< Double_t > GetZ()
void Clear()
Clear all vectors, set fNCells=0.
vector< Double_t > GetTime()
vector< Double_t > GetEdep()
eCellStatus
Flag if the cell belongs to any cluster.
Int_t SelectNeutrons(Double_t cut_angle=45., Int_t cut_ncells=3, Bool_t check_border=kFALSE)
Int_t CalculateNumberOfNeutrons(Double_t weight_edep=1., Double_t weight_ncells=0.01, Double_t weight_nclusters=0.05, Double_t threshold12=0.)
Int_t FindClusters4(Double_t cut_beta=0.01)
Int_t FindClusters3(Double_t cut_beta=0.03)
virtual const char * GetClassName()
vector< Double_t > GetY()
BmnNdetCluster * AddCluster()
Int_t GetClusterStatus(Int_t i_cluster)
vector< Double_t > GetBeta()
BmnNdetCluster * GetCluster(Int_t i_cluster)
eClusterStatus
Status of the cluster.
void SetClusterStatus(Int_t i_cluster, eClusterStatus status)
Int_t MergeClusters(Int_t i_cluster_1, Int_t i_cluster_2)
vector< Double_t > GetX()
void Fill(Int_t cell, Int_t column, Int_t row, Int_t layer, Double_t x, Double_t y, Double_t z, Double_t t, Double_t e_dep)
void AddCellToCluster(Int_t i_cell, Int_t i_cluster)
~BmnNdetClusterFinder()
Default destructor.
Class for description of recognized cluster in Bmn Ndet detector.
STL namespace.