]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSClusterFinderSDD.h
Bug fix (Vladimir Pospisil)
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinderSDD.h
CommitLineData
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 17class AliITSCalibration;
18class AliITSCalibrationSDD;
aacedc3e 19class AliITSsegmentation;
20class AliITSsegmentationSDD;
78a228db 21class TFile;
e8189707 22
50d05d7b 23class 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;
c9a38d3d 81
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