1 #ifndef ALIITSCLUSTERFINDERSDD_H
2 #define ALIITSCLUSTERFINDERSDD_H
4 ////////////////////////////////////////////////
5 // ITS Cluster Finder Class //
6 ////////////////////////////////////////////////
11 #include "AliITSClusterFinder.h"
15 class AliITSresponseSDD;
16 class AliITSsegmentation;
17 class AliITSsegmentationSDD;
20 class AliITSClusterFinderSDD : public AliITSClusterFinder{
22 AliITSClusterFinderSDD
23 (AliITSsegmentation *seg,AliITSresponse *response,
24 TClonesArray *digits,TClonesArray *recpoints);
25 AliITSClusterFinderSDD();
26 virtual ~AliITSClusterFinderSDD(){};
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
33 virtual Double_t DAnode() const {// get DAnode
35 virtual void SetDTime(Double_t dtime=75) {// SetDTime
37 virtual Double_t DTime() const {// get DTime
39 virtual void SetMinPeak(Int_t minpeak=10) {// SetMinPeak
41 virtual Int_t MinPeak() const {// get MinPeak
43 virtual void SetMinCharge(Int_t mincharge=30) {// SetMinCharge
44 fMinCharge=mincharge;}
45 virtual Int_t MinCharge() const {// get MinCharge
47 virtual void SetMinNCells(Int_t minc=3) {// setNCells
49 virtual Int_t MinNCells() const {// get MinNCells
51 virtual void SetMaxNCells(Int_t maxc=10) {// setNCells
53 virtual Int_t MaxNCells() const {// get MaxNCells
55 virtual void SetTimeCorr(Double_t timec=19.3) {// setNCells
57 virtual Double_t TimeCorr() const{// get Time Correction (ns)
60 // Search for clusters
61 virtual void FindRawClusters(Int_t mod=0);
62 void Find1DClusters();
63 void Find1DClustersE();
65 void SelectClusters();
67 void ResolveClusters(); // Ernesto Lopez Torres
68 Int_t SearchPeak(Double_t *spect,Int_t xdim,Int_t zdim,Int_t *peakX,
69 Int_t *peakZ,Double_t *peakAmp,Double_t minpeak);//Ernesto
70 Int_t NoLinearFit( Int_t xdim, Int_t zdim, Double_t *param, Double_t *spe,
71 Int_t *niter, Double_t *chir );
72 void Minim(Int_t xdim,Int_t zdim,Double_t *param,Double_t *prm0,
73 Double_t *steprm,Double_t *chisqr,Double_t *spe,Double_t *speFit);
74 Double_t ChiSqr(Int_t xdim,Int_t zdim,Double_t *spe,Double_t *speFit)const;
75 void PeakFunc( Int_t xdim, Int_t zdim, Double_t *par, Double_t *spe,
76 Double_t *Integral=0 );
77 void PrintStatus() const;
80 virtual AliITSresponseSDD* GetResp()const{
81 return (AliITSresponseSDD*) GetResponse();}//Return Response
82 //Returns fSegmentation
83 virtual AliITSsegmentationSDD* GetSeg()const{
84 return (AliITSsegmentationSDD*)GetSegmentation();}
85 AliITSClusterFinderSDD(const AliITSClusterFinderSDD &source); // copy ctor
86 AliITSClusterFinderSDD& operator=(const AliITSClusterFinderSDD &source);
88 Int_t fNclusters; //! num of clusters
89 Double_t fDAnode; //! fDanode
90 Double_t fDTime; //! fDtime
91 Double_t fTimeCorr; //! Correction factor along time coord
92 Int_t fCutAmplitude; //! cut amplitude
93 Int_t fMinPeak; //! min peak
94 Int_t fMinCharge; //! min charge
95 Int_t fMinNCells; //! min num of cells
96 Int_t fMaxNCells; //! max num of cells
98 ClassDef(AliITSClusterFinderSDD,2) // SDD clustering - Piergiorgio C. algo