ROOT logo
AliRoot » PWGPP » TPC » AliPerformanceMatch

class AliPerformanceMatch: public AliPerformanceObject

 Implementation of AliPerformanceMatch class. It checks the track matching
 quality (residuals, pulls) bewteen tracking detectors TPC-ITS and TPC-TRD
 with TPC as the reference detector. In addition, the ITS and TRD track
 reconstruction efficiency with respect to TPC is calculated.

 The matchinig quality parameters are stored in the THnSparse histograms.
 The analysis of these histograms to extract reference information is done in
 the Analyse() function (post-processing).

 The histograms with reference information can be exported to the ROOT folder.

 Author: J.Otwinowski 17/10/2009
 Changes by M.Knichel 22/10/2010

Function Members (Methods)

public:
AliPerformanceMatch(const Char_t* name = "AliPerformanceMatch", const Char_t* title = "AliPerformanceMatch", Int_t analysisMode = 0, Bool_t hptGenerator = kFALSE)
virtual~AliPerformanceMatch()
voidTObject::AbstractMethod(const char* method) const
virtual voidAnalyse()
virtual voidAliPerformanceObject::AnalyseFinal()
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
TFolder*CreateFolder(TString folder = "folderRes", TString title = "Analysed Resolution histograms")
Double_t*AliPerformanceObject::CreateLogAxis(Int_t nbins, Double_t xmin, Double_t xmax)
virtual TTree*AliPerformanceObject::CreateSummary()
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 voidExec(AliMCEvent *const mcEvent, AliESDEvent *const esdEvent, AliESDfriend *const esdFriend, const Bool_t bUseMC, const Bool_t bUseESDfriend)
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)
TFolder*ExportToFolder(TObjArray* array = 0)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
voidFillHistograms(AliESDtrack *const refParam, AliESDtrack *const param, Bool_t isRec)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
AliMCInfoCuts*GetAliMCInfoCuts() const
AliRecInfoCuts*GetAliRecInfoCuts() const
virtual TFolder*GetAnalysisFolder() const
Int_tAliPerformanceObject::GetAnalysisMode() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
TObjArray*GetHistos() const
virtual const char*TObject::GetIconName() const
static Bool_tGetMergeTHnSparse()
Bool_tAliPerformanceObject::GetMergeTHnSparseObj()
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
THnSparse*GetPullHisto() const
THnSparse*GetResolHisto() const
Int_tAliPerformanceObject::GetRunNumber() const
virtual const char*TNamed::GetTitle() const
THnSparse*GetTPCConstrain() const
THnSparse*GetTrackEffHisto() const
const Char_t*AliPerformanceObject::GetTriggerClass() const
virtual UInt_tTObject::GetUniqueID() const
Int_tAliPerformanceObject::GetUseCentralityBin()
Bool_tGetUseHLT()
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::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 voidInit()
virtual voidAliPerformanceObject::InitHighMult()
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_tAliPerformanceObject::IsHighMultiplicity()
Bool_tAliPerformanceObject::IsHptGenerator() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tAliPerformanceObject::IsUseKinkDaughters()
Bool_tAliPerformanceObject::IsUseTOFBunchCrossing()
Bool_tAliPerformanceObject::IsUseTrackVertex()
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
TH1F*MakeResol(TH2F* his, Int_t integ = 0, Bool_t type = kFALSE, Int_t cut = 0)
voidTObject::MayNotUse(const char* method) const
virtual Long64_tMerge(TCollection *const list)
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 voidTNamed::Print(Option_t* option = "") const
voidAliPerformanceObject::PrintHisto(Bool_t logz = kTRUE, const Char_t* outFileName = "PerformanceQAHisto.ps")
voidProcessITSTPC(Int_t trackIdx, AliESDEvent *const esdEvent, AliStack *const stack, AliESDtrack *const esdTrack)
voidProcessTPCConstrain(AliStack *const stack, AliESDEvent *const esdEvent, AliESDtrack *const esdTrack)
voidProcessTPCITS(AliStack *const stack, AliESDtrack *const esdTrack)
voidProcessTPCTRD(AliStack *const stack, AliESDtrack *const esdTrack, AliESDfriendTrack *const friendTrack)
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 = "")
virtual voidSetAliMCInfoCuts(AliMCInfoCuts *const cuts = 0)
virtual voidSetAliRecInfoCuts(AliRecInfoCuts *const cuts = 0)
voidAliPerformanceObject::SetAnalysisMode(const Int_t analysisMode = 0)
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)
voidAliPerformanceObject::SetHptGenerator(const Bool_t hptGenerator = kFALSE)
static voidSetMergeTHnSparse(Bool_t mergeTHnSparse)
voidAliPerformanceObject::SetMergeTHnSparseObj(Bool_t merge)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidAliPerformanceObject::SetRunNumber(Int_t run)
virtual voidTNamed::SetTitle(const char* title = "")MENU
voidAliPerformanceObject::SetTriggerClass(const Char_t* triggerClass)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidAliPerformanceObject::SetUseCentralityBin(Int_t bin)
voidSetUseHLT(Bool_t useHLT = kTRUE)
voidAliPerformanceObject::SetUseKinkDaughters(Bool_t kinkDaughters = kTRUE)
voidAliPerformanceObject::SetUseTOFBunchCrossing(Bool_t tofBunching = kTRUE)
voidAliPerformanceObject::SetUseTrackVertex(Bool_t trackVtx = kTRUE)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
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:
voidAliPerformanceObject::AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse* hSparse, Int_t xDim, TString* selString = 0)
voidAliPerformanceObject::AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse* hSparse, Int_t xDim, Int_t yDim, TString* selString = 0)
voidAliPerformanceObject::AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse* hSparse, Int_t xDim, Int_t yDim, Int_t zDim, TString* selString = 0)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

private:
TFolder*fAnalysisFolderfolder for analysed histograms
AliMCInfoCuts*fCutsMCselection cuts for MC tracks
AliRecInfoCuts*fCutsRCselection cuts for reconstructed tracks
TObjArray*fFolderObjarray of analysed histograms
THnSparseF*fPullHisto-> pull_y:pull_z:pull_snp:pull_tgl:pull_1pt:y:z:snp:tgl:1pt:isRec
THnSparseF*fResolHisto-> res_y:res_z:res_phi:res_lambda:res_pt:y:z:phi:eta:pt:isRec
THnSparseF*fTPCConstrain-> pull_phi:phi,pt,eta
THnSparseF*fTrackingEffHisto-> has match:y:z:snp:tgl:phi:pt:ITSclusters
Bool_tfUseHLTuse HLT ESD
static Bool_tfgMergeTHnSparse
static Bool_tfgUseMergeTHnSparse

Class Charts

Inheritance Chart:
TNamed
AliPerformanceObject
AliPerformanceMatch

Function documentation

AliPerformanceMatch(const Char_t* name = "AliPerformanceMatch", const Char_t* title = "AliPerformanceMatch", Int_t analysisMode = 0, Bool_t hptGenerator = kFALSE)
 Cuts
 histogram folder
 named constructor

~AliPerformanceMatch()
 destructor
void Init()
void ProcessITSTPC(Int_t trackIdx, AliESDEvent *const esdEvent, AliStack *const stack, AliESDtrack *const esdTrack)
 addition to standard analysis - check if ITS stand-alone tracks have a match in the TPC
 Origin: A. Kalwait
 Modified: J. Otwinowski
void ProcessTPCITS(AliStack *const stack, AliESDtrack *const esdTrack)
 Match TPC and ITS min-bias tracks
 at radius between detectors

void ProcessTPCConstrain(AliStack *const stack, AliESDEvent *const esdEvent, AliESDtrack *const esdTrack)
 Contrain TPC inner track to the vertex
 then compare to the global tracks

void FillHistograms(AliESDtrack *const refParam, AliESDtrack *const param, Bool_t isRec)
 fill performance histograms
 (TPC always as reference)

void Exec(AliMCEvent *const mcEvent, AliESDEvent *const esdEvent, AliESDfriend *const esdFriend, const Bool_t bUseMC, const Bool_t bUseESDfriend)
 Process comparison information

TH1F* MakeResol(TH2F* his, Int_t integ = 0, Bool_t type = kFALSE, Int_t cut = 0)
 Create resolution histograms
void Analyse()
 Analyse comparison information and store output histograms
 in the folder "folderMatch"

TFolder* ExportToFolder(TObjArray* array = 0)
 recreate folder avery time and export objects to new one

TFolder* CreateFolder(TString folder = "folderRes", TString title = "Analysed Resolution histograms")
 create folder for analysed histograms

Long64_t Merge(TCollection *const list)
 Merge list of objects (needed by PROOF)
AliPerformanceMatch(const Char_t* name = "AliPerformanceMatch", const Char_t* title = "AliPerformanceMatch", Int_t analysisMode = 0, Bool_t hptGenerator = kFALSE)
TFolder* GetAnalysisFolder() const
 Analyse Projected Histograms to create Efficiency and AddToFolder
  virtual void AnalyseFinal();
 Get analysis folder
{return fAnalysisFolder;}
void ProcessTPCTRD(AliStack *const stack, AliESDtrack *const esdTrack, AliESDfriendTrack *const friendTrack)
void SetAliRecInfoCuts(AliRecInfoCuts *const cuts = 0)
 Selection cuts
{fCutsRC = cuts;}
void SetAliMCInfoCuts(AliMCInfoCuts *const cuts = 0)
{fCutsMC = cuts;}
AliRecInfoCuts* GetAliRecInfoCuts() const
{return fCutsRC;}
AliMCInfoCuts* GetAliMCInfoCuts() const
{return fCutsMC;}
THnSparse * GetResolHisto() const
 getters

{ return fResolHisto; }
THnSparse * GetPullHisto() const
{ return fPullHisto; }
THnSparse * GetTrackEffHisto() const
{ return fTrackingEffHisto; }
THnSparse * GetTPCConstrain() const
{ return fTPCConstrain; }
TObjArray* GetHistos() const
{ return fFolderObj; }
Bool_t GetMergeTHnSparse()
{ return fgMergeTHnSparse; }
void SetMergeTHnSparse(Bool_t mergeTHnSparse)
void SetUseHLT(Bool_t useHLT = kTRUE)
{fUseHLT = useHLT;}
Bool_t GetUseHLT()
{ return fUseHLT; }
AliPerformanceMatch& operator=(const AliPerformanceMatch& )