ROOT logo
// -*- mode: C++ -*- 
#ifndef ALIESDEVENT_H
#define ALIESDEVENT_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */


/* $Id: AliESDEvent.h 64008 2013-08-28 13:09:59Z hristov $ */

//-------------------------------------------------------------------------
//                          Class AliESDEvent
//   This is the class to deal with during the physics analysis of data.
//   It also ensures the backward compatibility with the old ESD format.
//      
// Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch 
//-------------------------------------------------------------------------

#include <TClonesArray.h>
#include <TObject.h>
#include <TTree.h>
#include <TArrayF.h>
#include <TObjArray.h>


#include "AliVEvent.h"
// some includes for delegated methods
#include "AliESDCaloTrigger.h"
#include "AliESDRun.h"
#include "AliESDHeader.h"
#include "AliESDTZERO.h"
#include "AliESDZDC.h"
#include "AliESDACORDE.h"
#include "AliESDAD.h"
#include "AliMultiplicity.h"

// AliESDtrack has to be included so that the compiler 
// knows its inheritance tree (= that it is a AliVParticle).
#include "AliESDtrack.h"
// same for AliESDVertex (which is a AliVVertex)
#include "AliESDVertex.h"
// same for CaloCells and CaloClusters (which is a AliVCaloCells, AliVCluster)
#include "AliESDCaloCluster.h"
#include "AliESDCaloCells.h"

#include "AliESDVZERO.h"
#include "AliESDTrdTrack.h"
#include "AliESDTOFCluster.h"
#include "AliESDTOFHit.h"
#include "AliESDTOFMatch.h"
#include "AliESDfriend.h"
#include "AliESDv0.h"

class AliESDkink;
class AliESDHLTtrack;
class AliESDVertex;
class AliESDPmdTrack;
class AliESDFMD;
class AliESDkink;
class AliESDv0;
class AliRawDataErrorLog;
class AliESDRun;
class AliESDTrdTrigger;
class AliESDTrdTracklet;
class AliESDMuonTrack;
class AliESDMuonCluster;
class AliESDMuonPad;
class AliESDMuonGlobalTrack;    // AU
class AliESD;
class AliESDcascade;
class AliCentrality;
class AliEventplane;
class TRefArray;
class AliESDACORDE;
class AliESDAD;
class AliESDHLTDecision;
class AliESDCosmicTrack;

class TList;
class TString;


class AliESDEvent : public AliVEvent {
public:


  enum ESDListIndex   {kESDRun,
		       kHeader,
		       kESDZDC,
		       kESDFMD,
		       kESDVZERO,
		       kESDTZERO,
		       kTPCVertex,
		       kSPDVertex,
		       kPrimaryVertex,
		       kSPDMult,
		       kPHOSTrigger,
		       kEMCALTrigger,
		       kSPDPileupVertices,
		       kTrkPileupVertices,
		       kTracks,
		       kMuonTracks,
		       kMuonClusters,
		       kMuonPads,
		       kMuonGlobalTracks,   // AU
		       kPmdTracks,
		       kTrdTrigger,
		       kTrdTracks,
		       kTrdTracklets,
		       kV0s,
		       kCascades,
		       kKinks,
		       kCaloClusters,
		       kEMCALCells,
		       kPHOSCells,
		       kErrorLogs,
                       kESDACORDE,
                       kESDAD,
		       kTOFHeader,
                       kCosmicTracks,
		       kTOFclusters,
		       kTOFhit,
		       kTOFmatch,
		       kESDListN
  };

  AliESDEvent();
  virtual ~AliESDEvent();
  AliESDEvent &operator=(const AliESDEvent& source); // or make private and use only copy? 
  virtual void Copy(TObject& obj) const;

  // RUN
  // move this to the UserData!!!
  const AliESDRun*    GetESDRun() const {return fESDRun;}

  // Delegated methods for fESDRun
  void     SetRunNumber(Int_t n) {if(fESDRun) fESDRun->SetRunNumber(n);}
  Int_t    GetRunNumber() const {return fESDRun?fESDRun->GetRunNumber():-1;}
  void     SetPeriodNumber(UInt_t n){
    if(fESDRun) fESDRun->SetPeriodNumber(n);
    if(fHeader) fHeader->SetPeriodNumber(n);
  }
  UInt_t   GetPeriodNumber() const {return fESDRun?fESDRun->GetPeriodNumber():0;}
  void     SetMagneticField(Double_t mf){if(fESDRun) fESDRun->SetMagneticField(mf);}
  Double_t GetMagneticField() const {return fESDRun?fESDRun->GetMagneticField():0;}
  void     SetDiamond(const AliESDVertex *vertex) { if(fESDRun) fESDRun->SetDiamond(vertex);}
  Double_t  GetDiamondX() const {return fESDRun?fESDRun->GetDiamondX():0;}
  Double_t  GetDiamondY() const {return fESDRun?fESDRun->GetDiamondY():0;}
  Double_t  GetDiamondZ() const {return fESDRun?fESDRun->GetDiamondZ():0;}
  Double_t  GetSigma2DiamondX() const {return  fESDRun?fESDRun->GetSigma2DiamondX():0;}
  Double_t  GetSigma2DiamondY() const {return  fESDRun?fESDRun->GetSigma2DiamondY():0;}
  Double_t  GetSigma2DiamondZ() const {return  fESDRun?fESDRun->GetSigma2DiamondZ():0;}
  void      GetDiamondCovXY(Float_t cov[3]) const {if(fESDRun) fESDRun->GetDiamondCovXY(cov);}   
  void     SetTriggerClass(const char*name, Int_t index) {if(fESDRun) fESDRun->SetTriggerClass(name,index);}
  void     SetPHOSMatrix(TGeoHMatrix*matrix, Int_t i) {if(fESDRun) fESDRun->SetPHOSMatrix(matrix,i);}
  const TGeoHMatrix* GetPHOSMatrix(Int_t i) const {return fESDRun?fESDRun->GetPHOSMatrix(i):0x0;}
  void     SetEMCALMatrix(TGeoHMatrix*matrix, Int_t i) {if(fESDRun) fESDRun->SetEMCALMatrix(matrix,i);}
  const TGeoHMatrix* GetEMCALMatrix(Int_t i) const {return fESDRun?fESDRun->GetEMCALMatrix(i):0x0;}
  void     SetCaloTriggerType(const Int_t* type) {if (fESDRun) fESDRun->SetCaloTriggerType(type);}
  Int_t*   GetCaloTriggerType() const {return fESDRun?fESDRun->GetCaloTriggerType():0x0;}
  virtual const Float_t* GetVZEROEqFactors() const {return fESDRun?fESDRun->GetVZEROEqFactors():0x0;}
  virtual Float_t        GetVZEROEqMultiplicity(Int_t i) const;
	
  //
  void        SetCurrentL3(Float_t cur)           const  {if(fESDRun) fESDRun->SetCurrentL3(cur);}
  void        SetCurrentDip(Float_t cur)          const  {if(fESDRun) fESDRun->SetCurrentDip(cur);}
  void        SetBeamEnergy(Float_t be)           const  {if(fESDRun) fESDRun->SetBeamEnergy(be);}
  void        SetBeamType(const char* bt)         const  {if(fESDRun) fESDRun->SetBeamType(bt);}
  void        SetBeamParticle(Int_t az, Int_t ibeam)      {if(fESDRun) fESDRun->SetBeamParticle(az,ibeam);}
  void        SetUniformBMap(Bool_t val=kTRUE)    const  {if(fESDRun) fESDRun->SetBit(AliESDRun::kUniformBMap,val);}
  void        SetBInfoStored(Bool_t val=kTRUE)    const  {if(fESDRun) fESDRun->SetBit(AliESDRun::kBInfoStored,val);}
  //
  Float_t     GetCurrentL3()                      const  {return fESDRun?fESDRun->GetCurrentL3():0;}
  Float_t     GetCurrentDip()                     const  {return fESDRun?fESDRun->GetCurrentDip():0;}
  Float_t     GetBeamEnergy()                     const  {return fESDRun?fESDRun->GetBeamEnergy():0;}
  const char* GetBeamType()                       const  {return fESDRun?fESDRun->GetBeamType():0;}
  Int_t       GetBeamParticle(Int_t ibeam)        const  {return fESDRun?fESDRun->GetBeamParticle(ibeam):0;}
  Int_t       GetBeamParticleA(Int_t ibeam)       const  {return fESDRun?fESDRun->GetBeamParticleA(ibeam):0;}
  Int_t       GetBeamParticleZ(Int_t ibeam)       const  {return fESDRun?fESDRun->GetBeamParticleZ(ibeam):0;}
  Bool_t      IsUniformBMap()                     const  {return fESDRun?fESDRun->TestBit(AliESDRun::kUniformBMap):kFALSE;}
  //
  virtual Bool_t  InitMagneticField()             const  {return fESDRun?fESDRun->InitMagneticField():kFALSE;} 
  void        SetT0spread(Float_t *t)             const  {if(fESDRun) fESDRun->SetT0spread(t);} 
  Float_t     GetT0spread(Int_t i)                const  {return fESDRun?fESDRun->GetT0spread(i):0;}
  virtual void      SetVZEROEqFactors(Float_t factors[64]) const {if(fESDRun) fESDRun->SetVZEROEqFactors(factors);}
  // HEADER
  AliESDHeader* GetHeader() const {return fHeader;}

  // Delegated methods for fHeader
  void      SetTriggerMask(ULong64_t n) {if(fHeader) fHeader->SetTriggerMask(n);}
  void      SetTriggerMaskNext50(ULong64_t n) {if(fHeader) fHeader->SetTriggerMaskNext50(n);}
  void      SetOrbitNumber(UInt_t n) {if(fHeader) fHeader->SetOrbitNumber(n);}
  void      SetTimeStamp(UInt_t timeStamp){if(fHeader) fHeader->SetTimeStamp(timeStamp);}
  void      SetEventType(UInt_t eventType){if(fHeader) fHeader->SetEventType(eventType);}
  void      SetEventSpecie(UInt_t eventSpecie){if(fHeader) fHeader->SetEventSpecie(eventSpecie);}
  void      SetEventNumberInFile(Int_t n) {if(fHeader) fHeader->SetEventNumberInFile(n);}
  //  void     SetRunNumber(Int_t n) {if(fHeader) fHeader->SetRunNumber(n);}
  void      SetBunchCrossNumber(UShort_t n) {if(fHeader) fHeader->SetBunchCrossNumber(n);}
  void      SetTriggerCluster(UChar_t n) {if(fHeader) fHeader->SetTriggerCluster(n);}
  
  ULong64_t GetTriggerMask() const {return fHeader?fHeader->GetTriggerMask():0;}
  ULong64_t GetTriggerMaskNext50() const {return fHeader?fHeader->GetTriggerMaskNext50():0;}
  //TString   GetFiredTriggerClasses() const {return (fESDRun&&fHeader)?fESDRun->GetFiredTriggerClasses(fHeader->GetTriggerMask()):"";}
  TString   GetFiredTriggerClasses() const {return (fESDRun&&fHeader)?fESDRun->GetFiredTriggerClasses(fHeader->GetTriggerMask(),fHeader->GetTriggerMaskNext50()):"";}
  //Bool_t    IsTriggerClassFired(const char *name) const {return (fESDRun&&fHeader)?fESDRun->IsTriggerClassFired(fHeader->GetTriggerMask(),name):kFALSE;}
  Bool_t    IsTriggerClassFired(const char *name) const {return (fESDRun&&fHeader)?fESDRun->IsTriggerClassFired(fHeader->GetTriggerMask(),fHeader->GetTriggerMaskNext50(),name):kFALSE;}
  Bool_t    IsEventSelected(const char *trigExpr) const;
  TObject*  GetHLTTriggerDecision() const;
  TString   GetHLTTriggerDescription() const;
  Bool_t    IsHLTTriggerFired(const char* name=NULL) const;
  UInt_t    GetOrbitNumber() const {return fHeader?fHeader->GetOrbitNumber():0;}
  UInt_t    GetTimeStamp()  const { return fHeader?fHeader->GetTimeStamp():0;}
  UInt_t    GetEventType()  const { return fHeader?fHeader->GetEventType():0;}
  UInt_t    GetEventSpecie()  const { return fHeader?fHeader->GetEventSpecie():0;}
  Int_t     GetEventNumberInFile() const {return fHeader?fHeader->GetEventNumberInFile():-1;}
  UShort_t  GetBunchCrossNumber() const {return fHeader?fHeader->GetBunchCrossNumber():0;}
  UChar_t   GetTriggerCluster() const {return fHeader?fHeader->GetTriggerCluster():0;}
  Bool_t IsDetectorInTriggerCluster(TString detector, AliTriggerConfiguration* trigConf) const;
  // ZDC CKB: put this in the header?
  AliESDZDC*    GetESDZDC()  const {return fESDZDC;}
  AliESDZDC*    GetZDCData() const {return fESDZDC;}

  void SetZDCData(const AliESDZDC * obj);

  // Delegated methods for fESDZDC
  Double_t GetZDCN1Energy() const {return fESDZDC?fESDZDC->GetZDCN1Energy():0;}
  Double_t GetZDCP1Energy() const {return fESDZDC?fESDZDC->GetZDCP1Energy():0;}
  Double_t GetZDCN2Energy() const {return fESDZDC?fESDZDC->GetZDCN2Energy():0;}
  Double_t GetZDCP2Energy() const {return fESDZDC?fESDZDC->GetZDCP2Energy():0;}
  Double_t GetZDCEMEnergy(Int_t i=0) const {return fESDZDC?fESDZDC->GetZDCEMEnergy(i):0;}
  Int_t    GetZDCParticipants() const {return fESDZDC?fESDZDC->GetZDCParticipants():0;}
  AliCentrality* GetCentrality();
  AliEventplane* GetEventplane();
    

  void     SetZDC(Float_t n1Energy, Float_t p1Energy, Float_t em1Energy, Float_t em2Energy,
                  Float_t n2Energy, Float_t p2Energy, Int_t participants, Int_t nPartA,
	 	  Int_t nPartC, Double_t b, Double_t bA, Double_t bC, UInt_t recoflag)
  {if(fESDZDC) fESDZDC->SetZDC(n1Energy, p1Energy, em1Energy, em2Energy, n2Energy, p2Energy, 
            participants, nPartA, nPartC, b, bA, bC,  recoflag);}
    // FMD
  void SetFMDData(AliESDFMD * obj);
  AliESDFMD *GetFMDData() const { return fESDFMD; }


  // TZERO CKB: put this in the header?
  const AliESDTZERO*    GetESDTZERO() const {return fESDTZERO;}
  void SetTZEROData(const AliESDTZERO * obj);
 // delegetated methods for fESDTZERO

  Double32_t GetT0zVertex() const {return fESDTZERO?fESDTZERO->GetT0zVertex():0;}
  void SetT0zVertex(Double32_t z) {if(fESDTZERO) fESDTZERO->SetT0zVertex(z);}
  Double32_t GetT0() const {return fESDTZERO?fESDTZERO->GetT0():0;}
  void SetT0(Double32_t timeStart) {if(fESDTZERO) fESDTZERO->SetT0(timeStart);}
  Double32_t GetT0clock() const {return fESDTZERO?fESDTZERO->GetT0clock():0;}
  void SetT0clock(Double32_t timeStart) {if(fESDTZERO) fESDTZERO->SetT0clock(timeStart);}
  Double32_t GetT0TOF(Int_t icase) const {return fESDTZERO?fESDTZERO->GetT0TOF(icase):0;}
  const Double32_t * GetT0TOF() const {return fESDTZERO?fESDTZERO->GetT0TOF():0x0;}
  void SetT0TOF(Int_t icase,Double32_t timeStart) {if(fESDTZERO) fESDTZERO->SetT0TOF(icase,timeStart);}
  const Double32_t * GetT0time() const {return fESDTZERO?fESDTZERO->GetT0time():0x0;}
  void SetT0time(Double32_t time[24]) {if(fESDTZERO) fESDTZERO->SetT0time(time);}
  const Double32_t * GetT0amplitude() const {return fESDTZERO?fESDTZERO->GetT0amplitude():0x0;}
  void SetT0amplitude(Double32_t amp[24]){if(fESDTZERO) fESDTZERO->SetT0amplitude(amp);}
  Int_t GetT0Trig() const { return fESDTZERO?fESDTZERO->GetT0Trig():0;}
  void SetT0Trig(Int_t tvdc) {if(fESDTZERO) fESDTZERO->SetT0Trig(tvdc);}

  // VZERO 
  AliESDVZERO *GetVZEROData() const { return fESDVZERO; }
  void SetVZEROData(const AliESDVZERO * obj);
	
 // ACORDE
  AliESDACORDE *GetACORDEData() const { return fESDACORDE;}
  void SetACORDEData(AliESDACORDE * obj);

 // AD
  AliESDAD *GetADData() const { return fESDAD;}
  void SetADData(AliESDAD * obj);




  void SetESDfriend(const AliESDfriend *f) const;
  void GetESDfriend(AliESDfriend *f) const;
  virtual AliESDfriend* FindFriend() const;

  void SetPrimaryVertexTPC(const AliESDVertex *vertex); 
  const AliESDVertex *GetPrimaryVertexTPC() const {return fTPCVertex;}

  void SetPrimaryVertexSPD(const AliESDVertex *vertex); 
  const AliESDVertex *GetPrimaryVertexSPD() const {return fSPDVertex;}
  const AliESDVertex *GetVertex() const {
    //For the backward compatibily only
     return GetPrimaryVertexSPD();
  }

  void SetPrimaryVertexTracks(const AliESDVertex *vertex);
  const AliESDVertex *GetPrimaryVertexTracks() const {return fPrimaryVertex;}
  AliESDVertex *PrimaryVertexTracksUnconstrained() const;

  const AliESDVertex *GetPrimaryVertex() const;

  //getters for calibration
  Int_t GetPrimaryVertex (AliESDVertex &v) const {
      if(!GetPrimaryVertex()) return -1;
      v=*GetPrimaryVertex();
      return 0;
  }

  Int_t GetPrimaryVertexTPC (AliESDVertex &v) const {
      if(!GetPrimaryVertexTPC()) return -1;
      v=*GetPrimaryVertexTPC();
      return 0;
  }

  Int_t GetPrimaryVertexSPD (AliESDVertex &v) const {
      if(!GetPrimaryVertexSPD()) return -1;
      v=*GetPrimaryVertexSPD();
      return 0;
  }

  Int_t GetPrimaryVertexTracks (AliESDVertex &v) const {
      if(!GetPrimaryVertexTracks()) return -1;
      v=*GetPrimaryVertexTracks();
      return 0;
  }


  void SetTOFHeader(const AliTOFHeader * tofEventTime);
  AliTOFHeader *GetTOFHeader() const {return fTOFHeader;}
  Float_t GetEventTimeSpread() const {if (fTOFHeader) return fTOFHeader->GetT0spread(); else return 0.;}
  Float_t GetTOFTimeResolution() const {if (fTOFHeader) return fTOFHeader->GetTOFResolution(); else return 0.;}

  TClonesArray *GetESDTOFClusters() const {return fESDTOFClusters;}
  TClonesArray *GetESDTOFHits() const {return fESDTOFHits;}
  TClonesArray *GetESDTOFMatches() const {return fESDTOFMatches;}

  void SetTOFcluster(Int_t ntofclusters,AliESDTOFCluster *cluster,Int_t *mapping=NULL);
  void SetTOFcluster(Int_t ntofclusters,AliESDTOFCluster *cluster[],Int_t *mapping=NULL);
  Int_t GetNTOFclusters() const {return fESDTOFClusters ? fESDTOFClusters->GetEntriesFast() : 0;}

  Int_t GetNumberOfITSClusters(Int_t lr) const {return fSPDMult ? fSPDMult->GetNumberOfITSClusters(lr) : 0;}
  void SetMultiplicity(const AliMultiplicity *mul);

  AliMultiplicity *GetMultiplicity() const {return fSPDMult;}
  void   EstimateMultiplicity(Int_t &tracklets,Int_t &trITSTPC,Int_t &trITSSApure,
			      Double_t eta=1.,Bool_t useDCAFlag=kTRUE,Bool_t useV0Flag=kTRUE) const;

  Bool_t Clean(Float_t *cleanPars);
  Bool_t RemoveKink(Int_t i)   const;
  Bool_t RemoveV0(Int_t i)     const;
  Bool_t RemoveTrack(Int_t i)  const;

  const AliESDVertex *GetPileupVertexSPD(Int_t i) const {
    return (const AliESDVertex *)(fSPDPileupVertices?fSPDPileupVertices->At(i):0x0);
  }
  Char_t  AddPileupVertexSPD(const AliESDVertex *vtx);
  const AliESDVertex *GetPileupVertexTracks(Int_t i) const {
    return (const AliESDVertex *)(fTrkPileupVertices?fTrkPileupVertices->At(i):0x0);
  }
  Char_t  AddPileupVertexTracks(const AliESDVertex *vtx);
  TClonesArray* GetPileupVerticesTracks() const {return (TClonesArray*)fTrkPileupVertices;}
  TClonesArray* GetPileupVerticesSPD()    const {return (TClonesArray*)fSPDPileupVertices;}

  virtual Bool_t  IsPileupFromSPD(Int_t minContributors=3, 
				  Double_t minZdist=0.8, 
				  Double_t nSigmaZdist=3., 
				  Double_t nSigmaDiamXY=2., 
				  Double_t nSigmaDiamZ=5.) const;
  
  virtual Bool_t IsPileupFromSPDInMultBins() const;

  void ConnectTracks();
  Bool_t        AreTracksConnected() const {return fTracksConnected;}

  AliESDtrack *GetTrack(Int_t i) const {return (fTracks)?(AliESDtrack*)fTracks->At(i) : 0;}
  Int_t  AddTrack(const AliESDtrack *t);

  AliESDtrack *GetVTrack(Int_t i) const {return GetTrack(i);}

  /// add new track at the end of tracks array and return instance
  AliESDtrack* NewTrack();
  
  AliESDHLTtrack *GetHLTConfMapTrack(Int_t /*i*/) const {
    //    return (AliESDHLTtrack *)fHLTConfMapTracks->At(i);
    return 0;
  }
  void AddHLTConfMapTrack(const AliESDHLTtrack */*t*/) {
    printf("ESD:: AddHLTConfMapTrack do nothing \n");
    //    TClonesArray &fhlt = *fHLTConfMapTracks;
    //  new(fhlt[fHLTConfMapTracks->GetEntriesFast()]) AliESDHLTtrack(*t);
  }
  

  AliESDHLTtrack *GetHLTHoughTrack(Int_t /*i*/) const {
    //    return (AliESDHLTtrack *)fHLTHoughTracks->At(i);
    return 0;
  }
  void AddHLTHoughTrack(const AliESDHLTtrack */*t*/) {
    printf("ESD:: AddHLTHoughTrack do nothing \n");
    //    TClonesArray &fhlt = *fHLTHoughTracks;
    //     new(fhlt[fHLTHoughTracks->GetEntriesFast()]) AliESDHLTtrack(*t);
  }
  
  Bool_t MoveMuonObjects();
  
  AliESDMuonTrack* GetMuonTrack(Int_t i);
  AliESDMuonTrack* NewMuonTrack();
  
  AliESDMuonCluster* GetMuonCluster(Int_t i);
  AliESDMuonCluster* FindMuonCluster(UInt_t clusterId);
  AliESDMuonCluster* NewMuonCluster();
  
  AliESDMuonPad* GetMuonPad(Int_t i);
  AliESDMuonPad* FindMuonPad(UInt_t padId);
  AliESDMuonPad* NewMuonPad();
  
  AliESDMuonGlobalTrack* GetMuonGlobalTrack(Int_t i);      // AU
  AliESDMuonGlobalTrack* NewMuonGlobalTrack();             // AU
  
  AliESDPmdTrack *GetPmdTrack(Int_t i) const {
    return (AliESDPmdTrack *)(fPmdTracks?fPmdTracks->At(i):0x0);
  }

  void AddPmdTrack(const AliESDPmdTrack *t);


  AliESDTrdTrack *GetTrdTrack(Int_t i) const {
    return (AliESDTrdTrack *)(fTrdTracks?fTrdTracks->At(i):0x0);
  }

  
  void SetTrdTrigger(const AliESDTrdTrigger *t);

  AliESDTrdTrigger* GetTrdTrigger() const {
    return (AliESDTrdTrigger*)(fTrdTrigger);
  }

  void AddTrdTrack(const AliESDTrdTrack *t);

  AliESDTrdTracklet* GetTrdTracklet(Int_t idx) const {
    return (AliESDTrdTracklet*)(fTrdTracklets?fTrdTracklets->At(idx):0x0);
  }

  void AddTrdTracklet(const AliESDTrdTracklet *trkl);
  void AddTrdTracklet(UInt_t trackletWord, Short_t hcid, Int_t label = -1);

  using AliVEvent::GetV0;
  AliESDv0 *GetV0(Int_t i) const {
    return (AliESDv0*)(fV0s?fV0s->At(i):0x0);
  }

  Int_t GetV0(AliESDv0 &v0dum, Int_t i) const {
      if(!GetV0(i)) return -1;
      v0dum=*GetV0(i);
      return 0;}

  Int_t AddV0(const AliESDv0 *v);

  AliESDcascade *GetCascade(Int_t i) const {
    return (AliESDcascade *)(fCascades?fCascades->At(i):0x0);
  }

  void AddCascade(const AliESDcascade *c);

  AliESDkink *GetKink(Int_t i) const {
    return (AliESDkink *)(fKinks?fKinks->At(i):0x0);
  }
  Int_t AddKink(const AliESDkink *c);

  AliESDCaloCluster *GetCaloCluster(Int_t i) const {
    return (AliESDCaloCluster *)(fCaloClusters?fCaloClusters->At(i):0x0);
  }

  Int_t AddCaloCluster(const AliESDCaloCluster *c);

  AliESDCaloCells *GetEMCALCells() const {return fEMCALCells; }  
  AliESDCaloCells *GetPHOSCells() const {return fPHOSCells; }  

  AliESDCaloTrigger* GetCaloTrigger(TString calo) const 
  {
	  if (calo.Contains("EMCAL")) return fEMCALTrigger;
	  else
		  return fPHOSTrigger;
  }

  AliESDCosmicTrack *GetCosmicTrack(Int_t i) const {
    return fCosmicTracks ? (AliESDCosmicTrack*) fCosmicTracks->At(i) : 0;
  }
  const TClonesArray * GetCosmicTracks() const{ return fCosmicTracks;}

  void  AddCosmicTrack(const AliESDCosmicTrack *t);
	
  AliRawDataErrorLog *GetErrorLog(Int_t i) const {
    return (AliRawDataErrorLog *)(fErrorLogs?fErrorLogs->At(i):0x0);
  }
  void  AddRawDataErrorLog(const AliRawDataErrorLog *log) const;

  Int_t GetNumberOfErrorLogs()   const {return fErrorLogs?fErrorLogs->GetEntriesFast():0;}

  Int_t GetNumberOfPileupVerticesSPD() const {
    return (fSPDPileupVertices?fSPDPileupVertices->GetEntriesFast():0);
  }
  Int_t GetNumberOfPileupVerticesTracks() const {
    return (fTrkPileupVertices?fTrkPileupVertices->GetEntriesFast():0);
  }
  Int_t GetNumberOfTracks()     const {return fTracks?fTracks->GetEntriesFast():0;}
  Int_t GetNumberOfESDTracks()  const { return GetNumberOfTracks(); }
  Int_t GetNumberOfHLTConfMapTracks()     const {return 0;} 
  // fHLTConfMapTracks->GetEntriesFast();}
  Int_t GetNumberOfHLTHoughTracks()     const {return  0;  }
  //  fHLTHoughTracks->GetEntriesFast();  }

  Int_t GetNumberOfMuonTracks() const {return fMuonTracks?fMuonTracks->GetEntriesFast():0;}
  Int_t GetNumberOfMuonClusters();
  Int_t GetNumberOfMuonPads();
  Int_t GetNumberOfMuonGlobalTracks() const {return fMuonGlobalTracks?fMuonGlobalTracks->GetEntriesFast():0;}    // AU
  Int_t GetNumberOfPmdTracks() const {return fPmdTracks?fPmdTracks->GetEntriesFast():0;}
  Int_t GetNumberOfTrdTracks() const {return fTrdTracks?fTrdTracks->GetEntriesFast():0;}
  Int_t GetNumberOfTrdTracklets() const {return fTrdTracklets?fTrdTracklets->GetEntriesFast():0;}
  Int_t GetNumberOfV0s()      const {return fV0s?fV0s->GetEntriesFast():0;}
  Int_t GetNumberOfCascades() const {return fCascades?fCascades->GetEntriesFast():0;}
  Int_t GetNumberOfKinks() const {return fKinks?fKinks->GetEntriesFast():0;}

  Int_t GetNumberOfCosmicTracks() const {return fCosmicTracks ? fCosmicTracks->GetEntriesFast():0;}  
  Int_t GetEMCALClusters(TRefArray *clusters) const;
  Int_t GetPHOSClusters(TRefArray *clusters) const;
  Int_t GetNumberOfCaloClusters() const {return fCaloClusters?fCaloClusters->GetEntriesFast():0;}

  void SetUseOwnList(Bool_t b){fUseOwnList = b;}
  Bool_t GetUseOwnList() const {return fUseOwnList;}

  void ResetV0s() { if(fV0s) fV0s->Clear(); }
  void ResetCascades() { if(fCascades) fCascades->Clear(); }
  void Reset();

  void  Print(Option_t *option="") const;

  void AddObject(TObject* obj);
  void ReadFromTree(TTree *tree, Option_t* opt = "");
  TObject* FindListObject(const char *name) const;
  AliESD *GetAliESDOld(){return fESDOld;}
  void WriteToTree(TTree* tree) const;
  void GetStdContent();
  void ResetStdContent();
  void CreateStdContent();
  void CreateStdContent(Bool_t bUseThisList);
  void CompleteStdContent();
  void SetStdNames();
  void CopyFromOldESD();
  TList* GetList() const {return fESDObjects;}
  
    //Following needed only for mixed event
  virtual Int_t        EventIndex(Int_t)       const {return 0;}
  virtual Int_t        EventIndexForCaloCluster(Int_t) const {return 0;}
  virtual Int_t        EventIndexForPHOSCell(Int_t)    const {return 0;}
  virtual Int_t        EventIndexForEMCALCell(Int_t)   const {return 0;} 
  
  void SetDetectorStatus(ULong_t detMask) {fDetectorStatus|=detMask;}
  void ResetDetectorStatus(ULong_t detMask) {fDetectorStatus&=~detMask;}
  ULong_t GetDetectorStatus() const {return fDetectorStatus;}
  Bool_t IsDetectorOn(ULong_t detMask) const {return (fDetectorStatus&detMask)>0;}

  void SetDAQDetectorPattern(UInt_t pattern) {fDAQDetectorPattern = pattern;}
  void SetDAQAttributes(UInt_t attributes) {fDAQAttributes = attributes;}
  UInt_t GetDAQDetectorPattern() const {return fDAQDetectorPattern;}
  UInt_t GetDAQAttributes() const {return fDAQAttributes;}

  virtual AliVEvent::EDataLayoutType GetDataLayoutType() const;

protected:
  AliESDEvent(const AliESDEvent&);
  static Bool_t ResetWithPlacementNew(TObject *pObject);

  void AddMuonTrack(const AliESDMuonTrack *t);
  void AddMuonGlobalTrack(const AliESDMuonGlobalTrack *t);     // AU
  
  TList *fESDObjects;             // List of esd Objects

  AliESDRun       *fESDRun;           //! Run information tmp put in the Userdata
  AliESDHeader    *fHeader;           //! ESD Event Header
  AliESDZDC       *fESDZDC;           //! ZDC information
  AliESDFMD       *fESDFMD;           //! FMD object containing rough multiplicity
  AliESDVZERO     *fESDVZERO;         //! VZERO object containing rough multiplicity
  AliESDTZERO     *fESDTZERO;         //! TZEROObject
  AliESDVertex    *fTPCVertex;        //! Primary vertex estimated by the TPC
  AliESDVertex    *fSPDVertex;        //! Primary vertex estimated by the SPD
  AliESDVertex    *fPrimaryVertex;    //! Primary vertex estimated using ESD tracks
  AliMultiplicity *fSPDMult;          //! SPD tracklet multiplicity
  AliESDCaloTrigger* fPHOSTrigger;     //! PHOS Trigger information
  AliESDCaloTrigger* fEMCALTrigger;    //! PHOS Trigger information
  AliESDACORDE    *fESDACORDE;        //! ACORDE ESD object caontaining bit pattern
  AliESDAD    *fESDAD;        //! AD ESD object caontaining bit pattern
  AliESDTrdTrigger *fTrdTrigger;      //! TRD trigger information

  TClonesArray *fSPDPileupVertices;//! Pileup primary vertices reconstructed by SPD 
  TClonesArray *fTrkPileupVertices;//! Pileup primary vertices reconstructed using the tracks 
  TClonesArray *fTracks;           //! ESD tracks 
  TClonesArray *fMuonTracks;       //! MUON ESD tracks
  TClonesArray *fMuonClusters;     //! MUON ESD clusters
  TClonesArray *fMuonPads;         //! MUON ESD pads
  TClonesArray *fMuonGlobalTracks; //! MUON+MFT ESD tracks      // AU
  TClonesArray *fPmdTracks;        //! PMD ESD tracks
  TClonesArray *fTrdTracks;        //! TRD ESD tracks (triggered)
  TClonesArray *fTrdTracklets;     //! TRD tracklets (for trigger)
  TClonesArray *fV0s;              //! V0 vertices
  TClonesArray *fCascades;         //! Cascade vertices
  TClonesArray *fKinks;            //! Kinks
  TClonesArray *fCaloClusters;     //! Calorimeter clusters for PHOS/EMCAL
  AliESDCaloCells *fEMCALCells;     //! EMCAL cell info
  AliESDCaloCells *fPHOSCells;     //! PHOS cell info
  TClonesArray *fCosmicTracks;     //! Tracks created by cosmics finder
  TClonesArray *fESDTOFClusters;    //! TOF clusters
  TClonesArray *fESDTOFHits;        //! TOF hits (used for clusters)
  TClonesArray *fESDTOFMatches;    //! TOF matching info (with the reference to tracks)
  TClonesArray *fErrorLogs;        //! Raw-data reading error messages
 
  Bool_t fOldMuonStructure;        //! Flag if reading ESD with old MUON structure

  AliESD       *fESDOld;           //! Old esd Structure
  AliESDfriend *fESDFriendOld;     //! Old friend esd Structure
  Bool_t    fConnected;            //! flag if leaves are alreday connected
  Bool_t    fUseOwnList;           //! Do not use the list from the esdTree but use the one created by this class 
  Bool_t    fTracksConnected;      //! flag if tracks have already pointer to event set

  static const char* fgkESDListName[kESDListN]; //!

  AliTOFHeader *fTOFHeader;  //! event times (and sigmas) as estimated by TOF
			     //  combinatorial algorithm.
                             //  It contains also TOF time resolution
                             //  and T0spread as written in OCDB
  AliCentrality *fCentrality; //! Centrality for AA collision
  AliEventplane *fEventplane; //! Event plane for AA collision

  ULong64_t fDetectorStatus; // set detector event status bit for good event selection
  UInt_t fDAQDetectorPattern; // Detector pattern from DAQ: bit 0 is SPD, bit 4 is TPC, etc. See event.h
  UInt_t fDAQAttributes; // Third word of attributes from DAQ: bit 7 corresponds to HLT decision 

  ClassDef(AliESDEvent,23)  //ESDEvent class 
};
#endif 

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