Bug fix: Corrected assignment operator.
[u/mrichter/AliRoot.git] / STEER / AliESDfriend.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 //-------------------------------------------------------------------------
17 //               Implementation of the AliESDfriend class
18 //  This class contains some additional to the ESD information like
19 //  the clusters associated to tracks.
20 //      Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
21 //-------------------------------------------------------------------------
22
23 #include "AliESDfriend.h"
24
25 ClassImp(AliESDfriend)
26
27 AliESDfriend::AliESDfriend(): TObject(), fTracks("AliESDfriendTrack",15000),
28                               fESDVZEROfriend(NULL)
29 {
30  //
31  // Default constructor
32  //
33 }
34
35 AliESDfriend::AliESDfriend(const AliESDfriend &f) :
36   TObject(f),
37   fTracks(f.fTracks),
38   fESDVZEROfriend(f.fESDVZEROfriend ? new AliESDVZEROfriend(*f.fESDVZEROfriend) : NULL)
39 {
40  //
41  // Copy constructor
42  //
43 }
44
45 AliESDfriend& AliESDfriend::operator=(const AliESDfriend& esd)
46 {
47     
48     // Assignment operator
49     if(&esd == this) return *this;
50     TObject::operator=(esd);
51     fTracks = esd.fTracks;
52
53     delete fESDVZEROfriend; fESDVZEROfriend = NULL;
54     if (esd.fESDVZEROfriend) fESDVZEROfriend = new AliESDVZEROfriend(*esd.fESDVZEROfriend);
55
56     return *this;
57 }
58
59
60
61 AliESDfriend::~AliESDfriend() {
62   //
63   // Destructor
64   //
65   fTracks.Delete();
66   delete fESDVZEROfriend;
67 }
68
69 void AliESDfriend::SetVZEROfriend(AliESDVZEROfriend * obj)
70 {
71   //
72   // Set the VZERO friend data object
73   // (complete raw data)
74   if (!fESDVZEROfriend) fESDVZEROfriend = new AliESDVZEROfriend();
75   if (obj) *fESDVZEROfriend = *obj;
76 }