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;
20 //---------------------------------------------------------------
21 class AliITSClusterFinder :public TObject
25 AliITSClusterFinder(AliITSsegmentation *seg, AliITSresponse *resp, TClonesArray *digits);
26 AliITSClusterFinder();
27 virtual ~AliITSClusterFinder(){
30 AliITSClusterFinder(const AliITSClusterFinder &source); // copy constructor
31 AliITSClusterFinder& operator=(const AliITSClusterFinder &source); // assignment operator
33 virtual void SetResponse(AliITSresponse *response) {
37 virtual void SetSegmentation(AliITSsegmentation *segmentation) {
39 fSegmentation=segmentation;
41 virtual void SetDigits(TClonesArray *ITSdigits) {
44 fNdigits = fDigits->GetEntriesFast();
46 virtual AliITSdigit* GetDigit(Int_t i){
47 return (AliITSdigit*) fDigits->UncheckedAt(i);
49 virtual TClonesArray* Digits(){
52 virtual Int_t NDigits() {
53 // Get Number of Digits
62 virtual void AddCluster(Int_t branch, AliITSRawCluster *c);
63 virtual void AddCluster(Int_t branch, AliITSRawCluster *c, AliITSRecPoint &rp);
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) {
72 virtual void Decluster(AliITSRawCluster *cluster) {
75 virtual void SetNperMax(Int_t npermax=3) {
76 // Set max. Number of cells per local cluster
79 virtual void SetDeclusterFlag(Int_t flag=1) {
83 virtual void SetClusterSize(Int_t clsize=3) {
84 // Set max. cluster size ; bigger clusters will be rejected
85 fClusterSize = clsize;
87 virtual void CalibrateCOG() {
88 // Self Calibration of COG
90 virtual void CorrectCOG(){
94 virtual Bool_t Centered(AliITSRawCluster *cluster) {
98 virtual void SplitByLocalMaxima(AliITSRawCluster *cluster) {
99 // split by local maxima
101 virtual void FillCluster(AliITSRawCluster *cluster, Int_t) {
104 virtual void FillCluster(AliITSRawCluster *cluster) {
106 FillCluster(cluster,1);
109 // set the fitting methods in the derived classes
113 TClonesArray *fDigits; // digits
114 Int_t fNdigits; // num of digits
117 AliITSresponse *fResponse; // response
118 AliITSsegmentation *fSegmentation; //segmentation
120 Int_t fNRawClusters; // in case we split the cluster
121 // and want to keep track of
122 // the cluster which was splitted
123 AliITSMap *fMap; // map
125 Int_t fNperMax; // NperMax
126 Int_t fDeclusterFlag; // DeclusterFlag
127 Int_t fClusterSize; // ClusterSize
128 Int_t fNPeaks; // NPeaks
131 ClassDef(AliITSClusterFinder,1) //Class for clustering and reconstruction of space points