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