ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *																								*
 * Authors: Friederike Bock															*
 * Version 1.0																				*
 *																								*
 * Permission to use, copy, modify and distribute this software and its	 *
 * documentation strictly for non-commercial purposes is hereby granted	 *
 * without fee, provided that the above copyright notice appears in all	 *
 * copies and that both the copyright notice and this permission notice	 *
 * appear in the supporting documentation. The authors make no claims	 *
 * about the suitability of this software for any purpose. It is			*
 * provided "as is" without express or implied warranty.						*
 **************************************************************************/

////////////////////////////////////////////////
//---------------------------------------------
// QA Task for V0 Reader V1
//---------------------------------------------
////////////////////////////////////////////////

#include "AliAnalysisTaskResolution.h"
#include "TChain.h"
#include "AliAnalysisManager.h"
#include "TParticle.h"
#include "TVectorF.h"
#include "AliPIDResponse.h"
#include "AliESDtrackCuts.h"
#include "TFile.h"

class iostream;

using namespace std;

ClassImp(AliAnalysisTaskResolution)

//________________________________________________________________________
AliAnalysisTaskResolution::AliAnalysisTaskResolution() : AliAnalysisTaskSE(),
	fV0Reader(NULL),
	fConversionGammas(NULL),
	fEventCuts(NULL),
	fConversionCuts(NULL),
	fTreeEvent(NULL),
	fTreeResolution(NULL),
	fPrimVtxZ(0.),
	fNContrVtx(0),
	fNESDtracksEta09(0),
	fNESDtracksEta0914(0),
	fNESDtracksEta14(0),
	fGammaRecCoords(5),
	fGammaMCCoords(5),
	fChi2ndf(0),
	fIsHeavyIon(0),
	fIsMC(kFALSE),
	fOutputList(NULL),
	fEventList(NULL),
	fResolutionList(NULL),
	fESDEvent(NULL),
	fMCEvent(NULL)
{

   
}

//________________________________________________________________________
AliAnalysisTaskResolution::AliAnalysisTaskResolution(const char *name) : AliAnalysisTaskSE(name),
	fV0Reader(NULL),
	fConversionGammas(NULL),
	fEventCuts(NULL),
	fConversionCuts(NULL),
	fTreeEvent(NULL),
	fTreeResolution(NULL),
	fPrimVtxZ(0.),
	fNContrVtx(0),
	fNESDtracksEta09(0),
	fNESDtracksEta0914(0),
	fNESDtracksEta14(0),
	fGammaRecCoords(5),
	fGammaMCCoords(5),
	fChi2ndf(0),
	fIsHeavyIon(0),
	fIsMC(kFALSE),
	fOutputList(NULL),
	fEventList(NULL),
	fResolutionList(NULL),
	fESDEvent(NULL),
	fMCEvent(NULL)
{
	// Default constructor

	DefineInput(0, TChain::Class());
	DefineOutput(1, TList::Class());
}

//________________________________________________________________________
AliAnalysisTaskResolution::~AliAnalysisTaskResolution()
{
	// default deconstructor
   
}
//________________________________________________________________________
void AliAnalysisTaskResolution::UserCreateOutputObjects()
{
	// Create User Output Objects

	if(fOutputList != NULL){
		delete fOutputList;
		fOutputList = NULL;
	}
	if(fOutputList == NULL){
		fOutputList = new TList();
		fOutputList->SetOwner(kTRUE);
	}
	
	fEventList = new TList();
	fEventList->SetName("EventList");
	fEventList->SetOwner(kTRUE);
	fOutputList->Add(fEventList);
	
	fTreeEvent = new TTree("Event","Event");   
	fTreeEvent->Branch("primVtxZ",&fPrimVtxZ,"fPrimVtxZ/F");
	fTreeEvent->Branch("nContrVtx",&fNContrVtx,"fNContrVtx/I");
	fTreeEvent->Branch("nGoodTracksEta09",&fNESDtracksEta09,"fNESDtracksEta09/I");
	fTreeEvent->Branch("nGoodTracksEta14",&fNESDtracksEta14,"fNESDtracksEta14/I");
	fEventList->Add(fTreeEvent);
	
	if (fIsMC){		
		fResolutionList = new TList();
		fResolutionList->SetName("ResolutionList");
		fResolutionList->SetOwner(kTRUE);
		fOutputList->Add(fResolutionList);
								
		fTreeResolution = new TTree("Resolution","Resolution");
		fTreeResolution->Branch("nGoodTracksEta09",&fNESDtracksEta09,"fNESDtracksEta09/I");
		fTreeResolution->Branch("RecCoords",&fGammaRecCoords);
		fTreeResolution->Branch("MCCoords",&fGammaMCCoords);
		fTreeResolution->Branch("chi2ndf",&fChi2ndf,"fChi2ndf/F");
		fResolutionList->Add(fTreeResolution);
	}
	PostData(1, fOutputList);
}

//________________________________________________________________________
void AliAnalysisTaskResolution::UserExec(Option_t *){

	fV0Reader=(AliV0ReaderV1*)AliAnalysisManager::GetAnalysisManager()->GetTask("V0ReaderV1");

	Int_t eventQuality = ((AliConvEventCuts*)fV0Reader->GetEventCuts())->GetEventQuality();
	if(eventQuality != 0){// Event Not Accepted
		return;
	}
	fESDEvent = (AliESDEvent*) InputEvent();
	if (fESDEvent==NULL) return;
	if(MCEvent()){
		fMCEvent = MCEvent();
	}
 
	if(MCEvent()){
		// Process MC Particle
		if(fEventCuts->GetSignalRejection() != 0){
// 		if(fESDEvent->IsA()==AliESDEvent::Class()){
			fEventCuts->GetNotRejectedParticles(	fEventCuts->GetSignalRejection(),
													fEventCuts->GetAcceptedHeader(),
													fMCEvent);
// 		}
// 		else if(fInputEvent->IsA()==AliAODEvent::Class()){
// 			fEventCuts->GetNotRejectedParticles(	fEventCuts->GetSignalRejection(),
// 													fEventCuts->GetAcceptedHeader(),
// 													fInputEvent);
// 		}
		}
	}

   
	if(fIsHeavyIon > 0 && !fEventCuts->IsCentralitySelected(fESDEvent)) return;
	fNESDtracksEta09 = CountTracks09(); // Estimate Event Multiplicity
	fNESDtracksEta0914 = CountTracks0914(); // Estimate Event Multiplicity
	fNESDtracksEta14 = fNESDtracksEta09 + fNESDtracksEta0914;
 	if(fESDEvent){
		if(fESDEvent->GetPrimaryVertexTracks()->GetNContributors()>0) {
			fNContrVtx = fESDEvent->GetPrimaryVertexTracks()->GetNContributors();
		} else {
			fNContrVtx = 0;
		}	
// 		else if(fESDEvent->GetPrimaryVertexTracks()->GetNContributors()<1) {
// 			if(fESDEvent->GetPrimaryVertexSPD()->GetNContributors()>0) {
// 				fNContrVtx = fESDEvent->GetPrimaryVertexSPD()->GetNContributors();
// 			} else if(fESDEvent->GetPrimaryVertexSPD()->GetNContributors()<1) {
// 				fNContrVtx = 0;
// 			}
// 		}
	}
	fPrimVtxZ = fESDEvent->GetPrimaryVertex()->GetZ();
	
// 	if (fIsHeavyIon == 2){
// 		if (!(fNESDtracksEta09 > 20 && fNESDtracksEta09 < 80)) return;
// 	}	

	
	if (fTreeEvent){
		fTreeEvent->Fill();
	}

	fConversionGammas=fV0Reader->GetReconstructedGammas();
	ProcessPhotons();
	PostData(1, fOutputList);
}


///________________________________________________________________________
void AliAnalysisTaskResolution::ProcessPhotons(){

	// Fill Histograms for QA and MC
	for(Int_t firstGammaIndex=0;firstGammaIndex<fConversionGammas->GetEntriesFast();firstGammaIndex++){
		AliAODConversionPhoton *gamma=dynamic_cast<AliAODConversionPhoton*>(fConversionGammas->At(firstGammaIndex));
		if (gamma ==NULL) continue;
		if(!fConversionCuts->PhotonIsSelected(gamma,fESDEvent)) continue;
		fNESDtracksEta09 = CountTracks09(); // Estimate Event Multiplicity
		fGammaRecCoords(0) = gamma->GetPhotonPt();
		fGammaRecCoords(1) = gamma->GetPhotonPhi();
		fGammaRecCoords(2) = gamma->GetPhotonEta();
		fGammaRecCoords(3) = gamma->GetConversionRadius();
		fGammaRecCoords(4) = gamma->GetConversionZ();
		fChi2ndf = gamma->GetChi2perNDF();
		if(MCEvent()){
// 			cout << "generating MC stack"<< endl;
			AliStack *fMCStack = fMCEvent->Stack();
			if (!fMCStack) continue;
			TParticle *posDaughter = gamma->GetPositiveMCDaughter(fMCStack);
			TParticle *negDaughter = gamma->GetNegativeMCDaughter(fMCStack);
// 			cout << "generate Daughters: "<<posDaughter << "\t" << negDaughter << endl;
			if(fMCStack && fEventCuts->GetSignalRejection() != 0){
				Int_t isPosFromMBHeader = fEventCuts->IsParticleFromBGEvent(gamma->GetMCLabelPositive(), fMCStack, fESDEvent);
				Int_t isNegFromMBHeader = fEventCuts->IsParticleFromBGEvent(gamma->GetMCLabelNegative(), fMCStack, fESDEvent);
				if( (isNegFromMBHeader < 1) || (isPosFromMBHeader < 1)) continue;
			}
			
			if(posDaughter == NULL || negDaughter == NULL){ 
				continue;
			} else if(posDaughter->GetMother(0) != negDaughter->GetMother(0) || (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1)){ 
				continue;
			} else {
// 				cout << "same mother" << endl;
				Int_t pdgCodePos; 
				if (posDaughter->GetPdgCode()) pdgCodePos = posDaughter->GetPdgCode(); else continue;
				Int_t pdgCodeNeg; 
				if (negDaughter->GetPdgCode()) pdgCodeNeg = negDaughter->GetPdgCode(); else continue;
// 				cout << "PDG codes daughters: " << pdgCodePos << "\t" << pdgCodeNeg << endl;
				Int_t pdgCode; 
				if (gamma->GetMCParticle(fMCStack)->GetPdgCode()) pdgCode = gamma->GetMCParticle(fMCStack)->GetPdgCode(); else continue;
// 				cout << "PDG code: " << pdgCode << endl;
				if(TMath::Abs(pdgCodePos)!=11 || TMath::Abs(pdgCodeNeg)!=11)
					continue;
				else if ( !(pdgCodeNeg==pdgCodePos)){
					TParticle *truePhotonCanditate = gamma->GetMCParticle(fMCStack);
					if(pdgCode == 111) 
						continue;
					else if (pdgCode == 221) 
						continue;
					else if (!(negDaughter->GetUniqueID() != 5 || posDaughter->GetUniqueID() !=5)){
						if(pdgCode == 22){
							fGammaMCCoords(0) = truePhotonCanditate->Pt();
							fGammaMCCoords(1) = gamma->GetNegativeMCDaughter(fMCStack)->Phi();
							fGammaMCCoords(2) = gamma->GetNegativeMCDaughter(fMCStack)->Eta();
							fGammaMCCoords(3) = gamma->GetNegativeMCDaughter(fMCStack)->R();
							fGammaMCCoords(4) = gamma->GetNegativeMCDaughter(fMCStack)->Vz();
							
							if (fTreeResolution){
								fTreeResolution->Fill();
							}
						}		
					} else continue; //garbage
				} else continue; //garbage
			}
		}
	}
}

//________________________________________________________________________
Int_t AliAnalysisTaskResolution::CountTracks09(){
	Int_t fNumberOfESDTracks = 0;
	if(fInputEvent->IsA()==AliESDEvent::Class()){
	// Using standard function for setting Cuts
		
		AliStack *fMCStack = NULL;
		if (MCEvent()){
			fMCStack= fMCEvent->Stack();
			if (!fMCStack) return 0;
		}	
				
		Bool_t selectPrimaries=kTRUE;
		AliESDtrackCuts *EsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(selectPrimaries);
		EsdTrackCuts->SetMaxDCAToVertexZ(2);
		EsdTrackCuts->SetEtaRange(-0.9, 0.9);
		EsdTrackCuts->SetPtRange(0.15);
		
		for(Int_t iTracks = 0; iTracks < fInputEvent->GetNumberOfTracks(); iTracks++){
			AliESDtrack* curTrack = (AliESDtrack*) fInputEvent->GetTrack(iTracks);
			if(!curTrack) continue;
			if(EsdTrackCuts->AcceptTrack(curTrack) ){
				if (fMCEvent){
					if(fMCStack && fEventCuts->GetSignalRejection() != 0){
						Int_t isFromMBHeader = fEventCuts->IsParticleFromBGEvent(abs(curTrack->GetLabel()), fMCStack, fESDEvent);
						if( (isFromMBHeader < 1) ) continue;
					}					
				}	
				fNumberOfESDTracks++;
			}	
		}
		delete EsdTrackCuts;
		EsdTrackCuts=0x0;
	} else if(fInputEvent->IsA()==AliAODEvent::Class()){
		for(Int_t iTracks = 0; iTracks<fInputEvent->GetNumberOfTracks(); iTracks++){
			AliAODTrack* curTrack = (AliAODTrack*) fInputEvent->GetTrack(iTracks);
			if(!curTrack->IsPrimaryCandidate()) continue;
			if(abs(curTrack->Eta())>0.9) continue;
			if(curTrack->Pt()<0.15) continue;
			if(abs(curTrack->ZAtDCA())>2) continue;
			fNumberOfESDTracks++;
		}
	}

	return fNumberOfESDTracks;
}

//________________________________________________________________________
Int_t AliAnalysisTaskResolution::CountTracks0914(){
	Int_t fNumberOfESDTracks = 0;
	if(fInputEvent->IsA()==AliESDEvent::Class()){
		// Using standard function for setting Cuts
		
		AliStack *fMCStack = NULL;
		if (MCEvent()){
			fMCStack= fMCEvent->Stack();
			if (!fMCStack) return 0;
		}	

		AliESDtrackCuts *EsdTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
		EsdTrackCuts->SetMaxDCAToVertexZ(5);
		EsdTrackCuts->SetEtaRange(0.9, 1.4);
		EsdTrackCuts->SetPtRange(0.15);
		
		for(Int_t iTracks = 0; iTracks < fInputEvent->GetNumberOfTracks(); iTracks++){
			AliESDtrack* curTrack = (AliESDtrack*) fInputEvent->GetTrack(iTracks);
			if(!curTrack) continue;
			if(EsdTrackCuts->AcceptTrack(curTrack) ){
				if (fMCEvent){
					if(fMCStack && fEventCuts->GetSignalRejection() != 0){
						Int_t isFromMBHeader = fEventCuts->IsParticleFromBGEvent(abs(curTrack->GetLabel()), fMCStack, fESDEvent);
						if( (isFromMBHeader < 1) ) continue;
					}					
				}	
				fNumberOfESDTracks++;
			}
		}
		EsdTrackCuts->SetEtaRange(-1.4, -0.9);
		for(Int_t iTracks = 0; iTracks < fESDEvent->GetNumberOfTracks(); iTracks++){
			AliESDtrack* curTrack = fESDEvent->GetTrack(iTracks);
			if(!curTrack) continue;
			if(EsdTrackCuts->AcceptTrack(curTrack) ){
				if (fMCEvent){
					if(fMCStack && fEventCuts->GetSignalRejection() != 0){
						Int_t isFromMBHeader = fEventCuts->IsParticleFromBGEvent(abs(curTrack->GetLabel()), fMCStack, fESDEvent);
						if( (isFromMBHeader < 1) ) continue;
					}					
				}	
				fNumberOfESDTracks++;
			}	
		}
		delete EsdTrackCuts;
		EsdTrackCuts=0x0;
	} else if(fInputEvent->IsA()==AliAODEvent::Class()){
		for(Int_t iTracks = 0; iTracks<fInputEvent->GetNumberOfTracks(); iTracks++){
			AliAODTrack* curTrack = (AliAODTrack*) fInputEvent->GetTrack(iTracks);
			if(abs(curTrack->Eta())<0.9 || abs(curTrack->Eta())>1.4 ) continue;
			if(curTrack->Pt()<0.15) continue;
			if(abs(curTrack->ZAtDCA())>5) continue;
			fNumberOfESDTracks++;
		}
	}
	
	return fNumberOfESDTracks;
}

//________________________________________________________________________
void AliAnalysisTaskResolution::Terminate(Option_t *)
{
	
}
 AliAnalysisTaskResolution.cxx:1
 AliAnalysisTaskResolution.cxx:2
 AliAnalysisTaskResolution.cxx:3
 AliAnalysisTaskResolution.cxx:4
 AliAnalysisTaskResolution.cxx:5
 AliAnalysisTaskResolution.cxx:6
 AliAnalysisTaskResolution.cxx:7
 AliAnalysisTaskResolution.cxx:8
 AliAnalysisTaskResolution.cxx:9
 AliAnalysisTaskResolution.cxx:10
 AliAnalysisTaskResolution.cxx:11
 AliAnalysisTaskResolution.cxx:12
 AliAnalysisTaskResolution.cxx:13
 AliAnalysisTaskResolution.cxx:14
 AliAnalysisTaskResolution.cxx:15
 AliAnalysisTaskResolution.cxx:16
 AliAnalysisTaskResolution.cxx:17
 AliAnalysisTaskResolution.cxx:18
 AliAnalysisTaskResolution.cxx:19
 AliAnalysisTaskResolution.cxx:20
 AliAnalysisTaskResolution.cxx:21
 AliAnalysisTaskResolution.cxx:22
 AliAnalysisTaskResolution.cxx:23
 AliAnalysisTaskResolution.cxx:24
 AliAnalysisTaskResolution.cxx:25
 AliAnalysisTaskResolution.cxx:26
 AliAnalysisTaskResolution.cxx:27
 AliAnalysisTaskResolution.cxx:28
 AliAnalysisTaskResolution.cxx:29
 AliAnalysisTaskResolution.cxx:30
 AliAnalysisTaskResolution.cxx:31
 AliAnalysisTaskResolution.cxx:32
 AliAnalysisTaskResolution.cxx:33
 AliAnalysisTaskResolution.cxx:34
 AliAnalysisTaskResolution.cxx:35
 AliAnalysisTaskResolution.cxx:36
 AliAnalysisTaskResolution.cxx:37
 AliAnalysisTaskResolution.cxx:38
 AliAnalysisTaskResolution.cxx:39
 AliAnalysisTaskResolution.cxx:40
 AliAnalysisTaskResolution.cxx:41
 AliAnalysisTaskResolution.cxx:42
 AliAnalysisTaskResolution.cxx:43
 AliAnalysisTaskResolution.cxx:44
 AliAnalysisTaskResolution.cxx:45
 AliAnalysisTaskResolution.cxx:46
 AliAnalysisTaskResolution.cxx:47
 AliAnalysisTaskResolution.cxx:48
 AliAnalysisTaskResolution.cxx:49
 AliAnalysisTaskResolution.cxx:50
 AliAnalysisTaskResolution.cxx:51
 AliAnalysisTaskResolution.cxx:52
 AliAnalysisTaskResolution.cxx:53
 AliAnalysisTaskResolution.cxx:54
 AliAnalysisTaskResolution.cxx:55
 AliAnalysisTaskResolution.cxx:56
 AliAnalysisTaskResolution.cxx:57
 AliAnalysisTaskResolution.cxx:58
 AliAnalysisTaskResolution.cxx:59
 AliAnalysisTaskResolution.cxx:60
 AliAnalysisTaskResolution.cxx:61
 AliAnalysisTaskResolution.cxx:62
 AliAnalysisTaskResolution.cxx:63
 AliAnalysisTaskResolution.cxx:64
 AliAnalysisTaskResolution.cxx:65
 AliAnalysisTaskResolution.cxx:66
 AliAnalysisTaskResolution.cxx:67
 AliAnalysisTaskResolution.cxx:68
 AliAnalysisTaskResolution.cxx:69
 AliAnalysisTaskResolution.cxx:70
 AliAnalysisTaskResolution.cxx:71
 AliAnalysisTaskResolution.cxx:72
 AliAnalysisTaskResolution.cxx:73
 AliAnalysisTaskResolution.cxx:74
 AliAnalysisTaskResolution.cxx:75
 AliAnalysisTaskResolution.cxx:76
 AliAnalysisTaskResolution.cxx:77
 AliAnalysisTaskResolution.cxx:78
 AliAnalysisTaskResolution.cxx:79
 AliAnalysisTaskResolution.cxx:80
 AliAnalysisTaskResolution.cxx:81
 AliAnalysisTaskResolution.cxx:82
 AliAnalysisTaskResolution.cxx:83
 AliAnalysisTaskResolution.cxx:84
 AliAnalysisTaskResolution.cxx:85
 AliAnalysisTaskResolution.cxx:86
 AliAnalysisTaskResolution.cxx:87
 AliAnalysisTaskResolution.cxx:88
 AliAnalysisTaskResolution.cxx:89
 AliAnalysisTaskResolution.cxx:90
 AliAnalysisTaskResolution.cxx:91
 AliAnalysisTaskResolution.cxx:92
 AliAnalysisTaskResolution.cxx:93
 AliAnalysisTaskResolution.cxx:94
 AliAnalysisTaskResolution.cxx:95
 AliAnalysisTaskResolution.cxx:96
 AliAnalysisTaskResolution.cxx:97
 AliAnalysisTaskResolution.cxx:98
 AliAnalysisTaskResolution.cxx:99
 AliAnalysisTaskResolution.cxx:100
 AliAnalysisTaskResolution.cxx:101
 AliAnalysisTaskResolution.cxx:102
 AliAnalysisTaskResolution.cxx:103
 AliAnalysisTaskResolution.cxx:104
 AliAnalysisTaskResolution.cxx:105
 AliAnalysisTaskResolution.cxx:106
 AliAnalysisTaskResolution.cxx:107
 AliAnalysisTaskResolution.cxx:108
 AliAnalysisTaskResolution.cxx:109
 AliAnalysisTaskResolution.cxx:110
 AliAnalysisTaskResolution.cxx:111
 AliAnalysisTaskResolution.cxx:112
 AliAnalysisTaskResolution.cxx:113
 AliAnalysisTaskResolution.cxx:114
 AliAnalysisTaskResolution.cxx:115
 AliAnalysisTaskResolution.cxx:116
 AliAnalysisTaskResolution.cxx:117
 AliAnalysisTaskResolution.cxx:118
 AliAnalysisTaskResolution.cxx:119
 AliAnalysisTaskResolution.cxx:120
 AliAnalysisTaskResolution.cxx:121
 AliAnalysisTaskResolution.cxx:122
 AliAnalysisTaskResolution.cxx:123
 AliAnalysisTaskResolution.cxx:124
 AliAnalysisTaskResolution.cxx:125
 AliAnalysisTaskResolution.cxx:126
 AliAnalysisTaskResolution.cxx:127
 AliAnalysisTaskResolution.cxx:128
 AliAnalysisTaskResolution.cxx:129
 AliAnalysisTaskResolution.cxx:130
 AliAnalysisTaskResolution.cxx:131
 AliAnalysisTaskResolution.cxx:132
 AliAnalysisTaskResolution.cxx:133
 AliAnalysisTaskResolution.cxx:134
 AliAnalysisTaskResolution.cxx:135
 AliAnalysisTaskResolution.cxx:136
 AliAnalysisTaskResolution.cxx:137
 AliAnalysisTaskResolution.cxx:138
 AliAnalysisTaskResolution.cxx:139
 AliAnalysisTaskResolution.cxx:140
 AliAnalysisTaskResolution.cxx:141
 AliAnalysisTaskResolution.cxx:142
 AliAnalysisTaskResolution.cxx:143
 AliAnalysisTaskResolution.cxx:144
 AliAnalysisTaskResolution.cxx:145
 AliAnalysisTaskResolution.cxx:146
 AliAnalysisTaskResolution.cxx:147
 AliAnalysisTaskResolution.cxx:148
 AliAnalysisTaskResolution.cxx:149
 AliAnalysisTaskResolution.cxx:150
 AliAnalysisTaskResolution.cxx:151
 AliAnalysisTaskResolution.cxx:152
 AliAnalysisTaskResolution.cxx:153
 AliAnalysisTaskResolution.cxx:154
 AliAnalysisTaskResolution.cxx:155
 AliAnalysisTaskResolution.cxx:156
 AliAnalysisTaskResolution.cxx:157
 AliAnalysisTaskResolution.cxx:158
 AliAnalysisTaskResolution.cxx:159
 AliAnalysisTaskResolution.cxx:160
 AliAnalysisTaskResolution.cxx:161
 AliAnalysisTaskResolution.cxx:162
 AliAnalysisTaskResolution.cxx:163
 AliAnalysisTaskResolution.cxx:164
 AliAnalysisTaskResolution.cxx:165
 AliAnalysisTaskResolution.cxx:166
 AliAnalysisTaskResolution.cxx:167
 AliAnalysisTaskResolution.cxx:168
 AliAnalysisTaskResolution.cxx:169
 AliAnalysisTaskResolution.cxx:170
 AliAnalysisTaskResolution.cxx:171
 AliAnalysisTaskResolution.cxx:172
 AliAnalysisTaskResolution.cxx:173
 AliAnalysisTaskResolution.cxx:174
 AliAnalysisTaskResolution.cxx:175
 AliAnalysisTaskResolution.cxx:176
 AliAnalysisTaskResolution.cxx:177
 AliAnalysisTaskResolution.cxx:178
 AliAnalysisTaskResolution.cxx:179
 AliAnalysisTaskResolution.cxx:180
 AliAnalysisTaskResolution.cxx:181
 AliAnalysisTaskResolution.cxx:182
 AliAnalysisTaskResolution.cxx:183
 AliAnalysisTaskResolution.cxx:184
 AliAnalysisTaskResolution.cxx:185
 AliAnalysisTaskResolution.cxx:186
 AliAnalysisTaskResolution.cxx:187
 AliAnalysisTaskResolution.cxx:188
 AliAnalysisTaskResolution.cxx:189
 AliAnalysisTaskResolution.cxx:190
 AliAnalysisTaskResolution.cxx:191
 AliAnalysisTaskResolution.cxx:192
 AliAnalysisTaskResolution.cxx:193
 AliAnalysisTaskResolution.cxx:194
 AliAnalysisTaskResolution.cxx:195
 AliAnalysisTaskResolution.cxx:196
 AliAnalysisTaskResolution.cxx:197
 AliAnalysisTaskResolution.cxx:198
 AliAnalysisTaskResolution.cxx:199
 AliAnalysisTaskResolution.cxx:200
 AliAnalysisTaskResolution.cxx:201
 AliAnalysisTaskResolution.cxx:202
 AliAnalysisTaskResolution.cxx:203
 AliAnalysisTaskResolution.cxx:204
 AliAnalysisTaskResolution.cxx:205
 AliAnalysisTaskResolution.cxx:206
 AliAnalysisTaskResolution.cxx:207
 AliAnalysisTaskResolution.cxx:208
 AliAnalysisTaskResolution.cxx:209
 AliAnalysisTaskResolution.cxx:210
 AliAnalysisTaskResolution.cxx:211
 AliAnalysisTaskResolution.cxx:212
 AliAnalysisTaskResolution.cxx:213
 AliAnalysisTaskResolution.cxx:214
 AliAnalysisTaskResolution.cxx:215
 AliAnalysisTaskResolution.cxx:216
 AliAnalysisTaskResolution.cxx:217
 AliAnalysisTaskResolution.cxx:218
 AliAnalysisTaskResolution.cxx:219
 AliAnalysisTaskResolution.cxx:220
 AliAnalysisTaskResolution.cxx:221
 AliAnalysisTaskResolution.cxx:222
 AliAnalysisTaskResolution.cxx:223
 AliAnalysisTaskResolution.cxx:224
 AliAnalysisTaskResolution.cxx:225
 AliAnalysisTaskResolution.cxx:226
 AliAnalysisTaskResolution.cxx:227
 AliAnalysisTaskResolution.cxx:228
 AliAnalysisTaskResolution.cxx:229
 AliAnalysisTaskResolution.cxx:230
 AliAnalysisTaskResolution.cxx:231
 AliAnalysisTaskResolution.cxx:232
 AliAnalysisTaskResolution.cxx:233
 AliAnalysisTaskResolution.cxx:234
 AliAnalysisTaskResolution.cxx:235
 AliAnalysisTaskResolution.cxx:236
 AliAnalysisTaskResolution.cxx:237
 AliAnalysisTaskResolution.cxx:238
 AliAnalysisTaskResolution.cxx:239
 AliAnalysisTaskResolution.cxx:240
 AliAnalysisTaskResolution.cxx:241
 AliAnalysisTaskResolution.cxx:242
 AliAnalysisTaskResolution.cxx:243
 AliAnalysisTaskResolution.cxx:244
 AliAnalysisTaskResolution.cxx:245
 AliAnalysisTaskResolution.cxx:246
 AliAnalysisTaskResolution.cxx:247
 AliAnalysisTaskResolution.cxx:248
 AliAnalysisTaskResolution.cxx:249
 AliAnalysisTaskResolution.cxx:250
 AliAnalysisTaskResolution.cxx:251
 AliAnalysisTaskResolution.cxx:252
 AliAnalysisTaskResolution.cxx:253
 AliAnalysisTaskResolution.cxx:254
 AliAnalysisTaskResolution.cxx:255
 AliAnalysisTaskResolution.cxx:256
 AliAnalysisTaskResolution.cxx:257
 AliAnalysisTaskResolution.cxx:258
 AliAnalysisTaskResolution.cxx:259
 AliAnalysisTaskResolution.cxx:260
 AliAnalysisTaskResolution.cxx:261
 AliAnalysisTaskResolution.cxx:262
 AliAnalysisTaskResolution.cxx:263
 AliAnalysisTaskResolution.cxx:264
 AliAnalysisTaskResolution.cxx:265
 AliAnalysisTaskResolution.cxx:266
 AliAnalysisTaskResolution.cxx:267
 AliAnalysisTaskResolution.cxx:268
 AliAnalysisTaskResolution.cxx:269
 AliAnalysisTaskResolution.cxx:270
 AliAnalysisTaskResolution.cxx:271
 AliAnalysisTaskResolution.cxx:272
 AliAnalysisTaskResolution.cxx:273
 AliAnalysisTaskResolution.cxx:274
 AliAnalysisTaskResolution.cxx:275
 AliAnalysisTaskResolution.cxx:276
 AliAnalysisTaskResolution.cxx:277
 AliAnalysisTaskResolution.cxx:278
 AliAnalysisTaskResolution.cxx:279
 AliAnalysisTaskResolution.cxx:280
 AliAnalysisTaskResolution.cxx:281
 AliAnalysisTaskResolution.cxx:282
 AliAnalysisTaskResolution.cxx:283
 AliAnalysisTaskResolution.cxx:284
 AliAnalysisTaskResolution.cxx:285
 AliAnalysisTaskResolution.cxx:286
 AliAnalysisTaskResolution.cxx:287
 AliAnalysisTaskResolution.cxx:288
 AliAnalysisTaskResolution.cxx:289
 AliAnalysisTaskResolution.cxx:290
 AliAnalysisTaskResolution.cxx:291
 AliAnalysisTaskResolution.cxx:292
 AliAnalysisTaskResolution.cxx:293
 AliAnalysisTaskResolution.cxx:294
 AliAnalysisTaskResolution.cxx:295
 AliAnalysisTaskResolution.cxx:296
 AliAnalysisTaskResolution.cxx:297
 AliAnalysisTaskResolution.cxx:298
 AliAnalysisTaskResolution.cxx:299
 AliAnalysisTaskResolution.cxx:300
 AliAnalysisTaskResolution.cxx:301
 AliAnalysisTaskResolution.cxx:302
 AliAnalysisTaskResolution.cxx:303
 AliAnalysisTaskResolution.cxx:304
 AliAnalysisTaskResolution.cxx:305
 AliAnalysisTaskResolution.cxx:306
 AliAnalysisTaskResolution.cxx:307
 AliAnalysisTaskResolution.cxx:308
 AliAnalysisTaskResolution.cxx:309
 AliAnalysisTaskResolution.cxx:310
 AliAnalysisTaskResolution.cxx:311
 AliAnalysisTaskResolution.cxx:312
 AliAnalysisTaskResolution.cxx:313
 AliAnalysisTaskResolution.cxx:314
 AliAnalysisTaskResolution.cxx:315
 AliAnalysisTaskResolution.cxx:316
 AliAnalysisTaskResolution.cxx:317
 AliAnalysisTaskResolution.cxx:318
 AliAnalysisTaskResolution.cxx:319
 AliAnalysisTaskResolution.cxx:320
 AliAnalysisTaskResolution.cxx:321
 AliAnalysisTaskResolution.cxx:322
 AliAnalysisTaskResolution.cxx:323
 AliAnalysisTaskResolution.cxx:324
 AliAnalysisTaskResolution.cxx:325
 AliAnalysisTaskResolution.cxx:326
 AliAnalysisTaskResolution.cxx:327
 AliAnalysisTaskResolution.cxx:328
 AliAnalysisTaskResolution.cxx:329
 AliAnalysisTaskResolution.cxx:330
 AliAnalysisTaskResolution.cxx:331
 AliAnalysisTaskResolution.cxx:332
 AliAnalysisTaskResolution.cxx:333
 AliAnalysisTaskResolution.cxx:334
 AliAnalysisTaskResolution.cxx:335
 AliAnalysisTaskResolution.cxx:336
 AliAnalysisTaskResolution.cxx:337
 AliAnalysisTaskResolution.cxx:338
 AliAnalysisTaskResolution.cxx:339
 AliAnalysisTaskResolution.cxx:340
 AliAnalysisTaskResolution.cxx:341
 AliAnalysisTaskResolution.cxx:342
 AliAnalysisTaskResolution.cxx:343
 AliAnalysisTaskResolution.cxx:344
 AliAnalysisTaskResolution.cxx:345
 AliAnalysisTaskResolution.cxx:346
 AliAnalysisTaskResolution.cxx:347
 AliAnalysisTaskResolution.cxx:348
 AliAnalysisTaskResolution.cxx:349
 AliAnalysisTaskResolution.cxx:350
 AliAnalysisTaskResolution.cxx:351
 AliAnalysisTaskResolution.cxx:352
 AliAnalysisTaskResolution.cxx:353
 AliAnalysisTaskResolution.cxx:354
 AliAnalysisTaskResolution.cxx:355
 AliAnalysisTaskResolution.cxx:356
 AliAnalysisTaskResolution.cxx:357
 AliAnalysisTaskResolution.cxx:358
 AliAnalysisTaskResolution.cxx:359
 AliAnalysisTaskResolution.cxx:360
 AliAnalysisTaskResolution.cxx:361
 AliAnalysisTaskResolution.cxx:362
 AliAnalysisTaskResolution.cxx:363
 AliAnalysisTaskResolution.cxx:364
 AliAnalysisTaskResolution.cxx:365
 AliAnalysisTaskResolution.cxx:366
 AliAnalysisTaskResolution.cxx:367
 AliAnalysisTaskResolution.cxx:368
 AliAnalysisTaskResolution.cxx:369
 AliAnalysisTaskResolution.cxx:370
 AliAnalysisTaskResolution.cxx:371
 AliAnalysisTaskResolution.cxx:372
 AliAnalysisTaskResolution.cxx:373
 AliAnalysisTaskResolution.cxx:374
 AliAnalysisTaskResolution.cxx:375
 AliAnalysisTaskResolution.cxx:376
 AliAnalysisTaskResolution.cxx:377
 AliAnalysisTaskResolution.cxx:378
 AliAnalysisTaskResolution.cxx:379
 AliAnalysisTaskResolution.cxx:380
 AliAnalysisTaskResolution.cxx:381
 AliAnalysisTaskResolution.cxx:382
 AliAnalysisTaskResolution.cxx:383
 AliAnalysisTaskResolution.cxx:384
 AliAnalysisTaskResolution.cxx:385
 AliAnalysisTaskResolution.cxx:386
 AliAnalysisTaskResolution.cxx:387
 AliAnalysisTaskResolution.cxx:388
 AliAnalysisTaskResolution.cxx:389