]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Take negative B-Field into account for ExB
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 Mar 2006 09:54:46 +0000 (09:54 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 Mar 2006 09:54:46 +0000 (09:54 +0000)
TRD/AliTRDcalibDB.cxx

index 2bbd584d49c7c09e73b90cbf27921cddce6236b6..dee53a51bbbd8b9c286c588394b31aa7f6c30290 100644 (file)
@@ -769,7 +769,11 @@ Float_t AliTRDcalibDB::GetOmegaTau(Float_t vdrift)
   AliTRDCommonParam* commonParam = AliTRDCommonParam::Instance();
   if (!commonParam)
     return -1;
-  Float_t field = commonParam->GetField();
+  Float_t fieldAbs = TMath::Abs(commonParam->GetField());
+  Float_t fieldSgn = 1.0;
+  if (fieldAbs > 0.0) {
+    fieldSgn = commonParam->GetField() / fieldAbs;
+  }
 
   const Int_t kNb = 5;
   Float_t p0[kNb] = {  0.004810,  0.007412,  0.010252,  0.013409,  0.016888 };
@@ -777,16 +781,17 @@ Float_t AliTRDcalibDB::GetOmegaTau(Float_t vdrift)
   Float_t p2[kNb] = { -0.008682, -0.012896, -0.016987, -0.020880, -0.024623 };
   Float_t p3[kNb] = {  0.000155,  0.000238,  0.000330,  0.000428,  0.000541 };
 
-  Int_t ib = ((Int_t) (10 * (field - 0.15)));
+  Int_t ib = ((Int_t) (10 * (fieldAbs - 0.15)));
   ib       = TMath::Max(  0,ib);
   ib       = TMath::Min(kNb,ib);
 
   Float_t alphaL = p0[ib] 
-      + p1[ib] * vdrift
-      + p2[ib] * vdrift*vdrift
-      + p3[ib] * vdrift*vdrift*vdrift;
+                 + p1[ib] * vdrift
+                 + p2[ib] * vdrift*vdrift
+                 + p3[ib] * vdrift*vdrift*vdrift;
+
+  return TMath::Tan(fieldSgn * alphaL);
 
-  return TMath::Tan(alphaL);
 }
 
 //_____________________________________________________________________________