ROOT logo
#include <iostream>
#include "TChain.h"
#include "TTree.h"
#include "TH1F.h"
#include "TCanvas.h"
#include "TString.h"

#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisTaskGCPartToPWG4Part.h"

#include "AliESDEvent.h"
#include "AliESDCaloCluster.h"
#include "AliESDInputHandler.h"

#include "AliAODPWG4ParticleCorrelation.h"
#include "AliAODEvent.h"
#include "AliAODHandler.h"
#include "AliAODCaloCluster.h"
#include "AliAODConversionPhoton.h"
#include "AliAODJet.h"

#include "AliAODInputHandler.h"

#include "AliAODMCParticle.h"


#include "AliAODMCHeader.h"
// Gamma - jet correlation analysis task
// Authors: Svein Lindal


using namespace std;

ClassImp(AliAnalysisTaskGCPartToPWG4Part)

//________________________________________________________________________
AliAnalysisTaskGCPartToPWG4Part::AliAnalysisTaskGCPartToPWG4Part() 
: AliAnalysisTaskSE(), 
  fDeltaAODFileName(""),
  fGammaCutString("GammaConv"),
  fPionCutString("GammaConv"),
  fAODBranchName("GammaConv_gamma"),
  fAODPWG4Photons(NULL),
  fAODPWG4Pi0(NULL),
   fDebugLevel(0)
{
  // Dummy Constructor
}

//________________________________________________________________________________
AliAnalysisTaskGCPartToPWG4Part::~AliAnalysisTaskGCPartToPWG4Part() {

  if(fAODPWG4Photons)
    delete fAODPWG4Photons;
  fAODPWG4Photons = NULL;

  if(fAODPWG4Pi0)
    delete fAODPWG4Pi0;
  fAODPWG4Pi0 = NULL;
 

}



//________________________________________________________________________
AliAnalysisTaskGCPartToPWG4Part::AliAnalysisTaskGCPartToPWG4Part(const char *name) : 
  AliAnalysisTaskSE(name), 
  fDeltaAODFileName(""),
  fGammaCutString("GammaConv"),
  fPionCutString("GammaConv"),
  fAODBranchName("GammaConv_gamma"),
  fAODPWG4Photons(NULL),
  fAODPWG4Pi0(NULL),
  fDebugLevel(0)
{
  // Constructor
  DefineInput(0, TChain::Class());
  // Output slot #0 id reserved by the base class for AOD

  // Output slot #1 writes into a TH1 container
  DefineOutput(1, TList::Class());

}



//________________________________________________________________________
void AliAnalysisTaskGCPartToPWG4Part::UserCreateOutputObjects() {
  fAODPWG4Photons = new TClonesArray("AliAODPWG4ParticleCorrelation", 0);
  fAODPWG4Photons->SetName("PhotonsCTS");
  AddAODBranch("TClonesArray", &fAODPWG4Photons);

  fAODPWG4Pi0 = new TClonesArray("AliAODPWG4ParticleCorrelation", 0);
  fAODPWG4Pi0->SetName("Pi0sCTS");
  AddAODBranch("TClonesArray", &fAODPWG4Pi0);

}

//________________________________________________________________________
void AliAnalysisTaskGCPartToPWG4Part::UserExec(Option_t *) 
{
  
  //AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()->SetFillAOD(kTRUE);

  //Clear stuff for new event
  CleanUp();

  ///Get AOD event
  AliAODEvent * aodEvent = GetAODEvent();
  if(!aodEvent) {
    AliError("No AOD event!!");
    return;
  }
  
  ProcessConvGamma(aodEvent);
        
}




//___________________________________________________________________________________________
void AliAnalysisTaskGCPartToPWG4Part::ProcessConvGamma( const AliAODEvent * const aodEvent ) {
  
  TClonesArray * tracks = aodEvent->GetTracks();
  if(!tracks) {
    cout << "No tracks!!!"<<endl;
    return;
  }


  TClonesArray * convGamma = GetConversionGammas(aodEvent);
  if(!convGamma) {
    AliError(Form("No branch by name %s found in file %s", fAODBranchName.Data(), fDeltaAODFileName.Data()));
    return;
  }


  //TClonesArray * arrayMC = dynamic_cast<TClonesArray*>(aodEvent->GetList()->FindObject(AliAODMCParticle::StdBranchName()));  
  for (Int_t iPhot = 0; iPhot < convGamma->GetEntriesFast(); iPhot++) {

    AliAODPWG4ParticleCorrelation * photon = NULL;
    AliAODConversionPhoton * convParticle = dynamic_cast<AliAODConversionPhoton*>(convGamma->At(iPhot));
    if (convParticle && BothTracksPresent(convParticle, tracks)) {
      photon = AddToAOD(convParticle, fAODPWG4Photons, 2); //"ConvGamma");
      
    } else {
      continue;
    }
    
    if(photon && fDebugLevel > 2) {
      printf("Added conversion photon number %d, pt: %f \n", iPhot, photon->Pt());
    }

  }


  TClonesArray * pions = GetPions(aodEvent);
  if(!pions) {
    AliError(Form("No branch by name %s found in file %s", fAODBranchName.Data(), fDeltaAODFileName.Data()));
    return;
  }

  for (Int_t iPhot = 0; iPhot < pions->GetEntriesFast(); iPhot++) {
    AliAODPWG4ParticleCorrelation * pion = NULL;
    AliAODConversionPhoton * convParticle = dynamic_cast<AliAODConversionPhoton*>(pions->At(iPhot));
    if (convParticle && BothGammaPresent(convParticle, convGamma, tracks)) {
      pion = AddPionToAOD(convParticle, fAODPWG4Pi0, 2); //"ConvGamma");
      
    } else {
      continue;
    }
    
    if(pion && fDebugLevel > 2) {
      printf("Added conversion pion number %d, pt: %f \n", iPhot, pion->Pt());
    }
  }

  

}





///__________________________________________________________________________________
AliAODPWG4ParticleCorrelation * AliAnalysisTaskGCPartToPWG4Part::AddToAOD(AliAODConversionPhoton * aodO, TClonesArray * branch, Int_t detector) {
  new((*branch)[branch->GetEntriesFast()]) AliAODPWG4ParticleCorrelation(aodO->Px(), aodO->Py(), aodO->Pz(), aodO->E());
  AliAODPWG4ParticleCorrelation * photon = dynamic_cast<AliAODPWG4ParticleCorrelation*>(branch->Last());
  if(photon) {
    photon->SetTrackLabel(aodO->GetLabel1(), aodO->GetLabel2());
    photon->SetDetectorTag(detector);
    return photon;
  } else {
    return NULL;
  }
  
}


///__________________________________________________________________________________
AliAODPWG4ParticleCorrelation * AliAnalysisTaskGCPartToPWG4Part::AddPionToAOD(AliAODConversionPhoton * pion, TClonesArray * branch, Int_t detector) {
  new((*branch)[branch->GetEntriesFast()]) AliAODPWG4ParticleCorrelation(pion->Px(), pion->Py(), pion->Pz(), pion->E());
  AliAODPWG4ParticleCorrelation * pwg4Pion = dynamic_cast<AliAODPWG4ParticleCorrelation*>(branch->Last());
  if(pwg4Pion) {
    Int_t tl[4] = {-1, -1, -1, -1};
    //pion->GetGrandChildren(photons, tl);
    pwg4Pion->SetTrackLabel(tl[0], tl[1], tl[2], tl[3]);
    pwg4Pion->SetDetectorTag(detector);
    for(Int_t i = 0; i < 4; i++) {
      cout << tl[i] << " ";
    }
    cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl;
    return pwg4Pion;
  } else {
    return NULL;
  }
  
}




//_____________________________________________________________________
void AliAnalysisTaskGCPartToPWG4Part::Terminate(Option_t *) {
  // Draw result to the screen
  // Called once at the end of the query
}

//_____________________________________________________________________
AliAODEvent * AliAnalysisTaskGCPartToPWG4Part::GetAODEvent() {
  //Get the AOD event from whereever it might be
  AliAODEvent * aodEvent = dynamic_cast<AliAODEvent*>(InputEvent());
  if(!aodEvent) {
    aodEvent = AODEvent();
  }
  
  return aodEvent;

}


//_____________________________________________________________________
TClonesArray * AliAnalysisTaskGCPartToPWG4Part::GetAODBranch(const AliAODEvent * aodEvent, TString branchName) const {

  //Get Conversion gamma branch of AOD. First try standard AOD
  TClonesArray * branch = dynamic_cast<TClonesArray*>(aodEvent->FindListObject(branchName.Data()));
  

  //If it's there, send it back
  if(branch)  return branch;
  

  //If AOD not in standard file have to locate it in delta AOD
  if( !(fDeltaAODFileName.Length() > 0)  ) return NULL;
  
  AliAODHandler * aodHandler = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()); 
  if(aodHandler) {
    AliAODExtension * gExt = dynamic_cast<AliAODExtension*>(aodHandler->GetExtensions()->FindObject(fDeltaAODFileName));
    if(gExt) {
      AliAODEvent * gcEvent = gExt->GetAOD();
      return dynamic_cast<TClonesArray*>(gcEvent->FindListObject(branchName.Data()));
    }
  }  
  return NULL;

}
//_____________________________________________________________________
TClonesArray * AliAnalysisTaskGCPartToPWG4Part::GetConversionGammas(const AliAODEvent * aodEvent) const {
  return GetAODBranch(aodEvent, Form("%s_gamma", fGammaCutString.Data()));
 
}

//_____________________________________________________________________
TClonesArray * AliAnalysisTaskGCPartToPWG4Part::GetPions(const AliAODEvent * aodEvent) const {
    return GetAODBranch(aodEvent, Form("%s_Pi0", fPionCutString.Data()));
 
}


//_________________________________________________________________________
void AliAnalysisTaskGCPartToPWG4Part::CleanUp() {
  fAODPWG4Photons->Delete();
  fAODPWG4Pi0->Delete();
}


//______________________________________________________________________________________________
Bool_t AliAnalysisTaskGCPartToPWG4Part::BothTracksPresent(const AliAODConversionPhoton * const photon, const TClonesArray * const tracks)  const {

  AliAODTrack * track1 = NULL;
  AliAODTrack * track2 = NULL;
  for(Int_t i = 0; i < tracks->GetEntriesFast(); i++) {
    AliAODTrack * track = dynamic_cast<AliAODTrack*>(tracks->At(i));
    if(track) {
      if(track->GetID() == photon->GetLabel1()) track1 = track;
      else if (track->GetID() == photon->GetLabel2()) track2 = track;
      if(track1 && track2) break;
    }
  }
  
  if(track1 && track2) {
    return kTRUE;
  }
  cout << "Could not get both tracks!!! labels "  << photon->GetLabel1() << " " << photon->GetLabel2()  <<endl;
  return kFALSE;
  

}

//______________________________________________________________________________________________
Bool_t AliAnalysisTaskGCPartToPWG4Part::BothGammaPresent(const AliAODConversionPhoton * const pion, const TClonesArray * const photons, const TClonesArray * const tracks)  const {

  AliAODConversionPhoton * photon1 = dynamic_cast<AliAODConversionPhoton*>(photons->At(pion->GetLabel1()));
  AliAODConversionPhoton * photon2 = dynamic_cast<AliAODConversionPhoton*>(photons->At(pion->GetLabel2()));

  if(photon1 && photon2) {
    if( BothTracksPresent(photon1, tracks) &&  BothTracksPresent(photon1, tracks)) {
      return kTRUE;
    }
  } else {
    cout << "can't find both photons "<< endl;
  }
  
  return kFALSE;
}
 AliAnalysisTaskGCPartToPWG4Part.cxx:1
 AliAnalysisTaskGCPartToPWG4Part.cxx:2
 AliAnalysisTaskGCPartToPWG4Part.cxx:3
 AliAnalysisTaskGCPartToPWG4Part.cxx:4
 AliAnalysisTaskGCPartToPWG4Part.cxx:5
 AliAnalysisTaskGCPartToPWG4Part.cxx:6
 AliAnalysisTaskGCPartToPWG4Part.cxx:7
 AliAnalysisTaskGCPartToPWG4Part.cxx:8
 AliAnalysisTaskGCPartToPWG4Part.cxx:9
 AliAnalysisTaskGCPartToPWG4Part.cxx:10
 AliAnalysisTaskGCPartToPWG4Part.cxx:11
 AliAnalysisTaskGCPartToPWG4Part.cxx:12
 AliAnalysisTaskGCPartToPWG4Part.cxx:13
 AliAnalysisTaskGCPartToPWG4Part.cxx:14
 AliAnalysisTaskGCPartToPWG4Part.cxx:15
 AliAnalysisTaskGCPartToPWG4Part.cxx:16
 AliAnalysisTaskGCPartToPWG4Part.cxx:17
 AliAnalysisTaskGCPartToPWG4Part.cxx:18
 AliAnalysisTaskGCPartToPWG4Part.cxx:19
 AliAnalysisTaskGCPartToPWG4Part.cxx:20
 AliAnalysisTaskGCPartToPWG4Part.cxx:21
 AliAnalysisTaskGCPartToPWG4Part.cxx:22
 AliAnalysisTaskGCPartToPWG4Part.cxx:23
 AliAnalysisTaskGCPartToPWG4Part.cxx:24
 AliAnalysisTaskGCPartToPWG4Part.cxx:25
 AliAnalysisTaskGCPartToPWG4Part.cxx:26
 AliAnalysisTaskGCPartToPWG4Part.cxx:27
 AliAnalysisTaskGCPartToPWG4Part.cxx:28
 AliAnalysisTaskGCPartToPWG4Part.cxx:29
 AliAnalysisTaskGCPartToPWG4Part.cxx:30
 AliAnalysisTaskGCPartToPWG4Part.cxx:31
 AliAnalysisTaskGCPartToPWG4Part.cxx:32
 AliAnalysisTaskGCPartToPWG4Part.cxx:33
 AliAnalysisTaskGCPartToPWG4Part.cxx:34
 AliAnalysisTaskGCPartToPWG4Part.cxx:35
 AliAnalysisTaskGCPartToPWG4Part.cxx:36
 AliAnalysisTaskGCPartToPWG4Part.cxx:37
 AliAnalysisTaskGCPartToPWG4Part.cxx:38
 AliAnalysisTaskGCPartToPWG4Part.cxx:39
 AliAnalysisTaskGCPartToPWG4Part.cxx:40
 AliAnalysisTaskGCPartToPWG4Part.cxx:41
 AliAnalysisTaskGCPartToPWG4Part.cxx:42
 AliAnalysisTaskGCPartToPWG4Part.cxx:43
 AliAnalysisTaskGCPartToPWG4Part.cxx:44
 AliAnalysisTaskGCPartToPWG4Part.cxx:45
 AliAnalysisTaskGCPartToPWG4Part.cxx:46
 AliAnalysisTaskGCPartToPWG4Part.cxx:47
 AliAnalysisTaskGCPartToPWG4Part.cxx:48
 AliAnalysisTaskGCPartToPWG4Part.cxx:49
 AliAnalysisTaskGCPartToPWG4Part.cxx:50
 AliAnalysisTaskGCPartToPWG4Part.cxx:51
 AliAnalysisTaskGCPartToPWG4Part.cxx:52
 AliAnalysisTaskGCPartToPWG4Part.cxx:53
 AliAnalysisTaskGCPartToPWG4Part.cxx:54
 AliAnalysisTaskGCPartToPWG4Part.cxx:55
 AliAnalysisTaskGCPartToPWG4Part.cxx:56
 AliAnalysisTaskGCPartToPWG4Part.cxx:57
 AliAnalysisTaskGCPartToPWG4Part.cxx:58
 AliAnalysisTaskGCPartToPWG4Part.cxx:59
 AliAnalysisTaskGCPartToPWG4Part.cxx:60
 AliAnalysisTaskGCPartToPWG4Part.cxx:61
 AliAnalysisTaskGCPartToPWG4Part.cxx:62
 AliAnalysisTaskGCPartToPWG4Part.cxx:63
 AliAnalysisTaskGCPartToPWG4Part.cxx:64
 AliAnalysisTaskGCPartToPWG4Part.cxx:65
 AliAnalysisTaskGCPartToPWG4Part.cxx:66
 AliAnalysisTaskGCPartToPWG4Part.cxx:67
 AliAnalysisTaskGCPartToPWG4Part.cxx:68
 AliAnalysisTaskGCPartToPWG4Part.cxx:69
 AliAnalysisTaskGCPartToPWG4Part.cxx:70
 AliAnalysisTaskGCPartToPWG4Part.cxx:71
 AliAnalysisTaskGCPartToPWG4Part.cxx:72
 AliAnalysisTaskGCPartToPWG4Part.cxx:73
 AliAnalysisTaskGCPartToPWG4Part.cxx:74
 AliAnalysisTaskGCPartToPWG4Part.cxx:75
 AliAnalysisTaskGCPartToPWG4Part.cxx:76
 AliAnalysisTaskGCPartToPWG4Part.cxx:77
 AliAnalysisTaskGCPartToPWG4Part.cxx:78
 AliAnalysisTaskGCPartToPWG4Part.cxx:79
 AliAnalysisTaskGCPartToPWG4Part.cxx:80
 AliAnalysisTaskGCPartToPWG4Part.cxx:81
 AliAnalysisTaskGCPartToPWG4Part.cxx:82
 AliAnalysisTaskGCPartToPWG4Part.cxx:83
 AliAnalysisTaskGCPartToPWG4Part.cxx:84
 AliAnalysisTaskGCPartToPWG4Part.cxx:85
 AliAnalysisTaskGCPartToPWG4Part.cxx:86
 AliAnalysisTaskGCPartToPWG4Part.cxx:87
 AliAnalysisTaskGCPartToPWG4Part.cxx:88
 AliAnalysisTaskGCPartToPWG4Part.cxx:89
 AliAnalysisTaskGCPartToPWG4Part.cxx:90
 AliAnalysisTaskGCPartToPWG4Part.cxx:91
 AliAnalysisTaskGCPartToPWG4Part.cxx:92
 AliAnalysisTaskGCPartToPWG4Part.cxx:93
 AliAnalysisTaskGCPartToPWG4Part.cxx:94
 AliAnalysisTaskGCPartToPWG4Part.cxx:95
 AliAnalysisTaskGCPartToPWG4Part.cxx:96
 AliAnalysisTaskGCPartToPWG4Part.cxx:97
 AliAnalysisTaskGCPartToPWG4Part.cxx:98
 AliAnalysisTaskGCPartToPWG4Part.cxx:99
 AliAnalysisTaskGCPartToPWG4Part.cxx:100
 AliAnalysisTaskGCPartToPWG4Part.cxx:101
 AliAnalysisTaskGCPartToPWG4Part.cxx:102
 AliAnalysisTaskGCPartToPWG4Part.cxx:103
 AliAnalysisTaskGCPartToPWG4Part.cxx:104
 AliAnalysisTaskGCPartToPWG4Part.cxx:105
 AliAnalysisTaskGCPartToPWG4Part.cxx:106
 AliAnalysisTaskGCPartToPWG4Part.cxx:107
 AliAnalysisTaskGCPartToPWG4Part.cxx:108
 AliAnalysisTaskGCPartToPWG4Part.cxx:109
 AliAnalysisTaskGCPartToPWG4Part.cxx:110
 AliAnalysisTaskGCPartToPWG4Part.cxx:111
 AliAnalysisTaskGCPartToPWG4Part.cxx:112
 AliAnalysisTaskGCPartToPWG4Part.cxx:113
 AliAnalysisTaskGCPartToPWG4Part.cxx:114
 AliAnalysisTaskGCPartToPWG4Part.cxx:115
 AliAnalysisTaskGCPartToPWG4Part.cxx:116
 AliAnalysisTaskGCPartToPWG4Part.cxx:117
 AliAnalysisTaskGCPartToPWG4Part.cxx:118
 AliAnalysisTaskGCPartToPWG4Part.cxx:119
 AliAnalysisTaskGCPartToPWG4Part.cxx:120
 AliAnalysisTaskGCPartToPWG4Part.cxx:121
 AliAnalysisTaskGCPartToPWG4Part.cxx:122
 AliAnalysisTaskGCPartToPWG4Part.cxx:123
 AliAnalysisTaskGCPartToPWG4Part.cxx:124
 AliAnalysisTaskGCPartToPWG4Part.cxx:125
 AliAnalysisTaskGCPartToPWG4Part.cxx:126
 AliAnalysisTaskGCPartToPWG4Part.cxx:127
 AliAnalysisTaskGCPartToPWG4Part.cxx:128
 AliAnalysisTaskGCPartToPWG4Part.cxx:129
 AliAnalysisTaskGCPartToPWG4Part.cxx:130
 AliAnalysisTaskGCPartToPWG4Part.cxx:131
 AliAnalysisTaskGCPartToPWG4Part.cxx:132
 AliAnalysisTaskGCPartToPWG4Part.cxx:133
 AliAnalysisTaskGCPartToPWG4Part.cxx:134
 AliAnalysisTaskGCPartToPWG4Part.cxx:135
 AliAnalysisTaskGCPartToPWG4Part.cxx:136
 AliAnalysisTaskGCPartToPWG4Part.cxx:137
 AliAnalysisTaskGCPartToPWG4Part.cxx:138
 AliAnalysisTaskGCPartToPWG4Part.cxx:139
 AliAnalysisTaskGCPartToPWG4Part.cxx:140
 AliAnalysisTaskGCPartToPWG4Part.cxx:141
 AliAnalysisTaskGCPartToPWG4Part.cxx:142
 AliAnalysisTaskGCPartToPWG4Part.cxx:143
 AliAnalysisTaskGCPartToPWG4Part.cxx:144
 AliAnalysisTaskGCPartToPWG4Part.cxx:145
 AliAnalysisTaskGCPartToPWG4Part.cxx:146
 AliAnalysisTaskGCPartToPWG4Part.cxx:147
 AliAnalysisTaskGCPartToPWG4Part.cxx:148
 AliAnalysisTaskGCPartToPWG4Part.cxx:149
 AliAnalysisTaskGCPartToPWG4Part.cxx:150
 AliAnalysisTaskGCPartToPWG4Part.cxx:151
 AliAnalysisTaskGCPartToPWG4Part.cxx:152
 AliAnalysisTaskGCPartToPWG4Part.cxx:153
 AliAnalysisTaskGCPartToPWG4Part.cxx:154
 AliAnalysisTaskGCPartToPWG4Part.cxx:155
 AliAnalysisTaskGCPartToPWG4Part.cxx:156
 AliAnalysisTaskGCPartToPWG4Part.cxx:157
 AliAnalysisTaskGCPartToPWG4Part.cxx:158
 AliAnalysisTaskGCPartToPWG4Part.cxx:159
 AliAnalysisTaskGCPartToPWG4Part.cxx:160
 AliAnalysisTaskGCPartToPWG4Part.cxx:161
 AliAnalysisTaskGCPartToPWG4Part.cxx:162
 AliAnalysisTaskGCPartToPWG4Part.cxx:163
 AliAnalysisTaskGCPartToPWG4Part.cxx:164
 AliAnalysisTaskGCPartToPWG4Part.cxx:165
 AliAnalysisTaskGCPartToPWG4Part.cxx:166
 AliAnalysisTaskGCPartToPWG4Part.cxx:167
 AliAnalysisTaskGCPartToPWG4Part.cxx:168
 AliAnalysisTaskGCPartToPWG4Part.cxx:169
 AliAnalysisTaskGCPartToPWG4Part.cxx:170
 AliAnalysisTaskGCPartToPWG4Part.cxx:171
 AliAnalysisTaskGCPartToPWG4Part.cxx:172
 AliAnalysisTaskGCPartToPWG4Part.cxx:173
 AliAnalysisTaskGCPartToPWG4Part.cxx:174
 AliAnalysisTaskGCPartToPWG4Part.cxx:175
 AliAnalysisTaskGCPartToPWG4Part.cxx:176
 AliAnalysisTaskGCPartToPWG4Part.cxx:177
 AliAnalysisTaskGCPartToPWG4Part.cxx:178
 AliAnalysisTaskGCPartToPWG4Part.cxx:179
 AliAnalysisTaskGCPartToPWG4Part.cxx:180
 AliAnalysisTaskGCPartToPWG4Part.cxx:181
 AliAnalysisTaskGCPartToPWG4Part.cxx:182
 AliAnalysisTaskGCPartToPWG4Part.cxx:183
 AliAnalysisTaskGCPartToPWG4Part.cxx:184
 AliAnalysisTaskGCPartToPWG4Part.cxx:185
 AliAnalysisTaskGCPartToPWG4Part.cxx:186
 AliAnalysisTaskGCPartToPWG4Part.cxx:187
 AliAnalysisTaskGCPartToPWG4Part.cxx:188
 AliAnalysisTaskGCPartToPWG4Part.cxx:189
 AliAnalysisTaskGCPartToPWG4Part.cxx:190
 AliAnalysisTaskGCPartToPWG4Part.cxx:191
 AliAnalysisTaskGCPartToPWG4Part.cxx:192
 AliAnalysisTaskGCPartToPWG4Part.cxx:193
 AliAnalysisTaskGCPartToPWG4Part.cxx:194
 AliAnalysisTaskGCPartToPWG4Part.cxx:195
 AliAnalysisTaskGCPartToPWG4Part.cxx:196
 AliAnalysisTaskGCPartToPWG4Part.cxx:197
 AliAnalysisTaskGCPartToPWG4Part.cxx:198
 AliAnalysisTaskGCPartToPWG4Part.cxx:199
 AliAnalysisTaskGCPartToPWG4Part.cxx:200
 AliAnalysisTaskGCPartToPWG4Part.cxx:201
 AliAnalysisTaskGCPartToPWG4Part.cxx:202
 AliAnalysisTaskGCPartToPWG4Part.cxx:203
 AliAnalysisTaskGCPartToPWG4Part.cxx:204
 AliAnalysisTaskGCPartToPWG4Part.cxx:205
 AliAnalysisTaskGCPartToPWG4Part.cxx:206
 AliAnalysisTaskGCPartToPWG4Part.cxx:207
 AliAnalysisTaskGCPartToPWG4Part.cxx:208
 AliAnalysisTaskGCPartToPWG4Part.cxx:209
 AliAnalysisTaskGCPartToPWG4Part.cxx:210
 AliAnalysisTaskGCPartToPWG4Part.cxx:211
 AliAnalysisTaskGCPartToPWG4Part.cxx:212
 AliAnalysisTaskGCPartToPWG4Part.cxx:213
 AliAnalysisTaskGCPartToPWG4Part.cxx:214
 AliAnalysisTaskGCPartToPWG4Part.cxx:215
 AliAnalysisTaskGCPartToPWG4Part.cxx:216
 AliAnalysisTaskGCPartToPWG4Part.cxx:217
 AliAnalysisTaskGCPartToPWG4Part.cxx:218
 AliAnalysisTaskGCPartToPWG4Part.cxx:219
 AliAnalysisTaskGCPartToPWG4Part.cxx:220
 AliAnalysisTaskGCPartToPWG4Part.cxx:221
 AliAnalysisTaskGCPartToPWG4Part.cxx:222
 AliAnalysisTaskGCPartToPWG4Part.cxx:223
 AliAnalysisTaskGCPartToPWG4Part.cxx:224
 AliAnalysisTaskGCPartToPWG4Part.cxx:225
 AliAnalysisTaskGCPartToPWG4Part.cxx:226
 AliAnalysisTaskGCPartToPWG4Part.cxx:227
 AliAnalysisTaskGCPartToPWG4Part.cxx:228
 AliAnalysisTaskGCPartToPWG4Part.cxx:229
 AliAnalysisTaskGCPartToPWG4Part.cxx:230
 AliAnalysisTaskGCPartToPWG4Part.cxx:231
 AliAnalysisTaskGCPartToPWG4Part.cxx:232
 AliAnalysisTaskGCPartToPWG4Part.cxx:233
 AliAnalysisTaskGCPartToPWG4Part.cxx:234
 AliAnalysisTaskGCPartToPWG4Part.cxx:235
 AliAnalysisTaskGCPartToPWG4Part.cxx:236
 AliAnalysisTaskGCPartToPWG4Part.cxx:237
 AliAnalysisTaskGCPartToPWG4Part.cxx:238
 AliAnalysisTaskGCPartToPWG4Part.cxx:239
 AliAnalysisTaskGCPartToPWG4Part.cxx:240
 AliAnalysisTaskGCPartToPWG4Part.cxx:241
 AliAnalysisTaskGCPartToPWG4Part.cxx:242
 AliAnalysisTaskGCPartToPWG4Part.cxx:243
 AliAnalysisTaskGCPartToPWG4Part.cxx:244
 AliAnalysisTaskGCPartToPWG4Part.cxx:245
 AliAnalysisTaskGCPartToPWG4Part.cxx:246
 AliAnalysisTaskGCPartToPWG4Part.cxx:247
 AliAnalysisTaskGCPartToPWG4Part.cxx:248
 AliAnalysisTaskGCPartToPWG4Part.cxx:249
 AliAnalysisTaskGCPartToPWG4Part.cxx:250
 AliAnalysisTaskGCPartToPWG4Part.cxx:251
 AliAnalysisTaskGCPartToPWG4Part.cxx:252
 AliAnalysisTaskGCPartToPWG4Part.cxx:253
 AliAnalysisTaskGCPartToPWG4Part.cxx:254
 AliAnalysisTaskGCPartToPWG4Part.cxx:255
 AliAnalysisTaskGCPartToPWG4Part.cxx:256
 AliAnalysisTaskGCPartToPWG4Part.cxx:257
 AliAnalysisTaskGCPartToPWG4Part.cxx:258
 AliAnalysisTaskGCPartToPWG4Part.cxx:259
 AliAnalysisTaskGCPartToPWG4Part.cxx:260
 AliAnalysisTaskGCPartToPWG4Part.cxx:261
 AliAnalysisTaskGCPartToPWG4Part.cxx:262
 AliAnalysisTaskGCPartToPWG4Part.cxx:263
 AliAnalysisTaskGCPartToPWG4Part.cxx:264
 AliAnalysisTaskGCPartToPWG4Part.cxx:265
 AliAnalysisTaskGCPartToPWG4Part.cxx:266
 AliAnalysisTaskGCPartToPWG4Part.cxx:267
 AliAnalysisTaskGCPartToPWG4Part.cxx:268
 AliAnalysisTaskGCPartToPWG4Part.cxx:269
 AliAnalysisTaskGCPartToPWG4Part.cxx:270
 AliAnalysisTaskGCPartToPWG4Part.cxx:271
 AliAnalysisTaskGCPartToPWG4Part.cxx:272
 AliAnalysisTaskGCPartToPWG4Part.cxx:273
 AliAnalysisTaskGCPartToPWG4Part.cxx:274
 AliAnalysisTaskGCPartToPWG4Part.cxx:275
 AliAnalysisTaskGCPartToPWG4Part.cxx:276
 AliAnalysisTaskGCPartToPWG4Part.cxx:277
 AliAnalysisTaskGCPartToPWG4Part.cxx:278
 AliAnalysisTaskGCPartToPWG4Part.cxx:279
 AliAnalysisTaskGCPartToPWG4Part.cxx:280
 AliAnalysisTaskGCPartToPWG4Part.cxx:281
 AliAnalysisTaskGCPartToPWG4Part.cxx:282
 AliAnalysisTaskGCPartToPWG4Part.cxx:283
 AliAnalysisTaskGCPartToPWG4Part.cxx:284
 AliAnalysisTaskGCPartToPWG4Part.cxx:285
 AliAnalysisTaskGCPartToPWG4Part.cxx:286
 AliAnalysisTaskGCPartToPWG4Part.cxx:287
 AliAnalysisTaskGCPartToPWG4Part.cxx:288
 AliAnalysisTaskGCPartToPWG4Part.cxx:289
 AliAnalysisTaskGCPartToPWG4Part.cxx:290
 AliAnalysisTaskGCPartToPWG4Part.cxx:291
 AliAnalysisTaskGCPartToPWG4Part.cxx:292
 AliAnalysisTaskGCPartToPWG4Part.cxx:293
 AliAnalysisTaskGCPartToPWG4Part.cxx:294
 AliAnalysisTaskGCPartToPWG4Part.cxx:295
 AliAnalysisTaskGCPartToPWG4Part.cxx:296
 AliAnalysisTaskGCPartToPWG4Part.cxx:297
 AliAnalysisTaskGCPartToPWG4Part.cxx:298
 AliAnalysisTaskGCPartToPWG4Part.cxx:299
 AliAnalysisTaskGCPartToPWG4Part.cxx:300
 AliAnalysisTaskGCPartToPWG4Part.cxx:301
 AliAnalysisTaskGCPartToPWG4Part.cxx:302
 AliAnalysisTaskGCPartToPWG4Part.cxx:303
 AliAnalysisTaskGCPartToPWG4Part.cxx:304
 AliAnalysisTaskGCPartToPWG4Part.cxx:305
 AliAnalysisTaskGCPartToPWG4Part.cxx:306
 AliAnalysisTaskGCPartToPWG4Part.cxx:307
 AliAnalysisTaskGCPartToPWG4Part.cxx:308
 AliAnalysisTaskGCPartToPWG4Part.cxx:309
 AliAnalysisTaskGCPartToPWG4Part.cxx:310
 AliAnalysisTaskGCPartToPWG4Part.cxx:311
 AliAnalysisTaskGCPartToPWG4Part.cxx:312
 AliAnalysisTaskGCPartToPWG4Part.cxx:313
 AliAnalysisTaskGCPartToPWG4Part.cxx:314
 AliAnalysisTaskGCPartToPWG4Part.cxx:315
 AliAnalysisTaskGCPartToPWG4Part.cxx:316
 AliAnalysisTaskGCPartToPWG4Part.cxx:317
 AliAnalysisTaskGCPartToPWG4Part.cxx:318
 AliAnalysisTaskGCPartToPWG4Part.cxx:319
 AliAnalysisTaskGCPartToPWG4Part.cxx:320
 AliAnalysisTaskGCPartToPWG4Part.cxx:321
 AliAnalysisTaskGCPartToPWG4Part.cxx:322
 AliAnalysisTaskGCPartToPWG4Part.cxx:323
 AliAnalysisTaskGCPartToPWG4Part.cxx:324
 AliAnalysisTaskGCPartToPWG4Part.cxx:325
 AliAnalysisTaskGCPartToPWG4Part.cxx:326
 AliAnalysisTaskGCPartToPWG4Part.cxx:327
 AliAnalysisTaskGCPartToPWG4Part.cxx:328
 AliAnalysisTaskGCPartToPWG4Part.cxx:329