]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Use positive half of a mirrored axis instead of the negative half
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 9 May 2012 13:21:39 +0000 (13:21 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 9 May 2012 13:21:39 +0000 (13:21 +0000)
Apply wave correction during track fit

(Sergei)

TPC/AliTPCClusterParam.cxx
TPC/AliTPCseed.cxx

index d15e9599621a2b00fe4cf89a44b62fa34758c94d..538e688ca10edf2621bdcdedc34b686101cd8b52 100644 (file)
@@ -1826,9 +1826,9 @@ void AliTPCClusterParam::SetWaveCorrectionMap( THnBase *Map)
   if( Map ){
     fWaveCorrectionMap = dynamic_cast<THnBase*>( Map->Clone(Map->GetName()));
     if( fWaveCorrectionMap ){
-      fWaveCorrectionMirroredPad = ( fWaveCorrectionMap->GetAxis(3)->GetXmin()>0.01 );        // cog axis is mirrored at 0.5
-      fWaveCorrectionMirroredZ = ( fWaveCorrectionMap->GetAxis(1)->GetXmin() > -200.00 ); // Z axis is mirrored at 0
-      fWaveCorrectionMirroredAngle = ( fWaveCorrectionMap->GetAxis(4)->GetXmin() > -0.5 );// Angle axis is mirrored at 0
+      fWaveCorrectionMirroredPad   = ( fWaveCorrectionMap->GetAxis(3)->FindFixBin(0.5)<=1 );   // Pad axis is mirrored at 0.5
+      fWaveCorrectionMirroredZ     = ( fWaveCorrectionMap->GetAxis(1)->FindFixBin(0)<=1); // Z axis is mirrored at 0
+      fWaveCorrectionMirroredAngle = ( fWaveCorrectionMap->GetAxis(4)->FindFixBin(0.0)<=1 );   // Angle axis is mirrored at 0
     }
   }
 }
@@ -1845,7 +1845,6 @@ void AliTPCClusterParam::SetResolutionYMap( THnBase *Map)
   }
 }
 
-
 Float_t AliTPCClusterParam::GetWaveCorrection(Int_t Type, Float_t Z, Int_t QMax, Float_t Pad, Float_t angleY ) const
 {
   //
@@ -1869,10 +1868,10 @@ Float_t AliTPCClusterParam::GetWaveCorrection(Int_t Type, Float_t Z, Int_t QMax,
     swapY = !swapY;
     Z = -Z;
   }
+  
   if( fWaveCorrectionMirroredAngle && (angleY<0) ){ // Angle axis is mirrored at 0
     angleY = -angleY;
-  }
-
+  }  
   double var[5] = { Type, Z, QMax, Pad, angleY };
   Long64_t bin = fWaveCorrectionMap->GetBin(var, kFALSE );
   if( bin<0 ) return 0;
index 9bbe38f9caaa4ea78484c961d672c6e42ab2aea7..b5c30f4fe2df1f834e9fa72e725f28a08476422c 100644 (file)
@@ -542,15 +542,30 @@ Bool_t AliTPCseed::Update(const AliCluster *c, Double_t chisq, Int_t index)
   Int_t n=GetNumberOfClusters();
   Int_t idx=GetClusterIndex(n);    // save the current cluster index
 
-  AliCluster cl(*c);  cl.SetSigmaY2(fErrorY2); cl.SetSigmaZ2(fErrorZ2);
+  AliTPCclusterMI cl(*(AliTPCclusterMI*)c);  cl.SetSigmaY2(fErrorY2); cl.SetSigmaZ2(fErrorZ2);
+
+  AliTPCClusterParam * parcl = AliTPCcalibDB::Instance()->GetClusterParam();
+  
+  Float_t ty = TMath::Tan(TMath::ASin(GetSnp()));
+  
+  if(  parcl ){
+    Int_t padSize = 0;                          // short pads
+    if (cl.GetDetector() >= 36) {
+      padSize = 1;                              // medium pads 
+      if (cl.GetRow() > 63) padSize = 2; // long pads
+    }
+    Float_t waveCorr = parcl->GetWaveCorrection( padSize, cl.GetZ(), cl.GetMax(),cl.GetPad(), ty );
+    cl.SetY( cl.GetY() - waveCorr ); 
+  }
+
   Float_t dx = ((AliTPCclusterMI*)c)->GetX()-GetX();
   if (TMath::Abs(dx)>0){
-    Float_t ty = TMath::Tan(TMath::ASin(GetSnp()));
     Float_t dy = dx*ty;
     Float_t dz = dx*TMath::Sqrt(1.+ty*ty)*GetTgl();
-    cl.SetY(c->GetY()-dy);  
-    cl.SetZ(c->GetZ()-dz);  
-  }
+    cl.SetY(cl.GetY()-dy);  
+    cl.SetZ(cl.GetZ()-dz);  
+  }  
 
   if (!AliTPCtrack::Update(&cl,chisq,index)) return kFALSE;