1 #ifndef ALIITSCLUSTERFINDER_H
2 #define ALIITSCLUSTERFINDER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
9 ////////////////////////////////////////////////
10 // ITS Cluster Finder Class //
11 ////////////////////////////////////////////////
14 #include <TClonesArray.h>
18 class AliITSsegmentation;
19 class AliITSRawCluster;
24 //----------------------------------------------------------------------
25 class AliITSClusterFinder :public TObject{
27 AliITSClusterFinder();
28 AliITSClusterFinder(AliITSsegmentation *seg, AliITSresponse *resp,
29 TClonesArray *digits);
30 virtual ~AliITSClusterFinder();
31 AliITSClusterFinder(const AliITSClusterFinder &source); // copy constructor
32 // assignment operator
33 AliITSClusterFinder& operator=(const AliITSClusterFinder &source);
34 virtual void SetResponse(AliITSresponse *response) {
38 virtual void SetSegmentation(AliITSsegmentation *segmentation) {
40 fSegmentation=segmentation;
42 virtual void SetDigits(TClonesArray *ITSdigits) {
45 fNdigits = fDigits->GetEntriesFast();
47 virtual AliITSdigit* GetDigit(Int_t i){
48 return (AliITSdigit*) fDigits->UncheckedAt(i);
50 virtual TClonesArray* Digits(){
53 virtual Int_t NDigits() {
54 // Get Number of Digits
62 virtual void AddCluster(Int_t branch, AliITSRawCluster *c);
63 virtual void AddCluster(Int_t branch, AliITSRawCluster *c,
65 virtual void FindRawClusters(Int_t mod=0) {
66 // Search for raw clusters
68 virtual void FindCluster(Int_t i, Int_t j, AliITSRawCluster *c) {
71 virtual void Decluster(AliITSRawCluster *cluster) {
74 virtual void SetNperMax(Int_t npermax=3) {
75 // Set max. Number of cells per local cluster
78 virtual void SetDeclusterFlag(Int_t flag=1) {
82 virtual void SetClusterSize(Int_t clsize=3) {
83 // Set max. cluster size ; bigger clusters will be rejected
84 fClusterSize = clsize;
86 virtual void CalibrateCOG() {
87 // Self Calibration of COG
89 virtual void CorrectCOG(){
92 virtual Bool_t Centered(AliITSRawCluster *cluster) {
96 virtual void SplitByLocalMaxima(AliITSRawCluster *cluster) {
97 // split by local maxima
99 virtual void FillCluster(AliITSRawCluster *cluster, Int_t) {
102 virtual void FillCluster(AliITSRawCluster *cluster) {
104 FillCluster(cluster,1);
106 // set the fitting methods in the derived classes
109 TClonesArray *fDigits; //! digits
110 Int_t fNdigits; //! num of digits
113 AliITSresponse *fResponse; //! response
114 AliITSsegmentation *fSegmentation; //!segmentation
115 Int_t fNRawClusters; //! in case we split the cluster
116 // and want to keep track of
117 // the cluster which was splitted
118 AliITSMap *fMap; //! map
119 Int_t fNperMax; //! NperMax
120 Int_t fDeclusterFlag; //! DeclusterFlag
121 Int_t fClusterSize; //! ClusterSize
122 Int_t fNPeaks; //! NPeaks
124 ClassDef(AliITSClusterFinder,2) //Class for clustering and reconstruction of space points