1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
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 //-------------------------------------------------------------------------
23 #include "AliESDfriend.h"
24 #include "AliESDVZEROfriend.h"
25 #include "AliESDTZEROfriend.h"
27 ClassImp(AliESDfriend)
29 AliESDfriend::AliESDfriend(): AliVfriendEvent(), fTracks("AliESDfriendTrack",1),
30 fESDVZEROfriend(NULL),
31 fESDTZEROfriend(NULL),
36 // Default constructor
38 for (Int_t i=0;i<72;i++)
41 fNclustersTPCused[i]=0;
45 AliESDfriend::AliESDfriend(const AliESDfriend &f) :
48 fESDVZEROfriend(f.fESDVZEROfriend ? new AliESDVZEROfriend(*f.fESDVZEROfriend) : NULL),
49 fESDTZEROfriend(f.fESDTZEROfriend ? new AliESDTZEROfriend(*f.fESDTZEROfriend) : NULL),
56 memcpy(fNclustersTPC,f.fNclustersTPC,sizeof(fNclustersTPC));
57 memcpy(fNclustersTPCused,f.fNclustersTPCused,sizeof(fNclustersTPCused));
61 AliESDfriend& AliESDfriend::operator=(const AliESDfriend& esd)
64 // Assignment operator
65 if(&esd == this) return *this;
66 TObject::operator=(esd);
67 fTracks = esd.fTracks;
69 delete fESDVZEROfriend;
70 fESDVZEROfriend = new AliESDVZEROfriend(*esd.fESDVZEROfriend);
72 delete fESDTZEROfriend;
73 fESDTZEROfriend = new AliESDTZEROfriend(*esd.fESDTZEROfriend);
75 memcpy(fNclustersTPC,esd.fNclustersTPC,sizeof(fNclustersTPC));
76 memcpy(fNclustersTPCused,esd.fNclustersTPCused,sizeof(fNclustersTPCused));
84 AliESDfriend::~AliESDfriend() {
89 delete fESDVZEROfriend;
90 delete fESDTZEROfriend;
94 void AliESDfriend::Reset()
97 // Reset friend information
100 for (Int_t i=0;i<72;i++)
103 fNclustersTPCused[i]=0;
105 delete fESDVZEROfriend; fESDVZEROfriend=0;
106 delete fESDTZEROfriend; fESDTZEROfriend=0;
110 void AliESDfriend::SetVZEROfriend(AliESDVZEROfriend * obj)
113 // Set the VZERO friend data object
114 // (complete raw data)
115 if (!fESDVZEROfriend) fESDVZEROfriend = new AliESDVZEROfriend();
116 if (obj) *fESDVZEROfriend = *obj;
118 void AliESDfriend::SetTZEROfriend(AliESDTZEROfriend * obj)
121 // Set the TZERO friend data object
122 // (complete raw data)
123 if (!fESDTZEROfriend) fESDTZEROfriend = new AliESDTZEROfriend();
124 if (obj) *fESDTZEROfriend = *obj;