ROOT logo
#include "AliAODMCParticle.h"
#include "AliAODMCHeader.h"
#include "AliAODConversionPhoton.h"
#include "AliKFConversionPhoton.h"

using namespace std;

ClassImp(AliAODConversionPhoton)

AliAODConversionPhoton::AliAODConversionPhoton() :
AliAODConversionParticle(),
AliConversionPhotonBase(),
fDCArPrimVtx(0),
fDCAzPrimVtx(0),
fCaloPhoton(0),
fCaloClusterRef(-1),
fNCaloPhotonMCLabels(0),
fNCaloPhotonMotherMCLabels(0),
fCaloPhotonMCFlags(0)
{
	// initialize calo photon MC labels
    for (Int_t i =0; i<20; i++){
		fCaloPhotonMCLabels[i]=-1;		
	}
	for (Int_t i =0; i<20; i++){
		fCaloPhotonMotherMCLabels[i]=-1;
	}
  //Standard constructor
}

AliAODConversionPhoton::AliAODConversionPhoton(AliKFConversionPhoton *kfphoton) :
AliAODConversionParticle(kfphoton),
AliConversionPhotonBase(*((AliConversionPhotonBase*)kfphoton)),
fDCArPrimVtx(0),
fDCAzPrimVtx(0),
fCaloPhoton(0),
fCaloClusterRef(-1),
fNCaloPhotonMCLabels(0),
fNCaloPhotonMotherMCLabels(0),
fCaloPhotonMCFlags(0)
{
    //Constructor from kfphoton

    // puts the mass to zero and store dilepton mass
	    SetMass(kfphoton->M());

	//SetE(P());
		
	// initialize calo photon MC labels
    for (Int_t i =0; i<20; i++){
		fCaloPhotonMCLabels[i]=-1;		
	}
	for (Int_t i =0; i<20; i++){
		fCaloPhotonMotherMCLabels[i]=-1;
	}
	
}

AliAODConversionPhoton::AliAODConversionPhoton(TLorentzVector *vec) :
AliAODConversionParticle(vec),
AliConversionPhotonBase(),
fDCArPrimVtx(0),
fDCAzPrimVtx(0),
fCaloPhoton(0),
fCaloClusterRef(-1),
fNCaloPhotonMCLabels(0),
fNCaloPhotonMotherMCLabels(0),
fCaloPhotonMCFlags(0)
{
    //Constructor from TLorentzVector

	// initialize calo photon MC labels
    for (Int_t i =0; i<20; i++){
		fCaloPhotonMCLabels[i]=-1;		
	}
	for (Int_t i =0; i<20; i++){
		fCaloPhotonMotherMCLabels[i]=-1;
	}
}



AliAODConversionPhoton::AliAODConversionPhoton(const AliAODConversionPhoton & original) :
AliAODConversionParticle(original),
AliConversionPhotonBase(original),
fDCArPrimVtx(original.fDCArPrimVtx),
fDCAzPrimVtx(original.fDCAzPrimVtx),
fCaloPhoton(original.fCaloPhoton),
fCaloClusterRef(original.fCaloClusterRef),
fNCaloPhotonMCLabels(original.fNCaloPhotonMCLabels),
fNCaloPhotonMotherMCLabels(original.fNCaloPhotonMotherMCLabels),
fCaloPhotonMCFlags(original.fCaloPhotonMCFlags)
{
	//Copy constructor
	
	// initialize calo photon MC labels
    for (Int_t i =0; i<20; i++){
		fCaloPhotonMCLabels[i]=original.fCaloPhotonMCLabels[i];		
	}
    for (Int_t i =0; i<20; i++){
        fCaloPhotonMotherMCLabels[i]=original.fCaloPhotonMotherMCLabels[i];
    }
}

AliAODConversionPhoton::~AliAODConversionPhoton()
{
  // empty standard destructor
}

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

///________________________________________________________________________
void AliAODConversionPhoton::CalculateDistanceOfClossetApproachToPrimVtx(const AliVVertex* primVertex ){

   Double_t primCo[3] = {primVertex->GetX(),primVertex->GetY(),primVertex->GetZ()};

   Double_t absoluteP = TMath::Sqrt(TMath::Power(GetPx(),2) + TMath::Power(GetPy(),2) + TMath::Power(GetPz(),2));   
   Double_t p[3] = {GetPx()/absoluteP,GetPy()/absoluteP,GetPz()/absoluteP};
   Double_t CP[3];
   
   CP[0] =  fConversionPoint[0] - primCo[0];
   CP[1] =  fConversionPoint[1] - primCo[1];
   CP[2] =  fConversionPoint[2] - primCo[2];
   
   Double_t Lambda = - (CP[0]*p[0]+CP[1]*p[1]+CP[2]*p[2])/(p[0]*p[0]+p[1]*p[1]+p[2]*p[2]);
   
   Double_t S[3];
   S[0] = fConversionPoint[0] + p[0]*Lambda;
   S[1] = fConversionPoint[1] + p[1]*Lambda;
   S[2] = fConversionPoint[2] + p[2]*Lambda;
  
   fDCArPrimVtx = TMath::Sqrt( TMath::Power(primCo[0]-S[0],2) + TMath::Power(primCo[1]-S[1],2));
   fDCAzPrimVtx = primCo[2]-S[2];
    
   return;
}


void AliAODConversionPhoton::SetCaloPhotonMCFlags(AliStack *MCStack){
	
	Bool_t isPhoton = kFALSE;						// largest contribution to cluster is photon 
	Bool_t isElectron = kFALSE;						// largest contribution to cluster is electron
	Bool_t isConversion = kFALSE;					// largest contribution to cluster is converted electron
	Bool_t isConversionFullyContained = kFALSE;		// largest contribution to cluster is converted electron, second electron has been found in same cluster
	Bool_t isMerged = kFALSE;						// cluster contains more than one particle from the same decay
	Bool_t isMergedPartConv = kFALSE;				// cluster contains more than one particle from the same decay and at least one of the particles came from a conversion
	Bool_t isDalitz = kFALSE;						// this cluster was created by a particle stemming from a dalitz decay
	Bool_t isDalitzMerged = kFALSE;					// this cluster was created by a particle stemming from a dalitz decay and more than one particle of the dalitz decay is contained in the cluster
	Bool_t isPhotonWithElecMother = kFALSE;			// this cluster is from a photon with an electron as mother
	Bool_t isShower = kFALSE;						// this cluster contains as a largest contribution a particle from a shower or radiative process
	Bool_t isSubLeadingEM = kFALSE;                 // cluster contains at least one electron or photon from a pi0, eta or eta_prime in subleading contribution
	
	TParticle* Photon;
	if (fNCaloPhotonMCLabels==0) return;
	Photon = MCStack->Particle(GetCaloPhotonMCLabel(0));
	
	if(Photon == NULL){
		return;
	}

	Int_t particleMotherLabel = Photon->GetMother(0);
	Int_t particleGrandMotherLabel = -1; 
	Int_t particleMotherPDG = -1; 
	Int_t particleGrandMotherPDG = -1; 
	Int_t particleMotherNDaugthers = 0;
	Int_t particleGrandMotherNDaugthers = 0;
	if (particleMotherLabel > -1){
		particleMotherNDaugthers = MCStack->Particle(Photon->GetMother(0))->GetNDaughters();
		particleGrandMotherLabel = MCStack->Particle(Photon->GetMother(0))->GetMother(0);
		particleMotherPDG = MCStack->Particle(Photon->GetMother(0))->GetPdgCode();
		if (particleGrandMotherLabel > -1){
			particleGrandMotherPDG = MCStack->Particle(MCStack->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode();
			particleGrandMotherNDaugthers = MCStack->Particle(MCStack->Particle(Photon->GetMother(0))->GetMother(0))->GetNDaughters();
		}	
	}

	//determine mother/grandmother of leading particle and if it is pion/eta/eta_prime: fill array fCaloPhotonMotherMCLabels at position 0
	if (particleMotherLabel > -1){
		if( abs(particleMotherPDG) == 111 || abs(particleMotherPDG) == 221 || abs(particleMotherPDG) == 331 ){
			fCaloPhotonMotherMCLabels[0] = particleMotherLabel;
			fNCaloPhotonMotherMCLabels++;
		}
		else if (particleGrandMotherLabel > -1){
			if ( abs(particleMotherPDG) == 22 && (abs(particleGrandMotherPDG) == 111 || abs(particleGrandMotherPDG) == 221 || abs(particleGrandMotherPDG) == 331) ){
				fCaloPhotonMotherMCLabels[0] = particleGrandMotherLabel;
				fNCaloPhotonMotherMCLabels++;
			}
		}
	}

	// Check whether the first contribution was photon
	if(abs(MCStack->Particle(GetCaloPhotonMCLabel(0))->GetPdgCode()) == 22){
		isPhoton=kTRUE;
		// did it decay via the dalitz channel
		if (particleMotherLabel > -1 && particleMotherNDaugthers == 3) isDalitz = kTRUE;
		// Test whether particle stems from a shower or radiation
		if (abs(particleMotherPDG) == 11){									// check whether photon stems from electron
			isPhotonWithElecMother = kTRUE;
			if (particleGrandMotherLabel > -1){	 								// test whether first particle has a grandmother
				if (abs(particleGrandMotherPDG) == 22 ) isShower = kTRUE;	// check whether grandmother is a photon (meaning this is most likely a shower)
			}	
		}			
	}
	// Check whether the first contribution was electron
	if( abs(MCStack->Particle(GetCaloPhotonMCLabel(0))->GetPdgCode()) == 11 ){
		isElectron=kTRUE;
		if (particleMotherLabel > -1) {
			// was it a conversion
			if (abs(particleMotherPDG) == 22) isConversion = kTRUE;
			// did it decay via the dalitz channel
			if (particleGrandMotherLabel > -1 && particleGrandMotherNDaugthers == 3 ) isDalitz = kTRUE;
		}
		if (particleGrandMotherLabel > -1){										// check whether electron has a grandmother
			if (abs(particleGrandMotherPDG) == 11 ||  abs(particleGrandMotherPDG) == 22){	// test whether electron has photon or electron as grandmother (meaning will most likely be a shower)
				isShower = kTRUE; 
			}	
		}
	}


	// check whether there were other contributions to the cluster
	if (fNCaloPhotonMCLabels>1){
		TParticle* dummyPart =NULL;
		for (Int_t i = 1; i< fNCaloPhotonMCLabels; i++){
			if (i > 19) continue;													// abort if more than 20 entries to the cluster have been checked (more are not stored in these objects)
			dummyPart = MCStack->Particle(GetCaloPhotonMCLabel(i));
			Int_t dummyPartMotherLabel = dummyPart->GetMother(0);
			Int_t dummyPartGrandMotherLabel = -1;
			Int_t dummyPartMotherPDG = -1;
			Int_t dummyPartGrandMotherPDG = -1;
			// check whether this particle has a mother & obtain the pdg code
			if (dummyPartMotherLabel > -1){
				dummyPartGrandMotherLabel = MCStack->Particle(dummyPart->GetMother(0))->GetMother(0);
				dummyPartMotherPDG = MCStack->Particle(dummyPart->GetMother(0))->GetPdgCode();
				// check whether this particle has a grandmother & obtain its pdg code
				if (dummyPartGrandMotherLabel > -1){
					dummyPartGrandMotherPDG = MCStack->Particle(MCStack->Particle(dummyPart->GetMother(0))->GetMother(0))->GetPdgCode();
				}
			}
			// largest contribution was from photon and is not from shower or electron mother
			if (isPhoton && (!isShower || !isPhotonWithElecMother )){
				if (dummyPartMotherLabel > -1 && particleMotherLabel > -1){  												// test whether first particle has a mother
					if (dummyPartMotherLabel == particleMotherLabel) isMerged = kTRUE;			// test whether current and first particle have the same mother => i.e. other gamma from decay or dalitz electron
					if (dummyPartGrandMotherLabel > -1){	 									// test whether first particle has a grandmother
						// check whether particle is an electron from a conversion of a photon from the original mother
						if (abs(dummyPart->GetPdgCode()) == 11 && dummyPartGrandMotherLabel == particleMotherLabel ) isMergedPartConv = kTRUE;
						// check whether particle is an electron from a dalitz decay from the original mother
						if (abs(dummyPart->GetPdgCode()) == 11 && dummyPartMotherLabel == particleMotherLabel ) isDalitzMerged = kTRUE;
					}
				}
			}

			// largest contribution was from electron & not a from a shower
			if (isElectron && !isShower){
				if (dummyPartMotherLabel > -1 && particleMotherLabel > -1){																			// test whether first particle has a mother
					if (isConversion && dummyPartMotherLabel == particleMotherLabel) isConversionFullyContained = kTRUE;		// test whether conversion is fully contained in cluster

					if (dummyPartGrandMotherLabel > -1 && particleGrandMotherLabel > -1){																	// test whether first particle has a grandmother
						if (abs(dummyPart->GetPdgCode()) == 22){													// test whether this particle is a photon
							// check whether orginal electron and this photon stem from the same particle and electron stems from conversion
							if( dummyPartMotherLabel == particleGrandMotherLabel && (abs(dummyPartMotherPDG) != 11 ||  abs(dummyPartMotherPDG) != 22 )   ) isMergedPartConv = kTRUE;
							// check whether orginal electron and this photon stem from the same particle and electron originated in dalitz
							if( dummyPartMotherLabel == particleMotherLabel && (abs(dummyPartMotherPDG) != 11 ||  abs(dummyPartMotherPDG) != 22 )   ) isDalitzMerged = kTRUE;
						}
						if (abs(dummyPart->GetPdgCode()) == 11) {
							// check whether orginal electron and this electron stem from the same particle and electron stems from conversion
							if( dummyPartGrandMotherLabel == particleGrandMotherLabel &&  (abs(dummyPartGrandMotherPDG) != 11 ||  abs(dummyPartGrandMotherPDG) != 22 )   ) isMergedPartConv = kTRUE;
							// check whether orginal electron and this electron stem from the same particle and electron originated in dalitz decay
							if( dummyPartMotherLabel == particleMotherLabel && abs(particleMotherPDG) != 22 &&  (abs(dummyPartGrandMotherPDG) != 11 ||  abs(dummyPartGrandMotherPDG) != 22 )   ) isDalitzMerged = kTRUE;
						}

					}
				}
			}

			if (dummyPartMotherLabel > -1){ // test whether particle has a mother
				if (abs(dummyPart->GetPdgCode()) == 22){ // test whether particle is a photon
					//check if photon directly comes from a pion/eta/eta_prime decay
					if ( abs(dummyPartMotherPDG) == 111 || abs(dummyPartMotherPDG) == 221 || abs(dummyPartMotherPDG) == 331){
						fCaloPhotonMotherMCLabels[i] = dummyPartMotherLabel;
						Bool_t helpN=true;
						for(Int_t j=0; j<i; j++){
							if (fCaloPhotonMotherMCLabels[j] == dummyPartMotherLabel){ //check if mother is already contained in fCaloPhotonMotherMCLabels
								helpN=false;
							}
						}
						if (helpN) fNCaloPhotonMotherMCLabels++; //only if particle label is not yet contained in array, count up fNCaloPhotonMotherMCLabels
						if (!isPhoton && !isElectron) isSubLeadingEM = kTRUE;
					}
				}

				if (abs(dummyPart->GetPdgCode()) == 11){ //test whether particle is an electron
					//check if electron comes from a pion decay
					if ( abs(dummyPartMotherPDG) == 111){
						fCaloPhotonMotherMCLabels[i] = dummyPartMotherLabel;
						Bool_t helpN=true;
						for(Int_t j=0; j<i; j++){
							if (fCaloPhotonMotherMCLabels[j] == dummyPartMotherLabel){ //check if mother is already contained in fCaloPhotonMotherMCLabels
								helpN=false;
							}
						}
						if (helpN) fNCaloPhotonMotherMCLabels++; //only if particle label is not yet contained in array, count up fNCaloPhotonMotherMCLabels
						if (!isPhoton && !isElectron) isSubLeadingEM = kTRUE;
					}
					else if (dummyPartGrandMotherLabel > -1){ //if it is not a dalitz decay, test whether particle has a grandmother
						//check if it is a conversion electron that has pion/eta/eta_prime as grandmother
						if ( abs(dummyPartMotherPDG) == 22 && (abs(dummyPartGrandMotherPDG) == 111 || abs(dummyPartGrandMotherPDG) == 221 || abs(dummyPartGrandMotherPDG) == 331)){
							fCaloPhotonMotherMCLabels[i] = dummyPartGrandMotherLabel;
							Bool_t helpN=true;
							for(Int_t j=0; j<i; j++){
								if (fCaloPhotonMotherMCLabels[j] == dummyPartGrandMotherLabel){ //check if grandmother is already contained in fCaloPhotonMotherMCLabels
									helpN=false;
								}
							}
							if (helpN) fNCaloPhotonMotherMCLabels++; //only if particle label is not yet contained in array, count up fNCaloPhotonMotherMCLabels
							if (!isPhoton && !isElectron) isSubLeadingEM = kTRUE;
						}
					}
				}

			}

		}
	}
	fCaloPhotonMCFlags = isPhoton *1 + isElectron *2 + isConversion*4+ isConversionFullyContained *8 + isMerged *16 + isMergedPartConv*32 + isDalitz *64 + isDalitzMerged *128 + isPhotonWithElecMother *256 + isShower * 512 + isSubLeadingEM * 1024;
}

void AliAODConversionPhoton::SetCaloPhotonMCFlagsAOD(AliVEvent* event){
	
	TClonesArray *AODMCTrackArray = dynamic_cast<TClonesArray*>(event->FindListObject(AliAODMCParticle::StdBranchName()));
	if (!AODMCTrackArray) return;
	
	Bool_t isPhoton = kFALSE;						// largest contribution to cluster is photon 
	Bool_t isElectron = kFALSE;						// largest contribution to cluster is electron
	Bool_t isConversion = kFALSE;					// largest contribution to cluster is converted electron
	Bool_t isConversionFullyContained = kFALSE;		// largest contribution to cluster is converted electron, second electron has been found in same cluster
	Bool_t isMerged = kFALSE;						// largest contribution to cluster is photon, second photon or electron from dalitz has been found in same cluster 
	Bool_t isMergedPartConv = kFALSE;				// cluster contains more than one particle from the same decay and at least one of the particles came from a conversion
	Bool_t isDalitz = kFALSE;						// this cluster was created by a particle stemming from a dality decay
	Bool_t isDalitzMerged = kFALSE;					// this cluster was created by a particle stemming from a dality decay and more than one particle of the dalitz decay is contained in the cluster
	Bool_t isPhotonWithElecMother = kFALSE;			// this cluster is from a photon with an electron as mother
	Bool_t isShower = kFALSE;						// this cluster contains as a largest contribution a particle from a shower or radiative process
	Bool_t isSubLeadingEM = kFALSE;                 // cluster contains at least one electron or photon from a pi0 or eta in subleading contribution
	
	AliAODMCParticle* Photon;
	AliAODMCParticle* PhotonMother;
	AliAODMCParticle* PhotonGrandMother;

	if (fNCaloPhotonMCLabels==0) return;
	Photon = (AliAODMCParticle*) AODMCTrackArray->At(GetCaloPhotonMCLabel(0));
	
	if(Photon == NULL){
		return;
	}

	Int_t particleMotherLabel = Photon->GetMother();
	Int_t particleGrandMotherLabel = -1; 
	Int_t particleMotherPDG = -1; 
	Int_t particleGrandMotherPDG = -1; 
	Int_t particleMotherNDaugthers = 0;
	Int_t particleGrandMotherNDaugthers = 0;
	if (particleMotherLabel > -1){
		PhotonMother = (AliAODMCParticle*) AODMCTrackArray->At(Photon->GetMother());
		particleMotherNDaugthers = PhotonMother->GetNDaughters();
		particleGrandMotherLabel = PhotonMother->GetMother();
		particleMotherPDG = PhotonMother->GetPdgCode();
		if (particleGrandMotherLabel > -1){
			PhotonGrandMother = (AliAODMCParticle*) AODMCTrackArray->At(PhotonMother->GetMother());
			particleGrandMotherPDG = PhotonGrandMother->GetPdgCode();
			particleGrandMotherNDaugthers = PhotonGrandMother->GetNDaughters();
		}	
	}

	//determine mother/grandmother of leading particle and if it is pion/eta/eta_prime: fill array fCaloPhotonMotherMCLabels at position 0
	if (particleMotherLabel > -1){
		if( abs(particleMotherPDG) == 111 || abs(particleMotherPDG) == 221 || abs(particleMotherPDG) == 331 ){
			fCaloPhotonMotherMCLabels[0] = particleMotherLabel;
			fNCaloPhotonMotherMCLabels++;
		}
		else if (particleGrandMotherLabel > -1){
			if ( abs(particleMotherPDG) == 22 && (abs(particleGrandMotherPDG) == 111 || abs(particleGrandMotherPDG) == 221 || abs(particleGrandMotherPDG) == 331) ){
				fCaloPhotonMotherMCLabels[0] = particleGrandMotherLabel;
				fNCaloPhotonMotherMCLabels++;
			}
		}
	}
		
	// Check whether the first contribution was photon
	if(abs(Photon->GetPdgCode()) == 22){
		isPhoton=kTRUE;
		// did it decay via the dalitz channel
		if (particleMotherLabel > -1 && particleMotherNDaugthers == 3) isDalitz = kTRUE;
		// Test whether particle stems from a shower or radiation
		if (abs(particleMotherPDG) == 11){									// check whether photon stems from electron
			isPhotonWithElecMother = kTRUE;
			if (particleGrandMotherLabel > -1){	 								// test whether first particle has a grandmother
				if (abs(particleGrandMotherPDG) == 22 ) isShower = kTRUE;	// check whether grandmother is a photon (meaning this is most likely a shower)
			}	
		}			
	}
	// Check whether the first contribution was electron
	if(abs(Photon->GetPdgCode()) == 11 ){
		isElectron=kTRUE;	
		if (particleMotherLabel > -1) {
			// was it a conversion
			if (abs(particleMotherPDG) == 22) isConversion = kTRUE;
			// did it decay via the dalitz channel
			if (particleGrandMotherLabel > -1 && particleGrandMotherNDaugthers == 3 ) isDalitz = kTRUE;
		}
		if (particleGrandMotherLabel > -1){										// check whether electron has a grandmother
			if (abs(particleGrandMotherPDG) == 11 ||  abs(particleGrandMotherPDG) == 22){	// test whether electron has photon or electron as grandmother (meaning will most likely be a shower)
				isShower = kTRUE; 
			}	
		}
	}
	

	// check whether there were other contributions to the cluster
	if (fNCaloPhotonMCLabels>1){
		AliAODMCParticle* dummyPart =NULL;
		AliAODMCParticle* dummyPartMother = NULL;
		AliAODMCParticle* dummyPartGrandMother = NULL;
		for (Int_t i = 1; i< fNCaloPhotonMCLabels; i++){
			if (i > 19) continue;													// abort if more than 20 entries to the cluster have been checked (more are not stored in these objects)
			dummyPart = (AliAODMCParticle*) AODMCTrackArray->At(GetCaloPhotonMCLabel(i));
			Int_t dummyPartMotherLabel = dummyPart->GetMother();
			Int_t dummyPartGrandMotherLabel = -1;
			Int_t dummyPartMotherPDG = -1;
			Int_t dummyPartGrandMotherPDG = -1;

			// check whether this particle has a mother & obtain the pdg code
			if (dummyPartMotherLabel > -1){
				dummyPartMother = (AliAODMCParticle*) AODMCTrackArray->At(dummyPart->GetMother());
				dummyPartGrandMotherLabel = dummyPartMother->GetMother();
				dummyPartMotherPDG = dummyPartMother->GetPdgCode();
				// check whether this particle has a grandmother & obtain its pdg code
				if (dummyPartGrandMotherLabel > -1){
					dummyPartGrandMother = (AliAODMCParticle*) AODMCTrackArray->At(dummyPartMother->GetMother());
					dummyPartGrandMotherPDG = dummyPartGrandMother->GetPdgCode();
				}
			}

			// largest contribution was from photon and is not from shower or electron mother
			if (isPhoton && (!isShower || !isPhotonWithElecMother )){
				if (dummyPartMotherLabel > -1 && particleMotherLabel > -1){  												// test whether first particle has a mother
					if (dummyPartMotherLabel == particleMotherLabel) isMerged = kTRUE;			// test whether current and first particle have the same mother => i.e. other gamma from decay or dalitz electron
					if (dummyPartGrandMotherLabel > -1){	 									// test whether first particle has a grandmother
						// check whether particle is an electron from a conversion of a photon from the original mother
						if (abs(dummyPart->GetPdgCode()) == 11 && dummyPartGrandMotherLabel == particleMotherLabel ) isMergedPartConv = kTRUE;
						// check whether particle is an electron from a dalitz decay from the original mother
						if (abs(dummyPart->GetPdgCode()) == 11 && dummyPartMotherLabel == particleMotherLabel ) isDalitzMerged = kTRUE;
					}
				}
			}

			// largest contribution was from electron & not a from a shower
			if (isElectron && !isShower){
				if (dummyPartMotherLabel > -1 && particleMotherLabel > -1){																			// test whether first particle has a mother
					if (isConversion && dummyPartMotherLabel == particleMotherLabel) isConversionFullyContained = kTRUE;		// test whether conversion is fully contained in cluster

					if (dummyPartGrandMotherLabel > -1 && particleGrandMotherLabel > -1){																	// test whether first particle has a grandmother
						if (abs(dummyPart->GetPdgCode()) == 22){													// test whether this particle is a photon
							// check whether orginal electron and this photon stem from the same particle and electron stems from conversion
							if( dummyPartMotherLabel == particleGrandMotherLabel && (abs(dummyPartMotherPDG) != 11 ||  abs(dummyPartMotherPDG) != 22 )   ) isMergedPartConv = kTRUE;
							// check whether orginal electron and this photon stem from the same particle and electron originated in dalitz
							if( dummyPartMotherLabel == particleMotherLabel && (abs(dummyPartMotherPDG) != 11 ||  abs(dummyPartMotherPDG) != 22 )   ) isDalitzMerged = kTRUE;
						}
						if (abs(dummyPart->GetPdgCode()) == 11) {
							// check whether orginal electron and this electron stem from the same particle and electron stems from conversion
							if( dummyPartGrandMotherLabel == particleGrandMotherLabel &&  (abs(dummyPartGrandMotherPDG) != 11 ||  abs(dummyPartGrandMotherPDG) != 22 )   ) isMergedPartConv = kTRUE;
							// check whether orginal electron and this electron stem from the same particle and electron originated in dalitz decay
							if( dummyPartMotherLabel == particleMotherLabel && abs(particleMotherPDG) != 22 &&  (abs(dummyPartGrandMotherPDG) != 11 ||  abs(dummyPartGrandMotherPDG) != 22 )   ) isDalitzMerged = kTRUE;
						}

					}
				}
			}

			if (dummyPartMotherLabel > -1){ // test whether particle has a mother
				if (abs(dummyPart->GetPdgCode()) == 22){ // test whether particle is a photon
					//check if photon directly comes from a pion/eta/eta_prime decay
					if ( abs(dummyPartMotherPDG) == 111 || abs(dummyPartMotherPDG) == 221 || abs(dummyPartMotherPDG) == 331){
						fCaloPhotonMotherMCLabels[i] = dummyPartMotherLabel;
						Bool_t helpN=true;
						for(Int_t j=0; j<i; j++){
							if (fCaloPhotonMotherMCLabels[j] == dummyPartMotherLabel){ //check if mother is already contained in fCaloPhotonMotherMCLabels
								helpN=false;
							}
						}
						if (helpN) fNCaloPhotonMotherMCLabels++; //only if particle label is not yet contained in array, count up fNCaloPhotonMotherMCLabels
						if (!isPhoton && !isElectron) isSubLeadingEM = kTRUE;
					}
				}

				if (abs(dummyPart->GetPdgCode()) == 11){ //test whether particle is an electron
					//check if electron comes from a pion decay
					if ( abs(dummyPartMotherPDG) == 111){
						fCaloPhotonMotherMCLabels[i] = dummyPartMotherLabel;
						Bool_t helpN=true;
						for(Int_t j=0; j<i; j++){
							if (fCaloPhotonMotherMCLabels[j] == dummyPartMotherLabel){ //check if mother is already contained in fCaloPhotonMotherMCLabels
								helpN=false;
							}
						}
						if (helpN) fNCaloPhotonMotherMCLabels++; //only if particle label is not yet contained in array, count up fNCaloPhotonMotherMCLabels
						if (!isPhoton && !isElectron) isSubLeadingEM = kTRUE;
					}
					else if (dummyPartGrandMotherLabel > -1){ //if it is not a dalitz decay, test whether particle has a grandmother
						//check if it is a conversion electron that has pion/eta/eta_prime as grandmother
						if ( abs(dummyPartMotherPDG) == 22 && (abs(dummyPartGrandMotherPDG) == 111 || abs(dummyPartGrandMotherPDG) == 221 || abs(dummyPartGrandMotherPDG) == 331)){
							fCaloPhotonMotherMCLabels[i] = dummyPartGrandMotherLabel;
							Bool_t helpN=true;
							for(Int_t j=0; j<i; j++){
								if (fCaloPhotonMotherMCLabels[j] == dummyPartGrandMotherLabel){ //check if grandmother is already contained in fCaloPhotonMotherMCLabels
									helpN=false;
								}
							}
							if (helpN) fNCaloPhotonMotherMCLabels++; //only if particle label is not yet contained in array, count up fNCaloPhotonMotherMCLabels
							if (!isPhoton && !isElectron) isSubLeadingEM = kTRUE;
						}
					}
				}

			}

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