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.                  *
 **************************************************************************/

/* $Id$ */
/* $Log $ */

//-----------------------------------------------------------------
//           Implementation of the ESD Calorimeter cluster class
//   ESD = Event Summary Data
//   This is the class to deal with during the phisics analysis of data
//
//   J.L. Klay (LLNL)
//-----------------------------------------------------------------

#include <TLorentzVector.h>
#include "AliESDCaloCluster.h"

ClassImp(AliESDCaloCluster)

//_______________________________________________________________________
AliESDCaloCluster::AliESDCaloCluster() : 
  AliVCluster(),
  fTracksMatched(0x0),
  fLabels(0x0),
  fNCells(0),
  fCellsAbsId(0x0),
  fCellsAmpFraction(0x0),
  fEnergy(0),
  fDispersion(0),
  fChi2(0),
  fM20(0),
  fM02(0),
  fEmcCpvDistance(1024),
  fTrackDx(1024),fTrackDz(1024),
  fDistToBadChannel(1024),
  fID(0),
  fNExMax(0),
  fClusterType(kUndef), 
  fTOF(0.),
  fMCEnergyFraction(0.),
  fCoreEnergy(0.)
{
  //
  // The default ESD constructor 
  //
  fGlobalPos[0] = fGlobalPos[1] = fGlobalPos[2] = 0.;
  for(Int_t i=0; i<AliPID::kSPECIESCN; i++) fPID[i] = 0.;
}

//_______________________________________________________________________
AliESDCaloCluster::AliESDCaloCluster(const AliESDCaloCluster& clus) : 
  AliVCluster(clus),
  fTracksMatched(clus.fTracksMatched?new TArrayI(*clus.fTracksMatched):0x0),
  fLabels(clus.fLabels?new TArrayI(*clus.fLabels):0x0),
  fNCells(clus.fNCells),
  fCellsAbsId(),
  fCellsAmpFraction(),
  fEnergy(clus.fEnergy),
  fDispersion(clus.fDispersion),
  fChi2(clus.fChi2),
  fM20(clus.fM20),
  fM02(clus.fM02),
  fEmcCpvDistance(clus.fEmcCpvDistance),
  fTrackDx(clus.fTrackDx),
  fTrackDz(clus.fTrackDz),
  fDistToBadChannel(clus.fDistToBadChannel),
  fID(clus.fID),
  fNExMax(clus.fNExMax),
  fClusterType(clus.fClusterType),
  fTOF(clus.fTOF),
  fMCEnergyFraction(clus.fMCEnergyFraction),
  fCoreEnergy(clus.fCoreEnergy)
{
  //
  // The copy constructor 
  //
  fGlobalPos[0] = clus.fGlobalPos[0];
  fGlobalPos[1] = clus.fGlobalPos[1];
  fGlobalPos[2] = clus.fGlobalPos[2];

  for(Int_t i=0; i<AliPID::kSPECIESCN; i++) fPID[i] = clus.fPID[i];

  if (clus.fNCells > 0) {

    if(clus.fCellsAbsId){
      fCellsAbsId = new UShort_t[clus.fNCells];
      for (Int_t i=0; i<clus.fNCells; i++)
	fCellsAbsId[i]=clus.fCellsAbsId[i];
    }
    
    if(clus.fCellsAmpFraction){
      fCellsAmpFraction = new Double32_t[clus.fNCells];
      for (Int_t i=0; i<clus.fNCells; i++)
	fCellsAmpFraction[i]=clus.fCellsAmpFraction[i];
    }
    
  }

}

//_______________________________________________________________________
AliESDCaloCluster &AliESDCaloCluster::operator=(const AliESDCaloCluster& source)
{
  // assignment operator

  if(&source == this) return *this;
  AliVCluster::operator=(source);
  fGlobalPos[0] = source.fGlobalPos[0];
  fGlobalPos[1] = source.fGlobalPos[1];
  fGlobalPos[2] = source.fGlobalPos[2];

  fEnergy = source.fEnergy;
  fDispersion = source.fDispersion;
  fChi2 = source.fChi2;
  fM20 = source.fM20;
  fM02 = source.fM02;
  fEmcCpvDistance = source.fEmcCpvDistance;
  fTrackDx= source.fTrackDx ;
  fTrackDz= source.fTrackDz ;
  fDistToBadChannel = source.fDistToBadChannel ;
  for(Int_t i=0; i<AliPID::kSPECIESCN; i++) fPID[i] = source.fPID[i];
  fID = source.fID;

  fNCells= source.fNCells;

  if (source.fNCells > 0) {
    if(source.fCellsAbsId){
      if(fNCells != source.fNCells||!fCellsAbsId){
	if(fCellsAbsId)delete [] fCellsAbsId;
	fCellsAbsId = new UShort_t[source.fNCells];
      }
      for (Int_t i=0; i<source.fNCells; i++){
	fCellsAbsId[i]=source.fCellsAbsId[i];
      }
    }
    
    if(source.fCellsAmpFraction){
      if(fNCells != source.fNCells||!fCellsAmpFraction){
	if(fCellsAmpFraction) delete [] fCellsAmpFraction;
	fCellsAmpFraction = new Double32_t[source.fNCells];
      }
      for (Int_t i=0; i<source.fNCells; i++)
	fCellsAmpFraction[i]=source.fCellsAmpFraction[i];
    }  
  }

  fNExMax = source.fNExMax;
  fClusterType = source.fClusterType;
  fTOF = source.fTOF;

  //not in use
  if(source.fTracksMatched){
    // assign or copy construct
    if(fTracksMatched){
      *fTracksMatched = *source.fTracksMatched;
    }
    else fTracksMatched = new TArrayI(*source.fTracksMatched);
  }
  else{
    if(fTracksMatched)delete fTracksMatched;
    fTracksMatched = 0;
  }

  if(source.fLabels){
    // assign or copy construct
    if(fLabels){ 
      *fLabels = *source.fLabels;
    }
    else fLabels = new TArrayI(*source.fLabels);
  }
  else{
    if(fLabels)delete fLabels;
    fLabels = 0;
  }

  fMCEnergyFraction = source.fMCEnergyFraction;

  fCoreEnergy = source.fCoreEnergy;
  
  return *this;

}

//_______________________________________________________________________
void AliESDCaloCluster::Copy(TObject &obj) const {
  
  // this overwrites the virtual TOBject::Copy()
  // to allow run time copying without casting
  // in AliESDEvent

  if(this==&obj)return;
  AliESDCaloCluster *robj = dynamic_cast<AliESDCaloCluster*>(&obj);
  if(!robj)return; // not an AliESDCluster
  *robj = *this;

}

//_______________________________________________________________________
AliESDCaloCluster::~AliESDCaloCluster(){ 
  //
  // This is destructor according Coding Conventions 
  //
  if(fTracksMatched)delete fTracksMatched;fTracksMatched = 0;
  if(fLabels) delete fLabels; fLabels = 0;
  if(fCellsAmpFraction){ delete[] fCellsAmpFraction; fCellsAmpFraction=0;}
  if(fCellsAbsId){ delete[] fCellsAbsId;  fCellsAbsId = 0;}
}

//_______________________________________________________________________
void AliESDCaloCluster::Clear(const Option_t*){ 
  //
  // This is destructor according Coding Conventions 
  //
  if(fTracksMatched)delete fTracksMatched;fTracksMatched = 0;
  if(fLabels) delete fLabels; fLabels = 0;
  if(fCellsAmpFraction){ delete[] fCellsAmpFraction; fCellsAmpFraction=0;}
  if(fCellsAbsId){ delete[] fCellsAbsId;  fCellsAbsId = 0;}
}


//_______________________________________________________________________
void AliESDCaloCluster::SetPID(const Float_t *p) {
  // Sets the probability of each particle type
  // Copied from AliESDtrack SetPIDValues
  // This function copies "n" PID weights from "scr" to "dest"
  // and normalizes their sum to 1 thus producing conditional
  // probabilities.
  // The negative weights are set to 0.
  // In case all the weights are non-positive they are replaced by
  // uniform probabilities

  Int_t n = AliPID::kSPECIESCN;

  Float_t uniform = 1./(Float_t)n;

  Float_t sum = 0;
  for (Int_t i=0; i<n; i++)
    if (p[i]>=0) {
      sum+=p[i];
      fPID[i] = p[i];
    }
    else {
      fPID[i] = 0;
    }

  if(sum>0)
    for (Int_t i=0; i<n; i++) fPID[i] /= sum;
  else
    for (Int_t i=0; i<n; i++) fPID[i] = uniform;

}

//_______________________________________________________________________
void AliESDCaloCluster::GetMomentum(TLorentzVector& p, Double_t *vertex ) const {
  // Returns TLorentzVector with momentum of the cluster. Only valid for clusters 
  // identified as photons or pi0 (overlapped gamma) produced on the vertex
  //Vertex can be recovered with esd pointer doing:  
  //" Double_t vertex[3] ; esd->GetVertex()->GetXYZ(vertex) ; "

  Double32_t pos[3]={ fGlobalPos[0], fGlobalPos[1], fGlobalPos[2]};
  if(vertex){//calculate direction from vertex
    pos[0]-=vertex[0];
    pos[1]-=vertex[1];
    pos[2]-=vertex[2];
  }
  
  Double_t r = TMath::Sqrt(pos[0]*pos[0]+pos[1]*pos[1]+pos[2]*pos[2]   ) ; 
  
  p.SetPxPyPzE( fEnergy*pos[0]/r,  fEnergy*pos[1]/r,  fEnergy*pos[2]/r,  fEnergy) ;   
}

//_______________________________________________________________________
void  AliESDCaloCluster::SetCellsAbsId(UShort_t *array)
{
    //  Set the array of cell absId numbers 
  if (fNCells) {
    fCellsAbsId = new  UShort_t[fNCells];
    for (Int_t i = 0; i < fNCells; i++) fCellsAbsId[i] = array[i];
  }
}

//_______________________________________________________________________
void  AliESDCaloCluster::SetCellsAmplitudeFraction(Double32_t *array)
{
  //  Set the array of cell amplitude fraction
  if (fNCells) {
    fCellsAmpFraction = new  Double32_t[fNCells];
    for (Int_t i = 0; i < fNCells; i++) fCellsAmpFraction[i] = array[i];
  }
}

//______________________________________________________________________________
void AliESDCaloCluster::SetPosition(Float_t *x) 
{
  // set the position
  
  if (x) {
    fGlobalPos[0] = x[0];
    fGlobalPos[1] = x[1];
    fGlobalPos[2] = x[2];
  } else {
    
    fGlobalPos[0] = -999.;
    fGlobalPos[1] = -999.;
    fGlobalPos[2] = -999.;
  }
}


 AliESDCaloCluster.cxx:1
 AliESDCaloCluster.cxx:2
 AliESDCaloCluster.cxx:3
 AliESDCaloCluster.cxx:4
 AliESDCaloCluster.cxx:5
 AliESDCaloCluster.cxx:6
 AliESDCaloCluster.cxx:7
 AliESDCaloCluster.cxx:8
 AliESDCaloCluster.cxx:9
 AliESDCaloCluster.cxx:10
 AliESDCaloCluster.cxx:11
 AliESDCaloCluster.cxx:12
 AliESDCaloCluster.cxx:13
 AliESDCaloCluster.cxx:14
 AliESDCaloCluster.cxx:15
 AliESDCaloCluster.cxx:16
 AliESDCaloCluster.cxx:17
 AliESDCaloCluster.cxx:18
 AliESDCaloCluster.cxx:19
 AliESDCaloCluster.cxx:20
 AliESDCaloCluster.cxx:21
 AliESDCaloCluster.cxx:22
 AliESDCaloCluster.cxx:23
 AliESDCaloCluster.cxx:24
 AliESDCaloCluster.cxx:25
 AliESDCaloCluster.cxx:26
 AliESDCaloCluster.cxx:27
 AliESDCaloCluster.cxx:28
 AliESDCaloCluster.cxx:29
 AliESDCaloCluster.cxx:30
 AliESDCaloCluster.cxx:31
 AliESDCaloCluster.cxx:32
 AliESDCaloCluster.cxx:33
 AliESDCaloCluster.cxx:34
 AliESDCaloCluster.cxx:35
 AliESDCaloCluster.cxx:36
 AliESDCaloCluster.cxx:37
 AliESDCaloCluster.cxx:38
 AliESDCaloCluster.cxx:39
 AliESDCaloCluster.cxx:40
 AliESDCaloCluster.cxx:41
 AliESDCaloCluster.cxx:42
 AliESDCaloCluster.cxx:43
 AliESDCaloCluster.cxx:44
 AliESDCaloCluster.cxx:45
 AliESDCaloCluster.cxx:46
 AliESDCaloCluster.cxx:47
 AliESDCaloCluster.cxx:48
 AliESDCaloCluster.cxx:49
 AliESDCaloCluster.cxx:50
 AliESDCaloCluster.cxx:51
 AliESDCaloCluster.cxx:52
 AliESDCaloCluster.cxx:53
 AliESDCaloCluster.cxx:54
 AliESDCaloCluster.cxx:55
 AliESDCaloCluster.cxx:56
 AliESDCaloCluster.cxx:57
 AliESDCaloCluster.cxx:58
 AliESDCaloCluster.cxx:59
 AliESDCaloCluster.cxx:60
 AliESDCaloCluster.cxx:61
 AliESDCaloCluster.cxx:62
 AliESDCaloCluster.cxx:63
 AliESDCaloCluster.cxx:64
 AliESDCaloCluster.cxx:65
 AliESDCaloCluster.cxx:66
 AliESDCaloCluster.cxx:67
 AliESDCaloCluster.cxx:68
 AliESDCaloCluster.cxx:69
 AliESDCaloCluster.cxx:70
 AliESDCaloCluster.cxx:71
 AliESDCaloCluster.cxx:72
 AliESDCaloCluster.cxx:73
 AliESDCaloCluster.cxx:74
 AliESDCaloCluster.cxx:75
 AliESDCaloCluster.cxx:76
 AliESDCaloCluster.cxx:77
 AliESDCaloCluster.cxx:78
 AliESDCaloCluster.cxx:79
 AliESDCaloCluster.cxx:80
 AliESDCaloCluster.cxx:81
 AliESDCaloCluster.cxx:82
 AliESDCaloCluster.cxx:83
 AliESDCaloCluster.cxx:84
 AliESDCaloCluster.cxx:85
 AliESDCaloCluster.cxx:86
 AliESDCaloCluster.cxx:87
 AliESDCaloCluster.cxx:88
 AliESDCaloCluster.cxx:89
 AliESDCaloCluster.cxx:90
 AliESDCaloCluster.cxx:91
 AliESDCaloCluster.cxx:92
 AliESDCaloCluster.cxx:93
 AliESDCaloCluster.cxx:94
 AliESDCaloCluster.cxx:95
 AliESDCaloCluster.cxx:96
 AliESDCaloCluster.cxx:97
 AliESDCaloCluster.cxx:98
 AliESDCaloCluster.cxx:99
 AliESDCaloCluster.cxx:100
 AliESDCaloCluster.cxx:101
 AliESDCaloCluster.cxx:102
 AliESDCaloCluster.cxx:103
 AliESDCaloCluster.cxx:104
 AliESDCaloCluster.cxx:105
 AliESDCaloCluster.cxx:106
 AliESDCaloCluster.cxx:107
 AliESDCaloCluster.cxx:108
 AliESDCaloCluster.cxx:109
 AliESDCaloCluster.cxx:110
 AliESDCaloCluster.cxx:111
 AliESDCaloCluster.cxx:112
 AliESDCaloCluster.cxx:113
 AliESDCaloCluster.cxx:114
 AliESDCaloCluster.cxx:115
 AliESDCaloCluster.cxx:116
 AliESDCaloCluster.cxx:117
 AliESDCaloCluster.cxx:118
 AliESDCaloCluster.cxx:119
 AliESDCaloCluster.cxx:120
 AliESDCaloCluster.cxx:121
 AliESDCaloCluster.cxx:122
 AliESDCaloCluster.cxx:123
 AliESDCaloCluster.cxx:124
 AliESDCaloCluster.cxx:125
 AliESDCaloCluster.cxx:126
 AliESDCaloCluster.cxx:127
 AliESDCaloCluster.cxx:128
 AliESDCaloCluster.cxx:129
 AliESDCaloCluster.cxx:130
 AliESDCaloCluster.cxx:131
 AliESDCaloCluster.cxx:132
 AliESDCaloCluster.cxx:133
 AliESDCaloCluster.cxx:134
 AliESDCaloCluster.cxx:135
 AliESDCaloCluster.cxx:136
 AliESDCaloCluster.cxx:137
 AliESDCaloCluster.cxx:138
 AliESDCaloCluster.cxx:139
 AliESDCaloCluster.cxx:140
 AliESDCaloCluster.cxx:141
 AliESDCaloCluster.cxx:142
 AliESDCaloCluster.cxx:143
 AliESDCaloCluster.cxx:144
 AliESDCaloCluster.cxx:145
 AliESDCaloCluster.cxx:146
 AliESDCaloCluster.cxx:147
 AliESDCaloCluster.cxx:148
 AliESDCaloCluster.cxx:149
 AliESDCaloCluster.cxx:150
 AliESDCaloCluster.cxx:151
 AliESDCaloCluster.cxx:152
 AliESDCaloCluster.cxx:153
 AliESDCaloCluster.cxx:154
 AliESDCaloCluster.cxx:155
 AliESDCaloCluster.cxx:156
 AliESDCaloCluster.cxx:157
 AliESDCaloCluster.cxx:158
 AliESDCaloCluster.cxx:159
 AliESDCaloCluster.cxx:160
 AliESDCaloCluster.cxx:161
 AliESDCaloCluster.cxx:162
 AliESDCaloCluster.cxx:163
 AliESDCaloCluster.cxx:164
 AliESDCaloCluster.cxx:165
 AliESDCaloCluster.cxx:166
 AliESDCaloCluster.cxx:167
 AliESDCaloCluster.cxx:168
 AliESDCaloCluster.cxx:169
 AliESDCaloCluster.cxx:170
 AliESDCaloCluster.cxx:171
 AliESDCaloCluster.cxx:172
 AliESDCaloCluster.cxx:173
 AliESDCaloCluster.cxx:174
 AliESDCaloCluster.cxx:175
 AliESDCaloCluster.cxx:176
 AliESDCaloCluster.cxx:177
 AliESDCaloCluster.cxx:178
 AliESDCaloCluster.cxx:179
 AliESDCaloCluster.cxx:180
 AliESDCaloCluster.cxx:181
 AliESDCaloCluster.cxx:182
 AliESDCaloCluster.cxx:183
 AliESDCaloCluster.cxx:184
 AliESDCaloCluster.cxx:185
 AliESDCaloCluster.cxx:186
 AliESDCaloCluster.cxx:187
 AliESDCaloCluster.cxx:188
 AliESDCaloCluster.cxx:189
 AliESDCaloCluster.cxx:190
 AliESDCaloCluster.cxx:191
 AliESDCaloCluster.cxx:192
 AliESDCaloCluster.cxx:193
 AliESDCaloCluster.cxx:194
 AliESDCaloCluster.cxx:195
 AliESDCaloCluster.cxx:196
 AliESDCaloCluster.cxx:197
 AliESDCaloCluster.cxx:198
 AliESDCaloCluster.cxx:199
 AliESDCaloCluster.cxx:200
 AliESDCaloCluster.cxx:201
 AliESDCaloCluster.cxx:202
 AliESDCaloCluster.cxx:203
 AliESDCaloCluster.cxx:204
 AliESDCaloCluster.cxx:205
 AliESDCaloCluster.cxx:206
 AliESDCaloCluster.cxx:207
 AliESDCaloCluster.cxx:208
 AliESDCaloCluster.cxx:209
 AliESDCaloCluster.cxx:210
 AliESDCaloCluster.cxx:211
 AliESDCaloCluster.cxx:212
 AliESDCaloCluster.cxx:213
 AliESDCaloCluster.cxx:214
 AliESDCaloCluster.cxx:215
 AliESDCaloCluster.cxx:216
 AliESDCaloCluster.cxx:217
 AliESDCaloCluster.cxx:218
 AliESDCaloCluster.cxx:219
 AliESDCaloCluster.cxx:220
 AliESDCaloCluster.cxx:221
 AliESDCaloCluster.cxx:222
 AliESDCaloCluster.cxx:223
 AliESDCaloCluster.cxx:224
 AliESDCaloCluster.cxx:225
 AliESDCaloCluster.cxx:226
 AliESDCaloCluster.cxx:227
 AliESDCaloCluster.cxx:228
 AliESDCaloCluster.cxx:229
 AliESDCaloCluster.cxx:230
 AliESDCaloCluster.cxx:231
 AliESDCaloCluster.cxx:232
 AliESDCaloCluster.cxx:233
 AliESDCaloCluster.cxx:234
 AliESDCaloCluster.cxx:235
 AliESDCaloCluster.cxx:236
 AliESDCaloCluster.cxx:237
 AliESDCaloCluster.cxx:238
 AliESDCaloCluster.cxx:239
 AliESDCaloCluster.cxx:240
 AliESDCaloCluster.cxx:241
 AliESDCaloCluster.cxx:242
 AliESDCaloCluster.cxx:243
 AliESDCaloCluster.cxx:244
 AliESDCaloCluster.cxx:245
 AliESDCaloCluster.cxx:246
 AliESDCaloCluster.cxx:247
 AliESDCaloCluster.cxx:248
 AliESDCaloCluster.cxx:249
 AliESDCaloCluster.cxx:250
 AliESDCaloCluster.cxx:251
 AliESDCaloCluster.cxx:252
 AliESDCaloCluster.cxx:253
 AliESDCaloCluster.cxx:254
 AliESDCaloCluster.cxx:255
 AliESDCaloCluster.cxx:256
 AliESDCaloCluster.cxx:257
 AliESDCaloCluster.cxx:258
 AliESDCaloCluster.cxx:259
 AliESDCaloCluster.cxx:260
 AliESDCaloCluster.cxx:261
 AliESDCaloCluster.cxx:262
 AliESDCaloCluster.cxx:263
 AliESDCaloCluster.cxx:264
 AliESDCaloCluster.cxx:265
 AliESDCaloCluster.cxx:266
 AliESDCaloCluster.cxx:267
 AliESDCaloCluster.cxx:268
 AliESDCaloCluster.cxx:269
 AliESDCaloCluster.cxx:270
 AliESDCaloCluster.cxx:271
 AliESDCaloCluster.cxx:272
 AliESDCaloCluster.cxx:273
 AliESDCaloCluster.cxx:274
 AliESDCaloCluster.cxx:275
 AliESDCaloCluster.cxx:276
 AliESDCaloCluster.cxx:277
 AliESDCaloCluster.cxx:278
 AliESDCaloCluster.cxx:279
 AliESDCaloCluster.cxx:280
 AliESDCaloCluster.cxx:281
 AliESDCaloCluster.cxx:282
 AliESDCaloCluster.cxx:283
 AliESDCaloCluster.cxx:284
 AliESDCaloCluster.cxx:285
 AliESDCaloCluster.cxx:286
 AliESDCaloCluster.cxx:287
 AliESDCaloCluster.cxx:288
 AliESDCaloCluster.cxx:289
 AliESDCaloCluster.cxx:290
 AliESDCaloCluster.cxx:291
 AliESDCaloCluster.cxx:292
 AliESDCaloCluster.cxx:293
 AliESDCaloCluster.cxx:294
 AliESDCaloCluster.cxx:295
 AliESDCaloCluster.cxx:296
 AliESDCaloCluster.cxx:297
 AliESDCaloCluster.cxx:298
 AliESDCaloCluster.cxx:299
 AliESDCaloCluster.cxx:300
 AliESDCaloCluster.cxx:301
 AliESDCaloCluster.cxx:302
 AliESDCaloCluster.cxx:303
 AliESDCaloCluster.cxx:304
 AliESDCaloCluster.cxx:305
 AliESDCaloCluster.cxx:306
 AliESDCaloCluster.cxx:307
 AliESDCaloCluster.cxx:308
 AliESDCaloCluster.cxx:309
 AliESDCaloCluster.cxx:310
 AliESDCaloCluster.cxx:311
 AliESDCaloCluster.cxx:312
 AliESDCaloCluster.cxx:313
 AliESDCaloCluster.cxx:314
 AliESDCaloCluster.cxx:315
 AliESDCaloCluster.cxx:316
 AliESDCaloCluster.cxx:317
 AliESDCaloCluster.cxx:318
 AliESDCaloCluster.cxx:319
 AliESDCaloCluster.cxx:320
 AliESDCaloCluster.cxx:321