6#ifndef BMNNDETCLUSTERFINDER_H
7#define BMNNDETCLUSTERFINDER_H
130 vector<Double_t>
GetX();
133 vector<Double_t>
GetY();
136 vector<Double_t>
GetZ();
#define ClassDef(name, id)
Class for description of algorithm of recognition of clusters in Bmn Ndet detector.
vector< Int_t > fRow
Row index of a cell. It must be proportional to Y coordinate in self coordinate system of a detector.
Int_t FindClusters1_2()
Main method of a class.
vector< eCellStatus > fCellStatus
Flag if cell belongs to some cluster.
vector< BmnNdetCluster * > fClusters
Recognized clusters.
Int_t fNClusters
Number of recognized clusters.
vector< Double_t > fEdep
Energy deposited in the cell [GeV].
vector< Double_t > GetZ()
void Clear()
Clear all vectors, set fNCells=0.
Int_t FindClusters2()
Main method of a class.
vector< vector< vector< Int_t > > > fIndexXYZ
vector< Int_t > GetCells()
Int_t fNUncheckedCellsInEvent
Number of cells not belonging to any cluster.
vector< Double_t > GetTime()
vector< Int_t > fIndexEdep
Index of cells sorted by decending deposited energy.
vector< Double_t > fTime
Time of actuation of the cell [ns].
vector< Int_t > GetLayers()
vector< Double_t > GetEdep()
BmnNdetClusterFinder(const Int_t kNColumns=11, const Int_t kNRows=11, const Int_t kNLayers=16)
Default constructor.
eCellStatus
Flag if the cell belongs to any cluster.
@ kIsNotUsed
the cell doesn't belong to any cluster
@ kIsUsed
the cell belongs to some cluster
vector< Int_t > fColumn
Column index of a cell. It must be proportional to X coordinate in self coordinate system of a detect...
Int_t SelectNeutrons(Double_t cut_angle=45., Int_t cut_ncells=3, Bool_t check_border=kFALSE)
Select neutrons.
Int_t FindClusters1()
Main method of a class.
Int_t CalculateNumberOfNeutrons(Double_t weight_edep=1., Double_t weight_ncells=0.01, Double_t weight_nclusters=0.05, Double_t threshold12=0.)
Estimate number of neutrons based on:
Int_t FindClusters4(Double_t cut_beta=0.01)
Second method of searching for the clusters.
vector< Int_t > fLayer
Layer index of a cell. It must be proportional to Z coordinate in self coordinate system of a detecto...
vector< eClusterStatus > fClusterStatus
Flag if cell belongs to some cluster.
Int_t FindClusters3(Double_t cut_beta=0.03)
Main method of a class.
virtual const char * GetClassName()
vector< Double_t > GetY()
vector< Double_t > fBeta
Beta = v/c, v = d/t.
vector< Int_t > GetColumns()
BmnNdetCluster * AddCluster()
Add empty BmnNdetCluster to the list of clusters.
Int_t GetClusterStatus(Int_t i_cluster)
Status of a cluster.
vector< Double_t > GetBeta()
vector< Int_t > fCell
Index of a cell in BmnNdetCell array in BmnNdetEvent object.
Int_t fNCells
Number of fired cells in event.
vector< Double_t > fZcoord
Z coordinate [cm].
vector< Double_t > fXcoord
X coordinate [cm].
vector< Double_t > fYcoord
Y coordinate [cm].
vector< Int_t > fIndexTime
Index of cells sorted by ascending time.
BmnNdetCluster * GetCluster(Int_t i_cluster)
Get BmnNdetCluster object.
eClusterStatus
Status of the cluster.
@ kNotNeutron
the cluster can't be produced by neutron
@ kUnchecked
the cluster is not checked yet
@ kIsNeutron
the cluster is produced by neutron
@ kNoCluster
there is no cluster
void SetClusterStatus(Int_t i_cluster, eClusterStatus status)
Set status of a cluster.
vector< Int_t > GetRows()
Int_t FindClusters2_2()
Main method of a class.
Int_t MergeClusters(Int_t i_cluster_1, Int_t i_cluster_2)
Merge clusters The cells of cluster with maximal i_cluster are added to the cluster with minimal i_cl...
vector< Double_t > GetX()
vector< Int_t > fIndexBeta
Index of cells sorted by decending beta.
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)
Add cell to the list of fired cells For correct work of the code it is needed that columns,...
void AddCellToCluster(Int_t i_cell, Int_t i_cluster)
Mark a cell i_cell as belonging to cluster i_cluster.
~BmnNdetClusterFinder()
Default destructor.
Class for description of recognized cluster in Bmn Ndet detector.