1 #ifndef ALITPCCLUSTERPARAM_H 2 #define ALITPCCLUSTERPARAM_H 13 #include <TVectorDfwd.h> 14 #include <TMatrixDfwd.h> 28 virtual void Print(Option_t* option =
"")
const;
37 void SetQnormCorr(Int_t ipad, Int_t itype, Int_t corrType, Float_t val, Int_t mode=1);
38 Double_t
GetQnormCorr(Int_t ipad, Int_t itype, Int_t corrType)
const;
46 Float_t
Qnorm(Int_t ipad, Int_t itype, Float_t dr, Float_t ty, Float_t tz);
47 Float_t
QnormHis(Int_t ipad, Int_t itype, Float_t dr, Float_t ty, Float_t tz);
50 Float_t
QnormPos(Int_t ipad, Bool_t isMax, Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm, Float_t qt);
51 static Float_t
SQnormPos(Int_t ipad, Bool_t isMax, Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm, Float_t qt){
return fgInstance->
QnormPos(ipad,isMax,pad,time,z,sy2,sz2,qm,qt);;}
53 Float_t
PosCorrection(Int_t type, Int_t ipad, Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm);
54 static Float_t
SPosCorrection(Int_t type, Int_t ipad, Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm){
return fgInstance->
PosCorrection(type,ipad,pad,time,z,sy2,sz2,qm);}
58 Float_t
GetError0(Int_t dim, Int_t type, Float_t z, Float_t angle)
const;
59 Float_t
GetError0Par(Int_t dim, Int_t type, Float_t z, Float_t angle)
const;
60 Float_t
GetError1(Int_t dim, Int_t type, Float_t z, Float_t angle)
const;
61 Float_t
GetErrorQ(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean)
const;
62 Float_t
GetErrorQPar(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean)
const;
63 Float_t
GetErrorQParScaled(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean)
const;
67 Float_t
GetRMS0(Int_t dim, Int_t type, Float_t z, Float_t angle)
const;
68 Float_t
GetRMS1(Int_t dim, Int_t type, Float_t z, Float_t angle)
const;
69 Float_t
GetRMSQ(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean)
const;
70 Float_t
GetRMSSigma(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean)
const;
71 Float_t
GetShapeFactor(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean, Float_t rmsL, Float_t rmsM)
const;
77 Float_t
GetWaveCorrection(Int_t Type, Float_t Z, Int_t QMax, Float_t Pad, Float_t angleY )
const;
82 void Test(TTree * tree,
const char *output=
"TestClusterParam.root");
85 static Float_t
SGetError0(Int_t dim, Int_t type, Float_t z, Float_t angle){
88 static Float_t
SGetError0Par(Int_t dim, Int_t type, Float_t z, Float_t angle){
91 static Float_t
SGetError1(Int_t dim, Int_t type, Float_t z, Float_t angle){
94 static Float_t
SGetErrorQ(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean){
97 static Float_t
SGetErrorQPar(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean){
104 static Float_t
SGetRMS0(Int_t dim, Int_t type, Float_t z, Float_t angle){
107 static Float_t
SGetRMS1(Int_t dim, Int_t type, Float_t z, Float_t angle){
110 static Float_t
SGetRMSQ(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean){
113 static Float_t
SGetRMSSigma(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean){
116 static Float_t
SGetShapeFactor(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean, Float_t rmsL, Float_t rmsM){
121 static Float_t
SQnorm(Int_t ipad, Int_t itype,Float_t dr, Float_t ty, Float_t tz) {
return fgInstance->
Qnorm(ipad, itype, dr,ty,tz);}
127 static Double_t
GaussConvolution(Double_t x0, Double_t x1, Double_t k0, Double_t k1, Double_t s0, Double_t s1);
128 static Double_t
GaussConvolutionTail(Double_t x0, Double_t x1, Double_t k0, Double_t k1, Double_t s0, Double_t s1, Double_t tau);
129 static Double_t
GaussConvolutionGamma4(Double_t x0, Double_t x1, Double_t k0, Double_t k1, Double_t s0, Double_t s1, Double_t tau);
130 static Double_t
QmaxCorrection(Int_t sector, Int_t row, Float_t cpad, Float_t ctime, Float_t ky, Float_t kz, Float_t rmsy0, Float_t rmsz0, Float_t effLength=0, Float_t effDiff=1);
131 static Double_t
QtotCorrection(Int_t sector, Int_t row, Float_t cpad, Float_t ctime, Float_t ky, Float_t kz, Float_t rmsy0, Float_t rmsz0, Float_t qtot, Float_t thr, Float_t effLength=0, Float_t effDiff=1);
136 void FitResol0(TTree * tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error);
137 void FitResol0Par(TTree * tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error);
138 void FitResol1(TTree * tree, Int_t dim, Float_t *param0, Float_t *error);
139 void FitResolQ(TTree * tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error);
140 void FitResolQPar(TTree * tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error);
141 void FitRMS0(TTree * tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error);
142 void FitRMS1(TTree * tree, Int_t dim, Float_t *param0, Float_t *error);
143 void FitRMSQ(TTree * tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error);
144 void FitRMSSigma(TTree * tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error);
Float_t fErrorRMSSys[2]
systematic relative error of the parametererization
Float_t fErrorRMSQ[2][3][6]
shape parameterization coeficients
static Float_t SGetError0(Int_t dim, Int_t type, Float_t z, Float_t angle)
TVectorD * QpadMnorm() const
Float_t fParamS0[2][3][4]
error parameterization coeficients
Float_t fErrorRMS1[2][5]
shape parameterization coeficients
TMatrixD * fQNormCorr
q norm correction for analytica correction
void FitRMS0(TTree *tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error)
static Float_t SPosCorrection(Int_t type, Int_t ipad, Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm)
void FitData(TTree *tree)
Float_t fErrorSQ[2][3][6]
error parameterization coeficients
static Float_t SGetErrorQ(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean)
Float_t GetRMSQ(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean) const
Float_t GetErrorQPar(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean) const
static Double_t QtotCorrection(Int_t sector, Int_t row, Float_t cpad, Float_t ctime, Float_t ky, Float_t kz, Float_t rmsy0, Float_t rmsz0, Float_t qtot, Float_t thr, Float_t effLength=0, Float_t effDiff=1)
void FitRMS1(TTree *tree, Int_t dim, Float_t *param0, Float_t *error)
TVectorD * fPosQTnorm[3]
q position normalization
static Double_t QmaxCorrection(Int_t sector, Int_t row, Float_t cpad, Float_t ctime, Float_t ky, Float_t kz, Float_t rmsy0, Float_t rmsz0, Float_t effLength=0, Float_t effDiff=1)
static Float_t SGetErrorQPar(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean)
static Float_t SGetWaveCorrection(Int_t Type, Float_t Z, Int_t QMax, Float_t Pad, Float_t angleY)
virtual ~AliTPCClusterParam()
static Float_t SQnorm(Int_t ipad, Int_t itype, Float_t dr, Float_t ty, Float_t tz)
Float_t GetParamS0Par(Int_t i, Int_t j, Int_t k) const
THnBase * fResolutionYMap
Map of resolution in Y.
const THnBase * GetResolutionYMap() const
static AliTPCClusterParam * Instance()
const THnBase * GetWaveCorrectionMap() const
Float_t fParamRMS1[2][5]
shape parameterization coeficients
void FitResol0(TTree *tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error)
Float_t GetRMSSigma(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean) const
static Float_t SQnormHis(Int_t ipad, Int_t itype, Float_t dr, Float_t ty, Float_t tz)
void FitRMSSigma(TTree *tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error)
void SetQnormCorr(Int_t ipad, Int_t itype, Int_t corrType, Float_t val, Int_t mode=1)
TVectorD * fPosZcor[3]
position correction parameterization
Float_t GetError1(Int_t dim, Int_t type, Float_t z, Float_t angle) const
static Double_t GaussConvolution(Double_t x0, Double_t x1, Double_t k0, Double_t k1, Double_t s0, Double_t s1)
static Float_t SQnormPos(Int_t ipad, Bool_t isMax, Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm, Float_t qt)
Float_t fErrorS0Par[2][3][7]
error parameterization coeficients
Float_t fRatio
ratio of values constibution to error
Float_t fRMSSigmaFit[2][3][2]
mean value of the varation of RMS to RMS
Float_t fErrorS1[2][4]
error parameterization coeficients
TVectorD * fQpadMnorm
q pad normalization - Max charge
static Float_t SGetError0Par(Int_t dim, Int_t type, Float_t z, Float_t angle)
Float_t GetError0(Int_t dim, Int_t type, Float_t z, Float_t angle) const
Bool_t fWaveCorrectionMirroredPad
flag is the cog axis mirrored at 0.5
static Float_t SGetRMSSigma(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean)
Float_t GetWaveCorrection(Int_t Type, Float_t Z, Int_t QMax, Float_t Pad, Float_t angleY) const
Float_t QnormHis(Int_t ipad, Int_t itype, Float_t dr, Float_t ty, Float_t tz)
TObjArray * fQNormHis
q norm correction for analytical correction
TVectorD * fQpadTnorm
q pad normalization - Total charge
Float_t fParamS0Par[2][3][7]
error parameterization coeficients
TPC cluster error, shape and charge parameterization as function of drift length and inclination angl...
TVectorD *& PosZcor(Int_t ind)
void FitResolQPar(TTree *tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error)
Float_t GetRMS1(Int_t dim, Int_t type, Float_t z, Float_t angle) const
Float_t GetErrorQ(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean) const
TVectorD * fPosQMnorm[3]
q position normalization
Double_t GetQnormCorr(Int_t ipad, Int_t itype, Int_t corrType) const
void SetResolutionYMap(THnBase *ResolutionYMap)
void SetInstance(AliTPCClusterParam *const param)
Float_t fParamRMSQ[2][3][6]
shape parameterization coeficients
static Float_t SGetError1(Int_t dim, Int_t type, Float_t z, Float_t angle)
Float_t Qnorm(Int_t ipad, Int_t itype, Float_t dr, Float_t ty, Float_t tz)
Float_t fParamS1[2][4]
error parameterization coeficients
static Float_t SGetShapeFactor(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean, Float_t rmsL, Float_t rmsM)
Float_t PosCorrection(Int_t type, Int_t ipad, Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm)
AliTPCClusterParam & operator=(const AliTPCClusterParam ¶m)
void FitRMSQ(TTree *tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error)
Bool_t fWaveCorrectionMirroredAngle
flag is the Angle axis mirrored at 0
Float_t GetRMS0(Int_t dim, Int_t type, Float_t z, Float_t angle) const
Float_t fParamSQPar[2][3][9]
error parameterization coeficients
Float_t fErrorSQPar[2][3][9]
error parameterization coeficients
void FitResol1(TTree *tree, Int_t dim, Float_t *param0, Float_t *error)
void FitResol(TTree *tree)
Bool_t fWaveCorrectionMirroredZ
flag is the Z axis mirrored at 0
virtual void Print(Option_t *option="") const
static AliTPCClusterParam * fgInstance
Float_t GetShapeFactor(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean, Float_t rmsL, Float_t rmsM) const
static Float_t SGetRMSQ(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean)
static Double_t GaussConvolutionGamma4(Double_t x0, Double_t x1, Double_t k0, Double_t k1, Double_t s0, Double_t s1, Double_t tau)
Float_t fRMSSigmaRatio[2][2]
mean value of the varation of RMS to RMS
void FitResolQ(TTree *tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error)
void Test(TTree *tree, const char *output="TestClusterParam.root")
void FitResol0Par(TTree *tree, Int_t dim, Int_t type, Float_t *param0, Float_t *error)
static Double_t GaussConvolutionTail(Double_t x0, Double_t x1, Double_t k0, Double_t k1, Double_t s0, Double_t s1, Double_t tau)
TObjArray * fQNorm
q norm paramters
THnBase * fWaveCorrectionMap
dY with respect to the distance to the center of the pad
Float_t fParamSQ[2][3][6]
error parameterization coeficients
Float_t GetParamRMS0(Int_t i, Int_t j, Int_t k) const
class TVectorT< Double_t > TVectorD
Float_t GetError0Par(Int_t dim, Int_t type, Float_t z, Float_t angle) const
Float_t fErrorRMS0[2][3][4]
shape parameterization coeficients
void SetWaveCorrectionMap(THnBase *WaveCorrectionMap)
Float_t fErrorS0[2][3][4]
error parameterization coeficients
TMatrixD * GetQnormCorrMatrix()
TVectorD * fPosYcor[3]
position correction parameterization
TVectorD *& PosYcor(Int_t ind)
Float_t GetErrorQParScaled(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean) const
Float_t QnormPos(Int_t ipad, Bool_t isMax, Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm, Float_t qt)
Float_t fParamRMS0[2][3][4]
shape parameterization coeficients
static Float_t SGetRMS0(Int_t dim, Int_t type, Float_t z, Float_t angle)
class TMatrixT< Double_t > TMatrixD
void SetQnorm(Int_t ipad, Int_t itype, const TVectorD *const norm)
static Float_t SGetErrorQParScaled(Int_t dim, Int_t type, Float_t z, Float_t angle, Float_t Qmean)
TVectorD * QpadTnorm() const
static Float_t SGetRMS1(Int_t dim, Int_t type, Float_t z, Float_t angle)