//____________________________________________
AliPerformanceTask* AddTaskPerformanceITSTPCMatch(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("Performance","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
// MATCH tracks
//
AliRecInfoCuts *pRecInfoCutsMATCH = new AliRecInfoCuts();
if(pRecInfoCutsMATCH) {
pRecInfoCutsMATCH->SetMaxDCAToVertexXY(3.0);
pRecInfoCutsMATCH->SetMaxDCAToVertexZ(3..0);
pRecInfoCutsMATCH->SetRequireSigmaToVertex(kFALSE);
pRecInfoCutsMATCH->SetRequireTPCRefit(kFALSE);
pRecInfoCutsMATCH->SetAcceptKinkDaughters(kTRUE);
pRecInfoCutsMATCH->SetMinNClustersTPC(70);
pRecInfoCutsMATCH->SetMaxChi2PerClusterTPC(1000000.);
pRecInfoCutsMATCH->SetDCAToVertex2D(kFALSE);
pRecInfoCutsMATCH->SetTPCITSMatchingRadius(70);
pRecInfoCutsMATCH->SetTPCTRDMatchingRadius(260);
pRecInfoCutsMATCH->SetMinNClustersITS(3);
pRecInfoCutsMATCH->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
//
// TPC+ITS matching performance
//
AliPerformanceMatch *pCompMatch0 = new AliPerformanceMatch("AliPerformanceMatchTPCITS","AliPerformanceMatchTPCITS",0,kFALSE);
if(!pCompMatch0) {
Error("AddTaskPerformanceMatch", "Cannot create AliPerformanceMatchTPCITS");
}
pCompMatch0->SetAliRecInfoCuts(pRecInfoCutsMATCH);
pCompMatch0->SetAliMCInfoCuts(pMCInfoCuts);
//
// TPC+TRD matching performance
//
AliPerformanceMatch *pCompMatch1 = new AliPerformanceMatch("AliPerformanceMatchTPCTRD","AliPerformanceMatchTPCTRD",1,kFALSE);
if(!pCompMatch1) {
Error("AddTaskPerformanceMatch", "Cannot create AliPerformanceMatchTPCTRD");
}
pCompMatch1->SetAliRecInfoCuts(pRecInfoCutsMATCH);
pCompMatch1->SetAliMCInfoCuts(pMCInfoCuts);
AliPerformanceMatch *pCompMatch2 = new AliPerformanceMatch("AliPerformanceMatchTPCEFF","AliPerformanceMatchTPCEFF",2,kFALSE);
if(!pCompMatch2) {
Error("AddTaskPerformanceMatch", "Cannot create AliPerformanceMatchTPCEFF");
}
pCompMatch2->SetAliRecInfoCuts(pRecInfoCutsMATCH);
pCompMatch2->SetAliMCInfoCuts(pMCInfoCuts);
//
// Add components to the performance task
//
task->AddPerformanceObject( pCompMatch0 );
//task->AddPerformanceObject( pCompMatch1 );
task->AddPerformanceObject( pCompMatch2 );
//
if(!bUseMCInfo && triggerClass) {
pCompDEdx3->SetTriggerClass(triggerClass);
pCompDCA0->SetTriggerClass(triggerClass);
pCompTPC0->SetTriggerClass(triggerClass);
pCompMatch0->SetTriggerClass(triggerClass);
pCompMatch1->SetTriggerClass(triggerClass);
pCompMatch2->SetTriggerClass(triggerClass);
}
//
// Create containers for input
//
mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
//
// Create containers for output
//
AliAnalysisDataContainer *coutput_tpc = mgr->CreateContainer("ITSTPCMatch", TList::Class(), AliAnalysisManager::kOutputContainer, Form("TPC.%sDet.root", task->GetName()));
mgr->ConnectOutput(task, 1, coutput_tpc);
AliAnalysisDataContainer *coutput2_tpc = mgr->CreateContainer("TPCTPCMatchSummary", TTree::Class(), AliAnalysisManager::kParamContainer, "trending.root:SummaryTPCQA");
mgr->ConnectOutput(task, 2, coutput2_tpc);
return task;
}
AddTaskPerformanceITSTPCMatch.C:1 AddTaskPerformanceITSTPCMatch.C:2 AddTaskPerformanceITSTPCMatch.C:3 AddTaskPerformanceITSTPCMatch.C:4 AddTaskPerformanceITSTPCMatch.C:5 AddTaskPerformanceITSTPCMatch.C:6 AddTaskPerformanceITSTPCMatch.C:7 AddTaskPerformanceITSTPCMatch.C:8 AddTaskPerformanceITSTPCMatch.C:9 AddTaskPerformanceITSTPCMatch.C:10 AddTaskPerformanceITSTPCMatch.C:11 AddTaskPerformanceITSTPCMatch.C:12 AddTaskPerformanceITSTPCMatch.C:13 AddTaskPerformanceITSTPCMatch.C:14 AddTaskPerformanceITSTPCMatch.C:15 AddTaskPerformanceITSTPCMatch.C:16 AddTaskPerformanceITSTPCMatch.C:17 AddTaskPerformanceITSTPCMatch.C:18 AddTaskPerformanceITSTPCMatch.C:19 AddTaskPerformanceITSTPCMatch.C:20 AddTaskPerformanceITSTPCMatch.C:21 AddTaskPerformanceITSTPCMatch.C:22 AddTaskPerformanceITSTPCMatch.C:23 AddTaskPerformanceITSTPCMatch.C:24 AddTaskPerformanceITSTPCMatch.C:25 AddTaskPerformanceITSTPCMatch.C:26 AddTaskPerformanceITSTPCMatch.C:27 AddTaskPerformanceITSTPCMatch.C:28 AddTaskPerformanceITSTPCMatch.C:29 AddTaskPerformanceITSTPCMatch.C:30 AddTaskPerformanceITSTPCMatch.C:31 AddTaskPerformanceITSTPCMatch.C:32 AddTaskPerformanceITSTPCMatch.C:33 AddTaskPerformanceITSTPCMatch.C:34 AddTaskPerformanceITSTPCMatch.C:35 AddTaskPerformanceITSTPCMatch.C:36 AddTaskPerformanceITSTPCMatch.C:37 AddTaskPerformanceITSTPCMatch.C:38 AddTaskPerformanceITSTPCMatch.C:39 AddTaskPerformanceITSTPCMatch.C:40 AddTaskPerformanceITSTPCMatch.C:41 AddTaskPerformanceITSTPCMatch.C:42 AddTaskPerformanceITSTPCMatch.C:43 AddTaskPerformanceITSTPCMatch.C:44 AddTaskPerformanceITSTPCMatch.C:45 AddTaskPerformanceITSTPCMatch.C:46 AddTaskPerformanceITSTPCMatch.C:47 AddTaskPerformanceITSTPCMatch.C:48 AddTaskPerformanceITSTPCMatch.C:49 AddTaskPerformanceITSTPCMatch.C:50 AddTaskPerformanceITSTPCMatch.C:51 AddTaskPerformanceITSTPCMatch.C:52 AddTaskPerformanceITSTPCMatch.C:53 AddTaskPerformanceITSTPCMatch.C:54 AddTaskPerformanceITSTPCMatch.C:55 AddTaskPerformanceITSTPCMatch.C:56 AddTaskPerformanceITSTPCMatch.C:57 AddTaskPerformanceITSTPCMatch.C:58 AddTaskPerformanceITSTPCMatch.C:59 AddTaskPerformanceITSTPCMatch.C:60 AddTaskPerformanceITSTPCMatch.C:61 AddTaskPerformanceITSTPCMatch.C:62 AddTaskPerformanceITSTPCMatch.C:63 AddTaskPerformanceITSTPCMatch.C:64 AddTaskPerformanceITSTPCMatch.C:65 AddTaskPerformanceITSTPCMatch.C:66 AddTaskPerformanceITSTPCMatch.C:67 AddTaskPerformanceITSTPCMatch.C:68 AddTaskPerformanceITSTPCMatch.C:69 AddTaskPerformanceITSTPCMatch.C:70 AddTaskPerformanceITSTPCMatch.C:71 AddTaskPerformanceITSTPCMatch.C:72 AddTaskPerformanceITSTPCMatch.C:73 AddTaskPerformanceITSTPCMatch.C:74 AddTaskPerformanceITSTPCMatch.C:75 AddTaskPerformanceITSTPCMatch.C:76 AddTaskPerformanceITSTPCMatch.C:77 AddTaskPerformanceITSTPCMatch.C:78 AddTaskPerformanceITSTPCMatch.C:79 AddTaskPerformanceITSTPCMatch.C:80 AddTaskPerformanceITSTPCMatch.C:81 AddTaskPerformanceITSTPCMatch.C:82 AddTaskPerformanceITSTPCMatch.C:83 AddTaskPerformanceITSTPCMatch.C:84 AddTaskPerformanceITSTPCMatch.C:85 AddTaskPerformanceITSTPCMatch.C:86 AddTaskPerformanceITSTPCMatch.C:87 AddTaskPerformanceITSTPCMatch.C:88 AddTaskPerformanceITSTPCMatch.C:89 AddTaskPerformanceITSTPCMatch.C:90 AddTaskPerformanceITSTPCMatch.C:91 AddTaskPerformanceITSTPCMatch.C:92 AddTaskPerformanceITSTPCMatch.C:93 AddTaskPerformanceITSTPCMatch.C:94 AddTaskPerformanceITSTPCMatch.C:95 AddTaskPerformanceITSTPCMatch.C:96 AddTaskPerformanceITSTPCMatch.C:97 AddTaskPerformanceITSTPCMatch.C:98 AddTaskPerformanceITSTPCMatch.C:99 AddTaskPerformanceITSTPCMatch.C:100 AddTaskPerformanceITSTPCMatch.C:101 AddTaskPerformanceITSTPCMatch.C:102 AddTaskPerformanceITSTPCMatch.C:103 AddTaskPerformanceITSTPCMatch.C:104 AddTaskPerformanceITSTPCMatch.C:105 AddTaskPerformanceITSTPCMatch.C:106 AddTaskPerformanceITSTPCMatch.C:107 AddTaskPerformanceITSTPCMatch.C:108 AddTaskPerformanceITSTPCMatch.C:109 AddTaskPerformanceITSTPCMatch.C:110 AddTaskPerformanceITSTPCMatch.C:111 AddTaskPerformanceITSTPCMatch.C:112 AddTaskPerformanceITSTPCMatch.C:113 AddTaskPerformanceITSTPCMatch.C:114 AddTaskPerformanceITSTPCMatch.C:115 AddTaskPerformanceITSTPCMatch.C:116 AddTaskPerformanceITSTPCMatch.C:117 AddTaskPerformanceITSTPCMatch.C:118 AddTaskPerformanceITSTPCMatch.C:119 AddTaskPerformanceITSTPCMatch.C:120 AddTaskPerformanceITSTPCMatch.C:121 AddTaskPerformanceITSTPCMatch.C:122 AddTaskPerformanceITSTPCMatch.C:123 AddTaskPerformanceITSTPCMatch.C:124 AddTaskPerformanceITSTPCMatch.C:125 AddTaskPerformanceITSTPCMatch.C:126 AddTaskPerformanceITSTPCMatch.C:127 AddTaskPerformanceITSTPCMatch.C:128 AddTaskPerformanceITSTPCMatch.C:129 AddTaskPerformanceITSTPCMatch.C:130 AddTaskPerformanceITSTPCMatch.C:131 AddTaskPerformanceITSTPCMatch.C:132 AddTaskPerformanceITSTPCMatch.C:133 AddTaskPerformanceITSTPCMatch.C:134 AddTaskPerformanceITSTPCMatch.C:135 AddTaskPerformanceITSTPCMatch.C:136 AddTaskPerformanceITSTPCMatch.C:137 AddTaskPerformanceITSTPCMatch.C:138 AddTaskPerformanceITSTPCMatch.C:139 AddTaskPerformanceITSTPCMatch.C:140 AddTaskPerformanceITSTPCMatch.C:141