//-----------------------------------------------------------------
#include "AliESD.h"
+#include "AliESDfriend.h"
ClassImp(AliESD)
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);
+ }
+}
#include "AliESDV0MI.h"
#include "AliESDFMD.h"
+class AliESDfriend;
+
class AliESD : public TObject {
public:
AliESD();
virtual ~AliESD();
+ void SetESDfriend(const AliESDfriend *f);
+ void GetESDfriend(AliESDfriend *f) const;
+
void SetEventNumber(Int_t n) {fEventNumber=n;}
void SetRunNumber(Int_t n) {fRunNumber=n;}
void SetTrigger(Long_t n) {fTrigger=n;}
//-------------------------------------------------------------------------
#include "AliESDfriend.h"
-#include "AliESDfriendTrack.h"
-#include "AliESD.h"
ClassImp(AliESDfriend)
//
}
-AliESDfriend::AliESDfriend(const AliESD &event): TObject(event),
-fTracks("AliESDfriendTrack",event.GetNumberOfTracks()) {
- //
- // Extracts the additional info from the ESD
- //
- Int_t ntrk=event.GetNumberOfTracks();
-
- for (Int_t i=0; i<ntrk; i++) {
- const AliESDtrack *t=event.GetTrack(i);
- AliESDfriendTrack *ft=(AliESDfriendTrack *)t->GetFriendTrack();
- ft->Set1P(t->Get1P());
- new (fTracks[fTracks.GetEntriesFast()]) AliESDfriendTrack(*ft);
- }
-}
-
AliESDfriend::~AliESDfriend() {
//
// Destructor
#include <TObject.h>
#include <TClonesArray.h>
-class AliESD;
-class AliESDfriendTrack;
+#include <AliESDfriendTrack.h>
//_____________________________________________________________________________
class AliESDfriend : public TObject {
public:
AliESDfriend();
AliESDfriend(const AliESDfriend &);
- AliESDfriend(const AliESD &);
virtual ~AliESDfriend();
Int_t GetNumberOfTracks() const {return fTracks.GetEntriesFast();}
AliESDfriendTrack *GetTrack(Int_t i) const {
- return (AliESDfriendTrack *)fTracks.UncheckedAt(i);
+ return (AliESDfriendTrack *)fTracks.UncheckedAt(i);
+ }
+ void AddTrack(const AliESDfriendTrack *t) {
+ new(fTracks[fTracks.GetEntriesFast()]) AliESDfriendTrack(*t);
}
protected:
#include "AliESDVertex.h"
#include "AliESDtrack.h"
-#include "AliESDfriendTrack.h"
#include "AliKalmanTrack.h"
#include "AliLog.h"
#include "AliTrackPointArray.h"
AliESDtrack(const AliESDtrack& track);
virtual ~AliESDtrack();
const AliESDfriendTrack *GetFriendTrack() const {return fFriendTrack;}
+ void SetFriendTrack(const AliESDfriendTrack *t) {
+ delete fFriendTrack; fFriendTrack=new AliESDfriendTrack(*t);
+ }
void MakeMiniESDtrack();
void SetID(Int_t id) { fID =id;}
Int_t GetID() const { return fID;}
// write ESD friend
if (fWriteESDfriend) {
- esdf=new AliESDfriend(*esd);
+ esdf=new AliESDfriend();
+ esd->GetESDfriend(esdf);
treef->Fill();
}