From a37c3c70eb9b08e0b1d70829a5c05b9d9c336d3b Mon Sep 17 00:00:00 2001 From: abercuci Date: Tue, 9 Dec 2008 10:44:16 +0000 Subject: [PATCH] update in the tracklet-track residuals analysis (Eva) --- TRD/qaRec/AliTRDtrackingResolution.cxx | 86 ++++++++++++++++++-------- 1 file changed, 61 insertions(+), 25 deletions(-) diff --git a/TRD/qaRec/AliTRDtrackingResolution.cxx b/TRD/qaRec/AliTRDtrackingResolution.cxx index 19a265b4e84..cc724fc6538 100644 --- a/TRD/qaRec/AliTRDtrackingResolution.cxx +++ b/TRD/qaRec/AliTRDtrackingResolution.cxx @@ -279,14 +279,16 @@ TH1* AliTRDtrackingResolution::PlotTrackletResiduals(const AliTRDtrackV1 *track) h->Fill(dydx[il], dy); if(fDebugLevel>=1){ + Double_t sigmay = fRim.GetErrY(x[il]); Float_t yt = fRim.GetYat(x[il]); (*fDebugStream) << "TrkltResiduals" << "layer=" << il - << "x=" <GetNumberOfClusters()); + Float_t x[AliTRDgeometry::kNlayer] = {-1., -1., -1., -1., -1., -1.}, y[AliTRDgeometry::kNlayer], dydx[AliTRDgeometry::kNlayer]; + Float_t dydx_ref=0, dydx_fit=0, phiref=0, phifit=0, phidiff=0; + AliTRDseedV1 *tracklet = 0x0; + for(Int_t il=0; ilGetTracklet(il))) continue; + if(!tracklet->IsOK()) continue; + AliTRDcluster *c = 0x0; + tracklet->ResetClusterIter(kFALSE); + while((c = tracklet->PrevCluster())){ + Float_t xc = c->GetX(); + Float_t yc = c->GetY(); + Float_t zc = c->GetZ(); + Float_t zt = tracklet->GetZref(0) - (tracklet->GetX0()-xc)*tracklet->GetZref(1); + yc -= tracklet->GetTilt()*(zc-zt); + fRim.AddPoint(xc, yc, zc, 1, 10); + } + tracklet->Fit(kTRUE); - Float_t dydx_ref, dydx_fit; - AliTRDseedV1 *fTracklet = 0x0; - for(Int_t ily=0; ilyGetTracklet(ily))) continue; - if(!fTracklet->IsOK()) continue; + x[il] = tracklet->GetX0(); + y[il] = tracklet->GetYfit(0)-tracklet->GetYfit(1)*(tracklet->GetX0()-x[il]); + dydx[il] = tracklet->GetYref(1); + } + fRim.Update(); + + for(Int_t il=0; ilGetTracklet(il))) continue; + if(!tracklet->IsOK()) continue; + + dydx_ref = fRim.GetDYat(x[il]); + dydx_fit = tracklet->GetYfit(1); + + phiref = TMath::ATan(dydx_ref);//*TMath::RadToDeg(); + phifit = TMath::ATan(dydx_fit);//*TMath::RadToDeg(); + + phidiff = phiref-phifit; /*/sigma_phi*/; + + h->Fill(dydx_ref, phidiff); - dydx_ref = fTracklet->GetYref(1); - dydx_fit = fTracklet->GetYfit(1); - - h->Fill(dydx_ref, dydx_ref-dydx_fit); if(fDebugLevel>=1){ (*fDebugStream) << "TrkltPhiResiduals" - << "dydx_ref=" << dydx_ref - << "dydx_fit=" << dydx_fit + << "layer=" << il + << "dydx_fit=" << dydx_fit + << "dydx_ref=" << dydx_ref + << "phiref=" << phiref + << "phifit=" << phifit + << "phidiff=" << phidiff << "\n"; } } @@ -366,7 +398,7 @@ TH1* AliTRDtrackingResolution::PlotResolution(const AliTRDtrackV1 *track) UChar_t s; Int_t pdg = fMC->GetPDG(), det=-1; Int_t label = fMC->GetLabel(); - Float_t x0, y0, z0, dy, dydx, dzdx; + Float_t x0, y0, z0, dx, dy, dydx, dzdx; AliTRDseedV1 *fTracklet = 0x0; for(Int_t ily=0; ilyGetTracklet(ily))) continue; @@ -383,7 +415,11 @@ TH1* AliTRDtrackingResolution::PlotResolution(const AliTRDtrackV1 *track) tt.SetZref(1, dzdx); if(!tt.Fit(kFALSE)) continue; //tt.Update(); - dy = tt.GetYfit(0) - y0; + + dx = 0.;//x0 - tt.GetXref(); + Float_t yt = y0 - dx*dydx; + Float_t yf = tt.GetYfit(0) - dx*tt.GetYfit(1); + dy = yf-yt; Float_t dphi = TMath::ATan(tt.GetYfit(1)) - TMath::ATan(dydx); Float_t dz = 100.; Bool_t cross = fTracklet->GetNChange(); @@ -427,7 +463,7 @@ TH1* AliTRDtrackingResolution::PlotResolution(const AliTRDtrackV1 *track) Float_t xc = c->GetX(); Float_t yc = c->GetY(); Float_t zc = c->GetZ(); - Float_t dx = x0 - xc; + dx = x0 - xc; Float_t yt = y0 - dx*dydx; Float_t zt = z0 - dx*dzdx; dy = yt - (yc - tilt*(zc-zt)); @@ -471,7 +507,7 @@ void AliTRDtrackingResolution::GetRefFigure(Int_t ifig) if(!(g = (TGraphErrors*)fGraphS->At(ifig))) break; g->Draw("apl"); ax = g->GetHistogram()->GetYaxis(); - ax->SetRangeUser(-.5, 1.); + ax->SetRangeUser(-.5, 2.5); ax->SetTitle("Clusters Y Residuals #sigma/#mu [mm]"); ax = g->GetHistogram()->GetXaxis(); ax->SetTitle("tg(#phi)"); @@ -485,7 +521,7 @@ void AliTRDtrackingResolution::GetRefFigure(Int_t ifig) if(!(g = (TGraphErrors*)fGraphS->At(ifig))) break; g->Draw("apl"); ax = g->GetHistogram()->GetYaxis(); - ax->SetRangeUser(-.5, 1.); + ax->SetRangeUser(-.5, 3.); ax->SetTitle("Tracklet Y Residuals #sigma/#mu [mm]"); ax = g->GetHistogram()->GetXaxis(); ax->SetTitle("tg(#phi)"); @@ -499,8 +535,8 @@ void AliTRDtrackingResolution::GetRefFigure(Int_t ifig) if(!(g = (TGraphErrors*)fGraphS->At(ifig))) break; g->Draw("apl"); ax = g->GetHistogram()->GetYaxis(); - ax->SetRangeUser(-.5, 1.); - ax->SetTitle("Tracklet Phi Residuals #sigma/#mu [mm]"); + ax->SetRangeUser(-.5, 2.); + ax->SetTitle("Tracklet Phi Residuals #sigma/#mu [rad]"); ax = g->GetHistogram()->GetXaxis(); ax->SetTitle("tg(#phi)"); if(!(g = (TGraphErrors*)fGraphM->At(ifig))) break; -- 2.43.0