![]() |
AliRoot Core
3dc7879 (3dc7879)
|
AliTPCGGVoltError class. More...
#include <AliTPCGGVoltError.h>
Public Member Functions | |
AliTPCGGVoltError () | |
virtual | ~AliTPCGGVoltError () |
virtual void | Init () |
virtual void | Update (const TTimeStamp &timeStamp) |
virtual void | SetOmegaTauT1T2 (Float_t omegaTau, Float_t t1, Float_t t2) |
void | SetC0C1 (Double_t c0, Double_t c1) |
Float_t | GetC0 () const |
Float_t | GetC1 () const |
void | SetDeltaVGGA (Double_t deltaVGGA) |
void | SetDeltaVGGC (Double_t deltaVGGC) |
Double_t | GetDeltaVGGA () const |
Double_t | GetDeltaVGGC () const |
void | InitGGVoltErrorDistortion () |
Float_t | GetIntErOverEz (const Float_t x[], const Short_t roc) |
virtual void | Print (const Option_t *option="") const |
![]() | |
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) |
Protected Member Functions | |
virtual void | GetCorrection (const Float_t x[], const Short_t roc, Float_t dx[]) |
![]() | |
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 |
Private Attributes | |
Float_t | fC0 |
coefficient C0 (compare Jim Thomas's notes for definitions) More... | |
Float_t | fC1 |
coefficient C1 (compare Jim Thomas's notes for definitions) More... | |
Double_t | fDeltaVGGA |
Missmatch of gating grid voltage on A-side [V]. More... | |
Double_t | fDeltaVGGC |
Missmatch of gating grid voltage on C-side [V]. More... | |
Double_t | fGGVoltErrorER [kNZ][kNR] |
Array to store electric field for GGVoltError calculation. More... | |
Bool_t | fInitLookUp |
flag to check it the Look Up table was created 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 } |
![]() | |
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... | |
AliTPCGGVoltError class.
The class calculates the electric field and the resulting space point distortions due a Gating Grid (GG) voltage error. It uses the analytical solution for such a problem.
The input is the effective GG voltage residual in respect to the ideal setting. The effective residual voltage can be set via the functions SetDeltaVGGx. Note that this effective voltage-residuals are approx. a factor 0.9 lower than the actual difference in the setting of the GG due to the fact that the voltage on the GG is partially screened by the wire structure. The calculation has to be performed with the observable effective voltage difference.
Unfortunately, the class is not capable of calculation the $dz$ offset due to possible changes of the drift velocity in dependence of the electric field. The special case of the numerical approximation (AliTPCBoundaryVoltError), which is capable of calculating the same effect, should be used for this purpose.
Definition at line 31 of file AliTPCGGVoltError.h.
AliTPCGGVoltError::AliTPCGGVoltError | ( | ) |
default constructor
Definition at line 29 of file AliTPCGGVoltError.cxx.
|
virtual |
default destructor
Definition at line 39 of file AliTPCGGVoltError.cxx.
|
inline |
Definition at line 48 of file AliTPCGGVoltError.h.
|
inline |
Definition at line 49 of file AliTPCGGVoltError.h.
|
protectedvirtual |
Gated Grid Voltage Error
Calculates the effect of having an incorrect voltage on the A or C end plate Gated Grids.
Electrostatic Equations from StarNote SN0253 by Howard Wieman.
Reimplemented from AliTPCCorrection.
Definition at line 80 of file AliTPCGGVoltError.cxx.
Referenced by GetDeltaVGGC().
|
inline |
Definition at line 54 of file AliTPCGGVoltError.h.
|
inline |
Definition at line 55 of file AliTPCGGVoltError.h.
Float_t AliTPCGGVoltError::GetIntErOverEz | ( | const Float_t | x[], |
const Short_t | roc | ||
) |
This function is purely for calibration purposes Calculates the integral (int Er/Ez dz) for the setted GG voltage offset
Definition at line 133 of file AliTPCGGVoltError.cxx.
Referenced by GetDeltaVGGC().
|
virtual |
Init function
Reimplemented from AliTPCCorrection.
Definition at line 44 of file AliTPCGGVoltError.cxx.
void AliTPCGGVoltError::InitGGVoltErrorDistortion | ( | ) |
Initialization of the Lookup table which contains the solutions of the GG Error problem
Definition at line 169 of file AliTPCGGVoltError.cxx.
Referenced by AliTPCCorrectionDemo(), GetDeltaVGGC(), Init(), and MakeDistortionMap().
|
virtual |
Print function to check the settings (e.g. voltage offsets) option=="a" prints the C0 and C1 coefficents for calibration purposes
Definition at line 215 of file AliTPCGGVoltError.cxx.
Referenced by GetDeltaVGGC().
|
inline |
Definition at line 47 of file AliTPCGGVoltError.h.
|
inline |
Definition at line 52 of file AliTPCGGVoltError.h.
Referenced by AliTPCCorrectionDemo(), MakeComposedCorrection(), and MakeDistortionMap().
|
inline |
Definition at line 53 of file AliTPCGGVoltError.h.
Referenced by AliTPCCorrectionDemo(), MakeComposedCorrection(), and MakeDistortionMap().
|
inlinevirtual |
Reimplemented from AliTPCCorrection.
Definition at line 41 of file AliTPCGGVoltError.h.
|
virtual |
Update function
Reimplemented from AliTPCCorrection.
Definition at line 62 of file AliTPCGGVoltError.cxx.
|
private |
coefficient C0 (compare Jim Thomas's notes for definitions)
Definition at line 67 of file AliTPCGGVoltError.h.
Referenced by GetC0(), GetCorrection(), Print(), SetC0C1(), and SetOmegaTauT1T2().
|
private |
coefficient C1 (compare Jim Thomas's notes for definitions)
Definition at line 68 of file AliTPCGGVoltError.h.
Referenced by GetC1(), GetCorrection(), Print(), SetC0C1(), and SetOmegaTauT1T2().
|
private |
Missmatch of gating grid voltage on A-side [V].
Definition at line 70 of file AliTPCGGVoltError.h.
Referenced by GetCorrection(), GetDeltaVGGA(), GetIntErOverEz(), Print(), and SetDeltaVGGA().
|
private |
Missmatch of gating grid voltage on C-side [V].
Definition at line 71 of file AliTPCGGVoltError.h.
Referenced by GetCorrection(), GetDeltaVGGC(), GetIntErOverEz(), Print(), and SetDeltaVGGC().
Array to store electric field for GGVoltError calculation.
Definition at line 72 of file AliTPCGGVoltError.h.
Referenced by GetCorrection(), GetIntErOverEz(), and InitGGVoltErrorDistortion().
|
private |
flag to check it the Look Up table was created
Definition at line 74 of file AliTPCGGVoltError.h.
Referenced by GetCorrection(), GetIntErOverEz(), InitGGVoltErrorDistortion(), and Print().