ROOT logo
AliRoot » PHOS » AliPHOSTrackSegmentMakerv2

class AliPHOSTrackSegmentMakerv2: public AliPHOSTrackSegmentMaker

 Implementation version 2 of algorithm class to construct PHOS track segments
 Track segment for PHOS is list of
        EMC RecPoint + (possibly) projection of TPC track
 To find TrackSegments we do the following:
  for each EMC RecPoints we look at
   TPC projections radius fRtpc.
  If there is such a track
   we make "Link" it is just indexes of EMC and TPC track and distance
   between them in the PHOS plane.
  Then we sort "Links" and starting from the
   least "Link" pointing to the unassined EMC and TPC assing them to
   new TrackSegment.
 If there is no TPC track we make TrackSegment
 consisting from EMC alone. There is no TrackSegments without EMC RecPoint.
 In principle this class should be called from AliPHOSReconstructor, but
 one can use it as well in standalone mode.
 Use  case:
  root [0] AliPHOSTrackSegmentMakerv2 * t = new AliPHOSTrackSegmentMaker("galice.root", "tracksegmentsname", "recpointsname")
  Warning in <TDatabasePDG::TDatabasePDG>: object already instantiated
               // reads gAlice from header file "galice.root", uses recpoints stored in the branch names "recpointsname" (default = "Default")
               // and saves recpoints in branch named "tracksegmentsname" (default = "recpointsname")
  root [1] t->ExecuteTask()
  root [3] t->SetTrackSegmentsBranch("max distance 5 cm")
  root [4] t->ExecuteTask("deb all time")

*-- Author: Dmitri Peressounko (RRC Ki & SUBATECH) & Yves Schutz (SUBATECH)

Function Members (Methods)

public:
AliPHOSTrackSegmentMakerv2()
AliPHOSTrackSegmentMakerv2(AliPHOSGeometry* geom)
AliPHOSTrackSegmentMakerv2(const AliPHOSTrackSegmentMakerv2& tsm)
virtual~AliPHOSTrackSegmentMakerv2()
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 voidClusters2TrackSegments(Option_t* option)
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
voidFillOneModule()
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
AliESDEvent*AliPHOSTrackSegmentMaker::GetESD() const
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 TClonesArray*GetTrackSegments() 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
voidMakeLinks()
voidMakePairs()
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)
AliPHOSTrackSegmentMakerv2&operator=(const AliPHOSTrackSegmentMakerv2&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* = "") const
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)
voidAliPHOSTrackSegmentMaker::SetESD(AliESDEvent* esd)
voidAliPHOSTrackSegmentMaker::SetInput(TTree* clustersTree)
virtual voidSetMaxTPCDistance(Float_t r)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetWriting(Bool_t toWrite = kFALSE)
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 const char*Version() const
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:
voidGetDistanceInPHOSPlane(AliPHOSEmcRecPoint* EmcClu, AliESDtrack* track, Float_t& dx, Float_t& dz) const
voidInit()
voidInitParameters()
voidPrintTrackSegments(Option_t* option)

Data Members

protected:
TObjArray*AliPHOSTrackSegmentMaker::fCPVRecPointsArray with the CPV clusters
TObjArray*AliPHOSTrackSegmentMaker::fEMCRecPointsArray with the EMC clusters
AliESDEvent*AliPHOSTrackSegmentMaker::fESD! ESD object
AliPHOSGeometry*AliPHOSTrackSegmentMaker::fGeom! Pointer to the PHOS geometry
private:
Bool_tfDefaultInit! Says if the task was created by defaut ctor (only parameters are initialized)
Int_tfEmcFirst! Index of first EMC RecPoint belonging to currect PHOS module
Int_tfEmcLast!
TClonesArray*fLinkUpArray!
Int_tfModule! number of module being processed
Int_tfNTrackSegmentsnumber of track segments found
Int_tfNtpcTracks[5]!
Float_tfRtpcMaximum distance between a EMC RecPoint and extrapolation of a TPC track
vector<TrackInPHOS_t>fTPCtracks[5]!
TClonesArray*fTrackSegmentsArray with found track-segments
TVector3fVtx! Vertex in current position
Bool_tfWriteWrite Tracks to TreeT

Class Charts

Inheritance Chart:
TObject
AliPHOSTrackSegmentMaker
AliPHOSTrackSegmentMakerv2

Function documentation

AliPHOSTrackSegmentMakerv2()
 default ctor (to be used mainly by Streamer)
AliPHOSTrackSegmentMakerv2(AliPHOSGeometry* geom)
 ctor
AliPHOSTrackSegmentMakerv2(const AliPHOSTrackSegmentMakerv2& tsm)
 cpy ctor: no implementation yet
 requested by the Coding Convention
~AliPHOSTrackSegmentMakerv2()
 dtor
 fDefaultInit = kTRUE if TrackSegmentMaker created by default ctor (to get just the parameters)
void FillOneModule()
 Finds first and last indexes between which
 clusters from one PHOS module are
void GetDistanceInPHOSPlane(AliPHOSEmcRecPoint* EmcClu, AliESDtrack* track, Float_t& dx, Float_t& dz) const
 Calculates the distance between the EMC RecPoint and the CPV RecPoint
 Clusters are sorted in "rows" and "columns" of width 1 cm
void Init()
 Make all memory allocations that are not possible in default constructor
void InitParameters()
Initializes parameters
void MakeLinks()
 Finds distances (links) between all EMC and CPV clusters,
 which are not further apart from each other than fRcpv
 and sort them in accordance with this distance
void MakePairs()
 Using the previously made list of "links", we found the smallest link - i.e.
 link with the least distance between EMC and CPV and pointing to still
 unassigned RecParticles. We assign these RecPoints to TrackSegment and
 remove them from the list of "unassigned".
void Clusters2TrackSegments(Option_t* option)
 Steering method to perform track segment construction for events
 in the range from fFirstEvent to fLastEvent.
 This range is optionally set by SetEventRange().
 if fLastEvent=-1 (by default), then process events until the end.
void Print(Option_t* = "") const
  Print TrackSegmentMaker parameters
void PrintTrackSegments(Option_t* option)
 option deb - prints # of found TrackSegments
 option deb all - prints as well indexed of found RecParticles assigned to the TS
void SetWriting(Bool_t toWrite = kFALSE)
Switch to "on flyght" mode, without writing to TreeR and file
{fWrite = toWrite;}
void SetMaxTPCDistance(Float_t r)
between EMCrp and extrapolation of TPC track
{ fRtpc = r ;}
const char * Version() const
{ return "tsm-v2" ; }
TClonesArray * GetTrackSegments() const
{ return fTrackSegments; }