X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSClusterFinderSDD.h;h=8a4e20e5d50b58d7a2914e04304b293e6e61d9e6;hb=fa7427d0b1effe949ec3c0d8f987f1a563517a6a;hp=5e8e01da602c9b50c9caf1d29f4284403f97564a;hpb=78a228db82095f0b22ef1adfed344152356610ae;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSClusterFinderSDD.h b/ITS/AliITSClusterFinderSDD.h index 5e8e01da602..8a4e20e5d50 100644 --- a/ITS/AliITSClusterFinderSDD.h +++ b/ITS/AliITSClusterFinderSDD.h @@ -4,81 +4,101 @@ //////////////////////////////////////////////// // ITS Cluster Finder Class // //////////////////////////////////////////////// +/* + $Id$ +*/ +#include #include "AliITSClusterFinder.h" +#include "AliITSDetTypeRec.h" -class AliITSMapA2; +// class AliITSMapA2; +class AliITSCalibration; +class AliITSCalibrationSDD; +class AliITSsegmentation; +class AliITSsegmentationSDD; class TFile; -class AliITSClusterFinderSDD : - public AliITSClusterFinder - -{ -public: - AliITSClusterFinderSDD - (AliITSsegmentation *seg, - AliITSresponse *response, TClonesArray *digits,TClonesArray *recpoints); - AliITSClusterFinderSDD(); - virtual ~AliITSClusterFinderSDD(); - AliITSClusterFinderSDD(const AliITSClusterFinderSDD &source); // copy constructor - AliITSClusterFinderSDD& operator=(const AliITSClusterFinderSDD &source); // assignment operator - - virtual void SetCutAmplitude(Int_t thres=0) { - // set cut amplitude - fCutAmplitude=thres; - } - virtual void SetDAnode(Float_t danode=4.2) { - // setDAnode - fDAnode=danode; - } - virtual void SetDTime(Float_t dtime=75) { - // SetDTime - fDTime=dtime; - } - virtual void SetMinPeak(Int_t minpeak=7) { - // SetMinPeak - fMinPeak=minpeak; - } - virtual void SetMinNCells(Int_t minc=6) { - // setNCells - fMinNCells=minc; - } - virtual void SetMaxNCells(Int_t maxc=10) { - // setNCells - fMaxNCells=maxc; - } - virtual void SetTimeCorr(Float_t timec=70.) { - // setNCells - fTimeCorr=timec; - } - - // Search for clusters - virtual void FindRawClusters(); - void Find1DClusters(); - void GroupClusters(); - void SelectClusters(); - void GetRecPoints(); - -private: - - TClonesArray *fClusters; // clusters - Int_t fNclusters; // num of clusters - Float_t fDAnode; // fDanode - Float_t fDTime; // fDtime - Float_t fTimeCorr; // Correction factor along time coord - - Int_t fCutAmplitude; // cut amplitude - Int_t fMinPeak; // min peak - Int_t fMinNCells; // min num of cells - Int_t fMaxNCells; // max num of cells - ClassDef(AliITSClusterFinderSDD,1) // SDD clustering - Piergiorgio C. algo - }; -#endif - - - +class AliITSClusterFinderSDD : public AliITSClusterFinder{ + public: + AliITSClusterFinderSDD + (AliITSDetTypeRec* dettyp, + TClonesArray *digits,TClonesArray *recpoints); + AliITSClusterFinderSDD(); + virtual ~AliITSClusterFinderSDD(){}; + + virtual void SetCutAmplitude(Int_t mod,Double_t nsigma=4); + virtual Int_t CutAmplitude(Int_t anode) const {// get cut amplitude + return fCutAmplitude[anode];} + virtual void SetDAnode(Double_t danode=4.2) {// setDAnode + fDAnode=danode;} + virtual Double_t DAnode() const {// get DAnode + return fDAnode;} + virtual void SetDTime(Double_t dtime=75) {// SetDTime + fDTime=dtime;} + virtual Double_t DTime() const {// get DTime + return fDTime;} + virtual void SetMinPeak(Int_t minpeak=10) {// SetMinPeak + fMinPeak=minpeak;} + virtual Int_t MinPeak() const {// get MinPeak + return fMinPeak;} + virtual void SetMinCharge(Int_t mincharge=30) {// SetMinCharge + fMinCharge=mincharge;} + virtual Int_t MinCharge() const {// get MinCharge + return fMinCharge;} + virtual void SetMinNCells(Int_t minc=3) {// setNCells + fMinNCells=minc;} + virtual Int_t MinNCells() const {// get MinNCells + return fMinNCells;} + virtual void SetMaxNCells(Int_t maxc=10) {// setNCells + fMaxNCells=maxc;} + virtual Int_t MaxNCells() const {// get MaxNCells + return fMaxNCells;} + virtual void SetTimeCorr(Double_t timec=19.3) {// setNCells + fTimeCorr=timec;} + virtual Double_t TimeCorr() const{// get Time Correction (ns) + return fTimeCorr;} + // Search for clusters + virtual void FindRawClusters(Int_t mod=0); + void Find1DClusters(); + void Find1DClustersE(); + void GroupClusters(); + void SelectClusters(); + void GetRecPoints(AliITSCalibrationSDD* cal); + void ResolveClusters(); // Ernesto Lopez Torres + Int_t SearchPeak(Double_t *spect,Int_t xdim,Int_t zdim,Int_t *peakX, + Int_t *peakZ,Double_t *peakAmp,Double_t minpeak);//Ernesto + Int_t NoLinearFit( Int_t xdim, Int_t zdim, Double_t *param, Double_t *spe, + Int_t *niter, Double_t *chir ); + void Minim(Int_t xdim,Int_t zdim,Double_t *param,Double_t *prm0, + Double_t *steprm,Double_t *chisqr,Double_t *spe,Double_t *speFit); + Double_t ChiSqr(Int_t xdim,Int_t zdim,Double_t *spe,Double_t *speFit)const; + void PeakFunc( Int_t xdim, Int_t zdim, Double_t *par, Double_t *spe, + Double_t *Integral=0 ); + void PrintStatus() const; + private: + virtual AliITSCalibrationSDD* GetResp(Int_t mod)const{ + return (AliITSCalibrationSDD*) fDetTypeRec->GetCalibrationModel(mod);}//Return Response + //Returns fSegmentation + virtual AliITSsegmentationSDD* GetSeg()const{ + return (AliITSsegmentationSDD*)fDetTypeRec->GetSegmentationModel(1);} + AliITSClusterFinderSDD(const AliITSClusterFinderSDD &source); // copy ctor + AliITSClusterFinderSDD& operator=(const AliITSClusterFinderSDD &source); + private: + Int_t fNclusters; //! num of clusters + Double_t fDAnode; //! fDanode + Double_t fDTime; //! fDtime + Double_t fTimeCorr; //! Correction factor along time coord + TArrayI fCutAmplitude; //! cut amplitude + Int_t fMinPeak; //! min peak + Int_t fMinCharge; //! min charge + Int_t fMinNCells; //! min num of cells + Int_t fMaxNCells; //! max num of cells + ClassDef(AliITSClusterFinderSDD,3) // SDD clustering - Piergiorgio C. algo + }; +#endif