ROOT logo
AliRoot » MUON » AliMUONSurveyObj

class AliMUONSurveyObj: public TObject

 \class AliMUONSurveyObj
 Base class for the survey processing of the ALICE DiMuon spectrometer

 This base object provides methods to process the survey+photogrammetry
 data of the Chambers (frames) and Detection Elements of the DiMuon
 Spectrometer and calculate their misalignments.

 \author Javier Castillo

Function Members (Methods)

 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.

public:
virtual~AliMUONSurveyObj()
voidTObject::AbstractMethod(const char* method) const
voidAddGButtonTarget(AliSurveyPoint* btPoint)
virtual Int_tAddGButtonTargets(TString btBaseName, Int_t lTargetMax = 9)
virtual Int_tAddGButtonTargets(TObjArray* pArray, TString btBaseName, Int_t lTargetMax = 9)
voidAddLButtonTarget(AliSurveyPoint* btPoint)
voidAddLButtonTarget(TVector3* btVector)
virtual Int_tAddLButtonTargets(TObjArray* pArray, TString btBaseName, Int_t lTargetMax = 9)
voidAddStickerTarget(AliSurveyPoint* stPoint)
virtual Int_tAddStickerTargets(TString stBaseName, Int_t lTargetMax = 9)
virtual Int_tAddStickerTargets(TObjArray* pArray, TString stBaseName, Int_t lTargetMax = 9)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
Int_tCalculateBestTransf(Int_t iP1, Int_t iP2, Double_t* lXYZ, Double_t* lPTP)
Double_tCalculateGlobalDiff(TGeoCombiTrans& lTransf, Int_t nPoints, TArrayD& lDiff)
voidCalculateMeanTransf(Double_t* lXYZ, Double_t* lPTP)
voidCalculateTranslation(TF2* xFunc, TF2* yFunc, TF2* zFunc, Int_t iP1, Int_t iP2, Double_t* lCenTemp)
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
AliSurveyPoint*ConvertPointUnits(AliSurveyPoint* stPoint, Float_t lFactor = 0.1)
virtual voidTObject::Copy(TObject& object) const
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
voidDrawSTargets()
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
Double_tEvalFunction(const TF2* lFunction, Int_t iP1, Int_t iP2, const Char_t* lCoord)
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
voidFillSTHistograms(TString baseNameC, TH2* hSTc, TString baseNameA = "", TH2* hSTa = 0)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tFitPlane()
Double_tGetAlignResX()
Double_tGetAlignResY()
TGeoCombiTrans*GetAlignTrf() const
TGeoCombiTrans*GetBaseTrf() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
TFitter*GetFitter() const
AliSurveyPoint*GetGButtonTarget(Int_t btIndex)
virtual const char*TObject::GetIconName() const
AliSurveyPoint*GetLButtonTarget(Int_t btIndex)
TGeoCombiTrans*GetLocalTrf() const
virtual const char*TObject::GetName() const
Int_tGetNGButtonTargets()
Int_tGetNLButtonTargets()
Int_tGetNStickerTargets()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TF2*GetPlane() const
AliSurveyPoint*GetStickerTarget(Int_t stIndex)
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Bool_tGetUseCM() 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)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual voidPrintAlignTrf()
virtual voidPrintLocalTrf()
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 = "")
voidSetBaseTransformation(TGeoCombiTrans* baseTrf, Bool_t ownerBaseTrf = kFALSE)
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 voidSetLocalTransformation(TGeoCombiTrans* localTrf, Bool_t ownerLocalTrf = kFALSE)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPlane(TString pName, Double_t xMin = -2000., Double_t xMax = +2000., Double_t yMin = -2000., Double_t yMax = 2000.)
voidSetPlaneParameters(Double_t p0, Double_t p1, Double_t p2)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetUseCM(Bool_t bUseCM = kTRUE)
voidSetXMax(Double_t xMax)
voidSetXMin(Double_t xMin)
voidSetYMax(Double_t yMax)
voidSetYMin(Double_t yMin)
voidSetZMax(Double_t zMax)
voidSetZMin(Double_t zMin)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
Double_tSurveyChi2(Double_t* par)
Int_tSurveyToAlign(Double_t psi = 0., Double_t tht = 0., Double_t epsi = 0., Double_t etht = 0.)
Int_tSurveyToAlign(TGeoCombiTrans& quadTransf, Double_t* parErr, Double_t psi = 0., Double_t tht = 0., Double_t epsi = 0., Double_t etht = 0.)
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
voidTObject::MakeZombie()
private:
Double_tEqPlane(const Double_t* x, const Double_t* par) const
AliMUONSurveyObj&operator=(const AliMUONSurveyObj& right)

Data Members

private:
TGeoCombiTrans*fAlignTrf/< Local alignment transformation
TGeoCombiTrans*fBaseTrf/< Base Transformation
TFitter*fFitter/< Fitter for best local to global transformation
TObjArray*fGBTargets/< Array of AliSurveyPoint of Button Targets
TObjArray*fLBTargets/< Array of TVector3 or AliSurveyPoint of local position of Button Targets
TGeoCombiTrans*fLocalTrf/< Local transformation
Bool_tfOwnerAlignTrf/< Flag for owner of fAlignTrf
Bool_tfOwnerBaseTrf/< Flag for owner of fBaseTrf
Bool_tfOwnerLocalTrf/< Flag for owner of fLocalTrf
TF2*fPlane/< TF2 for plane fitting
TObjArray*fSTargets/< Array of AliSurveyPoint of Sticker Targets
Bool_tfUseCM/< Use centimeters, survey units are mm but aliroot uses cm
Double_tfXMax/< xMax for functions fitting
Double_tfXMin/< xMin for functions fitting
Double_tfYMax/< yMax for functions fitting
Double_tfYMin/< yMin for functions fitting
Double_tfZMax/< zMax for functions fitting
Double_tfZMin/< zMin for functions fitting

Class Charts

Inheritance Chart:
TObject
AliMUONSurveyObj
AliMUONSurveyChamber
AliMUONSurveyDetElem

Function documentation

~AliMUONSurveyObj()
 Destructor
void AddStickerTarget(AliSurveyPoint* stPoint)
 Add sticker target
void AddGButtonTarget(AliSurveyPoint* btPoint)
 Add global button target
void AddLButtonTarget(AliSurveyPoint* btPoint)
 Add local button target target; AliSurveyPoint
void AddLButtonTarget(TVector3* btVector)
 Add local button target target; TVector3
Int_t AddStickerTargets(TObjArray* pArray, TString stBaseName, Int_t lTargetMax = 9)
 Add a maximum of lTargetMax sticker targets with stBaseName from pArray
Int_t AddGButtonTargets(TObjArray* pArray, TString btBaseName, Int_t lTargetMax = 9)
 Add a maximum of lTargetMax global button targets with stBaseName from pArray
Int_t AddLButtonTargets(TObjArray* pArray, TString btBaseName, Int_t lTargetMax = 9)
 Add a maximum of lTargetMax local button targets with stBaseName from pArray
Int_t GetNStickerTargets()
 return number of sticker targets
AliSurveyPoint* GetStickerTarget(Int_t stIndex)
 return sticker target at stIndex
Int_t GetNGButtonTargets()
 return number of global button targets
AliSurveyPoint* GetGButtonTarget(Int_t btIndex)
 return global button target at btIndex
Int_t GetNLButtonTargets()
 return number of local button targets
AliSurveyPoint* GetLButtonTarget(Int_t btIndex)
 return local button target at btIndex
void SetPlane(TString pName, Double_t xMin = -2000., Double_t xMax = +2000., Double_t yMin = -2000., Double_t yMax = 2000.)
 Set the plane function for the plane fitting
void SetPlaneParameters(Double_t p0, Double_t p1, Double_t p2)
 Set the parameters of plane function for the plane fitting
void DrawSTargets()
 Draw a graph of the sticker targets
Double_t FitPlane()
 Fit plane to sticker targets
Double_t SurveyChi2(Double_t* par)
 Returns the chisquare between local2global transform of local button targets and their surveyed position
Int_t SurveyToAlign(TGeoCombiTrans& quadTransf, Double_t* parErr, Double_t psi = 0., Double_t tht = 0., Double_t epsi = 0., Double_t etht = 0.)
 Main function to obtain the misalignments from the surveyed position of the button targets;
Int_t SurveyToAlign(Double_t psi = 0., Double_t tht = 0., Double_t epsi = 0., Double_t etht = 0.)
 Main function to obtain the misalignments from the surveyed position of the button targets;
Double_t EvalFunction(const TF2* lFunction, Int_t iP1, Int_t iP2, const Char_t* lCoord)
 Evaluate the given function at the given points for the given coordinate
void CalculateTranslation(TF2* xFunc, TF2* yFunc, TF2* zFunc, Int_t iP1, Int_t iP2, Double_t* lCenTemp)
 Calculate the center translation using analytic functions
Double_t CalculateGlobalDiff(TGeoCombiTrans& lTransf, Int_t nPoints, TArrayD& lDiff)
 By hand computation of distance between local2global transform of target position and its surveyed position
Int_t CalculateBestTransf(Int_t iP1, Int_t iP2, Double_t* lXYZ, Double_t* lPTP)
 By hand calculation of the best local to global transform using 2 button targets
void CalculateMeanTransf(Double_t* lXYZ, Double_t* lPTP)
 By hand calculation of the mean (for nPairs of targets) of the best local to global transform using 2 button targets
void PrintLocalTrf()
 Print the local transformation
void PrintAlignTrf()
 Print the alignment transformation
void FillSTHistograms(TString baseNameC, TH2* hSTc, TString baseNameA = "", TH2* hSTa = 0)
 Fill sticker target histograms for monitoring
Double_t GetAlignResX()
 Returns the uncertainty of the x translation parameter
Double_t GetAlignResY()
 Returns the uncertainty of the y translation parameter
AliSurveyPoint* ConvertPointUnits(AliSurveyPoint* stPoint, Float_t lFactor = 0.1)
 Return the AliSurveyPoint with new units. Default is from mm -> cm
Int_t AddStickerTargets(TObjArray* pArray, TString stBaseName, Int_t lTargetMax = 9)
Int_t AddGButtonTargets(TObjArray* pArray, TString btBaseName, Int_t lTargetMax = 9)
void SetBaseTransformation(TGeoCombiTrans* baseTrf, Bool_t ownerBaseTrf = kFALSE)
 Set transformation of geoemtrical element
void SetLocalTransformation(TGeoCombiTrans* localTrf, Bool_t ownerLocalTrf = kFALSE)
 Set local transformation of geometrical element
TGeoCombiTrans* GetLocalTrf() const
 Returns the local transformation
{return fLocalTrf;}
TGeoCombiTrans* GetBaseTrf() const
 Returns the base (global) transformation
{return fBaseTrf;}
TGeoCombiTrans* GetAlignTrf() const
 Returns the alignment transformation
{return fAlignTrf;}
void SetUseCM(Bool_t bUseCM = kTRUE)
 Define wether to work in mm (survey units) or cm (alice units)
{fUseCM = bUseCM;}
Bool_t GetUseCM() const
 Indicates if working in mm (survey units) or cm (alice units)
{return fUseCM;}
TF2* GetPlane() const
 Returns the plane (TF2) representing the object
{return fPlane;}
TFitter* GetFitter() const
 Returns the TFitter used for the best local to global transformation determination
{return fFitter;}
void SetXMin(Double_t xMin)
 Set xMin for functions fitting
{fXMin = xMin;}
void SetXMax(Double_t xMax)
 Set xMax for functions fitting
{fXMax = xMax;}
void SetYMin(Double_t yMin)
 Set yMin for functions fitting
{fYMin = yMin;}
void SetYMax(Double_t yMax)
 Set yMax for functions fitting
{fYMax = yMax;}
void SetZMin(Double_t zMin)
 Set zMin for functions fitting
{fZMin = zMin;}
void SetZMax(Double_t zMax)
 Set zMax for functions fitting
{fZMax = zMax;}
Double_t EqPlane(const Double_t* x, const Double_t* par) const
 Plane equation