ROOT logo
AliRoot » TPC » BASE » AliTPCCalibGlobalMisalignment

class AliTPCCalibGlobalMisalignment: public AliTPCCorrection


AliTPCCalibGlobalMisalignment class
The class calculates the space point distortions due to simple
misalignments like shifts in caresian coordinates or a rotation
of the TPC read out planes (A and C side)
Optionaly possible to use it for visualization of the alignemnt form the Alignment OCDB
 fUseGeoManager has to be set to kTRUE to enable this option

date: 06/05/2010
Authors: Stefan Rossegger, Jim Thomas, Magnus Mager

Function Members (Methods)

public:
AliTPCCalibGlobalMisalignment()
virtual~AliTPCCalibGlobalMisalignment()
voidTObject::AbstractMethod(const char* method) const
voidAddAlign(const AliTPCCalibGlobalMisalignment& add)
virtual Bool_tAliTPCCorrection::AddCorrectionCompact(AliTPCCorrection* corr, Double_t weight)
static voidAliTPCCorrection::AddVisualCorrection(AliTPCCorrection* corr, Int_t position)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
voidAliTPCCorrection::CorrectPoint(Float_t* x, Short_t roc)
voidAliTPCCorrection::CorrectPoint(const Float_t* x, Short_t roc, Float_t* xp)
voidAliTPCCorrection::CorrectPointLocal(Float_t* x, Short_t roc)
TTree*AliTPCCorrection::CreateDistortionTree(Double_t step = 5)
TH2F*AliTPCCorrection::CreateHistoDRinXY(Float_t z = 10., Int_t nx = 100, Int_t ny = 100)
TH2F*AliTPCCorrection::CreateHistoDRinZR(Float_t phi = 0., Int_t nZ = 100, Int_t nR = 100)
TH2F*AliTPCCorrection::CreateHistoDRPhiinXY(Float_t z = 10., Int_t nx = 100, Int_t nphi = 100)
TH2F*AliTPCCorrection::CreateHistoDRPhiinZR(Float_t phi = 0., Int_t nZ = 100, Int_t nR = 100)
TH2F*AliTPCCorrection::CreateHistoDZinXY(Float_t z = 10., Int_t nx = 100, Int_t ny = 100)
TH2F*AliTPCCorrection::CreateHistoDZinZR(Float_t phi = 0., Int_t nZ = 100, Int_t nR = 100)
static AliTPCCalibGlobalMisalignment*CreateMeanAlign(const AliTPCCalibGlobalMisalignment* alignIn)
static AliTPCCalibGlobalMisalignment*CreateOCDBAlign()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
voidAliTPCCorrection::DistortPoint(Float_t* x, Short_t roc)
voidAliTPCCorrection::DistortPoint(const Float_t* x, Short_t roc, Float_t* xp)
voidAliTPCCorrection::DistortPointLocal(Float_t* x, Short_t roc)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
static voidDumpAlignment(AliTPCCalibGlobalMisalignment* align, TTreeSRedirector* pcstream, const char* name)
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
voidAliTPCCorrection::FastSimDistortedVertex(Double_t* orgVertex, Int_t nTracks, AliESDVertex& aV, AliESDVertex& avOrg, AliESDVertex& cV, AliESDVertex& cvOrg, TTreeSRedirector *const pcstream, Double_t etaCuts)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
AliExternalTrackParam*AliTPCCorrection::FitDistortedTrack(AliExternalTrackParam& trackIn, Double_t refX, Int_t dir, TTreeSRedirector* pcstream)
TGeoMatrix*GetAlignGlobal() const
TGeoMatrix*GetAlignGlobalDelta() const
TObjArray*GetAlignSectors() const
virtual voidAliTPCCorrection::GetCorrectionDz(const Float_t* x, Short_t roc, Float_t* dx, Float_t delta)
virtual voidAliTPCCorrection::GetCorrectionIntegralDz(const Float_t* x, Short_t roc, Float_t* dx, Float_t delta)
virtual Float_tAliTPCCorrection::GetCorrScaleFactor() const
static Double_tAliTPCCorrection::GetCorrSector(Double_t sector, Double_t r, Double_t kZ, Int_t axisType, Int_t corrType = 0)
static Double_tAliTPCCorrection::GetCorrXYZ(Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType = 0)
static Double_tAliTPCCorrection::GetCorrXYZDz(Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType = 0, Double_t delta = 5)
static Double_tAliTPCCorrection::GetCorrXYZIntegrateZ(Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType = 0, Double_t delta = 5)
virtual voidAliTPCCorrection::GetDistortion(const Float_t* x, Short_t roc, Float_t* dx)
virtual voidAliTPCCorrection::GetDistortionDz(const Float_t* x, Short_t roc, Float_t* dx, Float_t delta)
virtual voidAliTPCCorrection::GetDistortionIntegralDz(const Float_t* x, Short_t roc, Float_t* dx, Float_t delta)
static Double_tAliTPCCorrection::GetDistXYZ(Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType = 0)
static Double_tAliTPCCorrection::GetDistXYZDz(Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType = 0, Double_t delta = 5)
static Double_tAliTPCCorrection::GetDistXYZIntegrateZ(Double_t gx, Double_t gy, Double_t gz, Int_t axisType, Int_t corrType = 0, Double_t delta = 5)
virtual Option_t*TObject::GetDrawOption() const
Float_tGetdRPhiOffsetA() const
Float_tGetdRPhiOffsetC() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Float_tGetRotPhiA() const
Float_tGetRotPhiC() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
static AliTPCCorrection*AliTPCCorrection::GetVisualCorrection(Int_t position)
Float_tGetXShift() const
Float_tGetYShift() const
Float_tGetZShift() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidAliTPCCorrection::Init()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
static voidAliTPCCorrection::MakeDistortionMap(THnSparse* his0, TTreeSRedirector* pcstream, const char* hname, Int_t run, Float_t refX, Int_t type, Int_t integ = 1)
static voidAliTPCCorrection::MakeDistortionMapCosmic(THnSparse* his0, TTreeSRedirector* pcstream, const char* hname, Int_t run, Float_t refX, Int_t type)
static voidAliTPCCorrection::MakeDistortionMapSector(THnSparse* his0, TTreeSRedirector* pcstream, const char* hname, Int_t run, Int_t type)
static voidAliTPCCorrection::MakeLaserDistortionTree(TTree* tree, TObjArray* corrArray, Int_t itype)
static voidAliTPCCorrection::MakeLaserDistortionTreeOld(TTree* tree, TObjArray* corrArray, Int_t itype)
static voidAliTPCCorrection::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 voidAliTPCCorrection::MakeTrackDistortionTree(TTree* tinput, Int_t dtype, Int_t ptype, const TObjArray* corrArray, Int_t step = 1, Int_t offset = 0, Bool_t debug = 0)
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSetAlignGlobal(const TGeoMatrix* matrixGlobal)
voidSetAlignGlobalDelta(const TGeoMatrix* matrixGlobalDelta)
voidSetAlignSectors(const TObjArray* arraySector)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidAliTPCCorrection::SetCorrScaleFactor(Float_t)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
voidSetdRPhiOffsetA(Float_t dRPhiOffsetA)
voidSetdRPhiOffsetC(Float_t dRPhiOffsetC)
static voidTObject::SetDtorOnly(void* obj)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidAliTPCCorrection::SetOmegaTauT1T2(Float_t omegaTau, Float_t t1, Float_t t2)
voidSetQuadranAlign(const TVectorD* quadrantQ0, const TVectorD* quadrantRQ0, const TVectorD* quadrantQ1, const TVectorD* quadrantRQ1, const TVectorD* quadrantQ2, const TVectorD* quadrantRQ2)
voidSetRotPhiA(Float_t rotPhiA)
voidSetRotPhiC(Float_t rotPhiC)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetXShift(Float_t xShift)
voidSetYShift(Float_t yShift)
voidSetZShift(Float_t zShift)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
voidAliTPCCorrection::StoreInOCDB(Int_t startRun, Int_t endRun, const char* comment = 0)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidAliTPCCorrection::Update(const TTimeStamp& timeStamp)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
TH2F*AliTPCCorrection::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)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
virtual voidGetCorrection(const Float_t* x, const Short_t roc, Float_t* dx)
Double_tAliTPCCorrection::Interpolate(const Double_t* xArray, const Double_t* yArray, Int_t order, Double_t x)
Float_tAliTPCCorrection::Interpolate(const Double_t* xArray, const Float_t* yArray, Int_t order, Double_t x)
voidAliTPCCorrection::Interpolate2DEdistortion(Int_t order, Double_t r, Double_t z, const Double_t er[][kNR], Double_t& erValue)
Double_tAliTPCCorrection::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)
Float_tAliTPCCorrection::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)
voidAliTPCCorrection::Interpolate3DEdistortion(Int_t order, Double_t r, Float_t phi, Double_t z, const Double_t er[][kNPhi][kNR], const Double_t ephi[][kNPhi][kNR], const Double_t ez[][kNPhi][kNR], Double_t& erValue, Double_t& ephiValue, Double_t& ezValue)
Double_tAliTPCCorrection::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)
Float_tAliTPCCorrection::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)
Bool_tAliTPCCorrection::IsLocal() const
virtual Int_tAliTPCCorrection::IsPowerOfTwo(Int_t i) const
voidTObject::MakeZombie()
voidAliTPCCorrection::PoissonRelaxation2D(TMatrixD& arrayV, TMatrixD& chargeDensity, TMatrixD& arrayErOverEz, TMatrixD& arrayDeltaEz, Int_t rows, Int_t columns, Int_t iterations, Bool_t rocDisplacement = kTRUE)
voidAliTPCCorrection::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)
voidAliTPCCorrection::Search(Int_t n, const Double_t* xArray, Double_t x, Int_t& low)
voidAliTPCCorrection::SetIsLocal(Bool_t isLocal)

Data Members

public:
enum AliTPCCorrection::CompositionType { kParallel
kQueue
};
enum AliTPCCorrection::[unnamed] { kNR
kNPhi
kNZ
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Int_tAliTPCCorrection::fILow
Bool_tAliTPCCorrection::fIsLocalswitch to indicate that the distortion is a local vector drphi/dz, dr/dz
Int_tAliTPCCorrection::fJLow
Int_tAliTPCCorrection::fKLowvariable to help in the interpolation
TStringTNamed::fNameobject identifier
Double_tAliTPCCorrection::fT1tensor term of wt - T1
Double_tAliTPCCorrection::fT2tensor term of wt - T2
TStringTNamed::fTitleobject title
static TObjArray*AliTPCCorrection::fgVisualCorrectionarray of orrection for visualization
static const Double_tAliTPCCorrection::fgkCathodeVCathode Voltage (volts)
static const Double_tAliTPCCorrection::fgkEMcharge/mass in [C/kg]
static const Double_tAliTPCCorrection::fgkGGGating Grid voltage (volts)
static const Double_tAliTPCCorrection::fgkIFCRadiusMean Radius of the Inner Field Cage ( 82.43 min, 83.70 max) (cm)
static const Double_tAliTPCCorrection::fgkOFCRadiusMean Radius of the Outer Field Cage (252.55 min, 256.45 max) (cm)
Double_tAliTPCCorrection::fgkPhiList[181]points in the phi direction (for the lookup table)
Double_tAliTPCCorrection::fgkRList[72]points in the radial direction (for the lookup table)
static const Double_tAliTPCCorrection::fgkTPCZ0nominal gating grid position
Double_tAliTPCCorrection::fgkZList[166]points in the z direction (for the lookup table)
static const Double_tAliTPCCorrection::fgkZOffSetOffset from CE: calculate all distortions closer to CE as if at this point
static const Double_tAliTPCCorrection::fgkdvdE[cm/V] drift velocity dependency on the E field (from Magboltz for NeCO2N2 at standard environment)
static const Double_tAliTPCCorrection::fgke0vacuum permittivity [A·s/(V·m)]
private:
TObjArray*fArraySectorlocal Alignmnet Sector
TGeoMatrix*fMatrixGlobalglobal Alignment common
TGeoMatrix*fMatrixGlobalDeltaglobal Alignment common A side-C side
TVectorD*fQuadrantQ0OROC medium pads -delta ly+ - ly - shift (cm)
TVectorD*fQuadrantQ1OROC long pads -delta ly+ - ly - shift
TVectorD*fQuadrantQ2OROC long pads -shift
TVectorD*fQuadrantRQ0OROC medium pads -delta ly+ - ly - rotation (rad)
TVectorD*fQuadrantRQ1OROC long pads -delta ly+ - ly - rotation
TVectorD*fQuadrantRQ2OROC long pads -rotation
Float_tfRotPhiAsimple rotation of A side read-out plane around the Z axis [rad]
Float_tfRotPhiCsimple rotation of C side read-out plane around the Z axis [rad]
Float_tfXShiftShift in global X [cm]
Float_tfYShiftShift in global Y [cm]
Float_tfZShiftShift in global Z [cm]
Float_tfdRPhiOffsetAadd a constant offset of dRPhi (or local Y) in [cm]: purely for calibration purposes!
Float_tfdRPhiOffsetCadd a constant offset of dRPhi (or local Y) in [cm]: purely for calibration purposes!

Class Charts

Inheritance Chart:
TNamed
AliTPCCorrection
AliTPCCalibGlobalMisalignment

Function documentation

AliTPCCalibGlobalMisalignment()
 default constructor

~AliTPCCalibGlobalMisalignment()
 destructor

void SetQuadranAlign(const TVectorD* quadrantQ0, const TVectorD* quadrantRQ0, const TVectorD* quadrantQ1, const TVectorD* quadrantRQ1, const TVectorD* quadrantQ2, const TVectorD* quadrantRQ2)
 Set quadrant alignment
 6 vectors for 36 (super) sectors

void SetAlignGlobal(const TGeoMatrix* matrixGlobal)
 Set global misalignment
 Object is OWNER

void SetAlignGlobalDelta(const TGeoMatrix* matrixGlobalDelta)
 Set global misalignment
 Object is OWNER

void SetAlignSectors(const TObjArray* arraySector)
 Set misalignment TObjArray of TGeoMatrices  - for each sector
 Object is OWNER

void GetCorrection(const Float_t* x, const Short_t roc, Float_t* dx)
 Calculates the simple correction due to a shift (in x,y,z) or an rotation of the TPC (around z)

void Print(Option_t* option = "") const
 Print function to check the settings

void AddAlign(const AliTPCCalibGlobalMisalignment& add)
 Add the alignmnet to current object

AliTPCCalibGlobalMisalignment * CreateOCDBAlign()
 Create  AliTPCCalibGlobalMisalignment from OCDB Alignment entry
 OCDB has to be initialized before in user code
 All storages (defualt and specific)  and run number

AliTPCCalibGlobalMisalignment * CreateMeanAlign(const AliTPCCalibGlobalMisalignment* alignIn)
 Create new object, disantangle common mean alignmnet and sector alignment

 1. Try to get mean alignment
 2. Remove mean alignment from sector alignment
 3. Create new object

void DumpAlignment(AliTPCCalibGlobalMisalignment* align, TTreeSRedirector* pcstream, const char* name)
 Dump alignment per sector into tree

AliTPCCalibGlobalMisalignment()
void SetXShift(Float_t xShift)
 setters and getters for misalignments
{fXShift=xShift;}
void SetYShift(Float_t yShift)
{fYShift=yShift;}
void SetZShift(Float_t zShift)
{fZShift=zShift;}
void SetRotPhiA(Float_t rotPhiA)
{fRotPhiA=rotPhiA;}
void SetRotPhiC(Float_t rotPhiC)
{fRotPhiC=rotPhiC;}
void SetdRPhiOffsetA(Float_t dRPhiOffsetA)
{fdRPhiOffsetA=dRPhiOffsetA;}
void SetdRPhiOffsetC(Float_t dRPhiOffsetC)
{fdRPhiOffsetC=dRPhiOffsetC;}
Float_t GetXShift() const
{return fXShift;}
Float_t GetYShift() const
{return fYShift;}
Float_t GetZShift() const
{return fZShift;}
Float_t GetRotPhiA() const
{return fRotPhiA;}
Float_t GetRotPhiC() const
{return fRotPhiC;}
Float_t GetdRPhiOffsetA() const
{return fdRPhiOffsetA;}
Float_t GetdRPhiOffsetC() const
{return fdRPhiOffsetC;}
TGeoMatrix* GetAlignGlobal() const
{return fMatrixGlobal;}
TGeoMatrix* GetAlignGlobalDelta() const
TObjArray * GetAlignSectors() const
{return fArraySector;}
AliTPCCalibGlobalMisalignment& operator=(const AliTPCCalibGlobalMisalignment& )