ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: Martin Wilde, Friederike Bock, Daniel Lohner, Svein Lindal     *
 * based on previous version by Kenneth Aamodt and Ana Marin			  *
 * 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.                  *
 **************************************************************************/

////////////////////////////////////////////////
//--------------------------------------------- 
// Class for handling of background calculation
//---------------------------------------------
////////////////////////////////////////////////

#include "AliGammaConversionAODBGHandler.h"
#include "AliKFParticle.h"
#include "AliAODConversionPhoton.h"
#include "AliAODConversionMother.h"

using namespace std;

ClassImp(AliGammaConversionAODBGHandler)

//_____________________________________________________________________________________________________________________________
AliGammaConversionAODBGHandler::AliGammaConversionAODBGHandler() :
	TObject(),
	fNEvents(10),
	fBGEventCounter(NULL),
	fBGEventENegCounter(NULL),
	fBGEventMesonCounter(NULL),
	fBGProbability(NULL),
	fBGEventVertex(NULL),
	fNBinsZ(0),
	fNBinsMultiplicity(0),
	fBinLimitsArrayZ(NULL),
	fBinLimitsArrayMultiplicity(NULL),
	fBGEvents(),
	fBGEventsENeg(),
	fBGEventsMeson()
{
	// constructor
}

//_____________________________________________________________________________________________________________________________
AliGammaConversionAODBGHandler::AliGammaConversionAODBGHandler(UInt_t binsZ,UInt_t binsMultiplicity,UInt_t nEvents) :
	TObject(),
	fNEvents(nEvents),
	fBGEventCounter(NULL),
	fBGEventENegCounter(NULL),
	fBGEventMesonCounter(NULL),
	fBGProbability(NULL),
	fBGEventVertex(NULL),
	fNBinsZ(binsZ),
	fNBinsMultiplicity(binsMultiplicity),
	fBinLimitsArrayZ(NULL),
	fBinLimitsArrayMultiplicity(NULL),
	fBGEvents(binsZ,AliGammaConversionMultipicityVector(binsMultiplicity,AliGammaConversionBGEventVector(nEvents))),
	fBGEventsENeg(binsZ,AliGammaConversionMultipicityVector(binsMultiplicity,AliGammaConversionBGEventVector(nEvents))),
	fBGEventsMeson(binsZ,AliGammaConversionMotherMultipicityVector(binsMultiplicity,AliGammaConversionMotherBGEventVector(nEvents)))
{
	// constructor
}


//_____________________________________________________________________________________________________________________________
AliGammaConversionAODBGHandler::AliGammaConversionAODBGHandler(UInt_t collisionSystem, UInt_t centMin, UInt_t centMax, 
															   UInt_t nEvents, Bool_t useTrackMult, UInt_t mode, UInt_t binsZ, UInt_t binsMultiplicity) :
	TObject(),
	fNEvents(nEvents),
	fBGEventCounter(NULL),
	fBGEventENegCounter(NULL),
	fBGEventMesonCounter(NULL),
	fBGProbability(NULL),
	fBGEventVertex(NULL),
	fNBinsZ(binsZ),
	fNBinsMultiplicity(binsMultiplicity),
	fBinLimitsArrayZ(NULL),
	fBinLimitsArrayMultiplicity(NULL),
	fBGEvents(binsZ,AliGammaConversionMultipicityVector(binsMultiplicity,AliGammaConversionBGEventVector(nEvents))),
	fBGEventsENeg(binsZ,AliGammaConversionMultipicityVector(binsMultiplicity,AliGammaConversionBGEventVector(nEvents))),
	fBGEventsMeson(binsZ,AliGammaConversionMotherMultipicityVector(binsMultiplicity,AliGammaConversionMotherBGEventVector(nEvents)))
{
	// constructor
	if (fNBinsZ>8)fNBinsZ = 8;
	
	if (mode == 0 || mode == 1){
		if (fNBinsMultiplicity>5)fNBinsMultiplicity = 5;	
	} else if (mode == 2 || mode == 3 || mode == 4 || mode == 5){
		if (useTrackMult){
			if (fNBinsMultiplicity>5)fNBinsMultiplicity = 5;
		} else {
			if (fNBinsMultiplicity>7)fNBinsMultiplicity = 7;
		}	
	} else {
		if (fNBinsMultiplicity>5)fNBinsMultiplicity = 5;
	}	
	// Initializing z vertex bins
	fBinLimitsArrayZ= new Double_t[fNBinsZ] ;
	if(collisionSystem > 0 && collisionSystem < 8){ // PbPb
		Double_t fBinLimitsArrayZPbPb[8] = 	{-50, 	-5.5, 	-2.9, 	-0.65,
											 1.45, 	3.65, 	6.15, 	50};
		for (Int_t i = 0; i < fNBinsZ; i++){
			fBinLimitsArrayZ[i] =  fBinLimitsArrayZPbPb[i];
		}	
	} else if(collisionSystem == 0){				// pp
		Double_t fBinLimitsArrayZpp[8] = 	{-50, 	-3.375, -1.605, -0.225, 
											 1.065, 2.445, 	4.245, 	50};
		for (Int_t i = 0; i < fNBinsZ; i++){
			fBinLimitsArrayZ[i] =  fBinLimitsArrayZpp[i];
		}	
	} else { 										// pPb
		Double_t fBinLimitsArrayZpPb[8] = 	{-50, 	-5.85, 	-3.35, 	-1.15, 
											 0.85, 	2.95, 	5.55, 	50};
		for (Int_t i = 0; i < fNBinsZ; i++){
			fBinLimitsArrayZ[i] =  fBinLimitsArrayZpPb[i];
		}	
	}

	// Initializing multiplicity bins 
	fBinLimitsArrayMultiplicity= new Double_t[fNBinsMultiplicity];
	if(useTrackMult){ // multiplicity binning based on number of good global tracks
		// default pp values
		Double_t fBinLimitsArrayMultiplicitypp[5] = 	{0., 	8.5, 	16.5, 	27.5, 	200.};
		for (Int_t i = 0; i < fNBinsMultiplicity; i++){
			fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicitypp[i];
		}	
		if(collisionSystem > 0 && collisionSystem < 8){ // PbPb values
			if(centMin == 0 && centMax == 5){ // 0-5% central
				Double_t fBinLimitsArrayMultiplicityPbPb0005[5] = 	{0., 1540., 1665., 1780., 5000};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb0005[i];
				}	
			} else if(centMin == 0 && centMax == 10){ // 0-10% central
				Double_t fBinLimitsArrayMultiplicityPbPb0010[5] = 	{0., 1360., 1520., 1685., 5000};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb0010[i];
				}	
			} else if(centMin == 0 && centMax == 20){ // 0-20% central
				Double_t fBinLimitsArrayMultiplicityPbPb0020[5] = 	{0., 1110., 1360., 1600., 5000};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb0020[i];
				}	
			} else if(centMin == 0 && centMax == 80){ // 0-80% central
				Double_t fBinLimitsArrayMultiplicityPbPb0080[5] = 	{0., 890., 1240., 1540., 5000};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb0080[i];
				}	
			} else if(centMin == 5 && centMax == 10){ // 5-10% central
				Double_t fBinLimitsArrayMultiplicityPbPb0510[5] = 	{0., 1250., 1345., 1445., 5000};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb0510[i];
				}	
			} else if(centMin == 10 && centMax == 20){ // 10-20% central
				Double_t fBinLimitsArrayMultiplicityPbPb1020[5] = 	{0., 915., 1020., 1130., 5000};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb1020[i];
				}	
			} else if(centMin == 20 && centMax == 40){ // 20-40% central
				Double_t fBinLimitsArrayMultiplicityPbPb2040[5] = 	{0., 510., 625., 730., 5000};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb2040[i];
				}	
			} else if(centMin == 40 && centMax == 80){ // 40-80% central
				Double_t fBinLimitsArrayMultiplicityPbPb4080[5] = 	{0., 185., 250., 300., 5000};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb4080[i];
				}	
			} else if(centMin == 60 && centMax == 80){ // 60-80% central
				Double_t fBinLimitsArrayMultiplicityPbPb6080[5] = 	{0., 55., 80., 100., 5000};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb6080[i];
				}	
			} else { // all other centrality classes 
				Double_t fBinLimitsArrayMultiplicityPbPb[5] = 	{0., 510., 625., 730., 5000};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb[i];
				}	
			}
		} else if(collisionSystem == 8 || collisionSystem == 9){ // pPb
			Double_t fBinLimitsArrayMultiplicitypPb[5] = 	{0., 7.5, 16.5, 29.5, 500};
			for (Int_t i = 0; i < fNBinsMultiplicity; i++){
				fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicitypPb[i];
			}	
			if(centMin == 0 && centMax == 20){ // pPb 0-20 %
				Double_t fBinLimitsArrayMultiplicitypPb0020[5] = 	{0., 31.5, 40.5, 50.5, 500};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicitypPb0020[i];
				}	
			} else if(centMin == 20 && centMax == 40){
				Double_t fBinLimitsArrayMultiplicitypPb2040[5] = 	{0., 19.5, 25.5, 32.5, 500};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicitypPb2040[i];
				}	
			} else if(centMin == 40 && centMax == 60){
				Double_t fBinLimitsArrayMultiplicitypPb4060[5] = 	{0., 12.5, 16.5, 22.5, 500};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicitypPb4060[i];
				}	
			} else if(centMin == 60 && centMax == 80){ 
				Double_t fBinLimitsArrayMultiplicitypPb6080[5] = 	{0., 5.5, 9.5, 13.5, 500};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicitypPb6080[i];
				}	
			} else if(centMin == 60 && centMax == 100){
				Double_t fBinLimitsArrayMultiplicitypPb60100[5] = 	{0., 2.5, 6.5, 11.5, 500};
				for (Int_t i = 0; i < fNBinsMultiplicity; i++){
					fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicitypPb60100[i];
				}	
			}  
		}
	} else{	// Initializing Multiplicity binning with photon Mult 
		if (mode == 0 || mode == 1) { // settings for Conv-Conv && Conv-Dalitz
			// pp & pPb defaults
			Double_t fBinLimitsArrayMultiplicitypp[5] = 	{2., 3., 4., 5., 9999.};
			for (Int_t i = 0; i < fNBinsMultiplicity; i++){
				fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicitypp[i];
			}	
			if(collisionSystem > 0 && collisionSystem < 8){ // settings PbPb
				if(centMin == 0 && centMax == 5){ 			// 0-5% 
					Double_t fBinLimitsArrayMultiplicityPbPb0005[5] = 	{0., 27., 31., 36., 100.};
					for (Int_t i = 0; i < fNBinsMultiplicity; i++){
						fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb0005[i];
					}	
				} else if(centMin == 0 && centMax == 10){	// 0-10%
					Double_t fBinLimitsArrayMultiplicityPbPb0010[5] = 	{0., 25., 30., 36., 100.};
					for (Int_t i = 0; i < fNBinsMultiplicity; i++){
						fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb0010[i];
					}	
				} else if(centMin == 0 && centMax == 20){	// 0-20%
					Double_t fBinLimitsArrayMultiplicityPbPb0020[5] = 	{0., 22., 27., 33., 100.};
					for (Int_t i = 0; i < fNBinsMultiplicity; i++){
						fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb0020[i];
					}	
				} else if(centMin == 0 && centMax == 80){	// 0-80%
					Double_t fBinLimitsArrayMultiplicityPbPb0080[5] = 	{0., 18., 25., 32., 100.};
					for (Int_t i = 0; i < fNBinsMultiplicity; i++){
						fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb0080[i];
					}	
				} else if(centMin == 5 && centMax == 10){ 	// 5-10%
					Double_t fBinLimitsArrayMultiplicityPbPb0510[5] = 	{0., 23., 27., 32., 100.};
					for (Int_t i = 0; i < fNBinsMultiplicity; i++){
						fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb0510[i];
					}	
				} else if(centMin == 10 && centMax == 20){	//10-20%
					Double_t fBinLimitsArrayMultiplicityPbPb1020[5] = 	{0., 18., 22., 27., 100.};
					for (Int_t i = 0; i < fNBinsMultiplicity; i++){
						fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb1020[i];
					}	
				} else if(centMin == 20 && centMax == 40){	// 20-40%
					Double_t fBinLimitsArrayMultiplicityPbPb2040[5] = 	{0., 11., 14., 18., 100.};
					for (Int_t i = 0; i < fNBinsMultiplicity; i++){
						fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb2040[i];
					}	
				} else if(centMin == 40 && centMax == 80){ // 40-80%
					Double_t fBinLimitsArrayMultiplicityPbPb4080[5] = 	{0., 5., 7., 11., 100.};
					for (Int_t i = 0; i < fNBinsMultiplicity; i++){
						fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb4080[i];
					}	
				} else if(centMin == 60 && centMax == 80){ // 60-80%
					Double_t fBinLimitsArrayMultiplicityPbPb6080[5] = 	{0., 2., 3., 5., 100.};
					for (Int_t i = 0; i < fNBinsMultiplicity; i++){
						fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb6080[i];
					}	
				} else{ // default PbPb
					Double_t fBinLimitsArrayMultiplicityPbPb[5] = 	{0., 11., 14., 18., 100.};
					for (Int_t i = 0; i < fNBinsMultiplicity; i++){
						fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicityPbPb[i];
					}	
				}
			}
		} else if (mode == 2 || mode == 3 || mode == 4 || mode == 5){ // setting for EMCAL-Conv, PHOS-Conv, EMCAL-EMCAL, PHOS-PHOS
			Double_t fBinLimitsArrayMultiplicitypp[7] = 	{0., 2., 3., 4., 8., 15., 9999.};
			for (Int_t i = 0; i < fNBinsMultiplicity; i++){
				fBinLimitsArrayMultiplicity[i] =  fBinLimitsArrayMultiplicitypp[i];
			}	
		}	
	} 
	
	Initialize(fBinLimitsArrayZ,fBinLimitsArrayMultiplicity);
}

//_____________________________________________________________________________________________________________________________
AliGammaConversionAODBGHandler::AliGammaConversionAODBGHandler(const AliGammaConversionAODBGHandler & original) :
	TObject(original),
	fNEvents(original.fNEvents),
	fBGEventCounter(original.fBGEventCounter),
	fBGEventENegCounter(original.fBGEventENegCounter),
	fBGEventMesonCounter(original.fBGEventMesonCounter),
	fBGProbability(original.fBGProbability),
	fBGEventVertex(original.fBGEventVertex),
	fNBinsZ(original.fNBinsZ),
	fNBinsMultiplicity(original.fNBinsMultiplicity),
	fBinLimitsArrayZ(original.fBinLimitsArrayZ),
	fBinLimitsArrayMultiplicity(original.fBinLimitsArrayMultiplicity),
	fBGEvents(original.fBGEvents),
	fBGEventsENeg(original.fBGEventsENeg),
	fBGEventsMeson(original.fBGEventsMeson)
{
	//copy constructor	
}

//_____________________________________________________________________________________________________________________________
AliGammaConversionAODBGHandler & AliGammaConversionAODBGHandler::operator = (const AliGammaConversionAODBGHandler & /*source*/)
{
	// assignment operator
	return *this;
}

//_____________________________________________________________________________________________________________________________
AliGammaConversionAODBGHandler::~AliGammaConversionAODBGHandler(){

	if(fBGEventCounter){
		for(Int_t z=0;z<fNBinsZ;z++){
			delete[] fBGEventCounter[z];
		}
		delete[] fBGEventCounter;
		fBGEventCounter = NULL;
	}

	if(fBGEventVertex){
		for(Int_t z=0;z<fNBinsZ;z++){
			for(Int_t m=0;m<fNBinsMultiplicity;m++){
				delete [] fBGEventVertex[z][m];
			}
			delete [] fBGEventVertex[z];
		}
		delete [] fBGEventVertex;
	}

	if(fBGEventENegCounter){
		for(Int_t z=0;z<fNBinsZ;z++){
			delete[] fBGEventENegCounter[z];
		}
		delete[] fBGEventENegCounter;
		fBGEventENegCounter = NULL;
	}

	if(fBGEventMesonCounter){
		for(Int_t z=0;z<fNBinsZ;z++){
			delete[] fBGEventMesonCounter[z];
		}
		delete[] fBGEventMesonCounter;
		fBGEventMesonCounter = NULL;
	}

	if(fBinLimitsArrayZ){
		delete[] fBinLimitsArrayZ;
	}

	if(fBinLimitsArrayMultiplicity){
		delete[] fBinLimitsArrayMultiplicity;
	}
}

//_____________________________________________________________________________________________________________________________
void AliGammaConversionAODBGHandler::Initialize(Double_t * const zBinLimitsArray, Double_t * const multiplicityBinLimitsArray){
  // see header file for documantation  

	if(zBinLimitsArray){
		fBinLimitsArrayZ = zBinLimitsArray;
	}
	else{
		//Print warning
	}
	
	if(multiplicityBinLimitsArray){
		fBinLimitsArrayMultiplicity = multiplicityBinLimitsArray ;
	}
	else{
		//Print warning
	}
	if(fBGEventCounter == NULL){
		fBGEventCounter= new Int_t*[fNBinsZ];
	}
	for(Int_t z=0;z<fNBinsZ;z++){
		fBGEventCounter[z]=new Int_t[fNBinsMultiplicity];
	}
	
	for(Int_t z=0;z<fNBinsZ;z++){
		for(Int_t m=0;m<fNBinsMultiplicity;m++){
			fBGEventCounter[z][m]=0;
		}
	}

	if(fBGEventMesonCounter == NULL){
		fBGEventMesonCounter= new Int_t*[fNBinsZ];
	}
	for(Int_t z=0;z<fNBinsZ;z++){
		fBGEventMesonCounter[z]=new Int_t[fNBinsMultiplicity];
	}
	
	for(Int_t z=0;z<fNBinsZ;z++){
		for(Int_t m=0;m<fNBinsMultiplicity;m++){
			fBGEventMesonCounter[z][m]=0;
		}
	}

	
	if(fBGEventVertex == NULL){
		fBGEventVertex = new GammaConversionVertex**[fNBinsZ];
	}
	for(Int_t z=0; z < fNBinsZ; z++){
		fBGEventVertex[z]= new GammaConversionVertex*[fNBinsMultiplicity];
	}
	for(Int_t z=0;z<fNBinsZ;z++){
		for(Int_t m=0;m<fNBinsMultiplicity; m++){
			fBGEventVertex[z][m]= new GammaConversionVertex[fNEvents];
		}
	}
	if( fBGEventENegCounter == NULL){
		fBGEventENegCounter = new Int_t*[fNBinsZ];
	}

	for(Int_t z=0; z < fNBinsZ; z++){
		fBGEventENegCounter[z] = new Int_t[fNBinsMultiplicity];
	}

	for(Int_t z=0;z<fNBinsZ;z++){
		for(Int_t m=0;m<fNBinsMultiplicity; m++){
			fBGEventENegCounter[z][m] = 0;
		}
	}

	if(fBGProbability == NULL){
		fBGProbability = new Double_t*[fNBinsZ];
	}
	for(Int_t z=0; z < fNBinsZ; z++){
		fBGProbability[z] = new Double_t[fNBinsMultiplicity];
	}

	for(Int_t z=0;z<fNBinsZ;z++){
		for(Int_t m=0;m<fNBinsMultiplicity; m++){
			fBGProbability[z][m] = 0;
		}
	}
	//filling the probability
	fBGProbability[0][0] = 0.243594;
	fBGProbability[0][1] = 0.279477;
	fBGProbability[0][2] = 0.305104;
	fBGProbability[0][3] = 0.315927;
	fBGProbability[1][0] = 0.241964;
	fBGProbability[1][1] = 0.272995;
	fBGProbability[1][2] = 0.307165;
	fBGProbability[1][3] = 0.292248;
	fBGProbability[2][0] = 0.241059;
	fBGProbability[2][1] = 0.27509;
	fBGProbability[2][2] = 0.283657;
	fBGProbability[2][3] = 0.310512;
	fBGProbability[3][0] = 0.23888;
	fBGProbability[3][1] = 0.283418;
	fBGProbability[3][2] = 0.297232;
	fBGProbability[3][3] = 0.348188;
	fBGProbability[4][0] = 0.245555;
	fBGProbability[4][1] = 0.281218;
	fBGProbability[4][2] = 0.317236;
	fBGProbability[4][3] = 0.323495;
	fBGProbability[5][0] = 0.244572;
	fBGProbability[5][1] = 0.259498;
	fBGProbability[5][2] = 0.278383;
	fBGProbability[5][3] = 0.284696;
	fBGProbability[6][0] = 0.24703;
	fBGProbability[6][1] = 0.275265;
	fBGProbability[6][2] = 0.284004;
	fBGProbability[6][3] = 0.343584;
	
}

//_____________________________________________________________________________________________________________________________
Int_t AliGammaConversionAODBGHandler::GetZBinIndex(Double_t zvalue) const{
	// see header file for documantation
	if(fNBinsZ<2 || zvalue<=fBinLimitsArrayZ[0]){
		return 0;
	}

	for(Int_t i=0; i<fNBinsZ-1 ;i++){
		if(zvalue >= fBinLimitsArrayZ[i] && zvalue <= fBinLimitsArrayZ[i+1]){
			return i;
		}
	}
	return fNBinsZ-1;
}

//_____________________________________________________________________________________________________________________________
Int_t AliGammaConversionAODBGHandler::GetMultiplicityBinIndex(Int_t multiplicity) const{
	// see header file for documantation  
	if(fNBinsMultiplicity<2){
		return 0;
	}

	for(Int_t i=0; i<fNBinsMultiplicity-1 ;i++){
		if(multiplicity >= fBinLimitsArrayMultiplicity[i] && multiplicity < fBinLimitsArrayMultiplicity[i+1]){
			return i;
		}
	}
	return fNBinsMultiplicity-1;
}

//_____________________________________________________________________________________________________________________________
void AliGammaConversionAODBGHandler::AddEvent(TList* const eventGammas,Double_t xvalue, Double_t yvalue, Double_t zvalue, Int_t multiplicity, Double_t epvalue){

	// see header file for documantation  

	//  cout<<"Entering the AddEvent function"<<endl;

	Int_t z = GetZBinIndex(zvalue);
	Int_t m = GetMultiplicityBinIndex(multiplicity);

	if(fBGEventCounter[z][m] >= fNEvents){
		fBGEventCounter[z][m]=0;
	}
	Int_t eventCounter=fBGEventCounter[z][m];
	
	/*
	if(fBGEventVertex[z][m][eventCounter]){
		delete fBGEventVertex[z][m][eventCounter];
	}
	*/
	fBGEventVertex[z][m][eventCounter].fX = xvalue;
	fBGEventVertex[z][m][eventCounter].fY = yvalue;
	fBGEventVertex[z][m][eventCounter].fZ = zvalue;
	fBGEventVertex[z][m][eventCounter].fEP = epvalue;

	//first clear the vector
	// cout<<"Size of vector: "<<fBGEvents[z][m][eventCounter].size()<<endl;
	//  cout<<"Checking the entries: Z="<<z<<", M="<<m<<", eventCounter="<<eventCounter<<endl;

	//  cout<<"The size of this vector is: "<<fBGEvents[z][m][eventCounter].size()<<endl;
	for(UInt_t d=0;d<fBGEvents[z][m][eventCounter].size();d++){
		delete (AliAODConversionPhoton*)(fBGEvents[z][m][eventCounter][d]);
	}
	fBGEvents[z][m][eventCounter].clear();
	
	// add the gammas to the vector
	for(Int_t i=0; i< eventGammas->GetEntries();i++){
		//    AliKFParticle *t = new AliKFParticle(*(AliKFParticle*)(eventGammas->At(i)));
		fBGEvents[z][m][eventCounter].push_back(new AliAODConversionPhoton(*(AliAODConversionPhoton*)(eventGammas->At(i))));
	}
	fBGEventCounter[z][m]++;
}

//_____________________________________________________________________________________________________________________________
void AliGammaConversionAODBGHandler::AddMesonEvent(TList* const eventMothers, Double_t xvalue, Double_t yvalue, Double_t zvalue, Int_t multiplicity, Double_t epvalue){

	// see header file for documantation  
	//  cout<<"Entering the AddEvent function"<<endl;
	Int_t z = GetZBinIndex(zvalue);
	Int_t m = GetMultiplicityBinIndex(multiplicity);

	if(fBGEventMesonCounter[z][m] >= fNEvents){
		fBGEventMesonCounter[z][m]=0;
	}
	Int_t eventCounter=fBGEventMesonCounter[z][m];
	
	fBGEventVertex[z][m][eventCounter].fX = xvalue;
	fBGEventVertex[z][m][eventCounter].fY = yvalue;
	fBGEventVertex[z][m][eventCounter].fZ = zvalue;
	fBGEventVertex[z][m][eventCounter].fEP = epvalue;

	//first clear the vector
	for(UInt_t d=0;d<fBGEvents[z][m][eventCounter].size();d++){
		delete (AliAODConversionMother*)(fBGEventsMeson[z][m][eventCounter][d]);
	}
	fBGEventsMeson[z][m][eventCounter].clear();
	
	// add the gammas to the vector
	for(Int_t i=0; i< eventMothers->GetEntries();i++){
		fBGEventsMeson[z][m][eventCounter].push_back(new AliAODConversionMother(*(AliAODConversionMother*)(eventMothers->At(i))));
	}
	fBGEventMesonCounter[z][m]++;
}


//_____________________________________________________________________________________________________________________________
void AliGammaConversionAODBGHandler::AddElectronEvent(TClonesArray* const eventENeg, Double_t zvalue, Int_t multiplicity){

	Int_t z = GetZBinIndex(zvalue);
	Int_t m = GetMultiplicityBinIndex(multiplicity);

	if(fBGEventENegCounter[z][m] >= fNEvents){
		fBGEventENegCounter[z][m]=0;
	}
	Int_t eventENegCounter=fBGEventENegCounter[z][m];
	
	//first clear the vector
	// cout<<"Size of vector: "<<fBGEvents[z][m][eventCounter].size()<<endl;
	//  cout<<"Checking the entries: Z="<<z<<", M="<<m<<", eventCounter="<<eventCounter<<endl;

	//  cout<<"The size of this vector is: "<<fBGEvents[z][m][eventCounter].size()<<endl;
	for(UInt_t d=0;d<fBGEventsENeg[z][m][eventENegCounter].size();d++){
		delete (AliAODConversionPhoton*)(fBGEventsENeg[z][m][eventENegCounter][d]);
	}

	fBGEventsENeg[z][m][eventENegCounter].clear();

	// add the electron to the vector
	for(Int_t i=0; i< eventENeg->GetEntriesFast();i++){
		//    AliKFParticle *t = new AliKFParticle(*(AliKFParticle*)(eventGammas->At(i)));
		fBGEventsENeg[z][m][eventENegCounter].push_back(new AliAODConversionPhoton(*(AliAODConversionPhoton*)(eventENeg->At(i))));
	}
	fBGEventENegCounter[z][m]++;
}

//_____________________________________________________________________________________________________________________________
AliGammaConversionAODVector* AliGammaConversionAODBGHandler::GetBGGoodV0s(Int_t zbin, Int_t mbin, Int_t event){
	//see headerfile for documentation
	return &(fBGEvents[zbin][mbin][event]);
}

//_____________________________________________________________________________________________________________________________
AliGammaConversionMotherAODVector* AliGammaConversionAODBGHandler::GetBGGoodMesons(Int_t zbin, Int_t mbin, Int_t event){
	//see headerfile for documentation
	return &(fBGEventsMeson[zbin][mbin][event]);
}

//_____________________________________________________________________________________________________________________________
AliGammaConversionAODVector* AliGammaConversionAODBGHandler::GetBGGoodENeg(Int_t event, Double_t zvalue, Int_t multiplicity){
	//see headerfile for documentation
	Int_t z = GetZBinIndex(zvalue);
	Int_t m = GetMultiplicityBinIndex(multiplicity);
	return &(fBGEventsENeg[z][m][event]);
}

//_____________________________________________________________________________________________________________________________
void AliGammaConversionAODBGHandler::PrintBGArray(){
	//see headerfile for documentation
	for(Int_t z=0;z<fNBinsZ;z++){
		if(z==2){
			cout<<"Getting the data for z bin: "<<z<<endl;
			for(Int_t multiplicity=0;multiplicity<fNBinsMultiplicity;multiplicity++){
				if(multiplicity==2){
					cout<<"Getting the data for multiplicity bin: "<<multiplicity<<endl;	
					for(Int_t event=0;event<fNEvents;event++){
						if(fBGEvents[z][multiplicity][event].size()>0){
						cout<<"Event: "<<event<<" has: "<<fBGEvents[z][multiplicity][event].size()<<endl;
						}
					}
				}
			}
		}
	}
}
 AliGammaConversionAODBGHandler.cxx:1
 AliGammaConversionAODBGHandler.cxx:2
 AliGammaConversionAODBGHandler.cxx:3
 AliGammaConversionAODBGHandler.cxx:4
 AliGammaConversionAODBGHandler.cxx:5
 AliGammaConversionAODBGHandler.cxx:6
 AliGammaConversionAODBGHandler.cxx:7
 AliGammaConversionAODBGHandler.cxx:8
 AliGammaConversionAODBGHandler.cxx:9
 AliGammaConversionAODBGHandler.cxx:10
 AliGammaConversionAODBGHandler.cxx:11
 AliGammaConversionAODBGHandler.cxx:12
 AliGammaConversionAODBGHandler.cxx:13
 AliGammaConversionAODBGHandler.cxx:14
 AliGammaConversionAODBGHandler.cxx:15
 AliGammaConversionAODBGHandler.cxx:16
 AliGammaConversionAODBGHandler.cxx:17
 AliGammaConversionAODBGHandler.cxx:18
 AliGammaConversionAODBGHandler.cxx:19
 AliGammaConversionAODBGHandler.cxx:20
 AliGammaConversionAODBGHandler.cxx:21
 AliGammaConversionAODBGHandler.cxx:22
 AliGammaConversionAODBGHandler.cxx:23
 AliGammaConversionAODBGHandler.cxx:24
 AliGammaConversionAODBGHandler.cxx:25
 AliGammaConversionAODBGHandler.cxx:26
 AliGammaConversionAODBGHandler.cxx:27
 AliGammaConversionAODBGHandler.cxx:28
 AliGammaConversionAODBGHandler.cxx:29
 AliGammaConversionAODBGHandler.cxx:30
 AliGammaConversionAODBGHandler.cxx:31
 AliGammaConversionAODBGHandler.cxx:32
 AliGammaConversionAODBGHandler.cxx:33
 AliGammaConversionAODBGHandler.cxx:34
 AliGammaConversionAODBGHandler.cxx:35
 AliGammaConversionAODBGHandler.cxx:36
 AliGammaConversionAODBGHandler.cxx:37
 AliGammaConversionAODBGHandler.cxx:38
 AliGammaConversionAODBGHandler.cxx:39
 AliGammaConversionAODBGHandler.cxx:40
 AliGammaConversionAODBGHandler.cxx:41
 AliGammaConversionAODBGHandler.cxx:42
 AliGammaConversionAODBGHandler.cxx:43
 AliGammaConversionAODBGHandler.cxx:44
 AliGammaConversionAODBGHandler.cxx:45
 AliGammaConversionAODBGHandler.cxx:46
 AliGammaConversionAODBGHandler.cxx:47
 AliGammaConversionAODBGHandler.cxx:48
 AliGammaConversionAODBGHandler.cxx:49
 AliGammaConversionAODBGHandler.cxx:50
 AliGammaConversionAODBGHandler.cxx:51
 AliGammaConversionAODBGHandler.cxx:52
 AliGammaConversionAODBGHandler.cxx:53
 AliGammaConversionAODBGHandler.cxx:54
 AliGammaConversionAODBGHandler.cxx:55
 AliGammaConversionAODBGHandler.cxx:56
 AliGammaConversionAODBGHandler.cxx:57
 AliGammaConversionAODBGHandler.cxx:58
 AliGammaConversionAODBGHandler.cxx:59
 AliGammaConversionAODBGHandler.cxx:60
 AliGammaConversionAODBGHandler.cxx:61
 AliGammaConversionAODBGHandler.cxx:62
 AliGammaConversionAODBGHandler.cxx:63
 AliGammaConversionAODBGHandler.cxx:64
 AliGammaConversionAODBGHandler.cxx:65
 AliGammaConversionAODBGHandler.cxx:66
 AliGammaConversionAODBGHandler.cxx:67
 AliGammaConversionAODBGHandler.cxx:68
 AliGammaConversionAODBGHandler.cxx:69
 AliGammaConversionAODBGHandler.cxx:70
 AliGammaConversionAODBGHandler.cxx:71
 AliGammaConversionAODBGHandler.cxx:72
 AliGammaConversionAODBGHandler.cxx:73
 AliGammaConversionAODBGHandler.cxx:74
 AliGammaConversionAODBGHandler.cxx:75
 AliGammaConversionAODBGHandler.cxx:76
 AliGammaConversionAODBGHandler.cxx:77
 AliGammaConversionAODBGHandler.cxx:78
 AliGammaConversionAODBGHandler.cxx:79
 AliGammaConversionAODBGHandler.cxx:80
 AliGammaConversionAODBGHandler.cxx:81
 AliGammaConversionAODBGHandler.cxx:82
 AliGammaConversionAODBGHandler.cxx:83
 AliGammaConversionAODBGHandler.cxx:84
 AliGammaConversionAODBGHandler.cxx:85
 AliGammaConversionAODBGHandler.cxx:86
 AliGammaConversionAODBGHandler.cxx:87
 AliGammaConversionAODBGHandler.cxx:88
 AliGammaConversionAODBGHandler.cxx:89
 AliGammaConversionAODBGHandler.cxx:90
 AliGammaConversionAODBGHandler.cxx:91
 AliGammaConversionAODBGHandler.cxx:92
 AliGammaConversionAODBGHandler.cxx:93
 AliGammaConversionAODBGHandler.cxx:94
 AliGammaConversionAODBGHandler.cxx:95
 AliGammaConversionAODBGHandler.cxx:96
 AliGammaConversionAODBGHandler.cxx:97
 AliGammaConversionAODBGHandler.cxx:98
 AliGammaConversionAODBGHandler.cxx:99
 AliGammaConversionAODBGHandler.cxx:100
 AliGammaConversionAODBGHandler.cxx:101
 AliGammaConversionAODBGHandler.cxx:102
 AliGammaConversionAODBGHandler.cxx:103
 AliGammaConversionAODBGHandler.cxx:104
 AliGammaConversionAODBGHandler.cxx:105
 AliGammaConversionAODBGHandler.cxx:106
 AliGammaConversionAODBGHandler.cxx:107
 AliGammaConversionAODBGHandler.cxx:108
 AliGammaConversionAODBGHandler.cxx:109
 AliGammaConversionAODBGHandler.cxx:110
 AliGammaConversionAODBGHandler.cxx:111
 AliGammaConversionAODBGHandler.cxx:112
 AliGammaConversionAODBGHandler.cxx:113
 AliGammaConversionAODBGHandler.cxx:114
 AliGammaConversionAODBGHandler.cxx:115
 AliGammaConversionAODBGHandler.cxx:116
 AliGammaConversionAODBGHandler.cxx:117
 AliGammaConversionAODBGHandler.cxx:118
 AliGammaConversionAODBGHandler.cxx:119
 AliGammaConversionAODBGHandler.cxx:120
 AliGammaConversionAODBGHandler.cxx:121
 AliGammaConversionAODBGHandler.cxx:122
 AliGammaConversionAODBGHandler.cxx:123
 AliGammaConversionAODBGHandler.cxx:124
 AliGammaConversionAODBGHandler.cxx:125
 AliGammaConversionAODBGHandler.cxx:126
 AliGammaConversionAODBGHandler.cxx:127
 AliGammaConversionAODBGHandler.cxx:128
 AliGammaConversionAODBGHandler.cxx:129
 AliGammaConversionAODBGHandler.cxx:130
 AliGammaConversionAODBGHandler.cxx:131
 AliGammaConversionAODBGHandler.cxx:132
 AliGammaConversionAODBGHandler.cxx:133
 AliGammaConversionAODBGHandler.cxx:134
 AliGammaConversionAODBGHandler.cxx:135
 AliGammaConversionAODBGHandler.cxx:136
 AliGammaConversionAODBGHandler.cxx:137
 AliGammaConversionAODBGHandler.cxx:138
 AliGammaConversionAODBGHandler.cxx:139
 AliGammaConversionAODBGHandler.cxx:140
 AliGammaConversionAODBGHandler.cxx:141
 AliGammaConversionAODBGHandler.cxx:142
 AliGammaConversionAODBGHandler.cxx:143
 AliGammaConversionAODBGHandler.cxx:144
 AliGammaConversionAODBGHandler.cxx:145
 AliGammaConversionAODBGHandler.cxx:146
 AliGammaConversionAODBGHandler.cxx:147
 AliGammaConversionAODBGHandler.cxx:148
 AliGammaConversionAODBGHandler.cxx:149
 AliGammaConversionAODBGHandler.cxx:150
 AliGammaConversionAODBGHandler.cxx:151
 AliGammaConversionAODBGHandler.cxx:152
 AliGammaConversionAODBGHandler.cxx:153
 AliGammaConversionAODBGHandler.cxx:154
 AliGammaConversionAODBGHandler.cxx:155
 AliGammaConversionAODBGHandler.cxx:156
 AliGammaConversionAODBGHandler.cxx:157
 AliGammaConversionAODBGHandler.cxx:158
 AliGammaConversionAODBGHandler.cxx:159
 AliGammaConversionAODBGHandler.cxx:160
 AliGammaConversionAODBGHandler.cxx:161
 AliGammaConversionAODBGHandler.cxx:162
 AliGammaConversionAODBGHandler.cxx:163
 AliGammaConversionAODBGHandler.cxx:164
 AliGammaConversionAODBGHandler.cxx:165
 AliGammaConversionAODBGHandler.cxx:166
 AliGammaConversionAODBGHandler.cxx:167
 AliGammaConversionAODBGHandler.cxx:168
 AliGammaConversionAODBGHandler.cxx:169
 AliGammaConversionAODBGHandler.cxx:170
 AliGammaConversionAODBGHandler.cxx:171
 AliGammaConversionAODBGHandler.cxx:172
 AliGammaConversionAODBGHandler.cxx:173
 AliGammaConversionAODBGHandler.cxx:174
 AliGammaConversionAODBGHandler.cxx:175
 AliGammaConversionAODBGHandler.cxx:176
 AliGammaConversionAODBGHandler.cxx:177
 AliGammaConversionAODBGHandler.cxx:178
 AliGammaConversionAODBGHandler.cxx:179
 AliGammaConversionAODBGHandler.cxx:180
 AliGammaConversionAODBGHandler.cxx:181
 AliGammaConversionAODBGHandler.cxx:182
 AliGammaConversionAODBGHandler.cxx:183
 AliGammaConversionAODBGHandler.cxx:184
 AliGammaConversionAODBGHandler.cxx:185
 AliGammaConversionAODBGHandler.cxx:186
 AliGammaConversionAODBGHandler.cxx:187
 AliGammaConversionAODBGHandler.cxx:188
 AliGammaConversionAODBGHandler.cxx:189
 AliGammaConversionAODBGHandler.cxx:190
 AliGammaConversionAODBGHandler.cxx:191
 AliGammaConversionAODBGHandler.cxx:192
 AliGammaConversionAODBGHandler.cxx:193
 AliGammaConversionAODBGHandler.cxx:194
 AliGammaConversionAODBGHandler.cxx:195
 AliGammaConversionAODBGHandler.cxx:196
 AliGammaConversionAODBGHandler.cxx:197
 AliGammaConversionAODBGHandler.cxx:198
 AliGammaConversionAODBGHandler.cxx:199
 AliGammaConversionAODBGHandler.cxx:200
 AliGammaConversionAODBGHandler.cxx:201
 AliGammaConversionAODBGHandler.cxx:202
 AliGammaConversionAODBGHandler.cxx:203
 AliGammaConversionAODBGHandler.cxx:204
 AliGammaConversionAODBGHandler.cxx:205
 AliGammaConversionAODBGHandler.cxx:206
 AliGammaConversionAODBGHandler.cxx:207
 AliGammaConversionAODBGHandler.cxx:208
 AliGammaConversionAODBGHandler.cxx:209
 AliGammaConversionAODBGHandler.cxx:210
 AliGammaConversionAODBGHandler.cxx:211
 AliGammaConversionAODBGHandler.cxx:212
 AliGammaConversionAODBGHandler.cxx:213
 AliGammaConversionAODBGHandler.cxx:214
 AliGammaConversionAODBGHandler.cxx:215
 AliGammaConversionAODBGHandler.cxx:216
 AliGammaConversionAODBGHandler.cxx:217
 AliGammaConversionAODBGHandler.cxx:218
 AliGammaConversionAODBGHandler.cxx:219
 AliGammaConversionAODBGHandler.cxx:220
 AliGammaConversionAODBGHandler.cxx:221
 AliGammaConversionAODBGHandler.cxx:222
 AliGammaConversionAODBGHandler.cxx:223
 AliGammaConversionAODBGHandler.cxx:224
 AliGammaConversionAODBGHandler.cxx:225
 AliGammaConversionAODBGHandler.cxx:226
 AliGammaConversionAODBGHandler.cxx:227
 AliGammaConversionAODBGHandler.cxx:228
 AliGammaConversionAODBGHandler.cxx:229
 AliGammaConversionAODBGHandler.cxx:230
 AliGammaConversionAODBGHandler.cxx:231
 AliGammaConversionAODBGHandler.cxx:232
 AliGammaConversionAODBGHandler.cxx:233
 AliGammaConversionAODBGHandler.cxx:234
 AliGammaConversionAODBGHandler.cxx:235
 AliGammaConversionAODBGHandler.cxx:236
 AliGammaConversionAODBGHandler.cxx:237
 AliGammaConversionAODBGHandler.cxx:238
 AliGammaConversionAODBGHandler.cxx:239
 AliGammaConversionAODBGHandler.cxx:240
 AliGammaConversionAODBGHandler.cxx:241
 AliGammaConversionAODBGHandler.cxx:242
 AliGammaConversionAODBGHandler.cxx:243
 AliGammaConversionAODBGHandler.cxx:244
 AliGammaConversionAODBGHandler.cxx:245
 AliGammaConversionAODBGHandler.cxx:246
 AliGammaConversionAODBGHandler.cxx:247
 AliGammaConversionAODBGHandler.cxx:248
 AliGammaConversionAODBGHandler.cxx:249
 AliGammaConversionAODBGHandler.cxx:250
 AliGammaConversionAODBGHandler.cxx:251
 AliGammaConversionAODBGHandler.cxx:252
 AliGammaConversionAODBGHandler.cxx:253
 AliGammaConversionAODBGHandler.cxx:254
 AliGammaConversionAODBGHandler.cxx:255
 AliGammaConversionAODBGHandler.cxx:256
 AliGammaConversionAODBGHandler.cxx:257
 AliGammaConversionAODBGHandler.cxx:258
 AliGammaConversionAODBGHandler.cxx:259
 AliGammaConversionAODBGHandler.cxx:260
 AliGammaConversionAODBGHandler.cxx:261
 AliGammaConversionAODBGHandler.cxx:262
 AliGammaConversionAODBGHandler.cxx:263
 AliGammaConversionAODBGHandler.cxx:264
 AliGammaConversionAODBGHandler.cxx:265
 AliGammaConversionAODBGHandler.cxx:266
 AliGammaConversionAODBGHandler.cxx:267
 AliGammaConversionAODBGHandler.cxx:268
 AliGammaConversionAODBGHandler.cxx:269
 AliGammaConversionAODBGHandler.cxx:270
 AliGammaConversionAODBGHandler.cxx:271
 AliGammaConversionAODBGHandler.cxx:272
 AliGammaConversionAODBGHandler.cxx:273
 AliGammaConversionAODBGHandler.cxx:274
 AliGammaConversionAODBGHandler.cxx:275
 AliGammaConversionAODBGHandler.cxx:276
 AliGammaConversionAODBGHandler.cxx:277
 AliGammaConversionAODBGHandler.cxx:278
 AliGammaConversionAODBGHandler.cxx:279
 AliGammaConversionAODBGHandler.cxx:280
 AliGammaConversionAODBGHandler.cxx:281
 AliGammaConversionAODBGHandler.cxx:282
 AliGammaConversionAODBGHandler.cxx:283
 AliGammaConversionAODBGHandler.cxx:284
 AliGammaConversionAODBGHandler.cxx:285
 AliGammaConversionAODBGHandler.cxx:286
 AliGammaConversionAODBGHandler.cxx:287
 AliGammaConversionAODBGHandler.cxx:288
 AliGammaConversionAODBGHandler.cxx:289
 AliGammaConversionAODBGHandler.cxx:290
 AliGammaConversionAODBGHandler.cxx:291
 AliGammaConversionAODBGHandler.cxx:292
 AliGammaConversionAODBGHandler.cxx:293
 AliGammaConversionAODBGHandler.cxx:294
 AliGammaConversionAODBGHandler.cxx:295
 AliGammaConversionAODBGHandler.cxx:296
 AliGammaConversionAODBGHandler.cxx:297
 AliGammaConversionAODBGHandler.cxx:298
 AliGammaConversionAODBGHandler.cxx:299
 AliGammaConversionAODBGHandler.cxx:300
 AliGammaConversionAODBGHandler.cxx:301
 AliGammaConversionAODBGHandler.cxx:302
 AliGammaConversionAODBGHandler.cxx:303
 AliGammaConversionAODBGHandler.cxx:304
 AliGammaConversionAODBGHandler.cxx:305
 AliGammaConversionAODBGHandler.cxx:306
 AliGammaConversionAODBGHandler.cxx:307
 AliGammaConversionAODBGHandler.cxx:308
 AliGammaConversionAODBGHandler.cxx:309
 AliGammaConversionAODBGHandler.cxx:310
 AliGammaConversionAODBGHandler.cxx:311
 AliGammaConversionAODBGHandler.cxx:312
 AliGammaConversionAODBGHandler.cxx:313
 AliGammaConversionAODBGHandler.cxx:314
 AliGammaConversionAODBGHandler.cxx:315
 AliGammaConversionAODBGHandler.cxx:316
 AliGammaConversionAODBGHandler.cxx:317
 AliGammaConversionAODBGHandler.cxx:318
 AliGammaConversionAODBGHandler.cxx:319
 AliGammaConversionAODBGHandler.cxx:320
 AliGammaConversionAODBGHandler.cxx:321
 AliGammaConversionAODBGHandler.cxx:322
 AliGammaConversionAODBGHandler.cxx:323
 AliGammaConversionAODBGHandler.cxx:324
 AliGammaConversionAODBGHandler.cxx:325
 AliGammaConversionAODBGHandler.cxx:326
 AliGammaConversionAODBGHandler.cxx:327
 AliGammaConversionAODBGHandler.cxx:328
 AliGammaConversionAODBGHandler.cxx:329
 AliGammaConversionAODBGHandler.cxx:330
 AliGammaConversionAODBGHandler.cxx:331
 AliGammaConversionAODBGHandler.cxx:332
 AliGammaConversionAODBGHandler.cxx:333
 AliGammaConversionAODBGHandler.cxx:334
 AliGammaConversionAODBGHandler.cxx:335
 AliGammaConversionAODBGHandler.cxx:336
 AliGammaConversionAODBGHandler.cxx:337
 AliGammaConversionAODBGHandler.cxx:338
 AliGammaConversionAODBGHandler.cxx:339
 AliGammaConversionAODBGHandler.cxx:340
 AliGammaConversionAODBGHandler.cxx:341
 AliGammaConversionAODBGHandler.cxx:342
 AliGammaConversionAODBGHandler.cxx:343
 AliGammaConversionAODBGHandler.cxx:344
 AliGammaConversionAODBGHandler.cxx:345
 AliGammaConversionAODBGHandler.cxx:346
 AliGammaConversionAODBGHandler.cxx:347
 AliGammaConversionAODBGHandler.cxx:348
 AliGammaConversionAODBGHandler.cxx:349
 AliGammaConversionAODBGHandler.cxx:350
 AliGammaConversionAODBGHandler.cxx:351
 AliGammaConversionAODBGHandler.cxx:352
 AliGammaConversionAODBGHandler.cxx:353
 AliGammaConversionAODBGHandler.cxx:354
 AliGammaConversionAODBGHandler.cxx:355
 AliGammaConversionAODBGHandler.cxx:356
 AliGammaConversionAODBGHandler.cxx:357
 AliGammaConversionAODBGHandler.cxx:358
 AliGammaConversionAODBGHandler.cxx:359
 AliGammaConversionAODBGHandler.cxx:360
 AliGammaConversionAODBGHandler.cxx:361
 AliGammaConversionAODBGHandler.cxx:362
 AliGammaConversionAODBGHandler.cxx:363
 AliGammaConversionAODBGHandler.cxx:364
 AliGammaConversionAODBGHandler.cxx:365
 AliGammaConversionAODBGHandler.cxx:366
 AliGammaConversionAODBGHandler.cxx:367
 AliGammaConversionAODBGHandler.cxx:368
 AliGammaConversionAODBGHandler.cxx:369
 AliGammaConversionAODBGHandler.cxx:370
 AliGammaConversionAODBGHandler.cxx:371
 AliGammaConversionAODBGHandler.cxx:372
 AliGammaConversionAODBGHandler.cxx:373
 AliGammaConversionAODBGHandler.cxx:374
 AliGammaConversionAODBGHandler.cxx:375
 AliGammaConversionAODBGHandler.cxx:376
 AliGammaConversionAODBGHandler.cxx:377
 AliGammaConversionAODBGHandler.cxx:378
 AliGammaConversionAODBGHandler.cxx:379
 AliGammaConversionAODBGHandler.cxx:380
 AliGammaConversionAODBGHandler.cxx:381
 AliGammaConversionAODBGHandler.cxx:382
 AliGammaConversionAODBGHandler.cxx:383
 AliGammaConversionAODBGHandler.cxx:384
 AliGammaConversionAODBGHandler.cxx:385
 AliGammaConversionAODBGHandler.cxx:386
 AliGammaConversionAODBGHandler.cxx:387
 AliGammaConversionAODBGHandler.cxx:388
 AliGammaConversionAODBGHandler.cxx:389
 AliGammaConversionAODBGHandler.cxx:390
 AliGammaConversionAODBGHandler.cxx:391
 AliGammaConversionAODBGHandler.cxx:392
 AliGammaConversionAODBGHandler.cxx:393
 AliGammaConversionAODBGHandler.cxx:394
 AliGammaConversionAODBGHandler.cxx:395
 AliGammaConversionAODBGHandler.cxx:396
 AliGammaConversionAODBGHandler.cxx:397
 AliGammaConversionAODBGHandler.cxx:398
 AliGammaConversionAODBGHandler.cxx:399
 AliGammaConversionAODBGHandler.cxx:400
 AliGammaConversionAODBGHandler.cxx:401
 AliGammaConversionAODBGHandler.cxx:402
 AliGammaConversionAODBGHandler.cxx:403
 AliGammaConversionAODBGHandler.cxx:404
 AliGammaConversionAODBGHandler.cxx:405
 AliGammaConversionAODBGHandler.cxx:406
 AliGammaConversionAODBGHandler.cxx:407
 AliGammaConversionAODBGHandler.cxx:408
 AliGammaConversionAODBGHandler.cxx:409
 AliGammaConversionAODBGHandler.cxx:410
 AliGammaConversionAODBGHandler.cxx:411
 AliGammaConversionAODBGHandler.cxx:412
 AliGammaConversionAODBGHandler.cxx:413
 AliGammaConversionAODBGHandler.cxx:414
 AliGammaConversionAODBGHandler.cxx:415
 AliGammaConversionAODBGHandler.cxx:416
 AliGammaConversionAODBGHandler.cxx:417
 AliGammaConversionAODBGHandler.cxx:418
 AliGammaConversionAODBGHandler.cxx:419
 AliGammaConversionAODBGHandler.cxx:420
 AliGammaConversionAODBGHandler.cxx:421
 AliGammaConversionAODBGHandler.cxx:422
 AliGammaConversionAODBGHandler.cxx:423
 AliGammaConversionAODBGHandler.cxx:424
 AliGammaConversionAODBGHandler.cxx:425
 AliGammaConversionAODBGHandler.cxx:426
 AliGammaConversionAODBGHandler.cxx:427
 AliGammaConversionAODBGHandler.cxx:428
 AliGammaConversionAODBGHandler.cxx:429
 AliGammaConversionAODBGHandler.cxx:430
 AliGammaConversionAODBGHandler.cxx:431
 AliGammaConversionAODBGHandler.cxx:432
 AliGammaConversionAODBGHandler.cxx:433
 AliGammaConversionAODBGHandler.cxx:434
 AliGammaConversionAODBGHandler.cxx:435
 AliGammaConversionAODBGHandler.cxx:436
 AliGammaConversionAODBGHandler.cxx:437
 AliGammaConversionAODBGHandler.cxx:438
 AliGammaConversionAODBGHandler.cxx:439
 AliGammaConversionAODBGHandler.cxx:440
 AliGammaConversionAODBGHandler.cxx:441
 AliGammaConversionAODBGHandler.cxx:442
 AliGammaConversionAODBGHandler.cxx:443
 AliGammaConversionAODBGHandler.cxx:444
 AliGammaConversionAODBGHandler.cxx:445
 AliGammaConversionAODBGHandler.cxx:446
 AliGammaConversionAODBGHandler.cxx:447
 AliGammaConversionAODBGHandler.cxx:448
 AliGammaConversionAODBGHandler.cxx:449
 AliGammaConversionAODBGHandler.cxx:450
 AliGammaConversionAODBGHandler.cxx:451
 AliGammaConversionAODBGHandler.cxx:452
 AliGammaConversionAODBGHandler.cxx:453
 AliGammaConversionAODBGHandler.cxx:454
 AliGammaConversionAODBGHandler.cxx:455
 AliGammaConversionAODBGHandler.cxx:456
 AliGammaConversionAODBGHandler.cxx:457
 AliGammaConversionAODBGHandler.cxx:458
 AliGammaConversionAODBGHandler.cxx:459
 AliGammaConversionAODBGHandler.cxx:460
 AliGammaConversionAODBGHandler.cxx:461
 AliGammaConversionAODBGHandler.cxx:462
 AliGammaConversionAODBGHandler.cxx:463
 AliGammaConversionAODBGHandler.cxx:464
 AliGammaConversionAODBGHandler.cxx:465
 AliGammaConversionAODBGHandler.cxx:466
 AliGammaConversionAODBGHandler.cxx:467
 AliGammaConversionAODBGHandler.cxx:468
 AliGammaConversionAODBGHandler.cxx:469
 AliGammaConversionAODBGHandler.cxx:470
 AliGammaConversionAODBGHandler.cxx:471
 AliGammaConversionAODBGHandler.cxx:472
 AliGammaConversionAODBGHandler.cxx:473
 AliGammaConversionAODBGHandler.cxx:474
 AliGammaConversionAODBGHandler.cxx:475
 AliGammaConversionAODBGHandler.cxx:476
 AliGammaConversionAODBGHandler.cxx:477
 AliGammaConversionAODBGHandler.cxx:478
 AliGammaConversionAODBGHandler.cxx:479
 AliGammaConversionAODBGHandler.cxx:480
 AliGammaConversionAODBGHandler.cxx:481
 AliGammaConversionAODBGHandler.cxx:482
 AliGammaConversionAODBGHandler.cxx:483
 AliGammaConversionAODBGHandler.cxx:484
 AliGammaConversionAODBGHandler.cxx:485
 AliGammaConversionAODBGHandler.cxx:486
 AliGammaConversionAODBGHandler.cxx:487
 AliGammaConversionAODBGHandler.cxx:488
 AliGammaConversionAODBGHandler.cxx:489
 AliGammaConversionAODBGHandler.cxx:490
 AliGammaConversionAODBGHandler.cxx:491
 AliGammaConversionAODBGHandler.cxx:492
 AliGammaConversionAODBGHandler.cxx:493
 AliGammaConversionAODBGHandler.cxx:494
 AliGammaConversionAODBGHandler.cxx:495
 AliGammaConversionAODBGHandler.cxx:496
 AliGammaConversionAODBGHandler.cxx:497
 AliGammaConversionAODBGHandler.cxx:498
 AliGammaConversionAODBGHandler.cxx:499
 AliGammaConversionAODBGHandler.cxx:500
 AliGammaConversionAODBGHandler.cxx:501
 AliGammaConversionAODBGHandler.cxx:502
 AliGammaConversionAODBGHandler.cxx:503
 AliGammaConversionAODBGHandler.cxx:504
 AliGammaConversionAODBGHandler.cxx:505
 AliGammaConversionAODBGHandler.cxx:506
 AliGammaConversionAODBGHandler.cxx:507
 AliGammaConversionAODBGHandler.cxx:508
 AliGammaConversionAODBGHandler.cxx:509
 AliGammaConversionAODBGHandler.cxx:510
 AliGammaConversionAODBGHandler.cxx:511
 AliGammaConversionAODBGHandler.cxx:512
 AliGammaConversionAODBGHandler.cxx:513
 AliGammaConversionAODBGHandler.cxx:514
 AliGammaConversionAODBGHandler.cxx:515
 AliGammaConversionAODBGHandler.cxx:516
 AliGammaConversionAODBGHandler.cxx:517
 AliGammaConversionAODBGHandler.cxx:518
 AliGammaConversionAODBGHandler.cxx:519
 AliGammaConversionAODBGHandler.cxx:520
 AliGammaConversionAODBGHandler.cxx:521
 AliGammaConversionAODBGHandler.cxx:522
 AliGammaConversionAODBGHandler.cxx:523
 AliGammaConversionAODBGHandler.cxx:524
 AliGammaConversionAODBGHandler.cxx:525
 AliGammaConversionAODBGHandler.cxx:526
 AliGammaConversionAODBGHandler.cxx:527
 AliGammaConversionAODBGHandler.cxx:528
 AliGammaConversionAODBGHandler.cxx:529
 AliGammaConversionAODBGHandler.cxx:530
 AliGammaConversionAODBGHandler.cxx:531
 AliGammaConversionAODBGHandler.cxx:532
 AliGammaConversionAODBGHandler.cxx:533
 AliGammaConversionAODBGHandler.cxx:534
 AliGammaConversionAODBGHandler.cxx:535
 AliGammaConversionAODBGHandler.cxx:536
 AliGammaConversionAODBGHandler.cxx:537
 AliGammaConversionAODBGHandler.cxx:538
 AliGammaConversionAODBGHandler.cxx:539
 AliGammaConversionAODBGHandler.cxx:540
 AliGammaConversionAODBGHandler.cxx:541
 AliGammaConversionAODBGHandler.cxx:542
 AliGammaConversionAODBGHandler.cxx:543
 AliGammaConversionAODBGHandler.cxx:544
 AliGammaConversionAODBGHandler.cxx:545
 AliGammaConversionAODBGHandler.cxx:546
 AliGammaConversionAODBGHandler.cxx:547
 AliGammaConversionAODBGHandler.cxx:548
 AliGammaConversionAODBGHandler.cxx:549
 AliGammaConversionAODBGHandler.cxx:550
 AliGammaConversionAODBGHandler.cxx:551
 AliGammaConversionAODBGHandler.cxx:552
 AliGammaConversionAODBGHandler.cxx:553
 AliGammaConversionAODBGHandler.cxx:554
 AliGammaConversionAODBGHandler.cxx:555
 AliGammaConversionAODBGHandler.cxx:556
 AliGammaConversionAODBGHandler.cxx:557
 AliGammaConversionAODBGHandler.cxx:558
 AliGammaConversionAODBGHandler.cxx:559
 AliGammaConversionAODBGHandler.cxx:560
 AliGammaConversionAODBGHandler.cxx:561
 AliGammaConversionAODBGHandler.cxx:562
 AliGammaConversionAODBGHandler.cxx:563
 AliGammaConversionAODBGHandler.cxx:564
 AliGammaConversionAODBGHandler.cxx:565
 AliGammaConversionAODBGHandler.cxx:566
 AliGammaConversionAODBGHandler.cxx:567
 AliGammaConversionAODBGHandler.cxx:568
 AliGammaConversionAODBGHandler.cxx:569
 AliGammaConversionAODBGHandler.cxx:570
 AliGammaConversionAODBGHandler.cxx:571
 AliGammaConversionAODBGHandler.cxx:572
 AliGammaConversionAODBGHandler.cxx:573
 AliGammaConversionAODBGHandler.cxx:574
 AliGammaConversionAODBGHandler.cxx:575
 AliGammaConversionAODBGHandler.cxx:576
 AliGammaConversionAODBGHandler.cxx:577
 AliGammaConversionAODBGHandler.cxx:578
 AliGammaConversionAODBGHandler.cxx:579
 AliGammaConversionAODBGHandler.cxx:580
 AliGammaConversionAODBGHandler.cxx:581
 AliGammaConversionAODBGHandler.cxx:582
 AliGammaConversionAODBGHandler.cxx:583
 AliGammaConversionAODBGHandler.cxx:584
 AliGammaConversionAODBGHandler.cxx:585
 AliGammaConversionAODBGHandler.cxx:586
 AliGammaConversionAODBGHandler.cxx:587
 AliGammaConversionAODBGHandler.cxx:588
 AliGammaConversionAODBGHandler.cxx:589
 AliGammaConversionAODBGHandler.cxx:590
 AliGammaConversionAODBGHandler.cxx:591
 AliGammaConversionAODBGHandler.cxx:592
 AliGammaConversionAODBGHandler.cxx:593
 AliGammaConversionAODBGHandler.cxx:594
 AliGammaConversionAODBGHandler.cxx:595
 AliGammaConversionAODBGHandler.cxx:596
 AliGammaConversionAODBGHandler.cxx:597
 AliGammaConversionAODBGHandler.cxx:598
 AliGammaConversionAODBGHandler.cxx:599
 AliGammaConversionAODBGHandler.cxx:600
 AliGammaConversionAODBGHandler.cxx:601
 AliGammaConversionAODBGHandler.cxx:602
 AliGammaConversionAODBGHandler.cxx:603
 AliGammaConversionAODBGHandler.cxx:604
 AliGammaConversionAODBGHandler.cxx:605
 AliGammaConversionAODBGHandler.cxx:606
 AliGammaConversionAODBGHandler.cxx:607
 AliGammaConversionAODBGHandler.cxx:608
 AliGammaConversionAODBGHandler.cxx:609
 AliGammaConversionAODBGHandler.cxx:610
 AliGammaConversionAODBGHandler.cxx:611
 AliGammaConversionAODBGHandler.cxx:612
 AliGammaConversionAODBGHandler.cxx:613
 AliGammaConversionAODBGHandler.cxx:614
 AliGammaConversionAODBGHandler.cxx:615
 AliGammaConversionAODBGHandler.cxx:616
 AliGammaConversionAODBGHandler.cxx:617
 AliGammaConversionAODBGHandler.cxx:618
 AliGammaConversionAODBGHandler.cxx:619
 AliGammaConversionAODBGHandler.cxx:620
 AliGammaConversionAODBGHandler.cxx:621
 AliGammaConversionAODBGHandler.cxx:622
 AliGammaConversionAODBGHandler.cxx:623
 AliGammaConversionAODBGHandler.cxx:624
 AliGammaConversionAODBGHandler.cxx:625
 AliGammaConversionAODBGHandler.cxx:626
 AliGammaConversionAODBGHandler.cxx:627
 AliGammaConversionAODBGHandler.cxx:628
 AliGammaConversionAODBGHandler.cxx:629
 AliGammaConversionAODBGHandler.cxx:630
 AliGammaConversionAODBGHandler.cxx:631
 AliGammaConversionAODBGHandler.cxx:632
 AliGammaConversionAODBGHandler.cxx:633
 AliGammaConversionAODBGHandler.cxx:634
 AliGammaConversionAODBGHandler.cxx:635
 AliGammaConversionAODBGHandler.cxx:636
 AliGammaConversionAODBGHandler.cxx:637
 AliGammaConversionAODBGHandler.cxx:638
 AliGammaConversionAODBGHandler.cxx:639
 AliGammaConversionAODBGHandler.cxx:640
 AliGammaConversionAODBGHandler.cxx:641
 AliGammaConversionAODBGHandler.cxx:642
 AliGammaConversionAODBGHandler.cxx:643
 AliGammaConversionAODBGHandler.cxx:644
 AliGammaConversionAODBGHandler.cxx:645
 AliGammaConversionAODBGHandler.cxx:646
 AliGammaConversionAODBGHandler.cxx:647
 AliGammaConversionAODBGHandler.cxx:648
 AliGammaConversionAODBGHandler.cxx:649