1 #ifndef ALIITSCLUSTERFINDER_H
2 #define ALIITSCLUSTERFINDER_H
5 ////////////////////////////////////////////////
6 // ITS Cluster Finder Class //
7 ////////////////////////////////////////////////
10 #include <TClonesArray.h>
14 class AliITSsegmentation;
15 class AliITSRawCluster;
18 //---------------------------------------------------------------
19 class AliITSClusterFinder :public TObject
23 AliITSClusterFinder(AliITSsegmentation *seg, AliITSresponse *resp, TClonesArray *digits);
24 AliITSClusterFinder();
25 virtual ~AliITSClusterFinder(){
28 AliITSClusterFinder(const AliITSClusterFinder &source); // copy constructor
29 AliITSClusterFinder& operator=(const AliITSClusterFinder &source); // assignment operator
31 virtual void SetResponse(AliITSresponse *response) {
35 virtual void SetSegmentation(AliITSsegmentation *segmentation) {
37 fSegmentation=segmentation;
40 virtual void SetDigits(TClonesArray *ITSdigits) {
43 fNdigits = fDigits->GetEntriesFast();
45 virtual Int_t NDigits() {
46 // Get Number of Digits
50 virtual void SetMap() {
58 virtual void AddCluster(Int_t branch, AliITSRawCluster *c);
60 virtual void FindRawClusters() {
61 // Search for raw clusters
63 virtual void FindCluster(Int_t i, Int_t j, AliITSRawCluster *c) {
67 virtual void Decluster(AliITSRawCluster *cluster) {
70 virtual void SetNperMax(Int_t npermax=3) {
71 // Set max. Number of cells per local cluster
74 virtual void SetDeclusterFlag(Int_t flag=1) {
78 virtual void SetClusterSize(Int_t clsize=3) {
79 // Set max. cluster size ; bigger clusters will be rejected
80 fClusterSize = clsize;
82 virtual void CalibrateCOG() {
83 // Self Calibration of COG
85 virtual void CorrectCOG(){
89 virtual Bool_t Centered(AliITSRawCluster *cluster) {
93 virtual void SplitByLocalMaxima(AliITSRawCluster *cluster) {
94 // split by local maxima
96 virtual void FillCluster(AliITSRawCluster *cluster, Int_t) {
99 virtual void FillCluster(AliITSRawCluster *cluster) {
101 FillCluster(cluster,1);
104 // set the fitting methods in the derived classes
108 TClonesArray *fDigits; // digits
109 Int_t fNdigits; // num of digits
112 AliITSresponse *fResponse; // response
113 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
120 Int_t fNperMax; // NperMax
121 Int_t fDeclusterFlag; // DeclusterFlag
122 Int_t fClusterSize; // ClusterSize
123 Int_t fNPeaks; // NPeaks
126 ClassDef(AliITSClusterFinder,1) //Class for clustering and reconstruction of space points