ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//-------------------------------------------------------------------------
//               Implementation of the AliESDfriend class
//  This class contains some additional to the ESD information like
//  the clusters associated to tracks.
//      Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
//-------------------------------------------------------------------------

#include "AliESDfriend.h"
#include "AliESDVZEROfriend.h"
#include "AliESDTZEROfriend.h"

ClassImp(AliESDfriend)

AliESDfriend::AliESDfriend(): AliVfriendEvent(), fTracks("AliESDfriendTrack",1),
  fESDVZEROfriend(NULL),
  fESDTZEROfriend(NULL),
  fNclustersTPC(),
  fNclustersTPCused()
{
 //
 // Default constructor
 //
  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()
{
 //
 // Copy constructor
 //
 memcpy(fNclustersTPC,f.fNclustersTPC,sizeof(fNclustersTPC));
 memcpy(fNclustersTPCused,f.fNclustersTPCused,sizeof(fNclustersTPCused));

}

AliESDfriend& AliESDfriend::operator=(const AliESDfriend& esd)
{
    
    // Assignment operator
    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() {
  //
  // Destructor
  //
  fTracks.Delete();
  delete fESDVZEROfriend;
  delete fESDTZEROfriend;
}


void AliESDfriend::Reset()
{
  //
  // Reset friend information
  //
  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)
{
  //
  // Set the VZERO friend data object
  // (complete raw data)
  if (!fESDVZEROfriend) fESDVZEROfriend = new AliESDVZEROfriend();
  if (obj) *fESDVZEROfriend = *obj;
}
void AliESDfriend::SetTZEROfriend(AliESDTZEROfriend * obj)
{
  //
  // Set the TZERO friend data object
  // (complete raw data)
  if (!fESDTZEROfriend) fESDTZEROfriend = new AliESDTZEROfriend();
  if (obj) *fESDTZEROfriend = *obj;
}
 AliESDfriend.cxx:1
 AliESDfriend.cxx:2
 AliESDfriend.cxx:3
 AliESDfriend.cxx:4
 AliESDfriend.cxx:5
 AliESDfriend.cxx:6
 AliESDfriend.cxx:7
 AliESDfriend.cxx:8
 AliESDfriend.cxx:9
 AliESDfriend.cxx:10
 AliESDfriend.cxx:11
 AliESDfriend.cxx:12
 AliESDfriend.cxx:13
 AliESDfriend.cxx:14
 AliESDfriend.cxx:15
 AliESDfriend.cxx:16
 AliESDfriend.cxx:17
 AliESDfriend.cxx:18
 AliESDfriend.cxx:19
 AliESDfriend.cxx:20
 AliESDfriend.cxx:21
 AliESDfriend.cxx:22
 AliESDfriend.cxx:23
 AliESDfriend.cxx:24
 AliESDfriend.cxx:25
 AliESDfriend.cxx:26
 AliESDfriend.cxx:27
 AliESDfriend.cxx:28
 AliESDfriend.cxx:29
 AliESDfriend.cxx:30
 AliESDfriend.cxx:31
 AliESDfriend.cxx:32
 AliESDfriend.cxx:33
 AliESDfriend.cxx:34
 AliESDfriend.cxx:35
 AliESDfriend.cxx:36
 AliESDfriend.cxx:37
 AliESDfriend.cxx:38
 AliESDfriend.cxx:39
 AliESDfriend.cxx:40
 AliESDfriend.cxx:41
 AliESDfriend.cxx:42
 AliESDfriend.cxx:43
 AliESDfriend.cxx:44
 AliESDfriend.cxx:45
 AliESDfriend.cxx:46
 AliESDfriend.cxx:47
 AliESDfriend.cxx:48
 AliESDfriend.cxx:49
 AliESDfriend.cxx:50
 AliESDfriend.cxx:51
 AliESDfriend.cxx:52
 AliESDfriend.cxx:53
 AliESDfriend.cxx:54
 AliESDfriend.cxx:55
 AliESDfriend.cxx:56
 AliESDfriend.cxx:57
 AliESDfriend.cxx:58
 AliESDfriend.cxx:59
 AliESDfriend.cxx:60
 AliESDfriend.cxx:61
 AliESDfriend.cxx:62
 AliESDfriend.cxx:63
 AliESDfriend.cxx:64
 AliESDfriend.cxx:65
 AliESDfriend.cxx:66
 AliESDfriend.cxx:67
 AliESDfriend.cxx:68
 AliESDfriend.cxx:69
 AliESDfriend.cxx:70
 AliESDfriend.cxx:71
 AliESDfriend.cxx:72
 AliESDfriend.cxx:73
 AliESDfriend.cxx:74
 AliESDfriend.cxx:75
 AliESDfriend.cxx:76
 AliESDfriend.cxx:77
 AliESDfriend.cxx:78
 AliESDfriend.cxx:79
 AliESDfriend.cxx:80
 AliESDfriend.cxx:81
 AliESDfriend.cxx:82
 AliESDfriend.cxx:83
 AliESDfriend.cxx:84
 AliESDfriend.cxx:85
 AliESDfriend.cxx:86
 AliESDfriend.cxx:87
 AliESDfriend.cxx:88
 AliESDfriend.cxx:89
 AliESDfriend.cxx:90
 AliESDfriend.cxx:91
 AliESDfriend.cxx:92
 AliESDfriend.cxx:93
 AliESDfriend.cxx:94
 AliESDfriend.cxx:95
 AliESDfriend.cxx:96
 AliESDfriend.cxx:97
 AliESDfriend.cxx:98
 AliESDfriend.cxx:99
 AliESDfriend.cxx:100
 AliESDfriend.cxx:101
 AliESDfriend.cxx:102
 AliESDfriend.cxx:103
 AliESDfriend.cxx:104
 AliESDfriend.cxx:105
 AliESDfriend.cxx:106
 AliESDfriend.cxx:107
 AliESDfriend.cxx:108
 AliESDfriend.cxx:109
 AliESDfriend.cxx:110
 AliESDfriend.cxx:111
 AliESDfriend.cxx:112
 AliESDfriend.cxx:113
 AliESDfriend.cxx:114
 AliESDfriend.cxx:115
 AliESDfriend.cxx:116
 AliESDfriend.cxx:117
 AliESDfriend.cxx:118
 AliESDfriend.cxx:119
 AliESDfriend.cxx:120
 AliESDfriend.cxx:121
 AliESDfriend.cxx:122
 AliESDfriend.cxx:123
 AliESDfriend.cxx:124
 AliESDfriend.cxx:125