]>
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 | |
b0f5e3fc | 11 | #include "AliITSClusterFinder.h" |
8ba39da9 | 12 | #include "AliITSDetTypeRec.h" |
b0f5e3fc | 13 | |
f45f6658 | 14 | // class AliITSMapA2; |
fcf95fc7 | 15 | class AliITSCalibration; |
16 | class AliITSCalibrationSDD; | |
aacedc3e | 17 | class AliITSsegmentation; |
18 | class AliITSsegmentationSDD; | |
78a228db | 19 | class TFile; |
e8189707 | 20 | |
50d05d7b | 21 | class AliITSClusterFinderSDD : public AliITSClusterFinder{ |
aacedc3e | 22 | public: |
48058160 | 23 | AliITSClusterFinderSDD |
8ba39da9 | 24 | (AliITSDetTypeRec* dettyp, |
aacedc3e | 25 | TClonesArray *digits,TClonesArray *recpoints); |
50d05d7b | 26 | AliITSClusterFinderSDD(); |
aacedc3e | 27 | virtual ~AliITSClusterFinderSDD(){}; |
28 | ||
8ba39da9 | 29 | virtual void SetCutAmplitude(Int_t mod,Double_t nsigma=4); |
f45f6658 | 30 | virtual Int_t CutAmplitude(Int_t anode) const {// get cut amplitude |
31 | return fCutAmplitude[anode];} | |
aacedc3e | 32 | virtual void SetDAnode(Double_t danode=4.2) {// setDAnode |
33 | fDAnode=danode;} | |
34 | virtual Double_t DAnode() const {// get DAnode | |
35 | return fDAnode;} | |
36 | virtual void SetDTime(Double_t dtime=75) {// SetDTime | |
37 | fDTime=dtime;} | |
38 | virtual Double_t DTime() const {// get DTime | |
39 | return fDTime;} | |
50d05d7b | 40 | virtual void SetMinPeak(Int_t minpeak=10) {// SetMinPeak |
aacedc3e | 41 | fMinPeak=minpeak;} |
bf3f2830 | 42 | virtual Int_t MinPeak() const {// get MinPeak |
aacedc3e | 43 | return fMinPeak;} |
50d05d7b | 44 | virtual void SetMinCharge(Int_t mincharge=30) {// SetMinCharge |
aacedc3e | 45 | fMinCharge=mincharge;} |
bf3f2830 | 46 | virtual Int_t MinCharge() const {// get MinCharge |
aacedc3e | 47 | return fMinCharge;} |
50d05d7b | 48 | virtual void SetMinNCells(Int_t minc=3) {// setNCells |
aacedc3e | 49 | fMinNCells=minc;} |
bf3f2830 | 50 | virtual Int_t MinNCells() const {// get MinNCells |
aacedc3e | 51 | return fMinNCells;} |
50d05d7b | 52 | virtual void SetMaxNCells(Int_t maxc=10) {// setNCells |
aacedc3e | 53 | fMaxNCells=maxc;} |
bf3f2830 | 54 | virtual Int_t MaxNCells() const {// get MaxNCells |
aacedc3e | 55 | return fMaxNCells;} |
56 | virtual void SetTimeCorr(Double_t timec=19.3) {// setNCells | |
57 | fTimeCorr=timec;} | |
58 | virtual Double_t TimeCorr() const{// get Time Correction (ns) | |
59 | return fTimeCorr;} | |
50d05d7b | 60 | |
61 | // Search for clusters | |
62 | virtual void FindRawClusters(Int_t mod=0); | |
63 | void Find1DClusters(); | |
64 | void Find1DClustersE(); | |
65 | void GroupClusters(); | |
66 | void SelectClusters(); | |
67 | void GetRecPoints(); | |
04366a57 | 68 | void ResolveClusters(); // Ernesto Lopez Torres |
aacedc3e | 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 ); | |
d2f55a22 | 78 | void PrintStatus() const; |
404c1c29 | 79 | void CorrectPosition(Double_t &z, Double_t&y); |
aacedc3e | 80 | private: |
fcf95fc7 | 81 | virtual AliITSCalibrationSDD* GetResp(Int_t mod)const{ |
82 | return (AliITSCalibrationSDD*) fDetTypeRec->GetCalibrationModel(mod);}//Return Response | |
aacedc3e | 83 | //Returns fSegmentation |
84 | virtual AliITSsegmentationSDD* GetSeg()const{ | |
8ba39da9 | 85 | return (AliITSsegmentationSDD*)fDetTypeRec->GetSegmentationModel(1);} |
50d05d7b | 86 | AliITSClusterFinderSDD(const AliITSClusterFinderSDD &source); // copy ctor |
87 | AliITSClusterFinderSDD& operator=(const AliITSClusterFinderSDD &source); | |
aacedc3e | 88 | private: |
50d05d7b | 89 | Int_t fNclusters; //! num of clusters |
f45f6658 | 90 | Double_t fDAnode; //! fDanode |
91 | Double_t fDTime; //! fDtime | |
92 | Double_t fTimeCorr; //! Correction factor along time coord | |
93 | TArrayI fCutAmplitude; //! cut amplitude | |
50d05d7b | 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 | |
98 | ||
f45f6658 | 99 | ClassDef(AliITSClusterFinderSDD,3) // SDD clustering - Piergiorgio C. algo |
48058160 | 100 | }; |
b0f5e3fc | 101 | |
b0f5e3fc | 102 | #endif |