]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIITSCLUSTERFINDERSDD_H | |
2 | #define ALIITSCLUSTERFINDERSDD_H | |
3 | ||
4 | //////////////////////////////////////////////// | |
5 | // ITS Cluster Finder Class // | |
6 | //////////////////////////////////////////////// | |
7 | /* | |
8 | $Id$ | |
9 | */ | |
10 | ||
11 | #include "AliITSClusterFinder.h" | |
12 | #include "AliITSDetTypeRec.h" | |
13 | ||
14 | // class AliITSMapA2; | |
15 | class AliITSCalibration; | |
16 | class AliITSCalibrationSDD; | |
17 | class AliITSsegmentation; | |
18 | class AliITSsegmentationSDD; | |
19 | class TFile; | |
20 | ||
21 | class AliITSClusterFinderSDD : public AliITSClusterFinder{ | |
22 | public: | |
23 | AliITSClusterFinderSDD | |
24 | (AliITSDetTypeRec* dettyp, | |
25 | TClonesArray *digits,TClonesArray *recpoints); | |
26 | AliITSClusterFinderSDD(); | |
27 | virtual ~AliITSClusterFinderSDD(){}; | |
28 | ||
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 | |
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;} | |
40 | virtual void SetMinPeak(Int_t minpeak=10) {// SetMinPeak | |
41 | fMinPeak=minpeak;} | |
42 | virtual Int_t MinPeak() const {// get MinPeak | |
43 | return fMinPeak;} | |
44 | virtual void SetMinCharge(Int_t mincharge=30) {// SetMinCharge | |
45 | fMinCharge=mincharge;} | |
46 | virtual Int_t MinCharge() const {// get MinCharge | |
47 | return fMinCharge;} | |
48 | virtual void SetMinNCells(Int_t minc=3) {// setNCells | |
49 | fMinNCells=minc;} | |
50 | virtual Int_t MinNCells() const {// get MinNCells | |
51 | return fMinNCells;} | |
52 | virtual void SetMaxNCells(Int_t maxc=10) {// setNCells | |
53 | fMaxNCells=maxc;} | |
54 | virtual Int_t MaxNCells() const {// get MaxNCells | |
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;} | |
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(); | |
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; | |
79 | ||
80 | private: | |
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); | |
88 | private: | |
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 | |
98 | ||
99 | ClassDef(AliITSClusterFinderSDD,3) // SDD clustering - Piergiorgio C. algo | |
100 | }; | |
101 | ||
102 | #endif |