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$ */
//_________________________________________________________________________
//  Base Class for PHOS Reconstructed Points  
//  Why should I put meaningless comments
//  just to satisfy
//  the code checker                
//-- Author: Gines Martinez (SUBATECH)

// --- ROOT system ---
#include "TPad.h"
#include "TGraph.h"
#include "TPaveText.h"
#include "TClonesArray.h"
#include "TGeoMatrix.h"

// --- Standard library ---

// --- AliRoot header files ---
#include "AliLog.h"
#include "AliPHOSLoader.h"
#include "AliPHOSGeometry.h"
#include "AliPHOSDigit.h"
#include "AliPHOSRecPoint.h"
#include "AliGeomManager.h"

ClassImp(AliPHOSRecPoint)


//____________________________________________________________________________
AliPHOSRecPoint::AliPHOSRecPoint()
  : AliCluster(),fPHOSMod(0),
    fMulTrack(0),fMaxDigit(100),fMulDigit(0),fMaxTrack(200),
    fDigitsList(0),fTracksList(0),fAmp(0),
    fIndexInList(-1), // to be set when the point is already stored
    fLocPos(0,0,0)
{
  // ctor

}

//____________________________________________________________________________
AliPHOSRecPoint::AliPHOSRecPoint(const char * ) 
  : AliCluster(),fPHOSMod(0),
    fMulTrack(0),fMaxDigit(100),fMulDigit(0),fMaxTrack(200),
    fDigitsList(new Int_t[fMaxDigit]),fTracksList(new Int_t[fMaxTrack]),fAmp(0),
    fIndexInList(-1), // to be set when the point is already stored
    fLocPos(0,0,0)

{
  // ctor
  
}
//_______________________________________________________________________
AliPHOSRecPoint::~AliPHOSRecPoint()
{
  // dtor
  
  delete [] fDigitsList ; 
  delete [] fTracksList ;  
  
}
//____________________________________________________________________________
AliPHOSRecPoint::AliPHOSRecPoint(const AliPHOSRecPoint &rp) : 
  AliCluster(rp),
  fPHOSMod(rp.fPHOSMod),fMulTrack(rp.fMulTrack),fMaxDigit(rp.fMaxDigit),
  fMulDigit(rp.fMulDigit),fMaxTrack(rp.fMaxTrack),fDigitsList(0x0),
  fTracksList(0x0),fAmp(rp.fAmp),fIndexInList(rp.fIndexInList), 
  fLocPos(rp.fLocPos)
{
  //copy ctor

  if (rp.fMulDigit>0) fDigitsList = new Int_t[rp.fMulDigit];
  for(Int_t i=0; i<fMulDigit; i++)
    fDigitsList[i] = rp.fDigitsList[i];

  if (rp.fMulTrack>0) fTracksList = new Int_t[rp.fMulTrack];
  for(Int_t i=0; i<fMulTrack; i++)
    fTracksList[i] = rp.fTracksList[i];
  
}
//____________________________________________________________________________
AliPHOSRecPoint& AliPHOSRecPoint::operator= (const AliPHOSRecPoint &rp)
{
  if(&rp == this) return *this;

  fPHOSMod     = rp.fPHOSMod;
  fMulTrack    = rp.fMulTrack;
  fMaxDigit    = rp.fMaxDigit;
  fMulDigit    = rp.fMulDigit;
  fMaxTrack    = rp.fMaxTrack;
  fAmp         = rp.fAmp;
  fIndexInList = rp.fIndexInList; 
  fLocPos = rp.fLocPos;

  if (fDigitsList != 0) delete [] fDigitsList;
  if (fMaxDigit>0) {
    fDigitsList = new Int_t[fMaxDigit];
    for(Int_t i=0; i<fMaxDigit; i++)
      fDigitsList[i] = rp.fDigitsList[i];
  }

  if (fTracksList != 0) delete [] fTracksList;
  if (fMaxTrack>0) {
    fTracksList = new Int_t[fMaxTrack];
    for(Int_t i=0; i<fMaxTrack; i++)
      fTracksList[i] = rp.fTracksList[i];
  }

  return *this;
}
//____________________________________________________________________________
Int_t AliPHOSRecPoint::DistancetoPrimitive(Int_t px, Int_t py)
{
  // Compute distance from point px,py to  a AliPHOSRecPoint considered as a Tmarker
  // Compute the closest distance of approach from point px,py to this marker.
  // The distance is computed in pixels units.

  TVector3 pos(0.,0.,0.) ;
  GetLocalPosition( pos) ;
  Float_t x =  pos.X() ;
  Float_t y =  pos.Z() ;
  const Int_t kMaxDiff = 10;
  Int_t pxm  = gPad->XtoAbsPixel(x);
  Int_t pym  = gPad->YtoAbsPixel(y);
  Int_t dist = (px-pxm)*(px-pxm) + (py-pym)*(py-pym);
  
  if (dist > kMaxDiff) return 9999;
  return dist;
}

//___________________________________________________________________________
 void AliPHOSRecPoint::Draw(Option_t *option)
 {
   // Draw this AliPHOSRecPoint with its current attributes
   
   AppendPad(option);
 }

//______________________________________________________________________________
void AliPHOSRecPoint::ExecuteEvent(Int_t event, Int_t, Int_t)
{
  // Execute action corresponding to one event
  // This member function is called when a AliPHOSRecPoint is clicked with the locator
  //
  // If Left button is clicked on AliPHOSRecPoint, the digits are switched on    
  // and switched off when the mouse button is released.

  //  static Int_t pxold, pyold;

  static TGraph *  digitgraph = 0 ;
  static TPaveText* clustertext = 0 ;
  
  if (!gPad->IsEditable()) return;
  
  switch (event) {
    
    
  case kButton1Down:{
    AliPHOSDigit * digit ;
  
    AliPHOSGeometry * phosgeom =  AliPHOSGeometry::GetInstance() ;

    Int_t iDigit;
    Int_t relid[4] ;
  
    const Int_t kMulDigit=AliPHOSRecPoint::GetDigitsMultiplicity() ;
    Float_t * xi = new Float_t [kMulDigit] ; 
    Float_t * zi = new Float_t [kMulDigit] ;
    
    for(iDigit = 0; iDigit < kMulDigit; iDigit++) {
      Fatal("AliPHOSRecPoint::ExecuteEvent", "-> Something wrong with the code"); 
      digit = 0 ; //dynamic_cast<AliPHOSDigit *>((fDigitsList)[iDigit]);
      phosgeom->AbsToRelNumbering(digit->GetId(), relid) ;
      phosgeom->RelPosInModule(relid, xi[iDigit], zi[iDigit]) ;
    }
    
    if (!digitgraph) {
      digitgraph = new TGraph(fMulDigit,xi,zi);
      digitgraph-> SetMarkerStyle(5) ; 
      digitgraph-> SetMarkerSize(1.) ;
      digitgraph-> SetMarkerColor(1) ;
      digitgraph-> Draw("P") ;
    }
    if (!clustertext) {
      
      TVector3 pos(0.,0.,0.) ;
      GetLocalPosition(pos) ;
      clustertext = new TPaveText(pos.X()-10,pos.Z()+10,pos.X()+50,pos.Z()+35,"") ;
      Text_t  line1[40] ;
      Text_t  line2[40] ;
      snprintf(line1,40,"Energy=%1.2f GeV",GetEnergy()) ;
      snprintf(line2,40,"%d Digits",GetDigitsMultiplicity()) ;
      clustertext ->AddText(line1) ;
      clustertext ->AddText(line2) ;
      clustertext ->Draw("");
    }
    gPad->Update() ; 
    Print("dummy") ;
    delete[] xi ; 
    delete[] zi ; 
   }
  
break;
  
  case kButton1Up:
    if (digitgraph) {
      delete digitgraph  ;
      digitgraph = 0 ;
    }
    if (clustertext) {
      delete clustertext ;
      clustertext = 0 ;
    }
    
    break;
    
  }
}
//____________________________________________________________________________
void AliPHOSRecPoint::EvalAll(TClonesArray * /* digits */) 
{
  //evaluates (if necessary) all RecPoint data members 

}

//____________________________________________________________________________
void AliPHOSRecPoint::EvalPHOSMod(AliPHOSDigit * digit) 
{
  // Returns the PHOS module in which the RecPoint is found

  if( fPHOSMod == 0){
  Int_t relid[4] ; 
 
  AliPHOSGeometry * phosgeom = (AliPHOSGeometry::GetInstance());

  phosgeom->AbsToRelNumbering(digit->GetId(), relid) ;
  fPHOSMod = relid[0];
  }
}

//____________________________________________________________________________
void AliPHOSRecPoint::GetGlobalPosition(TVector3 & gpos, TMatrixF & gmat) const
{
  // returns the position of the cluster in the global reference system of ALICE
  // and the uncertainty on this position

   AliPHOSGeometry * phosgeom = (AliPHOSGeometry::GetInstance());
   phosgeom->GetGlobalPHOS(this, gpos, gmat);
  
}

//______________________________________________________________________________
void AliPHOSRecPoint::Paint(Option_t *)
{
  // Paint this ALiRecPoint as a TMarker  with its current attributes
  
  TVector3 pos(0.,0.,0.)  ;
  GetLocalPosition(pos)   ;
  Coord_t x = pos.X()     ;
  Coord_t y = pos.Z()     ;
  Color_t markercolor = 1 ;
  Size_t  markersize = 1. ;
  Style_t markerstyle = 5 ;
  
  if (!gPad->IsBatch()) {
    gVirtualX->SetMarkerColor(markercolor) ;
    gVirtualX->SetMarkerSize (markersize)  ;
    gVirtualX->SetMarkerStyle(markerstyle) ;
  }
  gPad->SetAttMarkerPS(markercolor,markerstyle,markersize) ;
  gPad->PaintPolyMarker(1,&x,&y,"") ;
}
//______________________________________________________________________________
void AliPHOSRecPoint::GetLocalPosition(TVector3 & pos) const
{
  // returns the position of the cluster in the local reference system 
  // of the sub-detector
  
  pos = fLocPos;
}

//____________________________________________________________________________
void AliPHOSRecPoint::EvalLocal2TrackingCSTransform()
{
  //Evaluates local to "tracking" c.s. transformation (B.P.).
  //All evaluations should be completed before calling for this function.
  //See ALICE PPR Chapter 5 p.18 for "tracking" c.s. definition,
  //or just ask Jouri Belikov. :)

  if(IsEmc()) {
    SetVolumeId(AliGeomManager::LayerToVolUID(AliGeomManager::kPHOS1,GetPHOSMod()-1));
  }
  else
    SetVolumeId(AliGeomManager::LayerToVolUID(AliGeomManager::kPHOS2,GetPHOSMod()-1));

  Double_t lxyz[3] = {fLocPos.X(),fLocPos.Y(),fLocPos.Z()};
  Double_t txyz[3] = {0,0,0};
  Double_t dy;
  Double_t crystalShift;

  AliPHOSGeometry * phosgeom = AliPHOSGeometry::GetInstance();
  AliPHOSEMCAGeometry* geoEMCA = phosgeom->GetEMCAGeometry(); 

  //Calculate offset to crystal surface.
  //See fCrystalShift code in AliPHOSGeometry::Init()).

  const Float_t * inthermo = geoEMCA->GetInnerThermoHalfSize() ;
  const Float_t * strip    = geoEMCA->GetStripHalfSize() ;
  const Float_t * splate   = geoEMCA->GetSupportPlateHalfSize();
  const Float_t * crystal  = geoEMCA->GetCrystalHalfSize() ;
  const Float_t * pin      = geoEMCA->GetAPDHalfSize() ;
  const Float_t * preamp   = geoEMCA->GetPreampHalfSize() ;
  crystalShift = -inthermo[1]+strip[1]+splate[1]+crystal[1]-geoEMCA->GetAirGapLed()/2.+pin[1]+preamp[1] ;

  if(IsEmc()) {
    dy = crystalShift;
    lxyz[2] = -lxyz[2]; //Opposite z directions in EMC matrix and local frame!!!
  }
  else
    dy = phosgeom->GetCPVBoxSize(1)/2.; //center of CPV module

  lxyz[1] = lxyz[1] - dy;

  const TGeoHMatrix* tr2loc = GetTracking2LocalMatrix();
  if(!tr2loc) AliFatal(Form("No Tracking2LocalMatrix found for VolumeID=%d",GetVolumeId()));

  tr2loc->MasterToLocal(lxyz,txyz);
  SetX(txyz[0]); SetY(txyz[1]); SetZ(txyz[2]);

  if(AliLog::GetGlobalDebugLevel()>0) {
    TVector3 gpos; TMatrixF gmat;
    GetGlobalPosition(gpos,gmat);
    Float_t gxyz[3];
    GetGlobalXYZ(gxyz);
    TString emc;
    if(IsEmc()) 
      emc="EMC";
    else
      emc="CPV";
    AliInfo(Form("lCS-->(%.3f,%.3f,%.3f), tCS-->(%.3f,%.3f,%.3f), gCS-->(%.3f,%.3f,%.3f),  gCScalc-->(%.3f,%.3f,%.3f), module %d %s",
		 fLocPos.X(),fLocPos.Y(),fLocPos.Z(),
		 GetX(),GetY(),GetZ(),
		 gpos.X(),gpos.Y(),gpos.Z(),
		 gxyz[0],gxyz[1],gxyz[2],GetPHOSMod(),emc.Data()));
  }

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