///////////////////////////////////////////////////////////////////////////////
// Macro to setup AliPerformanceTask for
// TPC performance QA to run on PWGPP QA train.
//
// Input: ESDs, ESDfriends (optional), Kinematics (optional), TrackRefs (optional)
// ESD and MC input handlers must be attached to AliAnalysisManager
// to run default configuration.
//
// By default 1 performance components are added to
// the task:
// 1. AliPerformanceTPC (TPC cluster and track and event information)
//
// Usage on the analysis train (default configuration):
// gSystem->Load("libANALYSIS");
// gSystem->Load("libANALYSISalice");
// gSystem->Load("libTPCcalib.so");
// gSystem->Load("libTENDER.so");
// gSystem->Load("libPWGPP.so");
//
// gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTaskPerformanceTPCQA.C");
// AliPerformanceTask *tpcQA = AddTaskPerformanceTPC("kFALSE","kTRUE","triggerClass");
//
// Output:
// TPC.Performance.root file with TPC performance components is created.
//
// Each of the components contains THnSparse generic histograms which
// have to be analysed (post-analysis) by using Analyse() function.
// Each component contains such function.
//
//14.12.2009 - J.Otwinowski@gsi.de
///////////////////////////////////////////////////////////////////////////////
//____________________________________________
AliPerformanceTask* AddTaskPerformanceTPCQA(Bool_t bUseMCInfo=kFALSE, Bool_t bUseESDfriend=kTRUE, const char *triggerClass=0)
{
//
// Add AliPerformanceTask with TPC performance components
//
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if(!mgr) {
Error("AddTaskPerformanceTPC","AliAnalysisManager not set!");
return NULL;
}
TString type = mgr->GetInputEventHandler()->GetDataType();
if (!type.Contains("ESD")) {
Error("AddTaskPerformanceTPC", "ESD input handler needed!");
return NULL;
}
AliMCEventHandler *mcH = (AliMCEventHandler*)mgr->GetMCtruthEventHandler();
if (!mcH && bUseMCInfo) {
Error("AddTaskPerformanceTPC", "MC input handler needed!");
return NULL;
}
//
// Create task
//
AliPerformanceTask *task = new AliPerformanceTask("PerformanceQA","TPC Performance");
if (!task) {
Error("AddTaskPerformanceTPC", "TPC performance task cannot be created!");
return NULL;
}
task->SetUseMCInfo(bUseMCInfo);
task->SetUseESDfriend(bUseESDfriend);
task->SelectCollisionCandidates();
//
// Add task to analysis manager
//
mgr->AddTask(task);
//
// Create TPC-ESD track reconstruction cuts
// MB tracks
//
AliRecInfoCuts *pRecInfoCutsTPC = new AliRecInfoCuts();
if(pRecInfoCutsTPC) {
pRecInfoCutsTPC->SetMaxDCAToVertexXY(3.0);
pRecInfoCutsTPC->SetMaxDCAToVertexZ(3.0);
pRecInfoCutsTPC->SetRequireSigmaToVertex(kFALSE);
pRecInfoCutsTPC->SetRequireTPCRefit(kFALSE);
pRecInfoCutsTPC->SetAcceptKinkDaughters(kTRUE);
pRecInfoCutsTPC->SetMinNClustersTPC(70);
pRecInfoCutsTPC->SetMaxChi2PerClusterTPC(1000000.);
pRecInfoCutsTPC->SetDCAToVertex2D(kFALSE);
pRecInfoCutsTPC->SetHistogramsOn(kFALSE);
}
else {
Error("AddTaskPerformanceTPC", "AliRecInfoCutsTPC cannot be created!");
return NULL;
}
//
// Create TPC-MC track reconstruction cuts
//
AliMCInfoCuts *pMCInfoCuts = new AliMCInfoCuts();
if(pMCInfoCuts) {
pMCInfoCuts->SetMinTrackLength(70);
}
else {
Error("AddTaskPerformanceTPC", "AliMCInfoCuts cannot be created!");
return NULL;
}
//
// Create performance objects for TPC and set cuts
//
enum { kTPC = 0};
//
// TPC performance
//
AliPerformanceTPC *pCompTPC0 = new AliPerformanceTPC("AliPerformanceTPC","AliPerformanceTPC",kTPC,kFALSE);
if(!pCompTPC0) {
Error("AddTaskPerformanceTPC", "Cannot create AliPerformanceTPC");
}
pCompTPC0->SetAliRecInfoCuts(pRecInfoCutsTPC);
pCompTPC0->SetAliMCInfoCuts(pMCInfoCuts);
//
// Add components to the performance task
//
if(!bUseMCInfo) pCompTPC0->SetTriggerClass(triggerClass);
task->AddPerformanceObject( pCompTPC0 );
//
// Create containers for input
//
mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
//
// Create containers for output
//
AliAnalysisDataContainer *coutput_tpc = mgr->CreateContainer("TPCQA", TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TPC_%s", mgr->GetCommonFileName(), task->GetName()));
mgr->ConnectOutput(task, 1, coutput_tpc);
return task;
}
AddTaskPerformanceTPCQA.C:1 AddTaskPerformanceTPCQA.C:2 AddTaskPerformanceTPCQA.C:3 AddTaskPerformanceTPCQA.C:4 AddTaskPerformanceTPCQA.C:5 AddTaskPerformanceTPCQA.C:6 AddTaskPerformanceTPCQA.C:7 AddTaskPerformanceTPCQA.C:8 AddTaskPerformanceTPCQA.C:9 AddTaskPerformanceTPCQA.C:10 AddTaskPerformanceTPCQA.C:11 AddTaskPerformanceTPCQA.C:12 AddTaskPerformanceTPCQA.C:13 AddTaskPerformanceTPCQA.C:14 AddTaskPerformanceTPCQA.C:15 AddTaskPerformanceTPCQA.C:16 AddTaskPerformanceTPCQA.C:17 AddTaskPerformanceTPCQA.C:18 AddTaskPerformanceTPCQA.C:19 AddTaskPerformanceTPCQA.C:20 AddTaskPerformanceTPCQA.C:21 AddTaskPerformanceTPCQA.C:22 AddTaskPerformanceTPCQA.C:23 AddTaskPerformanceTPCQA.C:24 AddTaskPerformanceTPCQA.C:25 AddTaskPerformanceTPCQA.C:26 AddTaskPerformanceTPCQA.C:27 AddTaskPerformanceTPCQA.C:28 AddTaskPerformanceTPCQA.C:29 AddTaskPerformanceTPCQA.C:30 AddTaskPerformanceTPCQA.C:31 AddTaskPerformanceTPCQA.C:32 AddTaskPerformanceTPCQA.C:33 AddTaskPerformanceTPCQA.C:34 AddTaskPerformanceTPCQA.C:35 AddTaskPerformanceTPCQA.C:36 AddTaskPerformanceTPCQA.C:37 AddTaskPerformanceTPCQA.C:38 AddTaskPerformanceTPCQA.C:39 AddTaskPerformanceTPCQA.C:40 AddTaskPerformanceTPCQA.C:41 AddTaskPerformanceTPCQA.C:42 AddTaskPerformanceTPCQA.C:43 AddTaskPerformanceTPCQA.C:44 AddTaskPerformanceTPCQA.C:45 AddTaskPerformanceTPCQA.C:46 AddTaskPerformanceTPCQA.C:47 AddTaskPerformanceTPCQA.C:48 AddTaskPerformanceTPCQA.C:49 AddTaskPerformanceTPCQA.C:50 AddTaskPerformanceTPCQA.C:51 AddTaskPerformanceTPCQA.C:52 AddTaskPerformanceTPCQA.C:53 AddTaskPerformanceTPCQA.C:54 AddTaskPerformanceTPCQA.C:55 AddTaskPerformanceTPCQA.C:56 AddTaskPerformanceTPCQA.C:57 AddTaskPerformanceTPCQA.C:58 AddTaskPerformanceTPCQA.C:59 AddTaskPerformanceTPCQA.C:60 AddTaskPerformanceTPCQA.C:61 AddTaskPerformanceTPCQA.C:62 AddTaskPerformanceTPCQA.C:63 AddTaskPerformanceTPCQA.C:64 AddTaskPerformanceTPCQA.C:65 AddTaskPerformanceTPCQA.C:66 AddTaskPerformanceTPCQA.C:67 AddTaskPerformanceTPCQA.C:68 AddTaskPerformanceTPCQA.C:69 AddTaskPerformanceTPCQA.C:70 AddTaskPerformanceTPCQA.C:71 AddTaskPerformanceTPCQA.C:72 AddTaskPerformanceTPCQA.C:73 AddTaskPerformanceTPCQA.C:74 AddTaskPerformanceTPCQA.C:75 AddTaskPerformanceTPCQA.C:76 AddTaskPerformanceTPCQA.C:77 AddTaskPerformanceTPCQA.C:78 AddTaskPerformanceTPCQA.C:79 AddTaskPerformanceTPCQA.C:80 AddTaskPerformanceTPCQA.C:81 AddTaskPerformanceTPCQA.C:82 AddTaskPerformanceTPCQA.C:83 AddTaskPerformanceTPCQA.C:84 AddTaskPerformanceTPCQA.C:85 AddTaskPerformanceTPCQA.C:86 AddTaskPerformanceTPCQA.C:87 AddTaskPerformanceTPCQA.C:88 AddTaskPerformanceTPCQA.C:89 AddTaskPerformanceTPCQA.C:90 AddTaskPerformanceTPCQA.C:91 AddTaskPerformanceTPCQA.C:92 AddTaskPerformanceTPCQA.C:93 AddTaskPerformanceTPCQA.C:94 AddTaskPerformanceTPCQA.C:95 AddTaskPerformanceTPCQA.C:96 AddTaskPerformanceTPCQA.C:97 AddTaskPerformanceTPCQA.C:98 AddTaskPerformanceTPCQA.C:99 AddTaskPerformanceTPCQA.C:100 AddTaskPerformanceTPCQA.C:101 AddTaskPerformanceTPCQA.C:102 AddTaskPerformanceTPCQA.C:103 AddTaskPerformanceTPCQA.C:104 AddTaskPerformanceTPCQA.C:105 AddTaskPerformanceTPCQA.C:106 AddTaskPerformanceTPCQA.C:107 AddTaskPerformanceTPCQA.C:108 AddTaskPerformanceTPCQA.C:109 AddTaskPerformanceTPCQA.C:110 AddTaskPerformanceTPCQA.C:111 AddTaskPerformanceTPCQA.C:112 AddTaskPerformanceTPCQA.C:113 AddTaskPerformanceTPCQA.C:114 AddTaskPerformanceTPCQA.C:115 AddTaskPerformanceTPCQA.C:116 AddTaskPerformanceTPCQA.C:117 AddTaskPerformanceTPCQA.C:118 AddTaskPerformanceTPCQA.C:119 AddTaskPerformanceTPCQA.C:120 AddTaskPerformanceTPCQA.C:121 AddTaskPerformanceTPCQA.C:122 AddTaskPerformanceTPCQA.C:123 AddTaskPerformanceTPCQA.C:124 AddTaskPerformanceTPCQA.C:125 AddTaskPerformanceTPCQA.C:126 AddTaskPerformanceTPCQA.C:127 AddTaskPerformanceTPCQA.C:128 AddTaskPerformanceTPCQA.C:129 AddTaskPerformanceTPCQA.C:130 AddTaskPerformanceTPCQA.C:131 AddTaskPerformanceTPCQA.C:132 AddTaskPerformanceTPCQA.C:133 AddTaskPerformanceTPCQA.C:134 AddTaskPerformanceTPCQA.C:135 AddTaskPerformanceTPCQA.C:136 AddTaskPerformanceTPCQA.C:137 AddTaskPerformanceTPCQA.C:138 AddTaskPerformanceTPCQA.C:139 AddTaskPerformanceTPCQA.C:140 AddTaskPerformanceTPCQA.C:141 AddTaskPerformanceTPCQA.C:142