]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliTrackFitter.cxx
silvermy@ornl.gov - SMcalib - directory with tools for SuperModule calibrations at...
[u/mrichter/AliRoot.git] / STEER / AliTrackFitter.cxx
index 3a8e2d1d7ff7dcb568727b26b30437b0cbcfc7d1..a02d87747b9005ac7c6bea494279b708bbeba4cc 100644 (file)
@@ -165,8 +165,8 @@ Bool_t AliTrackFitter::FindVolId(const TArrayI *array, UShort_t volid) const
 }
 
 Bool_t AliTrackFitter::Fit(const TArrayI *volIds,const TArrayI *volIdsFit,
-AliAlignObj::ELayerID layerRangeMin,
-AliAlignObj::ELayerID layerRangeMax)
+AliGeomManager::ELayerID layerRangeMin,
+AliGeomManager::ELayerID layerRangeMax)
 {
   //-------------------------------------------------------------------
   //
@@ -199,19 +199,28 @@ AliAlignObj::ELayerID layerRangeMax)
   // Fast counting the points
   Int_t countFit=0;
   Int_t countPnt=0;
+
+  Int_t fst=-1;
+  Int_t lst=-1;
   if (volIdsFit != 0x0) {
      for (Int_t i=0; i<npoints; i++) {
          if (FindVolId(volIds,   fPoints->GetVolumeID()[i])) countPnt++;
-         if (FindVolId(volIdsFit,fPoints->GetVolumeID()[i])) countFit++;
+         if (FindVolId(volIdsFit,fPoints->GetVolumeID()[i])) {
+            countFit++;
+            if (fst<0) fst=i;
+            lst=i;
+         }
      }
   } else {
      for (Int_t i=0; i<npoints; i++) {
          UShort_t id=fPoints->GetVolumeID()[i]; 
          if (FindVolId(volIds,id)) countPnt++;
-         if (id < AliAlignObj::LayerToVolUID(layerRangeMin,0)) continue;
-        if (id > AliAlignObj::LayerToVolUID(layerRangeMax,
-                 AliAlignObj::LayerSize(layerRangeMax))) continue;
+         if (id < AliGeomManager::LayerToVolUID(layerRangeMin,0)) continue;
+        if (id > AliGeomManager::LayerToVolUID(layerRangeMax,
+                 AliGeomManager::LayerSize(layerRangeMax))) continue;
          countFit++;
+         if (fst<0) fst=i;
+         lst=i;
      }
   }
   if (countPnt==0) return kFALSE;
@@ -221,7 +230,7 @@ AliAlignObj::ELayerID layerRangeMax)
 
   //************* Fit the selected track points
 
-  //Reset();
+  if (!Begin(fst,lst)) return kFALSE;
 
   AliTrackPoint p;
   if (volIdsFit != 0x0) {
@@ -233,10 +242,9 @@ AliAlignObj::ELayerID layerRangeMax)
   } else {
      for (Int_t i=0; i<npoints; i++) {
          UShort_t id=fPoints->GetVolumeID()[i]; 
-         if (FindVolId(volIds,id)) countPnt++;
-         if (id < AliAlignObj::LayerToVolUID(layerRangeMin,0)) continue;
-        if (id > AliAlignObj::LayerToVolUID(layerRangeMax,
-                 AliAlignObj::LayerSize(layerRangeMax))) continue;
+         if (id < AliGeomManager::LayerToVolUID(layerRangeMin,0)) continue;
+        if (id > AliGeomManager::LayerToVolUID(layerRangeMax,
+                 AliGeomManager::LayerSize(layerRangeMax))) continue;
          fPoints->GetPoint(p,i);
          if (!AddPoint(&p)) continue;
      }