]>
Commit | Line | Data |
---|---|---|
b0f5e3fc | 1 | #ifndef ALIITSCLUSTERFINDERSDD_H |
2 | #define ALIITSCLUSTERFINDERSDD_H | |
3 | ||
4 | //////////////////////////////////////////////// | |
5 | // ITS Cluster Finder Class // | |
6 | //////////////////////////////////////////////// | |
48058160 | 7 | /* |
8 | $Id$ | |
9 | */ | |
78a228db | 10 | |
6cae184e | 11 | #include <TArrayI.h> |
12 | ||
b0f5e3fc | 13 | #include "AliITSClusterFinder.h" |
8ba39da9 | 14 | #include "AliITSDetTypeRec.h" |
b0f5e3fc | 15 | |
f45f6658 | 16 | // class AliITSMapA2; |
fcf95fc7 | 17 | class AliITSCalibration; |
18 | class AliITSCalibrationSDD; | |
aacedc3e | 19 | class AliITSsegmentation; |
20 | class AliITSsegmentationSDD; | |
78a228db | 21 | class TFile; |
e8189707 | 22 | |
50d05d7b | 23 | class AliITSClusterFinderSDD : public AliITSClusterFinder{ |
aacedc3e | 24 | public: |
48058160 | 25 | AliITSClusterFinderSDD |
8ba39da9 | 26 | (AliITSDetTypeRec* dettyp, |
aacedc3e | 27 | TClonesArray *digits,TClonesArray *recpoints); |
50d05d7b | 28 | AliITSClusterFinderSDD(); |
aacedc3e | 29 | virtual ~AliITSClusterFinderSDD(){}; |
30 | ||
8ba39da9 | 31 | virtual void SetCutAmplitude(Int_t mod,Double_t nsigma=4); |
f45f6658 | 32 | virtual Int_t CutAmplitude(Int_t anode) const {// get cut amplitude |
33 | return fCutAmplitude[anode];} | |
aacedc3e | 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;} | |
50d05d7b | 42 | virtual void SetMinPeak(Int_t minpeak=10) {// SetMinPeak |
aacedc3e | 43 | fMinPeak=minpeak;} |
bf3f2830 | 44 | virtual Int_t MinPeak() const {// get MinPeak |
aacedc3e | 45 | return fMinPeak;} |
50d05d7b | 46 | virtual void SetMinCharge(Int_t mincharge=30) {// SetMinCharge |
aacedc3e | 47 | fMinCharge=mincharge;} |
bf3f2830 | 48 | virtual Int_t MinCharge() const {// get MinCharge |
aacedc3e | 49 | return fMinCharge;} |
50d05d7b | 50 | virtual void SetMinNCells(Int_t minc=3) {// setNCells |
aacedc3e | 51 | fMinNCells=minc;} |
bf3f2830 | 52 | virtual Int_t MinNCells() const {// get MinNCells |
aacedc3e | 53 | return fMinNCells;} |
50d05d7b | 54 | virtual void SetMaxNCells(Int_t maxc=10) {// setNCells |
aacedc3e | 55 | fMaxNCells=maxc;} |
bf3f2830 | 56 | virtual Int_t MaxNCells() const {// get MaxNCells |
aacedc3e | 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;} | |
50d05d7b | 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(); | |
4952f440 | 69 | void GetRecPoints(AliITSCalibrationSDD* cal); |
04366a57 | 70 | void ResolveClusters(); // Ernesto Lopez Torres |
aacedc3e | 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 ); | |
d2f55a22 | 80 | void PrintStatus() const; |
404c1c29 | 81 | void CorrectPosition(Double_t &z, Double_t&y); |
aacedc3e | 82 | private: |
fcf95fc7 | 83 | virtual AliITSCalibrationSDD* GetResp(Int_t mod)const{ |
84 | return (AliITSCalibrationSDD*) fDetTypeRec->GetCalibrationModel(mod);}//Return Response | |
aacedc3e | 85 | //Returns fSegmentation |
86 | virtual AliITSsegmentationSDD* GetSeg()const{ | |
8ba39da9 | 87 | return (AliITSsegmentationSDD*)fDetTypeRec->GetSegmentationModel(1);} |
50d05d7b | 88 | AliITSClusterFinderSDD(const AliITSClusterFinderSDD &source); // copy ctor |
89 | AliITSClusterFinderSDD& operator=(const AliITSClusterFinderSDD &source); | |
aacedc3e | 90 | private: |
50d05d7b | 91 | Int_t fNclusters; //! num of clusters |
f45f6658 | 92 | Double_t fDAnode; //! fDanode |
93 | Double_t fDTime; //! fDtime | |
94 | Double_t fTimeCorr; //! Correction factor along time coord | |
95 | TArrayI fCutAmplitude; //! cut amplitude | |
50d05d7b | 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 | ||
f45f6658 | 101 | ClassDef(AliITSClusterFinderSDD,3) // SDD clustering - Piergiorgio C. algo |
48058160 | 102 | }; |
b0f5e3fc | 103 | |
b0f5e3fc | 104 | #endif |