AliRoot Core  v5-06-30 (35d6c57)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliTPCCorrectionLookupTable Class Reference

AliTPCCorrectionLookupTable class. More...

#include <AliTPCCorrectionLookupTable.h>

Inheritance diagram for AliTPCCorrectionLookupTable:

Public Member Functions

 AliTPCCorrectionLookupTable ()
 
virtual ~AliTPCCorrectionLookupTable ()
 
virtual void GetCorrection (const Float_t x[], const Short_t roc, Float_t dx[])
 
virtual void GetDistortion (const Float_t x[], const Short_t roc, Float_t dx[])
 
void SetupDefaultLimits ()
 
void CreateLookupTable (AliTPCCorrection &tpcCorr, Float_t stepSize=5.)
 
void CreateLookupTableSinglePhi (AliTPCCorrection &tpcCorr, Int_t iPhi, Float_t stepSize=5.)
 
void CreateLookupTableFromResidualDistortion (THn &resDist)
 
void CreateResidual (AliTPCCorrection *distortion, AliTPCCorrection *correction)
 
void MergePhiTables (const char *files)
 
void SetFillCorrection (Bool_t fill)
 
Bool_t GetFillCorrection () const
 
void BuildExactInverse ()
 
Int_t GetNR () const
 
Int_t GetNPhi () const
 
Int_t GetNZ () const
 
const TVectorD & GetLimitsR () const
 
const TVectorD & GetLimitsPhi () const
 
const TVectorD & GetLimitsZ () const
 
void SetCorrScaleFactor (Float_t val)
 
Float_t GetCorrScaleFactor () const
 
- Public Member Functions inherited from AliTPCCorrection
 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 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 Init ()
 
virtual void Update (const TTimeStamp &timeStamp)
 
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)
 
TTree * CreateDistortionTree (Double_t step=5)
 
virtual void SetOmegaTauT1T2 (Float_t omegaTau, Float_t t1, Float_t t2)
 
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

void InitTables ()
 
void InitTableArrays ()
 
void InitTablesPhiBin (Int_t iPhi)
 
void ResetTables ()
 
void ResetLimits ()
 
void GetInterpolation (const Float_t x[], const Short_t roc, Float_t dx[], TMatrixF **mR, TMatrixF **mPhi, TMatrixF **mZ)
 
void CreateLookupTablePhiBin (AliTPCCorrection &tpcCorr, Int_t iPhi, Float_t stepSize)
 
void FindClosestPosition (const Int_t binR, const Int_t binZ, const Int_t binPhi, const Float_t xref[3], Float_t xret[3])
 
 AliTPCCorrectionLookupTable (const AliTPCCorrectionLookupTable &corr)
 
AliTPCCorrectionLookupTableoperator= (const AliTPCCorrectionLookupTable &corr)
 

Private Attributes

Int_t fNR
 number of rows (r) used for lookup table More...
 
Int_t fNPhi
 number of phi slices used for lookup table More...
 
Int_t fNZ
 number of columns (z) used for lookup table More...
 
Float_t fCorrScaleFactor
 overall scaling factor for the correction More...
 
Bool_t fFillCorrection
 whether to also fill the correction tables More...
 
TVectorD fLimitsR
 bin limits in row direction More...
 
TVectorD fLimitsPhi
 bin limits in phi direction More...
 
TVectorD fLimitsZ
 bin limits in z direction More...
 
TMatrixF ** fLookUpDxDist
 Array to store electric field integral (int Er/Ez) More...
 
TMatrixF ** fLookUpDyDist
 Array to store electric field integral (int Er/Ez) More...
 
TMatrixF ** fLookUpDzDist
 Array to store electric field integral (int Er/Ez) More...
 
TMatrixF ** fLookUpDxCorr
 Array to store electric field integral (int Er/Ez) More...
 
TMatrixF ** fLookUpDyCorr
 Array to store electric field integral (int Er/Ez) More...
 
TMatrixF ** fLookUpDzCorr
 Array to store electric field integral (int Er/Ez) More...
 

Additional Inherited Members

- Public Types inherited from AliTPCCorrection
enum  CompositionType { kParallel, kQueue }
 
- Static Public Member Functions inherited from AliTPCCorrection
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 AliTPCCorrectionGetVisualCorrection (Int_t position)
 
static AliTPCCorrectionGetVisualCorrection (const char *corName)
 
static TObjArrayGetVisualCorrections ()
 
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)
 
- Protected Types inherited from AliTPCCorrection
enum  { kNR = 72 }
 
enum  { kNPhi = 18*10+1 }
 
enum  { kNZ = 166 }
 
- Protected Member Functions inherited from AliTPCCorrection
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)
 
void SetIsLocal (Bool_t isLocal)
 
Bool_t IsLocal () const
 
- Protected Attributes inherited from AliTPCCorrection
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...
 
- Static Protected Attributes inherited from AliTPCCorrection
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) 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 TObjArrayfgVisualCorrection =0
 array of orrection for visualization More...
 

Detailed Description

AliTPCCorrectionLookupTable class.

Author
Jens Wiechula

Definition at line 14 of file AliTPCCorrectionLookupTable.h.

Constructor & Destructor Documentation

AliTPCCorrectionLookupTable::AliTPCCorrectionLookupTable ( )

Definition at line 41 of file AliTPCCorrectionLookupTable.cxx.

AliTPCCorrectionLookupTable::~AliTPCCorrectionLookupTable ( )
virtual

dtor

Definition at line 63 of file AliTPCCorrectionLookupTable.cxx.

AliTPCCorrectionLookupTable::AliTPCCorrectionLookupTable ( const AliTPCCorrectionLookupTable corr)
private

Member Function Documentation

void AliTPCCorrectionLookupTable::BuildExactInverse ( )

this method build the exact inverse of the standard distortion map for the the distortion man first needs to be calculated then the correction map will be overwritten

Definition at line 539 of file AliTPCCorrectionLookupTable.cxx.

void AliTPCCorrectionLookupTable::CreateLookupTable ( AliTPCCorrection tpcCorr,
Float_t  stepSize = 5. 
)

create lookup table for all phi,r,z bins

Definition at line 146 of file AliTPCCorrectionLookupTable.cxx.

void AliTPCCorrectionLookupTable::CreateLookupTableFromResidualDistortion ( THn &  resDist)

create lookup table from residual distortions stored in a 3d histogram assume dimensions are r, phi, z

Definition at line 257 of file AliTPCCorrectionLookupTable.cxx.

void AliTPCCorrectionLookupTable::CreateLookupTablePhiBin ( AliTPCCorrection tpcCorr,
Int_t  iPhi,
Float_t  stepSize 
)
private
void AliTPCCorrectionLookupTable::CreateLookupTableSinglePhi ( AliTPCCorrection tpcCorr,
Int_t  iPhi,
Float_t  stepSize = 5. 
)

Lookup table for only one phi bin. Can be used for parallel processing

Definition at line 169 of file AliTPCCorrectionLookupTable.cxx.

void AliTPCCorrectionLookupTable::CreateResidual ( AliTPCCorrection distortion,
AliTPCCorrection correction 
)

create lookup table from residual distortions calculated from distorted - correction

Definition at line 314 of file AliTPCCorrectionLookupTable.cxx.

void AliTPCCorrectionLookupTable::FindClosestPosition ( const Int_t  binR,
const Int_t  binZ,
const Int_t  binPhi,
const Float_t  xref[3],
Float_t  xret[3] 
)
private

Definition at line 729 of file AliTPCCorrectionLookupTable.cxx.

Referenced by BuildExactInverse().

void AliTPCCorrectionLookupTable::GetCorrection ( const Float_t  x[],
const Short_t  roc,
Float_t  dx[] 
)
virtual

Get interplolated correction

Reimplemented from AliTPCCorrection.

Definition at line 78 of file AliTPCCorrectionLookupTable.cxx.

Float_t AliTPCCorrectionLookupTable::GetCorrScaleFactor ( ) const
inlinevirtual

Reimplemented from AliTPCCorrection.

Definition at line 45 of file AliTPCCorrectionLookupTable.h.

void AliTPCCorrectionLookupTable::GetDistortion ( const Float_t  x[],
const Short_t  roc,
Float_t  dx[] 
)
virtual

Get interpolated Distortion

Reimplemented from AliTPCCorrection.

Definition at line 71 of file AliTPCCorrectionLookupTable.cxx.

Referenced by BuildExactInverse().

Bool_t AliTPCCorrectionLookupTable::GetFillCorrection ( ) const
inline

Definition at line 33 of file AliTPCCorrectionLookupTable.h.

void AliTPCCorrectionLookupTable::GetInterpolation ( const Float_t  x[],
const Short_t  roc,
Float_t  dx[],
TMatrixF **  mR,
TMatrixF **  mPhi,
TMatrixF **  mZ 
)
private

Calculates the correction/distotring from a lookup table type: 0 = correction 1 = distortion

Definition at line 91 of file AliTPCCorrectionLookupTable.cxx.

Referenced by GetCorrection(), and GetDistortion().

const TVectorD& AliTPCCorrectionLookupTable::GetLimitsPhi ( ) const
inline

Definition at line 41 of file AliTPCCorrectionLookupTable.h.

const TVectorD& AliTPCCorrectionLookupTable::GetLimitsR ( ) const
inline

Definition at line 40 of file AliTPCCorrectionLookupTable.h.

const TVectorD& AliTPCCorrectionLookupTable::GetLimitsZ ( ) const
inline

Definition at line 42 of file AliTPCCorrectionLookupTable.h.

Int_t AliTPCCorrectionLookupTable::GetNPhi ( ) const
inline

Definition at line 37 of file AliTPCCorrectionLookupTable.h.

Int_t AliTPCCorrectionLookupTable::GetNR ( ) const
inline

Definition at line 36 of file AliTPCCorrectionLookupTable.h.

Int_t AliTPCCorrectionLookupTable::GetNZ ( ) const
inline

Definition at line 38 of file AliTPCCorrectionLookupTable.h.

void AliTPCCorrectionLookupTable::InitTableArrays ( )
private
void AliTPCCorrectionLookupTable::InitTables ( )
private
void AliTPCCorrectionLookupTable::InitTablesPhiBin ( Int_t  iPhi)
private
void AliTPCCorrectionLookupTable::MergePhiTables ( const char *  files)

merge all lookup tables stored in 'files' with this one assume that each lookup table in each file has only one phi bin

Definition at line 475 of file AliTPCCorrectionLookupTable.cxx.

AliTPCCorrectionLookupTable& AliTPCCorrectionLookupTable::operator= ( const AliTPCCorrectionLookupTable corr)
private
void AliTPCCorrectionLookupTable::ResetLimits ( )
private

Definition at line 463 of file AliTPCCorrectionLookupTable.cxx.

Referenced by MergePhiTables().

void AliTPCCorrectionLookupTable::ResetTables ( )
private
void AliTPCCorrectionLookupTable::SetCorrScaleFactor ( Float_t  val)
inlinevirtual

Reimplemented from AliTPCCorrection.

Definition at line 44 of file AliTPCCorrectionLookupTable.h.

void AliTPCCorrectionLookupTable::SetFillCorrection ( Bool_t  fill)
inline

Definition at line 32 of file AliTPCCorrectionLookupTable.h.

void AliTPCCorrectionLookupTable::SetupDefaultLimits ( )

Set default limits for tables

Definition at line 447 of file AliTPCCorrectionLookupTable.cxx.

Referenced by InitTableArrays().

Member Data Documentation

Float_t AliTPCCorrectionLookupTable::fCorrScaleFactor
private

overall scaling factor for the correction

Definition at line 55 of file AliTPCCorrectionLookupTable.h.

Referenced by GetCorrection(), GetCorrScaleFactor(), and SetCorrScaleFactor().

Bool_t AliTPCCorrectionLookupTable::fFillCorrection
private

whether to also fill the correction tables

Definition at line 57 of file AliTPCCorrectionLookupTable.h.

Referenced by CreateLookupTablePhiBin(), GetFillCorrection(), and SetFillCorrection().

TMatrixF** AliTPCCorrectionLookupTable::fLookUpDxCorr
private
TMatrixF** AliTPCCorrectionLookupTable::fLookUpDxDist
private
TMatrixF** AliTPCCorrectionLookupTable::fLookUpDyCorr
private
TMatrixF** AliTPCCorrectionLookupTable::fLookUpDyDist
private
TMatrixF** AliTPCCorrectionLookupTable::fLookUpDzCorr
private
TMatrixF** AliTPCCorrectionLookupTable::fLookUpDzDist
private

The documentation for this class was generated from the following files: