Possibility to filter the ESD friends and add objects to AliESDfriends.root. Major...
[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         //fTracks.BypassStreamer(kFALSE);
34 }
35
36 AliESDfriend::AliESDfriend(const AliESDfriend &f) :
37   TObject(f),
38   fTracks(f.fTracks),
39   fESDVZEROfriend(f.fESDVZEROfriend ? new AliESDVZEROfriend(*f.fESDVZEROfriend) : NULL)
40 {
41  //
42  // Copy constructor
43  //
44 }
45
46 AliESDfriend& AliESDfriend::operator=(const AliESDfriend& esd)
47 {
48     
49     // Assignment operator
50     if(&esd == this) return *this;
51     TObject::operator=(esd);
52     fTracks = esd.fTracks;
53
54     delete fESDVZEROfriend; fESDVZEROfriend = NULL;
55     if (!esd.fESDVZEROfriend) fESDVZEROfriend = new AliESDVZEROfriend(*esd.fESDVZEROfriend);
56
57     return *this;
58 }
59
60
61
62 AliESDfriend::~AliESDfriend() {
63   //
64   // Destructor
65   //
66   fTracks.Delete();
67   delete fESDVZEROfriend;
68 }
69
70 void AliESDfriend::SetVZEROfriend(AliESDVZEROfriend * obj)
71 {
72   //
73   // Set the VZERO friend data object
74   // (complete raw data)
75   if (!fESDVZEROfriend) fESDVZEROfriend = new AliESDVZEROfriend();
76   if (obj) *fESDVZEROfriend = *obj;
77 }