ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * 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 analysis utils for MC data
// stored in stack or event header.
// Contains:
//  - method to check the origin of a given track/cluster
//  - method to obtain the generated jets
//                
//*-- Author: Gustavo Conesa (LNF-INFN) 
//////////////////////////////////////////////////////////////////////////////


// --- ROOT system ---
#include <TMath.h>
#include <TList.h>
#include "TParticle.h"
#include "TDatabasePDG.h"
#include "TVector3.h"

//---- ANALYSIS system ----
#include "AliMCAnalysisUtils.h"
#include "AliCaloTrackReader.h"
#include "AliStack.h"
#include "AliGenPythiaEventHeader.h"
#include "AliAODMCParticle.h"
#include "AliLog.h"

ClassImp(AliMCAnalysisUtils)

//________________________________________
AliMCAnalysisUtils::AliMCAnalysisUtils() : 
TObject(), 
fCurrentEvent(-1), 
fDebug(0),
fJetsList(new TList), 
fMCGenerator(kPythia),
fMCGeneratorString("PYTHIA"),
fDaughMom(),  fDaughMom2(),
fMotherMom(), fGMotherMom()
{
  //Ctor
}

//_______________________________________
AliMCAnalysisUtils::~AliMCAnalysisUtils() 
{
  // Remove all pointers.
  
  if (fJetsList)
  {
    fJetsList->Clear();
    delete fJetsList ;
  }     
}

//_____________________________________________________________________________________________
Int_t AliMCAnalysisUtils::CheckCommonAncestor(Int_t index1, Int_t index2, 
                                              const AliCaloTrackReader* reader, 
                                              Int_t & ancPDG, Int_t & ancStatus, 
                                              TLorentzVector & momentum, TVector3 & prodVertex) 
{
  // Check the first common ancestor of 2 clusters, given the most likely labels of the primaries generating such clusters.
  
  Int_t label1[100];
  Int_t label2[100];
  label1[0]= index1;
  label2[0]= index2;
  Int_t counter1 = 0;
  Int_t counter2 = 0;
  
  if(label1[0]==label2[0])
  {
    //printf("AliMCAnalysisUtils::CheckCommonAncestor() - Already the same label: %d\n",label1[0]);
    counter1=1;
    counter2=1;
  }
  else
  {
    if(reader->ReadAODMCParticles())
    {
      TClonesArray * mcparticles = reader->GetAODMCParticles();
      
      Int_t label=label1[0];
      if(label < 0) return -1;
      
      while(label > -1 && counter1 < 99)
      {
        counter1++;
        AliAODMCParticle * mom = (AliAODMCParticle *) mcparticles->At(label);
        if(mom)
        {
          label  = mom->GetMother() ;
          label1[counter1]=label;
        }
        //printf("\t counter %d, label %d\n", counter1,label);
      }
     
      //printf("Org label2=%d,\n",label2[0]);
      label=label2[0];
      if(label < 0) return -1;
      
      while(label > -1 && counter2 < 99)
      {
        counter2++;
        AliAODMCParticle * mom = (AliAODMCParticle *) mcparticles->At(label);
        if(mom)
        {
          label  = mom->GetMother() ;
          label2[counter2]=label;
        }
        //printf("\t counter %d, label %d\n", counter2,label);
      }
    }//AOD MC
    else
    { //Kine stack from ESDs
      AliStack * stack = reader->GetStack();
      
      Int_t label=label1[0];
      while(label > -1 && counter1 < 99)
      {
        counter1++;
        TParticle * mom = stack->Particle(label);
        if(mom)
        {
          label  = mom->GetFirstMother() ;
          label1[counter1]=label;
        }
        //printf("\t counter %d, label %d\n", counter1,label);
      }
      
      //printf("Org label2=%d,\n",label2[0]);
      
      label=label2[0];
      while(label > -1 && counter2 < 99)
      {
        counter2++;
        TParticle * mom = stack->Particle(label);
        if(mom)
        {
          label  = mom->GetFirstMother() ;
          label2[counter2]=label;
        }
        //printf("\t counter %d, label %d\n", counter2,label);
      }
    }// Kine stack from ESDs
  }//First labels not the same
  
//  if((counter1==99 || counter2==99) && fDebug >=0)
//    printf("AliMCAnalysisUtils::CheckCommonAncestor() - Genealogy too large c1: %d, c2= %d\n", counter1, counter2);
  //printf("CheckAncestor:\n");
  
  Int_t commonparents = 0;
  Int_t ancLabel = -1;
  //printf("counters %d %d \n",counter1, counter2);
  for (Int_t c1 = 0; c1 < counter1; c1++)
  {
    for (Int_t c2 = 0; c2 < counter2; c2++)
    {
      if(label1[c1]==label2[c2] && label1[c1]>-1)
      {
        ancLabel = label1[c1];
        commonparents++;
        
        if(reader->ReadAODMCParticles())
        {
          AliAODMCParticle * mom = (AliAODMCParticle *) reader->GetAODMCParticles()->At(label1[c1]);
          
          if (mom)
          {
            ancPDG    = mom->GetPdgCode();
            ancStatus = mom->GetStatus();
            momentum.SetPxPyPzE(mom->Px(),mom->Py(),mom->Pz(),mom->E());
            prodVertex.SetXYZ(mom->Xv(),mom->Yv(),mom->Zv());
          }
        }
        else
        {
          TParticle * mom = (reader->GetStack())->Particle(label1[c1]);
          
          if (mom)
          {
            ancPDG    = mom->GetPdgCode();
            ancStatus = mom->GetStatusCode();
            mom->Momentum(momentum);
            prodVertex.SetXYZ(mom->Vx(),mom->Vy(),mom->Vz());
          }
        }
        
        //First ancestor found, end the loops
        counter1=0;
        counter2=0;
      }//Ancestor found
    }//second cluster loop
  }//first cluster loop
  
  if(ancLabel < 0)
  {
    ancPDG    = -10000;
    ancStatus = -10000;
    momentum.SetXYZT(0,0,0,0);
    prodVertex.SetXYZ(-10,-10,-10);
  }
  
  return ancLabel;
}

//________________________________________________________________________________________
Int_t AliMCAnalysisUtils::CheckOrigin(const Int_t * label, Int_t nlabels,
                                      const AliCaloTrackReader* reader, Int_t calorimeter)
{
  // Play with the montecarlo particles if available.
  
  Int_t tag = 0;
  
  if( nlabels <= 0 )
  {
    AliWarning("No MC labels available, please check!!!");
    return kMCBadLabel;
  }
  
  TObjArray* arrayCluster = 0;
  if      ( calorimeter == AliCaloTrackReader::kEMCAL ) arrayCluster = reader->GetEMCALClusters();
  else if ( calorimeter == AliCaloTrackReader::kPHOS  ) arrayCluster = reader->GetPHOSClusters ();
  
  //Select where the information is, ESD-galice stack or AOD mcparticles branch
  if(reader->ReadStack()){
    tag = CheckOriginInStack(label, nlabels, reader->GetStack(), arrayCluster);
  }
  else if(reader->ReadAODMCParticles()){
    tag = CheckOriginInAOD(label, nlabels, reader->GetAODMCParticles(),arrayCluster);
  }
  
  return tag ;
}

//____________________________________________________________________________________________________
Int_t AliMCAnalysisUtils::CheckOrigin(Int_t label, const AliCaloTrackReader* reader, Int_t calorimeter)
{
  // Play with the montecarlo particles if available.
  
  Int_t tag = 0;
  
  if( label < 0 )
  {
    AliWarning("No MC labels available, please check!!!");
    return kMCBadLabel;
  }
  
  TObjArray* arrayCluster = 0;
  if      ( calorimeter == AliCaloTrackReader::kEMCAL ) arrayCluster = reader->GetEMCALClusters();
  else if ( calorimeter == AliCaloTrackReader::kPHOS  ) arrayCluster = reader->GetPHOSClusters();
  
  Int_t labels[]={label};
  
  //Select where the information is, ESD-galice stack or AOD mcparticles branch
  if(reader->ReadStack()){
    tag = CheckOriginInStack(labels, 1,reader->GetStack(),arrayCluster);
  }
  else if(reader->ReadAODMCParticles()){
    tag = CheckOriginInAOD(labels, 1,reader->GetAODMCParticles(),arrayCluster);
  }
  
  return tag ;
}	

//__________________________________________________________________________________________
Int_t AliMCAnalysisUtils::CheckOriginInStack(const Int_t *labels, Int_t nlabels,
                                             AliStack* stack, const TObjArray* arrayCluster)
{
  // Play with the MC stack if available. Tag particles depending on their origin.
  // Do same things as in CheckOriginInAOD but different input.
  
  //generally speaking, label is the MC label of a reconstructed
  //entity (track, cluster, etc) for which we want to know something 
  //about its heritage, but one can also use it directly with stack 
  //particles not connected to reconstructed entities
  
  if(!stack)
  {
    AliDebug(1,"Stack is not available, check analysis settings in configuration file, STOP!!");
    return -1;
  }
  
  Int_t tag = 0;
  Int_t label=labels[0];//Most significant particle contributing to the cluster
  
  if(label >= 0 && label < stack->GetNtrack())
  {
    //MC particle of interest is the "mom" of the entity
    TParticle * mom = stack->Particle(label);
    Int_t iMom     = label;
    Int_t mPdgSign = mom->GetPdgCode();
    Int_t mPdg     = TMath::Abs(mPdgSign);
    Int_t mStatus  = mom->GetStatusCode() ;
    Int_t iParent  = mom->GetFirstMother() ;
    
    //if( label < 8 && fMCGenerator != kBoxLike ) AliDebug(1,Form("AliMCAnalysisUtils::CheckOriginInStack() - Mother is parton %d",iParent));
    
    //GrandParent of the entity
    TParticle * parent = NULL;
    Int_t pPdg = -1;
    Int_t pStatus =-1;
    if(iParent >= 0)
    {
      parent = stack->Particle(iParent);
      
      if(parent)
      {
        pPdg = TMath::Abs(parent->GetPdgCode());
        pStatus = parent->GetStatusCode();  
      }
    }
    else AliDebug(1,Form("Parent with label %d",iParent));
    
    AliDebug(2,"Cluster most contributing mother and its parent:");
    AliDebug(2,Form("\t Mother label %d, pdg %d, status %d",iMom, mPdg, mStatus));
    AliDebug(2,Form("\t Parent label %d, pdg %d, status %d",iParent, pPdg, pStatus));
    
    //Check if "mother" of entity is converted, if not, get the first non converted mother
    if((mPdg == 22 || mPdg == 11) && (pPdg == 22 || pPdg == 11) && mStatus == 0)
    {
      SetTagBit(tag,kMCConversion);
      
      //Check if the mother is photon or electron with status not stable
      while ((pPdg == 22 || pPdg == 11) && mStatus != 1)
      {
        //Mother
        iMom     = mom->GetFirstMother();
        mom      = stack->Particle(iMom);
        mPdgSign = mom->GetPdgCode();
        mPdg     = TMath::Abs(mPdgSign);
        mStatus  = mom->GetStatusCode() ;
        iParent  = mom->GetFirstMother() ;
       
        //if(label < 8 ) AliDebug(1,Form("AliMCAnalysisUtils::CheckOriginInStack() - Mother is parton %d\n",iParent));
        
        //GrandParent
        if(iParent >= 0)
        {
          parent = stack->Particle(iParent);
          if(parent)
          {
            pPdg = TMath::Abs(parent->GetPdgCode());
            pStatus = parent->GetStatusCode();  
          }
        }
        else {// in case of gun/box simulations
          pPdg    = 0;
          pStatus = 0;
          break;
        }
      }//while
      
      AliDebug(2,"Converted photon/electron:");
      AliDebug(2,Form("\t Mother label %d, pdg %d, status %d",iMom, mPdg, mStatus));
      AliDebug(2,Form("\t Parent label %d, pdg %d, status %d",iParent, pPdg, pStatus));
      
    }//mother and parent are electron or photon and have status 0
    else if((mPdg == 22 || mPdg == 11) && mStatus == 0)
    {
      //Still a conversion but only one electron/photon generated. Just from hadrons but not decays.
      if(pPdg == 2112 ||  pPdg == 211  ||  pPdg == 321 ||
         pPdg == 2212 ||  pPdg == 130  ||  pPdg == 13 )
      {
        SetTagBit(tag,kMCConversion);
        iMom     = mom->GetFirstMother();
        mom      = stack->Particle(iMom);
        mPdgSign = mom->GetPdgCode();
        mPdg     = TMath::Abs(mPdgSign);
        
        AliDebug(2,"Converted hadron:");
        AliDebug(2,Form("\t Mother label %d, pdg %d, status %d",iMom, mPdg, mStatus));
        
      }//hadron converted
      
      //Comment for the next lines, we do not check the parent of the hadron for the moment.
      //iParent =  mom->GetFirstMother() ;
      //if(fDebug > 0 && label < 8 ) printf("AliMCAnalysisUtils::CheckOriginInStack() - Mother is parton %d\n",iParent);
      
      //GrandParent
      //if(iParent >= 0){
      //	parent = stack->Particle(iParent);
      //	pPdg = TMath::Abs(parent->GetPdgCode());
      //}
    }  	  
    // conversion into electrons/photons checked  	  
    
    //first check for typical charged particles
    if     (mPdg     ==    13) SetTagBit(tag,kMCMuon);
    else if(mPdg     ==   211) SetTagBit(tag,kMCPion);
    else if(mPdg     ==   321) SetTagBit(tag,kMCKaon);
    else if(mPdgSign ==  2212) SetTagBit(tag,kMCProton);
    else if(mPdgSign == -2212) SetTagBit(tag,kMCAntiProton);
    else if(mPdgSign ==  2112) SetTagBit(tag,kMCNeutron);
    else if(mPdgSign == -2112) SetTagBit(tag,kMCAntiNeutron);
    
    //check for pi0 and eta (shouldn't happen unless their decays were turned off)
    else if(mPdg == 111)
    {
      
      SetTagBit(tag,kMCPi0Decay);
      
      AliDebug(2,"First mother is directly pi0, not decayed by generator");
      
      CheckOverlapped2GammaDecay(labels,nlabels, iMom, stack, tag); //set to kMCPi0 if 2 gammas in same cluster
      
    }
    else if(mPdg == 221)
    {
      SetTagBit(tag,kMCEtaDecay);
      
      AliDebug(2,"First mother is directly eta, not decayed by generator");
      
      CheckOverlapped2GammaDecay(labels,nlabels, iMom, stack, tag); //set to kMCEta if 2 gammas in same cluster
    }
    //Photons  
    else if(mPdg == 22)
    {
      SetTagBit(tag,kMCPhoton);
      
      if(pPdg == 111)
      {
        SetTagBit(tag,kMCPi0Decay);
        
        AliDebug(2,"PYTHIA pi0 decay photon,  parent pi0 with status 11");
        
        CheckOverlapped2GammaDecay(labels,nlabels, iParent, stack, tag); //set to kMCPi0 if 2 gammas in same cluster
        // In case it did not merge, check if the decay companion is lost
        if(!CheckTagBit(tag, kMCPi0) && !CheckTagBit(tag,kMCDecayPairInCalo))
          CheckLostDecayPair(arrayCluster,iMom, iParent, stack, tag);

        //printf("Bit set is Merged %d, Pair in calo %d, Lost %d\n",CheckTagBit(tag, kMCPi0),CheckTagBit(tag,kMCDecayPairInCalo),CheckTagBit(tag,kMCDecayPairLost));
      }
      else if (pPdg == 221)
      {
        SetTagBit(tag, kMCEtaDecay);
        
        AliDebug(2,"PYTHIA eta decay photon,  parent pi0 with status 11");
        
        CheckOverlapped2GammaDecay(labels,nlabels, iParent, stack, tag);//set to kMCEta if 2 gammas in same cluster
        // In case it did not merge, check if the decay companion is lost
        if(!CheckTagBit(tag, kMCEta) && !CheckTagBit(tag,kMCDecayPairInCalo))
          CheckLostDecayPair(arrayCluster,iMom, iParent, stack, tag);
      }
      else if(mStatus == 1)
      { //undecayed particle
        if(fMCGenerator == kPythia)
        {
          if(iParent < 8 && iParent > 5)
          {//outgoing partons
            if(pPdg == 22) SetTagBit(tag,kMCPrompt);
            else           SetTagBit(tag,kMCFragmentation);
          }//Outgoing partons 
          else  if(iParent <= 5)
          {
            SetTagBit(tag, kMCISR); //Initial state radiation
          }
          else  SetTagBit(tag,kMCUnknown);
         }//PYTHIA
      
        else if(fMCGenerator == kHerwig)
        {
          if(pStatus < 197)
          {//Not decay
            while(1)
            {
              if(parent)
              {
                if(parent->GetFirstMother()<=5) break;
                iParent = parent->GetFirstMother();
                parent=stack->Particle(iParent);
                pStatus= parent->GetStatusCode();
                pPdg = TMath::Abs(parent->GetPdgCode());
              } else break;
            }//Look for the parton
            
            if(iParent < 8 && iParent > 5)
            {
              if(pPdg == 22) SetTagBit(tag,kMCPrompt);
              else           SetTagBit(tag,kMCFragmentation);
            }
            else SetTagBit(tag,kMCISR);//Initial state radiation
          }//Not decay
          else  SetTagBit(tag,kMCUnknown);
        }//HERWIG
      }
      else  SetTagBit(tag,kMCOtherDecay);
                  
    }//Mother Photon
    
    //Electron check.  Where did that electron come from?
    else if(mPdg == 11){ //electron
      if(pPdg == 11 && parent)
      {
        Int_t iGrandma = parent->GetFirstMother();
        if(iGrandma >= 0)
        {
          TParticle* gma = (TParticle*)stack->Particle(iGrandma); //get mother
          Int_t gPdg = TMath::Abs(gma->GetPdgCode());
          
          if      (gPdg == 23) { SetTagBit(tag,kMCZDecay); } //parent is Z-boson
          else if (gPdg == 24) { SetTagBit(tag,kMCWDecay); } //parent is W-boson
        }
      }
      
      SetTagBit(tag,kMCElectron);
      
      AliDebug(1,"Checking ancestors of electrons");
     
      if      (pPdg == 111) { SetTagBit(tag,kMCPi0Decay); SetTagBit(tag, kMCDecayDalitz) ; } //Pi0 Dalitz decay
      else if (pPdg == 221) { SetTagBit(tag,kMCEtaDecay); SetTagBit(tag, kMCDecayDalitz) ; } //Eta Dalitz decay
      else if((499 < pPdg && pPdg < 600)||(4999 < pPdg && pPdg < 6000)) { SetTagBit(tag,kMCEFromB); } //b-->e decay
      else if((399 < pPdg && pPdg < 500)||(3999 < pPdg && pPdg < 5000))
      { //check charm decay
        if(parent)
        {
          Int_t iGrandma = parent->GetFirstMother();
          if(iGrandma >= 0)
          {
            TParticle* gma = (TParticle*)stack->Particle(iGrandma); //get mother of charm
            Int_t gPdg = TMath::Abs(gma->GetPdgCode());
            if((499 < gPdg && gPdg < 600)||(4999 < gPdg && gPdg < 6000)) SetTagBit(tag,kMCEFromCFromB); //b-->c-->e
            else SetTagBit(tag,kMCEFromC); //c-->e
          }
          else SetTagBit(tag,kMCEFromC); //c-->e
        }//parent
      }
      else
      {
        //if it is not from any of the above, where is it from?
        if(pPdg > 10000) SetTagBit(tag,kMCUnknown);
        
        else SetTagBit(tag,kMCOtherDecay);
        
        //if(parent) AliDebug(1,Form("Status %d Electron from other origin: %s (pPdg = %d) %s (mpdg = %d)",mStatus,parent->GetName(),pPdg,mom->GetName(),mPdg));
      }
    }//electron check
    //Cluster was made by something else
    else
    {
      AliDebug(2,Form("\t Setting kMCUnknown for cluster from %s (pdg = %d, Parent pdg = %d)",
                      mom->GetName(),mPdg,pPdg));
      
      SetTagBit(tag,kMCUnknown);
    }
  }//Good label value
  else
  {// Bad label
    if(label < 0)
      AliWarning(Form("*** bad label or no stack ***:  label %d ", label));
    
    if(label >=  stack->GetNtrack())
      AliWarning(Form("*** large label ***:  label %d, n tracks %d", label, stack->GetNtrack()));
    
    SetTagBit(tag,kMCUnknown);
  }//Bad label
  
  return tag;
  
}


//________________________________________________________________________________________________________
Int_t AliMCAnalysisUtils::CheckOriginInAOD(const Int_t *labels, Int_t nlabels,
                                           const TClonesArray *mcparticles, const TObjArray* arrayCluster)
{
  // Play with the MCParticles in AOD if available. Tag particles depending on their origin.
  // Do same things as in CheckOriginInStack but different input.
  
  if(!mcparticles)
  {
    AliDebug(1,"AODMCParticles is not available, check analysis settings in configuration file!!");
    return -1;
  }
	
  Int_t tag = 0;
  Int_t label=labels[0];//Most significant particle contributing to the cluster
  
  Int_t nprimaries = mcparticles->GetEntriesFast();
  if(label >= 0 && label < nprimaries)
  {
    //Mother
    AliAODMCParticle * mom = (AliAODMCParticle *) mcparticles->At(label);
    Int_t iMom     = label;
    Int_t mPdgSign = mom->GetPdgCode();
    Int_t mPdg     = TMath::Abs(mPdgSign);
    Int_t iParent  = mom->GetMother() ;
    
    //if(label < 8 && fMCGenerator != kBoxLike) AliDebug(1,Form("Mother is parton %d\n",iParent));
    
    //GrandParent
    AliAODMCParticle * parent = NULL ;
    Int_t pPdg = -1;
    if(iParent >= 0)
    {
      parent = (AliAODMCParticle *) mcparticles->At(iParent);
      pPdg = TMath::Abs(parent->GetPdgCode());
    }
    else AliDebug(1,Form("Parent with label %d",iParent));
    
    AliDebug(2,"Cluster most contributing mother and its parent:");
    AliDebug(2,Form("\t Mother label %d, pdg %d, Primary? %d, Physical Primary? %d",iMom, mPdg, mom->IsPrimary(), mom->IsPhysicalPrimary()));
    AliDebug(2,Form("\t Parent label %d, pdg %d, Primary? %d, Physical Primary? %d",iParent, pPdg, parent?parent->IsPrimary():-1, parent?parent->IsPhysicalPrimary():-1));
    
    //Check if mother is converted, if not, get the first non converted mother
    if((mPdg == 22 || mPdg == 11) && (pPdg == 22 || pPdg == 11) && !mom->IsPrimary())
    {
      SetTagBit(tag,kMCConversion);
      
      //Check if the mother is photon or electron with status not stable
      while ((pPdg == 22 || pPdg == 11) && !mom->IsPhysicalPrimary())
      {
        //Mother
        iMom     = mom->GetMother();
        mom      = (AliAODMCParticle *) mcparticles->At(iMom);
        mPdgSign = mom->GetPdgCode();
        mPdg     = TMath::Abs(mPdgSign);
        iParent  = mom->GetMother() ;
        //if(label < 8 ) AliDebug(1, Form("AliMCAnalysisUtils::CheckOriginInAOD() - Mother is parton %d\n",iParent));
        
        //GrandParent
        if(iParent >= 0 && parent)
        {
          parent = (AliAODMCParticle *) mcparticles->At(iParent);
          pPdg = TMath::Abs(parent->GetPdgCode());
        }
        // printf("\t While Mother label %d, pdg %d, Primary? %d, Physical Primary? %d\n",iMom, mPdg, mom->IsPrimary(), mom->IsPhysicalPrimary());
        // printf("\t While Parent label %d, pdg %d, Primary? %d, Physical Primary? %d\n",iParent, pPdg, parent->IsPrimary(), parent->IsPhysicalPrimary()); 
        
      }//while	
      
      AliDebug(2,"AliMCAnalysisUtils::CheckOriginInAOD() - Converted photon/electron:");
      AliDebug(2,Form("\t Mother label %d, pdg %d, Primary? %d, Physical Primary? %d",iMom, mPdg, mom->IsPrimary(), mom->IsPhysicalPrimary()));
      AliDebug(2,Form("\t Parent label %d, pdg %d, Primary? %d, Physical Primary? %d",iParent, pPdg, parent?parent->IsPrimary():-1, parent?parent->IsPhysicalPrimary():-1));
      
    }//mother and parent are electron or photon and have status 0 and parent is photon or electron
    else if((mPdg == 22 || mPdg == 11) && !mom->IsPrimary())
    {
      //Still a conversion but only one electron/photon generated. Just from hadrons
      if(pPdg == 2112 ||  pPdg == 211 ||  pPdg == 321 ||  
         pPdg == 2212 ||  pPdg == 130 ||  pPdg == 13 )
      {
        SetTagBit(tag,kMCConversion);
        iMom     = mom->GetMother();
        mom      = (AliAODMCParticle *) mcparticles->At(iMom);
        mPdgSign = mom->GetPdgCode();
        mPdg     = TMath::Abs(mPdgSign);
        
       AliDebug(2,"AliMCAnalysisUtils::CheckOriginInAOD() - Converted hadron:");
       AliDebug(2,Form("\t Mother label %d, pdg %d, Primary? %d, Physical Primary? %d",iMom, mPdg, mom->IsPrimary(), mom->IsPhysicalPrimary()));
      
      }//hadron converted
      
      //Comment for next lines, we do not check the parent of the hadron for the moment.
      //iParent =  mom->GetMother() ;
      //if(fDebug > 0 && label < 8 ) printf("AliMCAnalysisUtils::CheckOriginInAOD() - Mother is parton %d\n",iParent);
      
      //GrandParent
      //if(iParent >= 0){
      //	parent = (AliAODMCParticle *) mcparticles->At(iParent);
      //	pPdg = TMath::Abs(parent->GetPdgCode());
      //}
    }  
    
    //printf("Final mother mPDG %d\n",mPdg);
    
    // conversion into electrons/photons checked  
    
    //first check for typical charged particles
    if     (mPdg     ==    13) SetTagBit(tag,kMCMuon);
    else if(mPdg     ==   211) SetTagBit(tag,kMCPion);
    else if(mPdg     ==   321) SetTagBit(tag,kMCKaon);
    else if(mPdgSign ==  2212) SetTagBit(tag,kMCProton);
    else if(mPdgSign ==  2112) SetTagBit(tag,kMCNeutron);
    else if(mPdgSign == -2212) SetTagBit(tag,kMCAntiProton);
    else if(mPdgSign == -2112) SetTagBit(tag,kMCAntiNeutron);
    
    //check for pi0 and eta (shouldn't happen unless their decays were turned off)
    else if(mPdg == 111)
    {
      SetTagBit(tag,kMCPi0Decay);
      
      AliDebug(2,"First mother is directly pi0, not decayed by generator");
      
      CheckOverlapped2GammaDecay(labels,nlabels, iMom, mcparticles, tag); //set to kMCPi0 if 2 gammas in same cluster
    }
    else if(mPdg == 221)
    {
      SetTagBit(tag,kMCEtaDecay);   
      
      AliDebug(2,"First mother is directly eta, not decayed by generator");
      
      CheckOverlapped2GammaDecay(labels,nlabels, iMom, mcparticles, tag); //set to kMCEta if 2 gammas in same cluster
    }
    //Photons  
    else if(mPdg == 22)
    {
      SetTagBit(tag,kMCPhoton);
      
      if(pPdg == 111)
      {
        SetTagBit(tag,kMCPi0Decay);
        
        AliDebug(2,"Generator pi0 decay photon");
        
        CheckOverlapped2GammaDecay(labels,nlabels, iParent, mcparticles, tag); //set to kMCPi0 if 2 gammas in same cluster
        // In case it did not merge, check if the decay companion is lost
        if(!CheckTagBit(tag, kMCPi0) && !CheckTagBit(tag,kMCDecayPairInCalo) && !CheckTagBit(tag,kMCDecayPairLost))
        {
          CheckLostDecayPair(arrayCluster,iMom, iParent, mcparticles, tag);
        }
        
        //printf("Bit set is Merged %d, Pair in calo %d, Lost %d\n",CheckTagBit(tag, kMCPi0),CheckTagBit(tag,kMCDecayPairInCalo),CheckTagBit(tag,kMCDecayPairLost));
      }
      else if (pPdg == 221)
      {
        SetTagBit(tag, kMCEtaDecay);
        
        AliDebug(2,"Generator eta decay photon");
        
        CheckOverlapped2GammaDecay(labels,nlabels, iParent, mcparticles, tag); //set to kMCEta if 2 gammas in same cluster
        // In case it did not merge, check if the decay companion is lost
        if(!CheckTagBit(tag, kMCEta) && !CheckTagBit(tag,kMCDecayPairInCalo))
          CheckLostDecayPair(arrayCluster,iMom, iParent, mcparticles, tag);
      }
      else if( mom->IsPhysicalPrimary() && ( fMCGenerator == kPythia || fMCGenerator == kHerwig ) ) //undecayed particle
      {
        if(iParent < 8 && iParent > 5 )
        {//outgoing partons
          if(pPdg == 22) SetTagBit(tag,kMCPrompt);
          else SetTagBit(tag,kMCFragmentation);
        }//Outgoing partons
        else if( iParent <= 5 && ( fMCGenerator == kPythia || fMCGenerator == kHerwig ) )
        {
          SetTagBit(tag, kMCISR); //Initial state radiation
        }
        else SetTagBit(tag,kMCUnknown);
      }//Physical primary
      else SetTagBit(tag,kMCOtherDecay);

    }//Mother Photon
    
    //Electron check.  Where did that electron come from?
    else if(mPdg == 11)
    { //electron
      if(pPdg == 11 && parent)
      {
        Int_t iGrandma = parent->GetMother();
        if(iGrandma >= 0)
        {
          AliAODMCParticle* gma = (AliAODMCParticle*)mcparticles->At(iGrandma);
          Int_t gPdg = TMath::Abs(gma->GetPdgCode());
          
          if      (gPdg == 23) { SetTagBit(tag,kMCZDecay); } //parent is Z-boson
          else if (gPdg == 24) { SetTagBit(tag,kMCWDecay); } //parent is W-boson
        }
      }
      
      SetTagBit(tag,kMCElectron);
      
      AliDebug(1,"Checking ancestors of electrons");
      
      if      (pPdg == 111) { SetTagBit(tag,kMCPi0Decay); SetTagBit(tag,kMCDecayDalitz);} //Pi0 Dalitz decay
      else if (pPdg == 221) { SetTagBit(tag,kMCEtaDecay); SetTagBit(tag,kMCDecayDalitz);} //Eta Dalitz decay
      else if((499 < pPdg && pPdg < 600)||(4999 < pPdg && pPdg < 6000)) { SetTagBit(tag,kMCEFromB);} //b-hadron decay
      else if((399 < pPdg && pPdg < 500)||(3999 < pPdg && pPdg < 5000))
      { //c-hadron decay check
        if(parent)
        {
          Int_t iGrandma = parent->GetMother();
          if(iGrandma >= 0)
          {
            AliAODMCParticle* gma = (AliAODMCParticle*)mcparticles->At(iGrandma); //charm's mother
            Int_t gPdg = TMath::Abs(gma->GetPdgCode());
            if((499 < gPdg && gPdg < 600)||(4999 < gPdg && gPdg < 6000)) SetTagBit(tag,kMCEFromCFromB); //b-->c-->e decay
            else SetTagBit(tag,kMCEFromC); //c-hadron decay
          }
          else SetTagBit(tag,kMCEFromC); //c-hadron decay
        }//parent
      } else
      { //prompt or other decay
        TParticlePDG* foo = TDatabasePDG::Instance()->GetParticle(pPdg);
        TParticlePDG* foo1 = TDatabasePDG::Instance()->GetParticle(mPdg);
        
        AliDebug(1,Form("Electron from other origin: %s (pPdg = %d) %s (mPdg = %d)",foo->GetName(), pPdg,foo1->GetName(),mPdg));
        
        if(pPdg > 10000) SetTagBit(tag,kMCUnknown);
        else             SetTagBit(tag,kMCOtherDecay);
      }      
    }//electron check
    //cluster was made by something else
    else
    {
      AliDebug(1,Form("\t Setting kMCUnknown for cluster with pdg = %d, Parent pdg = %d",mPdg,pPdg));
      SetTagBit(tag,kMCUnknown);
    }
  }//Good label value
  else
  {//Bad label
    if(label < 0)
      AliWarning(Form("*** bad label or no mcparticles ***:  label %d", label));
    
    if(label >=  mcparticles->GetEntriesFast())
      AliWarning(Form("*** large label ***:  label %d, n tracks %d", label, mcparticles->GetEntriesFast()));
  
    SetTagBit(tag,kMCUnknown);
    
  }//Bad label
  
  return tag;
  
}

//_________________________________________________________________________________________
void AliMCAnalysisUtils::CheckOverlapped2GammaDecay(const Int_t *labels,    Int_t nlabels,
                                                    Int_t mesonIndex, AliStack *stack,
                                                    Int_t &tag)
{
  // Check if cluster is formed from the contribution of 2 decay photons from pi0 or eta. Input in stack.
  
  if(labels[0] < 0 || labels[0] > stack->GetNtrack() || nlabels <= 1)
  {
    AliDebug(2,Form("Exit : label[0] %d, n primaries %d, nlabels %d",labels[0],stack->GetNtrack(), nlabels));
    return;
  }
  
  TParticle * meson = stack->Particle(mesonIndex);
  Int_t mesonPdg    = meson->GetPdgCode();
  if(mesonPdg!=111 && mesonPdg!=221)
  {
    AliWarning(Form("Wrong pi0/eta PDG : %d",mesonPdg));
    return;
  }
  
  AliDebug(2,Form("%s, label %d",meson->GetName(), mesonIndex));
  
  //Check if meson decayed into 2 daughters or if both were kept.
  if(meson->GetNDaughters() != 2)
  {
    AliDebug(2,Form("Not overalapped. Number of daughters is %d, not 2",meson->GetNDaughters()));
    return;
  }
  
  //Get the daughters
  Int_t iPhoton0 = meson->GetDaughter(0);
  Int_t iPhoton1 = meson->GetDaughter(1);
  TParticle *photon0 = stack->Particle(iPhoton0);
  TParticle *photon1 = stack->Particle(iPhoton1);
  
  //Check if both daughters are photons
  if(photon0->GetPdgCode() != 22 || photon1->GetPdgCode()!=22)
  {
    AliDebug(2,Form("Not overalapped. PDG:  daughter 1 = %d, of daughter 2 = %d",photon0->GetPdgCode(),photon1->GetPdgCode()));
    return;
  }
  
  AliDebug(2,Form("Daughter labels : photon0 = %d, photon1 = %d",iPhoton0,iPhoton1));
  
  //Check if both photons contribute to the cluster
  Bool_t okPhoton0 = kFALSE;
  Bool_t okPhoton1 = kFALSE;
  
  AliDebug(3,"Labels loop:");
  
  Bool_t conversion = kFALSE;
  
  for(Int_t i = 0; i < nlabels; i++)
  {
    AliDebug(3,Form("\t  at begin:label %d/%d: %d, ok? photon1 %d, photon2 %d", i+1, nlabels, labels[i], okPhoton0, okPhoton1));
    
    //If we already found both, break the loop
    if(okPhoton0 && okPhoton1) break;
    
    Int_t index = labels[i];
    if      (iPhoton0 == index)
    {
      okPhoton0 = kTRUE;
      continue;
    }
    else if (iPhoton1 == index)
    {
      okPhoton1 = kTRUE;
      continue;
    }
    
    //Trace back the mother in case it was a conversion
    
    if(index >= stack->GetNtrack())
    {
      AliWarning(Form("Particle index %d larger than size of list %d!!",index,stack->GetNtrack()));
      continue;
    }
    
    TParticle * daught = stack->Particle(index);
    Int_t tmpindex = daught->GetFirstMother();		
    
    AliDebug(3,Form("\t Conversion? : mother %d",tmpindex));
    
    while(tmpindex>=0)
    {
      //MC particle of interest is the mother
      AliDebug(3,Form("\t \t parent index %d",tmpindex));
      daught   = stack->Particle(tmpindex);
      if      (iPhoton0 == tmpindex)
      {
        conversion = kTRUE;
        okPhoton0  = kTRUE;
        break;
      }
      else if (iPhoton1 == tmpindex)
      {
        conversion = kTRUE;
        okPhoton1  = kTRUE;
        break;
      }
      
      tmpindex = daught->GetFirstMother();
      
    }//While to check if pi0/eta daughter was one of these contributors to the cluster
    
    //if(i == 0 && (!okPhoton0 && !okPhoton1))
    //  AliDebug(1,Form("Something happens, first label should be from a photon decay!"));
    
  }//loop on list of labels
  
  //If both photons contribute tag as the corresponding meson.
  if(okPhoton0 && okPhoton1)
  {
    AliDebug(2,Form("%s OVERLAPPED DECAY", meson->GetName()));
    
    if(!CheckTagBit(tag,kMCConversion) && conversion) SetTagBit(tag,kMCConversion) ;
    
    if(mesonPdg == 111) SetTagBit(tag,kMCPi0);
    else                SetTagBit(tag,kMCEta);
  }
  
}	

//________________________________________________________________________________________________________
void AliMCAnalysisUtils::CheckOverlapped2GammaDecay(const Int_t *labels, Int_t nlabels, Int_t mesonIndex,
                                                    const TClonesArray *mcparticles, Int_t & tag   )
{
  // Check if cluster is formed from the contribution of 2 decay photons from pi0 or eta. Input in AODMCParticles.
  
  if(labels[0] < 0 || labels[0] > mcparticles->GetEntriesFast() || nlabels <= 1)
  {
    AliDebug(2,Form("Exit : label[0] %d, n primaries %d, nlabels %d",labels[0],mcparticles->GetEntriesFast(), nlabels));
    return;
  }
  
  AliAODMCParticle * meson = (AliAODMCParticle *) mcparticles->At(mesonIndex);
  Int_t mesonPdg = meson->GetPdgCode();
  if(mesonPdg != 111 && mesonPdg != 221)
  {
    AliWarning(Form("Wrong pi0/eta PDG : %d",mesonPdg));
    return;
  }
  
  AliDebug(2,Form("pdg %d, label %d, ndaughters %d", mesonPdg, mesonIndex, meson->GetNDaughters()));
  
  //Get the daughters
  if(meson->GetNDaughters() != 2)
  {
    AliDebug(2,Form("Not overalapped. Number of daughters is %d, not 2",meson->GetNDaughters()));
    return;
  }
  
  Int_t iPhoton0 = meson->GetDaughter(0);
  Int_t iPhoton1 = meson->GetDaughter(1);
  //if((iPhoton0 == -1) || (iPhoton1 == -1)){
  //	if(fDebug > 2) 
  //		printf("AliMCAnalysisUtils::CheckOverlapped2GammaDecay(AOD) - Exit : Not overlapped. At least a daughter do not exists : d1 %d, d2 %d \n", iPhoton0, iPhoton1);
  //	return;
  //}	
  AliAODMCParticle *photon0 = (AliAODMCParticle *) mcparticles->At(iPhoton0);
  AliAODMCParticle *photon1 = (AliAODMCParticle *) mcparticles->At(iPhoton1);
    
  //Check if both daughters are photons
  if(photon0->GetPdgCode() != 22 && photon1->GetPdgCode()!=22)
  {
    AliWarning(Form("Not overlapped. PDG:  daughter 1 = %d, of daughter 2 = %d",photon0->GetPdgCode(),photon1->GetPdgCode()));
    return;
  }
  
  AliDebug(2,Form("Daughter labels : photon0 = %d, photon1 = %d",iPhoton0,iPhoton1));
  
  //Check if both photons contribute to the cluster
  Bool_t okPhoton0 = kFALSE;
  Bool_t okPhoton1 = kFALSE;
  
  AliDebug(3,"Labels loop:");
  
  Bool_t conversion = kFALSE;
  
  for(Int_t i = 0; i < nlabels; i++)
  {
    AliDebug(3, Form("\t label %d/%d: %d, ok? %d, %d", i, nlabels, labels[i], okPhoton0, okPhoton1));
    
    if(labels[i]<0) continue;
    
    //If we already found both, break the loop
    if(okPhoton0 && okPhoton1) break;
    
    Int_t index = 	labels[i];
    if      (iPhoton0 == index)
    {
      okPhoton0 = kTRUE;
      continue;
    }
    else if (iPhoton1 == index)
    {
      okPhoton1 = kTRUE;
      continue;
    }
    
    //Trace back the mother in case it was a conversion
    
    if(index >= mcparticles->GetEntriesFast())
    {
      AliWarning(Form("Particle index %d larger than size of list %d!!",index,mcparticles->GetEntriesFast()));
      continue;
    }
    
    AliAODMCParticle * daught = (AliAODMCParticle*) mcparticles->At(index);
    Int_t tmpindex = daught->GetMother();
    AliDebug(3,Form("Conversion? : mother %d",tmpindex));
    
    while(tmpindex>=0){
      
      //MC particle of interest is the mother
      AliDebug(3,Form("\t parent index %d",tmpindex));
      daught   = (AliAODMCParticle*) mcparticles->At(tmpindex);
      //printf("tmpindex %d\n",tmpindex);
      if      (iPhoton0 == tmpindex)
      {
        conversion = kTRUE;
        okPhoton0  = kTRUE;
        break;
      }
      else if (iPhoton1 == tmpindex)
      {
        conversion = kTRUE;
        okPhoton1  = kTRUE;
        break;
      }
      
      tmpindex = daught->GetMother();
      
    }//While to check if pi0/eta daughter was one of these contributors to the cluster
    
    //if(i == 0 && (!okPhoton0 && !okPhoton1)) AliDebug(1,"Something happens, first label should be from a photon decay!");
    
  }//loop on list of labels
  
  //If both photons contribute tag as the corresponding meson.
  if(okPhoton0 && okPhoton1)
  {
    AliDebug(2,Form("%s OVERLAPPED DECAY",(TDatabasePDG::Instance()->GetParticle(mesonPdg))->GetName()));
    
    if(!CheckTagBit(tag,kMCConversion) && conversion)
    {
      AliDebug(2,"Second decay photon produced a conversion");
      SetTagBit(tag,kMCConversion) ;
    }
    
    if(mesonPdg == 111) SetTagBit(tag,kMCPi0);
    else                SetTagBit(tag,kMCEta);
  }	
  
}

//______________________________________________________________________________________________________
void    AliMCAnalysisUtils::CheckLostDecayPair(const TObjArray* arrayCluster,   Int_t iMom, Int_t iParent,
                                               AliStack * stack,                Int_t & tag)
{
  // Check on ESDs if the current decay photon has the second photon companion lost.
  
  if(!arrayCluster || iMom < 0 || iParent < 0|| !stack) return;
  
  TParticle * parent= stack->Particle(iParent);
  
  if(parent->GetNDaughters()!=2)
  {
    SetTagBit(tag, kMCDecayPairLost);
    return ;
  }
  
  Int_t pairLabel = -1;
  if     ( iMom != parent->GetDaughter(0) ) pairLabel = parent->GetDaughter(0);
  else if( iMom != parent->GetDaughter(1) ) pairLabel = parent->GetDaughter(1);
  
  if(pairLabel<0)
  {
    SetTagBit(tag, kMCDecayPairLost);
    return ;
  }
  
  for(Int_t iclus = 0; iclus < arrayCluster->GetEntriesFast(); iclus++)
  {
    AliVCluster * cluster = (AliVCluster*) arrayCluster->At(iclus);
    for(UInt_t ilab = 0; ilab< cluster->GetNLabels(); ilab++)
    {
      Int_t label = cluster->GetLabels()[ilab];
      if(label==pairLabel)
      {
        SetTagBit(tag, kMCDecayPairInCalo);
        return ;
      }
      else if(label== iParent || label== iMom)
      {
        continue;
      }
      else // check the ancestry
      {
        TParticle * mother = stack->Particle(label);
        Int_t momPDG = TMath::Abs(mother->GetPdgCode());
        if(momPDG!=11 && momPDG!=22) continue;
        
        //Check if "mother" of entity is converted, if not, get the first non converted mother
        Int_t iParentClus = mother->GetFirstMother();
        if(iParentClus < 0) continue;
        
        TParticle * parentClus = stack->Particle(iParentClus);
        if(!parentClus) continue;
        
        Int_t parentClusPDG    = TMath::Abs(parentClus->GetPdgCode());
        Int_t parentClusStatus = parentClus->GetStatusCode();
        
        if( parentClusPDG != 22 && parentClusPDG != 11 && parentClusStatus != 0) continue;
        
        //printf("Conversion\n");
        
        //Check if the mother is photon or electron with status not stable
        while ((parentClusPDG == 22 || parentClusPDG == 11) && parentClusStatus != 1)
        {
          //New Mother
          label            = iParentClus;
          momPDG           = parentClusPDG;
          
          iParentClus      = parentClus->GetFirstMother();
          if(iParentClus < 0) break;
          
          parentClus       = stack->Particle(iParentClus);
          if(!parentClus) break;
          
          parentClusPDG    = TMath::Abs(parentClus->GetPdgCode());
          parentClusStatus = parentClus->GetStatusCode() ;
        }//while
    
        if((momPDG == 22 || parentClusPDG ==22) && (label==pairLabel || iParentClus == pairLabel))
        {
          SetTagBit(tag, kMCDecayPairInCalo);
          //printf("Conversion is paired\n");
          return ;
        }
        else continue;
        
      }
    }
  } // cluster loop
  
  SetTagBit(tag, kMCDecayPairLost);

}

//______________________________________________________________________________________________________
void    AliMCAnalysisUtils::CheckLostDecayPair(const TObjArray   * arrayCluster,Int_t iMom, Int_t iParent,
                                               const TClonesArray* mcparticles, Int_t & tag)
{
  // Check on AODs if the current decay photon has the second photon companion lost.

  if(!arrayCluster || iMom < 0 || iParent < 0|| !mcparticles) return;

  AliAODMCParticle * parent = (AliAODMCParticle*) mcparticles->At(iParent);
  
  //printf("*** Check label %d with parent %d\n",iMom, iParent);
  
  if(parent->GetNDaughters()!=2)
  {
    SetTagBit(tag, kMCDecayPairLost);
    //printf("\t ndaugh = %d\n",parent->GetNDaughters());
    return ;
  }
  
  Int_t pairLabel = -1;
  if     ( iMom != parent->GetDaughter(0) ) pairLabel = parent->GetDaughter(0);
  else if( iMom != parent->GetDaughter(1) ) pairLabel = parent->GetDaughter(1);
  
  if(pairLabel<0)
  {
    //printf("\t pair Label not found = %d\n",pairLabel);
    SetTagBit(tag, kMCDecayPairLost);
    return ;
  }
  
  //printf("\t *** find pair %d\n",pairLabel);
  
  for(Int_t iclus = 0; iclus < arrayCluster->GetEntriesFast(); iclus++)
  {
    AliVCluster * cluster = (AliVCluster*) arrayCluster->At(iclus);
    //printf("\t \t ** Cluster %d, nlabels %d\n",iclus,cluster->GetNLabels());
    for(UInt_t ilab = 0; ilab< cluster->GetNLabels(); ilab++)
    {
      Int_t label = cluster->GetLabels()[ilab];
      
      //printf("\t \t label %d\n",label);

      if(label==pairLabel)
      {
        //printf("\t \t Pair found\n");
        SetTagBit(tag, kMCDecayPairInCalo);
        return ;
      }
      else if(label== iParent || label== iMom)
      {
        //printf("\t \t skip\n");
        continue;
      }
      else // check the ancestry
      {
        AliAODMCParticle * mother = (AliAODMCParticle*) mcparticles->At(label);
        Int_t momPDG = TMath::Abs(mother->GetPdgCode());
        if(momPDG!=11 && momPDG!=22)
        {
          //printf("\t \t skip, pdg %d\n",momPDG);
          continue;
        }
        
        //Check if "mother" of entity is converted, if not, get the first non converted mother
        Int_t iParentClus = mother->GetMother();
        if(iParentClus < 0) continue;
        
        AliAODMCParticle * parentClus =  (AliAODMCParticle*) mcparticles->At(iParentClus);
        if(!parentClus) continue;
        
        Int_t parentClusPDG    = TMath::Abs(parentClus->GetPdgCode());
        Int_t parentClusStatus = parentClus->GetStatus();
        
        if( parentClusPDG != 22 && parentClusPDG != 11 && parentClusStatus != 0)
        {
          //printf("\t \t skip, not a conversion, parent: pdg %d, status %d\n",parentClusPDG,parentClusStatus);
          continue;
        }
        
        //printf("\t \t Conversion\n");
        
        //Check if the mother is photon or electron with status not stable
        while ((parentClusPDG == 22 || parentClusPDG == 11) && parentClusStatus != 1)
        {
          //New Mother
          label            = iParentClus;
          momPDG           = parentClusPDG;
          
          iParentClus      = parentClus->GetMother();
          if(iParentClus < 0) break;
          
          parentClus       =  (AliAODMCParticle*) mcparticles->At(iParentClus);
          if(!parentClus) break;
          
          parentClusPDG    = TMath::Abs(parentClus->GetPdgCode());
          parentClusStatus = parentClus->GetStatus() ;
        }//while
        
        if((momPDG == 22 || parentClusPDG ==22) && (label==pairLabel || iParentClus == pairLabel))
        {
          SetTagBit(tag, kMCDecayPairInCalo);
          //printf("\t \t Conversion is paired: mom %d, parent %d\n",label,iParentClus);
          return ;
        }
        else
        {
          //printf("\t \t Skip, finally label %d, pdg %d, parent label %d, pdg %d, status %d\n",label,momPDG,iParentClus,parentClusPDG,parentClusStatus);
          continue;
        }
        
      }
    }
  } // cluster loop

  
  SetTagBit(tag, kMCDecayPairLost);
  
}

//_____________________________________________________________________
TList * AliMCAnalysisUtils::GetJets(const AliCaloTrackReader * reader)
{
  // Return list of jets (TParticles) and index of most likely parton that originated it.
  
  AliStack * stack = reader->GetStack();
  Int_t iEvent = reader->GetEventNumber();	
  AliGenEventHeader * geh = reader->GetGenEventHeader();
  if(fCurrentEvent!=iEvent){
    fCurrentEvent = iEvent;
    fJetsList = new TList;
    Int_t nTriggerJets = 0;
    Float_t tmpjet[]={0,0,0,0};
		
    //printf("Event %d %d\n",fCurrentEvent,iEvent);
    //Get outgoing partons
    if(stack->GetNtrack() < 8) return fJetsList;
    TParticle * parton1 =  stack->Particle(6);
    TParticle * parton2 =  stack->Particle(7);
    
    AliDebug(2,Form("Parton 6 : %s, pt %2.2f,E %2.2f, phi %2.2f, eta %2.2f",
                    parton1->GetName(),parton1->Pt(),parton1->Energy(),parton1->Phi()*TMath::RadToDeg(),parton1->Eta()));
    AliDebug(2,Form("Parton 7 : %s, pt %2.2f,E %2.2f, phi %2.2f, eta %2.2f",
                    parton2->GetName(),parton2->Pt(),parton2->Energy(),parton2->Phi()*TMath::RadToDeg(),parton2->Eta()));
    
    // 		//Trace the jet from the mother parton
    // 		Float_t pt  = 0;
    // 		Float_t pt1 = 0;
    // 		Float_t pt2 = 0;
    // 		Float_t e   = 0;
    // 		Float_t e1  = 0;
    // 		Float_t e2  = 0;
    // 		TParticle * tmptmp = new TParticle;
    // 		for(Int_t i = 0; i< stack->GetNprimary(); i++){
    // 			tmptmp = stack->Particle(i);
		
    // 			if(tmptmp->GetStatusCode() == 1){
    // 				pt = tmptmp->Pt();
    // 				e =  tmptmp->Energy();			
    // 				Int_t imom = tmptmp->GetFirstMother();
    // 				Int_t imom1 = 0;
    // 				//printf("1st imom %d\n",imom);
    // 				while(imom > 5){
    // 					imom1=imom;
    // 					tmptmp = stack->Particle(imom);
    // 					imom = tmptmp->GetFirstMother();
    // 					//printf("imom %d	\n",imom);
    // 				}
    // 				//printf("Last imom %d %d\n",imom1, imom);
    // 				if(imom1 == 6) {
    // 					pt1+=pt;
    // 					e1+=e;				
    // 				}
    // 				else if (imom1 == 7){
    // 					pt2+=pt;
    // 					e2+=e;					}
    // 			}// status 1
    
    // 		}// for
		
    // 		printf("JET 1, pt %2.2f, e %2.2f; JET 2, pt %2.2f, e %2.2f \n",pt1,e1,pt2,e2);
		
		//Get the jet, different way for different generator
		//PYTHIA
    if(fMCGenerator == kPythia)
    {
      TParticle * jet =  0x0;
      AliGenPythiaEventHeader* pygeh= (AliGenPythiaEventHeader*) geh;
      nTriggerJets =  pygeh->NTriggerJets();
      AliDebug(2,Form("PythiaEventHeader: Njets: %d",nTriggerJets));
      
      for(Int_t i = 0; i< nTriggerJets; i++)
      {
        pygeh->TriggerJet(i, tmpjet);
        jet = new TParticle(94, 21, -1, -1, -1, -1, tmpjet[0],tmpjet[1],tmpjet[2],tmpjet[3], 0,0,0,0);
        //Assign an outgoing parton as mother
        Float_t phidiff1 = TMath::Abs(jet->Phi()-parton1->Phi());		
        Float_t phidiff2 = TMath::Abs(jet->Phi()-parton2->Phi());
        if(phidiff1 > phidiff2) jet->SetFirstMother(7);
        else  jet->SetFirstMother(6);
        //jet->Print();
        AliDebug(1,Form("PYTHIA Jet %d: mother %d, pt %2.2f,E %2.2f, phi %2.2f, eta %2.2f",
                        i, jet->GetFirstMother(),jet->Pt(),jet->Energy(),jet->Phi()*TMath::RadToDeg(),jet->Eta()));
        fJetsList->Add(jet);			
      }
    }//Pythia triggered jets
    //HERWIG
    else if (fMCGenerator == kHerwig)
    {
      Int_t pdg = -1;		
      //Check parton 1
      TParticle * tmp = parton1;
      if(parton1->GetPdgCode()!=22)
      {
        while(pdg != 94){
          if(tmp->GetFirstDaughter()==-1) return fJetsList;
          tmp = stack->Particle(tmp->GetFirstDaughter());
          pdg = tmp->GetPdgCode();
        }//while
        
        //Add found jet to list
        TParticle *jet1 = new TParticle(*tmp);
        jet1->SetFirstMother(6);
        fJetsList->Add(jet1);
        //printf("jet 1:  first daughter %d, last daughter %d\n", tmp->GetFirstDaughter(), tmp->GetLastDaughter());
        //tmp = stack->Particle(tmp->GetFirstDaughter());
        //tmp->Print();
        //jet1->Print();
        AliDebug(1,Form("HERWIG Jet 1: mother %d, status %d, pt %2.2f,E %2.2f, phi %2.2f, eta %2.2f",
                        jet1->GetFirstMother(),jet1->GetStatusCode(),jet1->Pt(),jet1->Energy(),jet1->Phi()*TMath::RadToDeg(),jet1->Eta()));
      }//not photon
      
      //Check parton 2
      pdg = -1;
      tmp = parton2;
      if(parton2->GetPdgCode()!=22)
      {
        while(pdg != 94)
        {
          if(tmp->GetFirstDaughter()==-1) return fJetsList;
          tmp = stack->Particle(tmp->GetFirstDaughter());
          pdg = tmp->GetPdgCode();
        }//while
        
        //Add found jet to list
        TParticle *jet2 = new TParticle(*tmp);
        jet2->SetFirstMother(7);
        fJetsList->Add(jet2);
        //jet2->Print();
        AliDebug(2,Form("HERWIG Jet 2: mother %d, status %d, pt %2.2f,E %2.2f, phi %2.2f, eta %2.2f",
                        jet2->GetFirstMother(),jet2->GetStatusCode(),jet2->Pt(),jet2->Energy(),jet2->Phi()*TMath::RadToDeg(),jet2->Eta()));
        //Int_t first =  tmp->GetFirstDaughter();
        //Int_t last  =  tmp->GetLastDaughter();
        //printf("jet 2:  first daughter %d, last daughter %d, pdg %d\n",first, last, tmp->GetPdgCode());
				//	for(Int_t d = first ; d < last+1; d++){
        //						tmp = stack->Particle(d);
        //						if(i == tmp->GetFirstMother())
        //							printf("Daughter n %d, Mother %d, name %s, status %d, pT %2.2f,E %2.2f, phi %2.2f, eta %2.2f \n",
        //							d,tmp->GetFirstMother(), tmp->GetName(), tmp->GetStatusCode(),tmp->Pt(),tmp->Energy(),tmp->Phi()*TMath::RadToDeg(),tmp->Eta());			   
        //			   }
        //tmp->Print();
      }//not photon
    }//Herwig generated jets
  }
  
  return fJetsList;
}


//__________________________________________________________________________________________________________
TLorentzVector AliMCAnalysisUtils::GetDaughter(Int_t idaugh, Int_t label,
                                               const AliCaloTrackReader* reader,
                                               Int_t & pdg, Int_t & status, Bool_t & ok, Int_t & daughlabel)
{
  // Return the kinematics of the particle that generated the signal, its pdg and its status and its label mother.
  fDaughMom.SetPxPyPzE(0,0,0,0);
  
  if(reader->ReadStack())
  {
    if(!reader->GetStack())
    {
      AliWarning("Stack is not available, check analysis settings in configuration file!!");
      
      ok=kFALSE;
      return fDaughMom;
    }
    
    Int_t nprimaries = reader->GetStack()->GetNtrack();
    if(label >= 0 && label < nprimaries)
    {
      TParticle * momP = reader->GetStack()->Particle(label);
      daughlabel       = momP->GetDaughter(idaugh);
      
      if(daughlabel < 0 || daughlabel >= nprimaries)
      {
        ok = kFALSE;
        return fDaughMom;
      }
      
      TParticle * daughP = reader->GetStack()->Particle(daughlabel);
      daughP->Momentum(fDaughMom);
      pdg    = daughP->GetPdgCode();
      status = daughP->GetStatusCode();
    }
    else
    {
      ok = kFALSE;
      return fDaughMom;
    }
  }
  else if(reader->ReadAODMCParticles())
  {
    TClonesArray* mcparticles = reader->GetAODMCParticles();
    if(!mcparticles)
    {
      AliWarning("AODMCParticles is not available, check analysis settings in configuration file!!");
      
      ok=kFALSE;
      return fDaughMom;
    }
    
    Int_t nprimaries = mcparticles->GetEntriesFast();
    if(label >= 0 && label < nprimaries)
    {
      AliAODMCParticle * momP = (AliAODMCParticle *) mcparticles->At(label);
      daughlabel              = momP->GetDaughter(idaugh);
      
      if(daughlabel < 0 || daughlabel >= nprimaries)
      {
        ok = kFALSE;
        return fDaughMom;
      }
      
      AliAODMCParticle * daughP = (AliAODMCParticle *) mcparticles->At(daughlabel);
      fDaughMom.SetPxPyPzE(daughP->Px(),daughP->Py(),daughP->Pz(),daughP->E());
      pdg    = daughP->GetPdgCode();
      status = daughP->GetStatus();
    }
    else
    {
      ok = kFALSE;
      return fDaughMom;
    }
  }
  
  ok = kTRUE;
  
  return fDaughMom;
}

//______________________________________________________________________________________________________
TLorentzVector AliMCAnalysisUtils::GetMother(Int_t label, const AliCaloTrackReader* reader, Bool_t & ok)
{
  // Return the kinematics of the particle that generated the signal.
  
  Int_t pdg = -1; Int_t status = -1; Int_t momlabel = -1;
  return GetMother(label,reader,pdg,status, ok,momlabel);
}

//_________________________________________________________________________________________
TLorentzVector AliMCAnalysisUtils::GetMother(Int_t label, const AliCaloTrackReader* reader,
                                             Int_t & pdg, Int_t & status, Bool_t & ok)
{
  // Return the kinematics of the particle that generated the signal.
  
  Int_t momlabel = -1;
  return GetMother(label,reader,pdg,status, ok,momlabel);
}

//______________________________________________________________________________________________________
TLorentzVector AliMCAnalysisUtils::GetMother(Int_t label, const AliCaloTrackReader* reader, 
                                             Int_t & pdg, Int_t & status, Bool_t & ok, Int_t & momlabel)
{
  // Return the kinematics of the particle that generated the signal, its pdg and its status and its label mother.
  
  fMotherMom.SetPxPyPzE(0,0,0,0);
  
  if(reader->ReadStack())
  {
    if(!reader->GetStack()) 
    {
      AliWarning("Stack is not available, check analysis settings in configuration file, STOP!!");
     
      ok=kFALSE;
      return fMotherMom;
    }
    if(label >= 0 && label < reader->GetStack()->GetNtrack())
    {
      TParticle * momP = reader->GetStack()->Particle(label);
      momP->Momentum(fMotherMom);
      pdg      = momP->GetPdgCode();
      status   = momP->GetStatusCode();
      momlabel = momP->GetFirstMother();
    } 
    else 
    {
      ok = kFALSE;
      return fMotherMom;
    }
  }
  else if(reader->ReadAODMCParticles())
  {
    TClonesArray* mcparticles = reader->GetAODMCParticles();
    if(!mcparticles) 
    {
      AliWarning("AODMCParticles is not available, check analysis settings in configuration file!!");
      
      ok=kFALSE;
      return fMotherMom;
    }
    
    Int_t nprimaries = mcparticles->GetEntriesFast();
    if(label >= 0 && label < nprimaries)
    {
      AliAODMCParticle * momP = (AliAODMCParticle *) mcparticles->At(label);
      fMotherMom.SetPxPyPzE(momP->Px(),momP->Py(),momP->Pz(),momP->E());
      pdg      = momP->GetPdgCode();
      status   = momP->GetStatus();
      momlabel = momP->GetMother();
    }
    else 
    {
      ok = kFALSE;
      return fMotherMom;
    }
  }
  
  ok = kTRUE;
  
  return fMotherMom;
}

//___________________________________________________________________________________
TLorentzVector AliMCAnalysisUtils::GetMotherWithPDG(Int_t label, Int_t pdg,
                                                    const AliCaloTrackReader* reader,
                                                    Bool_t & ok, Int_t & momlabel)
{
  // Return the kinematics of the particle that generated the signal.
  
  fGMotherMom.SetPxPyPzE(0,0,0,0);
  
  if(reader->ReadStack())
  {
    if(!reader->GetStack())
    {
     AliWarning("Stack is not available, check analysis settings in configuration file!!");
      
      ok = kFALSE;
      return fGMotherMom;
    }
    
    if(label >= 0 && label < reader->GetStack()->GetNtrack())
    {
      TParticle * momP = reader->GetStack()->Particle(label);

      Int_t grandmomLabel = momP->GetFirstMother();
      Int_t grandmomPDG   = -1;
      TParticle * grandmomP = 0x0;
      while (grandmomLabel >=0 ) 
      {
        grandmomP   = reader->GetStack()->Particle(grandmomLabel);
        grandmomPDG = grandmomP->GetPdgCode();
        if(grandmomPDG==pdg)
        {
          momlabel = grandmomLabel;
          fGMotherMom.SetPxPyPzE(grandmomP->Px(),grandmomP->Py(),grandmomP->Pz(),grandmomP->Energy());
          break;
        }
        
        grandmomLabel =  grandmomP->GetFirstMother();
        
      }
      
      if(grandmomPDG!=pdg) AliInfo(Form("Mother with PDG %d, not found! \n",pdg));
    }
  }
  else if(reader->ReadAODMCParticles())
  {
    TClonesArray* mcparticles = reader->GetAODMCParticles();
    if(!mcparticles) 
    {
      AliWarning("AODMCParticles is not available, check analysis settings in configuration file!!");
      
      ok=kFALSE;
      return fGMotherMom;
    }
    
    Int_t nprimaries = mcparticles->GetEntriesFast();
    if(label >= 0 && label < nprimaries)
    {
      AliAODMCParticle * momP = (AliAODMCParticle *) mcparticles->At(label);
      
      Int_t grandmomLabel = momP->GetMother();
      Int_t grandmomPDG   = -1;
      AliAODMCParticle * grandmomP = 0x0;
      while (grandmomLabel >=0 ) 
      {
        grandmomP   = (AliAODMCParticle *) mcparticles->At(grandmomLabel);
        grandmomPDG = grandmomP->GetPdgCode();
        if(grandmomPDG==pdg)
        {
          //printf("AliMCAnalysisUtils::GetMotherWithPDG(AOD) - mother with PDG %d FOUND! \n",pdg);
          momlabel = grandmomLabel;
          fGMotherMom.SetPxPyPzE(grandmomP->Px(),grandmomP->Py(),grandmomP->Pz(),grandmomP->E());
          break;
        }
        
        grandmomLabel =  grandmomP->GetMother();
        
      }
      
      if(grandmomPDG!=pdg) AliInfo(Form("Mother with PDG %d, NOT found!",pdg));
            
    }
  }
  
  ok = kTRUE;
  
  return fGMotherMom;
}

//______________________________________________________________________________________________
TLorentzVector AliMCAnalysisUtils::GetGrandMother(Int_t label, const AliCaloTrackReader* reader,
                                                  Int_t & pdg, Int_t & status, Bool_t & ok,
                                                  Int_t & grandMomLabel, Int_t & greatMomLabel)
{
  // Return the kinematics of the particle that generated the signal.
  
  fGMotherMom.SetPxPyPzE(0,0,0,0);
  
  if(reader->ReadStack())
  {
    if(!reader->GetStack())
    {
      AliWarning("Stack is not available, check analysis settings in configuration file, STOP!!");
      
      ok = kFALSE;
      return fGMotherMom;
    }
    
    if(label >= 0 && label < reader->GetStack()->GetNtrack())
    {
      TParticle * momP = reader->GetStack()->Particle(label);
      
      grandMomLabel = momP->GetFirstMother();
      
      TParticle * grandmomP = 0x0;
      
      if (grandMomLabel >=0 )
      {
        grandmomP   = reader->GetStack()->Particle(grandMomLabel);
        pdg    = grandmomP->GetPdgCode();
        status = grandmomP->GetStatusCode();
       
        fGMotherMom.SetPxPyPzE(grandmomP->Px(),grandmomP->Py(),grandmomP->Pz(),grandmomP->Energy());
        greatMomLabel =  grandmomP->GetFirstMother();

      }
    }
  }
  else if(reader->ReadAODMCParticles())
  {
    TClonesArray* mcparticles = reader->GetAODMCParticles();
    if(!mcparticles)
    {
      AliWarning("AODMCParticles is not available, check analysis settings in configuration file!!");
      
      ok=kFALSE;
      return fGMotherMom;
    }
    
    Int_t nprimaries = mcparticles->GetEntriesFast();
    if(label >= 0 && label < nprimaries)
    {
      AliAODMCParticle * momP = (AliAODMCParticle *) mcparticles->At(label);
      
      grandMomLabel = momP->GetMother();
      
      AliAODMCParticle * grandmomP = 0x0;
      
      if(grandMomLabel >=0 )
      {
        grandmomP   = (AliAODMCParticle *) mcparticles->At(grandMomLabel);
        pdg    = grandmomP->GetPdgCode();
        status = grandmomP->GetStatus();
      
        fGMotherMom.SetPxPyPzE(grandmomP->Px(),grandmomP->Py(),grandmomP->Pz(),grandmomP->E());
        greatMomLabel =  grandmomP->GetMother();
        
      }
    }
  }
  
  ok = kTRUE;
  
  return fGMotherMom;
}

//_______________________________________________________________________________________________________________
void AliMCAnalysisUtils::GetMCDecayAsymmetryAngleForPDG(Int_t label, Int_t pdg, const AliCaloTrackReader* reader,
                                                        Float_t & asym, Float_t & angle, Bool_t & ok)
{
  // In case of an eta or pi0 decay into 2 photons, get the asymmetry  in the energy of the photons.
  
  if(reader->ReadStack())
  {
    if(!reader->GetStack())
    {
      AliWarning("Stack is not available, check analysis settings in configuration file, STOP!!");
      
      ok = kFALSE;
    }
    if(label >= 0 && label < reader->GetStack()->GetNtrack())
    {
      TParticle * momP = reader->GetStack()->Particle(label);
      
      Int_t grandmomLabel = momP->GetFirstMother();
      Int_t grandmomPDG   = -1;
      TParticle * grandmomP = 0x0;
      while (grandmomLabel >=0 ) 
      {
        grandmomP   = reader->GetStack()->Particle(grandmomLabel);
        grandmomPDG = grandmomP->GetPdgCode();
        
        if(grandmomPDG==pdg) break;
        
        grandmomLabel =  grandmomP->GetFirstMother();
        
      }
      
      if(grandmomPDG==pdg && grandmomP->GetNDaughters()==2) 
      {
        TParticle * d1 = reader->GetStack()->Particle(grandmomP->GetDaughter(0));
        TParticle * d2 = reader->GetStack()->Particle(grandmomP->GetDaughter(1));
        if(d1->GetPdgCode() == 22 && d1->GetPdgCode() == 22)
        {
          asym = (d1->Energy()-d2->Energy())/grandmomP->Energy();
          d1->Momentum(fDaughMom );
          d2->Momentum(fDaughMom2);
          angle = fDaughMom.Angle(fDaughMom2.Vect());
        }
      }
      else 
      {
        ok=kFALSE;
        AliInfo(Form("Mother with PDG %d, not found!",pdg));
      }
      
      } // good label
  }
  else if(reader->ReadAODMCParticles())
  {
    TClonesArray* mcparticles = reader->GetAODMCParticles();
    if(!mcparticles) 
    {
      AliWarning("AODMCParticles is not available, check analysis settings in configuration file!!");
      
      ok=kFALSE;
      return;
    }
    
    Int_t nprimaries = mcparticles->GetEntriesFast();
    if(label >= 0 && label < nprimaries)
    {
      AliAODMCParticle * momP = (AliAODMCParticle *) mcparticles->At(label);
      
      Int_t grandmomLabel = momP->GetMother();
      Int_t grandmomPDG   = -1;
      AliAODMCParticle * grandmomP = 0x0;
      while (grandmomLabel >=0 ) 
      {
        grandmomP   = (AliAODMCParticle *) mcparticles->At(grandmomLabel);
        grandmomPDG = grandmomP->GetPdgCode();
        
        if(grandmomPDG==pdg) break;
        
        grandmomLabel =  grandmomP->GetMother();
        
      }
      
      if(grandmomPDG==pdg && grandmomP->GetNDaughters()==2) 
      {
        AliAODMCParticle * d1 = (AliAODMCParticle *) mcparticles->At(grandmomP->GetDaughter(0));
        AliAODMCParticle * d2 = (AliAODMCParticle *) mcparticles->At(grandmomP->GetDaughter(1));
        if(d1->GetPdgCode() == 22 && d1->GetPdgCode() == 22)
        {
          asym = (d1->E()-d2->E())/grandmomP->E();
          fDaughMom .SetPxPyPzE(d1->Px(),d1->Py(),d1->Pz(),d1->E());
          fDaughMom2.SetPxPyPzE(d2->Px(),d2->Py(),d2->Pz(),d2->E());
          angle = fDaughMom.Angle(fDaughMom2.Vect());
        }
      }
      else 
      {
        ok=kFALSE;
        AliInfo(Form("Mother with PDG %d, not found! \n",pdg));
      }
      
    } // good label
  }
  
  ok = kTRUE;
  
}

//_________________________________________________________________________________________________
Int_t AliMCAnalysisUtils::GetNDaughters(Int_t label, const AliCaloTrackReader* reader, Bool_t & ok)
{
  // Return the the number of daughters of a given MC particle.
  
  if(reader->ReadStack())
  {
    if(!reader->GetStack())
    {
      AliWarning("Stack is not available, check analysis settings in configuration file, STOP!!");
      
      ok=kFALSE;
      return -1;
    }
    if(label >= 0 && label < reader->GetStack()->GetNtrack())
    {
      TParticle * momP = reader->GetStack()->Particle(label);
      ok=kTRUE;
      return momP->GetNDaughters();
    }
    else
    {
      ok = kFALSE;
      return -1;
    }
  }
  else if(reader->ReadAODMCParticles())
  {
    TClonesArray* mcparticles = reader->GetAODMCParticles();
    if(!mcparticles)
    {
      AliWarning("AODMCParticles is not available, check analysis settings in configuration file!!");
      
      ok=kFALSE;
      return -1;
    }
    
    Int_t nprimaries = mcparticles->GetEntriesFast();
    if(label >= 0 && label < nprimaries)
    {
      AliAODMCParticle * momP = (AliAODMCParticle *) mcparticles->At(label);
      ok = kTRUE;
      return momP->GetNDaughters();
    }
    else
    {
      ok = kFALSE;
      return -1;
    }
  }
  
  ok = kFALSE;
  
  return -1;
}

//_________________________________________________________________________________
Int_t AliMCAnalysisUtils::GetNOverlaps(const Int_t * label, UInt_t nlabels,
                                       Int_t mctag, Int_t mesonLabel,
                                       AliCaloTrackReader * reader, Int_t *overpdg)
{
  // Compare the primary depositing more energy with the rest,
  // if no photon/electron (conversion) or neutral meson as comon ancestor, consider it as other particle contributing.
  // Give as input the meson label in case it was a pi0 or eta merged cluster.
  // Init overpdg with nlabels.
  
  Int_t ancPDG = 0, ancStatus = -1;
  TVector3 prodVertex;
  Int_t ancLabel = 0;
  Int_t noverlaps = 0;
  Bool_t ok = kFALSE;
  
  for (UInt_t ilab = 1; ilab < nlabels; ilab++ )
  {
    ancLabel = CheckCommonAncestor(label[0],label[ilab],reader,ancPDG,ancStatus,fMotherMom,prodVertex);
    
    //printf("Overlaps, i %d: Main Label %d, second label %d, ancestor: Label %d, pdg %d - tag %d \n",
    //       ilab,label[0],label[ilab],ancLabel,ancPDG, mctag);
    
    Bool_t overlap = kFALSE;
    
    if     ( ancLabel < 0 )
    {
      overlap = kTRUE;
      //printf("\t \t \t No Label = %d\n",ancLabel);
    }
    else if( ( ancPDG==111 || ancPDG==221 ) && ( CheckTagBit(mctag,kMCPi0) ||  CheckTagBit(mctag,kMCEta)) && mesonLabel != ancLabel)
    {
      //printf("\t \t  meson Label %d, ancestor Label %d\n",mesonLabel,ancLabel);
      overlap = kTRUE;
    }
    else if( ancPDG!=22 && TMath::Abs(ancPDG)!=11 && ancPDG != 111 && ancPDG != 221 )
    {
      //printf("\t \t \t Non EM PDG = %d\n",ancPDG);
      overlap = kTRUE ;
    }
    
    if( !overlap ) continue ;
    
    // We have at least one overlap
    
    //printf("Overlap!!!!!!!!!!!!!!\n");
    
    noverlaps++;
    
    // What is the origin of the overlap?
    Bool_t  mOK = 0,      gOK = 0;
    Int_t   mpdg = -999999,  gpdg = -1;
    Int_t   mstatus = -1, gstatus = -1;
    Int_t   gLabel = -1, ggLabel = -1;
    
    GetMother     (label[ilab],reader,mpdg,mstatus,mOK);
    fGMotherMom =
    GetGrandMother(label[ilab],reader,gpdg,gstatus,gOK, gLabel,ggLabel);
    
    //printf("\t Overlap!, mother pdg %d; grand mother pdg %d",mpdg,gpdg);
    
    if( ( mpdg == 22 || TMath::Abs(mpdg==11) ) &&
        ( gpdg == 22 || TMath::Abs(gpdg==11) ) &&
       gLabel >=0 )
    {
      Int_t labeltmp = gLabel;
      while( ( gpdg == 22 || TMath::Abs(gpdg==11) ) && gLabel >=0 )
      {
        mpdg=gpdg;
        fGMotherMom = GetGrandMother(labeltmp,reader,gpdg,gstatus,ok, gLabel,ggLabel);
        labeltmp=gLabel;
      }
    }
    overpdg[noverlaps-1] = mpdg;
  }
  
  return noverlaps ;
  
}

//________________________________________________________
void AliMCAnalysisUtils::Print(const Option_t * opt) const
{
  // Print some relevant parameters set for the analysis.
  
  if(! opt)
    return;
  
  printf("***** Print: %s %s ******\n", GetName(), GetTitle() ) ;
  
  printf("Debug level    = %d\n",fDebug);
  printf("MC Generator   = %s\n",fMCGeneratorString.Data());
  printf(" \n");
  
} 

//__________________________________________________
void AliMCAnalysisUtils::PrintMCTag(Int_t tag) const
{
  // Print the assigned origins to this particle.
  
  printf("AliMCAnalysisUtils::PrintMCTag() - tag %d \n    photon %d, conv %d, prompt %d, frag %d, isr %d, \n    pi0 decay %d, eta decay %d, other decay %d  pi0 %d,  eta %d \n    electron %d, muon %d,pion %d, proton %d, neutron %d, \n    kaon %d, a-proton %d, a-neutron %d, unk %d, bad %d\n",
         tag,
         CheckTagBit(tag,kMCPhoton),
         CheckTagBit(tag,kMCConversion),
         CheckTagBit(tag,kMCPrompt),
         CheckTagBit(tag,kMCFragmentation),
         CheckTagBit(tag,kMCISR),
         CheckTagBit(tag,kMCPi0Decay),
         CheckTagBit(tag,kMCEtaDecay),
         CheckTagBit(tag,kMCOtherDecay),
         CheckTagBit(tag,kMCPi0),
         CheckTagBit(tag,kMCEta),
         CheckTagBit(tag,kMCElectron),
         CheckTagBit(tag,kMCMuon), 
         CheckTagBit(tag,kMCPion),
         CheckTagBit(tag,kMCProton), 
         CheckTagBit(tag,kMCAntiNeutron),
         CheckTagBit(tag,kMCKaon), 
         CheckTagBit(tag,kMCAntiProton), 
         CheckTagBit(tag,kMCAntiNeutron),
         CheckTagBit(tag,kMCUnknown),
         CheckTagBit(tag,kMCBadLabel)
         );
} 

//__________________________________________________
void AliMCAnalysisUtils::SetMCGenerator(Int_t mcgen)
{
  // Set the generator type.
  
  fMCGenerator = mcgen ;
  if     (mcgen == kPythia) fMCGeneratorString = "PYTHIA";
  else if(mcgen == kHerwig) fMCGeneratorString = "HERWIG";
  else if(mcgen == kHijing) fMCGeneratorString = "HIJING";
  else
  {
    fMCGeneratorString = "";
    fMCGenerator       = kBoxLike ;
  }
  
}

//__________________________________________________
void AliMCAnalysisUtils::SetMCGenerator(TString mcgen)
{
  // Set the generator type.
  
  fMCGeneratorString = mcgen ;
  
  if     (mcgen == "PYTHIA") fMCGenerator = kPythia;
  else if(mcgen == "HERWIG") fMCGenerator = kHerwig;
  else if(mcgen == "HIJING") fMCGenerator = kHijing;
  else
  {
    fMCGenerator       = kBoxLike;
    fMCGeneratorString = "" ;
  }
}



 AliMCAnalysisUtils.cxx:1
 AliMCAnalysisUtils.cxx:2
 AliMCAnalysisUtils.cxx:3
 AliMCAnalysisUtils.cxx:4
 AliMCAnalysisUtils.cxx:5
 AliMCAnalysisUtils.cxx:6
 AliMCAnalysisUtils.cxx:7
 AliMCAnalysisUtils.cxx:8
 AliMCAnalysisUtils.cxx:9
 AliMCAnalysisUtils.cxx:10
 AliMCAnalysisUtils.cxx:11
 AliMCAnalysisUtils.cxx:12
 AliMCAnalysisUtils.cxx:13
 AliMCAnalysisUtils.cxx:14
 AliMCAnalysisUtils.cxx:15
 AliMCAnalysisUtils.cxx:16
 AliMCAnalysisUtils.cxx:17
 AliMCAnalysisUtils.cxx:18
 AliMCAnalysisUtils.cxx:19
 AliMCAnalysisUtils.cxx:20
 AliMCAnalysisUtils.cxx:21
 AliMCAnalysisUtils.cxx:22
 AliMCAnalysisUtils.cxx:23
 AliMCAnalysisUtils.cxx:24
 AliMCAnalysisUtils.cxx:25
 AliMCAnalysisUtils.cxx:26
 AliMCAnalysisUtils.cxx:27
 AliMCAnalysisUtils.cxx:28
 AliMCAnalysisUtils.cxx:29
 AliMCAnalysisUtils.cxx:30
 AliMCAnalysisUtils.cxx:31
 AliMCAnalysisUtils.cxx:32
 AliMCAnalysisUtils.cxx:33
 AliMCAnalysisUtils.cxx:34
 AliMCAnalysisUtils.cxx:35
 AliMCAnalysisUtils.cxx:36
 AliMCAnalysisUtils.cxx:37
 AliMCAnalysisUtils.cxx:38
 AliMCAnalysisUtils.cxx:39
 AliMCAnalysisUtils.cxx:40
 AliMCAnalysisUtils.cxx:41
 AliMCAnalysisUtils.cxx:42
 AliMCAnalysisUtils.cxx:43
 AliMCAnalysisUtils.cxx:44
 AliMCAnalysisUtils.cxx:45
 AliMCAnalysisUtils.cxx:46
 AliMCAnalysisUtils.cxx:47
 AliMCAnalysisUtils.cxx:48
 AliMCAnalysisUtils.cxx:49
 AliMCAnalysisUtils.cxx:50
 AliMCAnalysisUtils.cxx:51
 AliMCAnalysisUtils.cxx:52
 AliMCAnalysisUtils.cxx:53
 AliMCAnalysisUtils.cxx:54
 AliMCAnalysisUtils.cxx:55
 AliMCAnalysisUtils.cxx:56
 AliMCAnalysisUtils.cxx:57
 AliMCAnalysisUtils.cxx:58
 AliMCAnalysisUtils.cxx:59
 AliMCAnalysisUtils.cxx:60
 AliMCAnalysisUtils.cxx:61
 AliMCAnalysisUtils.cxx:62
 AliMCAnalysisUtils.cxx:63
 AliMCAnalysisUtils.cxx:64
 AliMCAnalysisUtils.cxx:65
 AliMCAnalysisUtils.cxx:66
 AliMCAnalysisUtils.cxx:67
 AliMCAnalysisUtils.cxx:68
 AliMCAnalysisUtils.cxx:69
 AliMCAnalysisUtils.cxx:70
 AliMCAnalysisUtils.cxx:71
 AliMCAnalysisUtils.cxx:72
 AliMCAnalysisUtils.cxx:73
 AliMCAnalysisUtils.cxx:74
 AliMCAnalysisUtils.cxx:75
 AliMCAnalysisUtils.cxx:76
 AliMCAnalysisUtils.cxx:77
 AliMCAnalysisUtils.cxx:78
 AliMCAnalysisUtils.cxx:79
 AliMCAnalysisUtils.cxx:80
 AliMCAnalysisUtils.cxx:81
 AliMCAnalysisUtils.cxx:82
 AliMCAnalysisUtils.cxx:83
 AliMCAnalysisUtils.cxx:84
 AliMCAnalysisUtils.cxx:85
 AliMCAnalysisUtils.cxx:86
 AliMCAnalysisUtils.cxx:87
 AliMCAnalysisUtils.cxx:88
 AliMCAnalysisUtils.cxx:89
 AliMCAnalysisUtils.cxx:90
 AliMCAnalysisUtils.cxx:91
 AliMCAnalysisUtils.cxx:92
 AliMCAnalysisUtils.cxx:93
 AliMCAnalysisUtils.cxx:94
 AliMCAnalysisUtils.cxx:95
 AliMCAnalysisUtils.cxx:96
 AliMCAnalysisUtils.cxx:97
 AliMCAnalysisUtils.cxx:98
 AliMCAnalysisUtils.cxx:99
 AliMCAnalysisUtils.cxx:100
 AliMCAnalysisUtils.cxx:101
 AliMCAnalysisUtils.cxx:102
 AliMCAnalysisUtils.cxx:103
 AliMCAnalysisUtils.cxx:104
 AliMCAnalysisUtils.cxx:105
 AliMCAnalysisUtils.cxx:106
 AliMCAnalysisUtils.cxx:107
 AliMCAnalysisUtils.cxx:108
 AliMCAnalysisUtils.cxx:109
 AliMCAnalysisUtils.cxx:110
 AliMCAnalysisUtils.cxx:111
 AliMCAnalysisUtils.cxx:112
 AliMCAnalysisUtils.cxx:113
 AliMCAnalysisUtils.cxx:114
 AliMCAnalysisUtils.cxx:115
 AliMCAnalysisUtils.cxx:116
 AliMCAnalysisUtils.cxx:117
 AliMCAnalysisUtils.cxx:118
 AliMCAnalysisUtils.cxx:119
 AliMCAnalysisUtils.cxx:120
 AliMCAnalysisUtils.cxx:121
 AliMCAnalysisUtils.cxx:122
 AliMCAnalysisUtils.cxx:123
 AliMCAnalysisUtils.cxx:124
 AliMCAnalysisUtils.cxx:125
 AliMCAnalysisUtils.cxx:126
 AliMCAnalysisUtils.cxx:127
 AliMCAnalysisUtils.cxx:128
 AliMCAnalysisUtils.cxx:129
 AliMCAnalysisUtils.cxx:130
 AliMCAnalysisUtils.cxx:131
 AliMCAnalysisUtils.cxx:132
 AliMCAnalysisUtils.cxx:133
 AliMCAnalysisUtils.cxx:134
 AliMCAnalysisUtils.cxx:135
 AliMCAnalysisUtils.cxx:136
 AliMCAnalysisUtils.cxx:137
 AliMCAnalysisUtils.cxx:138
 AliMCAnalysisUtils.cxx:139
 AliMCAnalysisUtils.cxx:140
 AliMCAnalysisUtils.cxx:141
 AliMCAnalysisUtils.cxx:142
 AliMCAnalysisUtils.cxx:143
 AliMCAnalysisUtils.cxx:144
 AliMCAnalysisUtils.cxx:145
 AliMCAnalysisUtils.cxx:146
 AliMCAnalysisUtils.cxx:147
 AliMCAnalysisUtils.cxx:148
 AliMCAnalysisUtils.cxx:149
 AliMCAnalysisUtils.cxx:150
 AliMCAnalysisUtils.cxx:151
 AliMCAnalysisUtils.cxx:152
 AliMCAnalysisUtils.cxx:153
 AliMCAnalysisUtils.cxx:154
 AliMCAnalysisUtils.cxx:155
 AliMCAnalysisUtils.cxx:156
 AliMCAnalysisUtils.cxx:157
 AliMCAnalysisUtils.cxx:158
 AliMCAnalysisUtils.cxx:159
 AliMCAnalysisUtils.cxx:160
 AliMCAnalysisUtils.cxx:161
 AliMCAnalysisUtils.cxx:162
 AliMCAnalysisUtils.cxx:163
 AliMCAnalysisUtils.cxx:164
 AliMCAnalysisUtils.cxx:165
 AliMCAnalysisUtils.cxx:166
 AliMCAnalysisUtils.cxx:167
 AliMCAnalysisUtils.cxx:168
 AliMCAnalysisUtils.cxx:169
 AliMCAnalysisUtils.cxx:170
 AliMCAnalysisUtils.cxx:171
 AliMCAnalysisUtils.cxx:172
 AliMCAnalysisUtils.cxx:173
 AliMCAnalysisUtils.cxx:174
 AliMCAnalysisUtils.cxx:175
 AliMCAnalysisUtils.cxx:176
 AliMCAnalysisUtils.cxx:177
 AliMCAnalysisUtils.cxx:178
 AliMCAnalysisUtils.cxx:179
 AliMCAnalysisUtils.cxx:180
 AliMCAnalysisUtils.cxx:181
 AliMCAnalysisUtils.cxx:182
 AliMCAnalysisUtils.cxx:183
 AliMCAnalysisUtils.cxx:184
 AliMCAnalysisUtils.cxx:185
 AliMCAnalysisUtils.cxx:186
 AliMCAnalysisUtils.cxx:187
 AliMCAnalysisUtils.cxx:188
 AliMCAnalysisUtils.cxx:189
 AliMCAnalysisUtils.cxx:190
 AliMCAnalysisUtils.cxx:191
 AliMCAnalysisUtils.cxx:192
 AliMCAnalysisUtils.cxx:193
 AliMCAnalysisUtils.cxx:194
 AliMCAnalysisUtils.cxx:195
 AliMCAnalysisUtils.cxx:196
 AliMCAnalysisUtils.cxx:197
 AliMCAnalysisUtils.cxx:198
 AliMCAnalysisUtils.cxx:199
 AliMCAnalysisUtils.cxx:200
 AliMCAnalysisUtils.cxx:201
 AliMCAnalysisUtils.cxx:202
 AliMCAnalysisUtils.cxx:203
 AliMCAnalysisUtils.cxx:204
 AliMCAnalysisUtils.cxx:205
 AliMCAnalysisUtils.cxx:206
 AliMCAnalysisUtils.cxx:207
 AliMCAnalysisUtils.cxx:208
 AliMCAnalysisUtils.cxx:209
 AliMCAnalysisUtils.cxx:210
 AliMCAnalysisUtils.cxx:211
 AliMCAnalysisUtils.cxx:212
 AliMCAnalysisUtils.cxx:213
 AliMCAnalysisUtils.cxx:214
 AliMCAnalysisUtils.cxx:215
 AliMCAnalysisUtils.cxx:216
 AliMCAnalysisUtils.cxx:217
 AliMCAnalysisUtils.cxx:218
 AliMCAnalysisUtils.cxx:219
 AliMCAnalysisUtils.cxx:220
 AliMCAnalysisUtils.cxx:221
 AliMCAnalysisUtils.cxx:222
 AliMCAnalysisUtils.cxx:223
 AliMCAnalysisUtils.cxx:224
 AliMCAnalysisUtils.cxx:225
 AliMCAnalysisUtils.cxx:226
 AliMCAnalysisUtils.cxx:227
 AliMCAnalysisUtils.cxx:228
 AliMCAnalysisUtils.cxx:229
 AliMCAnalysisUtils.cxx:230
 AliMCAnalysisUtils.cxx:231
 AliMCAnalysisUtils.cxx:232
 AliMCAnalysisUtils.cxx:233
 AliMCAnalysisUtils.cxx:234
 AliMCAnalysisUtils.cxx:235
 AliMCAnalysisUtils.cxx:236
 AliMCAnalysisUtils.cxx:237
 AliMCAnalysisUtils.cxx:238
 AliMCAnalysisUtils.cxx:239
 AliMCAnalysisUtils.cxx:240
 AliMCAnalysisUtils.cxx:241
 AliMCAnalysisUtils.cxx:242
 AliMCAnalysisUtils.cxx:243
 AliMCAnalysisUtils.cxx:244
 AliMCAnalysisUtils.cxx:245
 AliMCAnalysisUtils.cxx:246
 AliMCAnalysisUtils.cxx:247
 AliMCAnalysisUtils.cxx:248
 AliMCAnalysisUtils.cxx:249
 AliMCAnalysisUtils.cxx:250
 AliMCAnalysisUtils.cxx:251
 AliMCAnalysisUtils.cxx:252
 AliMCAnalysisUtils.cxx:253
 AliMCAnalysisUtils.cxx:254
 AliMCAnalysisUtils.cxx:255
 AliMCAnalysisUtils.cxx:256
 AliMCAnalysisUtils.cxx:257
 AliMCAnalysisUtils.cxx:258
 AliMCAnalysisUtils.cxx:259
 AliMCAnalysisUtils.cxx:260
 AliMCAnalysisUtils.cxx:261
 AliMCAnalysisUtils.cxx:262
 AliMCAnalysisUtils.cxx:263
 AliMCAnalysisUtils.cxx:264
 AliMCAnalysisUtils.cxx:265
 AliMCAnalysisUtils.cxx:266
 AliMCAnalysisUtils.cxx:267
 AliMCAnalysisUtils.cxx:268
 AliMCAnalysisUtils.cxx:269
 AliMCAnalysisUtils.cxx:270
 AliMCAnalysisUtils.cxx:271
 AliMCAnalysisUtils.cxx:272
 AliMCAnalysisUtils.cxx:273
 AliMCAnalysisUtils.cxx:274
 AliMCAnalysisUtils.cxx:275
 AliMCAnalysisUtils.cxx:276
 AliMCAnalysisUtils.cxx:277
 AliMCAnalysisUtils.cxx:278
 AliMCAnalysisUtils.cxx:279
 AliMCAnalysisUtils.cxx:280
 AliMCAnalysisUtils.cxx:281
 AliMCAnalysisUtils.cxx:282
 AliMCAnalysisUtils.cxx:283
 AliMCAnalysisUtils.cxx:284
 AliMCAnalysisUtils.cxx:285
 AliMCAnalysisUtils.cxx:286
 AliMCAnalysisUtils.cxx:287
 AliMCAnalysisUtils.cxx:288
 AliMCAnalysisUtils.cxx:289
 AliMCAnalysisUtils.cxx:290
 AliMCAnalysisUtils.cxx:291
 AliMCAnalysisUtils.cxx:292
 AliMCAnalysisUtils.cxx:293
 AliMCAnalysisUtils.cxx:294
 AliMCAnalysisUtils.cxx:295
 AliMCAnalysisUtils.cxx:296
 AliMCAnalysisUtils.cxx:297
 AliMCAnalysisUtils.cxx:298
 AliMCAnalysisUtils.cxx:299
 AliMCAnalysisUtils.cxx:300
 AliMCAnalysisUtils.cxx:301
 AliMCAnalysisUtils.cxx:302
 AliMCAnalysisUtils.cxx:303
 AliMCAnalysisUtils.cxx:304
 AliMCAnalysisUtils.cxx:305
 AliMCAnalysisUtils.cxx:306
 AliMCAnalysisUtils.cxx:307
 AliMCAnalysisUtils.cxx:308
 AliMCAnalysisUtils.cxx:309
 AliMCAnalysisUtils.cxx:310
 AliMCAnalysisUtils.cxx:311
 AliMCAnalysisUtils.cxx:312
 AliMCAnalysisUtils.cxx:313
 AliMCAnalysisUtils.cxx:314
 AliMCAnalysisUtils.cxx:315
 AliMCAnalysisUtils.cxx:316
 AliMCAnalysisUtils.cxx:317
 AliMCAnalysisUtils.cxx:318
 AliMCAnalysisUtils.cxx:319
 AliMCAnalysisUtils.cxx:320
 AliMCAnalysisUtils.cxx:321
 AliMCAnalysisUtils.cxx:322
 AliMCAnalysisUtils.cxx:323
 AliMCAnalysisUtils.cxx:324
 AliMCAnalysisUtils.cxx:325
 AliMCAnalysisUtils.cxx:326
 AliMCAnalysisUtils.cxx:327
 AliMCAnalysisUtils.cxx:328
 AliMCAnalysisUtils.cxx:329
 AliMCAnalysisUtils.cxx:330
 AliMCAnalysisUtils.cxx:331
 AliMCAnalysisUtils.cxx:332
 AliMCAnalysisUtils.cxx:333
 AliMCAnalysisUtils.cxx:334
 AliMCAnalysisUtils.cxx:335
 AliMCAnalysisUtils.cxx:336
 AliMCAnalysisUtils.cxx:337
 AliMCAnalysisUtils.cxx:338
 AliMCAnalysisUtils.cxx:339
 AliMCAnalysisUtils.cxx:340
 AliMCAnalysisUtils.cxx:341
 AliMCAnalysisUtils.cxx:342
 AliMCAnalysisUtils.cxx:343
 AliMCAnalysisUtils.cxx:344
 AliMCAnalysisUtils.cxx:345
 AliMCAnalysisUtils.cxx:346
 AliMCAnalysisUtils.cxx:347
 AliMCAnalysisUtils.cxx:348
 AliMCAnalysisUtils.cxx:349
 AliMCAnalysisUtils.cxx:350
 AliMCAnalysisUtils.cxx:351
 AliMCAnalysisUtils.cxx:352
 AliMCAnalysisUtils.cxx:353
 AliMCAnalysisUtils.cxx:354
 AliMCAnalysisUtils.cxx:355
 AliMCAnalysisUtils.cxx:356
 AliMCAnalysisUtils.cxx:357
 AliMCAnalysisUtils.cxx:358
 AliMCAnalysisUtils.cxx:359
 AliMCAnalysisUtils.cxx:360
 AliMCAnalysisUtils.cxx:361
 AliMCAnalysisUtils.cxx:362
 AliMCAnalysisUtils.cxx:363
 AliMCAnalysisUtils.cxx:364
 AliMCAnalysisUtils.cxx:365
 AliMCAnalysisUtils.cxx:366
 AliMCAnalysisUtils.cxx:367
 AliMCAnalysisUtils.cxx:368
 AliMCAnalysisUtils.cxx:369
 AliMCAnalysisUtils.cxx:370
 AliMCAnalysisUtils.cxx:371
 AliMCAnalysisUtils.cxx:372
 AliMCAnalysisUtils.cxx:373
 AliMCAnalysisUtils.cxx:374
 AliMCAnalysisUtils.cxx:375
 AliMCAnalysisUtils.cxx:376
 AliMCAnalysisUtils.cxx:377
 AliMCAnalysisUtils.cxx:378
 AliMCAnalysisUtils.cxx:379
 AliMCAnalysisUtils.cxx:380
 AliMCAnalysisUtils.cxx:381
 AliMCAnalysisUtils.cxx:382
 AliMCAnalysisUtils.cxx:383
 AliMCAnalysisUtils.cxx:384
 AliMCAnalysisUtils.cxx:385
 AliMCAnalysisUtils.cxx:386
 AliMCAnalysisUtils.cxx:387
 AliMCAnalysisUtils.cxx:388
 AliMCAnalysisUtils.cxx:389
 AliMCAnalysisUtils.cxx:390
 AliMCAnalysisUtils.cxx:391
 AliMCAnalysisUtils.cxx:392
 AliMCAnalysisUtils.cxx:393
 AliMCAnalysisUtils.cxx:394
 AliMCAnalysisUtils.cxx:395
 AliMCAnalysisUtils.cxx:396
 AliMCAnalysisUtils.cxx:397
 AliMCAnalysisUtils.cxx:398
 AliMCAnalysisUtils.cxx:399
 AliMCAnalysisUtils.cxx:400
 AliMCAnalysisUtils.cxx:401
 AliMCAnalysisUtils.cxx:402
 AliMCAnalysisUtils.cxx:403
 AliMCAnalysisUtils.cxx:404
 AliMCAnalysisUtils.cxx:405
 AliMCAnalysisUtils.cxx:406
 AliMCAnalysisUtils.cxx:407
 AliMCAnalysisUtils.cxx:408
 AliMCAnalysisUtils.cxx:409
 AliMCAnalysisUtils.cxx:410
 AliMCAnalysisUtils.cxx:411
 AliMCAnalysisUtils.cxx:412
 AliMCAnalysisUtils.cxx:413
 AliMCAnalysisUtils.cxx:414
 AliMCAnalysisUtils.cxx:415
 AliMCAnalysisUtils.cxx:416
 AliMCAnalysisUtils.cxx:417
 AliMCAnalysisUtils.cxx:418
 AliMCAnalysisUtils.cxx:419
 AliMCAnalysisUtils.cxx:420
 AliMCAnalysisUtils.cxx:421
 AliMCAnalysisUtils.cxx:422
 AliMCAnalysisUtils.cxx:423
 AliMCAnalysisUtils.cxx:424
 AliMCAnalysisUtils.cxx:425
 AliMCAnalysisUtils.cxx:426
 AliMCAnalysisUtils.cxx:427
 AliMCAnalysisUtils.cxx:428
 AliMCAnalysisUtils.cxx:429
 AliMCAnalysisUtils.cxx:430
 AliMCAnalysisUtils.cxx:431
 AliMCAnalysisUtils.cxx:432
 AliMCAnalysisUtils.cxx:433
 AliMCAnalysisUtils.cxx:434
 AliMCAnalysisUtils.cxx:435
 AliMCAnalysisUtils.cxx:436
 AliMCAnalysisUtils.cxx:437
 AliMCAnalysisUtils.cxx:438
 AliMCAnalysisUtils.cxx:439
 AliMCAnalysisUtils.cxx:440
 AliMCAnalysisUtils.cxx:441
 AliMCAnalysisUtils.cxx:442
 AliMCAnalysisUtils.cxx:443
 AliMCAnalysisUtils.cxx:444
 AliMCAnalysisUtils.cxx:445
 AliMCAnalysisUtils.cxx:446
 AliMCAnalysisUtils.cxx:447
 AliMCAnalysisUtils.cxx:448
 AliMCAnalysisUtils.cxx:449
 AliMCAnalysisUtils.cxx:450
 AliMCAnalysisUtils.cxx:451
 AliMCAnalysisUtils.cxx:452
 AliMCAnalysisUtils.cxx:453
 AliMCAnalysisUtils.cxx:454
 AliMCAnalysisUtils.cxx:455
 AliMCAnalysisUtils.cxx:456
 AliMCAnalysisUtils.cxx:457
 AliMCAnalysisUtils.cxx:458
 AliMCAnalysisUtils.cxx:459
 AliMCAnalysisUtils.cxx:460
 AliMCAnalysisUtils.cxx:461
 AliMCAnalysisUtils.cxx:462
 AliMCAnalysisUtils.cxx:463
 AliMCAnalysisUtils.cxx:464
 AliMCAnalysisUtils.cxx:465
 AliMCAnalysisUtils.cxx:466
 AliMCAnalysisUtils.cxx:467
 AliMCAnalysisUtils.cxx:468
 AliMCAnalysisUtils.cxx:469
 AliMCAnalysisUtils.cxx:470
 AliMCAnalysisUtils.cxx:471
 AliMCAnalysisUtils.cxx:472
 AliMCAnalysisUtils.cxx:473
 AliMCAnalysisUtils.cxx:474
 AliMCAnalysisUtils.cxx:475
 AliMCAnalysisUtils.cxx:476
 AliMCAnalysisUtils.cxx:477
 AliMCAnalysisUtils.cxx:478
 AliMCAnalysisUtils.cxx:479
 AliMCAnalysisUtils.cxx:480
 AliMCAnalysisUtils.cxx:481
 AliMCAnalysisUtils.cxx:482
 AliMCAnalysisUtils.cxx:483
 AliMCAnalysisUtils.cxx:484
 AliMCAnalysisUtils.cxx:485
 AliMCAnalysisUtils.cxx:486
 AliMCAnalysisUtils.cxx:487
 AliMCAnalysisUtils.cxx:488
 AliMCAnalysisUtils.cxx:489
 AliMCAnalysisUtils.cxx:490
 AliMCAnalysisUtils.cxx:491
 AliMCAnalysisUtils.cxx:492
 AliMCAnalysisUtils.cxx:493
 AliMCAnalysisUtils.cxx:494
 AliMCAnalysisUtils.cxx:495
 AliMCAnalysisUtils.cxx:496
 AliMCAnalysisUtils.cxx:497
 AliMCAnalysisUtils.cxx:498
 AliMCAnalysisUtils.cxx:499
 AliMCAnalysisUtils.cxx:500
 AliMCAnalysisUtils.cxx:501
 AliMCAnalysisUtils.cxx:502
 AliMCAnalysisUtils.cxx:503
 AliMCAnalysisUtils.cxx:504
 AliMCAnalysisUtils.cxx:505
 AliMCAnalysisUtils.cxx:506
 AliMCAnalysisUtils.cxx:507
 AliMCAnalysisUtils.cxx:508
 AliMCAnalysisUtils.cxx:509
 AliMCAnalysisUtils.cxx:510
 AliMCAnalysisUtils.cxx:511
 AliMCAnalysisUtils.cxx:512
 AliMCAnalysisUtils.cxx:513
 AliMCAnalysisUtils.cxx:514
 AliMCAnalysisUtils.cxx:515
 AliMCAnalysisUtils.cxx:516
 AliMCAnalysisUtils.cxx:517
 AliMCAnalysisUtils.cxx:518
 AliMCAnalysisUtils.cxx:519
 AliMCAnalysisUtils.cxx:520
 AliMCAnalysisUtils.cxx:521
 AliMCAnalysisUtils.cxx:522
 AliMCAnalysisUtils.cxx:523
 AliMCAnalysisUtils.cxx:524
 AliMCAnalysisUtils.cxx:525
 AliMCAnalysisUtils.cxx:526
 AliMCAnalysisUtils.cxx:527
 AliMCAnalysisUtils.cxx:528
 AliMCAnalysisUtils.cxx:529
 AliMCAnalysisUtils.cxx:530
 AliMCAnalysisUtils.cxx:531
 AliMCAnalysisUtils.cxx:532
 AliMCAnalysisUtils.cxx:533
 AliMCAnalysisUtils.cxx:534
 AliMCAnalysisUtils.cxx:535
 AliMCAnalysisUtils.cxx:536
 AliMCAnalysisUtils.cxx:537
 AliMCAnalysisUtils.cxx:538
 AliMCAnalysisUtils.cxx:539
 AliMCAnalysisUtils.cxx:540
 AliMCAnalysisUtils.cxx:541
 AliMCAnalysisUtils.cxx:542
 AliMCAnalysisUtils.cxx:543
 AliMCAnalysisUtils.cxx:544
 AliMCAnalysisUtils.cxx:545
 AliMCAnalysisUtils.cxx:546
 AliMCAnalysisUtils.cxx:547
 AliMCAnalysisUtils.cxx:548
 AliMCAnalysisUtils.cxx:549
 AliMCAnalysisUtils.cxx:550
 AliMCAnalysisUtils.cxx:551
 AliMCAnalysisUtils.cxx:552
 AliMCAnalysisUtils.cxx:553
 AliMCAnalysisUtils.cxx:554
 AliMCAnalysisUtils.cxx:555
 AliMCAnalysisUtils.cxx:556
 AliMCAnalysisUtils.cxx:557
 AliMCAnalysisUtils.cxx:558
 AliMCAnalysisUtils.cxx:559
 AliMCAnalysisUtils.cxx:560
 AliMCAnalysisUtils.cxx:561
 AliMCAnalysisUtils.cxx:562
 AliMCAnalysisUtils.cxx:563
 AliMCAnalysisUtils.cxx:564
 AliMCAnalysisUtils.cxx:565
 AliMCAnalysisUtils.cxx:566
 AliMCAnalysisUtils.cxx:567
 AliMCAnalysisUtils.cxx:568
 AliMCAnalysisUtils.cxx:569
 AliMCAnalysisUtils.cxx:570
 AliMCAnalysisUtils.cxx:571
 AliMCAnalysisUtils.cxx:572
 AliMCAnalysisUtils.cxx:573
 AliMCAnalysisUtils.cxx:574
 AliMCAnalysisUtils.cxx:575
 AliMCAnalysisUtils.cxx:576
 AliMCAnalysisUtils.cxx:577
 AliMCAnalysisUtils.cxx:578
 AliMCAnalysisUtils.cxx:579
 AliMCAnalysisUtils.cxx:580
 AliMCAnalysisUtils.cxx:581
 AliMCAnalysisUtils.cxx:582
 AliMCAnalysisUtils.cxx:583
 AliMCAnalysisUtils.cxx:584
 AliMCAnalysisUtils.cxx:585
 AliMCAnalysisUtils.cxx:586
 AliMCAnalysisUtils.cxx:587
 AliMCAnalysisUtils.cxx:588
 AliMCAnalysisUtils.cxx:589
 AliMCAnalysisUtils.cxx:590
 AliMCAnalysisUtils.cxx:591
 AliMCAnalysisUtils.cxx:592
 AliMCAnalysisUtils.cxx:593
 AliMCAnalysisUtils.cxx:594
 AliMCAnalysisUtils.cxx:595
 AliMCAnalysisUtils.cxx:596
 AliMCAnalysisUtils.cxx:597
 AliMCAnalysisUtils.cxx:598
 AliMCAnalysisUtils.cxx:599
 AliMCAnalysisUtils.cxx:600
 AliMCAnalysisUtils.cxx:601
 AliMCAnalysisUtils.cxx:602
 AliMCAnalysisUtils.cxx:603
 AliMCAnalysisUtils.cxx:604
 AliMCAnalysisUtils.cxx:605
 AliMCAnalysisUtils.cxx:606
 AliMCAnalysisUtils.cxx:607
 AliMCAnalysisUtils.cxx:608
 AliMCAnalysisUtils.cxx:609
 AliMCAnalysisUtils.cxx:610
 AliMCAnalysisUtils.cxx:611
 AliMCAnalysisUtils.cxx:612
 AliMCAnalysisUtils.cxx:613
 AliMCAnalysisUtils.cxx:614
 AliMCAnalysisUtils.cxx:615
 AliMCAnalysisUtils.cxx:616
 AliMCAnalysisUtils.cxx:617
 AliMCAnalysisUtils.cxx:618
 AliMCAnalysisUtils.cxx:619
 AliMCAnalysisUtils.cxx:620
 AliMCAnalysisUtils.cxx:621
 AliMCAnalysisUtils.cxx:622
 AliMCAnalysisUtils.cxx:623
 AliMCAnalysisUtils.cxx:624
 AliMCAnalysisUtils.cxx:625
 AliMCAnalysisUtils.cxx:626
 AliMCAnalysisUtils.cxx:627
 AliMCAnalysisUtils.cxx:628
 AliMCAnalysisUtils.cxx:629
 AliMCAnalysisUtils.cxx:630
 AliMCAnalysisUtils.cxx:631
 AliMCAnalysisUtils.cxx:632
 AliMCAnalysisUtils.cxx:633
 AliMCAnalysisUtils.cxx:634
 AliMCAnalysisUtils.cxx:635
 AliMCAnalysisUtils.cxx:636
 AliMCAnalysisUtils.cxx:637
 AliMCAnalysisUtils.cxx:638
 AliMCAnalysisUtils.cxx:639
 AliMCAnalysisUtils.cxx:640
 AliMCAnalysisUtils.cxx:641
 AliMCAnalysisUtils.cxx:642
 AliMCAnalysisUtils.cxx:643
 AliMCAnalysisUtils.cxx:644
 AliMCAnalysisUtils.cxx:645
 AliMCAnalysisUtils.cxx:646
 AliMCAnalysisUtils.cxx:647
 AliMCAnalysisUtils.cxx:648
 AliMCAnalysisUtils.cxx:649
 AliMCAnalysisUtils.cxx:650
 AliMCAnalysisUtils.cxx:651
 AliMCAnalysisUtils.cxx:652
 AliMCAnalysisUtils.cxx:653
 AliMCAnalysisUtils.cxx:654
 AliMCAnalysisUtils.cxx:655
 AliMCAnalysisUtils.cxx:656
 AliMCAnalysisUtils.cxx:657
 AliMCAnalysisUtils.cxx:658
 AliMCAnalysisUtils.cxx:659
 AliMCAnalysisUtils.cxx:660
 AliMCAnalysisUtils.cxx:661
 AliMCAnalysisUtils.cxx:662
 AliMCAnalysisUtils.cxx:663
 AliMCAnalysisUtils.cxx:664
 AliMCAnalysisUtils.cxx:665
 AliMCAnalysisUtils.cxx:666
 AliMCAnalysisUtils.cxx:667
 AliMCAnalysisUtils.cxx:668
 AliMCAnalysisUtils.cxx:669
 AliMCAnalysisUtils.cxx:670
 AliMCAnalysisUtils.cxx:671
 AliMCAnalysisUtils.cxx:672
 AliMCAnalysisUtils.cxx:673
 AliMCAnalysisUtils.cxx:674
 AliMCAnalysisUtils.cxx:675
 AliMCAnalysisUtils.cxx:676
 AliMCAnalysisUtils.cxx:677
 AliMCAnalysisUtils.cxx:678
 AliMCAnalysisUtils.cxx:679
 AliMCAnalysisUtils.cxx:680
 AliMCAnalysisUtils.cxx:681
 AliMCAnalysisUtils.cxx:682
 AliMCAnalysisUtils.cxx:683
 AliMCAnalysisUtils.cxx:684
 AliMCAnalysisUtils.cxx:685
 AliMCAnalysisUtils.cxx:686
 AliMCAnalysisUtils.cxx:687
 AliMCAnalysisUtils.cxx:688
 AliMCAnalysisUtils.cxx:689
 AliMCAnalysisUtils.cxx:690
 AliMCAnalysisUtils.cxx:691
 AliMCAnalysisUtils.cxx:692
 AliMCAnalysisUtils.cxx:693
 AliMCAnalysisUtils.cxx:694
 AliMCAnalysisUtils.cxx:695
 AliMCAnalysisUtils.cxx:696
 AliMCAnalysisUtils.cxx:697
 AliMCAnalysisUtils.cxx:698
 AliMCAnalysisUtils.cxx:699
 AliMCAnalysisUtils.cxx:700
 AliMCAnalysisUtils.cxx:701
 AliMCAnalysisUtils.cxx:702
 AliMCAnalysisUtils.cxx:703
 AliMCAnalysisUtils.cxx:704
 AliMCAnalysisUtils.cxx:705
 AliMCAnalysisUtils.cxx:706
 AliMCAnalysisUtils.cxx:707
 AliMCAnalysisUtils.cxx:708
 AliMCAnalysisUtils.cxx:709
 AliMCAnalysisUtils.cxx:710
 AliMCAnalysisUtils.cxx:711
 AliMCAnalysisUtils.cxx:712
 AliMCAnalysisUtils.cxx:713
 AliMCAnalysisUtils.cxx:714
 AliMCAnalysisUtils.cxx:715
 AliMCAnalysisUtils.cxx:716
 AliMCAnalysisUtils.cxx:717
 AliMCAnalysisUtils.cxx:718
 AliMCAnalysisUtils.cxx:719
 AliMCAnalysisUtils.cxx:720
 AliMCAnalysisUtils.cxx:721
 AliMCAnalysisUtils.cxx:722
 AliMCAnalysisUtils.cxx:723
 AliMCAnalysisUtils.cxx:724
 AliMCAnalysisUtils.cxx:725
 AliMCAnalysisUtils.cxx:726
 AliMCAnalysisUtils.cxx:727
 AliMCAnalysisUtils.cxx:728
 AliMCAnalysisUtils.cxx:729
 AliMCAnalysisUtils.cxx:730
 AliMCAnalysisUtils.cxx:731
 AliMCAnalysisUtils.cxx:732
 AliMCAnalysisUtils.cxx:733
 AliMCAnalysisUtils.cxx:734
 AliMCAnalysisUtils.cxx:735
 AliMCAnalysisUtils.cxx:736
 AliMCAnalysisUtils.cxx:737
 AliMCAnalysisUtils.cxx:738
 AliMCAnalysisUtils.cxx:739
 AliMCAnalysisUtils.cxx:740
 AliMCAnalysisUtils.cxx:741
 AliMCAnalysisUtils.cxx:742
 AliMCAnalysisUtils.cxx:743
 AliMCAnalysisUtils.cxx:744
 AliMCAnalysisUtils.cxx:745
 AliMCAnalysisUtils.cxx:746
 AliMCAnalysisUtils.cxx:747
 AliMCAnalysisUtils.cxx:748
 AliMCAnalysisUtils.cxx:749
 AliMCAnalysisUtils.cxx:750
 AliMCAnalysisUtils.cxx:751
 AliMCAnalysisUtils.cxx:752
 AliMCAnalysisUtils.cxx:753
 AliMCAnalysisUtils.cxx:754
 AliMCAnalysisUtils.cxx:755
 AliMCAnalysisUtils.cxx:756
 AliMCAnalysisUtils.cxx:757
 AliMCAnalysisUtils.cxx:758
 AliMCAnalysisUtils.cxx:759
 AliMCAnalysisUtils.cxx:760
 AliMCAnalysisUtils.cxx:761
 AliMCAnalysisUtils.cxx:762
 AliMCAnalysisUtils.cxx:763
 AliMCAnalysisUtils.cxx:764
 AliMCAnalysisUtils.cxx:765
 AliMCAnalysisUtils.cxx:766
 AliMCAnalysisUtils.cxx:767
 AliMCAnalysisUtils.cxx:768
 AliMCAnalysisUtils.cxx:769
 AliMCAnalysisUtils.cxx:770
 AliMCAnalysisUtils.cxx:771
 AliMCAnalysisUtils.cxx:772
 AliMCAnalysisUtils.cxx:773
 AliMCAnalysisUtils.cxx:774
 AliMCAnalysisUtils.cxx:775
 AliMCAnalysisUtils.cxx:776
 AliMCAnalysisUtils.cxx:777
 AliMCAnalysisUtils.cxx:778
 AliMCAnalysisUtils.cxx:779
 AliMCAnalysisUtils.cxx:780
 AliMCAnalysisUtils.cxx:781
 AliMCAnalysisUtils.cxx:782
 AliMCAnalysisUtils.cxx:783
 AliMCAnalysisUtils.cxx:784
 AliMCAnalysisUtils.cxx:785
 AliMCAnalysisUtils.cxx:786
 AliMCAnalysisUtils.cxx:787
 AliMCAnalysisUtils.cxx:788
 AliMCAnalysisUtils.cxx:789
 AliMCAnalysisUtils.cxx:790
 AliMCAnalysisUtils.cxx:791
 AliMCAnalysisUtils.cxx:792
 AliMCAnalysisUtils.cxx:793
 AliMCAnalysisUtils.cxx:794
 AliMCAnalysisUtils.cxx:795
 AliMCAnalysisUtils.cxx:796
 AliMCAnalysisUtils.cxx:797
 AliMCAnalysisUtils.cxx:798
 AliMCAnalysisUtils.cxx:799
 AliMCAnalysisUtils.cxx:800
 AliMCAnalysisUtils.cxx:801
 AliMCAnalysisUtils.cxx:802
 AliMCAnalysisUtils.cxx:803
 AliMCAnalysisUtils.cxx:804
 AliMCAnalysisUtils.cxx:805
 AliMCAnalysisUtils.cxx:806
 AliMCAnalysisUtils.cxx:807
 AliMCAnalysisUtils.cxx:808
 AliMCAnalysisUtils.cxx:809
 AliMCAnalysisUtils.cxx:810
 AliMCAnalysisUtils.cxx:811
 AliMCAnalysisUtils.cxx:812
 AliMCAnalysisUtils.cxx:813
 AliMCAnalysisUtils.cxx:814
 AliMCAnalysisUtils.cxx:815
 AliMCAnalysisUtils.cxx:816
 AliMCAnalysisUtils.cxx:817
 AliMCAnalysisUtils.cxx:818
 AliMCAnalysisUtils.cxx:819
 AliMCAnalysisUtils.cxx:820
 AliMCAnalysisUtils.cxx:821
 AliMCAnalysisUtils.cxx:822
 AliMCAnalysisUtils.cxx:823
 AliMCAnalysisUtils.cxx:824
 AliMCAnalysisUtils.cxx:825
 AliMCAnalysisUtils.cxx:826
 AliMCAnalysisUtils.cxx:827
 AliMCAnalysisUtils.cxx:828
 AliMCAnalysisUtils.cxx:829
 AliMCAnalysisUtils.cxx:830
 AliMCAnalysisUtils.cxx:831
 AliMCAnalysisUtils.cxx:832
 AliMCAnalysisUtils.cxx:833
 AliMCAnalysisUtils.cxx:834
 AliMCAnalysisUtils.cxx:835
 AliMCAnalysisUtils.cxx:836
 AliMCAnalysisUtils.cxx:837
 AliMCAnalysisUtils.cxx:838
 AliMCAnalysisUtils.cxx:839
 AliMCAnalysisUtils.cxx:840
 AliMCAnalysisUtils.cxx:841
 AliMCAnalysisUtils.cxx:842
 AliMCAnalysisUtils.cxx:843
 AliMCAnalysisUtils.cxx:844
 AliMCAnalysisUtils.cxx:845
 AliMCAnalysisUtils.cxx:846
 AliMCAnalysisUtils.cxx:847
 AliMCAnalysisUtils.cxx:848
 AliMCAnalysisUtils.cxx:849
 AliMCAnalysisUtils.cxx:850
 AliMCAnalysisUtils.cxx:851
 AliMCAnalysisUtils.cxx:852
 AliMCAnalysisUtils.cxx:853
 AliMCAnalysisUtils.cxx:854
 AliMCAnalysisUtils.cxx:855
 AliMCAnalysisUtils.cxx:856
 AliMCAnalysisUtils.cxx:857
 AliMCAnalysisUtils.cxx:858
 AliMCAnalysisUtils.cxx:859
 AliMCAnalysisUtils.cxx:860
 AliMCAnalysisUtils.cxx:861
 AliMCAnalysisUtils.cxx:862
 AliMCAnalysisUtils.cxx:863
 AliMCAnalysisUtils.cxx:864
 AliMCAnalysisUtils.cxx:865
 AliMCAnalysisUtils.cxx:866
 AliMCAnalysisUtils.cxx:867
 AliMCAnalysisUtils.cxx:868
 AliMCAnalysisUtils.cxx:869
 AliMCAnalysisUtils.cxx:870
 AliMCAnalysisUtils.cxx:871
 AliMCAnalysisUtils.cxx:872
 AliMCAnalysisUtils.cxx:873
 AliMCAnalysisUtils.cxx:874
 AliMCAnalysisUtils.cxx:875
 AliMCAnalysisUtils.cxx:876
 AliMCAnalysisUtils.cxx:877
 AliMCAnalysisUtils.cxx:878
 AliMCAnalysisUtils.cxx:879
 AliMCAnalysisUtils.cxx:880
 AliMCAnalysisUtils.cxx:881
 AliMCAnalysisUtils.cxx:882
 AliMCAnalysisUtils.cxx:883
 AliMCAnalysisUtils.cxx:884
 AliMCAnalysisUtils.cxx:885
 AliMCAnalysisUtils.cxx:886
 AliMCAnalysisUtils.cxx:887
 AliMCAnalysisUtils.cxx:888
 AliMCAnalysisUtils.cxx:889
 AliMCAnalysisUtils.cxx:890
 AliMCAnalysisUtils.cxx:891
 AliMCAnalysisUtils.cxx:892
 AliMCAnalysisUtils.cxx:893
 AliMCAnalysisUtils.cxx:894
 AliMCAnalysisUtils.cxx:895
 AliMCAnalysisUtils.cxx:896
 AliMCAnalysisUtils.cxx:897
 AliMCAnalysisUtils.cxx:898
 AliMCAnalysisUtils.cxx:899
 AliMCAnalysisUtils.cxx:900
 AliMCAnalysisUtils.cxx:901
 AliMCAnalysisUtils.cxx:902
 AliMCAnalysisUtils.cxx:903
 AliMCAnalysisUtils.cxx:904
 AliMCAnalysisUtils.cxx:905
 AliMCAnalysisUtils.cxx:906
 AliMCAnalysisUtils.cxx:907
 AliMCAnalysisUtils.cxx:908
 AliMCAnalysisUtils.cxx:909
 AliMCAnalysisUtils.cxx:910
 AliMCAnalysisUtils.cxx:911
 AliMCAnalysisUtils.cxx:912
 AliMCAnalysisUtils.cxx:913
 AliMCAnalysisUtils.cxx:914
 AliMCAnalysisUtils.cxx:915
 AliMCAnalysisUtils.cxx:916
 AliMCAnalysisUtils.cxx:917
 AliMCAnalysisUtils.cxx:918
 AliMCAnalysisUtils.cxx:919
 AliMCAnalysisUtils.cxx:920
 AliMCAnalysisUtils.cxx:921
 AliMCAnalysisUtils.cxx:922
 AliMCAnalysisUtils.cxx:923
 AliMCAnalysisUtils.cxx:924
 AliMCAnalysisUtils.cxx:925
 AliMCAnalysisUtils.cxx:926
 AliMCAnalysisUtils.cxx:927
 AliMCAnalysisUtils.cxx:928
 AliMCAnalysisUtils.cxx:929
 AliMCAnalysisUtils.cxx:930
 AliMCAnalysisUtils.cxx:931
 AliMCAnalysisUtils.cxx:932
 AliMCAnalysisUtils.cxx:933
 AliMCAnalysisUtils.cxx:934
 AliMCAnalysisUtils.cxx:935
 AliMCAnalysisUtils.cxx:936
 AliMCAnalysisUtils.cxx:937
 AliMCAnalysisUtils.cxx:938
 AliMCAnalysisUtils.cxx:939
 AliMCAnalysisUtils.cxx:940
 AliMCAnalysisUtils.cxx:941
 AliMCAnalysisUtils.cxx:942
 AliMCAnalysisUtils.cxx:943
 AliMCAnalysisUtils.cxx:944
 AliMCAnalysisUtils.cxx:945
 AliMCAnalysisUtils.cxx:946
 AliMCAnalysisUtils.cxx:947
 AliMCAnalysisUtils.cxx:948
 AliMCAnalysisUtils.cxx:949
 AliMCAnalysisUtils.cxx:950
 AliMCAnalysisUtils.cxx:951
 AliMCAnalysisUtils.cxx:952
 AliMCAnalysisUtils.cxx:953
 AliMCAnalysisUtils.cxx:954
 AliMCAnalysisUtils.cxx:955
 AliMCAnalysisUtils.cxx:956
 AliMCAnalysisUtils.cxx:957
 AliMCAnalysisUtils.cxx:958
 AliMCAnalysisUtils.cxx:959
 AliMCAnalysisUtils.cxx:960
 AliMCAnalysisUtils.cxx:961
 AliMCAnalysisUtils.cxx:962
 AliMCAnalysisUtils.cxx:963
 AliMCAnalysisUtils.cxx:964
 AliMCAnalysisUtils.cxx:965
 AliMCAnalysisUtils.cxx:966
 AliMCAnalysisUtils.cxx:967
 AliMCAnalysisUtils.cxx:968
 AliMCAnalysisUtils.cxx:969
 AliMCAnalysisUtils.cxx:970
 AliMCAnalysisUtils.cxx:971
 AliMCAnalysisUtils.cxx:972
 AliMCAnalysisUtils.cxx:973
 AliMCAnalysisUtils.cxx:974
 AliMCAnalysisUtils.cxx:975
 AliMCAnalysisUtils.cxx:976
 AliMCAnalysisUtils.cxx:977
 AliMCAnalysisUtils.cxx:978
 AliMCAnalysisUtils.cxx:979
 AliMCAnalysisUtils.cxx:980
 AliMCAnalysisUtils.cxx:981
 AliMCAnalysisUtils.cxx:982
 AliMCAnalysisUtils.cxx:983
 AliMCAnalysisUtils.cxx:984
 AliMCAnalysisUtils.cxx:985
 AliMCAnalysisUtils.cxx:986
 AliMCAnalysisUtils.cxx:987
 AliMCAnalysisUtils.cxx:988
 AliMCAnalysisUtils.cxx:989
 AliMCAnalysisUtils.cxx:990
 AliMCAnalysisUtils.cxx:991
 AliMCAnalysisUtils.cxx:992
 AliMCAnalysisUtils.cxx:993
 AliMCAnalysisUtils.cxx:994
 AliMCAnalysisUtils.cxx:995
 AliMCAnalysisUtils.cxx:996
 AliMCAnalysisUtils.cxx:997
 AliMCAnalysisUtils.cxx:998
 AliMCAnalysisUtils.cxx:999
 AliMCAnalysisUtils.cxx:1000
 AliMCAnalysisUtils.cxx:1001
 AliMCAnalysisUtils.cxx:1002
 AliMCAnalysisUtils.cxx:1003
 AliMCAnalysisUtils.cxx:1004
 AliMCAnalysisUtils.cxx:1005
 AliMCAnalysisUtils.cxx:1006
 AliMCAnalysisUtils.cxx:1007
 AliMCAnalysisUtils.cxx:1008
 AliMCAnalysisUtils.cxx:1009
 AliMCAnalysisUtils.cxx:1010
 AliMCAnalysisUtils.cxx:1011
 AliMCAnalysisUtils.cxx:1012
 AliMCAnalysisUtils.cxx:1013
 AliMCAnalysisUtils.cxx:1014
 AliMCAnalysisUtils.cxx:1015
 AliMCAnalysisUtils.cxx:1016
 AliMCAnalysisUtils.cxx:1017
 AliMCAnalysisUtils.cxx:1018
 AliMCAnalysisUtils.cxx:1019
 AliMCAnalysisUtils.cxx:1020
 AliMCAnalysisUtils.cxx:1021
 AliMCAnalysisUtils.cxx:1022
 AliMCAnalysisUtils.cxx:1023
 AliMCAnalysisUtils.cxx:1024
 AliMCAnalysisUtils.cxx:1025
 AliMCAnalysisUtils.cxx:1026
 AliMCAnalysisUtils.cxx:1027
 AliMCAnalysisUtils.cxx:1028
 AliMCAnalysisUtils.cxx:1029
 AliMCAnalysisUtils.cxx:1030
 AliMCAnalysisUtils.cxx:1031
 AliMCAnalysisUtils.cxx:1032
 AliMCAnalysisUtils.cxx:1033
 AliMCAnalysisUtils.cxx:1034
 AliMCAnalysisUtils.cxx:1035
 AliMCAnalysisUtils.cxx:1036
 AliMCAnalysisUtils.cxx:1037
 AliMCAnalysisUtils.cxx:1038
 AliMCAnalysisUtils.cxx:1039
 AliMCAnalysisUtils.cxx:1040
 AliMCAnalysisUtils.cxx:1041
 AliMCAnalysisUtils.cxx:1042
 AliMCAnalysisUtils.cxx:1043
 AliMCAnalysisUtils.cxx:1044
 AliMCAnalysisUtils.cxx:1045
 AliMCAnalysisUtils.cxx:1046
 AliMCAnalysisUtils.cxx:1047
 AliMCAnalysisUtils.cxx:1048
 AliMCAnalysisUtils.cxx:1049
 AliMCAnalysisUtils.cxx:1050
 AliMCAnalysisUtils.cxx:1051
 AliMCAnalysisUtils.cxx:1052
 AliMCAnalysisUtils.cxx:1053
 AliMCAnalysisUtils.cxx:1054
 AliMCAnalysisUtils.cxx:1055
 AliMCAnalysisUtils.cxx:1056
 AliMCAnalysisUtils.cxx:1057
 AliMCAnalysisUtils.cxx:1058
 AliMCAnalysisUtils.cxx:1059
 AliMCAnalysisUtils.cxx:1060
 AliMCAnalysisUtils.cxx:1061
 AliMCAnalysisUtils.cxx:1062
 AliMCAnalysisUtils.cxx:1063
 AliMCAnalysisUtils.cxx:1064
 AliMCAnalysisUtils.cxx:1065
 AliMCAnalysisUtils.cxx:1066
 AliMCAnalysisUtils.cxx:1067
 AliMCAnalysisUtils.cxx:1068
 AliMCAnalysisUtils.cxx:1069
 AliMCAnalysisUtils.cxx:1070
 AliMCAnalysisUtils.cxx:1071
 AliMCAnalysisUtils.cxx:1072
 AliMCAnalysisUtils.cxx:1073
 AliMCAnalysisUtils.cxx:1074
 AliMCAnalysisUtils.cxx:1075
 AliMCAnalysisUtils.cxx:1076
 AliMCAnalysisUtils.cxx:1077
 AliMCAnalysisUtils.cxx:1078
 AliMCAnalysisUtils.cxx:1079
 AliMCAnalysisUtils.cxx:1080
 AliMCAnalysisUtils.cxx:1081
 AliMCAnalysisUtils.cxx:1082
 AliMCAnalysisUtils.cxx:1083
 AliMCAnalysisUtils.cxx:1084
 AliMCAnalysisUtils.cxx:1085
 AliMCAnalysisUtils.cxx:1086
 AliMCAnalysisUtils.cxx:1087
 AliMCAnalysisUtils.cxx:1088
 AliMCAnalysisUtils.cxx:1089
 AliMCAnalysisUtils.cxx:1090
 AliMCAnalysisUtils.cxx:1091
 AliMCAnalysisUtils.cxx:1092
 AliMCAnalysisUtils.cxx:1093
 AliMCAnalysisUtils.cxx:1094
 AliMCAnalysisUtils.cxx:1095
 AliMCAnalysisUtils.cxx:1096
 AliMCAnalysisUtils.cxx:1097
 AliMCAnalysisUtils.cxx:1098
 AliMCAnalysisUtils.cxx:1099
 AliMCAnalysisUtils.cxx:1100
 AliMCAnalysisUtils.cxx:1101
 AliMCAnalysisUtils.cxx:1102
 AliMCAnalysisUtils.cxx:1103
 AliMCAnalysisUtils.cxx:1104
 AliMCAnalysisUtils.cxx:1105
 AliMCAnalysisUtils.cxx:1106
 AliMCAnalysisUtils.cxx:1107
 AliMCAnalysisUtils.cxx:1108
 AliMCAnalysisUtils.cxx:1109
 AliMCAnalysisUtils.cxx:1110
 AliMCAnalysisUtils.cxx:1111
 AliMCAnalysisUtils.cxx:1112
 AliMCAnalysisUtils.cxx:1113
 AliMCAnalysisUtils.cxx:1114
 AliMCAnalysisUtils.cxx:1115
 AliMCAnalysisUtils.cxx:1116
 AliMCAnalysisUtils.cxx:1117
 AliMCAnalysisUtils.cxx:1118
 AliMCAnalysisUtils.cxx:1119
 AliMCAnalysisUtils.cxx:1120
 AliMCAnalysisUtils.cxx:1121
 AliMCAnalysisUtils.cxx:1122
 AliMCAnalysisUtils.cxx:1123
 AliMCAnalysisUtils.cxx:1124
 AliMCAnalysisUtils.cxx:1125
 AliMCAnalysisUtils.cxx:1126
 AliMCAnalysisUtils.cxx:1127
 AliMCAnalysisUtils.cxx:1128
 AliMCAnalysisUtils.cxx:1129
 AliMCAnalysisUtils.cxx:1130
 AliMCAnalysisUtils.cxx:1131
 AliMCAnalysisUtils.cxx:1132
 AliMCAnalysisUtils.cxx:1133
 AliMCAnalysisUtils.cxx:1134
 AliMCAnalysisUtils.cxx:1135
 AliMCAnalysisUtils.cxx:1136
 AliMCAnalysisUtils.cxx:1137
 AliMCAnalysisUtils.cxx:1138
 AliMCAnalysisUtils.cxx:1139
 AliMCAnalysisUtils.cxx:1140
 AliMCAnalysisUtils.cxx:1141
 AliMCAnalysisUtils.cxx:1142
 AliMCAnalysisUtils.cxx:1143
 AliMCAnalysisUtils.cxx:1144
 AliMCAnalysisUtils.cxx:1145
 AliMCAnalysisUtils.cxx:1146
 AliMCAnalysisUtils.cxx:1147
 AliMCAnalysisUtils.cxx:1148
 AliMCAnalysisUtils.cxx:1149
 AliMCAnalysisUtils.cxx:1150
 AliMCAnalysisUtils.cxx:1151
 AliMCAnalysisUtils.cxx:1152
 AliMCAnalysisUtils.cxx:1153
 AliMCAnalysisUtils.cxx:1154
 AliMCAnalysisUtils.cxx:1155
 AliMCAnalysisUtils.cxx:1156
 AliMCAnalysisUtils.cxx:1157
 AliMCAnalysisUtils.cxx:1158
 AliMCAnalysisUtils.cxx:1159
 AliMCAnalysisUtils.cxx:1160
 AliMCAnalysisUtils.cxx:1161
 AliMCAnalysisUtils.cxx:1162
 AliMCAnalysisUtils.cxx:1163
 AliMCAnalysisUtils.cxx:1164
 AliMCAnalysisUtils.cxx:1165
 AliMCAnalysisUtils.cxx:1166
 AliMCAnalysisUtils.cxx:1167
 AliMCAnalysisUtils.cxx:1168
 AliMCAnalysisUtils.cxx:1169
 AliMCAnalysisUtils.cxx:1170
 AliMCAnalysisUtils.cxx:1171
 AliMCAnalysisUtils.cxx:1172
 AliMCAnalysisUtils.cxx:1173
 AliMCAnalysisUtils.cxx:1174
 AliMCAnalysisUtils.cxx:1175
 AliMCAnalysisUtils.cxx:1176
 AliMCAnalysisUtils.cxx:1177
 AliMCAnalysisUtils.cxx:1178
 AliMCAnalysisUtils.cxx:1179
 AliMCAnalysisUtils.cxx:1180
 AliMCAnalysisUtils.cxx:1181
 AliMCAnalysisUtils.cxx:1182
 AliMCAnalysisUtils.cxx:1183
 AliMCAnalysisUtils.cxx:1184
 AliMCAnalysisUtils.cxx:1185
 AliMCAnalysisUtils.cxx:1186
 AliMCAnalysisUtils.cxx:1187
 AliMCAnalysisUtils.cxx:1188
 AliMCAnalysisUtils.cxx:1189
 AliMCAnalysisUtils.cxx:1190
 AliMCAnalysisUtils.cxx:1191
 AliMCAnalysisUtils.cxx:1192
 AliMCAnalysisUtils.cxx:1193
 AliMCAnalysisUtils.cxx:1194
 AliMCAnalysisUtils.cxx:1195
 AliMCAnalysisUtils.cxx:1196
 AliMCAnalysisUtils.cxx:1197
 AliMCAnalysisUtils.cxx:1198
 AliMCAnalysisUtils.cxx:1199
 AliMCAnalysisUtils.cxx:1200
 AliMCAnalysisUtils.cxx:1201
 AliMCAnalysisUtils.cxx:1202
 AliMCAnalysisUtils.cxx:1203
 AliMCAnalysisUtils.cxx:1204
 AliMCAnalysisUtils.cxx:1205
 AliMCAnalysisUtils.cxx:1206
 AliMCAnalysisUtils.cxx:1207
 AliMCAnalysisUtils.cxx:1208
 AliMCAnalysisUtils.cxx:1209
 AliMCAnalysisUtils.cxx:1210
 AliMCAnalysisUtils.cxx:1211
 AliMCAnalysisUtils.cxx:1212
 AliMCAnalysisUtils.cxx:1213
 AliMCAnalysisUtils.cxx:1214
 AliMCAnalysisUtils.cxx:1215
 AliMCAnalysisUtils.cxx:1216
 AliMCAnalysisUtils.cxx:1217
 AliMCAnalysisUtils.cxx:1218
 AliMCAnalysisUtils.cxx:1219
 AliMCAnalysisUtils.cxx:1220
 AliMCAnalysisUtils.cxx:1221
 AliMCAnalysisUtils.cxx:1222
 AliMCAnalysisUtils.cxx:1223
 AliMCAnalysisUtils.cxx:1224
 AliMCAnalysisUtils.cxx:1225
 AliMCAnalysisUtils.cxx:1226
 AliMCAnalysisUtils.cxx:1227
 AliMCAnalysisUtils.cxx:1228
 AliMCAnalysisUtils.cxx:1229
 AliMCAnalysisUtils.cxx:1230
 AliMCAnalysisUtils.cxx:1231
 AliMCAnalysisUtils.cxx:1232
 AliMCAnalysisUtils.cxx:1233
 AliMCAnalysisUtils.cxx:1234
 AliMCAnalysisUtils.cxx:1235
 AliMCAnalysisUtils.cxx:1236
 AliMCAnalysisUtils.cxx:1237
 AliMCAnalysisUtils.cxx:1238
 AliMCAnalysisUtils.cxx:1239
 AliMCAnalysisUtils.cxx:1240
 AliMCAnalysisUtils.cxx:1241
 AliMCAnalysisUtils.cxx:1242
 AliMCAnalysisUtils.cxx:1243
 AliMCAnalysisUtils.cxx:1244
 AliMCAnalysisUtils.cxx:1245
 AliMCAnalysisUtils.cxx:1246
 AliMCAnalysisUtils.cxx:1247
 AliMCAnalysisUtils.cxx:1248
 AliMCAnalysisUtils.cxx:1249
 AliMCAnalysisUtils.cxx:1250
 AliMCAnalysisUtils.cxx:1251
 AliMCAnalysisUtils.cxx:1252
 AliMCAnalysisUtils.cxx:1253
 AliMCAnalysisUtils.cxx:1254
 AliMCAnalysisUtils.cxx:1255
 AliMCAnalysisUtils.cxx:1256
 AliMCAnalysisUtils.cxx:1257
 AliMCAnalysisUtils.cxx:1258
 AliMCAnalysisUtils.cxx:1259
 AliMCAnalysisUtils.cxx:1260
 AliMCAnalysisUtils.cxx:1261
 AliMCAnalysisUtils.cxx:1262
 AliMCAnalysisUtils.cxx:1263
 AliMCAnalysisUtils.cxx:1264
 AliMCAnalysisUtils.cxx:1265
 AliMCAnalysisUtils.cxx:1266
 AliMCAnalysisUtils.cxx:1267
 AliMCAnalysisUtils.cxx:1268
 AliMCAnalysisUtils.cxx:1269
 AliMCAnalysisUtils.cxx:1270
 AliMCAnalysisUtils.cxx:1271
 AliMCAnalysisUtils.cxx:1272
 AliMCAnalysisUtils.cxx:1273
 AliMCAnalysisUtils.cxx:1274
 AliMCAnalysisUtils.cxx:1275
 AliMCAnalysisUtils.cxx:1276
 AliMCAnalysisUtils.cxx:1277
 AliMCAnalysisUtils.cxx:1278
 AliMCAnalysisUtils.cxx:1279
 AliMCAnalysisUtils.cxx:1280
 AliMCAnalysisUtils.cxx:1281
 AliMCAnalysisUtils.cxx:1282
 AliMCAnalysisUtils.cxx:1283
 AliMCAnalysisUtils.cxx:1284
 AliMCAnalysisUtils.cxx:1285
 AliMCAnalysisUtils.cxx:1286
 AliMCAnalysisUtils.cxx:1287
 AliMCAnalysisUtils.cxx:1288
 AliMCAnalysisUtils.cxx:1289
 AliMCAnalysisUtils.cxx:1290
 AliMCAnalysisUtils.cxx:1291
 AliMCAnalysisUtils.cxx:1292
 AliMCAnalysisUtils.cxx:1293
 AliMCAnalysisUtils.cxx:1294
 AliMCAnalysisUtils.cxx:1295
 AliMCAnalysisUtils.cxx:1296
 AliMCAnalysisUtils.cxx:1297
 AliMCAnalysisUtils.cxx:1298
 AliMCAnalysisUtils.cxx:1299
 AliMCAnalysisUtils.cxx:1300
 AliMCAnalysisUtils.cxx:1301
 AliMCAnalysisUtils.cxx:1302
 AliMCAnalysisUtils.cxx:1303
 AliMCAnalysisUtils.cxx:1304
 AliMCAnalysisUtils.cxx:1305
 AliMCAnalysisUtils.cxx:1306
 AliMCAnalysisUtils.cxx:1307
 AliMCAnalysisUtils.cxx:1308
 AliMCAnalysisUtils.cxx:1309
 AliMCAnalysisUtils.cxx:1310
 AliMCAnalysisUtils.cxx:1311
 AliMCAnalysisUtils.cxx:1312
 AliMCAnalysisUtils.cxx:1313
 AliMCAnalysisUtils.cxx:1314
 AliMCAnalysisUtils.cxx:1315
 AliMCAnalysisUtils.cxx:1316
 AliMCAnalysisUtils.cxx:1317
 AliMCAnalysisUtils.cxx:1318
 AliMCAnalysisUtils.cxx:1319
 AliMCAnalysisUtils.cxx:1320
 AliMCAnalysisUtils.cxx:1321
 AliMCAnalysisUtils.cxx:1322
 AliMCAnalysisUtils.cxx:1323
 AliMCAnalysisUtils.cxx:1324
 AliMCAnalysisUtils.cxx:1325
 AliMCAnalysisUtils.cxx:1326
 AliMCAnalysisUtils.cxx:1327
 AliMCAnalysisUtils.cxx:1328
 AliMCAnalysisUtils.cxx:1329
 AliMCAnalysisUtils.cxx:1330
 AliMCAnalysisUtils.cxx:1331
 AliMCAnalysisUtils.cxx:1332
 AliMCAnalysisUtils.cxx:1333
 AliMCAnalysisUtils.cxx:1334
 AliMCAnalysisUtils.cxx:1335
 AliMCAnalysisUtils.cxx:1336
 AliMCAnalysisUtils.cxx:1337
 AliMCAnalysisUtils.cxx:1338
 AliMCAnalysisUtils.cxx:1339
 AliMCAnalysisUtils.cxx:1340
 AliMCAnalysisUtils.cxx:1341
 AliMCAnalysisUtils.cxx:1342
 AliMCAnalysisUtils.cxx:1343
 AliMCAnalysisUtils.cxx:1344
 AliMCAnalysisUtils.cxx:1345
 AliMCAnalysisUtils.cxx:1346
 AliMCAnalysisUtils.cxx:1347
 AliMCAnalysisUtils.cxx:1348
 AliMCAnalysisUtils.cxx:1349
 AliMCAnalysisUtils.cxx:1350
 AliMCAnalysisUtils.cxx:1351
 AliMCAnalysisUtils.cxx:1352
 AliMCAnalysisUtils.cxx:1353
 AliMCAnalysisUtils.cxx:1354
 AliMCAnalysisUtils.cxx:1355
 AliMCAnalysisUtils.cxx:1356
 AliMCAnalysisUtils.cxx:1357
 AliMCAnalysisUtils.cxx:1358
 AliMCAnalysisUtils.cxx:1359
 AliMCAnalysisUtils.cxx:1360
 AliMCAnalysisUtils.cxx:1361
 AliMCAnalysisUtils.cxx:1362
 AliMCAnalysisUtils.cxx:1363
 AliMCAnalysisUtils.cxx:1364
 AliMCAnalysisUtils.cxx:1365
 AliMCAnalysisUtils.cxx:1366
 AliMCAnalysisUtils.cxx:1367
 AliMCAnalysisUtils.cxx:1368
 AliMCAnalysisUtils.cxx:1369
 AliMCAnalysisUtils.cxx:1370
 AliMCAnalysisUtils.cxx:1371
 AliMCAnalysisUtils.cxx:1372
 AliMCAnalysisUtils.cxx:1373
 AliMCAnalysisUtils.cxx:1374
 AliMCAnalysisUtils.cxx:1375
 AliMCAnalysisUtils.cxx:1376
 AliMCAnalysisUtils.cxx:1377
 AliMCAnalysisUtils.cxx:1378
 AliMCAnalysisUtils.cxx:1379
 AliMCAnalysisUtils.cxx:1380
 AliMCAnalysisUtils.cxx:1381
 AliMCAnalysisUtils.cxx:1382
 AliMCAnalysisUtils.cxx:1383
 AliMCAnalysisUtils.cxx:1384
 AliMCAnalysisUtils.cxx:1385
 AliMCAnalysisUtils.cxx:1386
 AliMCAnalysisUtils.cxx:1387
 AliMCAnalysisUtils.cxx:1388
 AliMCAnalysisUtils.cxx:1389
 AliMCAnalysisUtils.cxx:1390
 AliMCAnalysisUtils.cxx:1391
 AliMCAnalysisUtils.cxx:1392
 AliMCAnalysisUtils.cxx:1393
 AliMCAnalysisUtils.cxx:1394
 AliMCAnalysisUtils.cxx:1395
 AliMCAnalysisUtils.cxx:1396
 AliMCAnalysisUtils.cxx:1397
 AliMCAnalysisUtils.cxx:1398
 AliMCAnalysisUtils.cxx:1399
 AliMCAnalysisUtils.cxx:1400
 AliMCAnalysisUtils.cxx:1401
 AliMCAnalysisUtils.cxx:1402
 AliMCAnalysisUtils.cxx:1403
 AliMCAnalysisUtils.cxx:1404
 AliMCAnalysisUtils.cxx:1405
 AliMCAnalysisUtils.cxx:1406
 AliMCAnalysisUtils.cxx:1407
 AliMCAnalysisUtils.cxx:1408
 AliMCAnalysisUtils.cxx:1409
 AliMCAnalysisUtils.cxx:1410
 AliMCAnalysisUtils.cxx:1411
 AliMCAnalysisUtils.cxx:1412
 AliMCAnalysisUtils.cxx:1413
 AliMCAnalysisUtils.cxx:1414
 AliMCAnalysisUtils.cxx:1415
 AliMCAnalysisUtils.cxx:1416
 AliMCAnalysisUtils.cxx:1417
 AliMCAnalysisUtils.cxx:1418
 AliMCAnalysisUtils.cxx:1419
 AliMCAnalysisUtils.cxx:1420
 AliMCAnalysisUtils.cxx:1421
 AliMCAnalysisUtils.cxx:1422
 AliMCAnalysisUtils.cxx:1423
 AliMCAnalysisUtils.cxx:1424
 AliMCAnalysisUtils.cxx:1425
 AliMCAnalysisUtils.cxx:1426
 AliMCAnalysisUtils.cxx:1427
 AliMCAnalysisUtils.cxx:1428
 AliMCAnalysisUtils.cxx:1429
 AliMCAnalysisUtils.cxx:1430
 AliMCAnalysisUtils.cxx:1431
 AliMCAnalysisUtils.cxx:1432
 AliMCAnalysisUtils.cxx:1433
 AliMCAnalysisUtils.cxx:1434
 AliMCAnalysisUtils.cxx:1435
 AliMCAnalysisUtils.cxx:1436
 AliMCAnalysisUtils.cxx:1437
 AliMCAnalysisUtils.cxx:1438
 AliMCAnalysisUtils.cxx:1439
 AliMCAnalysisUtils.cxx:1440
 AliMCAnalysisUtils.cxx:1441
 AliMCAnalysisUtils.cxx:1442
 AliMCAnalysisUtils.cxx:1443
 AliMCAnalysisUtils.cxx:1444
 AliMCAnalysisUtils.cxx:1445
 AliMCAnalysisUtils.cxx:1446
 AliMCAnalysisUtils.cxx:1447
 AliMCAnalysisUtils.cxx:1448
 AliMCAnalysisUtils.cxx:1449
 AliMCAnalysisUtils.cxx:1450
 AliMCAnalysisUtils.cxx:1451
 AliMCAnalysisUtils.cxx:1452
 AliMCAnalysisUtils.cxx:1453
 AliMCAnalysisUtils.cxx:1454
 AliMCAnalysisUtils.cxx:1455
 AliMCAnalysisUtils.cxx:1456
 AliMCAnalysisUtils.cxx:1457
 AliMCAnalysisUtils.cxx:1458
 AliMCAnalysisUtils.cxx:1459
 AliMCAnalysisUtils.cxx:1460
 AliMCAnalysisUtils.cxx:1461
 AliMCAnalysisUtils.cxx:1462
 AliMCAnalysisUtils.cxx:1463
 AliMCAnalysisUtils.cxx:1464
 AliMCAnalysisUtils.cxx:1465
 AliMCAnalysisUtils.cxx:1466
 AliMCAnalysisUtils.cxx:1467
 AliMCAnalysisUtils.cxx:1468
 AliMCAnalysisUtils.cxx:1469
 AliMCAnalysisUtils.cxx:1470
 AliMCAnalysisUtils.cxx:1471
 AliMCAnalysisUtils.cxx:1472
 AliMCAnalysisUtils.cxx:1473
 AliMCAnalysisUtils.cxx:1474
 AliMCAnalysisUtils.cxx:1475
 AliMCAnalysisUtils.cxx:1476
 AliMCAnalysisUtils.cxx:1477
 AliMCAnalysisUtils.cxx:1478
 AliMCAnalysisUtils.cxx:1479
 AliMCAnalysisUtils.cxx:1480
 AliMCAnalysisUtils.cxx:1481
 AliMCAnalysisUtils.cxx:1482
 AliMCAnalysisUtils.cxx:1483
 AliMCAnalysisUtils.cxx:1484
 AliMCAnalysisUtils.cxx:1485
 AliMCAnalysisUtils.cxx:1486
 AliMCAnalysisUtils.cxx:1487
 AliMCAnalysisUtils.cxx:1488
 AliMCAnalysisUtils.cxx:1489
 AliMCAnalysisUtils.cxx:1490
 AliMCAnalysisUtils.cxx:1491
 AliMCAnalysisUtils.cxx:1492
 AliMCAnalysisUtils.cxx:1493
 AliMCAnalysisUtils.cxx:1494
 AliMCAnalysisUtils.cxx:1495
 AliMCAnalysisUtils.cxx:1496
 AliMCAnalysisUtils.cxx:1497
 AliMCAnalysisUtils.cxx:1498
 AliMCAnalysisUtils.cxx:1499
 AliMCAnalysisUtils.cxx:1500
 AliMCAnalysisUtils.cxx:1501
 AliMCAnalysisUtils.cxx:1502
 AliMCAnalysisUtils.cxx:1503
 AliMCAnalysisUtils.cxx:1504
 AliMCAnalysisUtils.cxx:1505
 AliMCAnalysisUtils.cxx:1506
 AliMCAnalysisUtils.cxx:1507
 AliMCAnalysisUtils.cxx:1508
 AliMCAnalysisUtils.cxx:1509
 AliMCAnalysisUtils.cxx:1510
 AliMCAnalysisUtils.cxx:1511
 AliMCAnalysisUtils.cxx:1512
 AliMCAnalysisUtils.cxx:1513
 AliMCAnalysisUtils.cxx:1514
 AliMCAnalysisUtils.cxx:1515
 AliMCAnalysisUtils.cxx:1516
 AliMCAnalysisUtils.cxx:1517
 AliMCAnalysisUtils.cxx:1518
 AliMCAnalysisUtils.cxx:1519
 AliMCAnalysisUtils.cxx:1520
 AliMCAnalysisUtils.cxx:1521
 AliMCAnalysisUtils.cxx:1522
 AliMCAnalysisUtils.cxx:1523
 AliMCAnalysisUtils.cxx:1524
 AliMCAnalysisUtils.cxx:1525
 AliMCAnalysisUtils.cxx:1526
 AliMCAnalysisUtils.cxx:1527
 AliMCAnalysisUtils.cxx:1528
 AliMCAnalysisUtils.cxx:1529
 AliMCAnalysisUtils.cxx:1530
 AliMCAnalysisUtils.cxx:1531
 AliMCAnalysisUtils.cxx:1532
 AliMCAnalysisUtils.cxx:1533
 AliMCAnalysisUtils.cxx:1534
 AliMCAnalysisUtils.cxx:1535
 AliMCAnalysisUtils.cxx:1536
 AliMCAnalysisUtils.cxx:1537
 AliMCAnalysisUtils.cxx:1538
 AliMCAnalysisUtils.cxx:1539
 AliMCAnalysisUtils.cxx:1540
 AliMCAnalysisUtils.cxx:1541
 AliMCAnalysisUtils.cxx:1542
 AliMCAnalysisUtils.cxx:1543
 AliMCAnalysisUtils.cxx:1544
 AliMCAnalysisUtils.cxx:1545
 AliMCAnalysisUtils.cxx:1546
 AliMCAnalysisUtils.cxx:1547
 AliMCAnalysisUtils.cxx:1548
 AliMCAnalysisUtils.cxx:1549
 AliMCAnalysisUtils.cxx:1550
 AliMCAnalysisUtils.cxx:1551
 AliMCAnalysisUtils.cxx:1552
 AliMCAnalysisUtils.cxx:1553
 AliMCAnalysisUtils.cxx:1554
 AliMCAnalysisUtils.cxx:1555
 AliMCAnalysisUtils.cxx:1556
 AliMCAnalysisUtils.cxx:1557
 AliMCAnalysisUtils.cxx:1558
 AliMCAnalysisUtils.cxx:1559
 AliMCAnalysisUtils.cxx:1560
 AliMCAnalysisUtils.cxx:1561
 AliMCAnalysisUtils.cxx:1562
 AliMCAnalysisUtils.cxx:1563
 AliMCAnalysisUtils.cxx:1564
 AliMCAnalysisUtils.cxx:1565
 AliMCAnalysisUtils.cxx:1566
 AliMCAnalysisUtils.cxx:1567
 AliMCAnalysisUtils.cxx:1568
 AliMCAnalysisUtils.cxx:1569
 AliMCAnalysisUtils.cxx:1570
 AliMCAnalysisUtils.cxx:1571
 AliMCAnalysisUtils.cxx:1572
 AliMCAnalysisUtils.cxx:1573
 AliMCAnalysisUtils.cxx:1574
 AliMCAnalysisUtils.cxx:1575
 AliMCAnalysisUtils.cxx:1576
 AliMCAnalysisUtils.cxx:1577
 AliMCAnalysisUtils.cxx:1578
 AliMCAnalysisUtils.cxx:1579
 AliMCAnalysisUtils.cxx:1580
 AliMCAnalysisUtils.cxx:1581
 AliMCAnalysisUtils.cxx:1582
 AliMCAnalysisUtils.cxx:1583
 AliMCAnalysisUtils.cxx:1584
 AliMCAnalysisUtils.cxx:1585
 AliMCAnalysisUtils.cxx:1586
 AliMCAnalysisUtils.cxx:1587
 AliMCAnalysisUtils.cxx:1588
 AliMCAnalysisUtils.cxx:1589
 AliMCAnalysisUtils.cxx:1590
 AliMCAnalysisUtils.cxx:1591
 AliMCAnalysisUtils.cxx:1592
 AliMCAnalysisUtils.cxx:1593
 AliMCAnalysisUtils.cxx:1594
 AliMCAnalysisUtils.cxx:1595
 AliMCAnalysisUtils.cxx:1596
 AliMCAnalysisUtils.cxx:1597
 AliMCAnalysisUtils.cxx:1598
 AliMCAnalysisUtils.cxx:1599
 AliMCAnalysisUtils.cxx:1600
 AliMCAnalysisUtils.cxx:1601
 AliMCAnalysisUtils.cxx:1602
 AliMCAnalysisUtils.cxx:1603
 AliMCAnalysisUtils.cxx:1604
 AliMCAnalysisUtils.cxx:1605
 AliMCAnalysisUtils.cxx:1606
 AliMCAnalysisUtils.cxx:1607
 AliMCAnalysisUtils.cxx:1608
 AliMCAnalysisUtils.cxx:1609
 AliMCAnalysisUtils.cxx:1610
 AliMCAnalysisUtils.cxx:1611
 AliMCAnalysisUtils.cxx:1612
 AliMCAnalysisUtils.cxx:1613
 AliMCAnalysisUtils.cxx:1614
 AliMCAnalysisUtils.cxx:1615
 AliMCAnalysisUtils.cxx:1616
 AliMCAnalysisUtils.cxx:1617
 AliMCAnalysisUtils.cxx:1618
 AliMCAnalysisUtils.cxx:1619
 AliMCAnalysisUtils.cxx:1620
 AliMCAnalysisUtils.cxx:1621
 AliMCAnalysisUtils.cxx:1622
 AliMCAnalysisUtils.cxx:1623
 AliMCAnalysisUtils.cxx:1624
 AliMCAnalysisUtils.cxx:1625
 AliMCAnalysisUtils.cxx:1626
 AliMCAnalysisUtils.cxx:1627
 AliMCAnalysisUtils.cxx:1628
 AliMCAnalysisUtils.cxx:1629
 AliMCAnalysisUtils.cxx:1630
 AliMCAnalysisUtils.cxx:1631
 AliMCAnalysisUtils.cxx:1632
 AliMCAnalysisUtils.cxx:1633
 AliMCAnalysisUtils.cxx:1634
 AliMCAnalysisUtils.cxx:1635
 AliMCAnalysisUtils.cxx:1636
 AliMCAnalysisUtils.cxx:1637
 AliMCAnalysisUtils.cxx:1638
 AliMCAnalysisUtils.cxx:1639
 AliMCAnalysisUtils.cxx:1640
 AliMCAnalysisUtils.cxx:1641
 AliMCAnalysisUtils.cxx:1642
 AliMCAnalysisUtils.cxx:1643
 AliMCAnalysisUtils.cxx:1644
 AliMCAnalysisUtils.cxx:1645
 AliMCAnalysisUtils.cxx:1646
 AliMCAnalysisUtils.cxx:1647
 AliMCAnalysisUtils.cxx:1648
 AliMCAnalysisUtils.cxx:1649
 AliMCAnalysisUtils.cxx:1650
 AliMCAnalysisUtils.cxx:1651
 AliMCAnalysisUtils.cxx:1652
 AliMCAnalysisUtils.cxx:1653
 AliMCAnalysisUtils.cxx:1654
 AliMCAnalysisUtils.cxx:1655
 AliMCAnalysisUtils.cxx:1656
 AliMCAnalysisUtils.cxx:1657
 AliMCAnalysisUtils.cxx:1658
 AliMCAnalysisUtils.cxx:1659
 AliMCAnalysisUtils.cxx:1660
 AliMCAnalysisUtils.cxx:1661
 AliMCAnalysisUtils.cxx:1662
 AliMCAnalysisUtils.cxx:1663
 AliMCAnalysisUtils.cxx:1664
 AliMCAnalysisUtils.cxx:1665
 AliMCAnalysisUtils.cxx:1666
 AliMCAnalysisUtils.cxx:1667
 AliMCAnalysisUtils.cxx:1668
 AliMCAnalysisUtils.cxx:1669
 AliMCAnalysisUtils.cxx:1670
 AliMCAnalysisUtils.cxx:1671
 AliMCAnalysisUtils.cxx:1672
 AliMCAnalysisUtils.cxx:1673
 AliMCAnalysisUtils.cxx:1674
 AliMCAnalysisUtils.cxx:1675
 AliMCAnalysisUtils.cxx:1676
 AliMCAnalysisUtils.cxx:1677
 AliMCAnalysisUtils.cxx:1678
 AliMCAnalysisUtils.cxx:1679
 AliMCAnalysisUtils.cxx:1680
 AliMCAnalysisUtils.cxx:1681
 AliMCAnalysisUtils.cxx:1682
 AliMCAnalysisUtils.cxx:1683
 AliMCAnalysisUtils.cxx:1684
 AliMCAnalysisUtils.cxx:1685
 AliMCAnalysisUtils.cxx:1686
 AliMCAnalysisUtils.cxx:1687
 AliMCAnalysisUtils.cxx:1688
 AliMCAnalysisUtils.cxx:1689
 AliMCAnalysisUtils.cxx:1690
 AliMCAnalysisUtils.cxx:1691
 AliMCAnalysisUtils.cxx:1692
 AliMCAnalysisUtils.cxx:1693
 AliMCAnalysisUtils.cxx:1694
 AliMCAnalysisUtils.cxx:1695
 AliMCAnalysisUtils.cxx:1696
 AliMCAnalysisUtils.cxx:1697
 AliMCAnalysisUtils.cxx:1698
 AliMCAnalysisUtils.cxx:1699
 AliMCAnalysisUtils.cxx:1700
 AliMCAnalysisUtils.cxx:1701
 AliMCAnalysisUtils.cxx:1702
 AliMCAnalysisUtils.cxx:1703
 AliMCAnalysisUtils.cxx:1704
 AliMCAnalysisUtils.cxx:1705
 AliMCAnalysisUtils.cxx:1706
 AliMCAnalysisUtils.cxx:1707
 AliMCAnalysisUtils.cxx:1708
 AliMCAnalysisUtils.cxx:1709
 AliMCAnalysisUtils.cxx:1710
 AliMCAnalysisUtils.cxx:1711
 AliMCAnalysisUtils.cxx:1712
 AliMCAnalysisUtils.cxx:1713
 AliMCAnalysisUtils.cxx:1714
 AliMCAnalysisUtils.cxx:1715
 AliMCAnalysisUtils.cxx:1716
 AliMCAnalysisUtils.cxx:1717
 AliMCAnalysisUtils.cxx:1718
 AliMCAnalysisUtils.cxx:1719
 AliMCAnalysisUtils.cxx:1720
 AliMCAnalysisUtils.cxx:1721
 AliMCAnalysisUtils.cxx:1722
 AliMCAnalysisUtils.cxx:1723
 AliMCAnalysisUtils.cxx:1724
 AliMCAnalysisUtils.cxx:1725
 AliMCAnalysisUtils.cxx:1726
 AliMCAnalysisUtils.cxx:1727
 AliMCAnalysisUtils.cxx:1728
 AliMCAnalysisUtils.cxx:1729
 AliMCAnalysisUtils.cxx:1730
 AliMCAnalysisUtils.cxx:1731
 AliMCAnalysisUtils.cxx:1732
 AliMCAnalysisUtils.cxx:1733
 AliMCAnalysisUtils.cxx:1734
 AliMCAnalysisUtils.cxx:1735
 AliMCAnalysisUtils.cxx:1736
 AliMCAnalysisUtils.cxx:1737
 AliMCAnalysisUtils.cxx:1738
 AliMCAnalysisUtils.cxx:1739
 AliMCAnalysisUtils.cxx:1740
 AliMCAnalysisUtils.cxx:1741
 AliMCAnalysisUtils.cxx:1742
 AliMCAnalysisUtils.cxx:1743
 AliMCAnalysisUtils.cxx:1744
 AliMCAnalysisUtils.cxx:1745
 AliMCAnalysisUtils.cxx:1746
 AliMCAnalysisUtils.cxx:1747
 AliMCAnalysisUtils.cxx:1748
 AliMCAnalysisUtils.cxx:1749
 AliMCAnalysisUtils.cxx:1750
 AliMCAnalysisUtils.cxx:1751
 AliMCAnalysisUtils.cxx:1752
 AliMCAnalysisUtils.cxx:1753
 AliMCAnalysisUtils.cxx:1754
 AliMCAnalysisUtils.cxx:1755
 AliMCAnalysisUtils.cxx:1756
 AliMCAnalysisUtils.cxx:1757
 AliMCAnalysisUtils.cxx:1758
 AliMCAnalysisUtils.cxx:1759
 AliMCAnalysisUtils.cxx:1760
 AliMCAnalysisUtils.cxx:1761
 AliMCAnalysisUtils.cxx:1762
 AliMCAnalysisUtils.cxx:1763
 AliMCAnalysisUtils.cxx:1764
 AliMCAnalysisUtils.cxx:1765
 AliMCAnalysisUtils.cxx:1766
 AliMCAnalysisUtils.cxx:1767
 AliMCAnalysisUtils.cxx:1768
 AliMCAnalysisUtils.cxx:1769
 AliMCAnalysisUtils.cxx:1770
 AliMCAnalysisUtils.cxx:1771
 AliMCAnalysisUtils.cxx:1772
 AliMCAnalysisUtils.cxx:1773
 AliMCAnalysisUtils.cxx:1774
 AliMCAnalysisUtils.cxx:1775
 AliMCAnalysisUtils.cxx:1776
 AliMCAnalysisUtils.cxx:1777
 AliMCAnalysisUtils.cxx:1778
 AliMCAnalysisUtils.cxx:1779
 AliMCAnalysisUtils.cxx:1780
 AliMCAnalysisUtils.cxx:1781
 AliMCAnalysisUtils.cxx:1782
 AliMCAnalysisUtils.cxx:1783
 AliMCAnalysisUtils.cxx:1784
 AliMCAnalysisUtils.cxx:1785
 AliMCAnalysisUtils.cxx:1786
 AliMCAnalysisUtils.cxx:1787
 AliMCAnalysisUtils.cxx:1788
 AliMCAnalysisUtils.cxx:1789
 AliMCAnalysisUtils.cxx:1790
 AliMCAnalysisUtils.cxx:1791
 AliMCAnalysisUtils.cxx:1792
 AliMCAnalysisUtils.cxx:1793
 AliMCAnalysisUtils.cxx:1794
 AliMCAnalysisUtils.cxx:1795
 AliMCAnalysisUtils.cxx:1796
 AliMCAnalysisUtils.cxx:1797
 AliMCAnalysisUtils.cxx:1798
 AliMCAnalysisUtils.cxx:1799
 AliMCAnalysisUtils.cxx:1800
 AliMCAnalysisUtils.cxx:1801
 AliMCAnalysisUtils.cxx:1802
 AliMCAnalysisUtils.cxx:1803
 AliMCAnalysisUtils.cxx:1804
 AliMCAnalysisUtils.cxx:1805
 AliMCAnalysisUtils.cxx:1806
 AliMCAnalysisUtils.cxx:1807
 AliMCAnalysisUtils.cxx:1808
 AliMCAnalysisUtils.cxx:1809
 AliMCAnalysisUtils.cxx:1810
 AliMCAnalysisUtils.cxx:1811
 AliMCAnalysisUtils.cxx:1812
 AliMCAnalysisUtils.cxx:1813
 AliMCAnalysisUtils.cxx:1814
 AliMCAnalysisUtils.cxx:1815
 AliMCAnalysisUtils.cxx:1816
 AliMCAnalysisUtils.cxx:1817
 AliMCAnalysisUtils.cxx:1818
 AliMCAnalysisUtils.cxx:1819
 AliMCAnalysisUtils.cxx:1820
 AliMCAnalysisUtils.cxx:1821
 AliMCAnalysisUtils.cxx:1822
 AliMCAnalysisUtils.cxx:1823
 AliMCAnalysisUtils.cxx:1824
 AliMCAnalysisUtils.cxx:1825
 AliMCAnalysisUtils.cxx:1826
 AliMCAnalysisUtils.cxx:1827
 AliMCAnalysisUtils.cxx:1828
 AliMCAnalysisUtils.cxx:1829
 AliMCAnalysisUtils.cxx:1830
 AliMCAnalysisUtils.cxx:1831
 AliMCAnalysisUtils.cxx:1832
 AliMCAnalysisUtils.cxx:1833
 AliMCAnalysisUtils.cxx:1834
 AliMCAnalysisUtils.cxx:1835
 AliMCAnalysisUtils.cxx:1836
 AliMCAnalysisUtils.cxx:1837
 AliMCAnalysisUtils.cxx:1838
 AliMCAnalysisUtils.cxx:1839
 AliMCAnalysisUtils.cxx:1840
 AliMCAnalysisUtils.cxx:1841
 AliMCAnalysisUtils.cxx:1842
 AliMCAnalysisUtils.cxx:1843
 AliMCAnalysisUtils.cxx:1844
 AliMCAnalysisUtils.cxx:1845
 AliMCAnalysisUtils.cxx:1846
 AliMCAnalysisUtils.cxx:1847
 AliMCAnalysisUtils.cxx:1848
 AliMCAnalysisUtils.cxx:1849
 AliMCAnalysisUtils.cxx:1850
 AliMCAnalysisUtils.cxx:1851
 AliMCAnalysisUtils.cxx:1852
 AliMCAnalysisUtils.cxx:1853
 AliMCAnalysisUtils.cxx:1854
 AliMCAnalysisUtils.cxx:1855
 AliMCAnalysisUtils.cxx:1856
 AliMCAnalysisUtils.cxx:1857
 AliMCAnalysisUtils.cxx:1858
 AliMCAnalysisUtils.cxx:1859
 AliMCAnalysisUtils.cxx:1860
 AliMCAnalysisUtils.cxx:1861
 AliMCAnalysisUtils.cxx:1862
 AliMCAnalysisUtils.cxx:1863
 AliMCAnalysisUtils.cxx:1864
 AliMCAnalysisUtils.cxx:1865
 AliMCAnalysisUtils.cxx:1866
 AliMCAnalysisUtils.cxx:1867
 AliMCAnalysisUtils.cxx:1868
 AliMCAnalysisUtils.cxx:1869
 AliMCAnalysisUtils.cxx:1870
 AliMCAnalysisUtils.cxx:1871
 AliMCAnalysisUtils.cxx:1872
 AliMCAnalysisUtils.cxx:1873
 AliMCAnalysisUtils.cxx:1874
 AliMCAnalysisUtils.cxx:1875
 AliMCAnalysisUtils.cxx:1876
 AliMCAnalysisUtils.cxx:1877
 AliMCAnalysisUtils.cxx:1878
 AliMCAnalysisUtils.cxx:1879
 AliMCAnalysisUtils.cxx:1880
 AliMCAnalysisUtils.cxx:1881
 AliMCAnalysisUtils.cxx:1882
 AliMCAnalysisUtils.cxx:1883
 AliMCAnalysisUtils.cxx:1884
 AliMCAnalysisUtils.cxx:1885
 AliMCAnalysisUtils.cxx:1886
 AliMCAnalysisUtils.cxx:1887
 AliMCAnalysisUtils.cxx:1888
 AliMCAnalysisUtils.cxx:1889
 AliMCAnalysisUtils.cxx:1890
 AliMCAnalysisUtils.cxx:1891
 AliMCAnalysisUtils.cxx:1892
 AliMCAnalysisUtils.cxx:1893
 AliMCAnalysisUtils.cxx:1894
 AliMCAnalysisUtils.cxx:1895
 AliMCAnalysisUtils.cxx:1896
 AliMCAnalysisUtils.cxx:1897
 AliMCAnalysisUtils.cxx:1898
 AliMCAnalysisUtils.cxx:1899
 AliMCAnalysisUtils.cxx:1900
 AliMCAnalysisUtils.cxx:1901
 AliMCAnalysisUtils.cxx:1902
 AliMCAnalysisUtils.cxx:1903
 AliMCAnalysisUtils.cxx:1904
 AliMCAnalysisUtils.cxx:1905
 AliMCAnalysisUtils.cxx:1906
 AliMCAnalysisUtils.cxx:1907
 AliMCAnalysisUtils.cxx:1908
 AliMCAnalysisUtils.cxx:1909
 AliMCAnalysisUtils.cxx:1910
 AliMCAnalysisUtils.cxx:1911
 AliMCAnalysisUtils.cxx:1912
 AliMCAnalysisUtils.cxx:1913
 AliMCAnalysisUtils.cxx:1914
 AliMCAnalysisUtils.cxx:1915
 AliMCAnalysisUtils.cxx:1916
 AliMCAnalysisUtils.cxx:1917
 AliMCAnalysisUtils.cxx:1918
 AliMCAnalysisUtils.cxx:1919
 AliMCAnalysisUtils.cxx:1920
 AliMCAnalysisUtils.cxx:1921
 AliMCAnalysisUtils.cxx:1922
 AliMCAnalysisUtils.cxx:1923
 AliMCAnalysisUtils.cxx:1924
 AliMCAnalysisUtils.cxx:1925
 AliMCAnalysisUtils.cxx:1926
 AliMCAnalysisUtils.cxx:1927
 AliMCAnalysisUtils.cxx:1928
 AliMCAnalysisUtils.cxx:1929
 AliMCAnalysisUtils.cxx:1930
 AliMCAnalysisUtils.cxx:1931
 AliMCAnalysisUtils.cxx:1932
 AliMCAnalysisUtils.cxx:1933
 AliMCAnalysisUtils.cxx:1934
 AliMCAnalysisUtils.cxx:1935
 AliMCAnalysisUtils.cxx:1936
 AliMCAnalysisUtils.cxx:1937
 AliMCAnalysisUtils.cxx:1938
 AliMCAnalysisUtils.cxx:1939
 AliMCAnalysisUtils.cxx:1940
 AliMCAnalysisUtils.cxx:1941
 AliMCAnalysisUtils.cxx:1942
 AliMCAnalysisUtils.cxx:1943
 AliMCAnalysisUtils.cxx:1944
 AliMCAnalysisUtils.cxx:1945
 AliMCAnalysisUtils.cxx:1946
 AliMCAnalysisUtils.cxx:1947
 AliMCAnalysisUtils.cxx:1948
 AliMCAnalysisUtils.cxx:1949
 AliMCAnalysisUtils.cxx:1950
 AliMCAnalysisUtils.cxx:1951
 AliMCAnalysisUtils.cxx:1952
 AliMCAnalysisUtils.cxx:1953
 AliMCAnalysisUtils.cxx:1954
 AliMCAnalysisUtils.cxx:1955
 AliMCAnalysisUtils.cxx:1956
 AliMCAnalysisUtils.cxx:1957
 AliMCAnalysisUtils.cxx:1958
 AliMCAnalysisUtils.cxx:1959
 AliMCAnalysisUtils.cxx:1960
 AliMCAnalysisUtils.cxx:1961
 AliMCAnalysisUtils.cxx:1962
 AliMCAnalysisUtils.cxx:1963
 AliMCAnalysisUtils.cxx:1964
 AliMCAnalysisUtils.cxx:1965
 AliMCAnalysisUtils.cxx:1966
 AliMCAnalysisUtils.cxx:1967
 AliMCAnalysisUtils.cxx:1968
 AliMCAnalysisUtils.cxx:1969
 AliMCAnalysisUtils.cxx:1970
 AliMCAnalysisUtils.cxx:1971
 AliMCAnalysisUtils.cxx:1972
 AliMCAnalysisUtils.cxx:1973
 AliMCAnalysisUtils.cxx:1974
 AliMCAnalysisUtils.cxx:1975
 AliMCAnalysisUtils.cxx:1976
 AliMCAnalysisUtils.cxx:1977
 AliMCAnalysisUtils.cxx:1978
 AliMCAnalysisUtils.cxx:1979
 AliMCAnalysisUtils.cxx:1980
 AliMCAnalysisUtils.cxx:1981
 AliMCAnalysisUtils.cxx:1982
 AliMCAnalysisUtils.cxx:1983
 AliMCAnalysisUtils.cxx:1984
 AliMCAnalysisUtils.cxx:1985
 AliMCAnalysisUtils.cxx:1986
 AliMCAnalysisUtils.cxx:1987
 AliMCAnalysisUtils.cxx:1988
 AliMCAnalysisUtils.cxx:1989
 AliMCAnalysisUtils.cxx:1990
 AliMCAnalysisUtils.cxx:1991
 AliMCAnalysisUtils.cxx:1992
 AliMCAnalysisUtils.cxx:1993
 AliMCAnalysisUtils.cxx:1994
 AliMCAnalysisUtils.cxx:1995
 AliMCAnalysisUtils.cxx:1996
 AliMCAnalysisUtils.cxx:1997
 AliMCAnalysisUtils.cxx:1998
 AliMCAnalysisUtils.cxx:1999
 AliMCAnalysisUtils.cxx:2000
 AliMCAnalysisUtils.cxx:2001
 AliMCAnalysisUtils.cxx:2002
 AliMCAnalysisUtils.cxx:2003
 AliMCAnalysisUtils.cxx:2004
 AliMCAnalysisUtils.cxx:2005
 AliMCAnalysisUtils.cxx:2006
 AliMCAnalysisUtils.cxx:2007
 AliMCAnalysisUtils.cxx:2008
 AliMCAnalysisUtils.cxx:2009
 AliMCAnalysisUtils.cxx:2010
 AliMCAnalysisUtils.cxx:2011
 AliMCAnalysisUtils.cxx:2012
 AliMCAnalysisUtils.cxx:2013
 AliMCAnalysisUtils.cxx:2014
 AliMCAnalysisUtils.cxx:2015
 AliMCAnalysisUtils.cxx:2016
 AliMCAnalysisUtils.cxx:2017
 AliMCAnalysisUtils.cxx:2018
 AliMCAnalysisUtils.cxx:2019
 AliMCAnalysisUtils.cxx:2020
 AliMCAnalysisUtils.cxx:2021
 AliMCAnalysisUtils.cxx:2022
 AliMCAnalysisUtils.cxx:2023
 AliMCAnalysisUtils.cxx:2024
 AliMCAnalysisUtils.cxx:2025
 AliMCAnalysisUtils.cxx:2026
 AliMCAnalysisUtils.cxx:2027
 AliMCAnalysisUtils.cxx:2028
 AliMCAnalysisUtils.cxx:2029
 AliMCAnalysisUtils.cxx:2030
 AliMCAnalysisUtils.cxx:2031
 AliMCAnalysisUtils.cxx:2032
 AliMCAnalysisUtils.cxx:2033
 AliMCAnalysisUtils.cxx:2034
 AliMCAnalysisUtils.cxx:2035
 AliMCAnalysisUtils.cxx:2036
 AliMCAnalysisUtils.cxx:2037
 AliMCAnalysisUtils.cxx:2038
 AliMCAnalysisUtils.cxx:2039
 AliMCAnalysisUtils.cxx:2040
 AliMCAnalysisUtils.cxx:2041
 AliMCAnalysisUtils.cxx:2042
 AliMCAnalysisUtils.cxx:2043
 AliMCAnalysisUtils.cxx:2044
 AliMCAnalysisUtils.cxx:2045
 AliMCAnalysisUtils.cxx:2046
 AliMCAnalysisUtils.cxx:2047
 AliMCAnalysisUtils.cxx:2048
 AliMCAnalysisUtils.cxx:2049
 AliMCAnalysisUtils.cxx:2050
 AliMCAnalysisUtils.cxx:2051
 AliMCAnalysisUtils.cxx:2052
 AliMCAnalysisUtils.cxx:2053
 AliMCAnalysisUtils.cxx:2054
 AliMCAnalysisUtils.cxx:2055
 AliMCAnalysisUtils.cxx:2056
 AliMCAnalysisUtils.cxx:2057
 AliMCAnalysisUtils.cxx:2058
 AliMCAnalysisUtils.cxx:2059
 AliMCAnalysisUtils.cxx:2060
 AliMCAnalysisUtils.cxx:2061
 AliMCAnalysisUtils.cxx:2062
 AliMCAnalysisUtils.cxx:2063
 AliMCAnalysisUtils.cxx:2064
 AliMCAnalysisUtils.cxx:2065
 AliMCAnalysisUtils.cxx:2066
 AliMCAnalysisUtils.cxx:2067
 AliMCAnalysisUtils.cxx:2068
 AliMCAnalysisUtils.cxx:2069
 AliMCAnalysisUtils.cxx:2070
 AliMCAnalysisUtils.cxx:2071
 AliMCAnalysisUtils.cxx:2072
 AliMCAnalysisUtils.cxx:2073
 AliMCAnalysisUtils.cxx:2074
 AliMCAnalysisUtils.cxx:2075
 AliMCAnalysisUtils.cxx:2076
 AliMCAnalysisUtils.cxx:2077
 AliMCAnalysisUtils.cxx:2078
 AliMCAnalysisUtils.cxx:2079
 AliMCAnalysisUtils.cxx:2080
 AliMCAnalysisUtils.cxx:2081
 AliMCAnalysisUtils.cxx:2082
 AliMCAnalysisUtils.cxx:2083
 AliMCAnalysisUtils.cxx:2084
 AliMCAnalysisUtils.cxx:2085
 AliMCAnalysisUtils.cxx:2086
 AliMCAnalysisUtils.cxx:2087
 AliMCAnalysisUtils.cxx:2088
 AliMCAnalysisUtils.cxx:2089
 AliMCAnalysisUtils.cxx:2090
 AliMCAnalysisUtils.cxx:2091
 AliMCAnalysisUtils.cxx:2092
 AliMCAnalysisUtils.cxx:2093
 AliMCAnalysisUtils.cxx:2094
 AliMCAnalysisUtils.cxx:2095
 AliMCAnalysisUtils.cxx:2096
 AliMCAnalysisUtils.cxx:2097
 AliMCAnalysisUtils.cxx:2098
 AliMCAnalysisUtils.cxx:2099
 AliMCAnalysisUtils.cxx:2100
 AliMCAnalysisUtils.cxx:2101