]> git.uio.no Git - u/mrichter/AliRoot.git/blob - RICH/AliRICHClusterFinder.h
Cleaned up version.
[u/mrichter/AliRoot.git] / RICH / AliRICHClusterFinder.h
1 #ifndef ALIRICHCLUSTERFINDER_H
2 #define ALIRICHCLUSTERFINDER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9
10 ////////////////////////////////////////////////
11 //  RICH Cluster Finder Class                 //
12 ////////////////////////////////////////////////
13 class AliRICHHitMapA1;
14
15 #include "TF1.h"
16 #include "TObject.h"
17 class  TClonesArray;
18 class AliRICHSegmentation;
19 class AliRICHRawCluster;
20 class AliRICHResponse;
21 class TClonesArray;
22
23
24 class AliRICHClusterFinder :
25  public TObject
26 {
27  public:
28     AliRICHClusterFinder
29         (AliRICHSegmentation *segmentation,
30          AliRICHResponse *response, TClonesArray *digits, Int_t chamber);
31     AliRICHClusterFinder();
32     AliRICHClusterFinder(const AliRICHClusterFinder & ClusterFinder);
33     virtual ~AliRICHClusterFinder();
34     virtual void SetSegmentation(
35         AliRICHSegmentation *segmentation){
36         fSegmentation=segmentation;
37     }
38     virtual void SetResponse(AliRICHResponse *response) {
39         fResponse=response;
40     }
41
42     virtual void SetDigits(TClonesArray *RICHdigits);
43     
44     virtual void SetChamber(Int_t ich){
45         fChamber=ich;
46     }
47     
48     virtual void AddRawCluster(const AliRICHRawCluster c);
49     // Search for raw clusters
50     virtual void FindRawClusters();
51     virtual void  FindCluster(Int_t i, Int_t j, AliRICHRawCluster &c);
52     // Decluster
53     virtual void Decluster(AliRICHRawCluster *cluster);
54     // Set max. Number of pads per local cluster
55     virtual void SetNperMax(Int_t npermax=5) {fNperMax = npermax;}
56     // Decluster ?
57     virtual void SetDeclusterFlag(Int_t flag=1) {fDeclusterFlag =flag;}
58     // Set max. cluster size ; bigger clusters will be rejected
59     virtual void SetClusterSize(Int_t clsize=5) {fClusterSize = clsize;}
60     // Self Calibration of COG 
61     virtual void CalibrateCOG();
62     virtual void SinoidalFit(Float_t x, Float_t y, TF1 &func);
63     //
64     virtual void CorrectCOG(){;}
65     
66     //
67     virtual Bool_t Centered(AliRICHRawCluster *cluster);
68     virtual void   SplitByLocalMaxima(AliRICHRawCluster *cluster);
69     virtual void   FillCluster(AliRICHRawCluster *cluster, Int_t flag);
70     virtual void   FillCluster(AliRICHRawCluster *cluster) {
71         FillCluster(cluster,1);}
72     TClonesArray* RawClusters(){return fRawClusters;}
73     AliRICHClusterFinder& operator=(const AliRICHClusterFinder& rhs);
74     ClassDef(AliRICHClusterFinder,1) //Class for clustering and reconstruction of space points
75 protected:
76     AliRICHSegmentation*    fSegmentation;                 //Segmentation model
77     AliRICHResponse*        fResponse;                     //Response model
78     TClonesArray*           fRawClusters;                  //Raw clusters list
79     Int_t                   fChamber;                      //Chamber number
80     Int_t                   fNRawClusters;                 //Number of raw clusters
81     AliRICHHitMapA1*        fHitMap;                       //Hit Map with digit positions
82     TF1*                    fCogCorr;                      //Correction for center of gravity
83     Int_t                   fNperMax;                      //Number of pad hits per local maximum
84     Int_t                   fDeclusterFlag;                //Split clusters flag
85     Int_t                   fClusterSize;                  //Size of cluster 
86     Int_t                   fNPeaks;                       //Number of maxima in the cluster
87     TClonesArray*           fDigits;                       //List of digits
88     Int_t                   fNdigits;                      //Number of digits
89
90 };
91 #endif
92
93
94
95
96
97
98