]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONClusterFinder.h
Introduction of the reference to Copyright and cvs Id
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterFinder.h
1 #ifndef AliMUONClusterFinder_H
2 #define AliMUONClusterFinder_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ////////////////////////////////////////////////
9 //  MUON Cluster Finder Class                 //
10 ////////////////////////////////////////////////
11 #include "AliMUONHitMap.h"
12 #include "TF1.h"
13 class AliMUONClusterFinder :
14  public TObject
15 {
16 public:
17     TClonesArray*           fDigits;
18     Int_t                   fNdigits;
19 protected:
20     AliMUONsegmentation*    fSegmentation;
21     AliMUONresponse*        fResponse;
22     TClonesArray*           fRawClusters;
23     Int_t                   fChamber;
24     Int_t                   fNRawClusters;
25     AliMUONHitMapA1*        fHitMap;
26     TF1*                    fCogCorr;
27     Int_t                   fNperMax;
28     Int_t                   fDeclusterFlag;
29     Int_t                   fClusterSize;
30     Int_t                   fNPeaks; 
31  public:
32     AliMUONClusterFinder
33         (AliMUONsegmentation *segmentation,
34          AliMUONresponse *response, TClonesArray *digits, Int_t chamber);
35     AliMUONClusterFinder();
36     ~AliMUONClusterFinder(){delete fRawClusters;}
37     virtual void SetSegmentation(
38         AliMUONsegmentation *segmentation){
39         fSegmentation=segmentation;
40     }
41     virtual void SetResponse(AliMUONresponse *response) {
42         fResponse=response;
43     }
44
45     virtual void SetDigits(TClonesArray *MUONdigits) {
46         fDigits=MUONdigits;
47         fNdigits = fDigits->GetEntriesFast();
48     }
49     
50     virtual void SetChamber(Int_t ich){
51         fChamber=ich;
52     }
53     
54     virtual void AddRawCluster(const AliMUONRawCluster);
55     // Search for raw clusters
56     virtual void FindRawClusters();
57     virtual void  FindCluster(Int_t i, Int_t j, AliMUONRawCluster &c);
58     // Decluster
59     virtual void Decluster(AliMUONRawCluster *cluster);
60     // Set max. Number of pads per local cluster
61     virtual void SetNperMax(Int_t npermax=5) {fNperMax = npermax;}
62     // Decluster ?
63     virtual void SetDeclusterFlag(Int_t flag=1) {fDeclusterFlag =flag;}
64     // Set max. cluster size ; bigger clusters will be rejected
65     virtual void SetClusterSize(Int_t clsize=5) {fClusterSize = clsize;}
66     // Self Calibration of COG 
67     virtual void CalibrateCOG();
68     virtual void SinoidalFit(Float_t x, Float_t y, TF1 &func);
69     //
70     virtual void CorrectCOG(){;}
71     
72     //
73     virtual Bool_t Centered(AliMUONRawCluster *cluster);
74     virtual void   SplitByLocalMaxima(AliMUONRawCluster *cluster);
75     virtual void   FillCluster(AliMUONRawCluster *cluster, Int_t);
76     virtual void   FillCluster(AliMUONRawCluster *cluster) {
77         FillCluster(cluster,1);}
78     TClonesArray* RawClusters(){return fRawClusters;}
79     ClassDef(AliMUONClusterFinder,1) //Class for clustering and reconstruction of space points
80 };
81 #endif
82
83
84
85
86
87
88