]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSClusterFinderSDD.h
New SDD code for much improved SDigit handling. Also bug fix made in the
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinderSDD.h
1 #ifndef ALIITSCLUSTERFINDERSDD_H
2 #define ALIITSCLUSTERFINDERSDD_H
3
4 ////////////////////////////////////////////////
5 //  ITS Cluster Finder Class                 //
6 ////////////////////////////////////////////////
7
8
9 #include "AliITSClusterFinder.h"
10
11 class AliITSMapA2;
12 class TFile;
13
14 class AliITSClusterFinderSDD : public AliITSClusterFinder{
15  public:
16
17     AliITSClusterFinderSDD(AliITSsegmentation *seg,AliITSresponse *response,
18                            TClonesArray *digits,TClonesArray *recpoints);
19     AliITSClusterFinderSDD();
20     virtual ~AliITSClusterFinderSDD();
21
22     virtual void  SetCutAmplitude(Float_t nsigma=4);
23     virtual Int_t CutAmplitude() {// get cut amplitude
24         return fCutAmplitude;}
25     virtual void SetDAnode(Float_t danode=4.2) {// setDAnode
26         fDAnode=danode;}
27     virtual Float_t DAnode() {// get DAnode
28         return fDAnode;}
29     virtual void SetDTime(Float_t dtime=75) {// SetDTime
30         fDTime=dtime;}
31     virtual Float_t DTime() {// get DTime
32         return fDTime;}
33     virtual void SetMinPeak(Int_t minpeak=10) {// SetMinPeak
34         fMinPeak=minpeak;}
35     virtual Int_t MinPeak() {// get MinPeak
36         return fMinPeak;}
37     virtual void SetMinCharge(Int_t mincharge=30) {// SetMinCharge
38         fMinCharge=mincharge;}
39     virtual Int_t MinCharge() {// get MinCharge
40         return fMinCharge;}
41     virtual void SetMinNCells(Int_t minc=3) {// setNCells
42         fMinNCells=minc;}
43     virtual Int_t MinNCells() {// get MinNCells
44         return fMinNCells;}
45     virtual void SetMaxNCells(Int_t maxc=10) {// setNCells
46         fMaxNCells=maxc;}
47     virtual Int_t MaxNCells() {// get MaxNCells
48         return fMaxNCells;}
49     virtual void SetTimeCorr(Float_t timec=23.) {// setNCells
50         fTimeCorr=timec;}
51     virtual Float_t TimeCorr() {// get Time Correction (ns)
52         return fTimeCorr;}
53
54     // Search for clusters
55     virtual void FindRawClusters(Int_t mod=0);
56     void  Find1DClusters();
57     void  Find1DClustersE();
58     void  GroupClusters();
59     void  SelectClusters();
60     void  GetRecPoints();
61     void ResolveClusters(); // Boris........ 
62     void ResolveClustersE(); // Ernesto 
63     Int_t SearchPeak(Float_t *spect,Int_t xdim,Int_t zdim,Int_t *peakX, Int_t
64                      *peakZ, Float_t *peakAmp, Float_t minpeak ); // Ernesto
65     Int_t NoLinearFit(Int_t xdim,Int_t zdim,Float_t *param,Float_t *spe,
66                       Int_t *niter, Float_t *chir );
67     void Minim( Int_t xdim, Int_t zdim, Float_t *param, Float_t *prm0,
68                 Float_t *steprm,Float_t *chisqr,Float_t *spe,Float_t *speFit );
69     Float_t ChiSqr( Int_t xdim, Int_t zdim, Float_t *spe, Float_t *speFit );
70     void PeakFunc( Int_t xdim, Int_t zdim, Float_t *par, Float_t *spe, Float_t
71                    *Integral=0 );
72     void Print();
73
74  private:
75     AliITSClusterFinderSDD(const AliITSClusterFinderSDD &source); // copy ctor
76     AliITSClusterFinderSDD& operator=(const AliITSClusterFinderSDD &source);
77
78  private:
79     Int_t               fModule;        //! ITS current module 
80     TClonesArray       *fClusters;      //! clusters
81     Int_t               fNclusters;     //! num of clusters
82     Float_t             fDAnode;        //! fDanode
83     Float_t             fDTime;         //! fDtime
84     Float_t             fTimeCorr;      //! Correction factor along time coord
85     Int_t               fCutAmplitude;  //! cut amplitude
86     Int_t               fMinPeak;       //! min peak
87     Int_t               fMinCharge;     //! min charge
88     Int_t               fMinNCells;     //! min num of cells
89     Int_t               fMaxNCells;     //! max num of cells
90
91     ClassDef(AliITSClusterFinderSDD,1) // SDD clustering - Piergiorgio C. algo
92
93 };
94
95 #endif