X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSClusterFinderSDD.h;h=8a4e20e5d50b58d7a2914e04304b293e6e61d9e6;hb=275a301c8cebdf85e71ee2e2cf70f611d3eb33f9;hp=d0151511490a5fe6245e94d9e5a900d146af729a;hpb=24a1c34149af2b5a30ff8353ceedcf9c302ade23;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSClusterFinderSDD.h b/ITS/AliITSClusterFinderSDD.h index d0151511490..8a4e20e5d50 100644 --- a/ITS/AliITSClusterFinderSDD.h +++ b/ITS/AliITSClusterFinderSDD.h @@ -4,134 +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 +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;} -{ -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 Int_t CutAmplitude() { - // get cut amplitude - return fCutAmplitude; - } - virtual void SetDAnode(Float_t danode=4.2) { - // setDAnode - fDAnode=danode; - } - virtual Float_t DAnode() { - // get DAnode - return fDAnode; - } - virtual void SetDTime(Float_t dtime=75) { - // SetDTime - fDTime=dtime; - } - virtual Float_t DTime() { - // get DTime - return fDTime; - } - virtual void SetMinPeak(Int_t minpeak=10) { - // SetMinPeak - fMinPeak=minpeak; - } - virtual Int_t MinPeak() { - // get MinPeak - return fMinPeak; - } - virtual void SetMinCharge(Int_t mincharge=30) { - // SetMinCharge - fMinCharge=mincharge; - } - virtual Int_t MinCharge() { - // get MinCharge - return fMinCharge; - } - virtual void SetMinNCells(Int_t minc=3) { - // setNCells - fMinNCells=minc; - } - virtual Int_t MinNCells() { - // get MinNCells - return fMinNCells; - } - virtual void SetMaxNCells(Int_t maxc=10) { - // setNCells - fMaxNCells=maxc; - } - virtual Int_t MaxNCells() { - // get MaxNCells - return fMaxNCells; - } - virtual void SetTimeCorr(Float_t timec=23.) { - // setNCells - fTimeCorr=timec; - } - virtual Float_t TimeCorr() { - // 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(); - void ResolveClusters(); // Boris........ - void ResolveClustersE(); // Ernesto - Int_t SearchPeak( Float_t *spect, Int_t xdim, Int_t zdim, Int_t *peakX, Int_t - *peakZ, Float_t *peakAmp, Float_t minpeak ); // Ernesto - Int_t NoLinearFit( Int_t xdim, Int_t zdim, Float_t *param, Float_t *spe, Int_t - *niter, Float_t *chir ); - void Minim( Int_t xdim, Int_t zdim, Float_t *param, Float_t *prm0, Float_t *steprm, Float_t *chisqr, - Float_t *spe, Float_t *speFit ); - Float_t ChiSqr( Int_t xdim, Int_t zdim, Float_t *spe, Float_t *speFit ); - void PeakFunc( Int_t xdim, Int_t zdim, Float_t *par, Float_t *spe, Float_t - *Integral=0 ); + // 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; - virtual void Print(); - -protected: + 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 -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 fMinCharge; // min charge - Int_t fMinNCells; // min num of cells - Int_t fMaxNCells; // max num of cells - ClassDef(AliITSClusterFinderSDD,1) // SDD clustering - Piergiorgio C. algo + ClassDef(AliITSClusterFinderSDD,3) // SDD clustering - Piergiorgio C. algo }; -#endif - - - - - - +#endif