]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliAnalysisTaskMaterial.cxx
-Move cent, z axis into sparse
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskMaterial.cxx
CommitLineData
ca91a3e1 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Authors: Friederike Bock *
5 * Version 1.0 *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16////////////////////////////////////////////////
17//---------------------------------------------
18// QA Task for V0 Reader V1
19//---------------------------------------------
20////////////////////////////////////////////////
21
22#include "AliAnalysisTaskMaterial.h"
23#include "TChain.h"
24#include "AliAnalysisManager.h"
25#include "TParticle.h"
26#include "TVectorF.h"
27#include "AliPIDResponse.h"
28#include "AliESDtrackCuts.h"
29#include "TFile.h"
30
31class iostream;
32
33using namespace std;
34
35ClassImp(AliAnalysisTaskMaterial)
36
72395bd9 37AliAnalysisTaskMaterial::AliAnalysisTaskMaterial() : AliAnalysisTaskSE(),
38 fV0Reader(NULL),
39 fConversionGammas(NULL),
40 fConversionCuts(NULL),
41 fOutputList(NULL),
42 fEventList(NULL),
43 fRecGammaList(NULL),
44 fAllMCGammaList(NULL),
45 fAllMCConvGammaList(NULL),
46 fTreeEvent(NULL),
47 fTreeMaterialRec(NULL),
48 fTreeMaterialAllGamma(NULL),
49 fTreeMaterialConvGamma(NULL),
50 fPrimVtxZ(0.),
51 fNContrVtx(0),
52 fNESDtracksEta09(0),
53 fNESDtracksEta0914(0),
54 fNESDtracksEta14(0),
55 fGammaMCPt(0.),
56 fGammaMCTheta(0.),
57 fGammaMCConvPt(0.),
58 fGammaMCConvTheta(0.),
31216736 59 fMCConvCords(5),
60 fMCConvDaughterProp(4),
72395bd9 61 fGammaPt(0.),
62 fGammaTheta(0.),
63 fGammaChi2NDF(0.),
31216736 64 fRecCords(5),
65 fDaughterProp(4),
72395bd9 66 fKind(0),
67 fIsHeavyIon(kFALSE),
68 fIsMC(kFALSE),
69 fESDEvent(NULL),
70 fMCEvent(NULL)
71{
72
73
74}
75
76
ca91a3e1 77//________________________________________________________________________
78AliAnalysisTaskMaterial::AliAnalysisTaskMaterial(const char *name) : AliAnalysisTaskSE(name),
a280ac15 79 fV0Reader(NULL),
ca91a3e1 80 fConversionGammas(NULL),
81 fConversionCuts(NULL),
ca91a3e1 82 fOutputList(NULL),
72395bd9 83 fEventList(NULL),
84 fRecGammaList(NULL),
85 fAllMCGammaList(NULL),
86 fAllMCConvGammaList(NULL),
87 fTreeEvent(NULL),
88 fTreeMaterialRec(NULL),
89 fTreeMaterialAllGamma(NULL),
90 fTreeMaterialConvGamma(NULL),
91 fPrimVtxZ(0.),
92 fNContrVtx(0),
93 fNESDtracksEta09(0),
94 fNESDtracksEta0914(0),
95 fNESDtracksEta14(0),
96 fGammaMCPt(0.),
97 fGammaMCTheta(0.),
98 fGammaMCConvPt(0.),
99 fGammaMCConvTheta(0.),
31216736 100 fMCConvCords(5),
101 fMCConvDaughterProp(4),
72395bd9 102 fGammaPt(0.),
103 fGammaTheta(0.),
104 fGammaChi2NDF(0.),
31216736 105 fRecCords(5),
106 fDaughterProp(4),
72395bd9 107 fKind(0),
108 fIsHeavyIon(kFALSE),
109 fIsMC(kFALSE),
ca91a3e1 110 fESDEvent(NULL),
111 fMCEvent(NULL)
112{
113 // Default constructor
114
72395bd9 115
ca91a3e1 116 DefineInput(0, TChain::Class());
117 DefineOutput(1, TList::Class());
118}
119
120//________________________________________________________________________
121AliAnalysisTaskMaterial::~AliAnalysisTaskMaterial()
122{
123 // default deconstructor
ca91a3e1 124}
125//________________________________________________________________________
126void AliAnalysisTaskMaterial::UserCreateOutputObjects()
127{
128 // Create User Output Objects
129
130 if(fOutputList != NULL){
131 delete fOutputList;
132 fOutputList = NULL;
133 }
134 if(fOutputList == NULL){
135 fOutputList = new TList();
136 fOutputList->SetOwner(kTRUE);
137 }
72395bd9 138
139 fEventList = new TList();
140 fEventList->SetName("EventList");
141 fEventList->SetOwner(kTRUE);
142 fOutputList->Add(fEventList);
143
144 fTreeEvent = new TTree("Event","Event");
145 fTreeEvent->Branch("primVtxZ",&fPrimVtxZ,"fPrimVtxZ/F");
146 fTreeEvent->Branch("nContrVtx",&fNContrVtx,"fNContrVtx/I");
147 fTreeEvent->Branch("nGoodTracksEta09",&fNESDtracksEta09,"fNESDtracksEta09/I");
148 fTreeEvent->Branch("nGoodTracksEta0914",&fNESDtracksEta0914,"fNESDtracksEta0914/I");
149 fTreeEvent->Branch("nGoodTracksEta14",&fNESDtracksEta14,"fNESDtracksEta14/I");
150 fEventList->Add(fTreeEvent);
151
152 fRecGammaList= new TList();
153 fRecGammaList->SetName("RecGammaList");
154 fRecGammaList->SetOwner(kTRUE);
155 fOutputList->Add(fRecGammaList);
156
72395bd9 157
158 fTreeMaterialRec = new TTree("ConvPointRec","ConvPointRec");
31216736 159 fTreeMaterialRec->Branch("recCords",&fRecCords);
160 fTreeMaterialRec->Branch("daughterProp",&fDaughterProp);
72395bd9 161 fTreeMaterialRec->Branch("pt",&fGammaPt,"fGammaPt/F");
162 fTreeMaterialRec->Branch("theta",&fGammaTheta,"fGammaTheta/F");
163 fTreeMaterialRec->Branch("chi2ndf",&fGammaChi2NDF,"fGammaChi2NDF/F");
72395bd9 164 if (fIsMC) {
165 fTreeMaterialRec->Branch("kind",&fKind,"fKind/b");
166 }
167 fRecGammaList->Add(fTreeMaterialRec);
168
169 if (fIsMC) {
170 fAllMCGammaList = new TList();
171 fAllMCGammaList->SetName("AllMCGammaList");
172 fAllMCGammaList->SetOwner(kTRUE);
173 fOutputList->Add(fAllMCGammaList);
174
175 fTreeMaterialAllGamma = new TTree("AllGamma","AllGamma");
176 fTreeMaterialAllGamma->Branch("pt",&fGammaMCPt,"fGammaMCPt/F");
177 fTreeMaterialAllGamma->Branch("theta",&fGammaMCTheta,"fGammaMCTheta/I");
178 fAllMCGammaList->Add(fTreeMaterialAllGamma);
179
180 fAllMCConvGammaList = new TList();
181 fAllMCConvGammaList->SetName("AllMCGammaConvList");
182 fAllMCConvGammaList->SetOwner(kTRUE);
183 fOutputList->Add(fAllMCConvGammaList);
184
185// fMCConvCords = new Float_t[5];
186// fMCConvDaughterProp = new Float_t[4];
ca91a3e1 187
72395bd9 188
189 fTreeMaterialConvGamma = new TTree("ConvGammaMC","ConvGammaMC");
31216736 190 fTreeMaterialConvGamma->Branch("Cords",&fMCConvCords);
191 fTreeMaterialConvGamma->Branch("daughterProp",&fMCConvDaughterProp);
72395bd9 192 fTreeMaterialConvGamma->Branch("Pt",&fGammaMCConvPt,"fGammaMCConvPt/F");
193 fTreeMaterialConvGamma->Branch("Theta",&fGammaMCConvTheta,"fGammaMCConvTheta/F");
72395bd9 194 fAllMCConvGammaList->Add(fTreeMaterialConvGamma);
195 }
196
ca91a3e1 197 // V0 Reader Cuts
198 TString cutnumber = fConversionCuts->GetCutNumber();
ca91a3e1 199 PostData(1, fOutputList);
72395bd9 200
ca91a3e1 201}
202
203//________________________________________________________________________
204void AliAnalysisTaskMaterial::UserExec(Option_t *){
205
206 fV0Reader=(AliV0ReaderV1*)AliAnalysisManager::GetAnalysisManager()->GetTask("V0ReaderV1");
207
208 Int_t eventQuality = ((AliConversionCuts*)fV0Reader->GetConversionCuts())->GetEventQuality();
e5b6e8a6 209 if(eventQuality != 0){// Event Not Accepted
ca91a3e1 210 return;
211 }
212 fESDEvent = (AliESDEvent*) InputEvent();
0a2b2b4b 213 if (fESDEvent==NULL) return;
ca91a3e1 214 if(fIsHeavyIon && !fConversionCuts->IsCentralitySelected(fESDEvent)) return;
72395bd9 215 fNESDtracksEta09 = CountTracks09(); // Estimate Event Multiplicity
216 fNESDtracksEta0914 = CountTracks0914(); // Estimate Event Multiplicity
217 fNESDtracksEta14 = fNESDtracksEta09 + fNESDtracksEta0914;
ca91a3e1 218 if(fESDEvent){
219 if(fESDEvent->GetPrimaryVertexTracks()->GetNContributors()>0) {
72395bd9 220 fNContrVtx = fESDEvent->GetPrimaryVertexTracks()->GetNContributors();
ca91a3e1 221 } else if(fESDEvent->GetPrimaryVertexTracks()->GetNContributors()<1) {
222 if(fESDEvent->GetPrimaryVertexSPD()->GetNContributors()>0) {
72395bd9 223 fNContrVtx = fESDEvent->GetPrimaryVertexSPD()->GetNContributors();
ca91a3e1 224 } else if(fESDEvent->GetPrimaryVertexSPD()->GetNContributors()<1) {
72395bd9 225 fNContrVtx = 0;
ca91a3e1 226 }
227 }
228 }
72395bd9 229 fPrimVtxZ = fESDEvent->GetPrimaryVertex()->GetZ();
ca91a3e1 230
72395bd9 231 if (fTreeEvent){
232 fTreeEvent->Fill();
ca91a3e1 233 }
234
235 fConversionGammas=fV0Reader->GetReconstructedGammas();
236 if(MCEvent()){
237 fMCEvent = MCEvent();
238 }
239 ProcessPhotons();
240 if(MCEvent()){
241 ProcessMCPhotons();
242 }
243 PostData(1, fOutputList);
244}
245
e5b6e8a6 246///________________________________________________________________________
247void AliAnalysisTaskMaterial::FillMCTree(Int_t stackPos){
248 AliStack *MCStack = fMCEvent->Stack();
249 TParticle* candidate = (TParticle *)MCStack->Particle(stackPos);
250 if(fConversionCuts->PhotonIsSelectedMC(candidate,MCStack,kFALSE)){
72395bd9 251 fGammaMCPt = candidate->Pt();
252 fGammaMCTheta = candidate->Theta();
253 if (fTreeMaterialAllGamma){
254 fTreeMaterialAllGamma->Fill();
e5b6e8a6 255 }
256 }
257 if(fConversionCuts->PhotonIsSelectedMC(candidate,MCStack,kTRUE)){
72395bd9 258 fGammaMCConvPt = candidate->Pt();
259 fGammaMCConvTheta = candidate->Theta();
e5b6e8a6 260 TParticle* daughter1 = (TParticle *)MCStack->Particle(candidate->GetFirstDaughter());
261 TParticle* daughter2 = (TParticle *)MCStack->Particle(candidate->GetLastDaughter());
31216736 262 fMCConvCords(0) = (Float_t)daughter1->Vx();
263 fMCConvCords(1) = (Float_t)daughter1->Vy();
264 fMCConvCords(2) = (Float_t)daughter1->Vz();
265 fMCConvCords(3) = (Float_t)daughter1->R();
266 fMCConvCords(4) = (Float_t)daughter1->Phi();
72395bd9 267
31216736 268 fMCConvDaughterProp(0) = (Float_t)daughter1->Pt();
269 fMCConvDaughterProp(1) = (Float_t)daughter1->Theta();
270 fMCConvDaughterProp(2) = (Float_t)daughter2->Pt();
271 fMCConvDaughterProp(3) = (Float_t)daughter2->Theta();
72395bd9 272
273 if (fTreeMaterialConvGamma){
274 fTreeMaterialConvGamma->Fill();
e5b6e8a6 275 }
276 } // Converted MC Gamma
277}
ca91a3e1 278
279///________________________________________________________________________
280void AliAnalysisTaskMaterial::ProcessMCPhotons(){
281 // Loop over all primary MC particle
282 AliStack *ffMCStack = fMCEvent->Stack();
283 for(Int_t i = 0; i < ffMCStack->GetNprimary(); i++) {
284 TParticle* particle = (TParticle *)ffMCStack->Particle(i);
285 if (!particle) continue;
e5b6e8a6 286 if (particle->GetPdgCode() == 111 && particle->GetFirstDaughter() >= ffMCStack->GetNprimary()){
287// cout << "Undecayed pi0 found with mother: " << particle->GetMother(0) << endl;
288 for (Int_t j = 0; j < 2 ; j++){
289 FillMCTree(particle->GetDaughter(j));
ca91a3e1 290 }
e5b6e8a6 291 } else {
292 FillMCTree(i);
293 }
ca91a3e1 294 }
295}
296
297///________________________________________________________________________
298void AliAnalysisTaskMaterial::ProcessPhotons(){
299
300 // Fill Histograms for QA and MC
301 for(Int_t firstGammaIndex=0;firstGammaIndex<fConversionGammas->GetEntriesFast();firstGammaIndex++){
302 AliAODConversionPhoton *gamma=dynamic_cast<AliAODConversionPhoton*>(fConversionGammas->At(firstGammaIndex));
0a2b2b4b 303 if (gamma ==NULL) continue;
ca91a3e1 304 if(!fConversionCuts->PhotonIsSelected(gamma,fESDEvent)) continue;
72395bd9 305
306 fGammaPt = gamma->GetPhotonPt();
307 fGammaTheta = gamma->GetPhotonTheta();
308 fGammaChi2NDF = gamma->GetChi2perNDF();
31216736 309 fRecCords(0) = (Float_t)gamma->GetConversionX();
310 fRecCords(1) = (Float_t)gamma->GetConversionY();
311 fRecCords(2) = (Float_t)gamma->GetConversionZ();
312 fRecCords(3) = (Float_t)gamma->GetConversionRadius();
313 fRecCords(4) = (Float_t)gamma->GetPhotonPhi();
72395bd9 314
e5b6e8a6 315 AliESDtrack * negTrack = fConversionCuts->GetESDTrack(fESDEvent, gamma->GetTrackLabelNegative());
316 AliESDtrack * posTrack = fConversionCuts->GetESDTrack(fESDEvent, gamma->GetTrackLabelPositive());
31216736 317 fDaughterProp(0) = (Float_t)posTrack->Pt();
318 fDaughterProp(1) = (Float_t)posTrack->Theta();
319 fDaughterProp(2) = (Float_t)negTrack->Pt();
320 fDaughterProp(3) = (Float_t)negTrack->Theta();
72395bd9 321
322 fKind = 9;
323
ca91a3e1 324 if(fMCEvent){
325// cout << "generating MC stack"<< endl;
326 AliStack *fMCStack = fMCEvent->Stack();
327 if (!fMCStack) continue;
328 TParticle *posDaughter = gamma->GetPositiveMCDaughter(fMCStack);
329 TParticle *negDaughter = gamma->GetNegativeMCDaughter(fMCStack);
330// cout << "generate Daughters: "<<posDaughter << "\t" << negDaughter << endl;
331
332 if(posDaughter == NULL || negDaughter == NULL){
72395bd9 333 fKind = 9; // garbage
ca91a3e1 334// cout << "one of the daughters not available" << endl;
335 } else if(posDaughter->GetMother(0) != negDaughter->GetMother(0) || (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1)){
336 // Not Same Mother == Combinatorial Bck
72395bd9 337 fKind = 1;
ca91a3e1 338// cout << "not the same mother" << endl;
339 Int_t pdgCodePos;
340 if (posDaughter->GetPdgCode()) pdgCodePos = posDaughter->GetPdgCode(); else continue;
341 Int_t pdgCodeNeg;
342 if (negDaughter->GetPdgCode()) pdgCodeNeg = negDaughter->GetPdgCode(); else continue;
343// cout << "PDG codes daughters: " << pdgCodePos << "\t" << pdgCodeNeg << endl;
344 if(TMath::Abs(pdgCodePos)==11 && TMath::Abs(pdgCodeNeg)==11)
72395bd9 345 fKind = 10; //Electron Combinatorial
ca91a3e1 346 if(TMath::Abs(pdgCodePos)==11 && TMath::Abs(pdgCodeNeg)==11 && (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1))
72395bd9 347 fKind = 15; //direct Electron Combinatorial
ca91a3e1 348
349 if(TMath::Abs(pdgCodePos)==211 && TMath::Abs(pdgCodeNeg)==211)
72395bd9 350 fKind = 11; //Pion Combinatorial
ca91a3e1 351 if((TMath::Abs(pdgCodePos)==211 && TMath::Abs(pdgCodeNeg)==2212) ||
352 (TMath::Abs(pdgCodePos)==2212 && TMath::Abs(pdgCodeNeg)==211))
72395bd9 353 fKind = 12; //Pion, Proton Combinatorics
ca91a3e1 354 if((TMath::Abs(pdgCodePos)==211 && TMath::Abs(pdgCodeNeg)==11) ||
355 (TMath::Abs(pdgCodePos)==11 && TMath::Abs(pdgCodeNeg)==211))
72395bd9 356 fKind = 13; //Pion, Electron Combinatorics
ca91a3e1 357 if (TMath::Abs(pdgCodePos)==321 || TMath::Abs(pdgCodeNeg)==321)
72395bd9 358 fKind = 14; //Kaon combinatorics
ca91a3e1 359
360 } else {
361// cout << "same mother" << endl;
362 Int_t pdgCodePos;
363 if (posDaughter->GetPdgCode()) pdgCodePos = posDaughter->GetPdgCode(); else continue;
364 Int_t pdgCodeNeg;
365 if (negDaughter->GetPdgCode()) pdgCodeNeg = negDaughter->GetPdgCode(); else continue;
366// cout << "PDG codes daughters: " << pdgCodePos << "\t" << pdgCodeNeg << endl;
367 Int_t pdgCode;
368 if (gamma->GetMCParticle(fMCStack)->GetPdgCode()) pdgCode = gamma->GetMCParticle(fMCStack)->GetPdgCode(); else continue;
369// cout << "PDG code: " << pdgCode << endl;
370 if(TMath::Abs(pdgCodePos)!=11 || TMath::Abs(pdgCodeNeg)!=11)
72395bd9 371 fKind = 2; // combinatorics from hadronic decays
ca91a3e1 372 else if ( !(pdgCodeNeg==pdgCodePos)){
373 TParticle *truePhotonCanditate = gamma->GetMCParticle(fMCStack);
e5b6e8a6 374 Int_t motherLabelPhoton = truePhotonCanditate->GetMother(0);
ca91a3e1 375 if(pdgCode == 111)
72395bd9 376 fKind = 3; // pi0 Dalitz
ca91a3e1 377 else if (pdgCode == 221)
72395bd9 378 fKind = 4; // eta Dalitz
ca91a3e1 379 else if (!(negDaughter->GetUniqueID() != 5 || posDaughter->GetUniqueID() !=5)){
e5b6e8a6 380 if(pdgCode == 22 && motherLabelPhoton < fMCStack->GetNprimary()){
72395bd9 381 fKind = 0; // primary photons
ca91a3e1 382 } else if (pdgCode == 22){
72395bd9 383 fKind = 5; //secondary photons
384 }
385 } else fKind = 9; //garbage
386 } else fKind = 9; //garbage
387 }
ca91a3e1 388 }
72395bd9 389 if (fTreeMaterialRec){
390 fTreeMaterialRec->Fill();
391 }
ca91a3e1 392 }
393}
394
395//________________________________________________________________________
ae947965 396Int_t AliAnalysisTaskMaterial::CountTracks09(){
e5b6e8a6 397 Int_t fNumberOfESDTracks = 0;
ae947965 398 if(fInputEvent->IsA()==AliESDEvent::Class()){
399 // Using standard function for setting Cuts
400 Bool_t selectPrimaries=kTRUE;
401 AliESDtrackCuts *EsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(selectPrimaries);
402 EsdTrackCuts->SetMaxDCAToVertexZ(2);
403 EsdTrackCuts->SetEtaRange(-0.9, 0.9);
404 EsdTrackCuts->SetPtRange(0.15);
405
406 for(Int_t iTracks = 0; iTracks < fInputEvent->GetNumberOfTracks(); iTracks++){
407 AliESDtrack* curTrack = (AliESDtrack*) fInputEvent->GetTrack(iTracks);
408 if(!curTrack) continue;
ae947965 409 if(EsdTrackCuts->AcceptTrack(curTrack) ) fNumberOfESDTracks++;
410 }
411 delete EsdTrackCuts;
412 EsdTrackCuts=0x0;
413 }
414 else if(fInputEvent->IsA()==AliAODEvent::Class()){
415 for(Int_t iTracks = 0; iTracks<fInputEvent->GetNumberOfTracks(); iTracks++){
416 AliAODTrack* curTrack = (AliAODTrack*) fInputEvent->GetTrack(iTracks);
417 if(!curTrack->IsPrimaryCandidate()) continue;
418 if(abs(curTrack->Eta())>0.9) continue;
419 if(curTrack->Pt()<0.15) continue;
420 if(abs(curTrack->ZAtDCA())>2) continue;
421 fNumberOfESDTracks++;
422 }
e5b6e8a6 423 }
e5b6e8a6 424
425 return fNumberOfESDTracks;
426}
427
ae947965 428Int_t AliAnalysisTaskMaterial::CountTracks0914(){
e5b6e8a6 429
ae947965 430 Int_t fNumberOfESDTracks = 0;
431 if(fInputEvent->IsA()==AliESDEvent::Class()){
432 // Using standard function for setting Cuts
433 AliESDtrackCuts *EsdTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
434 EsdTrackCuts->SetMaxDCAToVertexZ(5);
435 EsdTrackCuts->SetEtaRange(0.9, 1.4);
436 EsdTrackCuts->SetPtRange(0.15);
437
438 for(Int_t iTracks = 0; iTracks < fInputEvent->GetNumberOfTracks(); iTracks++){
439 AliESDtrack* curTrack = (AliESDtrack*) fInputEvent->GetTrack(iTracks);
440 if(!curTrack) continue;
ae947965 441 if(EsdTrackCuts->AcceptTrack(curTrack) ) fNumberOfESDTracks++;
442 }
443 EsdTrackCuts->SetEtaRange(-1.4, -0.9);
444 for(Int_t iTracks = 0; iTracks < fESDEvent->GetNumberOfTracks(); iTracks++){
445 AliESDtrack* curTrack = fESDEvent->GetTrack(iTracks);
446 if(!curTrack) continue;
447 if(EsdTrackCuts->AcceptTrack(curTrack) ) fNumberOfESDTracks++;
448 }
449 delete EsdTrackCuts;
450 EsdTrackCuts=0x0;
e5b6e8a6 451 }
ae947965 452 else if(fInputEvent->IsA()==AliAODEvent::Class()){
453 for(Int_t iTracks = 0; iTracks<fInputEvent->GetNumberOfTracks(); iTracks++){
454 AliAODTrack* curTrack = (AliAODTrack*) fInputEvent->GetTrack(iTracks);
ae947965 455 if(abs(curTrack->Eta())<0.9 || abs(curTrack->Eta())>1.4 ) continue;
456 if(curTrack->Pt()<0.15) continue;
457 if(abs(curTrack->ZAtDCA())>5) continue;
458 fNumberOfESDTracks++;
459 }
e5b6e8a6 460 }
ae947965 461
ca91a3e1 462 return fNumberOfESDTracks;
463}
464
ca91a3e1 465//________________________________________________________________________
466void AliAnalysisTaskMaterial::Terminate(Option_t *)
467{
0a2b2b4b 468// if (fStreamMaterial){
469// fStreamMaterial->GetFile()->Write();
470// }
ca91a3e1 471}