//-------------------------------------------------------------------------
#include "AliESDfriend.h"
-#include "AliESDfriendTrack.h"
-#include "AliESD.h"
ClassImp(AliESDfriend)
-AliESDfriend::AliESDfriend(): TObject(), fTracks("AliESDfriendTrack",15000)
+AliESDfriend::AliESDfriend(): TObject(), fTracks("AliESDfriendTrack",15000),
+ fESDVZEROfriend(NULL)
{
//
// Default constructor
//
}
-AliESDfriend::AliESDfriend(const AliESDfriend &f):TObject(f),fTracks(f.fTracks)
+AliESDfriend::AliESDfriend(const AliESDfriend &f) :
+ TObject(f),
+ fTracks(f.fTracks),
+ fESDVZEROfriend(f.fESDVZEROfriend ? new AliESDVZEROfriend(*f.fESDVZEROfriend) : NULL)
{
//
// Copy constructor
//
}
-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::operator=(const AliESDfriend& esd)
+{
+
+ // Assignment operator
+ if(&esd == this) return *this;
+ TObject::operator=(esd);
+ fTracks = esd.fTracks;
+
+ delete fESDVZEROfriend; fESDVZEROfriend = NULL;
+ if (!esd.fESDVZEROfriend) fESDVZEROfriend = new AliESDVZEROfriend(*esd.fESDVZEROfriend);
+
+ return *this;
}
+
+
AliESDfriend::~AliESDfriend() {
//
// Destructor
//
fTracks.Delete();
+ delete fESDVZEROfriend;
+}
+
+void AliESDfriend::SetVZEROfriend(AliESDVZEROfriend * obj)
+{
+ //
+ // Set the VZERO friend data object
+ // (complete raw data)
+ if (!fESDVZEROfriend) fESDVZEROfriend = new AliESDVZEROfriend();
+ if (obj) *fESDVZEROfriend = *obj;
}