ROOT logo
AliRoot » TPC » REC » AliTPCTracklet

class AliTPCTracklet: public TObject

Function Members (Methods)

public:
AliTPCTracklet()
AliTPCTracklet(const AliTPCTracklet& t)
AliTPCTracklet(const AliTPCseed* s, Int_t sector, AliTPCTracklet::TrackType type = kKalman, Bool_t storeClusters = kFALSE)
AliTPCTracklet(const TObjArray& clusters, Int_t sector, AliTPCTracklet::TrackType type = kKalman, Bool_t storeClusters = kFALSE)
virtual~AliTPCTracklet()
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
static TObjArrayCreateTracklets(const TObjArray& clusters, AliTPCTracklet::TrackType type = kKalman, Bool_t storeClusters = kFALSE, Int_t minClusters = 0, Int_t maxTracklets = 72)
static TObjArrayCreateTracklets(const AliTPCseed* s, AliTPCTracklet::TrackType type = kKalman, Bool_t storeClusters = kFALSE, Int_t minClusters = 0, Int_t maxTracklets = 72)
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
static TEllipseErrorEllipse(Double_t x, Double_t y, Double_t sx, Double_t sy, Double_t sxy)
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
AliTPCclusterMI*GetClusters() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
AliExternalTrackParam*GetInner() const
virtual const char*TObject::GetName() const
Int_tGetNClusters() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
AliExternalTrackParam*GetOuter() const
AliExternalTrackParam*GetPrimary() const
Int_tGetSector() 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
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)
AliTPCTracklet&operator=(const AliTPCTracklet& t)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
static Bool_tPropagateToMeanX(const AliTPCTracklet& t1, const AliTPCTracklet& t2, AliExternalTrackParam*& t1m, AliExternalTrackParam*& t2m)
static voidRandomND(Int_t ndim, const Double_t* p, const Double_t* c, Double_t* x)
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 = "")
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 voidSetEdgeCut(Float_t edgeX, Float_t edgeY)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
static voidTest(const char* filename)
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:
voidFitKalman(const AliTPCseed* track, Int_t sector)
voidFitLinear(const AliTPCseed* track, Int_t sector, AliTPCTracklet::TrackType type)
voidFitRiemann(const AliTPCseed* track, Int_t sector)
static doubleGetBz(Double_t* xyz)
voidQuadratic2Helix(Double_t* a, Double_t* ca, Double_t* b, Double_t* cb, Double_t x0, Double_t* p, Double_t* c)
static Bool_tRejectCluster(AliTPCclusterMI* cl, AliExternalTrackParam* param = 0)
Bool_tRiemann2Helix(Double_t* a, Double_t* ca, Double_t* b, Double_t* cb, Double_t x0, Double_t* p, Double_t* c)

Data Members

public:
enum TrackType { kKalman
kRiemann
kLinear
kQuadratic
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
AliTPCclusterMI*fClusters[fNStoredClusters] The clusters of the track, if stored (otherwise 0)
AliExternalTrackParam*fInnerThe tracklet parametrisation at its inner most cluster.
Int_tfNClustersThe number of clusters assined to the tracklet.
Int_tfNStoredClustersThe number of stored clusters.
AliExternalTrackParam*fOuterThe tracklet parametrisation at its outer most cluster.
AliExternalTrackParam*fPrimaryThe tracklet parametrisation at X=0, i.e. the "primary vertex".
Int_tfSectorThe sector this tracklet lives in.
static Float_tfgEdgeCutXcut on the edge effect in local X
static Float_tfgEdgeCutYcut on the edge effect in local Y
static const Double_tkB2C! ugly to have the track parametrised in a way, that constand is allways needed

Class Charts

Inheritance Chart:
TObject
AliTPCTracklet

Function documentation

AliTPCTracklet()
 The default constructor. It is intended to be used for I/O only.

AliTPCTracklet(const AliTPCseed* s, Int_t sector, AliTPCTracklet::TrackType type = kKalman, Bool_t storeClusters = kFALSE)
 Contructor for a tracklet out of a track. Only clusters within a given
 sector are used.

AliTPCTracklet(const TObjArray& clusters, Int_t sector, AliTPCTracklet::TrackType type = kKalman, Bool_t storeClusters = kFALSE)
TODO: write it!
AliTPCTracklet(const AliTPCTracklet& t)
 The copy constructor. You can copy tracklets!

AliTPCTracklet& operator=(const AliTPCTracklet& t)
 The assignment constructor. You can assign tracklets!

~AliTPCTracklet()
 The destructor. Yes, you can even destruct tracklets.

void FitKalman(const AliTPCseed* track, Int_t sector)
 Fit using Kalman filter

void FitLinear(const AliTPCseed* track, Int_t sector, AliTPCTracklet::TrackType type)
void Quadratic2Helix(Double_t* a, Double_t* ca, Double_t* b, Double_t* cb, Double_t x0, Double_t* p, Double_t* c)
 y(x)=a[0]+a[1]*x+a[2]*x^2
 z(x)=b[0]+b[1]*x
 parametrises the corosponding helix at x0
 get the polynoms at x0
void FitRiemann(const AliTPCseed* track, Int_t sector)
Bool_t Riemann2Helix(Double_t* a, Double_t* ca, Double_t* b, Double_t* cb, Double_t x0, Double_t* p, Double_t* c)
TODO: signs!
TObjArray CreateTracklets(const AliTPCseed* s, AliTPCTracklet::TrackType type = kKalman, Bool_t storeClusters = kFALSE, Int_t minClusters = 0, Int_t maxTracklets = 72)
 The tracklet factory: It creates several tracklets out of a track. They
 are created for sectors that fullfill the constraint of having enough
 clusters inside. Futhermore you can specify the maximum amount of
 tracklets that are to be created.
 The tracklets appear in a sorted fashion, beginning with those having the
 most clusters.
{0}
TObjArray CreateTracklets(const TObjArray& clusters, AliTPCTracklet::TrackType type = kKalman, Bool_t storeClusters = kFALSE, Int_t minClusters = 0, Int_t maxTracklets = 72)
 TODO!
Bool_t PropagateToMeanX(const AliTPCTracklet& t1, const AliTPCTracklet& t2, AliExternalTrackParam*& t1m, AliExternalTrackParam*& t2m)
 This function propagates two Tracklets to a common x-coordinate. This
 x is dermined as the one that is in the middle of the two tracklets (they
 are assumed to live on two distinct x-intervalls).
 The inner parametrisation of the outer Tracklet and the outer
 parametrisation of the inner Tracklet are used and propagated to this
 common x. This result is saved not inside the Tracklets but two new
 ExternalTrackParams are created (that means you might want to delete
 them).
 In the case that the alpha angles of the Tracklets differ both angles
 are tried out for this propagation.
 In case of any failure kFALSE is returned, no AliExternalTrackParam
 is created und the pointers are set to 0.
double GetBz(Double_t* xyz)
void RandomND(Int_t ndim, const Double_t* p, const Double_t* c, Double_t* x)
 This function generates a n-dimensional random variable x with mean
 p and covariance c.
 That is done using the cholesky decomposition of the covariance matrix,
 C=U^{t} U, with U being an
 upper triangular matrix. Given a vector v of iid gausian random variables
 with variance 1 one obtains the asked result as:
x=U^t v.
 c is expected to be in a lower triangular format:
 c[0]
 c[1] c[2]
 c[3] c[4] c[5]
 etc.
TEllipse ErrorEllipse(Double_t x, Double_t y, Double_t sx, Double_t sy, Double_t sxy)
r_{1,2}=1/2 (a+c#pm#sqrt{(a-c)^{2}+(2b)^{2}}) 
void Test(const char* filename)
    aliroot
    AliTPCTracklet::Test("");
    TFile f("AliTPCTrackletDebug.root");
    TTree *t=f.Get("AliTPCTrackletDebug");
    t->Draw("p0:p4");
    TEllipse e=AliTPCTracklet::ErrorEllipse(0.,0.,4.,1.,1.8);
    e.Draw();

Bool_t RejectCluster(AliTPCclusterMI* cl, AliExternalTrackParam* param = 0)
 check the acceptance of cluster
 Cut on edge effects

void SetEdgeCut(Float_t edgeX, Float_t edgeY)

AliExternalTrackParam* GetOuter() const
 Returns the tracklet parametrisation at its outer most cluster.
{return fOuter;}
AliExternalTrackParam* GetInner() const
 Returns the tracklet parametrisation at its inner most cluster.
{return fInner;}
AliExternalTrackParam* GetPrimary() const
 Returns the tracklet parametrisation at X=0, i.e. the "primary vertex".
{return fPrimary;}
Int_t GetSector() const
 Returns the sector in which the tracklet lives.
{return fSector;}
Int_t GetNClusters() const
 Returns the number of clusters assined to the tracklet.
{return fNClusters;}
AliTPCclusterMI* GetClusters() const
 Returns the clusters of this tracklet. In case they weren't stored it
 returns 0.
{return fClusters;}