1 #ifndef ALIITSCLUSTERFINDERSDD_H
2 #define ALIITSCLUSTERFINDERSDD_H
4 ////////////////////////////////////////////////
5 // ITS Cluster Finder Class //
6 ////////////////////////////////////////////////
11 #include "AliITSClusterFinder.h"
12 #include "AliITSDetTypeRec.h"
15 class AliITSCalibration;
16 class AliITSCalibrationSDD;
17 class AliITSsegmentation;
18 class AliITSsegmentationSDD;
21 class AliITSClusterFinderSDD : public AliITSClusterFinder{
23 AliITSClusterFinderSDD
24 (AliITSDetTypeRec* dettyp,
25 TClonesArray *digits,TClonesArray *recpoints);
26 AliITSClusterFinderSDD();
27 virtual ~AliITSClusterFinderSDD(){};
29 virtual void SetCutAmplitude(Int_t mod,Double_t nsigma=4);
30 virtual Int_t CutAmplitude(Int_t anode) const {// get cut amplitude
31 return fCutAmplitude[anode];}
32 virtual void SetDAnode(Double_t danode=4.2) {// setDAnode
34 virtual Double_t DAnode() const {// get DAnode
36 virtual void SetDTime(Double_t dtime=75) {// SetDTime
38 virtual Double_t DTime() const {// get DTime
40 virtual void SetMinPeak(Int_t minpeak=10) {// SetMinPeak
42 virtual Int_t MinPeak() const {// get MinPeak
44 virtual void SetMinCharge(Int_t mincharge=30) {// SetMinCharge
45 fMinCharge=mincharge;}
46 virtual Int_t MinCharge() const {// get MinCharge
48 virtual void SetMinNCells(Int_t minc=3) {// setNCells
50 virtual Int_t MinNCells() const {// get MinNCells
52 virtual void SetMaxNCells(Int_t maxc=10) {// setNCells
54 virtual Int_t MaxNCells() const {// get MaxNCells
56 virtual void SetTimeCorr(Double_t timec=19.3) {// setNCells
58 virtual Double_t TimeCorr() const{// get Time Correction (ns)
61 // Search for clusters
62 virtual void FindRawClusters(Int_t mod=0);
63 void Find1DClusters();
64 void Find1DClustersE();
66 void SelectClusters();
68 void ResolveClusters(); // Ernesto Lopez Torres
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 PrintStatus() const;
81 virtual AliITSCalibrationSDD* GetResp(Int_t mod)const{
82 return (AliITSCalibrationSDD*) fDetTypeRec->GetCalibrationModel(mod);}//Return Response
83 //Returns fSegmentation
84 virtual AliITSsegmentationSDD* GetSeg()const{
85 return (AliITSsegmentationSDD*)fDetTypeRec->GetSegmentationModel(1);}
86 AliITSClusterFinderSDD(const AliITSClusterFinderSDD &source); // copy ctor
87 AliITSClusterFinderSDD& operator=(const AliITSClusterFinderSDD &source);
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 TArrayI 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
99 ClassDef(AliITSClusterFinderSDD,3) // SDD clustering - Piergiorgio C. algo