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.                  *
**************************************************************************/
//
// Debug tree task
// the tree is represented as reduced events
// 
// Authors:
//   M.Fasel <M.Fasel@gsi.de>
//
#include <TArrayI.h>
#include <TBits.h>
#include <TFile.h>
#include <TString.h>
#include <TTree.h>
#include <TMath.h>

#include "AliAnalysisManager.h"
#include "AliAnalysisUtils.h"
#include "AliAODEvent.h"
#include "AliAODMCHeader.h"
#include "AliAODMCParticle.h"
#include "AliAODPid.h"
#include "AliAODTrack.h"
#include "AliAODTracklets.h"
#include "AliAODVertex.h"
#include "AliCentrality.h"
#include "AliInputEventHandler.h"
#include "AliHFEcuts.h"
#include "AliHFEextraCuts.h"
#include "AliHFEmcQA.h"
#include "AliHFEpidTPC.h"
#include "AliHFEreducedEvent.h"
#include "AliHFEreducedTrack.h"
#include "AliHFEreducedMCParticle.h"
#include "AliHFEsignalCuts.h"
#include "AliHFEV0taginfo.h"
#include "AliLog.h"
#include "AliMCEvent.h"
#include "AliPIDResponse.h"
#include "AliVEvent.h"
#include "AliVTrack.h"
#include "AliVCluster.h"
#include "AliVVZERO.h"
#include "AliVZDC.h"
#include "TTreeStream.h"

#include "AliHFEreducedEventCreatorAOD.h"

ClassImp(AliHFEreducedEventCreatorAOD)

AliHFEreducedEventCreatorAOD::AliHFEreducedEventCreatorAOD():
  AliAnalysisTaskSE(),
  fAODMCHeader(NULL),
  fAODArrayMCInfo(NULL),
  fHFEtree(NULL),
  fAnalysisUtils(NULL),
  fHFEevent(NULL),
  fTrackCuts(NULL),
  fExtraCuts(NULL),
  fSignalCuts(NULL),
  fTPCpid(NULL),
  fV0Tagger(NULL),
  fEventNumber(0),
  fNclustersTPC(70),
  fNclustersTPCPID(0),
  fNclustersITS(2),
  fNbOfTOFSigma(-1.0),
  fRemoveFirstEvent(kFALSE),
  fFlagPileupEvents(kFALSE),
  fSelectSignalOnly(kFALSE)
{
  //
  // Default constructor
  //
}

AliHFEreducedEventCreatorAOD::AliHFEreducedEventCreatorAOD(const char *name):
  AliAnalysisTaskSE(name),
  fAODMCHeader(NULL),
  fAODArrayMCInfo(NULL),
  fHFEtree(NULL),
  fAnalysisUtils(NULL),
  fHFEevent(NULL),
  fTrackCuts(NULL),
  fExtraCuts(NULL),
  fSignalCuts(NULL),
  fTPCpid(NULL),
  fV0Tagger(NULL),
  fEventNumber(0),
  fNclustersTPC(70),
  fNclustersTPCPID(0),
  fNclustersITS(2),
  fNbOfTOFSigma(-1.0),
  fRemoveFirstEvent(kFALSE),
  fFlagPileupEvents(kFALSE),
  fSelectSignalOnly(kFALSE)
{
  //
  // Default constructor
  //
  fTPCpid = new AliHFEpidTPC("QAtpcPID");
  fAnalysisUtils = new AliAnalysisUtils;
  fV0Tagger = new AliHFEV0taginfo("Tagger");
  DefineOutput(1, TTree::Class());
}

AliHFEreducedEventCreatorAOD::~AliHFEreducedEventCreatorAOD(){
  //
  // Default destructor
  //
    if(fTPCpid) delete fTPCpid;
    if(fAnalysisUtils) delete fAnalysisUtils;
    if(fV0Tagger) delete fV0Tagger;
    if(fHFEevent) delete fHFEevent;
}

void AliHFEreducedEventCreatorAOD::UserCreateOutputObjects(){
  //
  // Create debug tree, signal cuts and track cuts
  //

  //printf("test\n");

 // printf("testa\n");
  fSignalCuts = new AliHFEsignalCuts("HFEsignalCuts", "HFE MC Signal definition");
  //printf("testb\n");
  
  fTrackCuts = new AliHFEcuts("fTrackCuts", "Basic HFE track cuts");
  fTrackCuts->CreateStandardCuts();
  fTrackCuts->SetAOD();
  // Track cuts
  fTrackCuts->SetMinNClustersTPC(fNclustersTPC);
  fTrackCuts->SetMinRatioTPCclusters(0);
  fTrackCuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable); 
  fTrackCuts->SetMinNClustersTPCPID(fNclustersTPCPID);
  fTrackCuts->SetMinNClustersITS(fNclustersITS);
  // Event cuts
  fTrackCuts->SetUseMixedVertex(kTRUE);
  fTrackCuts->SetVertexRange(10.);
  //printf("testa\n");
  fTrackCuts->Initialize();
  //printf("testb\n");

  fExtraCuts = new AliHFEextraCuts("hfeExtraCuts","HFE Extra Cuts");

  fHFEevent = new AliHFEreducedEvent;
  OpenFile(1);
  fHFEtree = new TTree("HFEtree", "HFE event tree");
  fHFEtree->Branch("HFEevent", "AliHFEreducedEvent", fHFEevent,128000,0);
  PostData(1, fHFEtree);
}

void AliHFEreducedEventCreatorAOD::UserExec(Option_t *){
  //
  // User Exec: Fill debug Tree
  // 

  // Get PID response
  AliPIDResponse *pid = NULL;
  AliInputEventHandler *handler = dynamic_cast<AliInputEventHandler *>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
  if(handler){
    //    printf("testb\n");
    pid = handler->GetPIDResponse();
  } else {
    AliError("No Handler");
  }
  if(!pid){
    //   printf("testc\n");
    AliError("No PID response");
    return;
  }
  if(!fInputEvent) {
    AliError("No Input event");
    return;
  }

  if(fRemoveFirstEvent){
    if(fAnalysisUtils->IsFirstEventInChunk(fInputEvent)) return;
  }

  AliAODTrack copyTrack;

  // MC info
  Bool_t mcthere = kTRUE;
  AliAODEvent *aodE = dynamic_cast<AliAODEvent *>(fInputEvent);
  if(!aodE){
    //  printf("testd\n");
    AliError("No AOD Event");
    return;
  }
  fAODMCHeader = dynamic_cast<AliAODMCHeader *>(fInputEvent->FindListObject(AliAODMCHeader::StdBranchName()));
  if(!fAODMCHeader){ 
      mcthere = kFALSE;
      //   return;
  }
  fAODArrayMCInfo = dynamic_cast<TClonesArray *>(fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
  if(!fAODArrayMCInfo){ 
      mcthere = kFALSE;
      //  return;
  }
  else {
    fSignalCuts->SetMCAODInfo(fAODArrayMCInfo);
    fTrackCuts->SetMCEvent(aodE);
  }

  // Set for track cuts
  if(mcthere){
    // Check Monte-Carlo events for AODs
    AliDebug(1, Form("Monte-Carlo Event: %p\n", fMCEvent));
    if(fMCEvent){
      AliDebug(1, Form("Available! Number of particles: %d\n", fMCEvent->GetNumberOfTracks()));
    }
  }
  fTrackCuts->SetRecEvent(fInputEvent);

  if(!fTrackCuts->CheckEventCuts("fCutsEvRec", fInputEvent)){
    AliDebug(1, "Event rejected by the event cuts\n");
    return;
  }
  if(!fExtraCuts){
    fExtraCuts = new AliHFEextraCuts("hfeExtraCuts","HFE Extra Cuts");
  }
  fExtraCuts->SetRecEventInfo(fInputEvent);

  // Tag all v0s in current event
  if(fV0Tagger){
    fV0Tagger->Reset();
    fV0Tagger->TagV0Tracks(fInputEvent);
  }
 
  // Make Reduced Event 
  //AliHFEreducedEvent hfeevent;
  fHFEevent->~AliHFEreducedEvent();
  new(fHFEevent)AliHFEreducedEvent();

  // Get run number
  fHFEevent->SetRunNumber(fInputEvent->GetRunNumber());

  // Derive trigger 
  AliDebug(1, "Get triggers\n");
  UInt_t trigger = fInputHandler->IsEventSelected();
  if(trigger & AliVEvent::kMB) fHFEevent->SetMBTrigger();
  if(trigger & AliVEvent::kCentral) fHFEevent->SetCentralTrigger();
  if(trigger & AliVEvent::kSemiCentral) fHFEevent->SetCentralTrigger();
  if(trigger & AliVEvent::kEMCEJE) fHFEevent->SetEMCALTrigger();

  // Get Primary Vertex
  AliDebug(1, "Get Primary Vertex\n");
  const AliVVertex *vertex = fInputEvent->GetPrimaryVertex();
  Double_t vtx[3]={0.,0.,0.};
  Double_t vcov[6];
  Int_t ncontrib = -1;
  if(vertex) {
    AliDebug(1, "Found vertex\n");
    vertex->GetXYZ(vtx);
    ncontrib = vertex->GetNContributors();
    vertex->GetCovarianceMatrix(vcov);
  }
  fHFEevent->SetVX(vtx[0]);
  fHFEevent->SetVY(vtx[1]);
  fHFEevent->SetVZ(vtx[2]);
  fHFEevent->SetNContribVertex(ncontrib);
  fHFEevent->SetVertexResolution(TMath::Sqrt(TMath::Abs(vcov[5])));
  //fHFEevent->SetVertexDispersion(vertex->GetDispersion());
  // Get Primary Vertex from SPD
  const AliVVertex *vertexSPD = aodE->GetPrimaryVertexSPD();
  if(vertexSPD){
    AliDebug(1, "Found SPD vertex\n");
    memset(vtx, 0, sizeof(Double_t) *3);
    vertexSPD->GetXYZ(vtx);
    fHFEevent->SetVXSPD(vtx[0]);
    fHFEevent->SetVYSPD(vtx[1]);
    fHFEevent->SetVZSPD(vtx[2]);
    fHFEevent->SetNContribVertexSPD(vertexSPD->GetNContributors());
    memset(vcov, 0, sizeof(Double_t)*6);
    vertexSPD->GetCovarianceMatrix(vcov);
    AliDebug(1, Form("Covariance Matrix vcov[5] %f\n",vcov[5]));
    fHFEevent->SetVertexResolutionSPD(TMath::Sqrt(TMath::Abs(vcov[5])));
    //fHFEevent->SetVertexDispersionSPD(vertex->GetDispersion());
  }

  // Get centrality
  AliDebug(1, "Centrality\n");
  AliCentrality *hicent = fInputEvent->GetCentrality();
  if(hicent) fHFEevent->SetCentrality(
    hicent->GetCentralityPercentile("V0M"),
    hicent->GetCentralityPercentile("V0A"),
    hicent->GetCentralityPercentile("V0C"),
    hicent->GetCentralityPercentile("TKL"),
    hicent->GetCentralityPercentile("TRK"),
    hicent->GetCentralityPercentile("ZNA"),
    hicent->GetCentralityPercentile("ZNC"),
    hicent->GetCentralityPercentile("CL0"),
    hicent->GetCentralityPercentile("CL1"),
    hicent->GetCentralityPercentile("CND")
  );

  // Get VZERO Information
  AliDebug(1, "VZERO info\n");
  AliVVZERO *vzeroinfo = fInputEvent->GetVZEROData();
  if(vzeroinfo) fHFEevent->SetV0Multiplicity(vzeroinfo->GetMTotV0A(), vzeroinfo->GetMTotV0C());

  // Get ZDC Information
  AliDebug(1, "ZDC info\n");
  AliVZDC *zdcinfo = fInputEvent->GetZDCData();
  if(zdcinfo) fHFEevent->SetZDCEnergy(zdcinfo->GetZNAEnergy(), zdcinfo->GetZNCEnergy(), zdcinfo->GetZPAEnergy(), zdcinfo->GetZPCEnergy()); 
  
  // Set SPD multiplicity
  AliDebug(1, "SPD multiplicity\n");
  AliAODTracklets *tls = aodE->GetTracklets();
  if(tls) fHFEevent->SetSPDMultiplicity(tls->GetNumberOfTracklets());

  // Flag Pileup
  if(fFlagPileupEvents){
    if(fAnalysisUtils->IsPileUpEvent(fInputEvent)) fHFEevent->SetPileupFlag();
  }

  // Look for kink mother
  AliDebug(1, "Vertices\n");
  Int_t numberofvertices = aodE->GetNumberOfVertices();
  Double_t listofmotherkink[numberofvertices];
  Int_t numberofmotherkink = 0;
  //printf("Number of vertices %d\n",numberofvertices);
  for(Int_t ivertex=0; ivertex < numberofvertices; ivertex++) {
    AliAODVertex *aodvertex = aodE->GetVertex(ivertex);
    if(!aodvertex) continue;
    //printf("Type %d\n",aodvertex->GetType());
    if(aodvertex->GetType()==AliAODVertex::kKink) {
      //printf("Find one kink\n");
      AliAODTrack *mother = (AliAODTrack *) aodvertex->GetParent();
      if(!mother) continue;
      Int_t idmother = mother->GetID();
      listofmotherkink[numberofmotherkink] = idmother;
      //printf("ID %d\n",idmother);
      numberofmotherkink++;
    }
  }
  //printf("Number of kink mother in the events %d\n",numberofmotherkink);

  //
  // Loop on MC tracks only
  //
  AliAODMCParticle *mctrack(NULL);
  // Monte-Carlo info
  //Int_t source(5);
  if(mcthere){
    fHFEevent->SetVMC(fAODMCHeader->GetVtxX(),fAODMCHeader->GetVtxY(),fAODMCHeader->GetVtxZ());
    AliDebug(1, "Loop MC tracks\n");
    for(Int_t itrack = 0; itrack < fAODArrayMCInfo->GetEntriesFast(); itrack++) {
      mctrack = (AliAODMCParticle *)(fAODArrayMCInfo->At(itrack));
      if(!mctrack) continue;
      if(TMath::Abs(mctrack->PdgCode()) != 11) continue;  // in MC truth list store only electrons
      if(fSelectSignalOnly && !fTrackCuts->CheckParticleCuts(static_cast<UInt_t>(AliHFEcuts::kStepMCGenerated), mctrack)) continue;        
      AliHFEreducedMCParticle hfemcpart;
      hfemcpart.SetSignal();
      // Kinematics
      hfemcpart.SetSignedPt(mctrack->Pt(), mctrack->Charge() > 0.);
      hfemcpart.SetP(mctrack->P());
      hfemcpart.SetEta(mctrack->Eta());
      hfemcpart.SetPhi(mctrack->Phi());
      hfemcpart.SetPdg(mctrack->GetPdgCode());
      
      // Get Production Vertex in radial direction
      hfemcpart.SetProductionVertex(mctrack->Xv(),mctrack->Yv(),mctrack->Zv());

      // Get Mother PDG code of the particle
      Int_t motherlabel = TMath::Abs(mctrack->GetMother());
      if(motherlabel >= 0 && motherlabel < fAODArrayMCInfo->GetEntriesFast()){
        AliAODMCParticle *mother = dynamic_cast<AliAODMCParticle *>(fAODArrayMCInfo->At(motherlabel));
        if(mother){ 
          hfemcpart.SetMotherPdg(mother->GetPdgCode());
          hfemcpart.SetMotherProductionVertex(mother->Xv(),mother->Yv(),mother->Zv());
        }
      }
      
      // derive source
      /*
      source = 7;
      if(fSignalCuts->IsCharmElectron(mctrack)) source = 0;
	    else if(fSignalCuts->IsBeautyElectron(mctrack)) source = 1;
	    else if(fSignalCuts->IsGammaElectron(mctrack)) source = 2;
      else if(fSignalCuts->IsNonHFElectron(mctrack)) source = 3;
      else if(fSignalCuts->IsJpsiElectron(mctrack)) source = 4;
      else if(fSignalCuts->IsB2JpsiElectron(mctrack)) source = 5;
      else if(fSignalCuts->IsKe3Electron(mctrack)) source = 6;
      else source = 7;
      hfemcpart.SetSource(source);
      */
      hfemcpart.SetSource(static_cast<Int_t>(fSignalCuts->GetSignalSource(mctrack)));
      hfemcpart.SetElectronSource(fSignalCuts->GetMCQAObject()->GetElecSource(mctrack,kTRUE));

      fHFEevent->AddMCParticle(&hfemcpart);
    }
  }
  
  //
  // Loop on reconstructed tracks
  //
  TArrayI arraytrack(fInputEvent->GetNumberOfTracks());
  Int_t counterdc=0;
  
  AliAODTrack *track = 0x0;
  AliDebug(1, "Loop reconstructed tracks\n");
  for(Int_t itrack = 0; itrack < fInputEvent->GetNumberOfTracks(); itrack++){
    // Run track loop
    track = dynamic_cast<AliAODTrack *>(fInputEvent->GetTrack(itrack));
    if(!track) continue;
    // Cut track (Only basic track cuts)
    // printf("testv\n");
    if(!fTrackCuts->CheckParticleCuts(AliHFEcuts::kNcutStepsMCTrack + AliHFEcuts::kStepRecKineITSTPC, track)) continue;
    //
    //printf("testu\n");

    // Kinematics
    AliHFEreducedTrack hfetrack;
    hfetrack.SetSignedPt(track->Pt(), track->Charge() > 0);
    hfetrack.SetP(track->P());
    hfetrack.SetEta(track->Eta());
    hfetrack.SetPhi(track->Phi());
    hfetrack.SetTPCmomentum(track->GetDetPid() ? track->GetDetPid()->GetTPCmomentum() : track->P());

    // Track ID
    hfetrack.SetTrackID(track->GetID());

    // status
    ULong_t status = track->GetStatus();
    if((status & AliVTrack::kITSrefit) == AliVTrack::kITSrefit) hfetrack.SetITSrefit();
    if((status & AliVTrack::kTPCrefit) == AliVTrack::kTPCrefit) hfetrack.SetTPCrefit();
    if((status & AliVTrack::kTOFpid) == AliVTrack::kTOFpid) hfetrack.SetTOFpid();
    //if((status & AliVTrack::kTOFmismatch) == AliVTrack::kTOFmismatch) hfetrack.SetTOFmismatch();
    if(IsTOFmismatch(track, pid)) hfetrack.SetTOFmismatch(); // New version suggested by Pietro Antonioli
    if(track->IsEMCAL()) hfetrack.SetEMCALpid();

    // fill counts of v0-identified particles
    AliPID::EParticleType myv0pid = fV0Tagger->GetV0Info(track->GetID());
    AliHFEreducedTrack::EV0PID_t v0pid = AliHFEreducedTrack::kV0undef;
    if(myv0pid == AliPID::kElectron) v0pid = AliHFEreducedTrack::kV0electron;
    else if(myv0pid == AliPID::kPion) v0pid = AliHFEreducedTrack::kV0pion;
    else if(myv0pid == AliPID::kProton) v0pid = AliHFEreducedTrack::kV0proton;
    hfetrack.SetV0PID(v0pid);

    Double_t v0prodR = fV0Tagger->GetV0ProdR(track->GetID());
    hfetrack.SetV0prodR(v0prodR);

    // Filter
    for(Int_t k=0; k<20; k++) {
      Int_t u = 1<<k;     
      if((track->TestFilterBit(u))) {
	      hfetrack.SetFilterBit(k);
      } 
    }

    if(mcthere){
      // Fill Monte-Carlo Information
      Int_t label = TMath::Abs(track->GetLabel());
      if(label < fAODArrayMCInfo->GetEntriesFast())
        mctrack = dynamic_cast<AliAODMCParticle *>(fAODArrayMCInfo->At(label));
      if(mctrack){ 
        AliDebug(2, "Associated MC particle found\n");
        if(fTrackCuts->CheckParticleCuts(static_cast<UInt_t>(AliHFEcuts::kStepMCGenerated), mctrack)) hfetrack.SetMCSignal();
        // Kinematics
        hfetrack.SetMCSignedPt(mctrack->Pt(),mctrack->Charge() > 0.);
        hfetrack.SetMCP(mctrack->P());
        hfetrack.SetMCEta(mctrack->Eta());
        hfetrack.SetMCPhi(mctrack->Phi());
        hfetrack.SetMCPDG(mctrack->GetPdgCode());
      
        // Get Production Vertex in radial direction
        hfetrack.SetMCProdVtx(mctrack->Xv(),mctrack->Yv(),mctrack->Zv());
      
        // Get Mother PDG code of the particle
        Int_t motherlabel = TMath::Abs(mctrack->GetMother());
        if(motherlabel >= 0 && motherlabel < fAODArrayMCInfo->GetEntriesFast()){
          AliAODMCParticle *mother = dynamic_cast<AliAODMCParticle *>(fAODArrayMCInfo->At(motherlabel));
          if(mother){
            hfetrack.SetMCMotherPdg(mother->GetPdgCode());
            hfetrack.SetMCMotherProdVtx(mother->Xv(),mother->Yv(),mother->Zv());
          }
        }
      
        // derive source
        /*
        source = 7;
        if(fSignalCuts->IsCharmElectron(track)) source = 0;
	      else if(fSignalCuts->IsBeautyElectron(track)) source = 1;
	      else if(fSignalCuts->IsGammaElectron(track)) source = 2;
        else if(fSignalCuts->IsNonHFElectron(track)) source = 3;
        else if(fSignalCuts->IsJpsiElectron(track)) source = 4;
        else if(fSignalCuts->IsB2JpsiElectron(track)) source = 5;
        else if(fSignalCuts->IsKe3Electron(track)) source = 6;
        else source = 7;
        hfetrack.SetMCSource(source); 
        */
        hfetrack.SetMCSource(static_cast<Int_t>(fSignalCuts->GetSignalSource(track))); 
        hfetrack.SetMCElectronSource(fSignalCuts->GetMCQAObject()->GetElecSource(mctrack,kTRUE));
      } else {
        AliDebug(2, "Associated MC particle not found\n");
      }
    }

    // HFE DCA
    Float_t dcaxy = -999.,
            dcaz = -999.;
    fExtraCuts->GetImpactParameters((AliVTrack *)track,dcaxy,dcaz);
    hfetrack.SetDCA(dcaxy, dcaz);
    Double_t hfeImpactParam(-999.), hfeImpactParamResol(-999.);
    fExtraCuts->GetHFEImpactParameters((AliVTrack *)track,hfeImpactParam,hfeImpactParamResol);
    hfetrack.SetHFEImpactParam(hfeImpactParam,hfeImpactParamResol);

    // Different number of clusters definitions
    Int_t nclustersITS(track->GetITSNcls()),
          nclustersTPC(track->GetTPCNcls()),
          nclustersTPCall(track->GetTPCClusterMap().CountBits()),
          nclustersTPCshared(0);
    UChar_t nfindableTPC = track->GetTPCNclsF();
    const TBits &sharedTPC = track->GetTPCSharedMap();
    for(Int_t ibit = 0; ibit < 160; ibit++) if(sharedTPC.TestBitNumber(ibit)) nclustersTPCshared++;
    hfetrack.SetITSnclusters(nclustersITS);
    hfetrack.SetTPCnclusters(track->GetTPCNcls());
    hfetrack.SetTRDnclusters(track->GetTRDncls());
    hfetrack.SetTPCnclustersPID(track->GetTPCsignalN());
    hfetrack.SetTPCcrossedRows(track->GetTPCNCrossedRows());
    hfetrack.SetTPCnclustersAll(nclustersTPCall);
    hfetrack.SetTPCsharedClusters(nclustersTPCshared);
    hfetrack.SetTPCclusterRatio(nfindableTPC ? static_cast<Float_t>(nclustersTPC)/static_cast<Float_t>(nfindableTPC) : 0);
    hfetrack.SetTPCclusterRatioAll(nfindableTPC ? static_cast<Float_t>(nclustersTPCall)/static_cast<Float_t>(nfindableTPC) : 0);
    UChar_t itsPixel = track->GetITSClusterMap();
    for(int ily = 0; ily < 6; ily++) 
            if(TESTBIT(itsPixel, ily)) hfetrack.SetITScluster(ily);
   
    // TRD related quantities (Yvonne)
    hfetrack.SetTRDntrackletsPID(track->GetTRDntrackletsPID());
    AliAODPid* aodpid= track->GetDetPid();
    if(aodpid) hfetrack.SetTRDnslices(aodpid->GetTRDnSlices());
    hfetrack.SetTRDchi2(track->GetTRDchi2());

    Double_t* arraytrdsignals = 0x0;
    if(aodpid) arraytrdsignals=aodpid->GetTRDslices();
    Int_t nslicetemp=0;
    for(Int_t iplane = 0; iplane < 6; iplane++){
	    nslicetemp=0;
	    for(Int_t b=(iplane*8);b<((iplane*8)+8);b++){
	      if(track->GetTRDntrackletsPID()>0){
		if(arraytrdsignals && (arraytrdsignals[b]>0.001)) nslicetemp++;
	      }
	    }
	    if(nslicetemp > 0) hfetrack.SetTRDstatus(iplane);
    }


    // Kink
    if(fExtraCuts->IsKinkDaughter(track)) hfetrack.SetIsKinkDaughter();

    // kink mother
    for(Int_t kinkmother = 0; kinkmother < numberofmotherkink; kinkmother++) {
      if(track->GetID() == listofmotherkink[kinkmother]) {
	      hfetrack.SetIsKinkMother();
	      continue;
      }
    }
    
    
    // Double counted
    Int_t id(track->GetID());
    for(Int_t l=0; l < counterdc; l++){
      Int_t iTrack2 = arraytrack.At(l);
      if(iTrack2==id){
         hfetrack.SetDoubleCounted();
         break;
      }
    }
    // Add the id at this place
    arraytrack.AddAt(id,counterdc);
    counterdc++;

    // PID
    hfetrack.SetTPCdEdx(track->GetDetPid() ? track->GetDetPid()->GetTPCsignal() : 0.);
    hfetrack.SetTPCsigmaEl(pid->NumberOfSigmasTPC(track, AliPID::kElectron));
    hfetrack.SetTOFsigmaEl(pid->NumberOfSigmasTOF(track, AliPID::kElectron));
    hfetrack.SetTOFmismatchProbability(pid->GetTOFMismatchProbability(track));
    hfetrack.SetITSsigmaEl(pid->NumberOfSigmasITS(track, AliPID::kElectron));
    // Eta correction
    copyTrack.~AliAODTrack();
    new(&copyTrack) AliAODTrack(*track);
    if(fTPCpid->HasCentralityCorrection()) fTPCpid->ApplyCentralityCorrection(&copyTrack, static_cast<Double_t>(ncontrib),AliHFEpidObject::kAODanalysis);
    if(fTPCpid->HasEtaCorrection()) fTPCpid->ApplyEtaCorrection(&copyTrack, AliHFEpidObject::kAODanalysis);
    hfetrack.SetTPCsigmaElCorrected(pid->NumberOfSigmasTPC(&copyTrack, AliPID::kElectron));
    hfetrack.SetTPCdEdxCorrected(copyTrack.GetDetPid() ? copyTrack.GetDetPid()->GetTPCsignal() : 0.);
    if(track->IsEMCAL()){
      // EMCAL cluster
      Double_t emcalEnergyOverP = -1.,
               showershape[4] = {0.,0.,0.,0.};
      hfetrack.SetEMCALSigmaEl(pid->NumberOfSigmasEMCAL(track, AliPID::kElectron, emcalEnergyOverP, &showershape[0]));
      hfetrack.SetEMCALEoverP(emcalEnergyOverP);
      hfetrack.SetEMCALShowerShape(showershape);
    }

    // If TOF cut
    if(fNbOfTOFSigma>0.0){
      AliDebug(1, "TOF cut\n");
      if(!((status & AliVTrack::kTOFpid) == AliVTrack::kTOFpid)) continue; 
      if(TMath::Abs(pid->NumberOfSigmasTOF(track, AliPID::kElectron))> fNbOfTOFSigma) continue;
    }

    // Track finished, add NOW to the Event
    fHFEevent->AddTrack(&hfetrack);
    //printf("after\n");
  }
  
  // Fill the debug tree
  AliInfo(Form("Number of tracks: %d\n", fHFEevent->GetNumberOfTracks()));
  AliInfo(Form("Number of MC particles: %d\n", fHFEevent->GetNumberOfMCParticles()));
  fHFEtree->Fill();

  fEventNumber++;
  PostData(1, fHFEtree);
}

void AliHFEreducedEventCreatorAOD::Terminate(Option_t *){
  //
  // Terminate
  //
  AliInfo("terminating...\n");

}

Bool_t AliHFEreducedEventCreatorAOD::IsTOFmismatch(const AliVTrack *const track, const AliPIDResponse *const pid) const {
  //
  // is TOF mismatch
  //
  Double_t probs[AliPID::kSPECIESC];
  AliPIDResponse::EDetPidStatus status = pid->ComputeTOFProbability(track, AliPID::kSPECIESC, probs);
  return status == AliPIDResponse::kDetMismatch;
}

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