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