ROOT logo
AliRoot » FMD » AliFMDSurveyToAlignObjs

class AliFMDSurveyToAlignObjs: public AliSurveyToAlignObjs

Function Members (Methods)

public:
AliFMDSurveyToAlignObjs()
AliFMDSurveyToAlignObjs(const AliFMDSurveyToAlignObjs&)
~AliFMDSurveyToAlignObjs()
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 Bool_tCreateAlignObjs()
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
TClonesArray*GetAlignObjArray() const
TClonesArray*AliSurveyToAlignObjs::GetAlignObjsArray()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
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
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
Bool_tAliSurveyToAlignObjs::LoadSurveyFromAlienFile(const char* det, Int_t repNum, Int_t repVersion)
Bool_tAliSurveyToAlignObjs::LoadSurveyFromLocalFile(const char* filename)
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)
AliFMDSurveyToAlignObjs&operator=(const AliFMDSurveyToAlignObjs&)
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)
voidTObject::ResetBit(UInt_t f)
virtual voidRun()
voidRun(const char** files)
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 voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
Bool_tAliSurveyToAlignObjs::StoreAlignObjToCDB(const char* cdbFolder, const char* det)
Bool_tAliSurveyToAlignObjs::StoreAlignObjToFile(const char* filename, const char* det)
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:
Bool_tCalculatePlane(const TVector3& a, const TVector3& b, const TVector3& c, Double_t depth, Double_t* trans, Double_t* rot) const
AliAlignObjParams*CreateDefaultAlignObj(const TString& path, Int_t id = 0)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Bool_tDoFMD1()
Bool_tDoFMD2()
Bool_tFillDefaultAlignObjs()
AliAlignObjParams*FindAlignObj(const TString& path) const
Bool_tFitPlane(const TObjArray& points, const TObjArray& errors, Double_t depth, Double_t* trans, Double_t* rot) const
Bool_tGetFMD1Plane(Double_t* rot, Double_t* trans) const
Bool_tGetFMD2Plane(Double_t* rot, Double_t* trans) const
Bool_tGetPoint(const char* name, TVector3& p, TVector3& e) const
Double_tGetUnitFactor() const
Bool_tMakeDelta(const TGeoMatrix* global, const Double_t* rot, const Double_t* trans, TGeoHMatrix& delta) const
Bool_tMakeDelta(const char* path, const Double_t* rot, const Double_t* trans, TGeoHMatrix& delta) const
voidTObject::MakeZombie()
static voidPrintRotation(const char* text, const Double_t* rot)
static voidPrintVector(const char* text, const Double_t* v)
static voidPrintVector(const char* text, const TVector3& v)

Data Members

protected:
AliAlignObjParams*AliSurveyToAlignObjs::fAlignObjalignment object
TClonesArray*AliSurveyToAlignObjs::fAlignObjArrayTClonesArray of alignment objects
TGeoHMatrixfFMD1DeltaFMD1 delta transform
TGeoHMatrixfFMD2DeltaFMD2 delta transform
AliSurveyObj*AliSurveyToAlignObjs::fSurveyObjsurvey object
TObjArray*AliSurveyToAlignObjs::fSurveyPointsarray of survey points

Class Charts

Inheritance Chart:
TObject
AliSurveyToAlignObjs
AliFMDSurveyToAlignObjs

Function documentation

GetUnitFactor() const
 Returns the conversion factor from the measured values to
 centimeters.
GetPoint(const char* name, TVector3& p, TVector3& e) const
 Get named point.   On return, point will contain the point
 coordinates in centimeters, and error will contain the
 meassurement errors in centimeters too.  If no point is found,
 returns false, otherwise true.
CalculatePlane(const TVector3& a, const TVector3& b, const TVector3& c, Double_t depth, Double_t* trans, Double_t* rot) const
 Calculate the plane translation and rotation from 3 survey points

 Parameters:
    a     1st Survey point
    b     2nd Survey point
    c     3rd Survey point
    trans Translation vector
    rot   Rotation matrix (direction cosines)

 Return:


FitPlane(const TObjArray& points, const TObjArray& errors, Double_t depth, Double_t* trans, Double_t* rot) const
 Calculate the plane rotation and translation by doing a fit of
 the plane equation to the surveyed points.  At least 4 points
 must be passed in the @a points array with corresponding errors
 in the array @a errors.  The arrays are assumed to contain
 TVector3 objects.

 Parameters:
    points Array surveyed positions
    errors Array of errors corresponding to @a points
    depth  Survey targets depth (perpendicular to the plane)
    trans  On return, translation of the plane
    rot    On return, rotation (direction cosines) of the plane

 Return:
    @c true on success, @c false otherwise

MakeDelta(const char* path, const Double_t* rot, const Double_t* trans, TGeoHMatrix& delta) const
 Create a delta transform from a global rotation matrix and
 translation.

 Parameters:
    path   Path of element to transform.
    rot    Rotation matrix (direction cosines)
    trans  Translation
    delta  On return, the delta transform

 Return:
    Newly

MakeDelta(const TGeoMatrix* global, const Double_t* rot, const Double_t* trans, TGeoHMatrix& delta) const
 Create a delta transform from a global rotation matrix and
 translation.

 Parameters:
    global Global matrix of element to transform.
    rot    Rotation matrix (direction cosines)
    trans  Translation
    delta  On return, the delta transform

 Return:
    Newly

GetFMD1Plane(Double_t* rot, Double_t* trans) const
 Get the FMD1 plane from the survey points

 Parameters:
    rot    Rotation matrix (direction cosines)
    trans  Translation

 Return:
    @c true on success, @c false otherwise.

DoFMD1()
 Do the FMD1 analysis.  We have 4 survey targets on V0-A on the
 C-side.  These are

  - V0A_ICT  In-side, C-side, top.
  - V0A_ICB  In-side, C-side, bottom.
  - V0A_OCT  Out-side, C-side, top.
  - V0A_OCB	 Out-side, C-side, bottom.

 These 4 survey targets sit 3.3mm over the V0-A C-side surface, or
 3.3mm over the back surface of FMD1.

 Since these are really sitting on a plane, we can use the method
 proposed by the CORE offline.

 Return:
    @c true on success, @c false otherwise.

GetFMD2Plane(Double_t* rot, Double_t* trans) const
 Get the surveyed plane corresponding to the backside of FMD2.
 The plane is done as a best fit of the plane equation to at least
 4 of the available survey points.

 Parameters:
    rot    Rotation matrix (direction cosines)
    trans  Translation vector.

 Return:
    @c true on success, @c false otherwise

DoFMD2()
 Do the FMD2 calculations.  We have 6 survey points of which only
 5 are normally surveyed.  These are all sittings

  - FMD2_ITOP   - In-side, top
  - FMD2_IBOTM  - In-side, middle bottom
  - FMD2_IBOT   - In-side, bottom
  - FMD2_OTOP   - Out-side, top
  - FMD2_OBOTM  - Out-side, middle bottom
  - FMD2_OBOT   - Out-side, bottom

 The nominal coordinates of these retro-fitted survey stickers
 isn't known.  Also, these stickers are put on a thin (0.3mm
 thick) carbon cover which flexes quite easily.  This means, that
 to rotations and xy-translation obtained from the survey data
 cannot be used, and left is only the z-translation.

 Further more, since FMD2 to is attached to the ITS SPD thermal
 screen, it is questionable if the FMD2 survey will ever be used.

 Return:
    @c true on success, @c false otherwise.

Run()
 Run the task.


Run(const char** files)
 Run the task.


CreateDefaultAlignObj(const TString& path, Int_t id = 0)
FindAlignObj(const TString& path) const
FillDefaultAlignObjs()
CreateAlignObjs()

 Method to create the alignment objects

 Return:
    @c true on success, @c false otherwise

PrintVector(const char* text, const TVector3& v)
 Service member function to print a vector

 Parameters:
    text Prefix text
    v    Vector

PrintVector(const char* text, const Double_t* v)
 Service member function to print a vector

 Parameters:
    text Prefix text
    v    Vector (array of 3 doubles)

PrintRotation(const char* text, const Double_t* rot)
 Service member function to print a rotation matrix

 Parameters:
    text Prefix text
    v    Matrix (array of 9 doubles)

AliFMDSurveyToAlignObjs()
   * Constructor
   *

{}
TClonesArray* GetAlignObjArray() const
{ return fAlignObjArray; }