ROOT logo
AliRoot » PWGPP » TRD » AliTRDcheckESD

class AliTRDcheckESD: public AliAnalysisTaskSE


Check basic detector results at ESD level
- Geometrical efficiency
- Tracking efficiency
- PID efficiency
- Refit efficiency

Author
Alex Bercuci <A.Bercuci@gsi.de>
Ionut Arsene <i.c.arsene@gsi.de>

The analysis task fills AliCFContainer objects defined in the
configuration macro using the AddCFContainer() method.
The CF containers can be filled with any of the variables defined
in ETrdCfVariables and at any of the steps defined in ETrdCfSteps.
To define a new variable one needs to:
1. Add an entry in the ETrdCfVariables enumeration
2. Add the corresponding variable name (and in the correct order)
in fgkVarNames
3. Define how the variable is filled in one of the Fill functions:
FillEventInfo(), FillTrackInfo(), FillTrackletInfo(),
FillTrackletSliceInfo().
To define a new step one needs to:
1. Add an entry in the ETrdCfSteps
2. Add the corresponding name in fgkStepNames
3. Define the track level cuts for this step in IsTrackSelected()


Function Members (Methods)

public:
AliTRDcheckESD()
AliTRDcheckESD(char* name)
virtual~AliTRDcheckESD()
virtual voidTTask::Abort()MENU
voidTObject::AbstractMethod(const char* method) const
virtual voidTTask::Add(TTask* task)
virtual voidAliAnalysisTaskSE::AddAODBranch(const char* cname, void* addobj, const char* fname = "")
voidAddCFContainer(const Char_t* name, const Char_t* title, Int_t nSteps, Int_t* steps, Int_t nVars, UInt_t* vars, TArrayD* binLimits)
voidAddUserTrigger(const Char_t* name)
virtual AliAODEvent*AliAnalysisTaskSE::AODEvent() const
virtual voidTObject::AppendPad(Option_t* option = "")
Bool_tAliAnalysisTask::AreSlotsConnected()
virtual voidTTask::Browse(TBrowser* b)
Bool_tAliAnalysisTask::CheckCircularDeps()
voidAliAnalysisTask::CheckNotify(Bool_t init = kFALSE)
virtual Bool_tAliAnalysisTask::CheckOwnership() const
virtual Bool_tAliAnalysisTask::CheckPostData() const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTTask::CleanTasks()
virtual voidTTask::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
Bool_tAliAnalysisTask::ConnectInput(Int_t islot, AliAnalysisDataContainer* cont)
virtual voidAliAnalysisTaskSE::ConnectInputData(Option_t* option = "")
Bool_tAliAnalysisTask::ConnectOutput(Int_t islot, AliAnalysisDataContainer* cont)
virtual voidTTask::Continue()MENU
virtual voidTNamed::Copy(TObject& named) const
virtual voidAliAnalysisTaskSE::CreateOutputObjects()
virtual const char*AliAnalysisTaskSE::CurrentFileName()
virtual Int_tAliAnalysisTaskSE::DebugLevel() 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 Long64_tAliAnalysisTaskSE::Entry() const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual AliESDfriend*AliAnalysisTaskSE::ESDfriend() const
virtual const AliEventTag*AliAnalysisTaskSE::EventTag() const
virtual voidAliAnalysisTaskSE::Exec(Option_t* option)
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 voidTTask::ExecuteTask(Option_t* option = "0")MENU
virtual voidTTask::ExecuteTasks(Option_t* option)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual voidAliAnalysisTask::FinishTaskOutput()
voidAliAnalysisTask::GetBranches(const char* type, TString& result) const
Int_tTTask::GetBreakin() const
Int_tTTask::GetBreakout() const
virtual UInt_tAliAnalysisTaskSE::GetCollisionCandidates() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
TObject*AliAnalysisTask::GetInputData(Int_t islot) const
AliAnalysisDataSlot*AliAnalysisTask::GetInputSlot(Int_t islot) const
TClass*AliAnalysisTask::GetInputType(Int_t islot) const
TList*TTask::GetListOfTasks() const
virtual const char*TNamed::GetName() const
Int_tGetNAssignedTriggers()
Int_tAliAnalysisTask::GetNinputs() const
Int_tAliAnalysisTask::GetNoutputs() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TObject*AliAnalysisTask::GetOutputData(Int_t islot) const
AliAnalysisDataSlot*AliAnalysisTask::GetOutputSlot(Int_t islot) const
TClass*AliAnalysisTask::GetOutputType(Int_t islot) const
TObject*AliAnalysisTask::GetPublishedData() const
virtual TList*AliAnalysisTaskSE::GetQAHistos() const
virtual const char*TNamed::GetTitle() const
Int_tGetTriggerCounter(const Char_t* triggerName) const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
Bool_tAliAnalysisTask::HasBranches() const
Bool_tAliAnalysisTask::HasExecuted() const
virtual ULong_tTNamed::Hash() const
Bool_tHasMC() const
TObjArray*Histos()
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 voidAliAnalysisTaskSE::Init()
virtual AliVEvent*AliAnalysisTaskSE::InputEvent() const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tTTask::IsActive() const
Bool_tAliAnalysisTask::IsChecked() const
Bool_tIsCollision() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tAliAnalysisTaskSE::IsEventInBinZero()
virtual Bool_tTTask::IsFolder() const
Bool_tAliAnalysisTask::IsInitialized() const
Bool_tTObject::IsOnHeap() const
Bool_tAliAnalysisTask::IsOutputReady(Int_t islot) const
Bool_tAliAnalysisTask::IsPostEventLoop() const
Bool_tAliAnalysisTask::IsReady() const
virtual Bool_tTNamed::IsSortable() const
virtual Bool_tAliAnalysisTaskSE::IsStandardAOD() const
Bool_tAliAnalysisTask::IsUsed() const
Bool_tAliAnalysisTask::IsZombie() const
Bool_tLoad(const Char_t* fn = "AnalysisResults.root", const Char_t* dir = "TRD_Performance", const Char_t* name = NULL)
voidAliAnalysisTaskSE::LoadBranches() const
virtual voidAliAnalysisTask::LocalInit()
virtual voidTTask::ls(Option_t* option = "*") constMENU
voidMakeSummaryFromCF(Double_t* trendValues = 0x0, const Char_t* triggerName = "", Bool_t useIsolatedBC = kFALSE, Bool_t cutTOFbc = kFALSE)
voidTObject::MayNotUse(const char* method) const
virtual AliMCEvent*AliAnalysisTaskSE::MCEvent() const
virtual Bool_tAliAnalysisTaskSE::Notify()
virtual Bool_tAliAnalysisTask::NotifyBinChange()
virtual voidAliAnalysisTaskSE::NotifyRun()
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 TTree*AliAnalysisTaskSE::OutputTree() const
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
voidAliAnalysisTask::PrintContainers(Option_t* option = "all", Int_t indent = 0) const
virtual voidAliAnalysisTask::PrintTask(Option_t* option = "all", Int_t indent = 0) const
voidPrintTriggers() const
Bool_tAliAnalysisTask::ProducersTouched() const
Bool_tPutTrendValue(const Char_t* name, Double_t val)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidAliAnalysisTask::Reset()
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 voidAliAnalysisTaskSE::SelectCollisionCandidates(UInt_t offlineTriggerMask = AliVEvent::kMB)
voidTTask::SetActive(Bool_t active = kTRUE)TOGGLE
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidAliAnalysisTask::SetBranches(const char* names)
voidTTask::SetBreakin(Int_t breakin = 1)TOGGLE
voidTTask::SetBreakout(Int_t breakout = 1)TOGGLE
voidAliAnalysisTask::SetChecked(Bool_t flag = kTRUE)
voidSetCollision(Bool_t set = kTRUE)
virtual voidAliAnalysisTaskSE::SetDebugLevel(Int_t level)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetMC(Bool_t mc = kTRUE)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidAliAnalysisTask::SetPostEventLoop(Bool_t flag = kTRUE)
voidSetRefTrackFilter(AliAnalysisCuts *const filter)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidAliAnalysisTask::SetUsed(Bool_t flag = kTRUE)
voidAliAnalysisTask::SetZombie(Bool_t flag = 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
virtual voidTerminate(Option_t*)
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidUserCreateOutputObjects()
virtual voidUserExec(Option_t*)
virtual voidAliAnalysisTaskSE::UserExecMix(Option_t*)
virtual Bool_tAliAnalysisTaskSE::UserNotify()
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:
voidAliAnalysisTaskSE::ConnectMultiHandler()
voidAliAnalysisTask::DefineInput(Int_t islot, TClass* type)
voidAliAnalysisTask::DefineOutput(Int_t islot, TClass* type)
voidAliAnalysisTaskSE::DisconnectMultiHandler()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidAliAnalysisTask::EnableBranch(Int_t islot, const char* bname) const
char*AliAnalysisTask::GetBranchAddress(Int_t islot, const char* branch) const
voidTObject::MakeZombie()
TFile*AliAnalysisTask::OpenFile(Int_t iout, Option_t* option = "RECREATE") const
Bool_tAliAnalysisTask::PostData(Int_t iout, TObject* data, Option_t* option = "")
Bool_tAliAnalysisTask::SetBranchAddress(Int_t islot, const char* branch, void* address) const
private:
AliTRDcheckESD(const AliTRDcheckESD&)
voidCheckActiveSM(TH1D* phiProj, Bool_t* activeSM)
voidDrawTRDGrid()
TH1F*EfficiencyFromPhiPt(AliCFContainer* cf, Int_t minNtrkl, Int_t maxNtrkl, Int_t stepNom, Int_t stepDenom, Int_t var = kTrackPt)
TH1F*EfficiencyTRD(TH3* tpc3D, TH3* trd3D, Bool_t useAcceptance = kTRUE)
voidFillCFContainer(AliCFContainer* cf, Double_t* values, Bool_t* stepSelections)
voidFillEventInfo(Double_t* values)
voidFillGlobalTrackContainers(Double_t* values, Bool_t* stepSelections, Int_t itrig)
voidFillTrackInfo(Double_t* values, AliESDtrack* esdTrack)
voidFillTrackletInfo(Double_t* values, AliESDtrack* esdTrack, Int_t iPlane, Double_t* localSagitaPhi, Double_t localMom[][3], Bool_t* localMomGood)
voidFillTrackletSliceInfo(Double_t* values, AliESDtrack* esdTrack, Int_t iSlice)
voidFillTrdSliceContainers(Double_t* values, Bool_t* stepSelections, Int_t itrig)
voidFillTrdTrackletContainers(Double_t* values, Bool_t* stepSelections, Int_t itrig)
voidFindIsolatedBCs(TH1D* bcHist, Bool_t* isIsolated)
Int_tGetTriggerIndex(const Char_t* name, Bool_t createNew = kTRUE)
voidInitializeCFContainers()
Bool_tIsTrackSelected(AliESDtrack* track, Double_t* values, Int_t step)
AliTRDcheckESD&operator=(const AliTRDcheckESD&)
Int_tPdg2Idx(Int_t pdg) const
voidPlotCentSummaryFromCF(Double_t* trendValues = 0x0, const Char_t* triggerName = "", Bool_t useIsolatedBC = kFALSE, Bool_t cutTOFbc = kFALSE)
voidPlotOtherSummaryFromCF(Double_t* trendValues)
voidPlotPidSummaryFromCF(Double_t* trendValues = 0x0, const Char_t* triggerName = "", Bool_t useIsolatedBC = kFALSE, Bool_t cutTOFbc = kFALSE)
voidPlotTrackingSummaryFromCF(Double_t* trendValues = 0x0, const Char_t* triggerName = "", Bool_t useIsolatedBC = kFALSE, Bool_t cutTOFbc = kFALSE)
voidPrintStatus(ULong_t s)
voidProcess(TH1** h, TGraphErrors* g)
voidProcess2D(TH2 *const h, TGraphErrors** g)
TH1D*Proj2D(TH2* hist, TH1* mpvErr = 0x0, TH1* widthErr = 0x0, TH1* chi2 = 0x0)
TH2F*Proj3D(TH3* hist, TH2* accMap, Int_t binLow, Int_t binHigh, Float_t& entries)
voidSetStyle(TAxis* axis, const Char_t* title, Float_t titleSize, Float_t titleOffset, Bool_t centerTitle, Float_t labelSize)
voidSetStyle(TH1* hist, Int_t lineStyle, Int_t lineColor, Int_t lineWidth, Int_t markerStyle, Int_t markerColor, Int_t markerSize)

Data Members

public:
enum ETRDcheckESDstatus { kMC
kCollision
};
enum ETrdCfVariables { kEventVtxZ
kEventMult
kEventTrigger
kEventBC
kTrackTOFBC
kTrackDCAxy
kTrackDCAz
kTrackCharge
kTrackOuterParamRadius
kTrackPhi
kTrackPhiTRD
kTrackEta
kTrackEtaTRD
kTrackPt
kTrackPtTRD
kTrackP
kTrackPTRD
kTrackTrdChi2
kTrackTrdTracklets
kTrackTrdClusters
kTrackTrdQuality
kTrackTRDBudget
kTrackTOFchi2
kTrackletQtot
kTrackletClustersVsRows
kTrackletClusters
kTrackletP
kTrackPlossTRDlayer
kTrackletLayer
kTrackletSlice
kTrackletPHslice
kNTrdCfVariables
kNMaxAssignedTriggers
};
enum ETrdCfSteps { kTPCreference
kTRD
kTOF
kTOFin
kTOFout
kNSteps
};
enum AliAnalysisTask::EAnalysisTaskFlags { kTaskUsed
kTaskZombie
kTaskChecked
kTaskPostEventLoop
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Bool_tTTask::fActivetrue if task is active
TStringAliAnalysisTask::fBranchNamesList of input branches that need to be loaded for this task
Int_tTTask::fBreakin=1 if a break point set at task extry
Int_tTTask::fBreakout=1 if a break point set at task exit
Int_tAliAnalysisTaskSE::fCurrentRunNumber! Current run number
Int_tAliAnalysisTaskSE::fDebugDebug flag
AliESDfriend*AliAnalysisTaskSE::fESDfriend! ESD friend
Int_tAliAnalysisTaskSE::fEntryCurrent entry in the chain
Bool_tTTask::fHasExecutedTrue if task has executed
TList*AliAnalysisTaskSE::fHistosQA! Output histos for QA
Bool_tAliAnalysisTask::fInitializedTrue if Init() was called
AliVEvent*AliAnalysisTaskSE::fInputEvent! VEvent Input
AliInputEventHandler*AliAnalysisTaskSE::fInputHandler! Input Handler
TObjArray*AliAnalysisTask::fInputsArray of input slots
AliMCEvent*AliAnalysisTaskSE::fMCEvent! MC
AliInputEventHandler*AliAnalysisTaskSE::fMCEventHandler! pointer to MCEventHandler
AliMultiInputEventHandler*AliAnalysisTaskSE::fMultiInputHandler! pointer to multihandler
TStringTNamed::fNameobject identifier
Int_tAliAnalysisTask::fNinputsNumber of inputs
Int_tAliAnalysisTask::fNoutputsNumber of outputs
UInt_tAliAnalysisTaskSE::fOfflineTriggerMaskTask processes collision candidates only
TStringTTask::fOptionOption specified in ExecuteTask
AliAODEvent*AliAnalysisTaskSE::fOutputAOD! AOD out
Bool_t*AliAnalysisTask::fOutputReady[fNoutputs] Flags for output readyness
TObjArray*AliAnalysisTask::fOutputsArray of output slots
TObject*AliAnalysisTask::fPublishedData! published data
Bool_tAliAnalysisTask::fReadyFlag if the task is ready
TList*TTask::fTasksList of Tasks
TStringTNamed::fTitleobject title
TTree*AliAnalysisTaskSE::fTreeAAOD output Tree
static TClonesArray*AliAnalysisTaskSE::fgAODCaloClusters! CaloClusters for replication
static TClonesArray*AliAnalysisTaskSE::fgAODDimuons! Dimuons replication
static AliAODCaloTrigger*AliAnalysisTaskSE::fgAODEMCALTrigger! Emcal Trigger for replication
static AliAODCaloCells*AliAnalysisTaskSE::fgAODEmcalCells! Emcal Cell replication
static TClonesArray*AliAnalysisTaskSE::fgAODFMDClusters! FMDClusters for replication
static AliVHeader*AliAnalysisTaskSE::fgAODHeader! Header for replication
static TClonesArray*AliAnalysisTaskSE::fgAODHmpidRings! HMPID replication
static TClonesArray*AliAnalysisTaskSE::fgAODJets! Jets for replication
static TClonesArray*AliAnalysisTaskSE::fgAODMCParticles! MC Particles for replicatio
static AliAODCaloTrigger*AliAnalysisTaskSE::fgAODPHOSTrigger! Phos Trigger for replication
static TClonesArray*AliAnalysisTaskSE::fgAODPMDClusters! PMDClusters for replication
static AliAODCaloCells*AliAnalysisTaskSE::fgAODPhosCells! Phos Cell replication
static AliAODTracklets*AliAnalysisTaskSE::fgAODTracklets! Tracklets for replication
static TClonesArray*AliAnalysisTaskSE::fgAODTracks! Tracks for replication
static TClonesArray*AliAnalysisTaskSE::fgAODV0s! V0s for replication
static AliAODVZERO*AliAnalysisTaskSE::fgAODVZERO! VZERO for replication
static TClonesArray*AliAnalysisTaskSE::fgAODVertices! Vertices for replication
static TTask*TTask::fgBeginTaskpointer to task initiator
static TTask*TTask::fgBreakPointpointer to current break point
static AliTOFHeader*AliAnalysisTaskSE::fgTOFHeader! TOFHeader for replication
private:
AliESDEvent*fESD! ESD event
AliESDpid*fESDpidESD pid object
TObjArray*fHistos! QA histograms
AliMCEvent*fMC! MC event
Int_tfNAssignedTriggersnumber of assigned triggers
Int_tfNRefFiguresnumber of current ref plots
Bool_tfPhysSelTriggersEnabledflag wheter physics selection triggers were enabled
AliAnalysisCuts*fReferenceTrackFilterreference track filter
Int_tfStatusbit mask for controlling the task
TStringfUserEnabledTriggerslist of user enabled triggers
static FILE*fgFile! trend file streamer
static const Char_t*fgkStepNames[5]
static const Char_t*fgkVarNames[31]
static const Float_tfgkxTOFstart radial position of TOF
static const Float_tfgkxTPCend radial position of TPC

Class Charts

Inheritance Chart:
TTask
AliAnalysisTask
AliAnalysisTaskSE
AliTRDcheckESD

Function documentation

AliTRDcheckESD()
 Default constructor

AliTRDcheckESD(char* name)
 Default constructor

~AliTRDcheckESD()
 Destructor
void FillEventInfo(Double_t* values)
 Fill event information

void FillTrackInfo(Double_t* values, AliESDtrack* esdTrack)
 Fill track information

void FillTrackletInfo(Double_t* values, AliESDtrack* esdTrack, Int_t iPlane, Double_t* localSagitaPhi, Double_t localMom[][3], Bool_t* localMomGood)
 Fill TRD tracklet info

void FillTrackletSliceInfo(Double_t* values, AliESDtrack* esdTrack, Int_t iSlice)
 Fill TRD tracklet info

Bool_t IsTrackSelected(AliESDtrack* track, Double_t* values, Int_t step)
 Select tracks at each step

void UserCreateOutputObjects()
 Create Output Containers (TObjectArray containing 1D histograms)

void MakeSummaryFromCF(Double_t* trendValues = 0x0, const Char_t* triggerName = "", Bool_t useIsolatedBC = kFALSE, Bool_t cutTOFbc = kFALSE)
 Draw summary plots for the ESDcheck task using the CF container

void UserExec(Option_t* )
 Run the Analysis

TObjArray* Histos()
 Retrieve histograms array if already build or build it
void InitializeCFContainers()
  Initialize the CF container

void AddCFContainer(const Char_t* name, const Char_t* title, Int_t nSteps, Int_t* steps, Int_t nVars, UInt_t* vars, TArrayD* binLimits)
 Add a CF container

void FillTrdSliceContainers(Double_t* values, Bool_t* stepSelections, Int_t itrig)
 fill TRD slice info

void FillTrdTrackletContainers(Double_t* values, Bool_t* stepSelections, Int_t itrig)
 fill global track info

void FillGlobalTrackContainers(Double_t* values, Bool_t* stepSelections, Int_t itrig)
 fill global track info

void FillCFContainer(AliCFContainer* cf, Double_t* values, Bool_t* stepSelections)
 Fill CF container

Bool_t Load(const Char_t* fn = "AnalysisResults.root", const Char_t* dir = "TRD_Performance", const Char_t* name = NULL)
 Load data from performance file

Bool_t PutTrendValue(const Char_t* name, Double_t val)
 Dump trending value to default file
void Terminate(Option_t* )
 Steer post-processing
Int_t Pdg2Idx(Int_t pdg) const
 Helper function converting PDG code into AliPID index

void Process2D(TH2 *const h, TGraphErrors** g)
 Do the processing

void PrintStatus(ULong_t s)
 Dump track status to stdout
TH1D* Proj2D(TH2* hist, TH1* mpvErr = 0x0, TH1* widthErr = 0x0, TH1* chi2 = 0x0)
 project the PH vs Slice 2D-histo into a 1D histo with Landau MPV and widths

TH2F* Proj3D(TH3* hist, TH2* accMap, Int_t binLow, Int_t binHigh, Float_t& entries)
  Project a 3D histogram to a 2D histogram in the Z axis interval [zbinLow,zbinHigh]
  Return the 2D histogram and also the number of entries into this projection (entries)
void CheckActiveSM(TH1D* phiProj, Bool_t* activeSM)
 Check the active super-modules

TH1F* EfficiencyFromPhiPt(AliCFContainer* cf, Int_t minNtrkl, Int_t maxNtrkl, Int_t stepNom, Int_t stepDenom, Int_t var = kTrackPt)
 Use the CF container to extract the efficiency vs pt (other variables beside pt also posible)

TH1F* EfficiencyTRD(TH3* tpc3D, TH3* trd3D, Bool_t useAcceptance = kTRUE)
 Calculate the TRD-TPC matching efficiency as function of pt

void PlotCentSummaryFromCF(Double_t* trendValues = 0x0, const Char_t* triggerName = "", Bool_t useIsolatedBC = kFALSE, Bool_t cutTOFbc = kFALSE)
 Make the centrality summary figure from the CF container

void PlotTrackingSummaryFromCF(Double_t* trendValues = 0x0, const Char_t* triggerName = "", Bool_t useIsolatedBC = kFALSE, Bool_t cutTOFbc = kFALSE)
  Plot tracking summary

  trendValues will be filled with trending variables
  trendValues[0] : TPC-TRD matching efficiency for positive tracks in the range 1.0<pt<3.0 GeV/c
  trendValues[1] : statistical error of trendValues[0]
  trendValues[2] : TPC-TRD matching efficiency for negative tracks in the range 1.0<pt<3.0 GeV/c
  trendValues[3] : statistical error of trendValues[2]
  trendValues[4] : TRD-TOF matching efficiency for positive tracks in the range 1.0<pt<3.0 GeV/c
  trendValues[5] : statistical error of trendValues[4]
  trendValues[6] : TRD-TOF matching efficiency for negative tracks in the range 1.0<pt<3.0 GeV/c
  trendValues[7] : statistical error of trendValues[6]
  trendValues[8] : Average number of TRD tracklets per track in the range 1.0<pt<3.0 GeV/c
  trendValues[9] : statistical error of trendValues[8]
  trendValues[10]: Average number of TRD clusters per track in the range 1.0<p<3.0 GeV/c
  trendValues[11]: statistical error of trendValues[10]

void PlotPidSummaryFromCF(Double_t* trendValues = 0x0, const Char_t* triggerName = "", Bool_t useIsolatedBC = kFALSE, Bool_t cutTOFbc = kFALSE)
 PID summary

  trendValues will be filled with trending variables
  trendValues[12] : PH plateau height from slices times 0.002
  trendValues[13] : statistical error of trendValues[12]
  trendValues[14] : PH slope from slices times 0.002
  trendValues[15] : statistical error of trendValues[14]
  trendValues[16] : Landau MPV of tracklet Qtot distribution at p=1GeV/c times 0.002
  trendValues[17] : Landau width of tracklet Qtot distribution at p=1GeV/c times 0.002
  trendValues[18] : PH plateau height from slices
  trendValues[19] : statistical error of trendValues[19]
  trendValues[20] : PH slope from slices
  trendValues[21] : statistical error of trendValues[20]
  trendValues[22] : Landau MPV of tracklet Qtot distribution at p=1GeV/c
  trendValues[23] : Landau width of tracklet Qtot distribution at p=1GeV/c

void PlotOtherSummaryFromCF(Double_t* trendValues)
 Plot additional QA

void DrawTRDGrid()
   Draw a grid of lines showing the TRD supermodule and stack structure in (eta,phi) coordinates.
   The canvas on which to draw must already exist.

void SetStyle(TH1* hist, Int_t lineStyle, Int_t lineColor, Int_t lineWidth, Int_t markerStyle, Int_t markerColor, Int_t markerSize)
 Set style settings for histograms

void SetStyle(TAxis* axis, const Char_t* title, Float_t titleSize, Float_t titleOffset, Bool_t centerTitle, Float_t labelSize)
 Set style settings for axes

void FindIsolatedBCs(TH1D* bcHist, Bool_t* isIsolated)
 Find the isolated bunch crossings

Int_t GetTriggerIndex(const Char_t* name, Bool_t createNew = kTRUE)
  Return the index of trigger "name" in the trigger histogram.
  If the index for this trigger does not exist yet, then assign one if createNew is set to TRUE

cout << "GetTriggerIndex for " << name << endl;
void PrintTriggers() const
  Print the available triggers for this run

Int_t GetTriggerCounter(const Char_t* triggerName) const
 Get the number of events for a given trigger name

Int_t GetNAssignedTriggers()
 Return the number of assigned triggers

AliTRDcheckESD()
void SetRefTrackFilter(AliAnalysisCuts *const filter)
Bool_t HasMC() const
{ return TESTBIT(fStatus, kMC);}
Bool_t IsCollision() const
{return TESTBIT(fStatus, kCollision);}
void SetCollision(Bool_t set = kTRUE)
{set ? SETBIT(fStatus, kCollision) : CLRBIT(fStatus, kCollision);}
void SetMC(Bool_t mc = kTRUE)
{ mc ? SETBIT(fStatus, kMC) : CLRBIT(fStatus, kMC);}
void AddUserTrigger(const Char_t* name)
AliTRDcheckESD& operator=(const AliTRDcheckESD& )
void Process(TH1** h, TGraphErrors* g)