]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FLOW/macros/AddTaskFlowStrange.C
extra cuts
[u/mrichter/AliRoot.git] / PWGCF / FLOW / macros / AddTaskFlowStrange.C
CommitLineData
6d636126 1void AddTaskFlowStrange(int trigger, int centrMin, int centrMax, int harmonic=2) {\r
7c5aa0f1 2 AddTaskFlowStrange(trigger,centrMin,centrMax,"K0",Form("K%d%dc0",centrMin,centrMax), 0,0,"V0M",harmonic);\r
3 AddTaskFlowStrange(trigger,centrMin,centrMax,"K0",Form("K%d%dc1",centrMin,centrMax), 0,1,"V0M",harmonic);\r
4 AddTaskFlowStrange(trigger,centrMin,centrMax,"K0",Form("K%d%dc2",centrMin,centrMax), 0,2,"V0M",harmonic);\r
5 AddTaskFlowStrange(trigger,centrMin,centrMax,"K0",Form("K%d%dc3",centrMin,centrMax), 0,3,"V0M",harmonic);\r
6 AddTaskFlowStrange(trigger,centrMin,centrMax,"K0",Form("K%d%dc2TRK",centrMin,centrMax),0,2,"TRK",harmonic);\r
7\r
8 AddTaskFlowStrange(trigger,centrMin,centrMax,"L0",Form("L%d%dc0",centrMin,centrMax), 1,0,"V0M",harmonic);\r
9 AddTaskFlowStrange(trigger,centrMin,centrMax,"L0",Form("L%d%dc1",centrMin,centrMax), 1,1,"V0M",harmonic);\r
10 AddTaskFlowStrange(trigger,centrMin,centrMax,"L0",Form("L%d%dc2",centrMin,centrMax), 1,2,"V0M",harmonic);\r
11 AddTaskFlowStrange(trigger,centrMin,centrMax,"L0",Form("L%d%dc3",centrMin,centrMax), 1,3,"V0M",harmonic);\r
12 AddTaskFlowStrange(trigger,centrMin,centrMax,"L0",Form("L%d%dc2TRK",centrMin,centrMax),1,2,"TRK",harmonic);\r
6d636126 13}\r
7c5aa0f1 14void AddTaskFlowStrange(int trigger, float centrMin, float centrMax, TString folderName="myFolder", TString suffixName="mySuffix", \r
15 int specie=0, int cuts=1, char* MULT="V0M", int harmonic=2) {\r
893d83c8 16 TString fileName = AliAnalysisManager::GetCommonFileName();\r
17 fileName.ReplaceAll(".root","");\r
18\r
19 //-E-V-E-N-T- -c-u-t-s--------------------------------------------------------\r
20 AliFlowEventCuts* cutsEvent = new AliFlowEventCuts(Form("event_cuts_%s",suffixName.Data()));\r
21 cutsEvent->SetCentralityPercentileRange(centrMin,centrMax);\r
22 if(MULT=="V0M")\r
23 cutsEvent->SetCentralityPercentileMethod(AliFlowEventCuts::kV0);\r
24 else\r
25 cutsEvent->SetCentralityPercentileMethod(AliFlowEventCuts::kTPConly);\r
26 cutsEvent->SetRefMultMethod(AliFlowEventCuts::kSPDtracklets);\r
27 cutsEvent->SetNContributorsRange(2);\r
28 cutsEvent->SetPrimaryVertexZrange(-9.5,+9.5);\r
29\r
30 //-R-P---c-u-t-s--------------------------------------------------------------\r
31 AliFlowTrackCuts *cutsRPTPC = AliFlowTrackCuts::GetStandardTPCStandaloneTrackCuts();\r
32 cutsRPTPC->SetParamType( AliFlowTrackCuts::kGlobal );\r
33 cutsRPTPC->SetAODfilterBit(1); // for AOD compatibility\r
34 AliFlowTrackCuts *cutsRPVZE = AliFlowTrackCuts::GetStandardVZEROOnlyTrackCuts();\r
35\r
36 //-D-A-U-G-H-T-E-R-S---c-u-t-s------------------------------------------------\r
37 AliESDtrackCuts* cutsDaughter = new AliESDtrackCuts(Form("daughter_cuts_%s",suffixName.Data()) );\r
38 cutsDaughter->SetPtRange(0.2,10.0);\r
39 cutsDaughter->SetEtaRange(-0.8, 0.8 );\r
40 cutsDaughter->SetMinNClustersTPC(80);\r
41 cutsDaughter->SetMaxChi2PerClusterTPC(4.0);\r
42 cutsDaughter->SetRequireTPCRefit(kTRUE);\r
43 cutsDaughter->SetAcceptKinkDaughters(kFALSE);\r
44\r
45 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
46 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();\r
47\r
48 //-----------------STRANGE TASK----------------------------\r
49 AliAnalysisTaskFlowStrange *taskSel = new AliAnalysisTaskFlowStrange(Form("Strange_%s",suffixName.Data()),\r
50 cutsEvent, cutsRPTPC, cutsRPVZE,\r
51 cutsDaughter );\r
52 taskSel->SelectCollisionCandidates(trigger);\r
53 //taskSel->SetDebug();\r
54 taskSel->SetCuts2010(cuts);\r
55 taskSel->SetK0L0(specie);\r
56 //printf( "CMM %d %f %f\n", MassBins(specie), MinMass(specie), MaxMass(specie) );\r
57 taskSel->SetCommonConstants( MassBins(specie), MinMass(specie), MaxMass(specie) );\r
58 AliAnalysisDataContainer *cOutHist = mgr->CreateContainer(Form("OutHistos_%s",suffixName.Data()),\r
59 TList::Class(),\r
60 AliAnalysisManager::kOutputContainer,\r
61 Form("%s.root:Selector_%s",fileName.Data(),\r
6d636126 62 folderName.Data()));\r
893d83c8 63 AliAnalysisDataContainer *exc_TPC = mgr->CreateContainer( Form("TPCEventWithCandidates_%s",suffixName.Data()),\r
64 AliFlowEventSimple::Class(),\r
65 AliAnalysisManager::kExchangeContainer );\r
66 AliAnalysisDataContainer *exc_VZE = mgr->CreateContainer( Form("VZEEventWithCandidates_%s",suffixName.Data()),\r
67 AliFlowEventSimple::Class(),\r
68 AliAnalysisManager::kExchangeContainer );\r
69 mgr->AddTask(taskSel);\r
70 mgr->ConnectInput (taskSel,0,cinput1);\r
71 mgr->ConnectOutput(taskSel,1,exc_TPC);\r
72 mgr->ConnectOutput(taskSel,2,exc_VZE);\r
73 mgr->ConnectOutput(taskSel,3,cOutHist);\r
74\r
75 //-------------------FLOW TASKS----------------------------\r
76 AliFlowTrackSimpleCuts *filter[15], *filterhf[15][2]; // MASS BANDS\r
77 for(int mb=0; mb!=MassBands(0); ++mb) {\r
78 filter[mb] = new AliFlowTrackSimpleCuts( Form("Filter_MB%d",mb) );\r
79 filter[mb]->SetEtaMin( -0.8 ); filter[mb]->SetEtaMax( +0.8 );\r
80 filter[mb]->SetMassMin( MassBandLowEdge(specie,mb) ); filter[mb]->SetMassMax( MassBandLowEdge(specie,mb+1) );\r
81\r
82 filterhf[mb][0] = new AliFlowTrackSimpleCuts( Form("Filterhf0_MB%d",mb) );\r
83 filterhf[mb][0]->SetEtaMin( 0.0 ); filterhf[mb][0]->SetEtaMax( +0.8 );\r
84 filterhf[mb][0]->SetMassMin( MassBandLowEdge(specie,mb) ); filterhf[mb][0]->SetMassMax( MassBandLowEdge(specie,mb+1) );\r
85\r
86 filterhf[mb][1] = new AliFlowTrackSimpleCuts( Form("Filterhf1_MB%d",mb) );\r
87 filterhf[mb][1]->SetEtaMin( -0.8 ); filterhf[mb][1]->SetEtaMax( 0.0 );\r
88 filterhf[mb][1]->SetMassMin( MassBandLowEdge(specie,mb) ); filterhf[mb][1]->SetMassMax( MassBandLowEdge(specie,mb+1) );\r
89\r
6d636126 90 AddQCmethod( Form("QCTPCMB%d",mb), folderName.Data(), suffixName.Data(), harmonic, exc_TPC, filter[mb]); // QC TPC\r
91 AddSPmethod( Form("SPTPCMB%d",mb), folderName.Data(), suffixName.Data(), harmonic, exc_TPC, filterhf[mb][0], "Qa" ); // SP TPC Qa\r
92 AddSPmethod( Form("SPTPCMB%d",mb), folderName.Data(), suffixName.Data(), harmonic, exc_TPC, filterhf[mb][1], "Qb" ); // SP TPC Qb\r
93 AddSPmethod( Form("SPVZEMB%d",mb), folderName.Data(), suffixName.Data(), harmonic, exc_VZE, filter[mb], "Qa" ); // SP VZE Qa\r
94 AddSPmethod( Form("SPVZEMB%d",mb), folderName.Data(), suffixName.Data(), harmonic, exc_VZE, filter[mb], "Qb" ); // SP VZE Qa\r
893d83c8 95 }\r
96}\r
97\r
6d636126 98void AddQCmethod(char *name, TString myFolder, char *thecuts, int harmonic, \r
893d83c8 99 AliAnalysisDataContainer *flowEvent, AliFlowTrackSimpleCuts *cutsPOI=NULL) {\r
6d636126 100 TString fileName = AliAnalysisManager::GetCommonFileName();\r
101 myFolder.Append( Form("v%d",harmonic) );\r
893d83c8 102 TString myName = Form("%sv%d_%s",name,harmonic,thecuts);\r
103 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
104 AliAnalysisDataContainer *flowEvent2 = mgr->CreateContainer( Form("Filter_%s", myName.Data()),\r
105 AliFlowEventSimple::Class(),\r
106 AliAnalysisManager::kExchangeContainer );\r
107 AliAnalysisTaskFilterFE *tskFilter = new AliAnalysisTaskFilterFE( Form("TaskFilter_%s",myName.Data()),\r
108 NULL, cutsPOI);\r
109 mgr->AddTask(tskFilter);\r
110 mgr->ConnectInput( tskFilter,0,flowEvent);\r
111 mgr->ConnectOutput(tskFilter,1,flowEvent2);\r
112 AliAnalysisDataContainer *outQC = mgr->CreateContainer( myName.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,\r
6d636126 113 Form("%s:FlowStrange_QC_%s",fileName.Data(),myFolder.Data()) );\r
893d83c8 114 AliAnalysisTaskQCumulants *tskQC = new AliAnalysisTaskQCumulants( Form("TaskQCumulants_%s",myName.Data()),kFALSE );\r
115 tskQC->SetApplyCorrectionForNUA(kTRUE);\r
116 tskQC->SetHarmonic(harmonic);\r
117 tskQC->SetBookOnlyBasicCCH(kTRUE);\r
118 mgr->AddTask(tskQC);\r
119 mgr->ConnectInput( tskQC,0,flowEvent2);\r
120 mgr->ConnectOutput(tskQC,1,outQC);\r
121}\r
122\r
123\r
6d636126 124void AddSPmethod(char *name, TString myFolder, char *thecuts, int harmonic,\r
893d83c8 125 AliAnalysisDataContainer *flowEvent, AliFlowTrackSimpleCuts *cutsPOI=NULL,\r
126 char *Qvector) {\r
6d636126 127 TString fileName = AliAnalysisManager::GetCommonFileName();\r
128 myFolder.Append( Form("v%d",harmonic) );\r
893d83c8 129 TString myNameSP = Form("%sv%d%s_%s",name,harmonic,Qvector,thecuts);\r
130 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
131 AliAnalysisDataContainer *flowEvent2 = mgr->CreateContainer( Form("Filter_%s", myNameSP.Data()),\r
132 AliFlowEventSimple::Class(),\r
133 AliAnalysisManager::kExchangeContainer );\r
134 AliAnalysisTaskFilterFE *tskFilter = new AliAnalysisTaskFilterFE( Form("TaskFilter_%s",myNameSP.Data()),\r
135 NULL, cutsPOI);\r
136 tskFilter->SetSubeventEtaRange( -5.0, 0.0, 0.0, +5.0 );\r
137 mgr->AddTask(tskFilter);\r
138 mgr->ConnectInput( tskFilter,0,flowEvent);\r
139 mgr->ConnectOutput(tskFilter,1,flowEvent2);\r
140 AliAnalysisDataContainer *outSP = mgr->CreateContainer( myNameSP.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,\r
6d636126 141 Form("%s:FlowStrange_SP_%s",fileName.Data(),myFolder.Data()) );\r
893d83c8 142 AliAnalysisTaskScalarProduct *tskSP = new AliAnalysisTaskScalarProduct( Form("TaskScalarProduct_%s",myNameSP.Data()),kFALSE);\r
143 tskSP->SetApplyCorrectionForNUA(kTRUE);\r
144 tskSP->SetHarmonic(harmonic);\r
145 tskSP->SetTotalQvector(Qvector);\r
146 tskSP->SetBookOnlyBasicCCH(kTRUE);\r
147 mgr->AddTask(tskSP);\r
148 mgr->ConnectInput( tskSP,0,flowEvent2);\r
149 mgr->ConnectOutput(tskSP,1,outSP);\r
150}\r
151\r
152double MassBandLowEdge( int nv0, int mb ) {\r
153 if(nv0==0) {\r
154 double lowEdge[15+1]={ 0.452, 0.462, 0.472, 0.482, 0.489, 0.492, 0.495, 0.498,\r
155 0.501, 0.504, 0.507, 0.514, 0.524, 0.534, 0.544, 0.554 };\r
156 } if(nv0==1) {\r
157 double lowEdge[15+1]={ 1.094, 1.099, 1.104, 1.109, 1.112, 1.114, 1.115, 1.116, \r
158 1.117, 1.118, 1.120, 1.123, 1.128, 1.133, 1.138, 1.143 };\r
159 }\r
160 return lowEdge[mb];\r
161}\r
162\r
163int MassBands( int nv0 ) {\r
164 if(nv0==0) {\r
165 return 15;\r
166 } else if(nv0==1) {\r
167 return 15;\r
168 }\r
169}\r
170\r
171int MassBins( int nv0 ) {\r
172 if(nv0==0) {\r
173 return 102;\r
174 } else if(nv0==1) {\r
175 return 49;\r
176 }\r
177}\r
178\r
179double MinMass( int nv0 ) {\r
180 return MassBandLowEdge( nv0, 0 );\r
181}\r
182\r
183double MaxMass( int nv0 ) {\r
184 return MassBandLowEdge( nv0, MassBands(nv0) );\r
185}\r