]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/LambdaK0PbPb/AddTaskV0ForRAA.C
Adding HFCJ QA task
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / AddTaskV0ForRAA.C
CommitLineData
5842a526 1AliAnalysisTaskV0ForRAA *AddTaskV0ForRAA(Bool_t anaPP=kFALSE, Bool_t wSDD=kFALSE,Int_t cent=0,Int_t centDet=1,Int_t centRange=0, Bool_t mcMode=kFALSE, Bool_t mcTruthMode=kFALSE,Bool_t usePID=kFALSE,Double_t radCut=0.0,const Char_t * addname=""){
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
0afca428 61 cutsname += addname;
62 taskname += addname;
63 outname += addname;
0ee65027 64
1c835fdc 65
66 AliAnalysisTaskV0ForRAA *task = new AliAnalysisTaskV0ForRAA(taskname);
67
aa3d4e29 68 Double_t minPt=0.0;
1c835fdc 69
70 //--- esd track cuts V0 daughters ---//
aa3d4e29 71 // esd track cuts for pions high pt
1c835fdc 72 AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts(cutsname);
1c835fdc 73 esdTrackCuts->SetMaxChi2PerClusterTPC(4);
74 esdTrackCuts->SetMinNCrossedRowsTPC(70);
1c835fdc 75 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
76 esdTrackCuts->SetRequireTPCRefit(kTRUE);
77 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1c835fdc 78
aa3d4e29 79 // esd track cuts for protons high pt
80 TString cutsnameCh = cutsname;
81 cutsnameCh +="_charged";
82 AliESDtrackCuts* esdTrackCutsCharged = new AliESDtrackCuts(cutsnameCh);
83 esdTrackCutsCharged->SetMaxChi2PerClusterTPC(4);
84 esdTrackCutsCharged->SetMinNCrossedRowsTPC(70);
85 esdTrackCutsCharged->SetAcceptKinkDaughters(kFALSE);
86 esdTrackCutsCharged->SetRequireTPCRefit(kTRUE);
87 esdTrackCutsCharged->SetRequireSigmaToVertex(kFALSE);
88
89 // esd track cuts for all low pt
90 TString cutsnameLowPt = cutsname;
91 cutsnameLowPt +="_lowpt";
92 AliESDtrackCuts* esdTrackCutsLowPt = new AliESDtrackCuts(cutsnameLowPt);
93 esdTrackCutsLowPt->SetMaxChi2PerClusterTPC(4);
94 esdTrackCutsLowPt->SetMinNCrossedRowsTPC(70);
95 esdTrackCutsLowPt->SetAcceptKinkDaughters(kFALSE);
96 esdTrackCutsLowPt->SetRequireTPCRefit(kTRUE);
97 esdTrackCutsLowPt->SetRequireSigmaToVertex(kFALSE);
98
99 //Add cuts to task
100 task->SetESDTrackCutsCharged(esdTrackCutsCharged);
101 task->SetESDTrackCuts(esdTrackCuts);
102 task->SetESDTrackCutsLowPt(esdTrackCutsLowPt);
1c835fdc 103
104 //--- analysis modes ---//
105 task->SetAnapp(anaPP);
106 task->SetMCMode(mcMode);
107 task->SetMCTruthMode(mcTruthMode);
5842a526 108 task->SelectWithSDD(wSDD);
aa3d4e29 109 //---------- cuts -------------//
110 //general cuts
5842a526 111 task->SetUseOnthefly(kTRUE);
aa3d4e29 112 task->SetUsePID(usePID,3.0,100.0);
1c835fdc 113 task->SetPrimVertexZCut(10.0,kTRUE);
aa3d4e29 114
115 //rapidity
0afca428 116 task->SetRapidityCutMother(kTRUE,0.5);
5842a526 117 task->SetDoEtaOfMCDaughtersCut(kFALSE,0.8);
1c835fdc 118
aa3d4e29 119 //TPC cuts
120 task->SetCutMoreNclsThanRows(kTRUE);
121 task->SetCutMoreNclsThanFindable(kTRUE);
122 task->SetLowPtTPCCutAliESDTrackCut(-1.0);
123 task->SetRatioFoundOverFindable(0.5);
124
125 //V0 specific cuts
126 task->SetCosOfPointingAngleK(0.99,1000.0);
127 task->SetCosOfPointingAngleL(0.998,1000.0);
128
aa3d4e29 129
5842a526 130 task->SetArmenterosCutQt(-1.0,6.0,kTRUE,kFALSE);
aa3d4e29 131
132 task->SetDCAV0ToVertexK0(0.4);
133 task->SetDCAV0ToVertexL(1.2);
134
135 task->SetDCADaughtersK0(0.23);
136 task->SetDCADaughtersL(0.35);
137 task->SetDCADaughtersAL(0.35);
138
5842a526 139 task->SetDecayRadiusXYMinMax(radCut,1000.0);
aa3d4e29 140
141
1c835fdc 142 //--- centrality ---//
aa3d4e29 143 task->SetUseCentrality(centDet); // 0=off, 1=VZERO, 2=SPD
144 task->SetUseCentralityBin(cent); // bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
145 task->SetUseCentralityRange(centRange); // add centrality bin for increasing original bin range. For cent 60-80%: cent = 60 and centRange = 10
1c835fdc 146
aa3d4e29 147 task->SelectCollisionCandidates(AliVEvent::kMB);// | AliVEvent::kCentral | AliVEvent::kSemiCentral );
1c835fdc 148
149 mgr->AddTask(task);
150
151
152 //================================================
153 // data containers
154 //================================================
155 // find input container
156
157 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
158
159 AliAnalysisDataContainer *coutput1 =
0ee65027 160 mgr->CreateContainer(outname, TList::Class(),
c475916a 161 AliAnalysisManager::kOutputContainer,Form("%s:simones", AliAnalysisManager::GetCommonFileName()));
1c835fdc 162
163 //--- connect containers ---//
164 mgr->ConnectInput (task, 0, cinput );
165 mgr->ConnectOutput (task, 1, coutput1);
166
6cdc2a74 167 AliLog::SetClassDebugLevel("AliAnalysisTaskV0ForRAA",2);
168
1c835fdc 169 return task;
170}