ROOT logo
AliRoot » STEER » STEERBASE » AliMagWrapCheb

class AliMagWrapCheb: public TNamed

Function Members (Methods)

public:
AliMagWrapCheb()
AliMagWrapCheb(const AliMagWrapCheb& src)
AliMagWrapCheb(const char* inputFile)
virtual~AliMagWrapCheb()
voidTObject::AbstractMethod(const char* method) const
voidAddParamDip(const AliCheb3D* param)
voidAddParamSol(const AliCheb3D* param)
voidAddParamTPCInt(const AliCheb3D* param)
voidAddParamTPCRatInt(const AliCheb3D* param)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
voidBuildTable(Int_t npar, TObjArray* parArr, Int_t& nZSeg, Int_t& nYSeg, Int_t& nXSeg, Float_t& minZ, Float_t& maxZ, Float_t** segZ, Float_t** segY, Float_t** segX, Int_t** begSegY, Int_t** nSegY, Int_t** begSegX, Int_t** nSegX, Int_t** segID)
voidBuildTableDip()
voidBuildTableSol()
voidBuildTableTPCInt()
voidBuildTableTPCRatInt()
static voidCartToCyl(const Double_t* xyz, Double_t* rphiz)
static voidCartToCylCartB(const Double_t* xyz, const Double_t* bxyz, Double_t* brphiz)
static voidCartToCylCylB(const Double_t* rphiz, const Double_t* bxyz, Double_t* brphiz)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
voidCopyFrom(const AliMagWrapCheb& src)
static voidCylToCart(const Double_t* rphiz, Double_t* xyz)
static voidCylToCartCartB(const Double_t* xyz, const Double_t* brphiz, Double_t* bxyz)
static voidCylToCartCylB(const Double_t* rphiz, const Double_t* brphiz, Double_t* bxyz)
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
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 voidField(const Double_t* xyz, Double_t* b) const
voidFieldCyl(const Double_t* rphiz, Double_t* b) const
virtual voidTNamed::FillBuffer(char*& buffer)
Int_tFindDipSegment(const Double_t* xyz) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_tFindSolSegment(const Double_t* xyz) const
Int_tFindTPCRatSegment(const Double_t* xyz) const
Int_tFindTPCSegment(const Double_t* xyz) const
Double_tGetBz(const Double_t* xyz) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
Float_tGetMaxRSol() const
Float_tGetMaxRTPCInt() const
Float_tGetMaxRTPCRatInt() const
Float_tGetMaxZ() const
Float_tGetMaxZDip() const
Float_tGetMaxZSol() const
Float_tGetMaxZTPCInt() const
Float_tGetMaxZTPCRatInt() const
Float_tGetMinZ() const
Float_tGetMinZDip() const
Float_tGetMinZSol() const
Float_tGetMinZTPCInt() const
Float_tGetMinZTPCRatInt() const
virtual const char*TNamed::GetName() const
Int_tGetNParamsDip() const
Int_tGetNParamsSol() const
Int_tGetNParamsTPCInt() const
Int_tGetNParamsTPCRatInt() const
Int_tGetNSegZDip() const
Int_tGetNSegZSol() const
Int_tGetNSegZTPCInt() const
Int_tGetNSegZTPCRatInt() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
AliCheb3D*GetParamDip(Int_t ipar) const
AliCheb3D*GetParamSol(Int_t ipar) const
AliCheb3D*GetParamTPCInt(Int_t ipar) const
AliCheb3D*GetParamTPCRatInt(Int_t ipar) const
Float_t*GetSegZSol() const
virtual const char*TNamed::GetTitle() const
voidGetTPCInt(const Double_t* xyz, Double_t* b) const
voidGetTPCIntCyl(const Double_t* rphiz, Double_t* b) const
voidGetTPCRatInt(const Double_t* xyz, Double_t* b) const
voidGetTPCRatIntCyl(const Double_t* rphiz, Double_t* b) const
virtual UInt_tTObject::GetUniqueID() 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 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
voidLoadData(const char* inpfile)
virtual voidTNamed::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)
AliMagWrapCheb&operator=(const AliMagWrapCheb& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
voidResetDip()
voidResetSol()
voidResetTPCInt()
voidResetTPCRatInt()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
voidSaveData(const char* outfile) const
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
Int_tSegmentDimension(Float_t** seg, const TObjArray* par, int npar, int dim, Float_t xmn, Float_t xmx, Float_t ymn, Float_t ymx, Float_t zmn, Float_t zmx)
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)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
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 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
voidFieldCylSol(const Double_t* rphiz, Double_t* b) const
Double_tFieldCylSolBz(const Double_t* rphiz) const
voidTObject::MakeZombie()

Data Members

protected:
Int_t*fBegSegPSol[fNPSegSol] beginning of P segments array for each Z segment
Int_t*fBegSegPTPC[fNPSegTPC] beginning of P segments array for each Z segment
Int_t*fBegSegPTPCRat[fNPSegTPCRat] beginning of P segments array for each Z segment
Int_t*fBegSegRSol[fNPSegSol] beginning of R segments array for each P segment
Int_t*fBegSegRTPC[fNPSegTPC] beginning of R segments array for each P segment
Int_t*fBegSegRTPCRat[fNPSegTPCRat] beginning of R segments array for each P segment
Int_t*fBegSegXDip[fNYSegDip] beginning of X segments array for each Y segment
Int_t*fBegSegYDip[fNZSegDip] beginning of Y segments array for each Z segment
AliCheb3D*fCacheDip! last used dipole patch
AliCheb3D*fCacheSol! last used solenoid patch
AliCheb3D*fCacheTPCInt! last used patch for TPC integral
AliCheb3D*fCacheTPCRat! last used patch for TPC normalized integral
Float_tfMaxRSolmax raduis for Solenoid field
Float_tfMaxRTPCmax raduis for Solenoid field integral in TPC
Float_tfMaxRTPCRatmax raduis for Solenoid field ratios integral in TPC
Float_tfMaxZDipMax Z of Dipole parameterization
Float_tfMaxZSolMax Z of Solenoid parameterization
Float_tfMaxZTPCMax Z of TPCint parameterization
Float_tfMaxZTPCRatMax Z of TpcRatInt parameterization
Float_tfMinZDipMin Z of Dipole parameterization
Float_tfMinZSolMin Z of Solenoid parameterization
Float_tfMinZTPCMin Z of TPCint parameterization
Float_tfMinZTPCRatMin Z of TpcRatInt parameterization
Int_tfNPSegSolnumber of distinct P segments in Solenoid
Int_tfNPSegTPCnumber of distinct P segments in TPCint
Int_tfNPSegTPCRatnumber of distinct P segments in TpcRatInt
Int_tfNParamsDipTotal number of parameterization pieces for dipole
Int_tfNParamsSolTotal number of parameterization pieces for solenoid
Int_tfNParamsTPCTotal number of parameterization pieces for TPCint
Int_tfNParamsTPCRatTotal number of parameterization pieces for tr.field to Bz integrals in TPC region
Int_tfNRSegSolnumber of distinct R segments in Solenoid
Int_tfNRSegTPCnumber of distinct R segments in TPCint
Int_tfNRSegTPCRatnumber of distinct R segments in TpcRatInt
Int_t*fNSegPSol[fNZSegSol] number of P segments for each Z segment
Int_t*fNSegPTPC[fNZSegTPC] number of P segments for each Z segment
Int_t*fNSegPTPCRat[fNZSegTPCRat] number of P segments for each Z segment
Int_t*fNSegRSol[fNPSegSol] number of R segments for each P segment
Int_t*fNSegRTPC[fNPSegTPC] number of R segments for each P segment
Int_t*fNSegRTPCRat[fNPSegTPCRat] number of R segments for each P segment
Int_t*fNSegXDip[fNYSegDip] number of X segments for each Y segment
Int_t*fNSegYDip[fNZSegDip] number of Y segments for each Z segment
Int_tfNXSegDipnumber of distinct X segments in Dipole
Int_tfNYSegDipnumber of distinct Y segments in Dipole
Int_tfNZSegDipnumber of distinct Z segments in Dipole
Int_tfNZSegSolnumber of distinct Z segments in Solenoid
Int_tfNZSegTPCnumber of distinct Z segments in TPCint
Int_tfNZSegTPCRatnumber of distinct Z segments in TpcRatInt
TStringTNamed::fNameobject identifier
TObjArray*fParamsDipParameterization pieces for Dipole field
TObjArray*fParamsSolParameterization pieces for Solenoid field
TObjArray*fParamsTPCParameterization pieces for TPCint field
TObjArray*fParamsTPCRatParameterization pieces for TpcRatInt field
Int_t*fSegIDDip[fNXSegDip] ID of the dipole parameterization for given XYZ segment
Int_t*fSegIDSol[fNRSegSol] ID of the solenoid parameterization for given RPZ segment
Int_t*fSegIDTPC[fNRSegTPC] ID of the TPCint parameterization for given RPZ segment
Int_t*fSegIDTPCRat[fNRSegTPCRat] ID of the TpcRatInt parameterization for given RPZ segment
Float_t*fSegPSol[fNPSegSol] coordinated of P segments for each Zsegment in Solenoid
Float_t*fSegPTPC[fNPSegTPC] coordinated of P segments for each Zsegment in TPCint
Float_t*fSegPTPCRat[fNPSegTPCRat] coordinated of P segments for each Zsegment in TpcRatInt
Float_t*fSegRSol[fNRSegSol] coordinated of R segments for each Psegment in Solenoid
Float_t*fSegRTPC[fNRSegTPC] coordinated of R segments for each Psegment in TPCint
Float_t*fSegRTPCRat[fNRSegTPCRat] coordinated of R segments for each Psegment in TpcRatInt
Float_t*fSegXDip[fNXSegDip] coordinated of X segments for each Ysegment in Dipole
Float_t*fSegYDip[fNYSegDip] coordinated of Y segments for each Zsegment in Dipole
Float_t*fSegZDip[fNZSegDip] coordinates of distinct Z segments in Dipole
Float_t*fSegZSol[fNZSegSol] coordinates of distinct Z segments in Solenoid
Float_t*fSegZTPC[fNZSegTPC] coordinates of distinct Z segments in TPCint
Float_t*fSegZTPCRat[fNZSegTPCRat] coordinates of distinct Z segments in TpcRatInt
TStringTNamed::fTitleobject title

Class Charts

Inheritance Chart:
TNamed
AliMagWrapCheb

Function documentation

AliMagWrapCheb()




 default constructor
AliMagWrapCheb(const AliMagWrapCheb& src)



 copy constructor
void CopyFrom(const AliMagWrapCheb& src)
 copy method
AliMagWrapCheb& operator=(const AliMagWrapCheb& rhs)
 assignment
void Clear(Option_t* = "")
 clear all dynamic parts
void Field(const Double_t* xyz, Double_t* b) const
 compute field in cartesian coordinates. If point is outside of the parameterized region
 get it at closest valid point
Double_t GetBz(const Double_t* xyz) const
 compute Bz for the point in cartesian coordinates. If point is outside of the parameterized region
 get it at closest valid point
void Print(Option_t* = "") const
 print info
Int_t FindDipSegment(const Double_t* xyz) const
 find the segment containing point xyz. If it is outside find the closest segment
Int_t FindSolSegment(const Double_t* xyz) const
 find the segment containing point xyz. If it is outside find the closest segment
Int_t FindTPCSegment(const Double_t* xyz) const
 find the segment containing point xyz. If it is outside find the closest segment
Int_t FindTPCRatSegment(const Double_t* xyz) const
 find the segment containing point xyz. If it is outside find the closest segment
void GetTPCInt(const Double_t* xyz, Double_t* b) const
 compute TPC region field integral in cartesian coordinates.
 If point is outside of the parameterized region get it at closeset valid point
void GetTPCRatInt(const Double_t* xyz, Double_t* b) const
 compute TPCRat region field integral in cartesian coordinates.
 If point is outside of the parameterized region get it at closeset valid point
void FieldCylSol(const Double_t* rphiz, Double_t* b) const
 compute Solenoid field in Cylindircal coordinates
 note: if the point is outside the volume get the field in closest parameterized point
Double_t FieldCylSolBz(const Double_t* rphiz) const
 compute Solenoid field in Cylindircal coordinates
 note: if the point is outside the volume get the field in closest parameterized point
void GetTPCIntCyl(const Double_t* rphiz, Double_t* b) const
 compute field integral in TPC region in Cylindircal coordinates
 note: the check for the point being inside the parameterized region is done outside

void GetTPCRatIntCyl(const Double_t* rphiz, Double_t* b) const
 compute field integral in TPCRat region in Cylindircal coordinates
 note: the check for the point being inside the parameterized region is done outside

void LoadData(const char* inpfile)
 read coefficients data from the text file

void BuildTableSol()
 build lookup table
void BuildTableDip()
 build lookup table
void BuildTableTPCInt()
 build lookup table
void BuildTableTPCRatInt()
 build lookup table
AliMagWrapCheb(const char* inputFile)



 construct from coeffs from the text file
void AddParamSol(const AliCheb3D* param)
 adds new parameterization piece for Sol
 NOTE: pieces must be added strictly in increasing R then increasing Z order

void AddParamTPCInt(const AliCheb3D* param)
 adds new parameterization piece for TPCInt
 NOTE: pieces must be added strictly in increasing R then increasing Z order

void AddParamTPCRatInt(const AliCheb3D* param)
 adds new parameterization piece for TPCRatInt
 NOTE: pieces must be added strictly in increasing R then increasing Z order

void AddParamDip(const AliCheb3D* param)
 adds new parameterization piece for Dipole

void ResetDip()
 clean Dip field (used for update)
void ResetSol()
 clean Sol field (used for update)
void ResetTPCInt()
 clean TPC field integral (used for update)
void ResetTPCRatInt()
 clean TPCRat field integral (used for update)
void BuildTable(Int_t npar, TObjArray* parArr, Int_t& nZSeg, Int_t& nYSeg, Int_t& nXSeg, Float_t& minZ, Float_t& maxZ, Float_t** segZ, Float_t** segY, Float_t** segX, Int_t** begSegY, Int_t** nSegY, Int_t** begSegX, Int_t** nSegX, Int_t** segID)
 build lookup table for dipole

void SaveData(const char* outfile) const
 writes coefficients data to output text file
Int_t SegmentDimension(Float_t** seg, const TObjArray* par, int npar, int dim, Float_t xmn, Float_t xmx, Float_t ymn, Float_t ymx, Float_t zmn, Float_t zmx)
 find all boundaries in deimension dim for boxes in given region.
 if mn>mx for given projection the check is not done for it.
void FieldCyl(const Double_t* rphiz, Double_t* b) const
void CylToCartCylB(const Double_t* rphiz, const Double_t* brphiz, Double_t* bxyz)
void CylToCartCartB(const Double_t* xyz, const Double_t* brphiz, Double_t* bxyz)
void CartToCylCartB(const Double_t* xyz, const Double_t* bxyz, Double_t* brphiz)
void CartToCylCylB(const Double_t* rphiz, const Double_t* bxyz, Double_t* brphiz)
void CartToCyl(const Double_t* xyz, Double_t* rphiz)
void CylToCart(const Double_t* rphiz, Double_t* xyz)
~AliMagWrapCheb()
{Clear();}
Int_t GetNParamsSol() const
{return fNParamsSol;}
Int_t GetNSegZSol() const
{return fNZSegSol;}
Float_t* GetSegZSol() const
{return fSegZSol;}
Int_t GetNParamsTPCInt() const
{return fNParamsTPC;}
Int_t GetNSegZTPCInt() const
{return fNZSegTPC;}
Int_t GetNParamsTPCRatInt() const
{return fNParamsTPCRat;}
Int_t GetNSegZTPCRatInt() const
{return fNZSegTPCRat;}
Int_t GetNParamsDip() const
{return fNParamsDip;}
Int_t GetNSegZDip() const
{return fNZSegDip;}
Float_t GetMaxZ() const
{return GetMaxZSol();}
Float_t GetMinZ() const
{return fParamsDip ? GetMinZDip() : GetMinZSol();}
Float_t GetMinZSol() const
{return fMinZSol;}
Float_t GetMaxZSol() const
{return fMaxZSol;}
Float_t GetMaxRSol() const
{return fMaxRSol;}
Float_t GetMinZDip() const
{return fMinZDip;}
Float_t GetMaxZDip() const
{return fMaxZDip;}
Float_t GetMinZTPCInt() const
{return fMinZTPC;}
Float_t GetMaxZTPCInt() const
{return fMaxZTPC;}
Float_t GetMaxRTPCInt() const
{return fMaxRTPC;}
Float_t GetMinZTPCRatInt() const
{return fMinZTPCRat;}
Float_t GetMaxZTPCRatInt() const
{return fMaxZTPCRat;}
Float_t GetMaxRTPCRatInt() const
{return fMaxRTPCRat;}
AliCheb3D* GetParamSol(Int_t ipar) const
{return (AliCheb3D*)fParamsSol->UncheckedAt(ipar);}
AliCheb3D* GetParamTPCRatInt(Int_t ipar) const
{return (AliCheb3D*)fParamsTPCRat->UncheckedAt(ipar);}
AliCheb3D* GetParamTPCInt(Int_t ipar) const
{return (AliCheb3D*)fParamsTPC->UncheckedAt(ipar);}
AliCheb3D* GetParamDip(Int_t ipar) const
{return (AliCheb3D*)fParamsDip->UncheckedAt(ipar);}