ROOT logo
#include "AliConversionSelection.h"
#include "AliAODHeader.h"
#include "AliVVZERO.h"
#include "AliMultiplicity.h"
#include <iostream>


// Author Daniel Lohner (Daniel.Lohner@cern.ch)

using namespace std;

ClassImp(AliConversionSelection)


//________________________________________________________________________
AliConversionSelection::AliConversionSelection(AliConvEventCuts *evtCut, AliConversionPhotonCuts *convCut, AliConversionMesonCuts *mesonCut) : TObject(),
	fInputEvent(NULL),
	fMCEvent(NULL),
	fEventCut(evtCut),
	fConversionCut(convCut),
	fMesonCut(mesonCut),
	fESDTrackCuts(NULL),
	fGoodGammas(NULL),
	fPi0Candidates(NULL),
	fBGPi0s(NULL),
	fRandomizer(NULL),
	fBGHandler(NULL),
	fCurrentEventNumber(-1),
	fIsOwner(kFALSE)
{
	// Default Values
	fInvMassRange[0]=0.05;
	fInvMassRange[1]=0.3;
}

//________________________________________________________________________
AliConversionSelection::AliConversionSelection(TString evtCut, TString convCut, TString mesonCut) : TObject(),
	fInputEvent(NULL),
	fMCEvent(NULL),
	fEventCut(NULL),
	fConversionCut(NULL),
	fMesonCut(NULL),
	fESDTrackCuts(NULL),
	fGoodGammas(NULL),
	fPi0Candidates(NULL),
	fBGPi0s(NULL),
	fRandomizer(NULL),
	fBGHandler(NULL),
	fCurrentEventNumber(-1),
	fIsOwner(kTRUE)
{
	// Default Values
	fInvMassRange[0]=0.05;
	fInvMassRange[1]=0.3;

	fEventCut = new AliConvEventCuts();
	fEventCut -> InitializeCutsFromCutString(evtCut.Data());
	fConversionCut = new AliConversionPhotonCuts();
	fConversionCut -> InitializeCutsFromCutString(convCut.Data());
	fMesonCut = new AliConversionMesonCuts();
	fMesonCut -> InitializeCutsFromCutString(mesonCut.Data());

}


//________________________________________________________________________
AliConversionSelection::AliConversionSelection(const AliConversionSelection &ref) : TObject(ref),
	fInputEvent(NULL),
	fMCEvent(NULL),
	fEventCut(NULL),
	fConversionCut(NULL),
	fMesonCut(NULL),
	fESDTrackCuts(NULL),
	fGoodGammas(NULL),
	fPi0Candidates(NULL),
	fBGPi0s(NULL),
	fRandomizer(NULL),
	fBGHandler(NULL),
	fCurrentEventNumber(-1),
	fIsOwner(kTRUE)
{
	// Copy Constructor
	fEventCut=new AliConvEventCuts(*ref.fEventCut);
	fConversionCut=new AliConversionPhotonCuts(*ref.fConversionCut);
	fMesonCut=new AliConversionMesonCuts(*ref.fMesonCut);

	fInvMassRange[0]=ref.fInvMassRange[0];
	fInvMassRange[1]=ref.fInvMassRange[1];
}

//________________________________________________________________________
AliConversionSelection::~AliConversionSelection(){

	if(fBGHandler){
		delete fBGHandler;
		fBGHandler=NULL;
	}
	if(fRandomizer){
		delete fRandomizer;
		fRandomizer=NULL;
	}
	if(fPi0Candidates){
		delete fPi0Candidates;
		fPi0Candidates=NULL;
	}
	if(fBGPi0s){
		delete fBGPi0s;
		fBGPi0s=NULL;
	}
	if(fESDTrackCuts){
		delete fESDTrackCuts;
		fESDTrackCuts=NULL;
	}
	if(fIsOwner){
		if(fEventCut){
			delete fEventCut;
			fEventCut=NULL;
		}
		if(fConversionCut){
			delete fConversionCut;
			fConversionCut=NULL;
		}
		if(fMesonCut){
			delete fMesonCut;
			fMesonCut=NULL;
		}
	}
}

//________________________________________________________________________
Bool_t AliConversionSelection::ProcessEvent(TClonesArray *photons,AliVEvent *inputEvent,AliMCEvent *mcEvent){
	fInputEvent=inputEvent;
	fMCEvent=mcEvent;

	// Protection
	Int_t eventnumber=GetEventNumber(inputEvent);
	if(eventnumber==fCurrentEventNumber){
		AliWarning("Event already analyzed! Return.");
		return kFALSE;
	}
	else{
		fCurrentEventNumber=eventnumber;
	}

	// Initialize and Reset Arrays
	if(fGoodGammas == NULL){
		fGoodGammas=new TObjArray(30);
	}
	fGoodGammas->Clear();

	if(fPi0Candidates == NULL){
		fPi0Candidates = new TClonesArray("AliAODConversionMother",100);
	}
	fPi0Candidates->Delete();

	if(fBGPi0s == NULL){
		fBGPi0s = new TClonesArray("AliAODConversionMother",100);
	}
	fBGPi0s->Delete();


	if(!photons||!fInputEvent)return kFALSE;
	
	if(!fEventCut->EventIsSelected(fInputEvent,fMCEvent))return kFALSE;

	// Select photons
	for(Int_t i = 0; i < photons->GetEntriesFast(); i++) {
		AliAODConversionPhoton* gamma =dynamic_cast<AliAODConversionPhoton*>(photons->At(i));
		if(!gamma) continue;
		if(!fConversionCut->PhotonIsSelected(gamma,fInputEvent))continue;
		fGoodGammas->Add(gamma);
	}

	// Do MC Smearing
	Double_t *fUnsmearedPx=NULL;
	Double_t *fUnsmearedPy=NULL;
	Double_t *fUnsmearedPz=NULL;
	Double_t *fUnsmearedE=NULL;

	if(fMesonCut->UseMCPSmearing() && fMCEvent){
		fUnsmearedPx = new Double_t[fGoodGammas->GetEntries()]; // Store unsmeared Momenta
		fUnsmearedPy = new Double_t[fGoodGammas->GetEntries()];
		fUnsmearedPz = new Double_t[fGoodGammas->GetEntries()];
		fUnsmearedE =  new Double_t[fGoodGammas->GetEntries()];

		for(Int_t gamma=0;gamma<fGoodGammas->GetEntries();gamma++){ // Smear the AODPhotons in MC
			fUnsmearedPx[gamma] = ((AliAODConversionPhoton*)fGoodGammas->At(gamma))->Px();
			fUnsmearedPy[gamma] = ((AliAODConversionPhoton*)fGoodGammas->At(gamma))->Py();
			fUnsmearedPz[gamma] = ((AliAODConversionPhoton*)fGoodGammas->At(gamma))->Pz();
			fUnsmearedE[gamma] =  ((AliAODConversionPhoton*)fGoodGammas->At(gamma))->E();
			fMesonCut->SmearParticle(dynamic_cast<AliAODConversionPhoton*>(fGoodGammas->At(gamma)));
		}
	}

	// Reconstruct Pi0 and BG
	CalculatePi0Candidates();
	CalculateBackground();
	if(fBGHandler)fBGHandler->AddEvent(fGoodGammas,fInputEvent);

	// Undo MC Smearing
	if(fMesonCut->UseMCPSmearing() && fMCEvent){
		for(Int_t gamma=0;gamma<fGoodGammas->GetEntries();gamma++){ // Smear the AODPhotons in MC
			((AliAODConversionPhoton*)fGoodGammas->At(gamma))->SetPx(fUnsmearedPx[gamma]); // Reset Unsmeared Momenta
			((AliAODConversionPhoton*)fGoodGammas->At(gamma))->SetPy(fUnsmearedPy[gamma]);
			((AliAODConversionPhoton*)fGoodGammas->At(gamma))->SetPz(fUnsmearedPz[gamma]);
			((AliAODConversionPhoton*)fGoodGammas->At(gamma))->SetE(fUnsmearedE[gamma]);
		}
		delete[] fUnsmearedPx; fUnsmearedPx = 0x0;
		delete[] fUnsmearedPy; fUnsmearedPy = 0x0;
		delete[] fUnsmearedPz; fUnsmearedPz = 0x0;
		delete[] fUnsmearedE;  fUnsmearedE  = 0x0;
	}
	return kTRUE;
}

//________________________________________________________________________
AliAODConversionMother* AliConversionSelection::GetPi0(Int_t index){

	if(index>=0&&index<GetNumberOfPi0s()){
		return dynamic_cast<AliAODConversionMother*>(fPi0Candidates->At(index));
	}
	return NULL;
}

//________________________________________________________________________
AliAODConversionMother* AliConversionSelection::GetBG(Int_t index){

	if(index>=0&&index<GetNumberOfBGs()){
		return dynamic_cast<AliAODConversionMother*>(fBGPi0s->At(index));
	}
	return NULL;
}

//________________________________________________________________________
AliAODConversionPhoton* AliConversionSelection::GetPhoton(Int_t index){

	if(index>=0&&index<GetNumberOfPhotons()){
		return dynamic_cast<AliAODConversionPhoton*>(fGoodGammas->At(index));
	}
	return NULL;
}

//________________________________________________________________________
void AliConversionSelection::CalculatePi0Candidates(){
	// Conversion Gammas
	if(fGoodGammas->GetEntriesFast()>1){
		for(Int_t firstGammaIndex=0;firstGammaIndex<fGoodGammas->GetEntriesFast()-1;firstGammaIndex++){
			AliAODConversionPhoton *gamma0=dynamic_cast<AliAODConversionPhoton*>(fGoodGammas->At(firstGammaIndex));
			if (gamma0==NULL) continue;
			// Combine Photons

			for(Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<fGoodGammas->GetEntriesFast();secondGammaIndex++){

				AliAODConversionPhoton *gamma1=dynamic_cast<AliAODConversionPhoton*>(fGoodGammas->At(secondGammaIndex));
				if (gamma1==NULL) continue;
				//Check for same Electron ID
				if(gamma0->GetTrackLabelPositive()==gamma1->GetTrackLabelPositive()||gamma0->GetTrackLabelNegative()==gamma1->GetTrackLabelNegative()
				||gamma0->GetTrackLabelNegative()==gamma1->GetTrackLabelPositive()||gamma0->GetTrackLabelPositive()==gamma1->GetTrackLabelNegative())continue;

				AliAODConversionMother pi0cand(gamma0,gamma1);
				pi0cand.SetLabels(firstGammaIndex,secondGammaIndex);

				// Set MC Label

				if(fMCEvent){

					TParticle *mcgam0=gamma0->GetMCParticle(fMCEvent->Stack());
					TParticle *mcgam1=gamma1->GetMCParticle(fMCEvent->Stack());

					if(mcgam0&&mcgam1){
					// Have same Mother?

					if(mcgam0->GetMother(0)==mcgam1->GetMother(0)){

						pi0cand.SetMCLabel(mcgam0->GetMother(0));
					}
					}
				}

				if((fMesonCut->MesonIsSelected(&pi0cand))){
					if(MesonInMassWindow(&pi0cand)){

					// Add Pi0 to Stack
					new((*fPi0Candidates)[fPi0Candidates->GetEntriesFast()]) AliAODConversionMother(pi0cand);
					}
				}
			}
		}
	}
}

//________________________________________________________________________
Bool_t AliConversionSelection::MesonInMassWindow(AliAODConversionMother *pi0cand)
{
	if (pi0cand->M() > fInvMassRange[0] && pi0cand->M() < fInvMassRange[1] ){
		return kTRUE;
	}
	return kFALSE;
}

//________________________________________________________________________
void AliConversionSelection::RotateParticle(AliAODConversionPhoton *gamma,Int_t nDegreesPMBackground){

	if(!fRandomizer){
		fRandomizer=new TRandom3();
		fRandomizer->SetSeed(0);
	}
	Double_t nRadiansPM = nDegreesPMBackground*TMath::Pi()/180;
	Double_t rotationValue = fRandomizer->Rndm()*2*nRadiansPM + TMath::Pi()-nRadiansPM;
	gamma->RotateZ(rotationValue);
}

//________________________________________________________________________

void AliConversionSelection::CalculateBackground(){

	//Rotation Method
	if(fMesonCut->UseRotationMethod()){
		// Correct for the number of rotations
		// BG is for rotation the same, except for factor NRotations
		Double_t weight=1./Double_t(fMesonCut->GetNumberOfBGEvents());
		for(Int_t firstGammaIndex=0;firstGammaIndex<fGoodGammas->GetEntriesFast();firstGammaIndex++){
			AliAODConversionPhoton *gamma0=dynamic_cast<AliAODConversionPhoton*>(fGoodGammas->At(firstGammaIndex));
			if (gamma0 ==NULL) continue;
			for(Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<fGoodGammas->GetEntriesFast();secondGammaIndex++){
				AliAODConversionPhoton *gamma1=dynamic_cast<AliAODConversionPhoton*>(fGoodGammas->At(secondGammaIndex));
				if (gamma1==NULL) continue;
				if(!fConversionCut->PhotonIsSelected(gamma1,fInputEvent))continue;
				for(Int_t nRandom=0;nRandom<fMesonCut->GetNumberOfBGEvents();nRandom++){
					RotateParticle(gamma1,fMesonCut->NDegreesRotation());
					AliAODConversionMother BGcandidate(gamma0,gamma1);
					if(fMesonCut->MesonIsSelected(&BGcandidate,kFALSE)){
						if(MesonInMassWindow(&BGcandidate)){
							new((*fBGPi0s)[fBGPi0s->GetEntriesFast()]) AliAODConversionMother(BGcandidate);
							dynamic_cast<AliAODConversionMother*>(fBGPi0s->At(fBGPi0s->GetEntriesFast()-1))->SetWeight(weight);
						}
					}
				}
			}
		}
	} else {
		// Do Event Mixing
		if(fBGHandler==NULL){
			fBGHandler=new AliConversionAODBGHandlerRP(fEventCut->IsHeavyIon(),fMesonCut->UseTrackMultiplicity());
		}

		for(Int_t nEventsInBG=0;nEventsInBG <fBGHandler->GetNBGEvents(fGoodGammas,fInputEvent);nEventsInBG++){
			AliGammaConversionPhotonVector *previousEventGammas = fBGHandler->GetBGGoodGammas(fGoodGammas,fInputEvent,nEventsInBG);
			if(previousEventGammas){
				// test weighted background
				Double_t weight=1.0;
				// Correct for the number of eventmixing:
				// N gammas -> (N-1) + (N-2) +(N-3) ...+ (N-(N-1))  using sum formula sum(i)=N*(N-1)/2  -> N*(N-1)/2
				// real combinations (since you cannot combine a photon with its own)
				// but BG leads to N_{a}*N_{b} combinations
				weight*=0.5*(Double_t(fGoodGammas->GetEntriesFast()-1))/Double_t(previousEventGammas->size());
				for(Int_t iCurrent=0;iCurrent<fGoodGammas->GetEntriesFast();iCurrent++){
					AliAODConversionPhoton *gamma0 = (AliAODConversionPhoton*)(fGoodGammas->At(iCurrent));
					for(UInt_t iPrevious=0;iPrevious<previousEventGammas->size();iPrevious++){
						AliAODConversionPhoton *gamma1 = (AliAODConversionPhoton*)(previousEventGammas->at(iPrevious));
						AliAODConversionMother BGcandidate(gamma0,gamma1);
						if(fMesonCut->MesonIsSelected(&BGcandidate,kFALSE)){
							if(MesonInMassWindow(&BGcandidate)){
								new((*fBGPi0s)[fBGPi0s->GetEntriesFast()]) AliAODConversionMother(BGcandidate);
								dynamic_cast<AliAODConversionMother*>(fBGPi0s->At(fBGPi0s->GetEntriesFast()-1))->SetWeight(weight);
							}
						}
					}
				}
			}
		}
    }
}
//________________________________________________________________________
Double_t AliConversionSelection::GetMultiplicity(AliVEvent *inputEvent){

    switch(fEventCut->GetMultiplicityMethod()){
		case 0:
			return Double_t(GetNumberOfPhotons());
		case 1:
			return Double_t(GetNumberOfChargedTracks(inputEvent));
		case 2:
			return GetVZEROMult(inputEvent);
		case 3:
			return GetSPDMult(inputEvent);
		case 9:
			return 1; // if mult is used as a weight, this number can be used to switch off weighting
		default:
		return 0;
    }
}

//________________________________________________________________________
Int_t AliConversionSelection::GetNumberOfChargedTracks(AliVEvent *inputEvent){

	Int_t ntracks = 0;

	AliESDEvent * esdEvent = dynamic_cast<AliESDEvent*>(inputEvent);
	if(esdEvent) {
		if(!fESDTrackCuts){
			fESDTrackCuts= AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
			fESDTrackCuts->SetMaxDCAToVertexZ(2);
			Double_t etamax=fConversionCut->GetEtaCut();
			fESDTrackCuts->SetEtaRange(-etamax, etamax);
			fESDTrackCuts->SetPtRange(0.15);
		}
		for(Int_t iTracks = 0; iTracks < inputEvent->GetNumberOfTracks(); iTracks++){
			AliESDtrack* currentTrack = esdEvent->GetTrack(iTracks);
			if(!currentTrack) continue;
			if(fESDTrackCuts->AcceptTrack(currentTrack))ntracks++;
		}
	} else {
		for(Int_t ii=0; ii<inputEvent->GetNumberOfTracks(); ii++) {
			AliVTrack * track = dynamic_cast<AliVTrack*>(inputEvent->GetTrack(ii));
			if (track==NULL) continue;
			if(TMath::Abs(track->Eta())>fConversionCut->GetEtaCut())continue;
			if(track)ntracks++;
		}
	}
	return ntracks;
}

//________________________________________________________________________
Double_t AliConversionSelection::GetVZEROMult(AliVEvent *inputEvent){

	AliVVZERO *vzero=inputEvent->GetVZEROData();
	Double_t multV0A=vzero->GetMTotV0A();
	Double_t multV0C=vzero->GetMTotV0C();
	Double_t mult=multV0A+multV0C;

	return mult;
}

//________________________________________________________________________
Double_t AliConversionSelection::GetSPDMult(AliVEvent *inputEvent){

	AliESDEvent * esdEvent = dynamic_cast<AliESDEvent*>(inputEvent);
	if(esdEvent) {
		const AliMultiplicity *esdmult=esdEvent->GetMultiplicity();
		return esdmult->GetNumberOfITSClusters(1);
	} else {
		// AOD implementation
		AliAODHeader *header=(AliAODHeader*)inputEvent->GetHeader();
		return header->GetNumberOfITSClusters(1);
	}
	return 0;
}

//________________________________________________________________________
Int_t AliConversionSelection::GetEventNumber(AliVEvent *inputEvent){

	AliESDEvent * esdEvent = dynamic_cast<AliESDEvent*>(inputEvent);
	if(esdEvent) {
		return esdEvent->GetEventNumberInFile();
	} else{
		AliAODHeader *header=(AliAODHeader*)inputEvent->GetHeader();
		return header->GetEventNumberESDFile();
	}
	return 0;
}

//________________________________________________________________________
TString AliConversionSelection::GetCutString(){
	TString a= Form("%s_%s_%s",fEventCut->GetCutNumber().Data(), fConversionCut->GetCutNumber().Data(),fMesonCut->GetCutNumber().Data());
	return a;
}

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