ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2006, 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.                  *
 **************************************************************************/

///////////////////////////////////////////////////////////////////////////
//
// AliAnalysisTaskSE for the gamma and pi0 from pPb collision analysis
//
// Author: H-S. Zhu, hongsheng.zhu@cern.ch
//                   hszhu@iopp.ccnu.edu.cn
///////////////////////////////////////////////////////////////////////////

#include <TF1.h>
#include <TH2I.h>
#include <TList.h>
#include <TMath.h>
#include <TArray.h>
#include <TRandom.h>
#include <TVector3.h>
#include <TGeoManager.h>
#include <TClonesArray.h>

#include "AliInputEventHandler.h"
#include "AliAnalysisManager.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "AliVEvent.h"
#include "AliAODEvent.h"
#include "AliESDEvent.h"
#include "AliAODHeader.h"
#include "AliESDHeader.h"
#include "AliVCluster.h"
#include "AliVCaloCells.h"
#include "AliAODCaloCells.h"
#include "AliESDCaloCells.h"
#include "AliPHOSGeometry.h"
#include "AliPHOSGeoUtils.h"
#include "AliPHOSCalibData.h"
#include "AliPHOSAodCluster.h"
#include "AliPHOSEsdCluster.h"
#include "AliOADBContainer.h"
#include "AliPHOSpPbPi0Header.h"
#include "AliCaloClusterInfo.h"
#include "AliAnalysisTaskSEPHOSpPbPi0.h"

ClassImp(AliAnalysisTaskSEPHOSpPbPi0)

Bool_t   AliAnalysisTaskSEPHOSpPbPi0::fgRemovePileup    = kFALSE;
Bool_t   AliAnalysisTaskSEPHOSpPbPi0::fgUseFiducialCut  = kFALSE;
Bool_t   AliAnalysisTaskSEPHOSpPbPi0::fgUseTOFCut       = kFALSE;
Double_t AliAnalysisTaskSEPHOSpPbPi0::fgCuts[5]         = { 0.3, 2., 0.2, 2.5, 1e-7 };

//________________________________________________________________________
AliAnalysisTaskSEPHOSpPbPi0::AliAnalysisTaskSEPHOSpPbPi0():
  AliAnalysisTaskSE(), fIsMC(kFALSE), fCentralityBin(10), fBufferSize(10), fRunNumber(-1),
  fPHOSGeo(0), fOutputListQA(0), fOutputListRD(0), fOutputListMC(0), fHeader(0), fCaloClArr(0)
{
  //
  // Default constructor
  //
  for (Int_t i=0; i<10; i++) { for (Int_t j=0; j<10; j++) fEventList[i][j] = 0; }
}
//________________________________________________________________________
AliAnalysisTaskSEPHOSpPbPi0::AliAnalysisTaskSEPHOSpPbPi0(const char *name):
  AliAnalysisTaskSE(name), fIsMC(kFALSE), fCentralityBin(10), fBufferSize(10), fRunNumber(-1),
  fPHOSGeo(0), fOutputListQA(0), fOutputListRD(0), fOutputListMC(0), fHeader(0), fCaloClArr(0)
{
  // Constructor
  for (Int_t i=0; i<10; i++) { for (Int_t j=0; j<10; j++) fEventList[i][j] = 0; }

  DefineOutput(1, TList::Class());
  DefineOutput(2, TList::Class());
  DefineOutput(3, TList::Class());
}

//_____________________________________________________________________________
AliAnalysisTaskSEPHOSpPbPi0::~AliAnalysisTaskSEPHOSpPbPi0()
{
  //
  // Default destructor
  //
  if (fOutputListQA)  { delete fOutputListQA;  fOutputListQA = NULL; }
  if (fOutputListRD)  { delete fOutputListRD;  fOutputListRD = NULL; }
  if (fOutputListMC)  { delete fOutputListMC;  fOutputListMC = NULL; }
  if (fHeader)        { delete fHeader;        fHeader       = NULL; }
  if (fCaloClArr)     { delete fCaloClArr;     fCaloClArr    = NULL; }
}
//________________________________________________________________________
void AliAnalysisTaskSEPHOSpPbPi0::UserCreateOutputObjects()
{
  // Create the output container

  AliPHOSpPbPi0Header::SetIsMC(fIsMC);
  AliPHOSpPbPi0Header::SetUseFiducialCut(fgUseFiducialCut);

  if (!fHeader)       fHeader       = new AliPHOSpPbPi0Header();
  if (!fCaloClArr)    fCaloClArr    = new TClonesArray("AliCaloClusterInfo", 0);
  if (!fOutputListQA) fOutputListQA = new TList();   fOutputListQA->SetOwner(kTRUE);
  if (!fOutputListRD) fOutputListRD = new TList();   fOutputListRD->SetOwner(kTRUE);
  if (!fOutputListMC) fOutputListMC = new TList();   fOutputListMC->SetOwner(kTRUE);

  fHeader->SetNCent(fCentralityBin.GetSize()-1);
  fHeader->CreateHistograms(fOutputListQA, fOutputListRD, fOutputListMC);

  // Post output data.
  PostData(1, fOutputListQA);
  PostData(2, fOutputListRD);
  if (fIsMC) PostData(3, fOutputListMC);

  return;
}

//________________________________________________________________________
void AliAnalysisTaskSEPHOSpPbPi0::UserExec(Option_t *) 
{
  // Main loop
  // Called for each event

  if (fIsMC) {
    if (MCEvent()) {
      if (MCEvent()->GetNumberOfTracks()<=0)
           { AliError("MC event not found. Nothing done!"); return; }
    } else { AliError("MC event not found. Nothing done!"); return; }
  }

  AliAODEvent *aod   = 0x0;
  AliESDEvent *esd   = 0x0;

  if (((TString)fInputEvent->IsA()->GetName())=="AliAODEvent") {
    aod = dynamic_cast<AliAODEvent*>(fInputEvent);
    if (!aod) { AliError("AOD event not found. Nothing done!");   return; }
    if (!fIsMC && (aod->GetHeader()->GetEventType()!=7))          return; // check event type; should be PHYSICS = 7 for data and 0 for MC
  } else {
    esd = dynamic_cast<AliESDEvent*>(fInputEvent);
    if (!esd) { AliError("ESD event not found. Nothing done!");   return; }
    if (!fIsMC && (esd->GetHeader()->GetEventType()!=7))          return; // check event type; should be PHYSICS = 7 for data and 0 for MC
  }

  // Fill Event info
  fHeader->SetEventInfo(fInputHandler);
  fHeader->FillHistosEvent(fOutputListQA);

  // PHOS Geometry and Misalignment initialization at the first time it runs
  if(fRunNumber != fInputEvent->GetRunNumber()) {
    fRunNumber = fInputEvent->GetRunNumber();
    PHOSInitialize();
  }

  // Event Selection
  if (!fHeader->IsSelected())                     return;
  if (fgRemovePileup && fHeader->IsPileup())      return;

  // Fill PHOS cells QA histograms
  fHeader->FillHistosCaloCellsQA(fOutputListQA, fInputEvent->GetPHOSCells(), fPHOSGeo);

  // Fill PHOS cluster Clones Array
  FillCaloClusterInfo();
  aod = 0x0;
  esd = 0x0;

  // vertex bining and centrality bining
  Int_t zvtx = (Int_t)((fHeader->Vz() + 10.)/2.);   if (zvtx<0) zvtx = 0;   if (zvtx>9) zvtx = 9;
  Int_t cent = TMath::BinarySearch<Float_t>(fCentralityBin.GetSize()-1, fCentralityBin.GetArray(), fHeader->Centrality());
  if (!fEventList[zvtx][cent]) fEventList[zvtx][cent] = new TList(); 
  TList *eventList = fEventList[zvtx][cent];

  // Fill MC info JUST FOR ESD
  AliStack *stack = 0x0;
  if (fIsMC) {
    if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()) {
      if (static_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())->MCEvent())
        stack = static_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())->MCEvent()->Stack();
    }
    fHeader->FillHistosMC(fOutputListMC, stack, fCaloClArr, fPHOSGeo, cent);
  }

  if (!fCaloClArr->GetEntriesFast()) return;

  // Fill cluster histograms
  fHeader->FillHistosCaloCluster(fOutputListQA, fCaloClArr, cent);

  // Fill pi0 histograms
  fHeader->FillHistosPi0(fOutputListRD, fCaloClArr, cent);

  // Fill mixed pi0 histograms
  fHeader->FillHistosMixPi0(fOutputListRD, fCaloClArr, eventList, cent);

  // Fill event list for mixing
  if (fCaloClArr->GetEntriesFast()>0) {
    eventList->AddFirst(fCaloClArr);   fCaloClArr = 0x0;
    if (eventList->GetSize()>fBufferSize[cent]) { // Remove redundant events
      TClonesArray *tmp = static_cast<TClonesArray*>(eventList->Last());
      eventList->RemoveLast();
      delete tmp;
    }
  }

  return;
}

//________________________________________________________________________
void AliAnalysisTaskSEPHOSpPbPi0::Terminate(Option_t *) 
{
  // Terminate analysis

  // add the correction matrix

  return;
}

//________________________________________________________________________
void AliAnalysisTaskSEPHOSpPbPi0::PHOSInitialize()
{
  // Initialize PHOS Geometry ,misalignment and calibration 

  fPHOSGeo =  AliPHOSGeometry::GetInstance("IHEP");
  AliOADBContainer geomContainer("phosGeo");
  geomContainer.InitFromFile("$ALICE_ROOT/OADB/PHOS/PHOSGeometry.root","PHOSRotationMatrixes");
  TObjArray *matrixes = (TObjArray*)geomContainer.GetObject(fRunNumber,"PHOSRotationMatrixes");
  for (Int_t mod=0; mod<5; mod++) {
    if (!matrixes->At(mod)) continue;
    else fPHOSGeo->SetMisalMatrix(((TGeoHMatrix*)matrixes->At(mod)),mod);
  }
}

//________________________________________________________________________
void AliAnalysisTaskSEPHOSpPbPi0::FillCaloClusterInfo()
{
  // Fill calo cluster info
  if (fCaloClArr) fCaloClArr->Clear();
  else fCaloClArr = new TClonesArray("AliCaloClusterInfo", 0);

  Int_t    nclsts       = fInputEvent->GetNumberOfCaloClusters();
  Int_t    countN       = fCaloClArr->GetEntriesFast();
  Int_t    relID[4]     = {0,0,0,0 }; // module = relID[0]; cellX = relID[2]; cellZ = relID[3];
  Float_t  position[3]  = {0.,0.,0.};
  Double_t vtx[3]       = {0.,0.,0.};   fHeader->GetXYZ(vtx);   TVector3 vtxVector(vtx); 

  TClonesArray &caloRef = *fCaloClArr;
  TLorentzVector momentum;
  AliVCluster        *clust       = 0x0;
  AliCaloClusterInfo *caloCluster = 0x0;
  for (Int_t iclst=0; iclst<nclsts; iclst++) {  // loop over all clusters
    clust = fInputEvent->GetCaloCluster(iclst);
    if (!(clust && clust->IsPHOS() && clust->E()>fgCuts[0]))                 { clust=0; continue; }
    if (!(clust->GetNCells()>(Int_t)fgCuts[1] && clust->GetM02()>fgCuts[2])) { clust=0; continue; } // To remove exotic clusters
    if (!(clust->GetDistanceToBadChannel()>fgCuts[3]))                       { clust=0; continue; }
    if (fgUseTOFCut && !(TMath::Abs(clust->GetTOF())<fgCuts[4]))             { clust=0; continue; } // remove clusters from pileup or same benches
    clust->GetPosition(position); TVector3 global(position); fPHOSGeo->GlobalPos2RelId(global,relID);
    if (relID[0] == 2)                                                       { clust=0; continue; } // !remove module 2

    caloCluster = new AliCaloClusterInfo(clust, relID);
//  if (fgUseFiducialCut && !caloCluster->IsInFiducialRegion(relID[2], relID[3])) { delete caloCluster; caloCluster=0; clust=0; continue; } // Fiducial cut 

    clust->GetMomentum(momentum, vtx);
    caloCluster->SetLorentzVector(momentum);
    if (fIsMC) caloCluster->SetLabels(clust->GetNLabels(), clust->GetLabels());

    clust = 0;

    new(caloRef[countN++]) AliCaloClusterInfo(*caloCluster);
    delete caloCluster; caloCluster=0;
  }  // end loop of all clusters
}
 AliAnalysisTaskSEPHOSpPbPi0.cxx:1
 AliAnalysisTaskSEPHOSpPbPi0.cxx:2
 AliAnalysisTaskSEPHOSpPbPi0.cxx:3
 AliAnalysisTaskSEPHOSpPbPi0.cxx:4
 AliAnalysisTaskSEPHOSpPbPi0.cxx:5
 AliAnalysisTaskSEPHOSpPbPi0.cxx:6
 AliAnalysisTaskSEPHOSpPbPi0.cxx:7
 AliAnalysisTaskSEPHOSpPbPi0.cxx:8
 AliAnalysisTaskSEPHOSpPbPi0.cxx:9
 AliAnalysisTaskSEPHOSpPbPi0.cxx:10
 AliAnalysisTaskSEPHOSpPbPi0.cxx:11
 AliAnalysisTaskSEPHOSpPbPi0.cxx:12
 AliAnalysisTaskSEPHOSpPbPi0.cxx:13
 AliAnalysisTaskSEPHOSpPbPi0.cxx:14
 AliAnalysisTaskSEPHOSpPbPi0.cxx:15
 AliAnalysisTaskSEPHOSpPbPi0.cxx:16
 AliAnalysisTaskSEPHOSpPbPi0.cxx:17
 AliAnalysisTaskSEPHOSpPbPi0.cxx:18
 AliAnalysisTaskSEPHOSpPbPi0.cxx:19
 AliAnalysisTaskSEPHOSpPbPi0.cxx:20
 AliAnalysisTaskSEPHOSpPbPi0.cxx:21
 AliAnalysisTaskSEPHOSpPbPi0.cxx:22
 AliAnalysisTaskSEPHOSpPbPi0.cxx:23
 AliAnalysisTaskSEPHOSpPbPi0.cxx:24
 AliAnalysisTaskSEPHOSpPbPi0.cxx:25
 AliAnalysisTaskSEPHOSpPbPi0.cxx:26
 AliAnalysisTaskSEPHOSpPbPi0.cxx:27
 AliAnalysisTaskSEPHOSpPbPi0.cxx:28
 AliAnalysisTaskSEPHOSpPbPi0.cxx:29
 AliAnalysisTaskSEPHOSpPbPi0.cxx:30
 AliAnalysisTaskSEPHOSpPbPi0.cxx:31
 AliAnalysisTaskSEPHOSpPbPi0.cxx:32
 AliAnalysisTaskSEPHOSpPbPi0.cxx:33
 AliAnalysisTaskSEPHOSpPbPi0.cxx:34
 AliAnalysisTaskSEPHOSpPbPi0.cxx:35
 AliAnalysisTaskSEPHOSpPbPi0.cxx:36
 AliAnalysisTaskSEPHOSpPbPi0.cxx:37
 AliAnalysisTaskSEPHOSpPbPi0.cxx:38
 AliAnalysisTaskSEPHOSpPbPi0.cxx:39
 AliAnalysisTaskSEPHOSpPbPi0.cxx:40
 AliAnalysisTaskSEPHOSpPbPi0.cxx:41
 AliAnalysisTaskSEPHOSpPbPi0.cxx:42
 AliAnalysisTaskSEPHOSpPbPi0.cxx:43
 AliAnalysisTaskSEPHOSpPbPi0.cxx:44
 AliAnalysisTaskSEPHOSpPbPi0.cxx:45
 AliAnalysisTaskSEPHOSpPbPi0.cxx:46
 AliAnalysisTaskSEPHOSpPbPi0.cxx:47
 AliAnalysisTaskSEPHOSpPbPi0.cxx:48
 AliAnalysisTaskSEPHOSpPbPi0.cxx:49
 AliAnalysisTaskSEPHOSpPbPi0.cxx:50
 AliAnalysisTaskSEPHOSpPbPi0.cxx:51
 AliAnalysisTaskSEPHOSpPbPi0.cxx:52
 AliAnalysisTaskSEPHOSpPbPi0.cxx:53
 AliAnalysisTaskSEPHOSpPbPi0.cxx:54
 AliAnalysisTaskSEPHOSpPbPi0.cxx:55
 AliAnalysisTaskSEPHOSpPbPi0.cxx:56
 AliAnalysisTaskSEPHOSpPbPi0.cxx:57
 AliAnalysisTaskSEPHOSpPbPi0.cxx:58
 AliAnalysisTaskSEPHOSpPbPi0.cxx:59
 AliAnalysisTaskSEPHOSpPbPi0.cxx:60
 AliAnalysisTaskSEPHOSpPbPi0.cxx:61
 AliAnalysisTaskSEPHOSpPbPi0.cxx:62
 AliAnalysisTaskSEPHOSpPbPi0.cxx:63
 AliAnalysisTaskSEPHOSpPbPi0.cxx:64
 AliAnalysisTaskSEPHOSpPbPi0.cxx:65
 AliAnalysisTaskSEPHOSpPbPi0.cxx:66
 AliAnalysisTaskSEPHOSpPbPi0.cxx:67
 AliAnalysisTaskSEPHOSpPbPi0.cxx:68
 AliAnalysisTaskSEPHOSpPbPi0.cxx:69
 AliAnalysisTaskSEPHOSpPbPi0.cxx:70
 AliAnalysisTaskSEPHOSpPbPi0.cxx:71
 AliAnalysisTaskSEPHOSpPbPi0.cxx:72
 AliAnalysisTaskSEPHOSpPbPi0.cxx:73
 AliAnalysisTaskSEPHOSpPbPi0.cxx:74
 AliAnalysisTaskSEPHOSpPbPi0.cxx:75
 AliAnalysisTaskSEPHOSpPbPi0.cxx:76
 AliAnalysisTaskSEPHOSpPbPi0.cxx:77
 AliAnalysisTaskSEPHOSpPbPi0.cxx:78
 AliAnalysisTaskSEPHOSpPbPi0.cxx:79
 AliAnalysisTaskSEPHOSpPbPi0.cxx:80
 AliAnalysisTaskSEPHOSpPbPi0.cxx:81
 AliAnalysisTaskSEPHOSpPbPi0.cxx:82
 AliAnalysisTaskSEPHOSpPbPi0.cxx:83
 AliAnalysisTaskSEPHOSpPbPi0.cxx:84
 AliAnalysisTaskSEPHOSpPbPi0.cxx:85
 AliAnalysisTaskSEPHOSpPbPi0.cxx:86
 AliAnalysisTaskSEPHOSpPbPi0.cxx:87
 AliAnalysisTaskSEPHOSpPbPi0.cxx:88
 AliAnalysisTaskSEPHOSpPbPi0.cxx:89
 AliAnalysisTaskSEPHOSpPbPi0.cxx:90
 AliAnalysisTaskSEPHOSpPbPi0.cxx:91
 AliAnalysisTaskSEPHOSpPbPi0.cxx:92
 AliAnalysisTaskSEPHOSpPbPi0.cxx:93
 AliAnalysisTaskSEPHOSpPbPi0.cxx:94
 AliAnalysisTaskSEPHOSpPbPi0.cxx:95
 AliAnalysisTaskSEPHOSpPbPi0.cxx:96
 AliAnalysisTaskSEPHOSpPbPi0.cxx:97
 AliAnalysisTaskSEPHOSpPbPi0.cxx:98
 AliAnalysisTaskSEPHOSpPbPi0.cxx:99
 AliAnalysisTaskSEPHOSpPbPi0.cxx:100
 AliAnalysisTaskSEPHOSpPbPi0.cxx:101
 AliAnalysisTaskSEPHOSpPbPi0.cxx:102
 AliAnalysisTaskSEPHOSpPbPi0.cxx:103
 AliAnalysisTaskSEPHOSpPbPi0.cxx:104
 AliAnalysisTaskSEPHOSpPbPi0.cxx:105
 AliAnalysisTaskSEPHOSpPbPi0.cxx:106
 AliAnalysisTaskSEPHOSpPbPi0.cxx:107
 AliAnalysisTaskSEPHOSpPbPi0.cxx:108
 AliAnalysisTaskSEPHOSpPbPi0.cxx:109
 AliAnalysisTaskSEPHOSpPbPi0.cxx:110
 AliAnalysisTaskSEPHOSpPbPi0.cxx:111
 AliAnalysisTaskSEPHOSpPbPi0.cxx:112
 AliAnalysisTaskSEPHOSpPbPi0.cxx:113
 AliAnalysisTaskSEPHOSpPbPi0.cxx:114
 AliAnalysisTaskSEPHOSpPbPi0.cxx:115
 AliAnalysisTaskSEPHOSpPbPi0.cxx:116
 AliAnalysisTaskSEPHOSpPbPi0.cxx:117
 AliAnalysisTaskSEPHOSpPbPi0.cxx:118
 AliAnalysisTaskSEPHOSpPbPi0.cxx:119
 AliAnalysisTaskSEPHOSpPbPi0.cxx:120
 AliAnalysisTaskSEPHOSpPbPi0.cxx:121
 AliAnalysisTaskSEPHOSpPbPi0.cxx:122
 AliAnalysisTaskSEPHOSpPbPi0.cxx:123
 AliAnalysisTaskSEPHOSpPbPi0.cxx:124
 AliAnalysisTaskSEPHOSpPbPi0.cxx:125
 AliAnalysisTaskSEPHOSpPbPi0.cxx:126
 AliAnalysisTaskSEPHOSpPbPi0.cxx:127
 AliAnalysisTaskSEPHOSpPbPi0.cxx:128
 AliAnalysisTaskSEPHOSpPbPi0.cxx:129
 AliAnalysisTaskSEPHOSpPbPi0.cxx:130
 AliAnalysisTaskSEPHOSpPbPi0.cxx:131
 AliAnalysisTaskSEPHOSpPbPi0.cxx:132
 AliAnalysisTaskSEPHOSpPbPi0.cxx:133
 AliAnalysisTaskSEPHOSpPbPi0.cxx:134
 AliAnalysisTaskSEPHOSpPbPi0.cxx:135
 AliAnalysisTaskSEPHOSpPbPi0.cxx:136
 AliAnalysisTaskSEPHOSpPbPi0.cxx:137
 AliAnalysisTaskSEPHOSpPbPi0.cxx:138
 AliAnalysisTaskSEPHOSpPbPi0.cxx:139
 AliAnalysisTaskSEPHOSpPbPi0.cxx:140
 AliAnalysisTaskSEPHOSpPbPi0.cxx:141
 AliAnalysisTaskSEPHOSpPbPi0.cxx:142
 AliAnalysisTaskSEPHOSpPbPi0.cxx:143
 AliAnalysisTaskSEPHOSpPbPi0.cxx:144
 AliAnalysisTaskSEPHOSpPbPi0.cxx:145
 AliAnalysisTaskSEPHOSpPbPi0.cxx:146
 AliAnalysisTaskSEPHOSpPbPi0.cxx:147
 AliAnalysisTaskSEPHOSpPbPi0.cxx:148
 AliAnalysisTaskSEPHOSpPbPi0.cxx:149
 AliAnalysisTaskSEPHOSpPbPi0.cxx:150
 AliAnalysisTaskSEPHOSpPbPi0.cxx:151
 AliAnalysisTaskSEPHOSpPbPi0.cxx:152
 AliAnalysisTaskSEPHOSpPbPi0.cxx:153
 AliAnalysisTaskSEPHOSpPbPi0.cxx:154
 AliAnalysisTaskSEPHOSpPbPi0.cxx:155
 AliAnalysisTaskSEPHOSpPbPi0.cxx:156
 AliAnalysisTaskSEPHOSpPbPi0.cxx:157
 AliAnalysisTaskSEPHOSpPbPi0.cxx:158
 AliAnalysisTaskSEPHOSpPbPi0.cxx:159
 AliAnalysisTaskSEPHOSpPbPi0.cxx:160
 AliAnalysisTaskSEPHOSpPbPi0.cxx:161
 AliAnalysisTaskSEPHOSpPbPi0.cxx:162
 AliAnalysisTaskSEPHOSpPbPi0.cxx:163
 AliAnalysisTaskSEPHOSpPbPi0.cxx:164
 AliAnalysisTaskSEPHOSpPbPi0.cxx:165
 AliAnalysisTaskSEPHOSpPbPi0.cxx:166
 AliAnalysisTaskSEPHOSpPbPi0.cxx:167
 AliAnalysisTaskSEPHOSpPbPi0.cxx:168
 AliAnalysisTaskSEPHOSpPbPi0.cxx:169
 AliAnalysisTaskSEPHOSpPbPi0.cxx:170
 AliAnalysisTaskSEPHOSpPbPi0.cxx:171
 AliAnalysisTaskSEPHOSpPbPi0.cxx:172
 AliAnalysisTaskSEPHOSpPbPi0.cxx:173
 AliAnalysisTaskSEPHOSpPbPi0.cxx:174
 AliAnalysisTaskSEPHOSpPbPi0.cxx:175
 AliAnalysisTaskSEPHOSpPbPi0.cxx:176
 AliAnalysisTaskSEPHOSpPbPi0.cxx:177
 AliAnalysisTaskSEPHOSpPbPi0.cxx:178
 AliAnalysisTaskSEPHOSpPbPi0.cxx:179
 AliAnalysisTaskSEPHOSpPbPi0.cxx:180
 AliAnalysisTaskSEPHOSpPbPi0.cxx:181
 AliAnalysisTaskSEPHOSpPbPi0.cxx:182
 AliAnalysisTaskSEPHOSpPbPi0.cxx:183
 AliAnalysisTaskSEPHOSpPbPi0.cxx:184
 AliAnalysisTaskSEPHOSpPbPi0.cxx:185
 AliAnalysisTaskSEPHOSpPbPi0.cxx:186
 AliAnalysisTaskSEPHOSpPbPi0.cxx:187
 AliAnalysisTaskSEPHOSpPbPi0.cxx:188
 AliAnalysisTaskSEPHOSpPbPi0.cxx:189
 AliAnalysisTaskSEPHOSpPbPi0.cxx:190
 AliAnalysisTaskSEPHOSpPbPi0.cxx:191
 AliAnalysisTaskSEPHOSpPbPi0.cxx:192
 AliAnalysisTaskSEPHOSpPbPi0.cxx:193
 AliAnalysisTaskSEPHOSpPbPi0.cxx:194
 AliAnalysisTaskSEPHOSpPbPi0.cxx:195
 AliAnalysisTaskSEPHOSpPbPi0.cxx:196
 AliAnalysisTaskSEPHOSpPbPi0.cxx:197
 AliAnalysisTaskSEPHOSpPbPi0.cxx:198
 AliAnalysisTaskSEPHOSpPbPi0.cxx:199
 AliAnalysisTaskSEPHOSpPbPi0.cxx:200
 AliAnalysisTaskSEPHOSpPbPi0.cxx:201
 AliAnalysisTaskSEPHOSpPbPi0.cxx:202
 AliAnalysisTaskSEPHOSpPbPi0.cxx:203
 AliAnalysisTaskSEPHOSpPbPi0.cxx:204
 AliAnalysisTaskSEPHOSpPbPi0.cxx:205
 AliAnalysisTaskSEPHOSpPbPi0.cxx:206
 AliAnalysisTaskSEPHOSpPbPi0.cxx:207
 AliAnalysisTaskSEPHOSpPbPi0.cxx:208
 AliAnalysisTaskSEPHOSpPbPi0.cxx:209
 AliAnalysisTaskSEPHOSpPbPi0.cxx:210
 AliAnalysisTaskSEPHOSpPbPi0.cxx:211
 AliAnalysisTaskSEPHOSpPbPi0.cxx:212
 AliAnalysisTaskSEPHOSpPbPi0.cxx:213
 AliAnalysisTaskSEPHOSpPbPi0.cxx:214
 AliAnalysisTaskSEPHOSpPbPi0.cxx:215
 AliAnalysisTaskSEPHOSpPbPi0.cxx:216
 AliAnalysisTaskSEPHOSpPbPi0.cxx:217
 AliAnalysisTaskSEPHOSpPbPi0.cxx:218
 AliAnalysisTaskSEPHOSpPbPi0.cxx:219
 AliAnalysisTaskSEPHOSpPbPi0.cxx:220
 AliAnalysisTaskSEPHOSpPbPi0.cxx:221
 AliAnalysisTaskSEPHOSpPbPi0.cxx:222
 AliAnalysisTaskSEPHOSpPbPi0.cxx:223
 AliAnalysisTaskSEPHOSpPbPi0.cxx:224
 AliAnalysisTaskSEPHOSpPbPi0.cxx:225
 AliAnalysisTaskSEPHOSpPbPi0.cxx:226
 AliAnalysisTaskSEPHOSpPbPi0.cxx:227
 AliAnalysisTaskSEPHOSpPbPi0.cxx:228
 AliAnalysisTaskSEPHOSpPbPi0.cxx:229
 AliAnalysisTaskSEPHOSpPbPi0.cxx:230
 AliAnalysisTaskSEPHOSpPbPi0.cxx:231
 AliAnalysisTaskSEPHOSpPbPi0.cxx:232
 AliAnalysisTaskSEPHOSpPbPi0.cxx:233
 AliAnalysisTaskSEPHOSpPbPi0.cxx:234
 AliAnalysisTaskSEPHOSpPbPi0.cxx:235
 AliAnalysisTaskSEPHOSpPbPi0.cxx:236
 AliAnalysisTaskSEPHOSpPbPi0.cxx:237
 AliAnalysisTaskSEPHOSpPbPi0.cxx:238
 AliAnalysisTaskSEPHOSpPbPi0.cxx:239
 AliAnalysisTaskSEPHOSpPbPi0.cxx:240
 AliAnalysisTaskSEPHOSpPbPi0.cxx:241
 AliAnalysisTaskSEPHOSpPbPi0.cxx:242
 AliAnalysisTaskSEPHOSpPbPi0.cxx:243
 AliAnalysisTaskSEPHOSpPbPi0.cxx:244
 AliAnalysisTaskSEPHOSpPbPi0.cxx:245
 AliAnalysisTaskSEPHOSpPbPi0.cxx:246
 AliAnalysisTaskSEPHOSpPbPi0.cxx:247
 AliAnalysisTaskSEPHOSpPbPi0.cxx:248
 AliAnalysisTaskSEPHOSpPbPi0.cxx:249
 AliAnalysisTaskSEPHOSpPbPi0.cxx:250
 AliAnalysisTaskSEPHOSpPbPi0.cxx:251
 AliAnalysisTaskSEPHOSpPbPi0.cxx:252
 AliAnalysisTaskSEPHOSpPbPi0.cxx:253
 AliAnalysisTaskSEPHOSpPbPi0.cxx:254
 AliAnalysisTaskSEPHOSpPbPi0.cxx:255
 AliAnalysisTaskSEPHOSpPbPi0.cxx:256
 AliAnalysisTaskSEPHOSpPbPi0.cxx:257
 AliAnalysisTaskSEPHOSpPbPi0.cxx:258
 AliAnalysisTaskSEPHOSpPbPi0.cxx:259
 AliAnalysisTaskSEPHOSpPbPi0.cxx:260
 AliAnalysisTaskSEPHOSpPbPi0.cxx:261
 AliAnalysisTaskSEPHOSpPbPi0.cxx:262
 AliAnalysisTaskSEPHOSpPbPi0.cxx:263
 AliAnalysisTaskSEPHOSpPbPi0.cxx:264
 AliAnalysisTaskSEPHOSpPbPi0.cxx:265
 AliAnalysisTaskSEPHOSpPbPi0.cxx:266
 AliAnalysisTaskSEPHOSpPbPi0.cxx:267
 AliAnalysisTaskSEPHOSpPbPi0.cxx:268
 AliAnalysisTaskSEPHOSpPbPi0.cxx:269
 AliAnalysisTaskSEPHOSpPbPi0.cxx:270
 AliAnalysisTaskSEPHOSpPbPi0.cxx:271
 AliAnalysisTaskSEPHOSpPbPi0.cxx:272
 AliAnalysisTaskSEPHOSpPbPi0.cxx:273
 AliAnalysisTaskSEPHOSpPbPi0.cxx:274
 AliAnalysisTaskSEPHOSpPbPi0.cxx:275
 AliAnalysisTaskSEPHOSpPbPi0.cxx:276