ROOT logo
AliRoot » STEER » STEER » AliAlignmentTracks

class AliAlignmentTracks: public TObject

   Implementation of the alignment steering class
   It provides an access to the track space points
   written along the esd tracks. The class enables
   the user to plug any track fitter (deriving from
   AliTrackFitter class) and minimization fo the
   track residual sums (deriving from the AliTrackResiduals).

Function Members (Methods)

public:
AliAlignmentTracks()
AliAlignmentTracks(TChain* esdchain)
AliAlignmentTracks(const char* esdfilename, const char* esdtreename = "esdTree")
virtual~AliAlignmentTracks()
voidTObject::AbstractMethod(const char* method) const
voidAddESD(TChain* esdchain)
voidAddESD(const char* esdfilename, const char* esdtreename = "esdTree")
Bool_tAlignDetector(AliGeomManager::ELayerID firstLayer, AliGeomManager::ELayerID lastLayer, AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer, AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer, Int_t iterations = 1)
Bool_tAlignLayer(AliGeomManager::ELayerID layer, AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer, AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer, Int_t iterations = 1)
Bool_tAlignVolume(UShort_t volId, UShort_t volIdFit, Int_t iterations)
Bool_tAlignVolumes(const TArrayI* volids, const TArrayI* volidsfit = 0x0, AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer, AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer, Int_t iterations = 1)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
voidBuildIndex()
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 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
AliAlignObj*GetAlignObj(UShort_t volid) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
Int_tGetLastIndex(Int_t iLayer, Int_t iModule) 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
Bool_tGetUpdate() 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
Bool_tMisalign(const char* misalignObjFileName, const char* arrayName)
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
voidProcessESD(TSelector* selector)
voidProcessESD(Bool_t onlyITS = kFALSE, Int_t minITSpts = 0, Bool_t cuts = kTRUE, Float_t minAngleWrtITSModulePlanes = 0., Float_t minMom = 0.3, Float_t maxMom = 1.e9, Float_t minAbsSinPhi = 0., Float_t maxAbsSinPhi = 1., Float_t minSinTheta = 0., Float_t maxSinTheta = 1.)
voidProcessESDCosmics(Bool_t onlyITS = kFALSE, Int_t minITSpts = 0, Float_t maxMatchingAngle = 0.17, Bool_t cuts = kTRUE, Float_t minAngleWrtITSModulePlanes = 0., Float_t minMom = 0.3, Float_t maxMom = 1.e9, Float_t minAbsSinPhi = 0., Float_t maxAbsSinPhi = 1., Float_t minSinTheta = 0., Float_t maxSinTheta = 1.)
virtual Int_tTObject::Read(const char* name)
Bool_tReadAlignObjs(const char* alignObjFileName = "AlignObjs.root", const char* arrayName = "Alignment")
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)
voidSetCovIsUsed(Bool_t covisused)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetMinimizer(AliTrackResiduals* minimizer)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPointsFilename(const char* pointsfilename = "AliTrackPoints.root")
voidSetTrackFitter(AliTrackFitter* fitter)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetUpdate(Bool_t update)
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
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
voidWriteRealignObjArray(TString outfilename, AliGeomManager::ELayerID layerRangeMin, AliGeomManager::ELayerID layerRangeMax)
protected:
AliTrackFitter*CreateFitter()
AliTrackResiduals*CreateMinimizer()
voidDeleteAlignObjs()
voidDeleteIndex()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidInitAlignObjs()
voidInitIndex()
Int_tLoadPoints(const TArrayI* volids, AliTrackPointArray**& points, Int_t& pointsdim)
voidTObject::MakeZombie()
voidResetAlignObjs()
voidResetIndex()
voidUnloadPoints(Int_t n, AliTrackPointArray** points)

Data Members

protected:
AliAlignObj***fAlignObjsArray with alignment objects
TArrayI***fArrayIndex! Volume arrays which contains the tree index
Bool_tfCovIsUsedIndicator - use AlignObjs' Cov matrices
Bool_tfDoUpdateIndicator - update Alignment object after minimization
TChain*fESDChain! Chain with ESDs
Bool_tfIsIndexBuiltIs points tree index built
Int_t**fLastIndex! Last filled index in volume arrays
AliTrackResiduals*fMinimizerPointer to track residuals minimizer
AliAlignObj***fMisalignObjsArray with alignment objects used to introduce misalignment of the space-points
TFile*fPointsFileFile containing the track point arrays
TStringfPointsFilenameName of the file containing the track point arrays
TTree*fPointsTreeTree with the track point arrays
AliTrackFitter*fTrackFitterPointer to the track fitter

Class Charts

Inheritance Chart:
TObject
AliAlignmentTracks
AliITSRealignTracks

Function documentation

AliAlignmentTracks()
 Default constructor
AliAlignmentTracks(TChain* esdchain)
 Constructor in the case
 the user provides an already
 built TChain with ESD trees
AliAlignmentTracks(const char* esdfilename, const char* esdtreename = "esdTree")
 Constructor in the case
 the user provides a single ESD file
 or a directory containing ESD files
~AliAlignmentTracks()
 Destructor
void AddESD(TChain* esdchain)
 Add a chain with ESD files
void AddESD(const char* esdfilename, const char* esdtreename = "esdTree")
 Add a single file or
 a directory to the chain
 with the ESD files
void ProcessESD(Bool_t onlyITS = kFALSE, Int_t minITSpts = 0, Bool_t cuts = kTRUE, Float_t minAngleWrtITSModulePlanes = 0., Float_t minMom = 0.3, Float_t maxMom = 1.e9, Float_t minAbsSinPhi = 0., Float_t maxAbsSinPhi = 1., Float_t minSinTheta = 0., Float_t maxSinTheta = 1.)
 Analyzes and filters ESD tracks
 Stores the selected track space points
 into the output file
void ProcessESDCosmics(Bool_t onlyITS = kFALSE, Int_t minITSpts = 0, Float_t maxMatchingAngle = 0.17, Bool_t cuts = kTRUE, Float_t minAngleWrtITSModulePlanes = 0., Float_t minMom = 0.3, Float_t maxMom = 1.e9, Float_t minAbsSinPhi = 0., Float_t maxAbsSinPhi = 1., Float_t minSinTheta = 0., Float_t maxSinTheta = 1.)
 Analyzes and filters ESD tracks
 Merges inward and outward tracks in one single track
 Stores the selected track space points
 into the output file
void ProcessESD(TSelector* selector)
void BuildIndex()
 Build index of points tree entries
 Used for access based on the volume IDs
void InitIndex()
 Initialize the index arrays
void ResetIndex()
 Reset the value of the last filled index
 Do not realocate memory
void DeleteIndex()
 Delete the index arrays
 Called by the destructor
Bool_t ReadAlignObjs(const char* alignObjFileName = "AlignObjs.root", const char* arrayName = "Alignment")
 Read alignment object from a file: update the alignobj already present with the one in the file
 To be replaced by a call to CDB
void InitAlignObjs()
 Initialize the alignment objects array
void ResetAlignObjs()
 Reset the alignment objects array
void DeleteAlignObjs()
 Delete the alignment objects array
Bool_t AlignDetector(AliGeomManager::ELayerID firstLayer, AliGeomManager::ELayerID lastLayer, AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer, AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer, Int_t iterations = 1)
 Align detector volumes within
 a given layer range
 (could be whole detector).
 Tracks are fitted only within
 the range defined by the user.
Bool_t AlignLayer(AliGeomManager::ELayerID layer, AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer, AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer, Int_t iterations = 1)
 Align detector volumes within
 a given layer.
 Tracks are fitted only within
 the range defined by the user.
Bool_t AlignVolume(UShort_t volId, UShort_t volIdFit, Int_t iterations)
 Align single detector volume to
 another volume.
 Tracks are fitted only within
 the second volume.
Bool_t AlignVolumes(const TArrayI* volids, const TArrayI* volidsfit = 0x0, AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer, AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer, Int_t iterations = 1)
 Align a set of detector volumes.
 Tracks are fitted only within
 the range defined by the user
 (by layerRangeMin and layerRangeMax)
 or within the set of volidsfit
 Repeat the procedure 'iterations' times
Int_t LoadPoints(const TArrayI* volids, AliTrackPointArray**& points, Int_t& pointsdim)
 Load track point arrays with at least
 one space point in a given set of detector
 volumes (array volids).
 Use the already created tree index for
 fast access.
void UnloadPoints(Int_t n, AliTrackPointArray** points)
 Unload track point arrays for a given
 detector volume
AliTrackFitter * CreateFitter()
 Check if the user has already supplied
 a track fitter object.
 If not, create a default one.
AliTrackResiduals * CreateMinimizer()
 Check if the user has already supplied
 a track residuals minimizer object.
 If not, create a default one.
Bool_t Misalign(const char* misalignObjFileName, const char* arrayName)
 The method reads from a file a set of AliAlignObj which are
 then used to apply misalignments directly on the track
 space-points. The method is supposed to be used only for
 fast development and debugging of the alignment algorithms.
 Be careful not to use it in the case of 'real' alignment
 scenario since it will bias the results.
void WriteRealignObjArray(TString outfilename, AliGeomManager::ELayerID layerRangeMin, AliGeomManager::ELayerID layerRangeMax)
AliAlignmentTracks()
void SetPointsFilename(const char* pointsfilename = "AliTrackPoints.root")
{ fPointsFilename = pointsfilename; }
void SetTrackFitter(AliTrackFitter* fitter)
{ fTrackFitter = fitter; }
void SetMinimizer(AliTrackResiduals* minimizer)
{ fMinimizer = minimizer; }
AliAlignObj* GetAlignObj(UShort_t volid) const
void SetUpdate(Bool_t update)
{fDoUpdate = update;}
void SetCovIsUsed(Bool_t covisused)
{fCovIsUsed=covisused;}
Bool_t GetUpdate() const
{ return fDoUpdate;}
Int_t GetLastIndex(Int_t iLayer, Int_t iModule) const
{ return fLastIndex[iLayer][iModule]; }
AliAlignmentTracks& operator=(const AliAlignmentTracks& alignment)