]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliTrackFitterRieman.cxx
Using the event range in the selectors mode as well. To be used in CAF reco in order...
[u/mrichter/AliRoot.git] / STEER / AliTrackFitterRieman.cxx
index eaf47d757358deffbed9eae18d84f2fca0e6c269..3406252e1b7d728718ff3badbd03dc1d7a641208 100644 (file)
@@ -53,6 +53,8 @@ AliTrackFitterRieman::AliTrackFitterRieman():
   fConv(kFALSE),
   fMaxDelta(3),
   fRieman(new AliRieman(10000)),  // allocate rieman
+  fMinPointRadius(2.),
+  fMaxPointRadius(500.),
   fDebugStream(new TTreeSRedirector("RiemanAlignDebug.root"))
 {
   //
@@ -69,6 +71,8 @@ AliTrackFitterRieman::AliTrackFitterRieman(AliTrackPointArray *array, Bool_t own
   fConv(kFALSE),
   fMaxDelta(3),
   fRieman(new AliRieman(10000)),  //allocate rieman
+  fMinPointRadius(2.),
+  fMaxPointRadius(500.),
   fDebugStream(0)
 {
   //
@@ -85,6 +89,8 @@ AliTrackFitterRieman::AliTrackFitterRieman(const AliTrackFitterRieman &rieman):
   fConv(rieman.fConv),
   fMaxDelta(rieman.fMaxDelta),
   fRieman(new AliRieman(*(rieman.fRieman))),
+  fMinPointRadius(rieman.fMinPointRadius),
+  fMaxPointRadius(rieman.fMaxPointRadius),
   fDebugStream(0)
 {
   //
@@ -108,6 +114,8 @@ AliTrackFitterRieman &AliTrackFitterRieman::operator =(const AliTrackFitterRiema
   fConv   = rieman.fConv;
   fMaxDelta = rieman.fMaxDelta;
   fRieman = new AliRieman(*(rieman.fRieman));
+  fMinPointRadius = rieman.fMinPointRadius;
+  fMaxPointRadius = rieman.fMaxPointRadius;
   fDebugStream = 0;
   if (AliLog::GetDebugLevel("","AliTrackFitterRieman")) fDebugStream = new TTreeSRedirector("RiemanAlignDebug.root");
   return *this;
@@ -135,8 +143,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
@@ -214,16 +222,16 @@ 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();
        isAlphaCalc = kTRUE;
       }
       plocal = p.Rotate(fAlpha);
-      if (TMath::Abs(plocal.GetX())>500 || TMath::Abs(plocal.GetX())<2 || plocal.GetCov()[3]<=0 ||plocal.GetCov()[5]<=0 ){
+      if (TMath::Abs(plocal.GetX())>fMaxPointRadius || TMath::Abs(plocal.GetX())<fMinPointRadius || plocal.GetCov()[3]<=0 ||plocal.GetCov()[5]<=0 ){
        printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</n");
        p.Dump();
        plocal.Dump();
@@ -325,10 +333,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
@@ -367,7 +375,7 @@ void AliTrackFitterRieman::AddPoint(Float_t x, Float_t y, Float_t z, Float_t sy,
 
 
 
-void AliTrackFitterRieman::Update(){
+Bool_t AliTrackFitterRieman::Update(){
   //
   // 
   //
@@ -400,6 +408,8 @@ void AliTrackFitterRieman::Update(){
   }
   fCorrY[3]=fitY.GetChisquare()/Float_t(fRieman->GetN()-3);   
   fCorrZ[3]=fitZ.GetChisquare()/Float_t(fRieman->GetN()-3);
+
+  return kTRUE;
 }
 
 
@@ -554,3 +564,9 @@ Double_t AliTrackFitterRieman::GetErrZ2at(Double_t x) const {
   }
   return TMath::Sqrt(error+correction);
 }
+
+void AliTrackFitterRieman::SetParam(Int_t i, Double_t par) {
+  if (i<0 || i>5) return;
+  fParams[i]=par;
+  fRieman->GetParam()[i]=par;
+}