- fix for z position in on-line track fit
authorjklein <jochen.klein@cern.ch>
Tue, 15 Apr 2014 13:41:39 +0000 (15:41 +0200)
committerjklein <jochen.klein@cern.ch>
Tue, 15 Apr 2014 13:41:39 +0000 (15:41 +0200)
TRD/AliTRDtrackOnline.cxx
TRD/AliTRDtrackOnline.h

index ee65f24..aaadefe 100644 (file)
@@ -46,6 +46,8 @@ Bool_t AliTRDtrackOnline::Fit(ROOT::Math::Minimizer *minim)
   Bool_t minSuccess = kFALSE;
 
   if (minim) {
+    minSuccess = kTRUE;
+
     TIter param(&fTrackParametrizations);
 
     while (AliTRDtrackParametrization *par = (AliTRDtrackParametrization*) param()) {
@@ -54,7 +56,7 @@ Bool_t AliTRDtrackOnline::Fit(ROOT::Math::Minimizer *minim)
       minim->Clear();
       minim->SetFunction(res);
       par->SetParams(minim);
-      minSuccess = minim->Minimize();
+      minSuccess &= minim->Minimize();
       par->GetParams(minim);
     }
   }
@@ -338,8 +340,7 @@ Double_t AliTRDtrackResiduals::DoEval(const Double_t *par) const
 
     AliTRDpadPlane *pp = fgGeometry->GetPadPlane(trkl->GetDetector());
     Float_t zlen = 0.5 * pp->GetRowSize(trkl->GetBinZ());
-    Float_t zpad = pp->GetRowPos(trkl->GetBinZ()) - zlen;
-    zpad = AliTRDtrackOnline::GetZ(trkl);
+    Float_t zpad = AliTRDtrackOnline::GetZ(trkl);
     Float_t zrel = zext - zpad;
     if (zrel > zlen)
       zrel = zlen;
@@ -348,11 +349,11 @@ Double_t AliTRDtrackResiduals::DoEval(const Double_t *par) const
 
     Float_t ycorr = trkl->GetLocalY() + TMath::Tan(TMath::Pi()/180.*pp->GetTiltingAngle()) * zrel;
 
-    deltaY = ycorr        - yext;
-    deltaZ = AliTRDtrackOnline::GetZ(trkl) - zext;
-    deltaY /= 0.3;
-    deltaZ /= 3.;
-//     printf("in layer %i: deltaY = %f, deltaZ = %f\n", layer, deltaY, deltaZ);
+    deltaY = ycorr - yext;
+    deltaZ = zpad  - zext;
+    deltaY /= 0.05;
+    deltaZ /= pp->GetRowSize(trkl->GetBinZ()) / TMath::Sqrt(12.);
+    // printf("for tracklet %i: deltaY = %f, deltaZ = %f\n", iTracklet, deltaY, deltaZ);
 
     chi2 += deltaY*deltaY + deltaZ*deltaZ;
   }
index 87135a7..707a1db 100644 (file)
@@ -124,8 +124,9 @@ class AliTRDtrackOnline : public TObject
   void Print(Option_t *option = "") const;
 
   static Float_t GetX(AliVTrdTracklet *trkl) { return fgGeometry->GetTime0(trkl->GetDetector() % 6); }
-  static Float_t GetZ(AliVTrdTracklet *trkl) { return fgGeometry->GetPadPlane((trkl->GetDetector() % 6), (trkl->GetDetector()/6) % 5)->GetRowPos(trkl->GetBinZ()) -
-      fgGeometry->GetPadPlane((trkl->GetDetector() % 6), (trkl->GetDetector()/6) % 5)->GetRowSize(trkl->GetBinZ()); }
+  static Float_t GetZ(AliVTrdTracklet *trkl) { return
+      fgGeometry->GetPadPlane(trkl->GetDetector())->GetRowPos(trkl->GetBinZ()) -
+      .5 * fgGeometry->GetPadPlane(trkl->GetDetector())->GetRowSize(trkl->GetBinZ()); }
   static AliTRDgeometry *fgGeometry;
 
  protected: