// // 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"
//
}
+
+
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);
}
//
// 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);
}
}
-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]);