Added function to access SDD charge values and to get a non-duplicated
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinder.h
CommitLineData
b0f5e3fc 1#ifndef ALIITSCLUSTERFINDER_H
2#define ALIITSCLUSTERFINDER_H
9de0700b 3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
b0f5e3fc 8
9////////////////////////////////////////////////
e8189707 10// ITS Cluster Finder Class //
b0f5e3fc 11////////////////////////////////////////////////
12
e8189707 13#include <TObject.h>
14#include <TClonesArray.h>
15
16class AliITSMap;
17class AliITSresponse;
18class AliITSsegmentation;
19class AliITSRawCluster;
20class AliITS;
8ca6a9a5 21class AliITSdigit;
9355b256 22class AliITSRecPoint;
b0f5e3fc 23
9de0700b 24//----------------------------------------------------------------------
25class AliITSClusterFinder :public TObject{
26 public:
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) {
35 // set response
36 fResponse=response;
37 }
38 virtual void SetSegmentation(AliITSsegmentation *segmentation) {
39 // set segmentation
40 fSegmentation=segmentation;
41 }
42 virtual void SetDigits(TClonesArray *ITSdigits) {
43 // set digits
44 fDigits=ITSdigits;
45 fNdigits = fDigits->GetEntriesFast();
46 }
47 virtual AliITSdigit* GetDigit(Int_t i){
48 return (AliITSdigit*) fDigits->UncheckedAt(i);
49 }
50 virtual TClonesArray* Digits(){
51 return fDigits;
52 }
bf3f2830 53 virtual Int_t NDigits() const {
9de0700b 54 // Get Number of Digits
55 return fNdigits;
56 }
bf3f2830 57 AliITSMap *Map() {
9de0700b 58 // map
59 return fMap;
60 }
61 //
62 virtual void AddCluster(Int_t branch, AliITSRawCluster *c);
63 virtual void AddCluster(Int_t branch, AliITSRawCluster *c,
64 AliITSRecPoint &rp);
f8d9a5b8 65 virtual void FindRawClusters(Int_t mod=0); // Finds cluster of digits.
66 // Determins if digit i has a neighbor and if so that neighor index is j.
bf3f2830 67 virtual Bool_t IsNeighbor(TObjArray *digs,Int_t i,Int_t j[]) const;
f8d9a5b8 68 // Given a cluster of digits, creates the nessesary RecPoint. May also
69 // do some peak separation.
70 virtual void CreateRecPoints(TObjArray *cluster,Int_t mod){};
9de0700b 71 virtual void FindCluster(Int_t i, Int_t j, AliITSRawCluster *c) {
72 // find cluster
73 }
74 virtual void Decluster(AliITSRawCluster *cluster) {
75 // Decluster
76 }
77 virtual void SetNperMax(Int_t npermax=3) {
78 // Set max. Number of cells per local cluster
79 fNperMax = npermax;
80 }
81 virtual void SetDeclusterFlag(Int_t flag=1) {
82 // Decluster ?
83 fDeclusterFlag =flag;
84 }
85 virtual void SetClusterSize(Int_t clsize=3) {
86 // Set max. cluster size ; bigger clusters will be rejected
87 fClusterSize = clsize;
88 }
89 virtual void CalibrateCOG() {
90 // Self Calibration of COG
91 }
92 virtual void CorrectCOG(){
93 // correct COG
94 }
bf3f2830 95 virtual Bool_t Centered(AliITSRawCluster *cluster) const {
9de0700b 96 // cluster
97 return kTRUE;
98 }
99 virtual void SplitByLocalMaxima(AliITSRawCluster *cluster) {
100 // split by local maxima
101 }
102 virtual void FillCluster(AliITSRawCluster *cluster, Int_t) {
103 // fiil cluster
104 }
105 virtual void FillCluster(AliITSRawCluster *cluster) {
106 // fill cluster
107 FillCluster(cluster,1);
108 }
109 // set the fitting methods in the derived classes
110 // data members
e8189707 111
bf3f2830 112
9de0700b 113 protected:
bf3f2830 114 TClonesArray *fDigits; //! digits
115 Int_t fNdigits; //! num of digits
9de0700b 116 AliITSresponse *fResponse; //! response
117 AliITSsegmentation *fSegmentation; //!segmentation
118 Int_t fNRawClusters; //! in case we split the cluster
119 // and want to keep track of
120 // the cluster which was splitted
121 AliITSMap *fMap; //! map
122 Int_t fNperMax; //! NperMax
123 Int_t fDeclusterFlag; //! DeclusterFlag
124 Int_t fClusterSize; //! ClusterSize
125 Int_t fNPeaks; //! NPeaks
b0f5e3fc 126
2b00434a 127 ClassDef(AliITSClusterFinder,2) //Class for clustering and reconstruction of space points
9de0700b 128};
b0f5e3fc 129#endif