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