Using the magnetic field as second argument of the GetOmegaTau m,ethod (Sylwester)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 7 Dec 2006 17:59:45 +0000 (17:59 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 7 Dec 2006 17:59:45 +0000 (17:59 +0000)
TRD/AliTRDcalibDB.cxx
TRD/AliTRDcalibDB.h
TRD/AliTRDdigitizer.cxx

index b724b66..7168ade 100644 (file)
@@ -73,6 +73,7 @@ AliTRDcalibDB* AliTRDcalibDB::Instance()
     fgInstance = new AliTRDcalibDB();
   }
 
+  //cout << "Run id = " << fRun << endl;
   return fgInstance;
 }
 
@@ -759,11 +760,11 @@ const AliTRDCalMonitoring* AliTRDcalibDB::GetMonitoringObject()
   //
 
   return dynamic_cast<const AliTRDCalMonitoring *> (GetCachedCDBObject(kIDMonitoringData));
-
+   
 }
 
 //_____________________________________________________________________________
-Float_t AliTRDcalibDB::GetOmegaTau(Float_t vdrift)
+Float_t AliTRDcalibDB::GetOmegaTau(Float_t vdrift, Float_t bz)
 {
   //
   // Returns omega*tau (tan(Lorentz-angle)) for a given drift velocity <vd> 
@@ -774,16 +775,18 @@ Float_t AliTRDcalibDB::GetOmegaTau(Float_t vdrift)
   // However, currently it is in use by simulation and reconstruction.
   //
   
-  AliTRDCommonParam *commonParam = AliTRDCommonParam::Instance();
-  if (!commonParam) {
-    return -1;
-  }
-
-  Float_t fieldAbs = TMath::Abs(commonParam->GetField());
-  Float_t fieldSgn = 1.0;
-  if (fieldAbs > 0.0) {
-    fieldSgn = commonParam->GetField() / fieldAbs;
-  }
+  //AliTRDCommonParam *commonParam = AliTRDCommonParam::Instance();
+  //if (!commonParam) {
+  //  return -1;
+  //}
+
+  //Float_t fieldAbs = TMath::Abs(commonParam->GetField());
+  //Float_t fieldSgn = 1.0;
+  //if (fieldAbs > 0.0) {
+  //  fieldSgn = commonParam->GetField() / fieldAbs;
+  //}
+  Float_t fieldAbs = TMath::Abs(bz);
+  Float_t fieldSgn = (bz > 0.0)? 1.0 : -1.0;
 
   const Int_t kNb = 5;
   Float_t p0[kNb] = {  0.004810,  0.007412,  0.010252,  0.013409,  0.016888 };
index f2f01a2..bb0b680 100644 (file)
@@ -65,7 +65,7 @@ class AliTRDcalibDB : public TObject {
   const AliTRDCalPIDLQ      *GetPIDLQObject();
 
   // Related functions, these depend on calibration data
-  static Float_t GetOmegaTau(Float_t vdrift);
+  static Float_t GetOmegaTau(Float_t vdrift, Float_t bz);
   Int_t          PadResponse(Double_t signal, Double_t dist, Int_t plane, Double_t *pad) const;
   
  protected:
index b691079..ebfbb21 100644 (file)
@@ -2528,7 +2528,16 @@ void AliTRDdigitizer::RecalcDiffusion(Float_t vdrift)
     return;
   }
   
-  Float_t field = commonParam->GetField();
+  //Float_t field = commonParam->GetField();
+  
+  /**/
+  Double_t x[3] = { 0.0, 0.0, 0.0 };
+  Double_t b[3];        
+  gAlice->Field(x,b);  // b[] is in kilo Gauss          
+  Float_t field = b[2] * 0.1; // Tesla
+  /**/
+
+
   fDiffLastVdrift = vdrift;
   
   // DiffusionL
@@ -2564,8 +2573,9 @@ void AliTRDdigitizer::RecalcDiffusion(Float_t vdrift)
               + p3T[ibT] * vdrift*vdrift*vdrift;
 
   // OmegaTau
-  fOmegaTau = calibration->GetOmegaTau(vdrift);
-  
+  fOmegaTau = calibration->GetOmegaTau(vdrift, field);
+  cout << fOmegaTau << "\t" << field << endl;
+
   // Lorentzfactor
   if (commonParam->ExBOn()) {
     fLorentzFactor = 1.0 / (1.0 + fOmegaTau*fOmegaTau);