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

/* History of cvs commits:
 *
 * $Log$
 * Revision 1.26  2007/06/18 07:02:44  kharlov
 * Change the signature of EvalLocalPosition() to obey the method virtuality from the parent class
 *
 * Revision 1.25  2007/03/06 06:47:28  kharlov
 * DP:Possibility to use actual vertex position added
 */

//_________________________________________________________________________
//  RecPoint implementation for PHOS-CPV
//  An CpvRecPoint is a cluster of digits   
//-- Author: Yuri Kharlov
//  (after Dmitri Peressounko (RRC KI & SUBATECH))
//  30 October 2000 

// --- ROOT system ---

#include "TMath.h" 
#include "TClonesArray.h" 

// --- Standard library ---

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

ClassImp(AliPHOSCpvRecPoint)

//____________________________________________________________________________
AliPHOSCpvRecPoint::AliPHOSCpvRecPoint() : 
  AliPHOSEmcRecPoint(),
  fLengX(-1),
  fLengZ(-1)
{
  // ctor
}

//____________________________________________________________________________
AliPHOSCpvRecPoint::AliPHOSCpvRecPoint(const char * opt) : 
  AliPHOSEmcRecPoint(opt),
  fLengX(-1),
  fLengZ(-1)
{
   // ctor
}

//____________________________________________________________________________
AliPHOSCpvRecPoint::~AliPHOSCpvRecPoint()
{
  // dtor
}

//____________________________________________________________________________
Bool_t AliPHOSCpvRecPoint::AreNeighbours(AliPHOSDigit * digit1, AliPHOSDigit * digit2 ) const
{
  // Tells if (true) or not (false) two digits are neighbors)
  
  Bool_t aren = kFALSE ;
  
  AliPHOSGeometry * phosgeom =  AliPHOSGeometry::GetInstance() ;

  Int_t relid1[4] ; 
  phosgeom->AbsToRelNumbering(digit1->GetId(), relid1) ; 

  Int_t relid2[4] ; 
  phosgeom->AbsToRelNumbering(digit2->GetId(), relid2) ; 
  
  Int_t rowdiff = TMath::Abs( relid1[2] - relid2[2] ) ;  
  Int_t coldiff = TMath::Abs( relid1[3] - relid2[3] ) ;  

  if (( coldiff <= 1 )  && ( rowdiff <= 1 ) && (coldiff + rowdiff > 0)) 
    aren = kTRUE ;
  
  return aren ;
}

//____________________________________________________________________________
Int_t AliPHOSCpvRecPoint::Compare(const TObject * obj) const
{
  // Compares two RecPoints according to their position in the PHOS modules

  Float_t delta = 1 ; //Width of "Sorting row". If you changibg this 
                      //value (what is senseless) change as vell delta in
                      //AliPHOSTrackSegmentMakerv* and other RecPoints...

  Int_t rv ; 

  AliPHOSCpvRecPoint * clu  = (AliPHOSCpvRecPoint *) obj ; 
  
  Int_t phosmod1 = GetPHOSMod() ;
  Int_t phosmod2 = clu->GetPHOSMod() ;
  
  TVector3 locpos1; 
  GetLocalPosition(locpos1) ;
  TVector3 locpos2;  
  clu->GetLocalPosition(locpos2) ;  
  
  if(phosmod1 == phosmod2 ) {
    Int_t rowdif = (Int_t)TMath::Ceil(locpos1.X()/delta)-(Int_t)TMath::Ceil(locpos2.X()/delta) ;
    if (rowdif> 0) 
      rv = 1 ;
    else if(rowdif < 0) 
      rv = -1 ;
    else if(locpos1.Z()>locpos2.Z()) 
      rv = -1 ;
    else 
      rv = 1 ; 
  }
  
  else {
    if(phosmod1 < phosmod2 ) 
      rv = -1 ;
    else 
      rv = 1 ;
  }
  
  return rv ; 

}

//______________________________________________________________________________
void AliPHOSCpvRecPoint::ExecuteEvent(Int_t, Int_t, Int_t ) /*const*/
{
//   // 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;

//   AliPHOSLoader * gime =  AliPHOSLoader::GetInstance() ; 
  
//   static TGraph *  digitgraph = 0 ;
  
//   if (!gPad->IsEditable()) return;
  
//   TH2F * histo = 0 ;
//   TCanvas * histocanvas ; 
  
//   switch (event) {
    
//   case kButton1Down: {
//     AliPHOSDigit * digit ;
//     AliPHOSGeometry * phosgeom =  (AliPHOSGeometry *) fGeom ;
//     Int_t iDigit;
//     Int_t relid[4] ;
    
//     const Int_t kMulDigit = AliPHOSCpvRecPoint::GetDigitsMultiplicity() ; 
//     Float_t * xi = new Float_t[kMulDigit] ; 
//     Float_t * zi = new Float_t[kMulDigit] ; 
    
//     // create the histogram for the single cluster 
//     // 1. gets histogram boundaries
//     Float_t ximax = -999. ; 
//     Float_t zimax = -999. ; 
//     Float_t ximin = 999. ; 
//     Float_t zimin = 999. ;
    
//     for(iDigit=0; iDigit<kMulDigit; iDigit++) {
//       digit = (AliPHOSDigit *) ( gime->Digit(fDigitsList[iDigit]) ) ;
//       phosgeom->AbsToRelNumbering(digit->GetId(), relid) ;
//       phosgeom->RelPosInModule(relid, xi[iDigit], zi[iDigit]);
//       if ( xi[iDigit] > ximax )
// 	ximax = xi[iDigit] ; 
//       if ( xi[iDigit] < ximin )
// 	ximin = xi[iDigit] ; 
//       if ( zi[iDigit] > zimax )
// 	zimax = zi[iDigit] ; 
//       if ( zi[iDigit] < zimin )
// 	zimin = zi[iDigit] ;     
//     }
//     ximax += phosgeom->GetCrystalSize(0) / 2. ;
//     zimax += phosgeom->GetCrystalSize(2) / 2. ;
//     ximin -= phosgeom->GetCrystalSize(0) / 2. ;
//     zimin -= phosgeom->GetCrystalSize(2) / 2. ;
//     Int_t xdim = (int)( (ximax - ximin ) / phosgeom->GetCrystalSize(0) + 0.5  ) ; 
//     Int_t zdim = (int)( (zimax - zimin ) / phosgeom->GetCrystalSize(2) + 0.5 ) ;
    
//     // 2. gets the histogram title
    
//     Text_t title[100] ; 
//     sprintf(title,"Energy=%1.2f GeV ; Digits ; %d ", GetEnergy(), GetDigitsMultiplicity()) ;
    
//     if (!histo) {
//       delete histo ; 
//       histo = 0 ; 
//     }
//     histo = new TH2F("cluster3D", title,  xdim, ximin, ximax, zdim, zimin, zimax)  ;
    
//     Float_t x, z ; 
//     for(iDigit=0; iDigit<kMulDigit; iDigit++) {
//       digit = (AliPHOSDigit *) ( gime->Digit(fDigitsList[iDigit]) ) ;
//       phosgeom->AbsToRelNumbering(digit->GetId(), relid) ;
//       phosgeom->RelPosInModule(relid, x, z);
//       histo->Fill(x, z, fEnergyList[iDigit] ) ;
//     }
    
//     if (!digitgraph) {
//       digitgraph = new TGraph(kMulDigit,xi,zi);
//       digitgraph-> SetMarkerStyle(5) ; 
//       digitgraph-> SetMarkerSize(1.) ;
//       digitgraph-> SetMarkerColor(1) ;
//       digitgraph-> Paint("P") ;
//     }
    
//     Print() ;
//     histocanvas = new TCanvas("cluser", "a single cluster", 600, 500) ; 
//     histocanvas->Draw() ; 
//     histo->Draw("lego1") ; 
    
//     delete[] xi ; 
//     delete[] zi ; 
    
//     break;
//   }
  
//   case kButton1Up: 
//     if (digitgraph) {
//       delete digitgraph  ;
//       digitgraph = 0 ;
//     }
//     break;
  
//    }
}

//____________________________________________________________________________
void AliPHOSCpvRecPoint::EvalAll(TClonesArray * digits)
{
  // Evaluate local coordinate assuming the vertex in (000) and no inclination
  AliPHOSEmcRecPoint::EvalAll(digits) ;
}
//____________________________________________________________________________
void AliPHOSCpvRecPoint::EvalAll(Float_t logWeight, TVector3 &vtx, TClonesArray * digits)
{
  // wraps other methods
  TVector3 vInc(0,1,0);
  AliPHOSEmcRecPoint::EvalAll(logWeight,vtx,digits) ;
  EvalLocalPosition(logWeight, vtx, digits,vInc) ;
  EvalClusterLengths(digits) ;
}
//____________________________________________________________________________
void AliPHOSCpvRecPoint::EvalLocalPosition(Float_t logWeight, TVector3 & /*vtx */, TClonesArray * digits, TVector3 &/* vInc */)
{
  // Calculates the center of gravity in the local PHOS-module coordinates 

  Float_t wtot = 0. ;
 
  Int_t relid[4] ;

  Float_t x = 0. ;
  Float_t z = 0. ;
  
  AliPHOSDigit * digit ;

  AliPHOSGeometry * phosgeom =  AliPHOSGeometry::GetInstance();
  
  Int_t iDigit;

  for(iDigit=0; iDigit<fMulDigit; iDigit++) {
    digit = (AliPHOSDigit *) digits->At(fDigitsList[iDigit]);

    Float_t xi ;
    Float_t zi ;
    phosgeom->AbsToRelNumbering(digit->GetId(), relid) ;
    phosgeom->RelPosInModule(relid, xi, zi);
    if (fAmp>0 && fEnergyList[iDigit]>0) {
      Float_t w = TMath::Max( 0., logWeight + TMath::Log( fEnergyList[iDigit] / fAmp ) ) ;
      x    += xi * w ;
      z    += zi * w ;
      wtot += w ;
    }
    else
      AliError(Form("Wrong energy %f and/or amplitude %f\n", fEnergyList[iDigit], fAmp));
  }

  if (wtot != 0) {
    x /= wtot ;
    z /= wtot ;
  } else {
    x = -1e6 ;
    z = -1e6 ;
    if (fMulDigit != 0) 
      AliWarning(Form("Too low log weight factor to evaluate cluster's center" )) ;
  }
  fLocPos.SetX(x)  ;
  fLocPos.SetY(0.) ;
  fLocPos.SetZ(z)  ;

}

//____________________________________________________________________________
void AliPHOSCpvRecPoint::EvalClusterLengths(TClonesArray * digits)
{
  //Modified 15.03.2001 by Dmitri Peressounko
  
  // Calculates the cluster lengths along X and Z axes
  // These characteristics are needed for CPV to tune
  // digitization+reconstruction to experimental data
  // Yuri Kharlov. 24 October 2000

  Int_t relid[4] ;

  AliPHOSDigit * digit ;

  AliPHOSGeometry * phosgeom =  AliPHOSGeometry::GetInstance();

  const Int_t kMaxLeng=20;
  Int_t idX[kMaxLeng], idZ[kMaxLeng];
  fLengX = 0;
  fLengZ = 0;
  Bool_t dejavu;

  for(Int_t iDigit=0; iDigit<fMulDigit; iDigit++) {
    digit = (AliPHOSDigit *) digits->At(fDigitsList[iDigit]) ;
    Int_t absId = digit->GetId();
    phosgeom->AbsToRelNumbering(absId, relid) ;

    Int_t i;
    dejavu=kFALSE;
    for (i=0; i<fLengX; i++) if (relid[2]==idX[i]) { dejavu=kTRUE; break; }
    if (!dejavu) {
      idX[fLengX]=relid[2];
      fLengX++;
      fLengX = TMath::Min(fLengX,kMaxLeng);
    }

    dejavu=kFALSE;
    for (i=0; i<fLengZ; i++) if (relid[3]==idZ[i]) { dejavu=kTRUE; break; }
    if (!dejavu) {
      idZ[fLengZ]=relid[3];
      fLengZ++;
      fLengZ = TMath::Min(fLengZ,kMaxLeng);
    }
  }
}

//____________________________________________________________________________
void AliPHOSCpvRecPoint::Print(const Option_t *) const
{
  // Print the list of digits belonging to the cluster
  
  TString message ; 
  message  =  "AliPHOSCpvRecPoint: " ;
  message +=  "Digits #   " ;
  AliInfo(message.Data()) ; 
  
  Int_t iDigit;

  for(iDigit=0; iDigit<fMulDigit; iDigit++) 
    printf(" %d \n", fDigitsList[iDigit]) ; 

  printf("Energies: \n")  ;
  for(iDigit=0; iDigit<fMulDigit; iDigit++) 
    printf(" %f ", fEnergyList[iDigit]) ; 
  
  message  = "       Multiplicity    = %d\n" ;
  message += "       Cluster Energy  = %f\n" ;
  message += "       Stored at position %d\n" ; 
 
  printf(message.Data(), fMulDigit, fAmp, GetIndexInList() ) ; 

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