ROOT logo
AliRoot » TPC » BASE » AliTPCExBExact

class AliTPCExBExact: public AliTPCExB

Function Members (Methods)

public:
AliTPCExBExact()
AliTPCExBExact(const AliMagF* bField, Double_t driftVelocity, Int_t n = 100, Int_t nx = 30, Int_t ny = 30, Int_t nz = 100)
virtual~AliTPCExBExact()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidCorrect(const Double_t* position, Double_t* corrected)
virtual voidAliTPCExB::CorrectInverse(const Double_t* position, Double_t* corrected)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
Double_tAliTPCExB::Eval(Int_t type, Double_t r, Double_t phi, Double_t z)
static Double_tAliTPCExB::EvalMat(const TVectorD& vec, Double_t r, Double_t phi, Double_t z)
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)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
static Double_tAliTPCExB::GetBr(Double_t r, Double_t phi, Double_t z, Int_t index = 0)
static Double_tAliTPCExB::GetBrfi(Double_t r, Double_t phi, Double_t z, Int_t index = 0)
static Double_tAliTPCExB::GetBrfiI(Double_t r, Double_t phi, Double_t z, Int_t index = 0)
static Double_tAliTPCExB::GetBrI(Double_t r, Double_t phi, Double_t z, Int_t index = 0)
static Double_tAliTPCExB::GetBx(Double_t r, Double_t phi, Double_t z, Int_t index = 0)
static Double_tAliTPCExB::GetBxI(Double_t r, Double_t phi, Double_t z, Int_t index = 0)
static Double_tAliTPCExB::GetBy(Double_t r, Double_t phi, Double_t z, Int_t index = 0)
static Double_tAliTPCExB::GetByI(Double_t r, Double_t phi, Double_t z, Int_t index = 0)
static Double_tAliTPCExB::GetBz(Double_t r, Double_t phi, Double_t z, Int_t index = 0)
static Double_tAliTPCExB::GetBzI(Double_t r, Double_t phi, Double_t z, Int_t index = 0)
static Double_tAliTPCExB::GetDphi(Double_t r, Double_t phi, Double_t z, Double_t bz = 5)
static Double_tAliTPCExB::GetDr(Double_t r, Double_t phi, Double_t z, Double_t bz = 5)
virtual Option_t*TObject::GetDrawOption() const
static Double_tAliTPCExB::GetDrphi(Double_t r, Double_t phi, Double_t z, Double_t bz = 5)
static Long_tTObject::GetDtorOnly()
static Double_tAliTPCExB::GetDz(Double_t r, Double_t phi, Double_t z, Double_t bz = 5)
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::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 voidTObject::Inspect() constMENU
static AliTPCExB*AliTPCExB::Instance()
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_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
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 voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
static voidAliTPCExB::RegisterField(Int_t index, AliMagF* magf)
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 = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidAliTPCExB::SetInstance(AliTPCExB *const param)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
Double_tAliTPCExB::SEval(Int_t type, Double_t r, Double_t phi, Double_t z)
virtual voidShowMembers(TMemberInspector&)
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
voidAliTPCExB::TestExB(const char* fileName)
voidTestThisBeautifulObject(const AliMagF* bField, const char* fileName)
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:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
AliTPCExBExact(const AliTPCExBExact&)
voidCalculateDistortion(const Double_t* x, Double_t* dist) const
voidCreateLookupTable()
voidDGLStep(Double_t* x, Double_t t, Double_t h) const
voidGetB(Double_t* b, const Double_t* x) const
voidGetE(Double_t* e, const Double_t* x) const
voidMotion(const Double_t* x, Double_t t, Double_t* dxdt) const
AliTPCExBExact&operator=(const AliTPCExBExact&)
voidTestThisBeautifulObjectGeneric(const char* fileName)

Data Members

protected:
Double_tfDriftVelocityThe electron drift velocity.
private:
static const Double_tfgkDriftField! the TPC drift field (V/m) (modulus)
static const Double_tfgkEM! elementary charge over electron mass (C/kg)
const AliMagF*fkField! the magnetic field as supplied by the user
Double_t*fkLook[fkNLook] the great lookup table
Int_tfkNmax number of integration steps
Int_tfkNLooksize of the lookup table
Int_tfkNXfield mesh points in x direction
Int_tfkNYfield mesh points in y direction
Int_tfkNZfield mesh points in z direction
Double_tfkXMaxthe last grid point in x direction
Double_tfkXMinthe first grid point in x direction
Double_tfkYMaxthe last grid point in y direction
Double_tfkYMinthe first grid point in y direction
Double_tfkZMaxthe last grid point in z direction
Double_tfkZMinthe first grid point in z direction

Class Charts

Inheritance Chart:
TObject
AliTPCExB
AliTPCExBExact

Function documentation

AliTPCExBExact()
fkMap(0),

 purely for I/O

AliTPCExBExact(const AliMagF* bField, Double_t driftVelocity, Int_t n = 100, Int_t nx = 30, Int_t ny = 30, Int_t nz = 100)
fkMap(0),

 The constructor. One has to supply a magnetic field and an (initial)
 drift velocity. Since some kind of lookuptable is created the
 number of its meshpoints can be supplied.
 n sets the number of integration steps to be used when integrating
 over the full drift length.

~AliTPCExBExact()
 destruct the poor object.

void Correct(const Double_t* position, Double_t* corrected)
 correct for the distortion

void TestThisBeautifulObject(const AliMagF* bField, const char* fileName)
 Have a look at the common part "TestThisBeautifulObjectGeneric".

fkMap=0;
void TestThisBeautifulObjectGeneric(const char* fileName)
 Well, as the name sais... it tests the object.

void CreateLookupTable()
 Helper function to fill the lookup table.

void GetE(Double_t* e, const Double_t* x) const
 Helper function returning the E field in SI units (V/m).

void GetB(Double_t* b, const Double_t* x) const
 Helper function returning the B field in SI units (T).

void Motion(const Double_t* x, Double_t t, Double_t* dxdt) const
 The differential equation of motion of the electrons.

void CalculateDistortion(const Double_t* x, Double_t* dist) const
 Helper function that calculates one distortion by integration
 (only used to fill the lookup table).

void DGLStep(Double_t* x, Double_t t, Double_t h) const
 An elementary integration step.
 (simple Euler Method)

AliTPCExBExact()
AliTPCExBExact(const AliMagF *bFieldMap,Double_t driftVelocity,Int_t n=100);
AliTPCExBExact& operator=(const AliTPCExBExact& )