StRoot
1
|
#include <StPmdClustering.h>
Public Member Functions | |
StPmdClustering (StPmdDetector *pmd_det=0, StPmdDetector *cpv_det=0) | |
constructor More... | |
virtual | ~StPmdClustering () |
destructor | |
Bool_t | findPmdClusters2 (StPmdDetector *) |
for Pmd clusters More... | |
Int_t | MakeClusters (TClonesArray *) |
Int_t | MakeSuperClusters (Int_t, StPmdModule *, TClonesArray *) |
Int_t | GetLocalPeaks (Int_t *, TList *) |
Bool_t | BreakSuperCluster (Int_t, Int_t *, TList *) |
Float_t | BuildCluster (StPmdCluster *, Float_t *) |
void | Cell_eta_phi (Float_t, Float_t, Float_t &, Float_t &) |
void | findPmdClusters (StPmdDetector *) |
for Pmd clusters More... | |
Int_t | crclust (Double_t, Double_t, Int_t, Int_t) |
crude clustering More... | |
void | refclust (StPmdDetector *, Int_t, Int_t, Int_t, StPmdClusterCollection *) |
refined clustering More... | |
void | order (Int_t) |
for ordering More... | |
void | arrange (Int_t) |
ordering More... | |
Double_t | Dist (Double_t, Double_t, Double_t, Double_t) |
void | printclust (Int_t, Int_t, StPmdCluster *) |
distance between two clusters More... | |
Int_t | CentroidCal (Int_t, Int_t, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &) |
for Calculating cluster properties, those clusters having more then two cells More... | |
void | SetAdcCutOff (Double_t adccutoff) |
void | SetVertexPos (const StThreeVectorF &) |
void | Cluster_Eta_Phi (Float_t, Float_t, Float_t, Float_t &, Float_t &) |
void | SetOptCalibrate (Bool_t a=kTRUE) |
void | SetOptSimulate (Bool_t a=kFALSE) |
void | SetOptRefineCluster (Bool_t a=kFALSE) |
StPmdHit * | GetHit (StPmdDetector *, Int_t, Double_t, Double_t) |
for getting hits of each cluster | |
Public Member Functions inherited from StPmdAbsClustering | |
StPmdAbsClustering (StPmdDetector *pmd_det=0, StPmdDetector *cpv_det=0) | |
Additional Inherited Members | |
Protected Attributes inherited from StPmdAbsClustering | |
StPmdDetector * | m_pmd_det |
pointer for detector Pmd | |
StPmdDetector * | m_cpv_det |
pointer for detector Cpv | |
Definition at line 54 of file StPmdClustering.h.
StPmdClustering::StPmdClustering | ( | StPmdDetector * | pmd_det = 0 , |
StPmdDetector * | cpv_det = 0 |
||
) |
constructor
utility class
constructor for getting PMD and CPV detectors
Definition at line 152 of file StPmdClustering.cxx.
void StPmdClustering::arrange | ( | Int_t | incr | ) |
ordering
arrange cells in each supercluster
Definition at line 371 of file StPmdClustering.cxx.
Referenced by findPmdClusters().
Int_t StPmdClustering::CentroidCal | ( | Int_t | ncell, |
Int_t | nclust, | ||
Double_t & | x, | ||
Double_t & | y, | ||
Double_t & | z, | ||
Double_t & | xc, | ||
Double_t & | yc, | ||
Double_t & | zc, | ||
Double_t & | rcl, | ||
Double_t & | rcs, | ||
Double_t & | cells | ||
) |
for Calculating cluster properties, those clusters having more then two cells
Assignment(definition) part is over
Definition at line 717 of file StPmdClustering.cxx.
References Dist(), kStOK, and kStWarn.
Referenced by refclust().
Int_t StPmdClustering::crclust | ( | Double_t | ave, |
Double_t | cutoff, | ||
Int_t | nmx1, | ||
Int_t | idet | ||
) |
crude clustering
Super clusters are constructed by using crclust function and complete algorithm for clustering has been adopted
constants used for calculating coordinate of neighbouring cells
initialize infocl[2][96][72]
crude clustering begins. Start with cell having largest adc count and loop over the cells in descending order of adc count
icl –cluster #, numcell – # of cells in a cluster, clust – stores coordinates of the cells in a cluster, infocl[0][i1][i2] is 1 for primary and 2 for secondary cells, infocl[1][i1][i2] stores cluster #
check for adc count in neighbouring cells. If ne 0 include them in this clust
Definition at line 974 of file StPmdClustering.cxx.
Referenced by findPmdClusters().
Double_t StPmdClustering::Dist | ( | Double_t | x1, |
Double_t | y1, | ||
Double_t | x2, | ||
Double_t | y2 | ||
) |
distance between centre of two clusters
Definition at line 966 of file StPmdClustering.cxx.
Referenced by CentroidCal(), and refclust().
void StPmdClustering::findPmdClusters | ( | StPmdDetector * | mdet | ) |
for Pmd clusters
finding Pmd and Cpv clusters
loop for supermodule
id has to be 1 to 12, not 0 to 11
getting module(id)
total no.of hits in the supermodule in PMD plane
pointer for hits
row of the hit = 1 - 72
column of the hit = 1 - 96
supermodule = 1 - 12
detector(= 1) for Pmd and (=2) for CPV
CellGain
SmChain Gain
cellstatus
edep added for each cell
order the data according to edep ( largest to smallest )
compare cutoff with the average energy deposited. Has no use in calc.
arrange cells in each supercluster
resolve superclusters into clusters //new
Definition at line 169 of file StPmdClustering.cxx.
References arrange(), crclust(), StPmdDetector::module(), StPmdDetector::module_hit(), order(), refclust(), and StPmdDetector::setCluster().
Bool_t StPmdClustering::findPmdClusters2 | ( | StPmdDetector * | mdet | ) |
for Pmd clusters
finding Pmd and Cpv clusters
Definition at line 1088 of file StPmdClustering.cxx.
References kStOK, StPmdDetector::module(), StPmdDetector::module_hit(), StPmdClusterCollection::Nclusters(), and StPmdDetector::setCluster().
Referenced by StPmdClusterMaker::Make().
void StPmdClustering::order | ( | Int_t | idet | ) |
for ordering
order the data according to edep ( largest to smallest )
Definition at line 336 of file StPmdClustering.cxx.
Referenced by findPmdClusters().
void StPmdClustering::printclust | ( | Int_t | i, |
Int_t | m, | ||
StPmdCluster * | pclust | ||
) |
distance between two clusters
for parametrization : not used any more printing clusters
for printing cluster details ( position ( x and y ), and strength info about # of cells in a cluster to be added.
cluster position
cluster strength
number of cells in the cluster as Float
spread(sigma) of the cluster along large axis
spread(sigma) of the cluster along small axis
filling 'X' position of Cluster
filling 'Y' position of Cluster
filling cluster SM #
filling cluster edep
filling cluster eta
filling cluster phi
filling cluster sigma along large axis
filling cluster sigma along small axis
filling # of cells (Float)
Definition at line 281 of file StPmdClustering.cxx.
References StPmdCluster::setModule().
Referenced by refclust().
void StPmdClustering::refclust | ( | StPmdDetector * | m_pmd_det0, |
Int_t | incr, | ||
Int_t | supmod, | ||
Int_t | idet, | ||
StPmdClusterCollection * | pmdclus | ||
) |
refined clustering
Breaking of super clusters into smaller clusters, Cluster positions,strengths,and widths has has been calculated by adopting minimization process.
clno counts the final clusters nsupcl = # of superclusters; ncl[i]= # of cells in supercluster i
Super cluster having 'Single' cell
Single cell super-clusters –> single cluster
Calculate the Cluster properties for two cell SuperCluster In two cell cluster SigmaS wil be Zero
ordering
compute the number of Gaussians and their centers ( first guess )
Assign the cluster properties for SuperCluster having more than Two cells
Definition at line 405 of file StPmdClustering.cxx.
References CentroidCal(), Dist(), GetHit(), kStOK, and printclust().
Referenced by findPmdClusters().