]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDfriend.cxx
Setting the class name meta-data field in the constructor
[u/mrichter/AliRoot.git] / STEER / AliESDfriend.cxx
index ea8e1de5516d3dd6592f89a2ac07ed1a88707ad3..0bf592586862c5aedc4990a94f31925614ca8eae 100644 (file)
 //-------------------------------------------------------------------------
 
 #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;
 }