ROOT logo
AliRoot » TRD » AliTRDalignment

class AliTRDalignment: public TObject

Function Members (Methods)

public:
AliTRDalignment()
AliTRDalignment(const AliTRDalignment& source)
virtual~AliTRDalignment()
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
Bool_tDecodeSurveyPointName(TString pna, Int_t& sm, Int_t& iz, Int_t& ir, Int_t& iphi)
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 TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
voidGetCh(int ch, double *const a) const
intGetChIndex(const char* name)
char*GetChName(int ch) const
doubleGetChRMS(int xyz) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
intGetLay(int ch) const
intGetMod(int ch) 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
intGetPla(int ch) const
intGetSec(int ch) const
voidGetSm(int sm, double *const a) const
intGetSmIndex(const char* name)
char*GetSmName(int sm) const
doubleGetSmRMS(int xyz) const
intGetSta(int ch) const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
UShort_tGetVoi(int ch) 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
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)
AliTRDalignment&operator*=(double fac)
AliTRDalignment&operator+=(const AliTRDalignment& source)
AliTRDalignment&operator-=(const AliTRDalignment& source)
AliTRDalignment&operator=(const AliTRDalignment& source)
Bool_toperator==(const AliTRDalignment& source) const
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
voidPrint(FILE *const fp = stdout) const
virtual voidPrint(Option_t*) const
voidPrintCh(FILE *const fp = stdout) const
voidPrintCh(int ch, FILE *const fp = stdout) const
voidPrintChRMS() const
voidPrintRMS() const
voidPrintSm(FILE *const fp = stdout) const
voidPrintSm(int sm, FILE *const fp = stdout) const
voidPrintSmRMS() const
virtual Int_tTObject::Read(const char* name)
voidReadAny(const char *const filename)
voidReadAscii(const char *const filename)
voidReadCurrentGeo()
voidReadDB(const char *const filename)
voidReadDB(const char *const db, const char *const path, int run, int version = -1, int subversion = -1)
voidReadRoot(const char *const filename)
voidReadSurveyReport(const char *const filename)
voidReadSurveyReport(const AliSurveyObj *const so)
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 = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCh(int ch, const double* a)
voidSetChFull()
voidSetChRandom(double* a)
voidSetChResidual()
voidSetChZero()
voidSetComment(char* s)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetFull()
voidSetIdeal()
static voidTObject::SetObjectStat(Bool_t stat)
voidSetResidual()
voidSetSm(int sm, const double* a)
voidSetSmFull()
voidSetSmRandom(double* a)
voidSetSmResidual()
voidSetSmZero()
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetZero()
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
doubleSurveyChi2(const double *const a)
doubleSurveyChi2(int i, const double *const a)
voidSurveyToAlignment(const char *const flag)
voidSurveyToAlignment(int i, const char *const flag)
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
voidWriteAscii(const char *const filename) const
voidWriteDB(char *const db, const char *const pa, int r0, int r1)
voidWriteDB(const char *const fina, int r0, int r1, int v, int s)
voidWriteGeo(char* filename)
voidWriteRoot(const char *const filename)
protected:
voidArToNumbers(TClonesArray *const ar)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
intIsGeoLoaded()
voidTObject::MakeZombie()
voidNumbersToAr(TClonesArray *const ar)

Data Members

protected:
doublefCh[540][6]chamber data
TObjStringfCommentinfo concerning origin of the data etc.
doublefDbuffer[1000]generic buffer for misc. operations
intfIbuffer[1000]generic buffer for misc. operations
TRandomfRanrandom generator for fake alignment data
doublefSm[18][6]supermodule data
doublefSurveyEX[18][2][2][2]supermodule survey point X error
doublefSurveyEY[18][2][2][2]supermodule survey point Y error
doublefSurveyEZ[18][2][2][2]supermodule survey point Z error
doublefSurveyX[18][2][2][2]supermodule survey point X
doublefSurveyX0[2][2][2]ideal X position of the survey marks
doublefSurveyY[18][2][2][2]supermodule survey point Y
doublefSurveyY0[2][2][2]ideal Y position of the survey marks
doublefSurveyZ[18][2][2][2]supermodule survey point Z
doublefSurveyZ0[2][2][2]ideal Z position of the survey marks

Class Charts

Inheritance Chart:
TObject
AliTRDalignment

Function documentation

AliTRDalignment()
 constructor

AliTRDalignment(const AliTRDalignment& source)
 copy constructor

AliTRDalignment& operator=(const AliTRDalignment& source)
 assignment operator

AliTRDalignment& operator*=(double fac)
 multiplication operator

AliTRDalignment& operator+=(const AliTRDalignment& source)
 addition operator

AliTRDalignment& operator-=(const AliTRDalignment& source)
 subtraction operator

Bool_t operator==(const AliTRDalignment& source) const
 comparison operator

void SetSmZero()
 reset to zero supermodule data

void SetChZero()
 reset to zero chamber data

void SetSmRandom(double* a)
 generate random gaussian supermodule data with sigmas a

void SetChRandom(double* a)
 generate random gaussian chamber data with sigmas a

void SetSmFull()
 generate random gaussian supermodule data similar to the misalignment
 expected from the mechanical precision

void SetChFull()
 generate random gaussian chamber data similar to the misalignment
 expected from the mechanical precision

void SetSmResidual()
 generate random gaussian supermodule data similar to the misalignment
 remaining after full calibration
 I assume that it will be negligible

void SetChResidual()
 generate random gaussian chamber data similar to the misalignment
 remaining after full calibration

void PrintSm(int sm, FILE *const fp = stdout) const
 print the supermodule data

void PrintCh(int ch, FILE *const fp = stdout) const
 print the chamber data

void ReadAscii(const char *const filename)
 read the alignment data from ascii file

void ReadCurrentGeo()
 use currently loaded geometry to determine misalignment by comparing
 original and misaligned matrix of the last node
 Now, original, does not mean "ideal". It is the matrix before the alignment.
 So, if alignment was applied more than once, the numbers extracted will
 represent just the last alignment. -- check this!

void ReadRoot(const char *const filename)
 read the alignment data from root file

void ReadDB(const char *const filename)
 read the alignment data from database file

void ReadDB(const char *const db, const char *const path, int run, int version = -1, int subversion = -1)
 read the alignment data from database

Bool_t DecodeSurveyPointName(TString pna, Int_t& sm, Int_t& iz, Int_t& ir, Int_t& iphi)
 decode the survey point name and extract the sm, z, r and phi indices
void ReadSurveyReport(const char *const filename)
 Read survey report and store the numbers in fSurveyX, fSurveyY, fSurveyZ,
 and fSurveyE.  Store the survey info in the fComment.
 Each supermodule has 8 survey points. The point names look like
 TRD_sm08ah0 and have the following meaning.

 sm00..17 mean supermodule 0 through 17, following the phi.
 Supermodule 00 is between phi=0 and phi=20 degrees.

 a or c denotes the anticlockwise and clockwise end of the supermodule
 in z. Clockwise end is where z is negative and where the muon arm sits.

 l or h denote low radius and high radius holes

 0 or 1 denote the hole at smaller and at larger phi, respectively.

void ReadSurveyReport(const AliSurveyObj *const so)
 Read survey report and store the numbers in fSurveyX, fSurveyY, fSurveyZ,
 and fSurveyE.  Store the survey info in the fComment.
 Each supermodule has 8 survey points. The point names look like
 TRD_sm08ah0 and have the following meaning.

 sm00..17 mean supermodule 0 through 17, following the phi.
 Supermodule 00 is between phi=0 and phi=20 degrees.

 a or c denotes the anticlockwise and clockwise end of the supermodule
 in z. Clockwise end is where z is negative and where the muon arm sits.

 l or h denote low radius and high radius holes

 0 or 1 denote the hole at smaller and at larger phi, respectively.

double SurveyChi2(int i, const double *const a)
void SurveyToAlignment(int i, const char *const flag)
void ReadAny(const char *const filename)
 read the alignment data from any kind of file

void WriteAscii(const char *const filename) const
 store the alignment data on ascii file

void WriteRoot(const char *const filename)
 store the alignment data on root file

void WriteDB(const char *const fina, int r0, int r1, int v, int s)
 dumping on a DB-like file

void WriteDB(char *const db, const char *const pa, int r0, int r1)
 store the alignment data in database

void WriteGeo(char* filename)
 apply misalignment to current geometry and store the
 resulting geometry on a root file

double GetSmRMS(int xyz) const
 rms fSm[][xyz]

double GetChRMS(int xyz) const
 rms fCh[][xyz]

void PrintSmRMS() const
 dump rms of fSm

void PrintChRMS() const
 dump rms of fCh

void ArToNumbers(TClonesArray *const ar)
 for each of the alignment objects in array ar extract the six local
 alignment parameters; recognize by name to which supermodule or chamber
 the alignment object pertains; set the respective fSm or fCh

void NumbersToAr(TClonesArray *const ar)
 build array of AliAlignObj objects based on fSm and fCh data
 at the same time, apply misalignment to the currently loaded geometry
 it is important to apply misalignment of supermodules before creating
 alignment objects for chambers

int IsGeoLoaded()
 check whether a geometry is loaded
 issue a warning if geometry is not ideal

virtual ~AliTRDalignment()
{}
void SetSm(int sm, const double* a)
{for (int i = 0; i < 6; i++) fSm[sm][i] = a[i];}
void SetCh(int ch, const double* a)
{for (int i = 0; i < 6; i++) fCh[ch][i] = a[i];}
void SetZero()
void SetIdeal()
{SetZero();}
void SetFull()
void SetResidual()
void SetComment(char* s)
{fComment.SetString(s);}
void GetSm(int sm, double *const a) const
 simple getters (for other getters see below)
{for (int i = 0; i < 6; i++) a[i] = fSm[sm][i];}
void GetCh(int ch, double *const a) const
{for (int i = 0; i < 6; i++) a[i] = fCh[ch][i];}
void PrintSm(int sm, FILE *const fp = stdout) const
 dumping on screen
void PrintCh(int ch, FILE *const fp = stdout) const
void Print(FILE *const fp = stdout) const
{PrintSm(fp); PrintCh(fp); }
void Print(Option_t* ) const
{Print(); }
int GetSec(int ch) const
 geometry and symbolic names getters
 phi-sector number of chamber ch, 0-17
{return ch/30;}
int GetSta(int ch) const
 stack number, 0-4
{return ch%30/6;}
int GetPla(int ch) const
 plane number, 0-5
{return ch%30%6;}
int GetMod(int ch) const
 module number, 0-89
{return 5*GetSec(ch)+GetSta(ch);}
int GetLay(int ch) const
 layer number, 9-14
{return AliGeomManager::kTRD1+GetPla(ch);}
UShort_t GetVoi(int ch) const
 volume id
char * GetSmName(int sm) const
 symbolic name of a supermodule
{return Form("TRD/sm%02d",sm);}
char * GetChName(int ch) const
 symbolic name of a chamber
{return Form("TRD/sm%02d/st%d/pl%d",GetSec(ch),GetSta(ch),GetPla(ch));}
int GetSmIndex(const char* name)
 index of a supermodule
{for (int i=0; i<18; i++) if (strcmp(name,GetSmName(i))==0) return i; return -1;}
int GetChIndex(const char* name)
 index of a chamber
{for (int i=0; i<540; i++) if (strcmp(name,GetChName(i))==0) return i; return -1;}
void PrintRMS() const
double SurveyChi2(int i, const double *const a)
void SurveyToAlignment(int i, const char *const flag)