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.39  2006/04/22 15:04:24  hristov
 * Effective C++ initialization of data members in the default constructor
 *
 * Revision 1.38  2006/04/22 10:30:17  hristov
 * Add fEnergy to AliPHOSDigit and operate with EMC amplitude in energy units (Yu.Kharlov)
 *
 * Revision 1.37  2005/05/28 14:19:04  schutz
 * Compilation warnings fixed by T.P.
 *
 */

//_________________________________________________________________________
//  PHOS digit: Id
//              energy
//              3 identifiers for the primary particle(s) at the origine of the digit
//  The digits are made in FinishEvent() by summing all the hits in a single PHOS crystal or PPSD gas cell
//
//*-- Author: Laurent Aphecetche & Yves Schutz (SUBATECH) & Dmitri Peressounko (RRC KI & SUBATECH)


// --- ROOT system ---

#include "TMath.h"

// --- Standard library ---

// --- AliRoot header files ---

#include "AliPHOSDigit.h"
#include "AliLog.h"



ClassImp(AliPHOSDigit)

//____________________________________________________________________________
AliPHOSDigit::AliPHOSDigit() :
  AliDigitNew(),
  fIsLG(0),
  fNprimary(0),  
  fPrimary(0x0),
  fEnergy(0.),
  fTime(0.),
  fTimeR(0.),
  fNSamplesHG(0),
  fNSamplesLG(0),
  fSamplesHG(0),
  fSamplesLG(0)
{
  // default ctor 
}

//____________________________________________________________________________
AliPHOSDigit::AliPHOSDigit(Int_t primary, Int_t id, Int_t digEnergy, Float_t time, Int_t index) :
  fIsLG(0),
  fNprimary(0),
  fPrimary(0),
  fEnergy(0.f),
  fTime(0.f),
  fTimeR(0.f),
  fNSamplesHG(0),
  fNSamplesLG(0),
  fSamplesHG(0),
  fSamplesLG(0)
{  
  // ctor with all data 

  fAmp         = digEnergy ;
  fEnergy      = 0 ;
  fTime        = time ;
  fTimeR       = fTime ;
  fId          = id ;
  fIndexInList = index ; 

  if( primary != -1){
    fNprimary    = 1 ; 
    fPrimary = new Int_t[fNprimary] ;
    fPrimary[0]  = primary ;
  }
  else{  //If the contribution of this primary smaller than fDigitThreshold (AliPHOSv1)
    fNprimary = 0 ; 
    fPrimary  = 0 ;
  }
}

//____________________________________________________________________________
AliPHOSDigit::AliPHOSDigit(Int_t primary, Int_t id, Float_t energy, Float_t time, Int_t index) :
  fIsLG(0),
  fNprimary(0),
  fPrimary(0),
  fEnergy(0.f),
  fTime(0.f),
  fTimeR(0.f),
  fNSamplesHG(0),
  fNSamplesLG(0),
  fSamplesHG(0),
  fSamplesLG(0)
{  
  // ctor with all data 

  fAmp         = 0 ;
  fEnergy      = energy ;
  fTime        = time ;
  fTimeR       = fTime ;
  fId          = id ;
  fIndexInList = index ; 
  if( primary != -1){
    fNprimary    = 1 ; 
    fPrimary = new Int_t[fNprimary] ;
    fPrimary[0]  = primary ;
  }
  else{  //If the contribution of this primary smaller than fDigitThreshold (AliPHOSv1)
    fNprimary = 0 ; 
    fPrimary  = 0 ;
  }
}

//____________________________________________________________________________
AliPHOSDigit::AliPHOSDigit(const AliPHOSDigit & digit) : 
  AliDigitNew(digit),
  fIsLG(digit.fIsLG),
  fNprimary(digit.fNprimary),
  fPrimary(0),
  fEnergy(digit.fEnergy),
  fTime(digit.fTime),
  fTimeR(digit.fTimeR),
  fNSamplesHG(0),
  fNSamplesLG(0),
  fSamplesHG(0),
  fSamplesLG(0)
{
  // copy ctor
  if(fNprimary){
    fPrimary = new Int_t[fNprimary] ;
    for (Int_t i = 0; i < fNprimary ; i++)
       fPrimary[i]  = digit.fPrimary[i] ;
  }
  else
    fPrimary = 0 ;
  fAmp         = digit.fAmp ;
  fId          = digit.fId;
  fIndexInList = digit.fIndexInList ; 
}

//____________________________________________________________________________
AliPHOSDigit & AliPHOSDigit::operator = (const AliPHOSDigit &)
{
  Fatal("operator =", "not implemented");
  return *this;
}
//____________________________________________________________________________
AliPHOSDigit::~AliPHOSDigit() 
{
  // Delete array of primaries if any
  if (fPrimary)   delete [] fPrimary  ;
  // Delete arrays of ALTRO samples if any
  if (fSamplesHG) delete [] fSamplesHG;
  if (fSamplesLG) delete [] fSamplesLG;
}

//____________________________________________________________________________
void AliPHOSDigit::Clear(const Option_t*) 
{
  // Delete array of primaries if any
  delete[] fSamplesHG; fSamplesHG = NULL ;
  delete[] fSamplesLG; fSamplesLG = NULL ;
  delete[] fPrimary;   fPrimary   = NULL ;

}

//____________________________________________________________________________
Int_t AliPHOSDigit::Compare(const TObject * obj) const
{
  // Compares two digits with respect to its Id
  // to sort according increasing Id

  Int_t rv ;

  AliPHOSDigit * digit = (AliPHOSDigit *)obj ; 

  Int_t iddiff = fId - digit->GetId() ; 

  if ( iddiff > 0 ) 
    rv = 1 ;
  else if ( iddiff < 0 )
    rv = -1 ; 
  else
    rv = 0 ;
  
  return rv ; 

}

//____________________________________________________________________________
Int_t AliPHOSDigit::GetPrimary(Int_t index) const
{
  // retrieves the primary particle number given its index in the list 
  Int_t rv = -1 ;
  if ( index <= fNprimary && index > 0){
    rv = fPrimary[index-1] ;
  } 

  return rv ; 
  
}

//____________________________________________________________________________
void AliPHOSDigit::SetALTROSamplesHG(Int_t nSamplesHG, Int_t *samplesHG)
{
  fNSamplesHG = nSamplesHG;
  if (fSamplesHG) delete [] fSamplesHG;
  fSamplesHG = new UShort_t[fNSamplesHG];
  UShort_t i;
  for (i=0; i<fNSamplesHG; i++) {
    fSamplesHG[i] = samplesHG[i];
  }
}
//____________________________________________________________________________
void AliPHOSDigit::SetALTROSamplesLG(Int_t nSamplesLG, Int_t *samplesLG)
{
  fNSamplesLG = nSamplesLG;
  if (fSamplesLG) delete [] fSamplesLG;
  fSamplesLG = new UShort_t[fNSamplesLG];
  UShort_t i;
  for (i=0; i<fNSamplesLG; i++) {
    fSamplesLG[i] = samplesLG[i];
  }
}
//____________________________________________________________________________
void AliPHOSDigit::Print(const Option_t *) const
{
  // Print the digit together with list of primaries
  TString line = Form("PHOS digit: E=%.3f, Id=%d, Time=%.3e, TimeR=%.3e, NPrim=%d, nHG=%d, nLG=%d \n",
		      fEnergy,fId,fTime,fTimeR,fNprimary,fNSamplesHG,fNSamplesLG);
  line += "\tList of primaries: ";
  for (Int_t index = 0; index <fNprimary; index ++ )
    line += Form(" %d ",fPrimary[index]); 
  line += "\n";
  line += "\tSamples HG: ";
  for (Int_t i = 0; i <fNSamplesHG; i++)
    line += Form(" %d ",fSamplesHG[i]); 
  line += "\n";
  line += "\tSamples LG: ";
  for (Int_t i = 0; i <fNSamplesLG; i++)
    line += Form(" %d ",fSamplesLG[i]); 
  line += "\n";
  AliDebug(2,line);
}
//____________________________________________________________________________
void AliPHOSDigit::ShiftPrimary(Int_t shift)
{
  //shifts primary number to BIG offset, to separate primary in different TreeK
  for(Int_t index = 0; index <fNprimary; index ++ ){
    fPrimary[index]+= shift ;
  } 
}
//____________________________________________________________________________
Bool_t AliPHOSDigit::operator==(AliPHOSDigit const & digit) const 
{
  // Two digits are equal if they have the same Id
  
  if ( fId == digit.fId ) 
    return kTRUE ;
  else 
    return kFALSE ;
}
 
//____________________________________________________________________________
AliPHOSDigit& AliPHOSDigit::operator+=(AliPHOSDigit const & digit) 
{

  // Adds the amplitude of digits and completes the list of primary particles
  if(digit.fNprimary>0){
     Int_t *tmp = new Int_t[fNprimary+digit.fNprimary] ;
     if(fAmp < digit.fAmp || fEnergy < digit.fEnergy){//most energetic primary in second digit => first primaries in list from second digit
        for (Int_t index = 0 ; index < digit.fNprimary ; index++)
           tmp[index]=(digit.fPrimary)[index] ;
        for (Int_t index = 0 ; index < fNprimary ; index++)
           tmp[index+digit.fNprimary]=fPrimary[index] ;
     }
     else{ //add new primaries to the end
        for (Int_t index = 0 ; index < fNprimary ; index++)
           tmp[index]=fPrimary[index] ;
        for (Int_t index = 0 ; index < digit.fNprimary ; index++)
           tmp[index+fNprimary]=(digit.fPrimary)[index] ;
     }
     if(fPrimary)
       delete []fPrimary ;
     fPrimary = tmp ;
   }
   fNprimary+=digit.fNprimary ;
   fAmp     += digit.fAmp ;
   fEnergy  += digit.fEnergy ;
   if(fTime > digit.fTime)
      fTime = digit.fTime ;
   fTimeR = fTime ; 

   // Add high-gain ALTRO samples
   UShort_t i;
   if (digit.fNSamplesHG > fNSamplesHG) {
     UShort_t newNSamplesHG = digit.fNSamplesHG;
     UShort_t *newSamplesHG = new UShort_t[newNSamplesHG];
     for (i=0; i<newNSamplesHG; i++) {
       if (i<fNSamplesHG)
	 newSamplesHG[i] = TMath::Max(1023,fSamplesHG[i] + (digit.fSamplesHG)[i]);
       else
	 newSamplesHG[i] = (digit.fSamplesHG)[i];
     }
     delete [] fSamplesHG;
     fSamplesHG = new UShort_t[newNSamplesHG];
     for (i=0; i<newNSamplesHG; i++) {
       fSamplesHG[i] = newSamplesHG[i];
     }
     delete [] newSamplesHG;
   }
   else {
     for (i=0; i<fNSamplesHG; i++)
       fSamplesHG[i] = TMath::Max(1023,fSamplesHG[i] + (digit.fSamplesHG)[i]);
   }

   // Add low-gain ALTRO samples
   if (digit.fNSamplesLG > fNSamplesLG) {
     UShort_t newNSamplesLG = digit.fNSamplesLG;
     UShort_t *newSamplesLG = new UShort_t[newNSamplesLG];
     for (i=0; i<newNSamplesLG; i++) {
       if (i<fNSamplesLG)
	 newSamplesLG[i] = TMath::Max(1023,fSamplesLG[i] + (digit.fSamplesLG)[i]);
       else
	 newSamplesLG[i] = (digit.fSamplesLG)[i];
     }
     delete [] fSamplesLG;
     fSamplesLG = new UShort_t[newNSamplesLG];
     for (i=0; i<newNSamplesLG; i++) {
       fSamplesLG[i] = newSamplesLG[i];
     }
     delete [] newSamplesLG;
   }
   else {
     for (i=0; i<fNSamplesLG; i++)
       fSamplesLG[i] = TMath::Max(1023,fSamplesLG[i] + (digit.fSamplesLG)[i]);
   }
   
   //If at least one digit in LG, then sum also
   fIsLG=fIsLG||digit.fIsLG ;

   return *this ;
}
//____________________________________________________________________________
AliPHOSDigit& AliPHOSDigit::operator *= (Float_t factor) 
{
  // Multiplies the amplitude by a factor
  
  Float_t tempo = static_cast<Float_t>(fAmp) ; 
  tempo *= factor ; 
  fAmp = static_cast<Int_t>(TMath::Ceil(tempo)) ; 
  return *this ;
}

//____________________________________________________________________________
ostream& operator << ( ostream& out , const AliPHOSDigit & digit)
{
  // Prints the data of the digit
  
//   out << "ID " << digit.fId << " Energy = " << digit.fAmp << " Time = " << digit.fTime << endl ; 
//   Int_t i ;
//   for(i=0;i<digit.fNprimary;i++)
//     out << "Primary " << i+1 << " = " << digit.fPrimary[i] << endl ;
//   out << "Position in list = " << digit.fIndexInList << endl ; 
  digit.Warning("operator <<", "Implement differently") ; 
  return out ;
}


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