1 AliAnalysisTask *AddTaskTPCPIDEtaQA(TString period = "", Bool_t isPbpOrpPb = kFALSE,
2 Int_t tpcCutType = AliTPCPIDBase::kTPCCutMIGeo /*AliTPCPIDBase::kTPCnclCut*/,
3 Bool_t usePhiCut = kFALSE,
4 Double_t ptThresholdForPhiCut = 0.0){
5 //get the current analysis manager
6 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8 Error("AddTask_bhess_PIDetaAdv", "No analysis manager found.");
12 //========= Add task to the ANALYSIS manager =====
13 AliTPCPIDEtaQA *task = new AliTPCPIDEtaQA("TPCPIDEtaQA");
14 task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kINT7);
19 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
20 AliESDtrackCuts* esdTrackCutsL = 0x0;
22 printf("\nSettings:\n");
23 if (period.Contains("LHC11") || period.Contains("LHC12") || period.Contains("LHC13")) {
24 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
25 printf("Using standard ITS-TPC track cuts 2011\n");
27 else if (period.Contains("LHC10")) {
28 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
29 printf("Using standard ITS-TPC track cuts 2010\n");
32 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
33 printf("WARNING: Cuts not configured for this period!!! Using standard ITS-TPC track cuts 2011\n");
37 esdTrackCutsL->SetMinNCrossedRowsTPC(120);
38 esdTrackCutsL->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
39 esdTrackCutsL->SetMaxChi2PerClusterITS(36);
40 esdTrackCutsL->SetMaxFractionSharedTPCClusters(0.4);
41 esdTrackCutsL->SetMaxChi2TPCConstrainedGlobal(36);
44 task->SetIsPbpOrpPb(isPbpOrpPb);
45 if (task->GetIsPbpOrpPb()) {
46 printf("Collision type pPb/Pbp set -> Adapting vertex cuts!\n");
49 printf("Collision type different from pPb/Pbp -> Using standard vertex cuts!\n");
52 trackFilter->AddCuts(esdTrackCutsL);
53 task->SetTrackFilter(trackFilter);
56 task->SetUsePhiCut(usePhiCut);
57 task->SetPtThresholdForPhiCut(ptThresholdForPhiCut);
58 task->SetTPCcutType(tpcCutType);
60 printf("Eta cut: %f\n", task->GetEtaCut());
61 printf("UsePhiCut: %d\n", task->GetUsePhiCut());
62 if (task->GetUsePhiCut())
63 printf("PtThresholdForPhiCut: %f\n", task->GetPtThresholdForPhiCut());
64 printf("UseTPCCutMIGeo: %d\n", task->GetUseTPCCutMIGeo());
65 printf("UseTPCnclCut: %d\n", task->GetUseTPCnclCut());
72 task->SetZvtxCutEvent(10.0);
73 printf("Cut on z position of vertex: %.2f cm\n", task->GetZvtxCutEvent());
75 printf("UsePhiCut: %d\nPtThresholdForPhiCut: %.3f GeV/c\n\n", task->GetUsePhiCut(), task->GetPtThresholdForPhiCut());
79 //================================================
81 //================================================
82 // find input container
83 //below the trunk version
84 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
86 //dumm output container
87 AliAnalysisDataContainer *coutput0 =
88 mgr->CreateContainer("TPCPIDEtaQA_tree",
90 AliAnalysisManager::kExchangeContainer,
91 "TPCPIDEtaQA_default");
93 //define output containers, please use 'username'_'somename'
94 AliAnalysisDataContainer *coutput1 =
95 mgr->CreateContainer("TPCPIDEtaQA", TObjArray::Class(),
96 AliAnalysisManager::kOutputContainer,"TPCPIDEtaQA.root");
99 mgr->ConnectInput (task, 0, cinput );
100 mgr->ConnectOutput (task, 0, coutput0);
101 mgr->ConnectOutput (task, 1, coutput1);