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.                  *
**************************************************************************/
//
// Debug event
// the tree is represented as reduced events
// 
// Authors:
//   M.Fasel <M.Fasel@gsi.de>
//

#include "TObjArray.h"
#include "AliHFEreducedTrack.h"
#include "AliHFEreducedMCParticle.h"
#include "AliHFEreducedEvent.h"

ClassImp(AliHFEreducedEvent)

//_______________________________________
AliHFEreducedEvent::AliHFEreducedEvent():
TObject(),
  fTracks(NULL),
  fMCparticles(NULL),
  fNtracks(0),
  fNmcparticles(0),
  fRunNumber(0),
  fTrigger(0),
  fSPDMultiplicity(0),
  fPileupFlag(kFALSE)
{
  //
  // Default constructor
  //
  fTracks = new TObjArray;
  fTracks->SetOwner();
  fMCparticles = new TObjArray;
  fMCparticles->SetOwner();
  memset(fCentrality, 0, sizeof(Float_t) * kCentBuff);
  memset(fV0Multiplicity, 0, sizeof(Float_t) * 2);
  memset(fZDCEnergy, 0, sizeof(Float_t) * 4);
  memset(fVX, 0, sizeof(Float_t)*2);
  memset(fVY, 0, sizeof(Float_t)*2);
  memset(fVZ, 0, sizeof(Float_t)*2);
  memset(fVMC, 0, sizeof(Double_t)*3);
  memset(fNContrib, 0, sizeof(Int_t) * 2);
  fVertexResolution[1] = 999.;
  fVertexResolution[0] = fVertexResolution[1];
  fVertexDispersion[0] = 999.;
  fVertexDispersion[1] = fVertexDispersion[0];
}

//_______________________________________
AliHFEreducedEvent::AliHFEreducedEvent(const AliHFEreducedEvent &ref):
  TObject(ref),
  fTracks(NULL),
  fMCparticles(NULL),
  fNtracks(ref.fNtracks),
  fNmcparticles(ref.fNmcparticles),
  fRunNumber(ref.fRunNumber),
  fTrigger(ref.fTrigger),
  fSPDMultiplicity(ref.fSPDMultiplicity),
  fPileupFlag(ref.fPileupFlag)
{
  //
  // Copy constructor
  //
  fTracks = new TObjArray;
  fTracks->SetOwner();
  for(int itrk = 0; itrk < ref.GetNumberOfTracks(); itrk++)
    fTracks->Add(new AliHFEreducedTrack(*(ref.GetTrack(itrk))));
  fMCparticles = new TObjArray;
  fMCparticles->SetOwner();
  for(int iprt = 0; iprt < ref.GetNumberOfMCParticles(); iprt++)
    fMCparticles->Add(new AliHFEreducedMCParticle(*(ref.GetMCParticle(iprt))));
  memcpy(fCentrality, ref.fCentrality, sizeof(Float_t) * kCentBuff);
  memcpy(fV0Multiplicity, ref.fV0Multiplicity, sizeof(Float_t) * 2);
  memcpy(fZDCEnergy, ref.fZDCEnergy, sizeof(Float_t) *4);
  memcpy(fVX, ref.fVX, sizeof(Float_t)*2);
  memcpy(fVY, ref.fVY, sizeof(Float_t)*2);
  memcpy(fVZ, ref.fVZ, sizeof(Float_t)*2);
  memcpy(fVMC, ref.fVMC, sizeof(Double_t)*3);
  memcpy(fVertexResolution, ref.fVertexResolution, sizeof(Float_t)*2);
  memcpy(fVertexDispersion, ref.fVertexDispersion, sizeof(Float_t)*2);
  memcpy(fNContrib, ref.fNContrib, sizeof(Int_t) * 2);
}

//_______________________________________
AliHFEreducedEvent &AliHFEreducedEvent::operator=(const AliHFEreducedEvent &ref){
  //
  // Assignment operator
  //
  if(&ref != this){
    TObject::operator=(ref);
    fTracks->SetOwner();
    fTracks->Clear();
    for(int itrk = 0; itrk < ref.GetNumberOfTracks(); itrk++)
      fTracks->Add(new AliHFEreducedTrack(*(ref.GetTrack(itrk))));
    fMCparticles->Clear();
    fMCparticles->SetOwner();
    for(int iprt = 0; iprt < ref.GetNumberOfMCParticles(); iprt++)
      fMCparticles->Add(new AliHFEreducedMCParticle(*(ref.GetMCParticle(iprt))));
    fNtracks = ref.fNtracks;
    fNmcparticles = ref.fNmcparticles;
    fRunNumber = ref.fRunNumber;
    fTrigger = ref.fTrigger;
    memcpy(fVX, ref.fVX, sizeof(Float_t)*2);
    memcpy(fVY, ref.fVY, sizeof(Float_t)*2);
    memcpy(fVZ, ref.fVZ, sizeof(Float_t)*2);
    memcpy(fVMC, ref.fVMC, sizeof(Double_t)*3);
    memcpy(fNContrib, ref.fNContrib, sizeof(Int_t) * 2);
    memcpy(fVertexResolution, ref.fVertexResolution, sizeof(Float_t)*2);
    memcpy(fVertexDispersion, ref.fVertexDispersion, sizeof(Float_t)*2);
    fSPDMultiplicity = ref.fSPDMultiplicity;
    fPileupFlag = ref.fPileupFlag;
    memcpy(fCentrality, ref.fCentrality, sizeof(Float_t) * kCentBuff);
    memcpy(fV0Multiplicity, ref.fV0Multiplicity, sizeof(Float_t) * 2);
    memcpy(fZDCEnergy, ref.fZDCEnergy, sizeof(Float_t) *4);
  }
  return *this;
}

//_______________________________________
AliHFEreducedEvent::~AliHFEreducedEvent(){
  //
  // Destructor: Clear tracks an MC particles
  //
  delete fTracks;
  delete fMCparticles;
}

//_______________________________________
void AliHFEreducedEvent::AddTrack(const AliHFEreducedTrack *track){
  //
  // Add track to the event
  //
  fTracks->Add(new AliHFEreducedTrack(*track));
  fNtracks++;
}

//_______________________________________
const AliHFEreducedTrack *AliHFEreducedEvent::GetTrack(Int_t itrk) const {
  //
  // Get Track
  //
  if(itrk < 0 || itrk >= fNtracks) return NULL;
  return dynamic_cast<const AliHFEreducedTrack *>(fTracks->At(itrk));
}

//_______________________________________
void AliHFEreducedEvent::AddMCParticle(const AliHFEreducedMCParticle *track){
  //
  // Add MC particle to the Event
  //
  fMCparticles->Add(new AliHFEreducedMCParticle(*track));
  fNmcparticles++;
}

//_______________________________________
const AliHFEreducedMCParticle *AliHFEreducedEvent::GetMCParticle(Int_t itrk) const {
  //
  // Get MC particle
  //
  if(itrk < 0 || itrk >= fNmcparticles) return NULL;
  return dynamic_cast<const AliHFEreducedMCParticle *>(fMCparticles->At(itrk));
}
 AliHFEreducedEvent.cxx:1
 AliHFEreducedEvent.cxx:2
 AliHFEreducedEvent.cxx:3
 AliHFEreducedEvent.cxx:4
 AliHFEreducedEvent.cxx:5
 AliHFEreducedEvent.cxx:6
 AliHFEreducedEvent.cxx:7
 AliHFEreducedEvent.cxx:8
 AliHFEreducedEvent.cxx:9
 AliHFEreducedEvent.cxx:10
 AliHFEreducedEvent.cxx:11
 AliHFEreducedEvent.cxx:12
 AliHFEreducedEvent.cxx:13
 AliHFEreducedEvent.cxx:14
 AliHFEreducedEvent.cxx:15
 AliHFEreducedEvent.cxx:16
 AliHFEreducedEvent.cxx:17
 AliHFEreducedEvent.cxx:18
 AliHFEreducedEvent.cxx:19
 AliHFEreducedEvent.cxx:20
 AliHFEreducedEvent.cxx:21
 AliHFEreducedEvent.cxx:22
 AliHFEreducedEvent.cxx:23
 AliHFEreducedEvent.cxx:24
 AliHFEreducedEvent.cxx:25
 AliHFEreducedEvent.cxx:26
 AliHFEreducedEvent.cxx:27
 AliHFEreducedEvent.cxx:28
 AliHFEreducedEvent.cxx:29
 AliHFEreducedEvent.cxx:30
 AliHFEreducedEvent.cxx:31
 AliHFEreducedEvent.cxx:32
 AliHFEreducedEvent.cxx:33
 AliHFEreducedEvent.cxx:34
 AliHFEreducedEvent.cxx:35
 AliHFEreducedEvent.cxx:36
 AliHFEreducedEvent.cxx:37
 AliHFEreducedEvent.cxx:38
 AliHFEreducedEvent.cxx:39
 AliHFEreducedEvent.cxx:40
 AliHFEreducedEvent.cxx:41
 AliHFEreducedEvent.cxx:42
 AliHFEreducedEvent.cxx:43
 AliHFEreducedEvent.cxx:44
 AliHFEreducedEvent.cxx:45
 AliHFEreducedEvent.cxx:46
 AliHFEreducedEvent.cxx:47
 AliHFEreducedEvent.cxx:48
 AliHFEreducedEvent.cxx:49
 AliHFEreducedEvent.cxx:50
 AliHFEreducedEvent.cxx:51
 AliHFEreducedEvent.cxx:52
 AliHFEreducedEvent.cxx:53
 AliHFEreducedEvent.cxx:54
 AliHFEreducedEvent.cxx:55
 AliHFEreducedEvent.cxx:56
 AliHFEreducedEvent.cxx:57
 AliHFEreducedEvent.cxx:58
 AliHFEreducedEvent.cxx:59
 AliHFEreducedEvent.cxx:60
 AliHFEreducedEvent.cxx:61
 AliHFEreducedEvent.cxx:62
 AliHFEreducedEvent.cxx:63
 AliHFEreducedEvent.cxx:64
 AliHFEreducedEvent.cxx:65
 AliHFEreducedEvent.cxx:66
 AliHFEreducedEvent.cxx:67
 AliHFEreducedEvent.cxx:68
 AliHFEreducedEvent.cxx:69
 AliHFEreducedEvent.cxx:70
 AliHFEreducedEvent.cxx:71
 AliHFEreducedEvent.cxx:72
 AliHFEreducedEvent.cxx:73
 AliHFEreducedEvent.cxx:74
 AliHFEreducedEvent.cxx:75
 AliHFEreducedEvent.cxx:76
 AliHFEreducedEvent.cxx:77
 AliHFEreducedEvent.cxx:78
 AliHFEreducedEvent.cxx:79
 AliHFEreducedEvent.cxx:80
 AliHFEreducedEvent.cxx:81
 AliHFEreducedEvent.cxx:82
 AliHFEreducedEvent.cxx:83
 AliHFEreducedEvent.cxx:84
 AliHFEreducedEvent.cxx:85
 AliHFEreducedEvent.cxx:86
 AliHFEreducedEvent.cxx:87
 AliHFEreducedEvent.cxx:88
 AliHFEreducedEvent.cxx:89
 AliHFEreducedEvent.cxx:90
 AliHFEreducedEvent.cxx:91
 AliHFEreducedEvent.cxx:92
 AliHFEreducedEvent.cxx:93
 AliHFEreducedEvent.cxx:94
 AliHFEreducedEvent.cxx:95
 AliHFEreducedEvent.cxx:96
 AliHFEreducedEvent.cxx:97
 AliHFEreducedEvent.cxx:98
 AliHFEreducedEvent.cxx:99
 AliHFEreducedEvent.cxx:100
 AliHFEreducedEvent.cxx:101
 AliHFEreducedEvent.cxx:102
 AliHFEreducedEvent.cxx:103
 AliHFEreducedEvent.cxx:104
 AliHFEreducedEvent.cxx:105
 AliHFEreducedEvent.cxx:106
 AliHFEreducedEvent.cxx:107
 AliHFEreducedEvent.cxx:108
 AliHFEreducedEvent.cxx:109
 AliHFEreducedEvent.cxx:110
 AliHFEreducedEvent.cxx:111
 AliHFEreducedEvent.cxx:112
 AliHFEreducedEvent.cxx:113
 AliHFEreducedEvent.cxx:114
 AliHFEreducedEvent.cxx:115
 AliHFEreducedEvent.cxx:116
 AliHFEreducedEvent.cxx:117
 AliHFEreducedEvent.cxx:118
 AliHFEreducedEvent.cxx:119
 AliHFEreducedEvent.cxx:120
 AliHFEreducedEvent.cxx:121
 AliHFEreducedEvent.cxx:122
 AliHFEreducedEvent.cxx:123
 AliHFEreducedEvent.cxx:124
 AliHFEreducedEvent.cxx:125
 AliHFEreducedEvent.cxx:126
 AliHFEreducedEvent.cxx:127
 AliHFEreducedEvent.cxx:128
 AliHFEreducedEvent.cxx:129
 AliHFEreducedEvent.cxx:130
 AliHFEreducedEvent.cxx:131
 AliHFEreducedEvent.cxx:132
 AliHFEreducedEvent.cxx:133
 AliHFEreducedEvent.cxx:134
 AliHFEreducedEvent.cxx:135
 AliHFEreducedEvent.cxx:136
 AliHFEreducedEvent.cxx:137
 AliHFEreducedEvent.cxx:138
 AliHFEreducedEvent.cxx:139
 AliHFEreducedEvent.cxx:140
 AliHFEreducedEvent.cxx:141
 AliHFEreducedEvent.cxx:142
 AliHFEreducedEvent.cxx:143
 AliHFEreducedEvent.cxx:144
 AliHFEreducedEvent.cxx:145
 AliHFEreducedEvent.cxx:146
 AliHFEreducedEvent.cxx:147
 AliHFEreducedEvent.cxx:148
 AliHFEreducedEvent.cxx:149
 AliHFEreducedEvent.cxx:150
 AliHFEreducedEvent.cxx:151
 AliHFEreducedEvent.cxx:152
 AliHFEreducedEvent.cxx:153
 AliHFEreducedEvent.cxx:154
 AliHFEreducedEvent.cxx:155
 AliHFEreducedEvent.cxx:156
 AliHFEreducedEvent.cxx:157
 AliHFEreducedEvent.cxx:158
 AliHFEreducedEvent.cxx:159
 AliHFEreducedEvent.cxx:160
 AliHFEreducedEvent.cxx:161
 AliHFEreducedEvent.cxx:162
 AliHFEreducedEvent.cxx:163
 AliHFEreducedEvent.cxx:164
 AliHFEreducedEvent.cxx:165
 AliHFEreducedEvent.cxx:166
 AliHFEreducedEvent.cxx:167
 AliHFEreducedEvent.cxx:168
 AliHFEreducedEvent.cxx:169
 AliHFEreducedEvent.cxx:170
 AliHFEreducedEvent.cxx:171
 AliHFEreducedEvent.cxx:172
 AliHFEreducedEvent.cxx:173
 AliHFEreducedEvent.cxx:174
 AliHFEreducedEvent.cxx:175
 AliHFEreducedEvent.cxx:176