]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCExBConical.cxx
Merge branch 'TPCdev' of https://git.cern.ch/reps/AliRoot into TPCdev
[u/mrichter/AliRoot.git] / TPC / AliTPCExBConical.cxx
index 4d89ac95ef2d278b3a0beac88235fa6262eb7fea..5f93a2a9ffc5b85a82781fda67439afd2690d1b2 100644 (file)
 //  // plot dRPhi distortions ...                                            //
 //  conical.CreateHistoDRPhiinZR(1.,100,100)->Draw("surf2");                //
 ////////////////////////////////////////////////////////////////////////////
+#include "AliMagF.h"
+#include "TGeoGlobalMagField.h"
+#include "AliTPCcalibDB.h"
+#include "AliTPCParam.h"
+#include "AliLog.h"
 
 #include "TMath.h"
 #include "AliTPCROC.h"
@@ -63,25 +68,24 @@ AliTPCExBConical::~AliTPCExBConical() {
   //
 }
 
+
+
 void AliTPCExBConical::Init() {
   //
-  // Initialization funtion (not used at the moment)
+  // Initialization funtion
   //
   
-  // Set default parameters
-  // FIXME: Ask the database for these entries
-  
-  Double_t vdrift = 2.6; // [cm/us]   // From dataBase: to be updated: per second (ideally)
-  Double_t bzField = -0.5; // [Tesla] // From dataBase: to be updated: per run
-
+  AliMagF* magF= (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
+  if (!magF) AliError("Magneticd field - not initialized");
+  Double_t bzField = magF->SolenoidField()/10.; //field in T
+  AliTPCParam *param= AliTPCcalibDB::Instance()->GetParameters();
+  if (!param) AliError("Parameters - not initialized");
+  Double_t vdrift = param->GetDriftV()/1000000.; // [cm/us]   // From dataBase: to be updated: per second (ideally)
   Double_t ezField = 400; // [V/cm]   // to be updated: never (hopefully)
   Double_t wt = -10.0 * (bzField*10) * vdrift / ezField ; 
-
   // Correction Terms for effective omegaTau; obtained by a laser calibration run
-  Double_t t1 = 0.9;   // ideally from database
-  Double_t t2 = 1.5;   // ideally from database
+  SetOmegaTauT1T2(wt,fT1,fT2);
 
-  SetOmegaTauT1T2(wt,t1,t2);
 
 }
 
@@ -89,18 +93,18 @@ void AliTPCExBConical::Update(const TTimeStamp &/*timeStamp*/) {
   //
   // Update function 
   //
-
-  Double_t vdrift = 2.6; // [cm/us]   // From dataBase: to be updated: per second (ideally)
-  Double_t bzField = -0.5; // [Tesla] // From dataBase: to be updated: per run
-
+  AliMagF* magF= (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
+  if (!magF) AliError("Magneticd field - not initialized");
+  Double_t bzField = magF->SolenoidField()/10.; //field in T
+  AliTPCParam *param= AliTPCcalibDB::Instance()->GetParameters();
+  if (!param) AliError("Parameters - not initialized");
+  Double_t vdrift = param->GetDriftV()/1000000.; // [cm/us]   // From dataBase: to be updated: per second (ideally)
   Double_t ezField = 400; // [V/cm]   // to be updated: never (hopefully)
   Double_t wt = -10.0 * (bzField*10) * vdrift / ezField ; 
-
   // Correction Terms for effective omegaTau; obtained by a laser calibration run
-  Double_t t1 = 0.9;   // ideally from database
-  Double_t t2 = 1.5;   // ideally from database
+  SetOmegaTauT1T2(wt,fT1,fT2);
+
 
- SetOmegaTauT1T2(wt,t1,t2); 
 }
 
 
@@ -131,15 +135,15 @@ void AliTPCExBConical::GetCorrection(const Float_t x[],const Short_t roc,Float_t
 
 }
 
-void AliTPCExBConical::Print(Option_t* option) const {
+void AliTPCExBConical::Print(const Option_t* option) const {
   //
   // Print function to check the settings (e.g. the conical in the X direction)
   // option=="a" prints the C0 and C1 coefficents for calibration purposes
   //
 
   TString opt = option; opt.ToLower();
-  printf("%s\n",GetTitle());
-  
+  printf("%s:%s\n",GetTitle(), GetName());
+  printf(" - T1: %1.4f, T2: %1.4f \n",fT1,fT2);  
   printf("Conical settings: Empirical: %1.5f mm/mrad\n",fConicalFactor);
   printf("Conical settings: A-Conical: %1.5f mrad:%1.5f mrad:%1.5f mrad \n",fConicalA[0],fConicalA[1],fConicalA[2]);
   printf("Conical settings: C-Conical: %1.5f mrad:%1.5f mrad:%1.5f mrad \n",fConicalC[0],fConicalC[1],fConicalC[2]);