]>
Commit | Line | Data |
---|---|---|
a70c9e97 | 1 | ///////////////////////////////////////////////////////////////////\r |
96387d94 | 2 | // //\r |
3 | // AddTaskFlowTPCEMCalQCSP macro //\r | |
a70c9e97 | 4 | // Author: Andrea Dubla, Utrecht University, 2012 //\r |
5 | // //\r | |
6 | ///////////////////////////////////////////////////////////////////\r | |
7 | class AliAnalysisDataContainer;\r | |
8 | class AliFlowTrackCuts;\r | |
9 | class AliFlowTrackSimpleCuts;\r | |
10 | class AliFlowEventCuts;\r | |
11 | class AliFlowEventSimpleCuts;\r | |
12 | class AliAnalysisDataContainer;\r | |
13 | class AliHFEextraCuts;\r | |
14 | \r | |
9d63a2f6 | 15 | AliAnalysisTaskFlowTPCEMCalQCSP* AddTaskFlowTPCEMCalQCSP(\r |
96387d94 | 16 | TString uniqueID = "",\r |
17 | Float_t centrMin ,\r | |
18 | Float_t centrMax ,\r | |
19 | Double_t InvmassCut,\r | |
20 | Double_t pTCut,\r | |
21 | Int_t Trigger,\r | |
ff36a82c | 22 | Bool_t multCorrcut,\r |
96387d94 | 23 | Double_t minTPC,\r |
24 | Double_t maxTPC,\r | |
25 | Double_t minEovP,\r | |
26 | Double_t maxEovP,\r | |
27 | Double_t minM20,\r | |
28 | Double_t maxM20,\r | |
29 | Double_t minM02,\r | |
30 | Double_t maxM02,\r | |
31 | Double_t Dispersion,\r | |
32 | Int_t minTPCCluster,\r | |
33 | AliHFEextraCuts::ITSPixel_t pixel,\r | |
ff36a82c | 34 | Bool_t PhotonicElectronDCA = kFALSE,\r |
96387d94 | 35 | Int_t TPCClusterforAsso = 80,\r |
36 | Bool_t AssoITSref = kTRUE,\r | |
37 | Bool_t purity = kTRUE,\r | |
38 | Bool_t SideBandsFlow = kFALSE,\r | |
39 | Bool_t Phi_minus_psi = kFALSE,\r | |
40 | const char *Cent = "V0M",\r | |
41 | Bool_t QC = kTRUE, // use qc2 and qc4\r | |
42 | Bool_t SP_TPC = kTRUE, //use tpc sp method\r | |
43 | Bool_t VZERO_SP = kFALSE, // use vzero sp method\r | |
44 | Int_t harmonic = 2,\r | |
45 | Bool_t shrinkSP = kTRUE,\r | |
46 | Bool_t debug = kFALSE,\r | |
47 | Int_t RPFilterBit = 1,\r | |
48 | Bool_t op_ang = kFALSE,\r | |
49 | Double_t op_angle_cut=3.\r | |
50 | )\r | |
a70c9e97 | 51 | \r |
52 | {\r | |
96387d94 | 53 | \r |
54 | \r | |
55 | \r | |
56 | if(debug) cout << " === Adding Task ElectFlow === " << endl;\r | |
a70c9e97 | 57 | TString fileName = AliAnalysisManager::GetCommonFileName();\r |
58 | fileName += ":ElectroID_";\r | |
59 | fileName += uniqueID;\r | |
60 | if(debug) cout << " --> Reconstruction data container: " << fileName << endl;\r | |
61 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r | |
62 | if (!mgr) {\r | |
63 | if(debug) cout << " Fatal error: no analysis manager found! " << endl;\r | |
64 | return 0x0;\r | |
65 | }\r | |
66 | if (!mgr->GetInputEventHandler()) {\r | |
67 | if(debug) cout << " Fatal error: no imput event handler found!" << endl;\r | |
68 | return 0x0;\r | |
69 | }\r | |
a70c9e97 | 70 | \r |
96387d94 | 71 | //create a task\r |
72 | AliAnalysisTaskFlowTPCEMCalQCSP *taskHFE = ConfigHFEemcalMod(kFALSE, minTPCCluster, pixel); //kTRUE if MC\r | |
73 | \r | |
74 | if(debug) cout << " === AliAnalysisElectronFlow === " << taskHFE << endl;\r | |
75 | if(!taskHFE) {\r | |
a70c9e97 | 76 | if(debug) cout << " --> Unexpected error occurred: NO TASK WAS CREATED! (could be a library problem!) " << endl;\r |
77 | return 0x0;\r | |
78 | }\r | |
79 | \r | |
96387d94 | 80 | // Set centrality percentiles and method V0M, FMD, TRK, TKL, CL0, CL1, V0MvsFMD, TKLvsV0M, ZEMvsZDC\r |
81 | taskHFE->SetCentralityParameters(centrMin, centrMax, Cent);\r | |
82 | taskHFE->SetInvariantMassCut(InvmassCut);\r | |
83 | taskHFE->SetTrigger(Trigger);\r | |
84 | taskHFE->SetIDCuts(minTPC, maxTPC, minEovP, maxEovP, minM20, maxM20, minM02, maxM02, Dispersion);\r | |
85 | taskHFE->SetFlowSideBands(SideBandsFlow);\r | |
86 | taskHFE->Setphiminuspsi(Phi_minus_psi);\r | |
87 | taskHFE->SetPurity(purity);\r | |
88 | taskHFE->SetpTCuttrack(pTCut);\r | |
89 | taskHFE->SelectPhotonicElectronMethod(PhotonicElectronDCA);\r | |
90 | taskHFE->SetOpeningAngleflag(op_ang);\r | |
91 | taskHFE->SetOpeningAngleCut(op_angle_cut);\r | |
92 | taskHFE->SetAssoTPCCluster(TPCClusterforAsso);\r | |
93 | taskHFE->SetAssoITSRefit(AssoITSref);\r | |
ff36a82c | 94 | taskHFE->SetMultCorrelationCut(multCorrcut);\r |
96387d94 | 95 | //set RP cuts for flow package analysis\r |
96 | cutsRP = new AliFlowTrackCuts(Form("RFPcuts%s",uniqueID));\r | |
a70c9e97 | 97 | if(!cutsRP) {\r |
98 | if(debug) cout << " Fatal error: no RP cuts found, could be a library problem! " << endl;\r | |
99 | return 0x0;\r | |
100 | }\r | |
96387d94 | 101 | \r |
a70c9e97 | 102 | if(!VZERO_SP) {\r |
103 | AliFlowTrackCuts::trackParameterType rptype = AliFlowTrackCuts::kGlobal;\r | |
104 | cutsRP->SetParamType(rptype);\r | |
105 | cutsRP->SetAODfilterBit(RPFilterBit);\r | |
106 | cutsRP->SetPtRange(0.2, 5.0);\r | |
107 | cutsRP->SetEtaRange(-0.7, 0.7);\r | |
108 | cutsRP->SetMinNClustersTPC(70);\r | |
109 | cutsRP->SetMinChi2PerClusterTPC(0.1);\r | |
110 | cutsRP->SetMaxChi2PerClusterTPC(4.0);\r | |
111 | cutsRP->SetRequireTPCRefit(kTRUE);\r | |
112 | cutsRP->SetMaxDCAToVertexXY(0.3);\r | |
113 | cutsRP->SetMaxDCAToVertexZ(0.3);\r | |
114 | cutsRP->SetAcceptKinkDaughters(kFALSE);\r | |
115 | cutsRP->SetMinimalTPCdedx(10.);\r | |
116 | if(debug) cout << " --> kGlobal RP's " << cutsRP << endl;\r | |
117 | }\r | |
118 | if(VZERO_SP) { // use vzero sub analysis\r | |
119 | cutsRP = cutsRP->GetStandardVZEROOnlyTrackCuts(); // select vzero tracks\r | |
120 | SP_TPC = kFALSE; // disable other methods\r | |
121 | QC = kFALSE;\r | |
122 | if(debug) cout << " --> VZERO RP's " << cutsRP << endl;\r | |
123 | }\r | |
96387d94 | 124 | \r |
a70c9e97 | 125 | AliFlowTrackSimpleCuts *POIfilterLeft = new AliFlowTrackSimpleCuts();\r |
126 | AliFlowTrackSimpleCuts *POIfilterRight = new AliFlowTrackSimpleCuts();\r | |
96387d94 | 127 | if(VZERO_SP || SP_TPC){\r |
a70c9e97 | 128 | POIfilterLeft->SetEtaMin(-0.7);\r |
129 | POIfilterLeft->SetEtaMax(0.0);\r | |
130 | POIfilterLeft->SetMassMin(263731); POIfilterLeft->SetMassMax(263733);\r | |
96387d94 | 131 | \r |
a70c9e97 | 132 | POIfilterRight->SetEtaMin(0.0);\r |
133 | POIfilterRight->SetEtaMax(0.7);\r | |
134 | POIfilterRight->SetMassMin(263731); POIfilterRight->SetMassMax(263733);\r | |
135 | }\r | |
a70c9e97 | 136 | \r |
96387d94 | 137 | \r |
138 | AliFlowTrackSimpleCuts *POIfilterQC = new AliFlowTrackSimpleCuts();\r | |
139 | if(QC){\r | |
140 | POIfilterQC->SetEtaMin(-0.7);\r | |
141 | POIfilterQC->SetEtaMax(0.7);\r | |
142 | POIfilterQC->SetMassMin(263731); POIfilterQC->SetMassMax(263733);\r | |
143 | \r | |
9d63a2f6 | 144 | }\r |
96387d94 | 145 | \r |
9d63a2f6 | 146 | if(SideBandsFlow){\r |
9d63a2f6 | 147 | \r |
96387d94 | 148 | AliFlowTrackSimpleCuts *POIfilterLeftH = new AliFlowTrackSimpleCuts();\r |
149 | AliFlowTrackSimpleCuts *POIfilterRightH = new AliFlowTrackSimpleCuts();\r | |
150 | if(SP_TPC){\r | |
151 | POIfilterLeftH->SetEtaMin(-0.7);\r | |
152 | POIfilterLeftH->SetEtaMax(0.0);\r | |
153 | POIfilterLeftH->SetMassMin(2636); POIfilterLeftH->SetMassMax(2638);\r | |
154 | \r | |
155 | POIfilterRightH->SetEtaMin(0.0);\r | |
156 | POIfilterRightH->SetEtaMax(0.7);\r | |
157 | POIfilterRightH->SetMassMin(2636); POIfilterRightH->SetMassMax(2638);\r | |
158 | }\r | |
159 | \r | |
160 | \r | |
161 | AliFlowTrackSimpleCuts *POIfilterQCH = new AliFlowTrackSimpleCuts();\r | |
162 | if(QC){\r | |
163 | POIfilterQCH->SetEtaMin(-0.7);\r | |
164 | POIfilterQCH->SetEtaMax(0.7);\r | |
165 | POIfilterQCH->SetMassMin(2636); POIfilterQCH->SetMassMax(2638);\r | |
166 | \r | |
167 | }\r | |
168 | \r | |
9d63a2f6 | 169 | }\r |
170 | \r | |
96387d94 | 171 | taskHFE->SetRPCuts(cutsRP);\r |
9d63a2f6 | 172 | \r |
9d63a2f6 | 173 | \r |
96387d94 | 174 | AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(Form("ccontainer0_%s",uniqueID.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,fileName);\r |
175 | \r | |
176 | mgr->ConnectInput(taskHFE,0,mgr->GetCommonInputContainer());\r | |
177 | mgr->ConnectOutput(taskHFE,1,coutput3);\r | |
178 | \r | |
9d63a2f6 | 179 | \r |
a70c9e97 | 180 | if(debug) cout << " === RECEIVED REQUEST FOR FLOW ANALYSIS === " << endl;\r |
181 | AliAnalysisDataContainer *flowEvent = mgr->CreateContainer(Form("FlowContainer_%s",uniqueID.Data()), AliFlowEventSimple::Class(), AliAnalysisManager::kExchangeContainer);\r | |
182 | mgr->ConnectOutput(taskHFE, 2, flowEvent);\r | |
96387d94 | 183 | if(debug) cout << " --> Created IO containers " << flowEvent << endl;\r |
a70c9e97 | 184 | \r |
96387d94 | 185 | if(SideBandsFlow){\r |
186 | if(debug) cout << " === RECEIVED REQUEST FOR FLOW ANALYSIS === " << endl;\r | |
187 | AliAnalysisDataContainer *flowEventCont = mgr->CreateContainer(Form("FlowContainer_Cont_%s",uniqueID.Data()), AliFlowEventSimple::Class(), AliAnalysisManager::kExchangeContainer);\r | |
188 | mgr->ConnectOutput(taskHFE, 3, flowEventCont);\r | |
189 | if(debug) cout << " --> Created IO containers " << flowEventCont << endl;\r | |
9d63a2f6 | 190 | }\r |
191 | \r | |
a70c9e97 | 192 | \r |
96387d94 | 193 | mgr->AddTask(taskHFE);\r |
a70c9e97 | 194 | \r |
195 | if (QC) { // add qc tasks\r | |
96387d94 | 196 | AddQCmethod(Form("QCTPCin_%s",uniqueID.Data()), harmonic, flowEvent, debug ,uniqueID, -0.7, -0.0, 0.0, 0.7,false,POIfilterQC);\r |
a70c9e97 | 197 | if(debug) cout << " --> Hanging QC task ...succes! "<< endl;\r |
96387d94 | 198 | }\r |
a70c9e97 | 199 | if (SP_TPC) { // add sp subevent tasks\r |
200 | AddSPmethod(Form("SPTPCQa_in_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qa", harmonic, flowEvent, false, shrinkSP, debug,uniqueID, false, POIfilterRight);\r | |
201 | if(debug) cout << " --> Hanging SP Qa task ... succes!" << endl;\r | |
202 | AddSPmethod(Form("SPTPCQb_in_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qb", harmonic, flowEvent, false, shrinkSP, debug,uniqueID, false, POIfilterLeft);\r | |
203 | if(debug) cout << " --> Hanging SP Qb task ... succes!"<< endl;\r | |
204 | }\r | |
205 | if (VZERO_SP) { // add sp subevent tasks\r | |
96387d94 | 206 | AddSPmethod(Form("SPVZEROQa_in_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qa", harmonic, flowEvent, false, shrinkSP, debug,uniqueID, true, POIfilterRight);\r |
a70c9e97 | 207 | if(debug) cout << " --> Hanging SP Qa task ... succes!" << endl;\r |
96387d94 | 208 | AddSPmethod(Form("SPVZEROQb_in_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qb", harmonic, flowEvent, false, shrinkSP, debug,uniqueID, true, POIfilterLeft);\r |
a70c9e97 | 209 | if(debug) cout << " --> Hanging SP Qb task ... succes!"<< endl;\r |
210 | }\r | |
96387d94 | 211 | \r |
9d63a2f6 | 212 | //=========================================Flow event for elctronContamination==============================================================================================\r |
213 | if(SideBandsFlow){\r | |
96387d94 | 214 | if (QC) { // add qc tasks\r |
215 | AddQCmethod(Form("QCTPCCont_%s",uniqueID.Data()), harmonic, flowEventCont, debug ,uniqueID, -0.7, -0.0, 0.0, 0.7,false,POIfilterQCH);\r | |
216 | if(debug) cout << " --> Hanging QC task ...succes! "<< endl;\r | |
217 | }\r | |
218 | if (SP_TPC) { // add sp subevent tasks\r | |
219 | AddSPmethod(Form("SPTPCQa_Cont_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qa", harmonic, flowEventCont, false, shrinkSP, debug,uniqueID, false, POIfilterRightH);\r | |
220 | if(debug) cout << " --> Hanging SP Qa task ... succes!" << endl;\r | |
221 | AddSPmethod(Form("SPTPCQb_Cont_%s", uniqueID.Data()), -0.7, -.0, .0, +0.7, "Qb", harmonic, flowEventCont, false, shrinkSP, debug,uniqueID, false, POIfilterLeftH);\r | |
222 | if(debug) cout << " --> Hanging SP Qb task ... succes!"<< endl;\r | |
223 | }\r | |
9d63a2f6 | 224 | }\r |
225 | //==========================================================================================================================================================================\r | |
a70c9e97 | 226 | \r |
227 | \r | |
96387d94 | 228 | return taskHFE;\r |
229 | \r | |
a70c9e97 | 230 | }\r |
231 | \r | |
232 | //_____________________________________________________________________________\r | |
233 | \r | |
234 | \r | |
235 | //_____________________________________________________________________________\r | |
236 | void AddSPmethod(char *name, double minEtaA, double maxEtaA, double minEtaB, double maxEtaB, char *Qvector, int harmonic, AliAnalysisDataContainer *flowEvent, bool bEP, bool shrink = false, bool debug, TString uniqueID,Bool_t VZERO_SP = kFALSE, AliFlowTrackSimpleCuts* POIfilter)\r | |
96387d94 | 237 | {\r |
238 | // add sp task and invm filter tasks\r | |
239 | if(debug) (bEP) ? cout << " ****** Reveived request for EP task ****** " << endl : cout << " ******* Switching to SP task ******* " << endl;\r | |
240 | TString fileName = AliAnalysisManager::GetCommonFileName();\r | |
241 | (bEP) ? fileName+=":EP" : fileName+=":SP";\r | |
242 | // if(etagap) {\r | |
a70c9e97 | 243 | // fileName+="_SUBEVENTS";\r |
96387d94 | 244 | // if(debug) cout << " --> Setting up subevent analysis <-- " << endl;\r |
245 | // }\r | |
246 | if(debug) cout << " --> fileName " << fileName << endl;\r | |
247 | TString myFolder = fileName;\r | |
248 | if(debug) cout << " --> myFolder " << myFolder << endl;\r | |
249 | TString myNameSP;\r | |
250 | (bEP) ? myNameSP = Form("%sEPv%d%s", name, harmonic, Qvector): myNameSP = Form("%sSPv%d%s", name, harmonic, Qvector);\r | |
251 | if(debug) cout << " myNameSP " << myNameSP << endl;\r | |
252 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r | |
253 | AliAnalysisDataContainer *flowEventOut = mgr->CreateContainer(Form("Filter_%s",myNameSP.Data()),AliFlowEventSimple::Class(),AliAnalysisManager::kExchangeContainer);\r | |
254 | AliAnalysisTaskFilterFE *tskFilter = new AliAnalysisTaskFilterFE(Form("TaskFilter_%s", myNameSP.Data()), NULL, POIfilter);\r | |
255 | tskFilter->SetSubeventEtaRange(minEtaA, maxEtaA, minEtaB, maxEtaB);\r | |
256 | if(VZERO_SP) tskFilter->SetSubeventEtaRange(-10, 0, 0, 10);\r | |
257 | mgr->AddTask(tskFilter);\r | |
258 | mgr->ConnectInput(tskFilter, 0, flowEvent);\r | |
259 | mgr->ConnectOutput(tskFilter, 1, flowEventOut);\r | |
260 | AliAnalysisDataContainer *outSP = mgr->CreateContainer(myNameSP.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, fileName);\r | |
261 | AliAnalysisTaskScalarProduct *tskSP = new AliAnalysisTaskScalarProduct(Form("TaskScalarProduct_%s", myNameSP.Data()), kFALSE);\r | |
262 | tskSP->SetApplyCorrectionForNUA(kTRUE);\r | |
263 | tskSP->SetHarmonic(harmonic);\r | |
264 | tskSP->SetTotalQvector(Qvector);\r | |
265 | if (bEP) tskSP->SetBehaveAsEP();\r | |
266 | if (shrink) tskSP->SetBookOnlyBasicCCH(kTRUE);\r | |
267 | mgr->AddTask(tskSP);\r | |
268 | mgr->ConnectInput(tskSP, 0, flowEventOut);\r | |
269 | mgr->ConnectOutput(tskSP, 1, outSP);\r | |
270 | }\r | |
a70c9e97 | 271 | //_____________________________________________________________________________\r |
272 | void AddQCmethod(char *name, int harmonic, AliAnalysisDataContainer *flowEvent, Bool_t debug, TString uniqueID,double minEtaA, double maxEtaA, double minEtaB, double maxEtaB,Bool_t VZERO_SP = kFALSE, AliFlowTrackSimpleCuts* POIfilter)\r | |
96387d94 | 273 | {\r |
274 | // add qc task and invm filter tasks\r | |
275 | if(debug) cout << " ****** Received request for QC v" << harmonic << " task " << name << ", IO ****** " << flowEvent << endl;\r | |
276 | TString fileName = AliAnalysisManager::GetCommonFileName();\r | |
277 | fileName+=":QC";\r | |
278 | if(debug) cout << " --> Common filename: " << fileName << endl;\r | |
279 | TString myFolder = Form("v%d", harmonic);\r | |
280 | if(debug) cout << " --> myFolder: " << myFolder << endl;\r | |
281 | TString myName = Form("%s", name);\r | |
282 | if(debug) cout << " --> myName: " << myName << endl;\r | |
283 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r | |
284 | AliAnalysisDataContainer *flowEventOut = mgr->CreateContainer(Form("Filter_%s", myName.Data()), AliFlowEventSimple::Class(),AliAnalysisManager::kExchangeContainer);\r | |
285 | AliAnalysisTaskFilterFE *tskFilter = new AliAnalysisTaskFilterFE(Form("TaskFilter_%s", myName.Data()), NULL, POIfilter);\r | |
286 | tskFilter->SetSubeventEtaRange(minEtaA, maxEtaA, minEtaB, maxEtaB);\r | |
287 | // if(VZERO_SP) tskFilter->SetSubeventEtaRange(-10, 0, 0, 10);\r | |
288 | mgr->AddTask(tskFilter);\r | |
289 | mgr->ConnectInput(tskFilter, 0, flowEvent);\r | |
290 | mgr->ConnectOutput(tskFilter, 1, flowEventOut);\r | |
291 | \r | |
292 | AliAnalysisDataContainer *outQC = mgr->CreateContainer(myName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, fileName);\r | |
293 | AliAnalysisTaskQCumulants *tskQC = new AliAnalysisTaskQCumulants(Form("TaskQCumulants_%s", myName.Data()), kFALSE);\r | |
294 | tskQC->SetApplyCorrectionForNUA(kTRUE);\r | |
295 | tskQC->SetHarmonic(harmonic);\r | |
296 | tskQC->SetBookOnlyBasicCCH(kTRUE);\r | |
297 | mgr->AddTask(tskQC);\r | |
298 | mgr->ConnectInput(tskQC, 0, flowEventOut);\r | |
299 | mgr->ConnectOutput(tskQC, 1, outQC);\r | |
300 | }\r | |
a70c9e97 | 301 | //_____________________________________________________________________________\r |
302 | \r | |
303 | \r | |
304 | //_____________________________________________________________________________\r | |
96387d94 | 305 | \r |
a70c9e97 | 306 | AliAnalysisTaskFlowTPCEMCalQCSP* ConfigHFEemcalMod(Bool_t useMC,Int_t minTPCCulster,AliHFEextraCuts::ITSPixel_t pixel){\r |
307 | //\r | |
308 | // HFE standard task configuration\r | |
309 | //\r | |
310 | \r | |
311 | Bool_t kAnalyseTaggedTracks = kTRUE;\r | |
312 | \r | |
313 | AliHFEcuts *hfecuts = new AliHFEcuts("hfeCutsEMCAL","HFE Standard Cuts"); //TODO....change the cuts values to PbPb\r | |
314 | // hfecuts->CreateStandardCuts();\r | |
315 | hfecuts->SetMinNClustersTPC(minTPCCulster);\r | |
316 | hfecuts->SetMinNClustersITS(3);\r | |
317 | hfecuts->SetMinNTrackletsTRD(0);\r | |
318 | hfecuts->SetMinRatioTPCclusters(0.6);\r | |
319 | \r | |
320 | // hfecuts->SetEtaRange(-0.9,0.9);\r | |
321 | // hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);\r | |
322 | hfecuts->SetRequireITSPixel();\r | |
323 | hfecuts->SetCutITSpixel(pixel);//kAny\r | |
324 | hfecuts->SetMaxChi2perClusterITS(-1);\r | |
325 | hfecuts->SetMaxChi2perClusterTPC(3.5);\r | |
326 | hfecuts->SetCheckITSLayerStatus(kFALSE); // shud be put back\r | |
327 | // hfecuts->UnsetVertexRequirement();\r | |
328 | hfecuts->SetVertexRange(10.);\r | |
329 | hfecuts->SetRequireSigmaToVertex();\r | |
330 | //hfecuts->SetSigmaToVertex(10);\r | |
331 | hfecuts->SetTOFPIDStep(kFALSE);\r | |
332 | // hfecuts->SetQAOn();\r | |
333 | hfecuts->SetPtRange(0, 30);\r | |
334 | \r | |
9d63a2f6 | 335 | AliAnalysisTaskFlowTPCEMCalQCSP *task = new AliAnalysisTaskFlowTPCEMCalQCSP("HFE_Flow_TPCEMCal");\r |
a70c9e97 | 336 | printf("task ------------------------ %p\n ", task);\r |
337 | \r | |
338 | \r | |
339 | task->SetHFECuts(hfecuts);\r | |
340 | \r | |
341 | // task->SetInvariantMassCut(0.05);\r | |
342 | // task->SetRejectKinkMother(kTRUE);\r | |
343 | // task->SetRemovePileUp(kTRUE);\r | |
344 | \r | |
345 | // Define PID\r | |
346 | AliHFEpid *pid = task->GetPID();\r | |
347 | if(useMC) pid->SetHasMCData(kTRUE);\r | |
348 | pid->AddDetector("TPC", 0);\r | |
349 | pid->AddDetector("EMCAL", 1);\r | |
350 | \r | |
351 | printf("*************************************\n");\r | |
352 | printf("Configuring standard Task:\n");\r | |
353 | // task->PrintStatus();\r | |
354 | pid->PrintStatus();\r | |
355 | printf("*************************************\n");\r | |
356 | return task;\r | |
357 | \r | |
358 | \r | |
359 | }\r | |
360 | \r | |
96387d94 | 361 | //_____________________________________________________________________________ |