From: mivanov Date: Sat, 22 Nov 2014 19:59:44 +0000 (+0100) Subject: ATO-98 - function returns also status value X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=b627c7f2f97fa3a2ea8abeee48f4db598df257e4;p=u%2Fmrichter%2FAliRoot.git ATO-98 - function returns also status value --- diff --git a/TPC/Calib/AliTPCCorrectionFit.cxx b/TPC/Calib/AliTPCCorrectionFit.cxx index 8e81c391cbe..a3535b2d5e2 100644 --- a/TPC/Calib/AliTPCCorrectionFit.cxx +++ b/TPC/Calib/AliTPCCorrectionFit.cxx @@ -130,7 +130,7 @@ Double_t AliTPCCorrectionFit::EvalAt(Double_t phi, Double_t refX, Double_t evalX -Double_t AliTPCCorrectionFit::EvalAtPar(Double_t phi0, Double_t snp, Double_t refX, Double_t evalX, Double_t theta, Int_t corr, Int_t ptype, Int_t nsteps,Float_t wt, Float_t t1, Float_t t2){ +Double_t AliTPCCorrectionFit::EvalAtPar(Double_t phi0, Double_t snp, Double_t refX, Double_t evalX, Double_t theta, Int_t corr, Int_t ptype, Int_t nsteps,Float_t wt, Float_t t1, Float_t t2, Bool_t *pstatus){ // // Fit the distortion along the line with the parabolic model // We assume that the track are primaries - where the vertex is at (0,0,0) @@ -157,7 +157,7 @@ Double_t AliTPCCorrectionFit::EvalAtPar(Double_t phi0, Double_t snp, Double_t re AliTPCCorrection* pcorr = AliTPCCorrection::GetVisualCorrection(corr); if (pcorr==0) return 0; if (wt<50){ - pcorr->SetOmegaTauT1T2(wt,t1,t2); + if (pcorr) pcorr->SetOmegaTauT1T2(wt,t1,t2); } Double_t deltaX=(245-85)/(nsteps); Double_t curv=2.*snp/refX; @@ -185,8 +185,10 @@ Double_t AliTPCCorrectionFit::EvalAtPar(Double_t phi0, Double_t snp, Double_t re Double_t schi2= TMath::Sqrt(fitter.GetChisquare()/nsteps); if (schi2> fgMaxChi2HelixAt){ ::Error("AliTPCCorrectionFit::EvalAtHelix",TString::Format("%s\tbad chi2:\t%2.2f",pcorr->GetName(),schi2).Data()); + if (pstatus) (*pstatus)=kFALSE; return 0; } + if (pstatus) (*pstatus)=kTRUE; if (ptype==0) return par[0]+par[1]*evalX+par[2]*evalX*evalX; if (ptype==2) return par[1]+2*par[2]*evalX; if (ptype==4) return par[2]; @@ -195,7 +197,7 @@ Double_t AliTPCCorrectionFit::EvalAtPar(Double_t phi0, Double_t snp, Double_t re } -Double_t AliTPCCorrectionFit::EvalAtHelix(Double_t phi0, Double_t snp, Double_t refX, Double_t evalX, Double_t theta, Int_t corr, Int_t ptype, Int_t nsteps, Float_t wt, Float_t t1, Float_t t2){ +Double_t AliTPCCorrectionFit::EvalAtHelix(Double_t phi0, Double_t snp, Double_t refX, Double_t evalX, Double_t theta, Int_t corr, Int_t ptype, Int_t nsteps, Float_t wt, Float_t t1, Float_t t2, Bool_t *pstatus){ // // Fit the distortion along the line with the helix model // FIXME - original trajectory to be changed - AliHelix to be used @@ -230,8 +232,8 @@ Double_t AliTPCCorrectionFit::EvalAtHelix(Double_t phi0, Double_t snp, Double_t Double_t deltaX=(245-85)/(nsteps); AliRieman rieman(nsteps); if (wt<50){ - AliTPCCorrection* pcorr = AliTPCCorrection::GetVisualCorrection(corr); - pcorr->SetOmegaTauT1T2(wt,t1,t2); + AliTPCCorrection* pcorr = AliTPCCorrection::GetVisualCorrection(corr); + if (pcorr) pcorr->SetOmegaTauT1T2(wt,t1,t2); } Double_t curv=2.*snp/refX; Double_t dPhi0=TMath::ASin(snp); @@ -256,8 +258,10 @@ Double_t AliTPCCorrectionFit::EvalAtHelix(Double_t phi0, Double_t snp, Double_t Double_t schi2= TMath::Sqrt(fitter.GetChisquare()/nsteps); if (schi2>fgMaxChi2HelixAt){ ::Error("AliTPCCorrectionFit::EvalAtHelix",TString::Format("Bad chi2\t%2.2f",schi2).Data()); + if (pstatus) (*pstatus)=kFALSE; return 0; } + if (pstatus) (*pstatus)=kTRUE; if (ptype==0) return rieman.GetYat(evalX); if (ptype==2) return rieman.GetDYat(evalX); if (ptype==4) return rieman.GetC(); diff --git a/TPC/Calib/AliTPCCorrectionFit.h b/TPC/Calib/AliTPCCorrectionFit.h index b52b135cb93..13f0c431da2 100644 --- a/TPC/Calib/AliTPCCorrectionFit.h +++ b/TPC/Calib/AliTPCCorrectionFit.h @@ -21,8 +21,8 @@ public: // // //static Double_t EvalAt(Double_t phi, Double_t refX, Double_t theta,Double_t evalX, Int_t corr, Int_t ptype, Float_t wt=100, Float_t t1=1, Float_t t2=1); - static Double_t EvalAtPar(Double_t phi, Double_t snp, Double_t refX, Double_t evalX, Double_t theta, Int_t corr, Int_t ptype, Int_t nstep, Float_t wt=100, Float_t t1=1, Float_t t2=1); - static Double_t EvalAtHelix(Double_t phi, Double_t snp, Double_t refX, Double_t evalX, Double_t theta, Int_t corr, Int_t ptype, Int_t nstep, Float_t wt=100, Float_t t1=1, Float_t t2=1); + static Double_t EvalAtPar(Double_t phi, Double_t snp, Double_t refX, Double_t evalX, Double_t theta, Int_t corr, Int_t ptype, Int_t nstep, Float_t wt=100, Float_t t1=1, Float_t t2=1, Bool_t *pstatus=0); + static Double_t EvalAtHelix(Double_t phi, Double_t snp, Double_t refX, Double_t evalX, Double_t theta, Int_t corr, Int_t ptype, Int_t nstep, Float_t wt=100, Float_t t1=1, Float_t t2=1, Bool_t *pstatus=0); // // Make distortion maps //