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 <TParticle.h>
#include <TString.h>
#include <TTree.h>

#include "AliAnalysisManager.h"
#include "AliAODMCHeader.h"
#include "AliAnalysisUtils.h"
#include "AliCentrality.h"
#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliESDVertex.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 "AliMCParticle.h"
#include "AliMCEventHandler.h"
#include "AliMultiplicity.h"
#include "AliPIDResponse.h"
#include "AliVEvent.h"
#include "AliVTrack.h"
#include "AliVCluster.h"
#include "AliVVZERO.h"
#include "AliVZDC.h"
#include "AliTRDTriggerAnalysis.h"
#include "TTreeStream.h"

#include "AliHFEreducedEventCreatorESD.h"

ClassImp(AliHFEreducedEventCreatorESD)

AliHFEreducedEventCreatorESD::AliHFEreducedEventCreatorESD():
  AliAnalysisTaskSE(),
  fHFEtree(NULL),
  fAnalysisUtils(NULL),
  fHFEevent(NULL),
  fTrackCuts(NULL),
  fExtraCuts(NULL),
  fSignalCuts(NULL),
  fTPCpid(NULL),
  fV0Tagger(NULL),
  fTRDTriggerAnalysis(NULL),
  fEventNumber(0),
  fNclustersTPC(70),
  fNclustersTPCPID(0),
  fNclustersITS(2),
  fRemoveFirstEvent(kFALSE),
  fFlagPileupEvents(kFALSE),
  fSelectSignalOnly(kFALSE)
{
  //
  // Default constructor
  //
}

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

AliHFEreducedEventCreatorESD::~AliHFEreducedEventCreatorESD(){
  //
  // Default destructor
  //
  if(fAnalysisUtils) delete fAnalysisUtils;
  if(fTPCpid) delete fTPCpid;
  if(fV0Tagger) delete fV0Tagger;
  if(fTRDTriggerAnalysis) delete fTRDTriggerAnalysis;
  if(fHFEevent) delete fHFEevent;
  if(fSignalCuts) delete fSignalCuts;
  if(fTrackCuts) delete fTrackCuts;

}

void AliHFEreducedEventCreatorESD::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();
  // Track cuts
  fTrackCuts->SetMaxChi2perClusterTPC(1000.);   // switch off this cut (for the moment);
  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 AliHFEreducedEventCreatorESD::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;
  }

  AliDebug(1, "Event Selected");

  AliESDtrack copyTrack;

  // MC info
  Bool_t mcthere = dynamic_cast<AliMCEventHandler *>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()) != NULL;
  if(mcthere){ 
    fTrackCuts->SetMCEvent(fMCEvent);
    fSignalCuts->SetMCEvent(fMCEvent);
  }  

  fTrackCuts->SetRecEvent(fInputEvent);

  if(!fTrackCuts->CheckEventCuts("fCutsEvRec", fInputEvent)){
    AliDebug(1, "Event rejected by the event cuts\n");
    return;
  }
  
  // reject pile up in case of pp
  AliESDEvent *event = dynamic_cast<AliESDEvent *>(fInputEvent);
  if(event) {
    TString beamtype = event->GetBeamType();
    //printf("beamtype %s\n",(const char*)beamtype);
    if (strstr(beamtype,"p-p")) {
      //printf("Reject\n");
      if(fInputEvent->IsPileupFromSPD(3, 0.8, 3., 2., 5)){
	      AliDebug(1, "Event flagged as pileup\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 
  UInt_t trigger = fInputHandler->IsEventSelected();
  if(trigger & AliVEvent::kMB) fHFEevent->SetMBTrigger();
  if((trigger & AliVEvent::kINT7)||(trigger & AliVEvent::kINT8)) fHFEevent->SetINTTrigger();
  if(trigger & AliVEvent::kCentral) fHFEevent->SetCentralTrigger();
  if(trigger & AliVEvent::kSemiCentral) fHFEevent->SetCentralTrigger();
  if(trigger & AliVEvent::kEMCEJE) fHFEevent->SetEMCALTrigger();

  fTRDTriggerAnalysis->CalcTriggers(event);
  if(fTRDTriggerAnalysis->HasTriggeredConfirmed(AliTRDTriggerAnalysis::kHSE)) fHFEevent->SetTRDSETrigger();
  if(fTRDTriggerAnalysis->HasTriggeredConfirmed(AliTRDTriggerAnalysis::kHQU)) fHFEevent->SetTRDDQTrigger();

  // Get Primary Vertex
  const AliVVertex *vertex = fInputEvent->GetPrimaryVertex();
  Double_t vtx[3];
  vertex->GetXYZ(vtx);
  fHFEevent->SetVX(vtx[0]);
  fHFEevent->SetVY(vtx[1]);
  fHFEevent->SetVZ(vtx[2]);
  Int_t ncontrib(vertex->GetNContributors());
  fHFEevent->SetNContribVertex(ncontrib);
  Double_t vcov[6];
  vertex->GetCovarianceMatrix(vcov);
  fHFEevent->SetVertexResolution(TMath::Sqrt(vcov[5]));
  fHFEevent->SetVertexDispersion(static_cast<const AliESDVertex *>(vertex)->GetDispersion());
  // Get Primary Vertex from SPD
  const AliVVertex *vertexSPD = event->GetPrimaryVertexSPD();
  if(vertexSPD){
    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);
    vertex->GetCovarianceMatrix(vcov);
    fHFEevent->SetVertexResolutionSPD(TMath::Sqrt(vcov[5]));
    fHFEevent->SetVertexDispersionSPD(static_cast<const AliESDVertex *>(vertex)->GetDispersion());
  }

  // Get centrality
  AliCentrality *hicent = fInputEvent->GetCentrality();
  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
  AliVVZERO *vzeroinfo = fInputEvent->GetVZEROData();
  if(vzeroinfo) fHFEevent->SetV0Multiplicity(vzeroinfo->GetMTotV0A(), vzeroinfo->GetMTotV0C());

  // Get ZDC Information
  AliVZDC *zdcinfo = fInputEvent->GetZDCData();
  if(zdcinfo) fHFEevent->SetZDCEnergy(zdcinfo->GetZNAEnergy(), zdcinfo->GetZNCEnergy(), zdcinfo->GetZPAEnergy(), zdcinfo->GetZPCEnergy()); 

  // Set SPD multiplicity
  const AliMultiplicity *mult = event->GetMultiplicity();
  if(mult) fHFEevent->SetSPDMultiplicity(mult->GetNumberOfTracklets());

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

  //
  // Loop on MC tracks only
  //
  AliMCParticle *mctrack(NULL);
  // Monte-Carlo info
  //Int_t source(5);
  if(mcthere){
    const AliVVertex *mcvtx = fMCEvent->GetPrimaryVertex();
    fHFEevent->SetVMC(mcvtx->GetX(), mcvtx->GetY(), mcvtx->GetX());
    for(Int_t itrack = 0; itrack < fMCEvent->GetNumberOfTracks(); itrack++) {
      mctrack = (AliMCParticle *)(fMCEvent->GetTrack(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;
      if(fTrackCuts->CheckParticleCuts(static_cast<UInt_t>(AliHFEcuts::kStepMCGenerated), mctrack)) 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->PdgCode());
      
      // 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 < fMCEvent->GetNumberOfTracks()){
        AliMCParticle *mother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(motherlabel));
        if(mother){
          hfemcpart.SetMotherPdg(mother->PdgCode());
          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;
  
  AliESDtrack *track = 0x0;
  for(Int_t itrack = 0; itrack < fInputEvent->GetNumberOfTracks(); itrack++){
    // Run track loop
    track = dynamic_cast<AliESDtrack *>(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->GetTPCmomentum());

    // 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
    Bool_t isEMCAL(kFALSE);
    Int_t fClsId = track->GetEMCALcluster();
    if(fClsId >= 0) isEMCAL = kTRUE;
    AliDebug(2, Form("cluster ID: %d, EMCAL: %s", fClsId, isEMCAL ? "yes" : "no"));
    if(isEMCAL) hfetrack.SetEMCALpid();
    // no filter bits available for ESDs

    // 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);

    if(mcthere){
      // Fill Monte-Carlo Information
      Int_t label = TMath::Abs(track->GetLabel());
      if(label < fMCEvent->GetNumberOfTracks())
        mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(label));
      if(mctrack){
        AliDebug(2, "Associated MC particle found");
        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->PdgCode());
      
        // 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 < fMCEvent->GetNumberOfTracks()){
          AliMCParticle *mother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(motherlabel));
          if(mother){ 
            hfetrack.SetMCMotherPdg(mother->PdgCode());
            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");
      }
    }

    // HFE DCA
    Float_t dcaxy = -999.,
            dcaz = -999.;
    Double_t dcaErr, dcaxyD;
    fExtraCuts->GetImpactParameters((AliVTrack *)track,dcaxy,dcaz);
    fExtraCuts->GetHFEImpactParameters((AliVTrack *)track,dcaxyD,dcaErr);
    hfetrack.SetDCA(dcaxyD, dcaz);
    hfetrack.SetDCAerr(dcaErr);
    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->GetITSclusters(NULL)),
          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.SetChi2PerTPCcluster(track->GetTPCchi2()/Double_t(nclustersTPC));
    hfetrack.SetITSnclusters(nclustersITS);
    hfetrack.SetTPCnclusters(nclustersTPC);
    hfetrack.SetTRDnclusters(track->GetTRDncls());
    hfetrack.SetTPCnclustersPID(track->GetTPCsignalN());
    hfetrack.SetTPCcrossedRows(track->GetTPCCrossedRows());
    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)
    Int_t nslices = track->GetNumberOfTRDslices();
    hfetrack.SetTRDntrackletsPID(track->GetTRDntrackletsPID());
    hfetrack.SetTRDnslices(nslices);
    hfetrack.SetTRDchi2(track->GetTRDchi2());
    Int_t nslicetemp=0;
    for(Int_t iplane = 0; iplane < 6; iplane++){
	    nslicetemp=0;
	    for(Int_t isl = 0; isl < nslices; isl++){
	      if(track->GetTRDntrackletsPID()>0){
		      if(track->GetTRDslice(iplane, isl)>0.001) nslicetemp++;
	      }
	    }
	    if(nslicetemp > 0) hfetrack.SetTRDstatus(iplane);
    }


    //test for kink tracks
    if(fExtraCuts->IsKinkMother(track)) hfetrack.SetIsKinkMother();
    else if(fExtraCuts->IsKinkDaughter(track)) hfetrack.SetIsKinkDaughter();
    
    // 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->GetTPCsignal());
    hfetrack.SetTPCsigmaEl(pid->NumberOfSigmasTPC(track, AliPID::kElectron));
    hfetrack.SetTOFsigmaEl(pid->NumberOfSigmasTOF(track, AliPID::kElectron));
    if(TMath::Abs(pid->NumberOfSigmasTOF(track, AliPID::kDeuteron)) < 40.) hfetrack.SetTOFsigmaDeuteron(pid->NumberOfSigmasTOF(track, AliPID::kDeuteron));   else hfetrack.SetTOFsigmaDeuteron(100);
    hfetrack.SetTOFmismatchProbability(pid->GetTOFMismatchProbability(track));
    hfetrack.SetITSsigmaEl(pid->NumberOfSigmasITS(track, AliPID::kElectron));
    // Eta correction
    copyTrack.~AliESDtrack();
    new(&copyTrack) AliESDtrack(*track);
    if(fTPCpid->HasCentralityCorrection()) fTPCpid->ApplyCentralityCorrection(&copyTrack, static_cast<Double_t>(ncontrib),AliHFEpidObject::kESDanalysis);
    if(fTPCpid->HasEtaCorrection()) fTPCpid->ApplyEtaCorrection(&copyTrack, AliHFEpidObject::kESDanalysis);
    hfetrack.SetTPCsigmaElCorrected(pid->NumberOfSigmasTPC(&copyTrack, AliPID::kElectron));
    hfetrack.SetTPCdEdxCorrected(copyTrack.GetTPCsignal());
    if(isEMCAL){
      AliDebug(2, "Adding EMCAL PID information");
      // 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);
    }

    // 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 AliHFEreducedEventCreatorESD::Terminate(Option_t *){
  //
  // Terminate
  //
  AliInfo("terminating...\n");

}

Bool_t AliHFEreducedEventCreatorESD::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;
}

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