///////////////////////////////////////////////////////////////////////////////
// Macro to setup AliPerformanceTask for
// TPC and TPC+ITS 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/AddTaskPerformanceTPCITSQA.C");
// AliPerformanceTask *tpcQA = AddTaskPerformanceTPC("kFALSE","kTRUE","triggerClass");
//
// Output:
// TPCITS.Performance.root file with TPC and TPCITS 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* AddTaskPerformanceTPCITSQA(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-ITS 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->SetMinNClustersITS(2);
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 TPCITS set cuts
//
enum { kTPC = 0, kTPCITS};
//
// TPC performance
//
AliPerformanceTPC *pCompTPC0 = new AliPerformanceTPC("AliPerformanceTPC","AliPerformanceTPC",kTPC,kFALSE);
if(!pCompTPC0) {
Error("AddTaskPerformanceTPC", "Cannot create AliPerformanceTPC");
}
pCompTPC0->SetAliRecInfoCuts(pRecInfoCutsTPC);
pCompTPC0->SetAliMCInfoCuts(pMCInfoCuts);
//
// TPC+ITS performance
//
AliPerformanceTPC *pCompTPC1 = new AliPerformanceTPC("AliPerformanceTPCITS","AliPerformanceTPCITS",kTPCITS,kFALSE);
if(!pCompTPC1) {
Error("AddTaskPerformanceTPC", "Cannot create AliPerformanceTPCITS");
}
pCompTPC1->SetAliRecInfoCuts(pRecInfoCutsTPC);
pCompTPC1->SetAliMCInfoCuts(pMCInfoCuts);
//
// Add components to the performance task
//
if(!bUseMCInfo) {
pCompTPC0->SetTriggerClass(triggerClass);
pCompTPC1->SetTriggerClass(triggerClass);
}
task->AddPerformanceObject( pCompTPC0 );
task->AddPerformanceObject( pCompTPC1 );
//
// Create containers for input
//
mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
//
// Create containers for output
//
AliAnalysisDataContainer *coutput_tpc = mgr->CreateContainer("TPCITSQA", TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TPCITS_%s", mgr->GetCommonFileName(), task->GetName()));
mgr->ConnectOutput(task, 1, coutput_tpc);
return task;
}
AddTaskPerformanceTPCITSQA.C:1 AddTaskPerformanceTPCITSQA.C:2 AddTaskPerformanceTPCITSQA.C:3 AddTaskPerformanceTPCITSQA.C:4 AddTaskPerformanceTPCITSQA.C:5 AddTaskPerformanceTPCITSQA.C:6 AddTaskPerformanceTPCITSQA.C:7 AddTaskPerformanceTPCITSQA.C:8 AddTaskPerformanceTPCITSQA.C:9 AddTaskPerformanceTPCITSQA.C:10 AddTaskPerformanceTPCITSQA.C:11 AddTaskPerformanceTPCITSQA.C:12 AddTaskPerformanceTPCITSQA.C:13 AddTaskPerformanceTPCITSQA.C:14 AddTaskPerformanceTPCITSQA.C:15 AddTaskPerformanceTPCITSQA.C:16 AddTaskPerformanceTPCITSQA.C:17 AddTaskPerformanceTPCITSQA.C:18 AddTaskPerformanceTPCITSQA.C:19 AddTaskPerformanceTPCITSQA.C:20 AddTaskPerformanceTPCITSQA.C:21 AddTaskPerformanceTPCITSQA.C:22 AddTaskPerformanceTPCITSQA.C:23 AddTaskPerformanceTPCITSQA.C:24 AddTaskPerformanceTPCITSQA.C:25 AddTaskPerformanceTPCITSQA.C:26 AddTaskPerformanceTPCITSQA.C:27 AddTaskPerformanceTPCITSQA.C:28 AddTaskPerformanceTPCITSQA.C:29 AddTaskPerformanceTPCITSQA.C:30 AddTaskPerformanceTPCITSQA.C:31 AddTaskPerformanceTPCITSQA.C:32 AddTaskPerformanceTPCITSQA.C:33 AddTaskPerformanceTPCITSQA.C:34 AddTaskPerformanceTPCITSQA.C:35 AddTaskPerformanceTPCITSQA.C:36 AddTaskPerformanceTPCITSQA.C:37 AddTaskPerformanceTPCITSQA.C:38 AddTaskPerformanceTPCITSQA.C:39 AddTaskPerformanceTPCITSQA.C:40 AddTaskPerformanceTPCITSQA.C:41 AddTaskPerformanceTPCITSQA.C:42 AddTaskPerformanceTPCITSQA.C:43 AddTaskPerformanceTPCITSQA.C:44 AddTaskPerformanceTPCITSQA.C:45 AddTaskPerformanceTPCITSQA.C:46 AddTaskPerformanceTPCITSQA.C:47 AddTaskPerformanceTPCITSQA.C:48 AddTaskPerformanceTPCITSQA.C:49 AddTaskPerformanceTPCITSQA.C:50 AddTaskPerformanceTPCITSQA.C:51 AddTaskPerformanceTPCITSQA.C:52 AddTaskPerformanceTPCITSQA.C:53 AddTaskPerformanceTPCITSQA.C:54 AddTaskPerformanceTPCITSQA.C:55 AddTaskPerformanceTPCITSQA.C:56 AddTaskPerformanceTPCITSQA.C:57 AddTaskPerformanceTPCITSQA.C:58 AddTaskPerformanceTPCITSQA.C:59 AddTaskPerformanceTPCITSQA.C:60 AddTaskPerformanceTPCITSQA.C:61 AddTaskPerformanceTPCITSQA.C:62 AddTaskPerformanceTPCITSQA.C:63 AddTaskPerformanceTPCITSQA.C:64 AddTaskPerformanceTPCITSQA.C:65 AddTaskPerformanceTPCITSQA.C:66 AddTaskPerformanceTPCITSQA.C:67 AddTaskPerformanceTPCITSQA.C:68 AddTaskPerformanceTPCITSQA.C:69 AddTaskPerformanceTPCITSQA.C:70 AddTaskPerformanceTPCITSQA.C:71 AddTaskPerformanceTPCITSQA.C:72 AddTaskPerformanceTPCITSQA.C:73 AddTaskPerformanceTPCITSQA.C:74 AddTaskPerformanceTPCITSQA.C:75 AddTaskPerformanceTPCITSQA.C:76 AddTaskPerformanceTPCITSQA.C:77 AddTaskPerformanceTPCITSQA.C:78 AddTaskPerformanceTPCITSQA.C:79 AddTaskPerformanceTPCITSQA.C:80 AddTaskPerformanceTPCITSQA.C:81 AddTaskPerformanceTPCITSQA.C:82 AddTaskPerformanceTPCITSQA.C:83 AddTaskPerformanceTPCITSQA.C:84 AddTaskPerformanceTPCITSQA.C:85 AddTaskPerformanceTPCITSQA.C:86 AddTaskPerformanceTPCITSQA.C:87 AddTaskPerformanceTPCITSQA.C:88 AddTaskPerformanceTPCITSQA.C:89 AddTaskPerformanceTPCITSQA.C:90 AddTaskPerformanceTPCITSQA.C:91 AddTaskPerformanceTPCITSQA.C:92 AddTaskPerformanceTPCITSQA.C:93 AddTaskPerformanceTPCITSQA.C:94 AddTaskPerformanceTPCITSQA.C:95 AddTaskPerformanceTPCITSQA.C:96 AddTaskPerformanceTPCITSQA.C:97 AddTaskPerformanceTPCITSQA.C:98 AddTaskPerformanceTPCITSQA.C:99 AddTaskPerformanceTPCITSQA.C:100 AddTaskPerformanceTPCITSQA.C:101 AddTaskPerformanceTPCITSQA.C:102 AddTaskPerformanceTPCITSQA.C:103 AddTaskPerformanceTPCITSQA.C:104 AddTaskPerformanceTPCITSQA.C:105 AddTaskPerformanceTPCITSQA.C:106 AddTaskPerformanceTPCITSQA.C:107 AddTaskPerformanceTPCITSQA.C:108 AddTaskPerformanceTPCITSQA.C:109 AddTaskPerformanceTPCITSQA.C:110 AddTaskPerformanceTPCITSQA.C:111 AddTaskPerformanceTPCITSQA.C:112 AddTaskPerformanceTPCITSQA.C:113 AddTaskPerformanceTPCITSQA.C:114 AddTaskPerformanceTPCITSQA.C:115 AddTaskPerformanceTPCITSQA.C:116 AddTaskPerformanceTPCITSQA.C:117 AddTaskPerformanceTPCITSQA.C:118 AddTaskPerformanceTPCITSQA.C:119 AddTaskPerformanceTPCITSQA.C:120 AddTaskPerformanceTPCITSQA.C:121 AddTaskPerformanceTPCITSQA.C:122 AddTaskPerformanceTPCITSQA.C:123 AddTaskPerformanceTPCITSQA.C:124 AddTaskPerformanceTPCITSQA.C:125 AddTaskPerformanceTPCITSQA.C:126 AddTaskPerformanceTPCITSQA.C:127 AddTaskPerformanceTPCITSQA.C:128 AddTaskPerformanceTPCITSQA.C:129 AddTaskPerformanceTPCITSQA.C:130 AddTaskPerformanceTPCITSQA.C:131 AddTaskPerformanceTPCITSQA.C:132 AddTaskPerformanceTPCITSQA.C:133 AddTaskPerformanceTPCITSQA.C:134 AddTaskPerformanceTPCITSQA.C:135 AddTaskPerformanceTPCITSQA.C:136 AddTaskPerformanceTPCITSQA.C:137 AddTaskPerformanceTPCITSQA.C:138 AddTaskPerformanceTPCITSQA.C:139 AddTaskPerformanceTPCITSQA.C:140 AddTaskPerformanceTPCITSQA.C:141 AddTaskPerformanceTPCITSQA.C:142 AddTaskPerformanceTPCITSQA.C:143 AddTaskPerformanceTPCITSQA.C:144 AddTaskPerformanceTPCITSQA.C:145 AddTaskPerformanceTPCITSQA.C:146 AddTaskPerformanceTPCITSQA.C:147 AddTaskPerformanceTPCITSQA.C:148 AddTaskPerformanceTPCITSQA.C:149 AddTaskPerformanceTPCITSQA.C:150 AddTaskPerformanceTPCITSQA.C:151 AddTaskPerformanceTPCITSQA.C:152 AddTaskPerformanceTPCITSQA.C:153 AddTaskPerformanceTPCITSQA.C:154 AddTaskPerformanceTPCITSQA.C:155 AddTaskPerformanceTPCITSQA.C:156 AddTaskPerformanceTPCITSQA.C:157