BmnRoot 26.10.0-210-gc52d34b0
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnNdetClusterFinder Class Reference

Class for description of algorithm of recognition of clusters in Bmn Ndet detector. More...

#include <BmnNdetClusterFinder.h>

Inheritance diagram for BmnNdetClusterFinder:
Collaboration diagram for BmnNdetClusterFinder:

Public Types

enum  eCellStatus { kIsNotUsed = 0 , kIsUsed }
 Flag if the cell belongs to any cluster. More...
enum  eClusterStatus { kNoCluster = -1 , kUnchecked = 0 , kIsNeutron , kNotNeutron }
 Status of the cluster. More...
Public Types inherited from TObject
enum  EDeprecatedStatusBits
enum  EStatusBits

Public Member Functions

 BmnNdetClusterFinder (const Int_t kNColumns=11, const Int_t kNRows=11, const Int_t kNLayers=16)
 Default constructor.
 ~BmnNdetClusterFinder ()
 Default destructor.
Int_t GetNClusters ()
Int_t GetNCells ()
Int_t GetNCells (Double_t threshold)
 Number of cells in event with deposited energy higher than threshold.
Int_t GetNColumns ()
Int_t GetNRows ()
Int_t GetNLayers ()
vector< Int_t > GetCells ()
vector< Int_t > GetColumns ()
vector< Int_t > GetRows ()
vector< Int_t > GetLayers ()
vector< Double_t > GetX ()
vector< Double_t > GetY ()
vector< Double_t > GetZ ()
vector< Double_t > GetTime ()
vector< Double_t > GetEdep ()
vector< Double_t > GetBeta ()
Int_t GetClusterStatus (Int_t i_cluster)
 Status of a cluster.
void SetClusterStatus (Int_t i_cluster, eClusterStatus status)
 Set status of a cluster.
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, rows and layers were enumerated from 0, not 1 !
void Clear ()
 Clear all vectors, set fNCells=0.
void Print ()
 Print.
BmnNdetCluster * GetCluster (Int_t i_cluster)
 Get BmnNdetCluster object.
BmnNdetCluster * AddCluster ()
 Add empty BmnNdetCluster to the list of clusters.
void AddCellToCluster (Int_t i_cell, Int_t i_cluster)
 Mark a cell i_cell as belonging to cluster i_cluster.
Int_t FindClusters1 ()
 Main method of a class.
Int_t FindClusters1_2 ()
 Main method of a class.
Int_t FindClusters2 ()
 Main method of a class.
Int_t FindClusters2_2 ()
 Main method of a class.
Int_t FindClusters3 (Double_t cut_beta=0.03)
 Main method of a class.
Int_t FindClusters4 (Double_t cut_beta=0.01)
 Second method of searching for the clusters.
Int_t SelectNeutrons (Double_t cut_angle=45., Int_t cut_ncells=3, Bool_t check_border=kFALSE)
 Select neutrons.
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_cluster
The cluster with maximal i_cluster is destroyed.
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:
virtual const char * GetClassName ()
Public Member Functions inherited from TObject
 TObject ()
 TObject (const TObject &object)
virtual ~TObject ()
void AbstractMethod (const char *method) const
virtual void AppendPad (Option_t *option="")
virtual void Browse (TBrowser *b)
ULong_t CheckedHash ()
virtual const char * ClassName () const
virtual void Clear (Option_t *="")
virtual TObject * Clone (const char *newname="") const
virtual Int_t Compare (const TObject *obj) const
virtual void Copy (TObject &object) const
virtual void Delete (Option_t *option="")
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
virtual void Draw (Option_t *option="")
virtual void DrawClass () const
virtual TObject * DrawClone (Option_t *option="") const
virtual void Dump () const
virtual void Error (const char *method, const char *msgfmt,...) const
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
virtual void Fatal (const char *method, const char *msgfmt,...) const
virtual TObject * FindObject (const char *name) const
virtual TObject * FindObject (const TObject *obj) const
virtual Option_t * GetDrawOption () const
virtual const char * GetIconName () const
virtual const char * GetName () const
virtual char * GetObjectInfo (Int_t px, Int_t py) const
virtual Option_t * GetOption () const
virtual const char * GetTitle () const
virtual UInt_t GetUniqueID () const
virtual Bool_t HandleTimer (TTimer *timer)
virtual ULong_t Hash () const
Bool_t HasInconsistentHash () const
virtual void Info (const char *method, const char *msgfmt,...) const
virtual Bool_t InheritsFrom (const char *classname) const
virtual Bool_t InheritsFrom (const TClass *cl) const
virtual void Inspect () const
void InvertBit (UInt_t f)
virtual TClass * IsA () const
Bool_t IsDestructed () const
virtual Bool_t IsEqual (const TObject *obj) const
virtual Bool_t IsFolder () const
R__ALWAYS_INLINE Bool_t IsOnHeap () const
virtual Bool_t IsSortable () const
R__ALWAYS_INLINE Bool_t IsZombie () const
virtual void ls (Option_t *option="") const
void MayNotUse (const char *method) const
virtual Bool_t Notify ()
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
void operator delete (void *ptr)
void operator delete (void *ptr, void *vp)
void operator delete[] (void *ptr)
void operator delete[] (void *ptr, void *vp)
void * operator new (size_t sz)
void * operator new (size_t sz, void *vp)
void * operator new[] (size_t sz)
void * operator new[] (size_t sz, void *vp)
TObject & operator= (const TObject &rhs)
virtual void Paint (Option_t *option="")
virtual void Pop ()
virtual void Print (Option_t *option="") const
virtual Int_t Read (const char *name)
virtual void RecursiveRemove (TObject *obj)
void ResetBit (UInt_t f)
virtual void SaveAs (const char *filename="", Option_t *option="") const
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
void SetBit (UInt_t f)
void SetBit (UInt_t f, Bool_t set)
virtual void SetDrawOption (Option_t *option="")
virtual void SetUniqueID (UInt_t uid)
virtual void Streamer (TBuffer &)
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
virtual void SysError (const char *method, const char *msgfmt,...) const
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
Int_t TestBits (UInt_t f) const
virtual void UseCurrentStyle ()
virtual void Warning (const char *method, const char *msgfmt,...) const
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const

Private Attributes

vector< BmnNdetCluster * > fClusters
 Recognized clusters.
vector< eClusterStatus > fClusterStatus
 Flag if cell belongs to some cluster.
Int_t fNCells
 Number of fired cells in event.
Int_t fNClusters
 Number of recognized clusters.
Int_t fNUncheckedCellsInEvent
 Number of cells not belonging to any cluster.
vector< Int_t > fIndexTime
 Index of cells sorted by ascending time.
vector< Int_t > fIndexEdep
 Index of cells sorted by decending deposited energy.
vector< Int_t > fIndexBeta
 Index of cells sorted by decending beta.
vector< eCellStatus > fCellStatus
 Flag if cell belongs to some cluster.
vector< Int_t > fCell
 Index of a cell in BmnNdetCell array in BmnNdetEvent object.
vector< Int_t > fColumn
 Column index of a cell. It must be proportional to X coordinate in self coordinate system of a detector.
vector< Int_t > fRow
 Row index of a cell. It must be proportional to Y coordinate in self coordinate system of a detector.
vector< Int_t > fLayer
 Layer index of a cell. It must be proportional to Z coordinate in self coordinate system of a detector.
vector< Double_t > fXcoord
 X coordinate [cm].
vector< Double_t > fYcoord
 Y coordinate [cm].
vector< Double_t > fZcoord
 Z coordinate [cm].
vector< Double_t > fTime
 Time of actuation of the cell [ns].
vector< Double_t > fEdep
 Energy deposited in the cell [GeV].
vector< Double_t > fBeta
 Beta = v/c, v = d/t.
vector< vector< vector< Int_t > > > fIndexXYZ

Additional Inherited Members

Static Public Member Functions inherited from TObject
static TClass * Class ()
static const char * Class_Name ()
static constexpr Version_t Class_Version ()
static const char * DeclFileName ()
static Longptr_t GetDtorOnly ()
static Bool_t GetObjectStat ()
static void SetDtorOnly (void *obj)
static void SetObjectStat (Bool_t stat)
Public Attributes inherited from TObject
 kIsOnHeap
 kNotDeleted
 kZombie
 kInconsistent
 kBitMask
 kSingleKey
 kOverwrite
 kWriteDelete
 kObjInCanvas
 kCanDelete
 kMustCleanup
 kIsReferenced
 kHasUUID
 kCannotPick
 kNoContextMenu
 kInvalidObject
Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
void MakeZombie ()
Static Protected Member Functions inherited from TObject
static void SavePrimitiveConstructor (std::ostream &out, TClass *cl, const char *variable_name, const char *constructor_agrs="", Bool_t empty_line=kTRUE)
static void SavePrimitiveDraw (std::ostream &out, const char *variable_name, Option_t *option=nullptr)
static TString SavePrimitiveVector (std::ostream &out, const char *prefix, Int_t len, Double_t *arr, Bool_t empty_line=kFALSE)
Protected Attributes inherited from TObject
 kOnlyPrepStep

Detailed Description

BmnNdetClusterFinder must be run in the following order:

  1. create BmnNdetClusterFinder object
  2. initialize data with BmnNdetClusterFinder::Fill() method
  3. search for clusters with BmnNdetClusterFinder::FindClusters() method
    The recognized clusters can be obtained with BmnNdetClusterFinder::GetCluster() method
    Version
    1.0

Definition at line 25 of file BmnNdetClusterFinder.h.

Member Enumeration Documentation

◆ eCellStatus

Enumerator
kIsNotUsed 0 

the cell doesn't belong to any cluster

kIsUsed  

the cell belongs to some cluster

Definition at line 29 of file BmnNdetClusterFinder.h.

◆ eClusterStatus

Enumerator
kNoCluster -1 

there is no cluster

kUnchecked 0 

the cluster is not checked yet

kIsNeutron  

the cluster is produced by neutron

kNotNeutron  

the cluster can't be produced by neutron

Definition at line 36 of file BmnNdetClusterFinder.h.

Constructor & Destructor Documentation

◆ BmnNdetClusterFinder()

BmnNdetClusterFinder::BmnNdetClusterFinder ( const Int_t kNColumns = 11,
const Int_t kNRows = 11,
const Int_t kNLayers = 16 )

Definition at line 15 of file BmnNdetClusterFinder.cxx.

References TObject::TObject(), fClusters, fIndexXYZ, fNCells, and fNClusters.

Here is the call graph for this function:

◆ ~BmnNdetClusterFinder()

BmnNdetClusterFinder::~BmnNdetClusterFinder ( )

Definition at line 24 of file BmnNdetClusterFinder.cxx.

References fIndexXYZ, GetNColumns(), and GetNRows().

Here is the call graph for this function:

Member Function Documentation

◆ AddCellToCluster()

void BmnNdetClusterFinder::AddCellToCluster ( Int_t i_cell,
Int_t i_cluster = -1 )
Parameters
i_cellindex of cell in order of its filling with BmnNdetClusterFinder::Fill() method
i_clusterindex of cluster in order of its addition with BmnNdetClusterFinder::AddCluster() method. The last cluster is taken by default.

Definition at line 217 of file BmnNdetClusterFinder.cxx.

References BmnNdetCluster::AddCell(), fBeta, fCell, fCellStatus, fColumn, fEdep, fLayer, fNCells, fNClusters, fNUncheckedCellsInEvent, fRow, fTime, fXcoord, fYcoord, fZcoord, GetCluster(), i, kIsUsed, x, y, and z.

Referenced by FindClusters1(), FindClusters1_2(), FindClusters2(), FindClusters2_2(), FindClusters3(), and FindClusters4().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddCluster()

BmnNdetCluster * BmnNdetClusterFinder::AddCluster ( )
Returns
pointer to the newly added cluster

Definition at line 208 of file BmnNdetClusterFinder.cxx.

References fClusters, fClusterStatus, fNClusters, and kUnchecked.

Referenced by FindClusters1(), FindClusters1_2(), FindClusters2(), FindClusters2_2(), FindClusters3(), and FindClusters4().

Here is the caller graph for this function:

◆ CalculateNumberOfNeutrons()

Int_t BmnNdetClusterFinder::CalculateNumberOfNeutrons ( Double_t weight_edep = 1.,
Double_t weight_ncells = 0.01,
Double_t weight_nclusters = 0.05,
Double_t threshold12 = 0. )
Parameters
weight_edep* total deposited energy in accepted clusters
weight_nclusters* number of accepted clusters
weight_ncells* total number of cells in accepted clusters.
If sum of weighed parameters exceeds
threshold12there is more than 1 neutron
Returns
Estimated number of neutrons

Definition at line 645 of file BmnNdetClusterFinder.cxx.

References BmnNdetCluster::EnergyDeposited(), fClusterStatus, fNClusters, GetCluster(), BmnNdetCluster::GetNCells(), and kIsNeutron.

Here is the call graph for this function:

◆ Clear()

void BmnNdetClusterFinder::Clear ( )

Definition at line 671 of file BmnNdetClusterFinder.cxx.

References fBeta, fCell, fCellStatus, fClusters, fClusterStatus, fColumn, fEdep, fIndexBeta, fIndexEdep, fIndexTime, fIndexXYZ, fLayer, fNCells, fNClusters, fRow, fTime, fXcoord, fYcoord, fZcoord, GetNColumns(), GetNLayers(), GetNRows(), and i.

Here is the call graph for this function:

◆ Fill()

void BmnNdetClusterFinder::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 )
Parameters
cellindex of cell in BmnNdetCell array in BmnNdetEvent object.
columnindex of column. It must be enumerated starting from 0. The column number must increase in the same direction as X axis.
rowindex of row. It must be enumerated starting from 0. The row number must increase in the same direction as Y axis.
layerindex of layer. It must be enumerated starting from 0. The layer number must increase in the same direction as Z axis.
xX coordinate of the fired cell
yY coordinate of the fired cell
zZ coordinate of the fired cell
tTime of actuation of the fired cell
e_depEnergy deposited in cell [GeV]

Definition at line 35 of file BmnNdetClusterFinder.cxx.

References TMath::C(), fBeta, fCell, fCellStatus, fColumn, fEdep, fIndexBeta, fIndexEdep, fIndexTime, fIndexXYZ, fLayer, fNCells, fRow, fTime, fXcoord, fYcoord, fZcoord, GetNColumns(), GetNLayers(), GetNRows(), i, kIsNotUsed, TMath::Sq(), TMath::Sqrt(), x, y, and z.

Here is the call graph for this function:

◆ FindClusters1()

Int_t BmnNdetClusterFinder::FindClusters1 ( )


The clusters are groups of neighbouring cells. Time and deposited energies are not taken into account.
Before you use it, you must fill data with BmnNdetClusterFinder::Fill() method.
This algorithm loops over cells in order of ascending time.

Returns
number of recognized clusters

Definition at line 241 of file BmnNdetClusterFinder.cxx.

References AddCellToCluster(), AddCluster(), fCellStatus, fIndexTime, fIndexXYZ, fNCells, fNClusters, fNUncheckedCellsInEvent, BmnNdetCluster::GetColumns(), BmnNdetCluster::GetLayers(), GetNCells(), GetNColumns(), GetNLayers(), GetNRows(), BmnNdetCluster::GetRows(), iX, iY, iZ, and kIsNotUsed.

Here is the call graph for this function:

◆ FindClusters1_2()

Int_t BmnNdetClusterFinder::FindClusters1_2 ( )


The clusters are groups of neighbouring cells. Time and deposited energies are not taken into account.
Before you use it, you must fill data with BmnNdetClusterFinder::Fill() method.
This algorithm loops over cells in order of ascending time.
If the cluster starts from veto layer, include to cluster all cells with the same row and column

Returns
number of recognized clusters

Definition at line 293 of file BmnNdetClusterFinder.cxx.

References AddCellToCluster(), AddCluster(), fCellStatus, fIndexTime, fIndexXYZ, fNCells, fNClusters, fNUncheckedCellsInEvent, BmnNdetCluster::GetColumns(), BmnNdetCluster::GetLayers(), GetNCells(), GetNColumns(), GetNLayers(), GetNRows(), BmnNdetCluster::GetRows(), iX, iY, iZ, and kIsNotUsed.

Here is the call graph for this function:

◆ FindClusters2()

Int_t BmnNdetClusterFinder::FindClusters2 ( )


The clusters are groups of neighbouring cells.
Time and deposited energies are not taken into account.
This algorithm loops over cells in order of descending speed.
Before you use it, you must fill data with BmnNdetClusterFinder::Fill() method.

Returns
number of recognized clusters

Definition at line 359 of file BmnNdetClusterFinder.cxx.

References AddCellToCluster(), AddCluster(), fCellStatus, fIndexBeta, fIndexXYZ, fNCells, fNClusters, fNUncheckedCellsInEvent, BmnNdetCluster::GetColumns(), BmnNdetCluster::GetLayers(), GetNCells(), GetNColumns(), GetNLayers(), GetNRows(), BmnNdetCluster::GetRows(), iX, iY, iZ, and kIsNotUsed.

Here is the call graph for this function:

◆ FindClusters2_2()

Int_t BmnNdetClusterFinder::FindClusters2_2 ( )


The clusters are groups of neighbouring cells.
One more layer is added for checking (the gap of 1 layer doesn't count)
Time and deposited energies are not taken into account.
This algorithm loops over cells in order of descending speed.
Before you use it, you must fill data with BmnNdetClusterFinder::Fill() method.

Returns
number of recognized clusters

Definition at line 411 of file BmnNdetClusterFinder.cxx.

References AddCellToCluster(), AddCluster(), fCellStatus, fIndexBeta, fIndexXYZ, fNCells, fNClusters, fNUncheckedCellsInEvent, BmnNdetCluster::GetColumns(), BmnNdetCluster::GetLayers(), GetNCells(), GetNColumns(), GetNLayers(), GetNRows(), BmnNdetCluster::GetRows(), iX, iY, iZ, and kIsNotUsed.

Here is the call graph for this function:

◆ FindClusters3()

Int_t BmnNdetClusterFinder::FindClusters3 ( Double_t cut_beta = 0.03)


The clusters are groups of neighbouring cells.
If difference of beta between cells > cut_beta, start a new cluster. Time and deposited energies are not taken into account.
This algorithm loops over cells in order of descending speed.
Before you use it, you must fill data with BmnNdetClusterFinder::Fill() method.

Returns
number of recognized clusters

Definition at line 463 of file BmnNdetClusterFinder.cxx.

References TMath::Abs(), AddCellToCluster(), AddCluster(), fBeta, fCellStatus, fIndexBeta, fIndexXYZ, fNCells, fNClusters, fNUncheckedCellsInEvent, BmnNdetCluster::GetColumns(), BmnNdetCluster::GetLayers(), GetNCells(), GetNColumns(), GetNLayers(), GetNRows(), BmnNdetCluster::GetRows(), iX, iY, iZ, kIsNotUsed, and kIsUsed.

Here is the call graph for this function:

◆ FindClusters4()

Int_t BmnNdetClusterFinder::FindClusters4 ( Double_t cut_beta = 0.01)


Before you use it, you must fill data with BmnNdetClusterFinder::Fill() method.
This algorithm loops over cells in order of ascending time.
While checking neighbouring cell, the time of flight between cells is taken into account. The cell is added to the cluster, if the speed of propagation of the hadronic shower between the cells is the same as the speed of initial neutron.

Parameters
cut_betamaximum difference between beta of propagation of shower and beta calculated from the first cell in cluster.
Returns
number of recognized clusters

Definition at line 519 of file BmnNdetClusterFinder.cxx.

References TMath::Abs(), AddCellToCluster(), AddCluster(), BmnNdetCluster::BetaFirst(), TMath::C(), fCellStatus, fIndexTime, fIndexXYZ, fNCells, fNClusters, fNUncheckedCellsInEvent, BmnNdetCluster::GetColumns(), BmnNdetCluster::GetLayers(), GetNCells(), GetNColumns(), GetNLayers(), GetNRows(), BmnNdetCluster::GetRows(), BmnNdetCluster::GetTime(), BmnNdetCluster::GetX(), BmnNdetCluster::GetY(), BmnNdetCluster::GetZ(), iX, iY, iZ, kIsNotUsed, kIsUsed, TMath::Sq(), TMath::Sqrt(), and z0.

Here is the call graph for this function:

◆ GetBeta()

vector< Double_t > BmnNdetClusterFinder::GetBeta ( )
Returns
Vector of beta calculated as Beta = v/c, v = d/t

Definition at line 181 of file BmnNdetClusterFinder.cxx.

References fBeta.

◆ GetCells()

vector< Int_t > BmnNdetClusterFinder::GetCells ( )
Returns
Vector of indices of all fired cells in event

Definition at line 145 of file BmnNdetClusterFinder.cxx.

References fCell.

◆ GetClassName()

virtual const char * BmnNdetClusterFinder::GetClassName ( )
inlinevirtual

Definition at line 296 of file BmnNdetClusterFinder.h.

◆ GetCluster()

BmnNdetCluster * BmnNdetClusterFinder::GetCluster ( Int_t i_cluster)
Parameters
i_clusterindex of recognized cluster
Returns
pointer to BmnNdetCluster object

Definition at line 186 of file BmnNdetClusterFinder.cxx.

References fClusters, and fNClusters.

Referenced by AddCellToCluster(), CalculateNumberOfNeutrons(), MergeClusters(), and SelectNeutrons().

Here is the caller graph for this function:

◆ GetClusterStatus()

Int_t BmnNdetClusterFinder::GetClusterStatus ( Int_t i_cluster)

It is assigned to the cluster when applying BmnNdetClusterFinder::SelectNeutrons() method.

Parameters
i_clusterindex of BmnNdetCluster object
Returns
status of a cluster (see eClusterStatus for details)

Definition at line 193 of file BmnNdetClusterFinder.cxx.

References fClusterStatus, fNClusters, and kNoCluster.

◆ GetColumns()

vector< Int_t > BmnNdetClusterFinder::GetColumns ( )
Returns
Vector of column numbers of all fired cells in event

Definition at line 149 of file BmnNdetClusterFinder.cxx.

References fColumn.

◆ GetEdep()

vector< Double_t > BmnNdetClusterFinder::GetEdep ( )
Returns
Vector of energies deposited in all fired cells in event [GeV]

Definition at line 177 of file BmnNdetClusterFinder.cxx.

References fEdep.

◆ GetLayers()

vector< Int_t > BmnNdetClusterFinder::GetLayers ( )
Returns
Vector of layer numbers of all fired cells in event

Definition at line 157 of file BmnNdetClusterFinder.cxx.

References fLayer.

◆ GetNCells() [1/2]

Int_t BmnNdetClusterFinder::GetNCells ( )
Returns
Number of cells in event

Definition at line 115 of file BmnNdetClusterFinder.cxx.

References fNCells.

Referenced by FindClusters1(), FindClusters1_2(), FindClusters2(), FindClusters2_2(), FindClusters3(), and FindClusters4().

Here is the caller graph for this function:

◆ GetNCells() [2/2]

Int_t BmnNdetClusterFinder::GetNCells ( Double_t threshold)
Parameters
thresholdminimal deposited energy in counted cells
Returns
number of cells with edep > threshold

Definition at line 120 of file BmnNdetClusterFinder.cxx.

References fEdep, and fNCells.

◆ GetNClusters()

Int_t BmnNdetClusterFinder::GetNClusters ( )
Returns
Number of recognized clusters

Definition at line 110 of file BmnNdetClusterFinder.cxx.

References fNClusters.

◆ GetNColumns()

Int_t BmnNdetClusterFinder::GetNColumns ( )
Returns
Number of columns in detector. Used for iteration of cells along X coordinate.

Definition at line 130 of file BmnNdetClusterFinder.cxx.

References fIndexXYZ.

Referenced by ~BmnNdetClusterFinder(), Clear(), Fill(), FindClusters1(), FindClusters1_2(), FindClusters2(), FindClusters2_2(), FindClusters3(), FindClusters4(), and SelectNeutrons().

Here is the caller graph for this function:

◆ GetNLayers()

Int_t BmnNdetClusterFinder::GetNLayers ( )
Returns
Number of Layers in detector. Used for iteration of cells along Z coordinate.

Definition at line 140 of file BmnNdetClusterFinder.cxx.

References fIndexXYZ.

Referenced by Clear(), Fill(), FindClusters1(), FindClusters1_2(), FindClusters2(), FindClusters2_2(), FindClusters3(), FindClusters4(), and SelectNeutrons().

Here is the caller graph for this function:

◆ GetNRows()

Int_t BmnNdetClusterFinder::GetNRows ( )
Returns
Number of rows in detector. Used for iteration of cells along Y coordinate.

Definition at line 135 of file BmnNdetClusterFinder.cxx.

References fIndexXYZ.

Referenced by ~BmnNdetClusterFinder(), Clear(), Fill(), FindClusters1(), FindClusters1_2(), FindClusters2(), FindClusters2_2(), FindClusters3(), FindClusters4(), and SelectNeutrons().

Here is the caller graph for this function:

◆ GetRows()

vector< Int_t > BmnNdetClusterFinder::GetRows ( )
Returns
Vector of row numbers of all fired cells in event

Definition at line 153 of file BmnNdetClusterFinder.cxx.

References fRow.

◆ GetTime()

vector< Double_t > BmnNdetClusterFinder::GetTime ( )
Returns
Vector of time of actuation of all fired cells in event [ns]

Definition at line 173 of file BmnNdetClusterFinder.cxx.

References fTime.

◆ GetX()

vector< Double_t > BmnNdetClusterFinder::GetX ( )
Returns
Vector of X coordinates of all fired cells in event [cm]

Definition at line 161 of file BmnNdetClusterFinder.cxx.

References fXcoord.

◆ GetY()

vector< Double_t > BmnNdetClusterFinder::GetY ( )
Returns
Vector of Y coordinates of all fired cells in event [cm]

Definition at line 165 of file BmnNdetClusterFinder.cxx.

References fYcoord.

◆ GetZ()

vector< Double_t > BmnNdetClusterFinder::GetZ ( )
Returns
Vector of Z coordinates of all fired cells in event [cm]

Definition at line 169 of file BmnNdetClusterFinder.cxx.

References fZcoord.

◆ MergeClusters()

Int_t BmnNdetClusterFinder::MergeClusters ( Int_t i_cluster_1,
Int_t i_cluster_2 )


If i_cluster_1==i_cluster_2, cancel merging.

Parameters
i_cluster_1first cluster
i_cluster_2second cluster
Returns
Number of clusters after merging

Definition at line 603 of file BmnNdetClusterFinder.cxx.

References BmnNdetCluster::AddCell(), fClusters, fClusterStatus, fNClusters, BmnNdetCluster::GetBeta(), GetCluster(), BmnNdetCluster::GetColumns(), BmnNdetCluster::GetEdep(), BmnNdetCluster::GetLayers(), BmnNdetCluster::GetNCells(), BmnNdetCluster::GetRows(), BmnNdetCluster::GetTime(), BmnNdetCluster::GetX(), BmnNdetCluster::GetY(), BmnNdetCluster::GetZ(), max(), and min().

Here is the call graph for this function:

◆ Print()

void BmnNdetClusterFinder::Print ( )

◆ SelectNeutrons()

Int_t BmnNdetClusterFinder::SelectNeutrons ( Double_t cut_angle = 45.,
Int_t cut_ncells = 3,
Bool_t check_border = kFALSE )
Parameters
cut_angleaccept, if BmnNdetCluster::AngleToTarget() < cut_angle
cut_ncellsaccept, if BmnNdetCluster::GetNCells() >= cut_ncells
check_borderuse BmnNdetCluster::StartsOnBorder() check
Returns
number of found neutrons

Definition at line 625 of file BmnNdetClusterFinder.cxx.

References BmnNdetCluster::AngleToTarget(), fClusterStatus, fNClusters, GetCluster(), BmnNdetCluster::GetNCells(), GetNColumns(), GetNLayers(), GetNRows(), kIsNeutron, kNotNeutron, and BmnNdetCluster::StartsOnBorder().

Here is the call graph for this function:

◆ SetClusterStatus()

void BmnNdetClusterFinder::SetClusterStatus ( Int_t i_cluster,
eClusterStatus status )
Parameters
i_clusterindex of BmnNdetCluster object
statusstatus of a cluster (see eClusterStatus for details)

Definition at line 200 of file BmnNdetClusterFinder.cxx.

References fClusterStatus, and fNClusters.

Member Data Documentation

◆ fBeta

vector<Double_t> BmnNdetClusterFinder::fBeta
private

Definition at line 86 of file BmnNdetClusterFinder.h.

Referenced by AddCellToCluster(), Clear(), Fill(), FindClusters3(), GetBeta(), and Print().

◆ fCell

vector<Int_t> BmnNdetClusterFinder::fCell
private

Definition at line 68 of file BmnNdetClusterFinder.h.

Referenced by AddCellToCluster(), Clear(), Fill(), GetCells(), and Print().

◆ fCellStatus

vector<eCellStatus> BmnNdetClusterFinder::fCellStatus
private

◆ fClusters

vector<BmnNdetCluster*> BmnNdetClusterFinder::fClusters
private

◆ fClusterStatus

vector<eClusterStatus> BmnNdetClusterFinder::fClusterStatus
private

◆ fColumn

vector<Int_t> BmnNdetClusterFinder::fColumn
private

Definition at line 70 of file BmnNdetClusterFinder.h.

Referenced by AddCellToCluster(), Clear(), Fill(), GetColumns(), and Print().

◆ fEdep

vector<Double_t> BmnNdetClusterFinder::fEdep
private

Definition at line 84 of file BmnNdetClusterFinder.h.

Referenced by AddCellToCluster(), Clear(), Fill(), GetEdep(), GetNCells(), and Print().

◆ fIndexBeta

vector<Int_t> BmnNdetClusterFinder::fIndexBeta
private

Definition at line 62 of file BmnNdetClusterFinder.h.

Referenced by Clear(), Fill(), FindClusters2(), FindClusters2_2(), FindClusters3(), and Print().

◆ fIndexEdep

vector<Int_t> BmnNdetClusterFinder::fIndexEdep
private

Definition at line 60 of file BmnNdetClusterFinder.h.

Referenced by Clear(), Fill(), and Print().

◆ fIndexTime

vector<Int_t> BmnNdetClusterFinder::fIndexTime
private

Definition at line 58 of file BmnNdetClusterFinder.h.

Referenced by Clear(), Fill(), FindClusters1(), FindClusters1_2(), FindClusters4(), and Print().

◆ fIndexXYZ

◆ fLayer

vector<Int_t> BmnNdetClusterFinder::fLayer
private

Definition at line 74 of file BmnNdetClusterFinder.h.

Referenced by AddCellToCluster(), Clear(), Fill(), GetLayers(), and Print().

◆ fNCells

◆ fNClusters

◆ fNUncheckedCellsInEvent

Int_t BmnNdetClusterFinder::fNUncheckedCellsInEvent
private

◆ fRow

vector<Int_t> BmnNdetClusterFinder::fRow
private

Definition at line 72 of file BmnNdetClusterFinder.h.

Referenced by AddCellToCluster(), Clear(), Fill(), GetRows(), and Print().

◆ fTime

vector<Double_t> BmnNdetClusterFinder::fTime
private

Definition at line 82 of file BmnNdetClusterFinder.h.

Referenced by AddCellToCluster(), Clear(), Fill(), GetTime(), and Print().

◆ fXcoord

vector<Double_t> BmnNdetClusterFinder::fXcoord
private

Definition at line 76 of file BmnNdetClusterFinder.h.

Referenced by AddCellToCluster(), Clear(), Fill(), GetX(), and Print().

◆ fYcoord

vector<Double_t> BmnNdetClusterFinder::fYcoord
private

Definition at line 78 of file BmnNdetClusterFinder.h.

Referenced by AddCellToCluster(), Clear(), Fill(), GetY(), and Print().

◆ fZcoord

vector<Double_t> BmnNdetClusterFinder::fZcoord
private

Definition at line 80 of file BmnNdetClusterFinder.h.

Referenced by AddCellToCluster(), Clear(), Fill(), GetZ(), and Print().


The documentation for this class was generated from the following files: