Print removed
[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   $Id$
9 */
10
11 #include "AliITSClusterFinder.h"
12
13 class AliITSMapA2;
14 class AliITSresponse;
15 class AliITSresponseSDD;
16 class AliITSsegmentation;
17 class AliITSsegmentationSDD;
18 class TFile;
19
20 class AliITSClusterFinderSDD : public AliITSClusterFinder{
21   public:
22     AliITSClusterFinderSDD
23         (AliITSsegmentation *seg,AliITSresponse *response,
24          TClonesArray *digits,TClonesArray *recpoints);
25     AliITSClusterFinderSDD();
26     virtual ~AliITSClusterFinderSDD(){};
27     
28     virtual void  SetCutAmplitude(Double_t nsigma=4);
29     virtual Int_t CutAmplitude() const {// get cut amplitude
30         return fCutAmplitude;}
31     virtual void SetDAnode(Double_t danode=4.2) {// setDAnode
32         fDAnode=danode;}
33     virtual Double_t DAnode() const {// get DAnode
34         return fDAnode;}
35     virtual void SetDTime(Double_t dtime=75) {// SetDTime
36         fDTime=dtime;}
37     virtual Double_t DTime() const {// get DTime
38         return fDTime;}
39     virtual void SetMinPeak(Int_t minpeak=10) {// SetMinPeak
40         fMinPeak=minpeak;}
41     virtual Int_t MinPeak() const {// get MinPeak
42         return fMinPeak;}
43     virtual void SetMinCharge(Int_t mincharge=30) {// SetMinCharge
44         fMinCharge=mincharge;}
45     virtual Int_t MinCharge() const {// get MinCharge
46         return fMinCharge;}
47     virtual void SetMinNCells(Int_t minc=3) {// setNCells
48         fMinNCells=minc;}
49     virtual Int_t MinNCells() const {// get MinNCells
50         return fMinNCells;}
51     virtual void SetMaxNCells(Int_t maxc=10) {// setNCells
52         fMaxNCells=maxc;}
53     virtual Int_t MaxNCells() const {// get MaxNCells
54         return fMaxNCells;}
55     virtual void SetTimeCorr(Double_t timec=19.3) {// setNCells
56         fTimeCorr=timec;}
57     virtual Double_t TimeCorr() const{// get Time Correction (ns)
58         return fTimeCorr;}
59
60     // Search for clusters
61     virtual void FindRawClusters(Int_t mod=0);
62     void  Find1DClusters();
63     void  Find1DClustersE();
64     void  GroupClusters();
65     void  SelectClusters();
66     void  GetRecPoints();
67     void  ResolveClusters(); // Boris........ 
68     void  ResolveClustersE(); // Ernesto 
69     Int_t SearchPeak(Double_t *spect,Int_t xdim,Int_t zdim,Int_t *peakX,
70                      Int_t *peakZ,Double_t *peakAmp,Double_t minpeak);//Ernesto
71     Int_t NoLinearFit( Int_t xdim, Int_t zdim, Double_t *param, Double_t *spe,
72                        Int_t *niter, Double_t *chir );
73     void  Minim(Int_t xdim,Int_t zdim,Double_t *param,Double_t *prm0,
74              Double_t *steprm,Double_t *chisqr,Double_t *spe,Double_t *speFit);
75     Double_t ChiSqr(Int_t xdim,Int_t zdim,Double_t *spe,Double_t *speFit)const;
76     void  PeakFunc( Int_t xdim, Int_t zdim, Double_t *par, Double_t *spe,
77                     Double_t *Integral=0 );
78     void  Print() const;
79
80   private:
81     virtual AliITSresponseSDD* GetResp()const{
82         return (AliITSresponseSDD*) GetResponse();}//Return Response
83     //Returns fSegmentation
84     virtual AliITSsegmentationSDD* GetSeg()const{
85         return (AliITSsegmentationSDD*)GetSegmentation();} 
86     AliITSClusterFinderSDD(const AliITSClusterFinderSDD &source); // copy ctor
87     AliITSClusterFinderSDD& operator=(const AliITSClusterFinderSDD &source);
88   private:
89     Int_t               fNclusters;     //! num of clusters
90     Double_t             fDAnode;        //! fDanode
91     Double_t             fDTime;         //! fDtime
92     Double_t             fTimeCorr;      //! Correction factor along time coord
93     Int_t               fCutAmplitude;  //! cut amplitude
94     Int_t               fMinPeak;       //! min peak
95     Int_t               fMinCharge;     //! min charge
96     Int_t               fMinNCells;     //! min num of cells
97     Int_t               fMaxNCells;     //! max num of cells
98
99     ClassDef(AliITSClusterFinderSDD,2) // SDD clustering - Piergiorgio C. algo
100     };
101
102 #endif