]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/LambdaK0PbPb/AddTaskV0ForRAA.C
initialisation of RecoParams from CDB object
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / AddTaskV0ForRAA.C
CommitLineData
15668368 1AliAnalysisTaskV0ForRAA *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,Double_t etaCut,Bool_t mcEtaCut){
1c835fdc 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
1c835fdc 29
30 //========= Add task to the ANALYSIS manager =====
31 TString cutsname = "AliESDtrackCutsV0ForRAA";
32 TString taskname = "V0ForRAA";
33 TString outname = "V0ForRAA";
34
35 if(mcMode) {
36 cutsname +="_MCreco";
37 taskname +="_MCreco";
38 outname +="_MCreco";
39 }
40 if(mcTruthMode){
41 cutsname +="_MCTruth";
42 taskname +="_MCTruth";
43 outname +="_MCTruth";
44 }
45 if(anaPP) {
46 cutsname += "_pp";
47 taskname += "_pp";
48 outname += "_pp";
49 }
50 else {
51 cutsname +="_cent";
52 cutsname += cent;
53
54 taskname +="_cent";
55 taskname += cent;
56
57 outname +="_cent";
58 outname += cent;
59 }
60
0ee65027 61
1c835fdc 62
63 AliAnalysisTaskV0ForRAA *task = new AliAnalysisTaskV0ForRAA(taskname);
64
65 Double_t minPt=0.0;//15;
66
67 //--- esd track cuts V0 daughters ---//
68
69 AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts(cutsname);
70 // esdTrackCuts->SetMinNClustersTPC(70);
71 esdTrackCuts->SetMaxChi2PerClusterTPC(4);
72 esdTrackCuts->SetMinNCrossedRowsTPC(70);
73 esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
74
75 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
76 esdTrackCuts->SetRequireTPCRefit(kTRUE);
77 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
78
79 //esdTrackCuts->SetEtaRange(-0.9,+0.9);
80 task->SetESDTrackCuts(esdTrackCuts);
81
82
83 //--- analysis modes ---//
84 task->SetAnapp(anaPP);
85 task->SetMCMode(mcMode);
86 task->SetMCTruthMode(mcTruthMode);
87
88 //--- general cuts ---//
89 task->SetUseOnthefly(onFly);
90 task->SetUsePID(usePID,4.0,2100.0);
91 task->SetPrimVertexZCut(10.0,kTRUE);
92 task->SetCosOfPointingAngleK(0.99,1000.0);
93 task->SetCosOfPointingAngleL(0.99,1000.0);
94 task->SetRapidityCutMother(kTRUE,0.6);
0ee65027 95 task->SetDoEtaOfMCDaughtersCut(mcEtaCut,etaCut);
1c835fdc 96
97 //--- centrality ---//
98 task->SetUseCentrality(centDet); // 0=off, 1=VZERO, 2=SPD
99 task->SetUseCentralityBin(cent); // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
100 task->SetUseCentralityRange(centRange);
101
102 task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral );
103
104 mgr->AddTask(task);
105
106
107 //================================================
108 // data containers
109 //================================================
110 // find input container
111
112 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
113
114 AliAnalysisDataContainer *coutput1 =
0ee65027 115 mgr->CreateContainer(outname, TList::Class(),
116 AliAnalysisManager::kOutputContainer,Form("%s:foldername", AliAnalysisManager::GetCommonFileName()));
1c835fdc 117
118 //--- connect containers ---//
119 mgr->ConnectInput (task, 0, cinput );
120 mgr->ConnectOutput (task, 1, coutput1);
121
122
123 return task;
124}