]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliTrackFitterRieman.cxx
A new method DrawPMDModule is added
[u/mrichter/AliRoot.git] / STEER / AliTrackFitterRieman.cxx
index 885c03753f54a52acc0cfc51a7ab21ab3b9b2775..f4e58101ca2f15b1b9eb2802f4f94400ef07e421 100644 (file)
@@ -135,8 +135,8 @@ void AliTrackFitterRieman::Reset()
 }
 
 Bool_t AliTrackFitterRieman::Fit(const TArrayI *volIds,const TArrayI *volIdsFit,
-                                AliAlignObj::ELayerID layerRangeMin,
-                        AliAlignObj::ELayerID layerRangeMax)
+                                AliGeomManager::ELayerID layerRangeMin,
+                        AliGeomManager::ELayerID layerRangeMax)
 {
   // Fit the track points. The method takes as an input
   // the set of id's (volids) of the volumes in which
@@ -159,27 +159,24 @@ Bool_t AliTrackFitterRieman::Fit(const TArrayI *volIds,const TArrayI *volIdsFit,
   //  Float_t debugRatio = 1./(1.+debugLevel);
   Float_t debugRatio = debugLevel? 1.0/debugLevel : 1.0;
 
-  const Int_t kMinPoints =1;
   Int_t npoints = fPoints->GetNPoints();
   if ( npoints<fMinNPoints) return kFALSE;
   //
   // fast count points
-  Int_t countFit = 0;  
-  for (Int_t ifit=0; ifit<volIdsFit->GetSize(); ifit++){
-    Int_t volIdFit  = volIdsFit->At(ifit);
-    for (Int_t ipoint = 0; ipoint < npoints; ipoint++)
-      if (volIdFit==fPoints->GetVolumeID()[ipoint]) countFit++;    
-  }
-  if (countFit<fMinNPoints) return kFALSE;
-  //
-  Int_t countPoint = 0;  
-  for (Int_t jpoint=0; jpoint<volIds->GetSize(); jpoint++){
-    Int_t volIdPoint  = volIds->At(jpoint);
-    for (Int_t ipoint = 0; ipoint < npoints; ipoint++)
-      if (volIdPoint==fPoints->GetVolumeID()[ipoint]) countPoint++;    
+  if (volIdsFit != 0x0) {
+    Int_t countFit = 0;
+    Int_t countPoint = 0;
+    for (Int_t ipoint = 0; ipoint < npoints; ipoint++) {
+      if (FindVolId(volIds,fPoints->GetVolumeID()[ipoint]))
+       countPoint++;
+      if (volIdsFit != 0x0) {
+       if (FindVolId(volIdsFit,fPoints->GetVolumeID()[ipoint]))
+         countFit++;
+      }
+    }
+    if (countPoint==0) return kFALSE;
+    if ((countFit<fMinNPoints) && (volIdsFit != 0x0)) return kFALSE;
   }
-  if (countPoint<kMinPoints) return kFALSE;
-  //
   //
 
   Reset();
@@ -217,9 +214,9 @@ Bool_t AliTrackFitterRieman::Fit(const TArrayI *volIds,const TArrayI *volIdsFit,
        if (!FindVolId(volIdsFit,iVolId)) continue;
       }
       else {
-       if (iVolId < AliAlignObj::LayerToVolUID(layerRangeMin,0) ||
-           iVolId > AliAlignObj::LayerToVolUID(layerRangeMax,
-                                               AliAlignObj::LayerSize(layerRangeMax))) continue;
+       if (iVolId < AliGeomManager::LayerToVolUID(layerRangeMin,0) ||
+           iVolId > AliGeomManager::LayerToVolUID(layerRangeMax,
+                                               AliGeomManager::LayerSize(layerRangeMax))) continue;
       }
       if (!isAlphaCalc) {
        fAlpha = p.GetAngle();
@@ -328,10 +325,10 @@ Bool_t AliTrackFitterRieman::Fit(const TArrayI *volIds,const TArrayI *volIdsFit,
     Int_t nVolFit = volIdsFit->GetSize();
     Int_t volId   = volIds->At(0);   
     Int_t modId   =0;
-    Int_t layer   =  AliAlignObj::VolUIDToLayer(volId,modId);
+    Int_t layer   =  AliGeomManager::VolUIDToLayer(volId,modId);
     Int_t volIdFit   = volIdsFit->At(0);   
     Int_t modIdFit   =0;
-    Int_t layerFit   =  AliAlignObj::VolUIDToLayer(volIdFit,modIdFit);
+    Int_t layerFit   =  AliGeomManager::VolUIDToLayer(volIdFit,modIdFit);
     
     (*fDebugStream)<<"Fit"<<
       "VolId="<<volId<<        // volume ID
@@ -370,7 +367,7 @@ void AliTrackFitterRieman::AddPoint(Float_t x, Float_t y, Float_t z, Float_t sy,
 
 
 
-void AliTrackFitterRieman::Update(){
+Bool_t AliTrackFitterRieman::Update(){
   //
   // 
   //
@@ -403,6 +400,8 @@ void AliTrackFitterRieman::Update(){
   }
   fCorrY[3]=fitY.GetChisquare()/Float_t(fRieman->GetN()-3);   
   fCorrZ[3]=fitZ.GetChisquare()/Float_t(fRieman->GetN()-3);
+
+  return kTRUE;
 }