#include "AliESDfriend.h"
#include "AliESDVZEROfriend.h"
#include "AliESDTZEROfriend.h"
ClassImp(AliESDfriend)
AliESDfriend::AliESDfriend(): AliVfriendEvent(), fTracks("AliESDfriendTrack",1),
fESDVZEROfriend(NULL),
fESDTZEROfriend(NULL),
fNclustersTPC(),
fNclustersTPCused()
{
for (Int_t i=0;i<72;i++)
{
fNclustersTPC[i]=0;
fNclustersTPCused[i]=0;
}
}
AliESDfriend::AliESDfriend(const AliESDfriend &f) :
AliVfriendEvent(f),
fTracks(f.fTracks),
fESDVZEROfriend(f.fESDVZEROfriend ? new AliESDVZEROfriend(*f.fESDVZEROfriend) : NULL),
fESDTZEROfriend(f.fESDTZEROfriend ? new AliESDTZEROfriend(*f.fESDTZEROfriend) : NULL),
fNclustersTPC(),
fNclustersTPCused()
{
memcpy(fNclustersTPC,f.fNclustersTPC,sizeof(fNclustersTPC));
memcpy(fNclustersTPCused,f.fNclustersTPCused,sizeof(fNclustersTPCused));
}
AliESDfriend& AliESDfriend::operator=(const AliESDfriend& esd)
{
if(&esd == this) return *this;
TObject::operator=(esd);
fTracks = esd.fTracks;
delete fESDVZEROfriend;
fESDVZEROfriend = new AliESDVZEROfriend(*esd.fESDVZEROfriend);
delete fESDTZEROfriend;
fESDTZEROfriend = new AliESDTZEROfriend(*esd.fESDTZEROfriend);
memcpy(fNclustersTPC,esd.fNclustersTPC,sizeof(fNclustersTPC));
memcpy(fNclustersTPCused,esd.fNclustersTPCused,sizeof(fNclustersTPCused));
return *this;
}
AliESDfriend::~AliESDfriend() {
fTracks.Delete();
delete fESDVZEROfriend;
delete fESDTZEROfriend;
}
void AliESDfriend::Reset()
{
fTracks.Delete();
for (Int_t i=0;i<72;i++)
{
fNclustersTPC[i]=0;
fNclustersTPCused[i]=0;
}
delete fESDVZEROfriend; fESDVZEROfriend=0;
delete fESDTZEROfriend; fESDTZEROfriend=0;
}
void AliESDfriend::SetVZEROfriend(AliESDVZEROfriend * obj)
{
if (!fESDVZEROfriend) fESDVZEROfriend = new AliESDVZEROfriend();
if (obj) *fESDVZEROfriend = *obj;
}
void AliESDfriend::SetTZEROfriend(AliESDTZEROfriend * obj)
{
if (!fESDTZEROfriend) fESDTZEROfriend = new AliESDTZEROfriend();
if (obj) *fESDTZEROfriend = *obj;
}