//-----------------------------------------------------------------
#include "AliESD.h"
+#include "AliESDfriend.h"
ClassImp(AliESD)
fMagneticField(0),
fZDCN1Energy(0),
fZDCP1Energy(0),
- fZDCEMEnergy(0),
fZDCN2Energy(0),
fZDCP2Energy(0),
+ fZDCEMEnergy(0),
fZDCParticipants(0),
fT0zVertex(0),
fPrimaryVertex(),
fHLTHoughTracks("AliESDHLTtrack",15000),
fMuonTracks("AliESDMuonTrack",30),
fPmdTracks("AliESDPmdTrack",3000),
+ fTrdTracks("AliESDTrdTrack",300),
fV0s("AliESDv0",200),
fCascades("AliESDcascade",20),
fKinks("AliESDkink",4000),
fHLTHoughTracks.Delete();
fMuonTracks.Delete();
fPmdTracks.Delete();
+ fTrdTracks.Delete();
fV0s.Delete();
fCascades.Delete();
fKinks.Delete();
fMagneticField=0;
fZDCN1Energy=0;
fZDCP1Energy=0;
- fZDCEMEnergy=0;
fZDCN2Energy=0;
fZDCP2Energy=0;
+ fZDCEMEnergy=0;
fZDCParticipants=0;
fT0zVertex=0;
fPrimaryVertex.Reset();
fHLTHoughTracks.Clear();
fMuonTracks.Clear();
fPmdTracks.Clear();
+ fTrdTracks.Clear();
fV0s.Clear();
fCascades.Clear();
fCaloClusters.Clear();
printf(" emcal %d\n", GetNumberOfEMCALClusters());
printf(" muon %d\n", GetNumberOfMuonTracks());
printf(" pmd %d\n", GetNumberOfPmdTracks());
+ printf(" trd %d\n", GetNumberOfTrdTracks());
printf(" v0 %d\n", GetNumberOfV0s());
printf(" cascades %d\n)", GetNumberOfCascades());
printf(" kinks %d\n)", GetNumberOfKinks());
printf(" CaloClusters %d\n)", GetNumberOfCaloClusters());
printf(" FMD %s\n)", (fESDFMD ? "yes" : "no"));
}
+
+void AliESD::SetESDfriend(const AliESDfriend *ev) {
+ //
+ // Attaches the complementary info to the ESD
+ //
+ if (!ev) return;
+
+ Int_t ntrk=ev->GetNumberOfTracks();
+
+ for (Int_t i=0; i<ntrk; i++) {
+ const AliESDfriendTrack *f=ev->GetTrack(i);
+ GetTrack(i)->SetFriendTrack(f);
+ }
+}
+
+void AliESD::GetESDfriend(AliESDfriend *ev) const {
+ //
+ // Extracts the complementary info from the ESD
+ //
+ if (!ev) return;
+
+ Int_t ntrk=GetNumberOfTracks();
+
+ for (Int_t i=0; i<ntrk; i++) {
+ const AliESDtrack *t=GetTrack(i);
+ const AliESDfriendTrack *f=t->GetFriendTrack();
+ ev->AddTrack(f);
+ }
+}