]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/LambdaK0PbPb/AddTaskV0ForRAA.C
add task for AliAnalysisTaskV0ForRAA
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / AddTaskV0ForRAA.C
CommitLineData
1c835fdc 1AliAnalysisTask *AddTaskV0ForRAA(Bool_t anaPP=kFALSE, Int_t cent=0,Int_t centDet=1,Int_t centRange=0, Bool_t mcMode=kFALSE, Bool_t mcTruthMode=kFALSE,Bool_t onFly=kTRUE,Bool_t usePID=kFALSE){
2
3
4
5 //--- get the current analysis manager ---//
6 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 if (!mgr) {
8 Error("AddTask_V0ForRAA", "No analysis manager found.");
9 return 0;
10 }
11
12
13 // -- check for ESD and MC ---//
14 Bool_t hasESD=kFALSE,hasMC=kFALSE;
15 AliESDInputHandler *esdH =
16 static_cast<AliESDInputHandler*>(mgr->GetInputEventHandler());
17 if (esdH) hasESD=kTRUE;
18 cout<<"ESD: "<<hasESD<<endl;
19 if(!hasESD) return NULL;
20
21 if(mcMode || mcTruthMode){
22 AliMCEventHandler *mcH = dynamic_cast<AliMCEventHandler*>
23 (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
24 if (mcH) hasMC=kTRUE;
25 cout<<"MC: "<<hasMC<<endl;
26 if(!hasMC) return NULL;
27 }
28
29 //============= Set Task Name ===================
30 TString taskName=("AliAnalysisTaskV0ForRAA.cxx+");
31 //===============================================
32 // Load the task
33 gROOT->LoadMacro(taskName.Data());
34 if (gProof){
35 TString taskSO=gSystem->pwd();
36 taskSO+="/";
37 taskSO+=taskName(0,taskName.First('.'))+"_cxx.so";
38 gProof->Exec(Form("gSystem->Load(\"%s\")",taskSO.Data()),kTRUE);
39 }
40
41 //========= Add task to the ANALYSIS manager =====
42 TString cutsname = "AliESDtrackCutsV0ForRAA";
43 TString taskname = "V0ForRAA";
44 TString outname = "V0ForRAA";
45
46 if(mcMode) {
47 cutsname +="_MCreco";
48 taskname +="_MCreco";
49 outname +="_MCreco";
50 }
51 if(mcTruthMode){
52 cutsname +="_MCTruth";
53 taskname +="_MCTruth";
54 outname +="_MCTruth";
55 }
56 if(anaPP) {
57 cutsname += "_pp";
58 taskname += "_pp";
59 outname += "_pp";
60 }
61 else {
62 cutsname +="_cent";
63 cutsname += cent;
64
65 taskname +="_cent";
66 taskname += cent;
67
68 outname +="_cent";
69 outname += cent;
70 }
71
72 TString outputname;
73 outputname = outname;
74 outputname += ".root";
75
76 AliAnalysisTaskV0ForRAA *task = new AliAnalysisTaskV0ForRAA(taskname);
77
78 Double_t minPt=0.0;//15;
79
80 //--- esd track cuts V0 daughters ---//
81
82 AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts(cutsname);
83 // esdTrackCuts->SetMinNClustersTPC(70);
84 esdTrackCuts->SetMaxChi2PerClusterTPC(4);
85 esdTrackCuts->SetMinNCrossedRowsTPC(70);
86 esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
87
88 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
89 esdTrackCuts->SetRequireTPCRefit(kTRUE);
90 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
91
92 //esdTrackCuts->SetEtaRange(-0.9,+0.9);
93 task->SetESDTrackCuts(esdTrackCuts);
94
95
96 //--- analysis modes ---//
97 task->SetAnapp(anaPP);
98 task->SetMCMode(mcMode);
99 task->SetMCTruthMode(mcTruthMode);
100
101 //--- general cuts ---//
102 task->SetUseOnthefly(onFly);
103 task->SetUsePID(usePID,4.0,2100.0);
104 task->SetPrimVertexZCut(10.0,kTRUE);
105 task->SetCosOfPointingAngleK(0.99,1000.0);
106 task->SetCosOfPointingAngleL(0.99,1000.0);
107 task->SetRapidityCutMother(kTRUE,0.6);
108 task->SetDoEtaOfMCDaughtersCut(kFALSE,0.9);
109 task->SetCtauCut(5.0,3.8,0.5,1.5);
110
111 //--- centrality ---//
112 task->SetUseCentrality(centDet); // 0=off, 1=VZERO, 2=SPD
113 task->SetUseCentralityBin(cent); // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
114 task->SetUseCentralityRange(centRange);
115
116 task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral );
117
118 mgr->AddTask(task);
119
120
121 //================================================
122 // data containers
123 //================================================
124 // find input container
125
126 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
127
128 AliAnalysisDataContainer *coutput1 =
129 mgr->CreateContainer(outname, TList::Class(),
130 AliAnalysisManager::kOutputContainer,outputname);
131
132 //--- connect containers ---//
133 mgr->ConnectInput (task, 0, cinput );
134 mgr->ConnectOutput (task, 1, coutput1);
135
136
137 return task;
138}