AliAnalysisTask *AddTaskTPCcalibResidualPID(TString period = "", Bool_t isPbpOrpPb = kFALSE,
Bool_t producePIDqa = kTRUE, Bool_t useTPCCutMIGeo = kTRUE,
Bool_t writeAdditionalQA = kFALSE,
Bool_t cutOnProdRadiusForV0el = kTRUE,
Bool_t correctdEdxEtaDependence = kFALSE,
Bool_t correctdEdxMultiplicityDependence = kFALSE,
Bool_t useMCinfo = kTRUE){
//get the current analysis manager
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
Error("AddTask_statsQA_TPCresPID", "No analysis manager found.");
return 0;
}
//========= Add task to the ANALYSIS manager =====
AliTPCcalibResidualPID *task=new AliTPCcalibResidualPID("TPCresPID");
task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kINT7);
// which THnSparse should be produced
task->SetProducePIDqa(producePIDqa);
AliESDtrackCuts* esdTrackCuts = 0x0;
AliESDtrackCuts* esdTrackCutsV0 = 0x0;
if (period.Contains("LHC11") || period.Contains("LHC12") || period.Contains("LHC13")) {
esdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
esdTrackCutsV0 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE);
task->SetESDtrackCuts(esdTrackCuts);
//task->SetESDtrackCutsV0(esdTrackCutsV0);
printf("Using standard ITS-TPC track cuts 2011.\n");
}
else if (period.Contains("LHC10")) {
esdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
esdTrackCutsV0 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kFALSE);
task->SetESDtrackCuts(esdTrackCuts);
//task->SetESDtrackCutsV0(esdTrackCutsV0);
printf("Using standard ITS-TPC track cuts 2010.\n");
}
else {
esdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
esdTrackCutsV0 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE);
task->SetESDtrackCuts(esdTrackCuts);
//task->SetESDtrackCutsV0(esdTrackCutsV0);
printf("WARNING: Cuts not configured for this period!!! Using standard ITS-TPC track cuts 2011\n");
}
task->SetIsPbpOrpPb(isPbpOrpPb);
if (task->GetIsPbpOrpPb()) {
printf("Collision type pPb/Pbp set -> Adapting vertex cuts!\n");
}
else {
printf("Collision type different from pPb/Pbp -> Using standard vertex cuts!\n");
}
task->SetZvtxCutEvent(10.0);
printf("Cut on z position of vertex: %.2f cm\n", task->GetZvtxCutEvent());
task->SetUseTPCCutMIGeo(useTPCCutMIGeo);
printf("UseTPCCutMIGeo: %d\n", task->GetUseTPCCutMIGeo());
task->SetWriteAdditionalOutput(writeAdditionalQA);
task->SetCutOnProdRadiusForV0el(cutOnProdRadiusForV0el);
task->SetCorrectdEdxEtaDependence(correctdEdxEtaDependence);
task->SetCorrectdEdxMultiplicityDependence(correctdEdxMultiplicityDependence);
task->SetUseMCinfo(useMCinfo);
printf("Eta correction: %s for this task\n",
task->GetCorrectdEdxEtaDependence() ? "enabled (only works if enabled in PIDresponse!)" : "explicitly disabled");
printf("Multiplicity correction: %s for this task\n",
task->GetCorrectdEdxMultiplicityDependence() ? "enabled (only works if enabled in PIDresponse!)" : "explicitly disabled");
printf("Use MC info: %d\n", task->GetUseMCinfo());
printf("WriteAdditionalOutput: %d\n", task->GetWriteAdditionalOutput());
printf("CutOnProdRadiusForV0el: %d\n", task->GetCutOnProdRadiusForV0el());
mgr->AddTask(task);
//================================================
// data containers
//================================================
// find input container
// define output containers
AliAnalysisDataContainer *coutput1 =
mgr->CreateContainer("TPCresPID", TObjArray::Class(),
AliAnalysisManager::kOutputContainer,"TPCresidualPID.root");
// connect containers
mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer() );
mgr->ConnectOutput (task, 1, coutput1);
if (task->GetWriteAdditionalOutput()) {
AliAnalysisDataContainer *coutput2 =
mgr->CreateContainer("TPCresPIDQA", TObjArray::Class(),
AliAnalysisManager::kOutputContainer,"TPCresidualPIDQA.root");
AliAnalysisDataContainer *coutput3 =
mgr->CreateContainer("TPCresPIDTreeEl", TTree::Class(),
AliAnalysisManager::kOutputContainer,"TPCresidualPIDTree_el.root");
AliAnalysisDataContainer *coutput4 =
mgr->CreateContainer("TPCresPIDTreePi", TTree::Class(),
AliAnalysisManager::kOutputContainer,"TPCresidualPIDTree_pi.root");
AliAnalysisDataContainer *coutput5 =
mgr->CreateContainer("TPCresPIDTreePr", TTree::Class(),
AliAnalysisManager::kOutputContainer,"TPCresidualPIDTree_pr.root");
mgr->ConnectOutput (task, 2, coutput2);
mgr->ConnectOutput (task, 3, coutput3);
mgr->ConnectOutput (task, 4, coutput4);
mgr->ConnectOutput (task, 5, coutput5);
}
return task;
}
AddTaskTPCcalibResidualPID.C:1 AddTaskTPCcalibResidualPID.C:2 AddTaskTPCcalibResidualPID.C:3 AddTaskTPCcalibResidualPID.C:4 AddTaskTPCcalibResidualPID.C:5 AddTaskTPCcalibResidualPID.C:6 AddTaskTPCcalibResidualPID.C:7 AddTaskTPCcalibResidualPID.C:8 AddTaskTPCcalibResidualPID.C:9 AddTaskTPCcalibResidualPID.C:10 AddTaskTPCcalibResidualPID.C:11 AddTaskTPCcalibResidualPID.C:12 AddTaskTPCcalibResidualPID.C:13 AddTaskTPCcalibResidualPID.C:14 AddTaskTPCcalibResidualPID.C:15 AddTaskTPCcalibResidualPID.C:16 AddTaskTPCcalibResidualPID.C:17 AddTaskTPCcalibResidualPID.C:18 AddTaskTPCcalibResidualPID.C:19 AddTaskTPCcalibResidualPID.C:20 AddTaskTPCcalibResidualPID.C:21 AddTaskTPCcalibResidualPID.C:22 AddTaskTPCcalibResidualPID.C:23 AddTaskTPCcalibResidualPID.C:24 AddTaskTPCcalibResidualPID.C:25 AddTaskTPCcalibResidualPID.C:26 AddTaskTPCcalibResidualPID.C:27 AddTaskTPCcalibResidualPID.C:28 AddTaskTPCcalibResidualPID.C:29 AddTaskTPCcalibResidualPID.C:30 AddTaskTPCcalibResidualPID.C:31 AddTaskTPCcalibResidualPID.C:32 AddTaskTPCcalibResidualPID.C:33 AddTaskTPCcalibResidualPID.C:34 AddTaskTPCcalibResidualPID.C:35 AddTaskTPCcalibResidualPID.C:36 AddTaskTPCcalibResidualPID.C:37 AddTaskTPCcalibResidualPID.C:38 AddTaskTPCcalibResidualPID.C:39 AddTaskTPCcalibResidualPID.C:40 AddTaskTPCcalibResidualPID.C:41 AddTaskTPCcalibResidualPID.C:42 AddTaskTPCcalibResidualPID.C:43 AddTaskTPCcalibResidualPID.C:44 AddTaskTPCcalibResidualPID.C:45 AddTaskTPCcalibResidualPID.C:46 AddTaskTPCcalibResidualPID.C:47 AddTaskTPCcalibResidualPID.C:48 AddTaskTPCcalibResidualPID.C:49 AddTaskTPCcalibResidualPID.C:50 AddTaskTPCcalibResidualPID.C:51 AddTaskTPCcalibResidualPID.C:52 AddTaskTPCcalibResidualPID.C:53 AddTaskTPCcalibResidualPID.C:54 AddTaskTPCcalibResidualPID.C:55 AddTaskTPCcalibResidualPID.C:56 AddTaskTPCcalibResidualPID.C:57 AddTaskTPCcalibResidualPID.C:58 AddTaskTPCcalibResidualPID.C:59 AddTaskTPCcalibResidualPID.C:60 AddTaskTPCcalibResidualPID.C:61 AddTaskTPCcalibResidualPID.C:62 AddTaskTPCcalibResidualPID.C:63 AddTaskTPCcalibResidualPID.C:64 AddTaskTPCcalibResidualPID.C:65 AddTaskTPCcalibResidualPID.C:66 AddTaskTPCcalibResidualPID.C:67 AddTaskTPCcalibResidualPID.C:68 AddTaskTPCcalibResidualPID.C:69 AddTaskTPCcalibResidualPID.C:70 AddTaskTPCcalibResidualPID.C:71 AddTaskTPCcalibResidualPID.C:72 AddTaskTPCcalibResidualPID.C:73 AddTaskTPCcalibResidualPID.C:74 AddTaskTPCcalibResidualPID.C:75 AddTaskTPCcalibResidualPID.C:76 AddTaskTPCcalibResidualPID.C:77 AddTaskTPCcalibResidualPID.C:78 AddTaskTPCcalibResidualPID.C:79 AddTaskTPCcalibResidualPID.C:80 AddTaskTPCcalibResidualPID.C:81 AddTaskTPCcalibResidualPID.C:82 AddTaskTPCcalibResidualPID.C:83 AddTaskTPCcalibResidualPID.C:84 AddTaskTPCcalibResidualPID.C:85 AddTaskTPCcalibResidualPID.C:86 AddTaskTPCcalibResidualPID.C:87 AddTaskTPCcalibResidualPID.C:88 AddTaskTPCcalibResidualPID.C:89 AddTaskTPCcalibResidualPID.C:90 AddTaskTPCcalibResidualPID.C:91 AddTaskTPCcalibResidualPID.C:92 AddTaskTPCcalibResidualPID.C:93 AddTaskTPCcalibResidualPID.C:94 AddTaskTPCcalibResidualPID.C:95 AddTaskTPCcalibResidualPID.C:96 AddTaskTPCcalibResidualPID.C:97 AddTaskTPCcalibResidualPID.C:98 AddTaskTPCcalibResidualPID.C:99 AddTaskTPCcalibResidualPID.C:100 AddTaskTPCcalibResidualPID.C:101 AddTaskTPCcalibResidualPID.C:102 AddTaskTPCcalibResidualPID.C:103 AddTaskTPCcalibResidualPID.C:104 AddTaskTPCcalibResidualPID.C:105 AddTaskTPCcalibResidualPID.C:106 AddTaskTPCcalibResidualPID.C:107 AddTaskTPCcalibResidualPID.C:108 AddTaskTPCcalibResidualPID.C:109 AddTaskTPCcalibResidualPID.C:110 AddTaskTPCcalibResidualPID.C:111 AddTaskTPCcalibResidualPID.C:112 AddTaskTPCcalibResidualPID.C:113 AddTaskTPCcalibResidualPID.C:114 AddTaskTPCcalibResidualPID.C:115 AddTaskTPCcalibResidualPID.C:116 AddTaskTPCcalibResidualPID.C:117 AddTaskTPCcalibResidualPID.C:118 AddTaskTPCcalibResidualPID.C:119 AddTaskTPCcalibResidualPID.C:120 AddTaskTPCcalibResidualPID.C:121 AddTaskTPCcalibResidualPID.C:122 AddTaskTPCcalibResidualPID.C:123 AddTaskTPCcalibResidualPID.C:124 AddTaskTPCcalibResidualPID.C:125 AddTaskTPCcalibResidualPID.C:126