![]() |
AliRoot Core
3dc7879 (3dc7879)
|
Correct for the rest of ExB effect which are not covered by physical models. More...
#include <AliTPCExBEffective.h>
Public Member Functions | |
AliTPCExBEffective () | |
virtual | ~AliTPCExBEffective () |
virtual void | Init () |
virtual void | Update (const TTimeStamp &timeStamp) |
virtual void | SetOmegaTauT1T2 (Float_t omegaTau, Float_t t1, Float_t t2) |
Float_t | GetC1 () const |
Float_t | GetC0 () const |
Double_t | GetSum (const TMatrixD &pol, const TMatrixD &coef, Double_t r, Double_t drift, Double_t phi, Int_t coord=0) const |
void | SetPolynoms (const TMatrixD *polA, const TMatrixD *polC) |
void | SetCoeficients (const TMatrixD *valA, const TMatrixD *valC) |
void | Print (const Option_t *option) const |
virtual void | GetCorrection (const Float_t x[], const Short_t roc, Float_t dx[]) |
![]() | |
AliTPCCorrection () | |
AliTPCCorrection (const char *name, const char *title) | |
virtual | ~AliTPCCorrection () |
virtual Bool_t | AddCorrectionCompact (AliTPCCorrection *corr, Double_t weight) |
void | CorrectPoint (Float_t x[], Short_t roc) |
void | CorrectPointLocal (Float_t x[], Short_t roc) |
void | CorrectPoint (const Float_t x[], Short_t roc, Float_t xp[]) |
virtual void | GetCorrectionDz (const Float_t x[], Short_t roc, Float_t dx[], Float_t delta) |
virtual void | GetCorrectionIntegralDz (const Float_t x[], Short_t roc, Float_t dx[], Float_t delta) |
void | DistortPoint (Float_t x[], Short_t roc) |
void | DistortPointLocal (Float_t x[], Short_t roc) |
void | DistortPoint (const Float_t x[], Short_t roc, Float_t xp[]) |
virtual void | GetDistortion (const Float_t x[], Short_t roc, Float_t dx[]) |
virtual void | GetDistortionDz (const Float_t x[], Short_t roc, Float_t dx[], Float_t delta) |
virtual void | GetDistortionIntegralDz (const Float_t x[], Short_t roc, Float_t dx[], Float_t delta) |
virtual void | SetCorrScaleFactor (Float_t) |
virtual Float_t | GetCorrScaleFactor () const |
virtual void | Print (Option_t *option="") const |
TH2F * | CreateHistoDRinXY (Float_t z=10., Int_t nx=100, Int_t ny=100) |
TH2F * | CreateHistoDRPhiinXY (Float_t z=10., Int_t nx=100, Int_t nphi=100) |
TH2F * | CreateHistoDZinXY (Float_t z=10., Int_t nx=100, Int_t ny=100) |
TH2F * | CreateHistoDRinZR (Float_t phi=0., Int_t nZ=100, Int_t nR=100) |
TH2F * | CreateHistoDRPhiinZR (Float_t phi=0., Int_t nZ=100, Int_t nR=100) |
TH2F * | CreateHistoDZinZR (Float_t phi=0., Int_t nZ=100, Int_t nR=100) |
TH2F * | CreateHistoDRinPhiR (Float_t z=10., Int_t nPhi=180, Int_t nR=100, Bool_t useSector=kTRUE, Float_t shift=0.) |
TH2F * | CreateHistoDRPhiinPhiR (Float_t z=10., Int_t nPhi=180, Int_t nR=100, Bool_t useSector=kTRUE, Float_t shift=0.) |
TH2F * | CreateHistoDZinPhiR (Float_t z=10., Int_t nPhi=180, Int_t nR=100, Bool_t useSector=kTRUE, Float_t shift=0.) |
TTree * | CreateDistortionTree (Double_t step=5, Int_t type=0) |
AliExternalTrackParam * | FitDistortedTrack (AliExternalTrackParam &trackIn, Double_t refX, Int_t dir, TTreeSRedirector *pcstream) |
void | StoreInOCDB (Int_t startRun, Int_t endRun, const char *comment=0) |
void | FastSimDistortedVertex (Double_t orgVertex[3], Int_t nTracks, AliESDVertex &aV, AliESDVertex &avOrg, AliESDVertex &cV, AliESDVertex &cvOrg, TTreeSRedirector *const pcstream, Double_t etaCuts) |
Private Member Functions | |
AliTPCExBEffective (const AliTPCExBEffective &) | |
AliTPCExBEffective & | operator= (const AliTPCExBEffective &) |
Private Attributes | |
Double_t | fC0 |
coefficient C0 (compare Jim Thomas's notes for definitions) More... | |
Double_t | fC1 |
coefficient C1 (compare Jim Thomas's notes for definitions) More... | |
TMatrixD * | fPolynomA |
correction polynoms A More... | |
TMatrixD * | fPolynomC |
correction polynoms C More... | |
TMatrixD * | fPolynomValA |
correction polynoms coefficient A More... | |
TMatrixD * | fPolynomValC |
correction polynoms coefficient C More... | |
Additional Inherited Members | |
![]() | |
enum | CompositionType { kParallel, kQueue } |
enum | IntegrationType { kIntegral, kDifferential } |
![]() | |
static void | MakeDistortionMap (THnSparse *his0, TTreeSRedirector *pcstream, const char *hname, Int_t run, Float_t refX, Int_t type, Int_t integ=1) |
static void | MakeDistortionMapCosmic (THnSparse *his0, TTreeSRedirector *pcstream, const char *hname, Int_t run, Float_t refX, Int_t type) |
static void | MakeDistortionMapSector (THnSparse *his0, TTreeSRedirector *pcstream, const char *hname, Int_t run, Int_t type) |
static void | MakeTrackDistortionTree (TTree *tinput, Int_t dtype, Int_t ptype, const TObjArray *corrArray, Int_t step=1, Int_t offset=0, Bool_t debug=0) |
static void | MakeSectorDistortionTree (TTree *tinput, Int_t dtype, Int_t ptype, const TObjArray *corrArray, Int_t step=1, Int_t offset=0, Bool_t debug=0) |
static void | MakeLaserDistortionTreeOld (TTree *tree, TObjArray *corrArray, Int_t itype) |
static void | MakeLaserDistortionTree (TTree *tree, TObjArray *corrArray, Int_t itype) |
static void | AddVisualCorrection (AliTPCCorrection *corr, Int_t position) |
static AliTPCCorrection * | GetVisualCorrection (Int_t position) |
static AliTPCCorrection * | GetVisualCorrection (const char *corName) |
static TObjArray * | GetVisualCorrections () |
static Double_t | GetCorrSector (Double_t sector, Double_t r, Double_t kZ, Int_t axisType, Int_t corrType=0) |
static Double_t | GetCorrXYZ (Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType=0) |
static Double_t | GetCorrXYZDz (Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType=0, Double_t delta=5) |
static Double_t | GetCorrXYZIntegrateZ (Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType=0, Double_t delta=5) |
static Double_t | GetDistXYZ (Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType=0) |
static Double_t | GetDistXYZDz (Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType=0, Double_t delta=5) |
static Double_t | GetDistXYZIntegrateZ (Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType=0, Double_t delta=5) |
static Double_t | GetCorrectionSector (Double_t sector, Double_t r, Double_t kZ, Int_t axisType, Int_t corrType=0) |
static Double_t | GetDistortionSector (Double_t sector, Double_t r, Double_t kZ, Int_t axisType, Int_t corrType=0) |
![]() | |
enum | { kNR = 72 } |
enum | { kNPhi = 18*10+1 } |
enum | { kNZ = 166 } |
![]() | |
TH2F * | CreateTH2F (const char *name, const char *title, const char *xlabel, const char *ylabel, const char *zlabel, Int_t nbinsx, Double_t xlow, Double_t xup, Int_t nbinsy, Double_t ylow, Double_t yup) |
void | Interpolate2DEdistortion (Int_t order, Double_t r, Double_t z, const Double_t er[kNZ][kNR], Double_t &erValue) |
void | Interpolate3DEdistortion (Int_t order, Double_t r, Float_t phi, Double_t z, const Double_t er[kNZ][kNPhi][kNR], const Double_t ephi[kNZ][kNPhi][kNR], const Double_t ez[kNZ][kNPhi][kNR], Double_t &erValue, Double_t &ephiValue, Double_t &ezValue) |
Double_t | Interpolate2DTable (Int_t order, Double_t x, Double_t y, Int_t nx, Int_t ny, const Double_t xv[], const Double_t yv[], const TMatrixD &array) |
Double_t | Interpolate3DTable (Int_t order, Double_t x, Double_t y, Double_t z, Int_t nx, Int_t ny, Int_t nz, const Double_t xv[], const Double_t yv[], const Double_t zv[], TMatrixD **arrayofArrays) |
Double_t | Interpolate (const Double_t xArray[], const Double_t yArray[], Int_t order, Double_t x) |
void | Search (Int_t n, const Double_t xArray[], Double_t x, Int_t &low) |
Float_t | Interpolate2DTable (Int_t order, Double_t x, Double_t y, Int_t nx, Int_t ny, const Double_t xv[], const Double_t yv[], const TMatrixF &array) |
Float_t | Interpolate3DTable (Int_t order, Double_t x, Double_t y, Double_t z, Int_t nx, Int_t ny, Int_t nz, const Double_t xv[], const Double_t yv[], const Double_t zv[], TMatrixF **arrayofArrays) |
Float_t | Interpolate (const Double_t xArray[], const Float_t yArray[], Int_t order, Double_t x) |
virtual Int_t | IsPowerOfTwo (Int_t i) const |
void | PoissonRelaxation2D (TMatrixD &arrayV, TMatrixD &chargeDensity, TMatrixD &arrayErOverEz, TMatrixD &arrayDeltaEz, Int_t rows, Int_t columns, Int_t iterations, Bool_t rocDisplacement=kTRUE) |
void | PoissonRelaxation3D (TMatrixD **arrayofArrayV, TMatrixD **arrayofChargeDensities, TMatrixD **arrayofEroverEz, TMatrixD **arrayofEPhioverEz, TMatrixD **arrayofEz, Int_t rows, Int_t columns, Int_t phislices, Float_t deltaphi, Int_t iterations, Int_t summetry, Bool_t rocDisplacement=kTRUE, IntegrationType integrationType=kIntegral) |
void | SetIsLocal (Bool_t isLocal) |
Bool_t | IsLocal () const |
![]() | |
Double_t | fgkRList [kNR] |
points in the radial direction (for the lookup table) More... | |
Double_t | fgkPhiList [kNPhi] |
points in the phi direction (for the lookup table) More... | |
Double_t | fgkZList [kNZ] |
points in the z direction (for the lookup table) More... | |
Int_t | fILow |
Int_t | fJLow |
Int_t | fKLow |
variable to help in the interpolation More... | |
Double_t | fT1 |
tensor term of wt - T1 More... | |
Double_t | fT2 |
tensor term of wt - T2 More... | |
Bool_t | fIsLocal |
switch to indicate that the distortion is a local vector drphi/dz, dr/dz More... | |
IntegrationType | fIntegrationType |
Presentation of the underlying corrections, integrated, or differential. More... | |
![]() | |
static const Double_t | fgkTPCZ0 = 249.7 |
nominal gating grid position More... | |
static const Double_t | fgkIFCRadius = 83.5 |
Mean Radius of the Inner Field Cage ( 82.43 min, 83.70 max) (cm)/hera/alice/wiechula/calib/guiTrees. More... | |
static const Double_t | fgkOFCRadius = 254.5 |
Mean Radius of the Outer Field Cage (252.55 min, 256.45 max) (cm) More... | |
static const Double_t | fgkZOffSet = 0.2 |
Offset from CE: calculate all distortions closer to CE as if at this point. More... | |
static const Double_t | fgkCathodeV = -100000.0 |
Cathode Voltage (volts) More... | |
static const Double_t | fgkGG = -70.0 |
Gating Grid voltage (volts) More... | |
static const Double_t | fgkdvdE = 0.0024 |
[cm/V] drift velocity dependency on the E field (from Magboltz for NeCO2N2 at standard environment) More... | |
static const Double_t | fgkEM = -1.602176487e-19/9.10938215e-31 |
charge/mass in [C/kg] More... | |
static const Double_t | fgke0 = 8.854187817e-12 |
vacuum permittivity [A·s/(V·m)] More... | |
static TObjArray * | fgVisualCorrection =0 |
array of orrection for visualization More... | |
Correct for the rest of ExB effect which are not covered by physical models.
Motivation: ExB correction: dr = c0* integral(Er/Ez) + c1* integral(Erphi/Ez) drphi = -c1* integral(Er/Ez) + c0* integral(Erphi/Ez) Where: wt = Bz*(k*vdrift/E) ~ 0.3 at B=0.5 T c0 = 1/(1+T2*T2*wt*wt) c1 = T1*wt/(1+T1*T1*wt*wt)
Residual integral(Er/Ez,Erphi/Ez) obtained comparing the B field 0 and B field +-0.5 T setting minimizing track matching residuals delta(Er/Ez) ~ sum[ poln(r) * polm(z) * cos(n,phi)]
Definition at line 14 of file AliTPCExBEffective.h.
AliTPCExBEffective::AliTPCExBEffective | ( | ) |
Definition at line 45 of file AliTPCExBEffective.cxx.
|
virtual |
default destructor
Definition at line 58 of file AliTPCExBEffective.cxx.
|
private |
|
inline |
Definition at line 28 of file AliTPCExBEffective.h.
|
inline |
Definition at line 27 of file AliTPCExBEffective.h.
|
virtual |
Calculates the correction due conical shape
Reimplemented from AliTPCCorrection.
Definition at line 101 of file AliTPCExBEffective.cxx.
Referenced by GetC0().
Double_t AliTPCExBEffective::GetSum | ( | const TMatrixD & | pol, |
const TMatrixD & | coef, | ||
Double_t | r, | ||
Double_t | drift, | ||
Double_t | phi, | ||
Int_t | coord = 0 |
||
) | const |
Summation of the polynomials
Definition at line 139 of file AliTPCExBEffective.cxx.
Referenced by GetC0(), and GetCorrection().
|
virtual |
Initialization funtion
Reimplemented from AliTPCCorrection.
Definition at line 65 of file AliTPCExBEffective.cxx.
|
private |
void AliTPCExBEffective::Print | ( | const Option_t * | option | ) | const |
Print function to check the settings (e.g. the twist in the X direction) option=="a" prints the C0 and C1 coefficents for calibration purposes
Definition at line 179 of file AliTPCExBEffective.cxx.
Referenced by GetC0().
void AliTPCExBEffective::SetCoeficients | ( | const TMatrixD * | valA, |
const TMatrixD * | valC | ||
) |
Set correction polynom - coefficients
Definition at line 169 of file AliTPCExBEffective.cxx.
Referenced by AddEffectiveCorrection(), GetC0(), and MakeComposedCorrection().
|
inlinevirtual |
Reimplemented from AliTPCCorrection.
Definition at line 22 of file AliTPCExBEffective.h.
Referenced by Init(), MakeComposedCorrection(), and Update().
void AliTPCExBEffective::SetPolynoms | ( | const TMatrixD * | polA, |
const TMatrixD * | polC | ||
) |
Set correction polynom - coefficients
Definition at line 162 of file AliTPCExBEffective.cxx.
Referenced by AddEffectiveCorrection(), GetC0(), and MakeComposedCorrection().
|
virtual |
Update function
Reimplemented from AliTPCCorrection.
Definition at line 82 of file AliTPCExBEffective.cxx.
|
private |
coefficient C0 (compare Jim Thomas's notes for definitions)
Definition at line 38 of file AliTPCExBEffective.h.
Referenced by GetC0(), GetCorrection(), Print(), and SetOmegaTauT1T2().
|
private |
coefficient C1 (compare Jim Thomas's notes for definitions)
Definition at line 39 of file AliTPCExBEffective.h.
Referenced by GetC1(), GetCorrection(), Print(), and SetOmegaTauT1T2().
|
private |
correction polynoms A
Definition at line 40 of file AliTPCExBEffective.h.
Referenced by GetCorrection(), and SetPolynoms().
|
private |
correction polynoms C
Definition at line 41 of file AliTPCExBEffective.h.
Referenced by GetCorrection(), and SetPolynoms().
|
private |
correction polynoms coefficient A
Definition at line 42 of file AliTPCExBEffective.h.
Referenced by GetCorrection(), Print(), and SetCoeficients().
|
private |
correction polynoms coefficient C
Definition at line 43 of file AliTPCExBEffective.h.
Referenced by GetCorrection(), Print(), and SetCoeficients().