ROOT logo
//
// Fill containers for visualisation of EMCAL data structures
//    - read and store MC Hits    - read and store digits from esds or runloader
//    - read and store clusters from esds or runloader 
//
// Author: Magali Estienne (magali.estienne@cern.ch)
// June 30 2008
//

//#include <Riostream.h>
//#include <vector>

#include <TTree.h>
#include <TBranch.h>
#include <TObjArray.h>
#include <TRefArray.h>
#include <TClonesArray.h>
#include <TMath.h>
#include <TLorentzVector.h>

#include "AliRunLoader.h"
#include "AliEMCAL.h"
#include "AliEMCALLoader.h"
#include "AliESDVertex.h"
#include "AliEMCALHit.h"
#include "AliEMCALDigit.h"

#include "AliEMCALRecPoint.h"
#include "AliESDCaloCells.h"
#include "AliESDCaloCluster.h"

#include "AliEveEMCALData.h"
#include "AliEveEMCALSModuleData.h"

class Riostream;
class TObject;
class TEveUtil;
class TEvePointSet;
class AliRun;
class AliESDEvent;
class AliEMCAL;
class AliEMCALGeometry;
class AliEveEMCALSModule;

using std::cout;
using std::endl;
ClassImp(AliEveEMCALData)

//______________________________________________________________________________
AliEveEMCALData::AliEveEMCALData():
  TObject(),
  TEveRefCnt(),
  fEmcal(0x0),
  fGeom(0x0),
  fNode(0x0),
  fHMatrix(0),
  fTree(0x0),
  fESD(0x0),
  fNsm(12),
  fNsmfull(10),
  fNsmhalf(2),
  fSM(12),
  fSMfull(10),
  fSMhalf(2),
  fRunLoader(0),
  fDebug(0),
  fPoint(0)
{
  
  //
  // Constructor
  //
  //   for(Int_t i=0; i<12; i++)
  //     fSM[i] = 0x0;
  //   for(Int_t i=0; i<10; i++)
  //     fSMfull[i] = 0x0;
  //   fSMhalf[0] = fSMhalf[1] = 0x0;
  //  InitEMCALGeom();
  CreateAllSModules();


}

//______________________________________________________________________________
AliEveEMCALData::AliEveEMCALData(AliRunLoader* rl, TGeoNode* node, TGeoHMatrix* m):
  TObject(),
  TEveRefCnt(),
  fEmcal(0x0),
  fGeom(0x0),
  fNode(node),
  fHMatrix(m),
  fTree(0x0),
  fESD(0x0),
  fNsm(12),
  fNsmfull(10),
  fNsmhalf(2),
  fSM(12),
  fSMfull(10),
  fSMhalf(2),
  fRunLoader(rl),
  fDebug(0),
  fPoint(0)
{
  
  //
  // Constructor
  //
//   for(Int_t i=0; i<12; i++)
//     fSM[i] = 0x0;
//   for(Int_t i=0; i<10; i++)
//     fSMfull[i] = 0x0;
//   fSMhalf[0] = fSMhalf[1] = 0x0;
  InitEMCALGeom(rl);
  CreateAllSModules();


}

//______________________________________________________________________________
AliEveEMCALData::~AliEveEMCALData()
{
  //
  // Destructor
  //

  DeleteSuperModules();
  delete fTree;
  // delete fEmcal; // deleted by run-loader
  delete fGeom;
  delete fNode;
  delete fHMatrix;
  delete fPoint;
}

//______________________________________________________________________________
AliEveEMCALData::AliEveEMCALData(const AliEveEMCALData &edata) :
  TObject(edata),
  TEveRefCnt(edata),
  fEmcal(edata.fEmcal),
  fGeom(edata.fGeom),
  fNode(edata.fNode),
  fHMatrix(edata.fHMatrix),
  fTree(edata.fTree),
  fESD(edata.fESD),
  fNsm(edata.fNsm),
  fNsmfull(edata.fNsmfull),
  fNsmhalf(edata.fNsmhalf),
  fSM(edata.fSM),
  fSMfull(edata.fSMfull),
  fSMhalf(edata.fSMhalf),
  fRunLoader(edata.fRunLoader),
  fDebug(edata.fDebug),
  fPoint(edata.fPoint)
{
  //
  // Copy constructor
  //
  InitEMCALGeom(edata.fRunLoader);
  CreateAllSModules();
}

//______________________________________________________________________________
AliEveEMCALData& AliEveEMCALData::operator=(const AliEveEMCALData &edata)
{
  //
  // Assignment operator
  //

  if (this != &edata) {

  }

  return *this;

}

//______________________________________________________________________________
void AliEveEMCALData::SetTree(TTree* const tree)
{
  //
  // Set digit-tree to be used for digit retrieval. 
  // Data is loaded on demand.
  // 

  fTree = tree;

}

//______________________________________________________________________________
void AliEveEMCALData::SetESD(AliESDEvent* const esd)
{
  //
  // Set esd
  //

  fESD = esd;
}

//______________________________________________________________________________
void AliEveEMCALData::SetNode(TGeoNode* const node)
{
  //
  // Set node
  //

  fNode = node;
}

//______________________________________________________________________________
void AliEveEMCALData::InitEMCALGeom(AliRunLoader* const rl)
{
  //
  // Set data members for EMCAL geometry
  //

  fEmcal = (AliEMCAL*) rl->GetAliRun()->GetDetector("EMCAL");
  fGeom  = (AliEMCALGeometry*) fEmcal->GetGeometry();

}

//______________________________________________________________________________
void AliEveEMCALData::GetGeomInfo(Int_t id, Int_t &iSupMod, Double_t& x, Double_t& y, Double_t& z)
{
  //
  // Get geometrical information from hit/digit/cluster absolute id
  //

  Int_t iTower  =  0 ;
  Int_t iIphi   =  0 ;
  Int_t iIeta   =  0 ;

  //Geometry methods
  fGeom->GetCellIndex(id,iSupMod,iTower,iIphi,iIeta);
  //Gives SuperModule and Tower numbers
  fGeom->RelPosCellInSModule(id, x, y, z);

}

//______________________________________________________________________________
void  AliEveEMCALData::CreateAllSModules()
{
  //
  // Create all fNsm super modules
  //

  for(Int_t sm = 0; sm < fNsm; sm++)
    CreateSModule(sm);

}

//______________________________________________________________________________
void  AliEveEMCALData::CreateSModule(Int_t sm)
{
  //
  // Create super-module-data for SM if it does not exist already.
  //

  if(fSM[sm] == 0) fSM[sm] = new AliEveEMCALSModuleData(sm,fGeom,fNode,fHMatrix);
  if(fSMfull[sm] == 0 && sm < 10) fSMfull[sm] = new AliEveEMCALSModuleData(sm,fGeom,fNode,fHMatrix);
  if(fSMhalf[sm-10] == 0 && sm > 10) fSMhalf[sm-10] = new AliEveEMCALSModuleData(sm,fGeom,fNode,fHMatrix);
}

//______________________________________________________________________________
void AliEveEMCALData::DropAllSModules()
{
  //
  // Drop data of all existing sectors.
  //

  for (Int_t sm = 0; sm < fNsm; sm++) {
    if (fSM[sm] != 0)
      fSM[sm]->DropData();
  }
}

//______________________________________________________________________________
void AliEveEMCALData::DeleteSuperModules()
{
  //
  // Delete all super module data
  //

  for (Int_t sm = 0; sm < fNsm; sm++)
    {
      fSM[sm] = 0;
      delete fSM[sm];
    }

  for(Int_t smf = 0; smf < fNsmfull; smf++) 
    {
      fSMfull[smf] = 0;
      delete fSMfull[smf];
    }

  for(Int_t smh = 0; smh < fNsmhalf; smh++)
    {
      fSMhalf[smh] = 0;
      delete fSMhalf[smh];
    }
  
}

//______________________________________________________________________________
void AliEveEMCALData::LoadHits(TTree* const t)
{
  //
  // Get hit information from RunLoader
  //

  /*
  // These are global coordinates !
  char form[1000];
  const char *selection = "";
  const char *varexp = "fX:fY:fZ";
  sprintf(form,"EMCAL Hits '%s'", selection);
  fPoint = new TEvePointSet(form);

  TEvePointSelector ps(t, fPoint, varexp, selection);
  ps.Select();

  if (fPoint->Size() == 0) {
    Warning("emcal_hits", Form("No hits match '%s'", selection));
    delete fPoint;
    //    return 0;
  }
  */

  TObjArray *harr=NULL;
  TBranch *hbranch=t->GetBranch("EMCAL");
  hbranch->SetAddress(&harr);
  
  if(hbranch->GetEvent(0)) {
    for(Int_t ih = 0; ih < harr->GetEntriesFast(); ih++) {
      AliEMCALHit* hit =(AliEMCALHit*)harr->UncheckedAt(ih);
      if(hit != 0){
	if(fDebug>1) cout << "Hit info " << hit->GetId() << " " << hit->GetEnergy() << endl;
	Int_t id = hit->GetId();
	// These are local coordinates
	Double_t xl = 0.; Double_t yl = 0.; Double_t zl = 0.;
	// Get global coordinates
	Double_t x = hit->X();
	Double_t y = hit->Y();
	Double_t z = hit->Z();
	Double_t amp = hit->GetEnergy();
	Int_t iSupMod = 0;
	// Get SM Id
	GetGeomInfo(id,iSupMod,xl,yl,zl);
	fSM[iSupMod]->RegisterHit(id,iSupMod,amp,x,y,z);
      }
    }
  }
}

//______________________________________________________________________________
void AliEveEMCALData::LoadHitsFromEMCALLoader(AliEMCALLoader* const emcl)
{
  //
  // Get hit information from EMCAL Loader
  //

	AliEMCALHit* hit;
  
	//Fill array of hits                                                                        
	TClonesArray *hits = 0;//(TClonesArray*)emcl->Hits();
	TTree *treeH = emcl->TreeH();	
	if (treeH) {
		Int_t nTrack = treeH->GetEntries();  // TreeH has array of hits for every primary
		TBranch * branchH = treeH->GetBranch("EMCAL");
		//if(fHits)fHits->Clear();
		branchH->SetAddress(&hits);
		for (Int_t iTrack = 0; iTrack < nTrack; iTrack++) {
			branchH->GetEntry(iTrack);
			
			//Get hits from the list                                                                    
			for(Int_t ihit = 0; ihit< hits->GetEntries();ihit++){

				hit = static_cast<AliEMCALHit *>(hits->At(ihit)) ;
    
				if(hit != 0){
					if(fDebug>1) cout << "Hit info " << hit->GetId() << " " << hit->GetEnergy() << endl;

					Int_t id = hit->GetId();
					// These are local coordinates
					Double_t xl = 0.; Double_t yl = 0.; Double_t zl = 0.;
					// Get global coordinates
					Double_t x = hit->X();
					Double_t y = hit->Y();
					Double_t z = hit->Z();
					Double_t amp = hit->GetEnergy();
					Int_t iSupMod = 0;
					// Get SM Id
					GetGeomInfo(id,iSupMod,xl,yl,zl);
					fSM[iSupMod]->RegisterHit(id,iSupMod,amp,x,y,z);
				}//hit exists
			}//hit loop
			hits->Clear();
		}// track loop
	}//treeH exists
}

//______________________________________________________________________________
void AliEveEMCALData::LoadDigits(TTree *t)
{
  //
  // Get digit information from RunLoader
  //

  TClonesArray *digits = 0;
  t->SetBranchAddress("EMCAL", &digits);
  t->GetEntry(0);

  Int_t nEnt = digits->GetEntriesFast();
  cout << "nEnt: " << nEnt << endl;
  AliEMCALDigit * dig;

  //  Double_t amp   = -1 ;
  Double_t ampFlo   = -1 ;
  Int_t id      = -1 ;
  Int_t iSupMod =  0 ;
  Double_t x, y, z;

  for (Int_t idig = 0; idig < nEnt; idig++)
    {
      dig = static_cast<AliEMCALDigit *>(digits->At(idig));
      
      if(dig != 0) {
	id   = dig->GetId() ; //cell (digit) label
	// adc
	ampFlo  = dig->GetAmplitude(); //amplitude in cell (digit)
	// GeV
	// 	amp = ampFlo*0.0153; // To be modified with correct OCDB conversion	

	GetGeomInfo(id,iSupMod,x,y,z);

// 	// GeV
// 	fSM[iSupMod]->RegisterDigit(id,iSupMod,amp,x,y,z);
// //	fSM[iSupMod]->SaveDigit(dig);
// // 	if(iSupMod<fNsmfull) fSMfull[iSupMod]->RegisterDigit(id,iSupMod,amp,x,y,z);
// // 	if(iSupMod>fNsmfull) fSMhalf[iSupMod-10]->RegisterDigit(id,iSupMod,amp,x,y,z);
	fSM[iSupMod]->RegisterDigit(id,iSupMod,ampFlo,x,y,z);
//	fSM[iSupMod]->SaveDigit(dig);
// 	if(iSupMod<fNsmfull) fSMfull[iSupMod]->RegisterDigit(id,iSupMod,amp,x,y,z);
// 	if(iSupMod>fNsmfull) fSMhalf[iSupMod-10]->RegisterDigit(id,iSupMod,amp,x,y,z);
      }
      else {
	cout << "Digit object empty" << endl;
	return;
      }
    } // end loop digits
  cout << "after loop on digits !" << endl;
}

//______________________________________________________________________________
void AliEveEMCALData::LoadDigitsFromEMCALLoader(AliEMCALLoader* const emcl)
{

  //
  // Get digit information from EMCAL Loader
  //

  AliEMCALDigit* dig;
  
  //Fill array of digits                                                                        
  TClonesArray *digits = (TClonesArray*)emcl->Digits();
  
  //Get digits from the list  
  
  //  Double_t amp   = -1 ;
  Double_t ampFlo   = -1 ;
  Int_t id      = -1 ;
  Int_t iSupMod =  0 ;
  Double_t x, y, z;
                                               
   for(Int_t idig = 0; idig< digits->GetEntries();idig++){

     dig = static_cast<AliEMCALDigit *>(digits->At(idig)) ;

     if(dig != 0){
       if(fDebug>1) cout << "Digit info " << dig->GetId() << " " << dig->GetAmplitude() << endl;
       id   = dig->GetId() ; //cell (digit) label
       // adc
       ampFlo  = dig->GetAmplitude(); //amplitude in cell (digit)
       // GeV
       //       amp = ampFlo*0.0153.; // To be modified with correct OCDB conversion

       GetGeomInfo(id,iSupMod,x,y,z);
       
       //       // GeV
       //       fSM[iSupMod]->RegisterDigit(id,iSupMod,amp,x,y,z);
       // adc
       fSM[iSupMod]->RegisterDigit(id,iSupMod,ampFlo,x,y,z);
     }
      else {
	cout << "Digit object empty" << endl;
	return;
      }
   } // end loop on digits
   
}

//______________________________________________________________________________
void AliEveEMCALData::LoadDigitsFromESD()
{
  //
  // Get digit information from esd
  //
  
  AliESDCaloCells &cells= *(fESD->GetEMCALCells());
  Int_t ncell = cells.GetNumberOfCells() ;  
  Int_t iSupMod =  0 ;
  Double_t x, y, z;

  // Extract digit information from the ESDs
  for (Int_t icell=  0; icell <  ncell; icell++) 
    {
      Int_t id   = cells.GetCellNumber(icell);
      // adc
      Double_t ampFlo  = cells.GetAmplitude(icell);
      // GeV
      //      Double_t amp = ampFlo*0.0153; // To be modified with correct OCDB conversion

      GetGeomInfo(id,iSupMod,x,y,z);

//       // GeV
//       fSM[iSupMod]->RegisterDigit(id,iSupMod,amp,x,y,z);
//       if(iSupMod<fNsmfull) fSMfull[iSupMod]->RegisterDigit(id,iSupMod,amp,x,y,z);
//       if(iSupMod>fNsmfull) fSMhalf[iSupMod-10]->RegisterDigit(id,iSupMod,amp,x,y,z);
      // adc
      fSM[iSupMod]->RegisterDigit(id,iSupMod,ampFlo,x,y,z);
      if(iSupMod<fNsmfull) fSMfull[iSupMod]->RegisterDigit(id,iSupMod,ampFlo,x,y,z);
      if(iSupMod>fNsmfull) fSMhalf[iSupMod-10]->RegisterDigit(id,iSupMod,ampFlo,x,y,z);

    } // end loop cells
}

//______________________________________________________________________________
void AliEveEMCALData::LoadRecPoints(TTree* const t)
{
  //
  // Get rec point information from RunLoader
  //

  //*************************************************
  // To be improved !!!!!
  // Size and shape of cluster to be implemented
  // 
  //*************************************************
        
  // From TTreeR
  TObjArray *carr=NULL;
  TBranch *cbranch=t->GetBranch("EMCALECARP");
  cbranch->SetAddress(&carr);
  
  if(cbranch->GetEvent(0)) {
    for(Int_t ic = 0; ic < carr->GetEntriesFast(); ic++) {
      AliEMCALRecPoint* rp =(AliEMCALRecPoint*)carr->UncheckedAt(ic);
      if(rp){
	if(fDebug>1) cout << "RecPoint info " << rp->GetAbsId() << " " << rp->GetEnergy() << endl;
	Int_t iSupMod = rp->GetSuperModuleNumber();
	// GeV
	Double_t amp = (Double_t)rp->GetEnergy();
	// adc
	Double_t ampFlo = amp/0.0153; // To be modified with correct OCDB conversion
	TVector3 lpos;
	rp->GetLocalPosition(lpos);

// 	// GeV
// 	fSM[iSupMod]->RegisterCluster(iSupMod,amp,lpos[0],lpos[1],lpos[2]);
        // adc
	fSM[iSupMod]->RegisterCluster(iSupMod,ampFlo,lpos[0],lpos[1],lpos[2]);
      }
    }
  }
  
}

//______________________________________________________________________________
void AliEveEMCALData::LoadRecPointsFromEMCALLoader(AliEMCALLoader* const emcl)
{
  //
  // Get rec point information from EMCAL Loader
  //

  //*************************************************
  // To be improved !!!!!
  // Size and shape of cluster to be implemented
  // 
  //*************************************************

  // From EMCALLoader
  AliEMCALRecPoint* rp;
  
  //Fill array of clusters                                                                        
  TClonesArray *clusters = (TClonesArray*)emcl->RecPoints();
  
  //Get clusters from the list                                                                    
  for(Int_t iclu = 0; iclu< clusters->GetEntries();iclu++){

    rp = static_cast<AliEMCALRecPoint *>(clusters->At(iclu)) ;
    
    if(rp){
       if(fDebug>1) cout << "RecPoint info " << rp->GetAbsId() << " " << rp->GetEnergy() << endl;
       Int_t iSupMod = rp->GetSuperModuleNumber();
       Double_t amp = (Double_t)rp->GetEnergy();
       Double_t ampFlo = amp/0.0153; // To be modified with correct OCDB conversion
       TVector3 lpos;
       rp->GetLocalPosition(lpos);
       
//        // GeV
//        fSM[iSupMod]->RegisterCluster(iSupMod,amp,lpos[0],lpos[1],lpos[2]);
       // adc
       fSM[iSupMod]->RegisterCluster(iSupMod,ampFlo,lpos[0],lpos[1],lpos[2]);
    }
  }
  
}

//______________________________________________________________________________
void AliEveEMCALData::LoadRecPointsFromESD()
{
  //
  // Get cluster information from esd
  //

 Int_t iSupMod =  0 ;
  Double_t x, y, z;
  Int_t iSM =  0 ;
  Int_t iT  =  0 ;
  Int_t iIp   =  0 ;
  Int_t iIe   =  0 ;
  Double_t xd, yd, zd;
  Float_t pos[3] ; 
  
  // Get reconstructed vertex position
  AliESDVertex* primVertex =(AliESDVertex*) fESD->GetVertex();
  Double_t vertexPosition[3] ; 
  primVertex->GetXYZ(vertexPosition) ; 

  //Get the CaloClusters
  //select EMCAL clusters only 
  TRefArray * caloClusters  = new TRefArray();
  fESD->GetEMCALClusters(caloClusters);
  Int_t nclus = caloClusters->GetEntries();
  cout << "nclus: " << nclus << endl; 
  
  for (Int_t iclus =  0; iclus <  nclus; iclus++) 
    {
      AliESDCaloCluster *clus = (AliESDCaloCluster *) caloClusters->At(iclus) ; 
      //Get the cluster info
      
      Double_t energy = clus->E() ;
      // adc
      //      Int_t   eneInt = (Int_t)energy*500+0.5;
      Double_t eneInt = energy/0.0153; // To be modified with correct OCDB conversion
      Double_t disp   = clus->GetDispersion() ;
      
      clus->GetPosition(pos) ; // Global position
      TVector3 vpos(pos[0],pos[1],pos[2]) ;
      TLorentzVector p4 ;
      TVector3 p3;
      clus->GetMomentum(p4,vertexPosition);
      p3.SetXYZ(p4[0],p4[1],p4[2]);
      Double_t eta = p3.Eta();
      Double_t phi = ( (p3.Phi()) < 0) ? (p3.Phi()) + 2. * TMath::Pi() : (p3.Phi());
      
      Int_t mult = clus->GetNCells() ;
      if(fDebug>2) {
	cout << "In cluster: " << iclus << ", ncells: " << mult << ", energy : " << energy << 
	  ", disp: " << disp << endl;
	cout << "Cluster " << iclus << ", eta: " << eta << ", phi: " << phi << endl;
      }

      Int_t clusId = 0;
      fGeom->GetAbsCellIdFromEtaPhi(eta,phi,clusId);
      if(fDebug>2) {
	cout << "Abs Cluster Id: " << clusId << ", xc: " << pos[0] << 
	  ", yc: " << pos[1] << ", zc: " << pos[2] << endl;
      }

      GetGeomInfo(clusId,iSupMod,x,y,z);
      
      //******** Not used yet but will come  ********
      // AliESDCaloCells &cells= *(fESD->GetEMCALCells());
      Int_t     digMult = clus->GetNCells() ;
      UShort_t *digID   = clus->GetCellsAbsId() ;
      for(Int_t i=0; i<digMult; i++){
	// Float_t  digitAmp     = cells.GetCellAmplitude(digID[i]) ;
	fGeom->RelPosCellInSModule(digID[i], xd, yd, zd);
	//Geometry methods
	fGeom->GetCellIndex(digID[i],iSM,iT,iIp,iIe);
	//Gives SuperModule and Tower numbers

      } // end digit loop
      //*********************************************
      //      // GeV
      //      fSM[iSupMod]->RegisterCluster(iSM,energy,x,y,z);
      // adc
      fSM[iSupMod]->RegisterCluster(iSM,eneInt,x,y,z);

    } // end cluster loop
}

//______________________________________________________________________________
AliEveEMCALSModuleData* AliEveEMCALData::GetSModuleData(Int_t sm)
{
  //
  // Return super module data
  //

  if (sm < 0 || sm > fNsm) 
    {
      printf("The number of super modules must be lower or equal to %d",fNsm);
      return 0;
    }
  
  return fSM[sm];
}

//______________________________________________________________________________
void AliEveEMCALData::LoadRaw() const
{
  //
  // Get raw information
  //

  // To be implemented !
}

 AliEveEMCALData.cxx:1
 AliEveEMCALData.cxx:2
 AliEveEMCALData.cxx:3
 AliEveEMCALData.cxx:4
 AliEveEMCALData.cxx:5
 AliEveEMCALData.cxx:6
 AliEveEMCALData.cxx:7
 AliEveEMCALData.cxx:8
 AliEveEMCALData.cxx:9
 AliEveEMCALData.cxx:10
 AliEveEMCALData.cxx:11
 AliEveEMCALData.cxx:12
 AliEveEMCALData.cxx:13
 AliEveEMCALData.cxx:14
 AliEveEMCALData.cxx:15
 AliEveEMCALData.cxx:16
 AliEveEMCALData.cxx:17
 AliEveEMCALData.cxx:18
 AliEveEMCALData.cxx:19
 AliEveEMCALData.cxx:20
 AliEveEMCALData.cxx:21
 AliEveEMCALData.cxx:22
 AliEveEMCALData.cxx:23
 AliEveEMCALData.cxx:24
 AliEveEMCALData.cxx:25
 AliEveEMCALData.cxx:26
 AliEveEMCALData.cxx:27
 AliEveEMCALData.cxx:28
 AliEveEMCALData.cxx:29
 AliEveEMCALData.cxx:30
 AliEveEMCALData.cxx:31
 AliEveEMCALData.cxx:32
 AliEveEMCALData.cxx:33
 AliEveEMCALData.cxx:34
 AliEveEMCALData.cxx:35
 AliEveEMCALData.cxx:36
 AliEveEMCALData.cxx:37
 AliEveEMCALData.cxx:38
 AliEveEMCALData.cxx:39
 AliEveEMCALData.cxx:40
 AliEveEMCALData.cxx:41
 AliEveEMCALData.cxx:42
 AliEveEMCALData.cxx:43
 AliEveEMCALData.cxx:44
 AliEveEMCALData.cxx:45
 AliEveEMCALData.cxx:46
 AliEveEMCALData.cxx:47
 AliEveEMCALData.cxx:48
 AliEveEMCALData.cxx:49
 AliEveEMCALData.cxx:50
 AliEveEMCALData.cxx:51
 AliEveEMCALData.cxx:52
 AliEveEMCALData.cxx:53
 AliEveEMCALData.cxx:54
 AliEveEMCALData.cxx:55
 AliEveEMCALData.cxx:56
 AliEveEMCALData.cxx:57
 AliEveEMCALData.cxx:58
 AliEveEMCALData.cxx:59
 AliEveEMCALData.cxx:60
 AliEveEMCALData.cxx:61
 AliEveEMCALData.cxx:62
 AliEveEMCALData.cxx:63
 AliEveEMCALData.cxx:64
 AliEveEMCALData.cxx:65
 AliEveEMCALData.cxx:66
 AliEveEMCALData.cxx:67
 AliEveEMCALData.cxx:68
 AliEveEMCALData.cxx:69
 AliEveEMCALData.cxx:70
 AliEveEMCALData.cxx:71
 AliEveEMCALData.cxx:72
 AliEveEMCALData.cxx:73
 AliEveEMCALData.cxx:74
 AliEveEMCALData.cxx:75
 AliEveEMCALData.cxx:76
 AliEveEMCALData.cxx:77
 AliEveEMCALData.cxx:78
 AliEveEMCALData.cxx:79
 AliEveEMCALData.cxx:80
 AliEveEMCALData.cxx:81
 AliEveEMCALData.cxx:82
 AliEveEMCALData.cxx:83
 AliEveEMCALData.cxx:84
 AliEveEMCALData.cxx:85
 AliEveEMCALData.cxx:86
 AliEveEMCALData.cxx:87
 AliEveEMCALData.cxx:88
 AliEveEMCALData.cxx:89
 AliEveEMCALData.cxx:90
 AliEveEMCALData.cxx:91
 AliEveEMCALData.cxx:92
 AliEveEMCALData.cxx:93
 AliEveEMCALData.cxx:94
 AliEveEMCALData.cxx:95
 AliEveEMCALData.cxx:96
 AliEveEMCALData.cxx:97
 AliEveEMCALData.cxx:98
 AliEveEMCALData.cxx:99
 AliEveEMCALData.cxx:100
 AliEveEMCALData.cxx:101
 AliEveEMCALData.cxx:102
 AliEveEMCALData.cxx:103
 AliEveEMCALData.cxx:104
 AliEveEMCALData.cxx:105
 AliEveEMCALData.cxx:106
 AliEveEMCALData.cxx:107
 AliEveEMCALData.cxx:108
 AliEveEMCALData.cxx:109
 AliEveEMCALData.cxx:110
 AliEveEMCALData.cxx:111
 AliEveEMCALData.cxx:112
 AliEveEMCALData.cxx:113
 AliEveEMCALData.cxx:114
 AliEveEMCALData.cxx:115
 AliEveEMCALData.cxx:116
 AliEveEMCALData.cxx:117
 AliEveEMCALData.cxx:118
 AliEveEMCALData.cxx:119
 AliEveEMCALData.cxx:120
 AliEveEMCALData.cxx:121
 AliEveEMCALData.cxx:122
 AliEveEMCALData.cxx:123
 AliEveEMCALData.cxx:124
 AliEveEMCALData.cxx:125
 AliEveEMCALData.cxx:126
 AliEveEMCALData.cxx:127
 AliEveEMCALData.cxx:128
 AliEveEMCALData.cxx:129
 AliEveEMCALData.cxx:130
 AliEveEMCALData.cxx:131
 AliEveEMCALData.cxx:132
 AliEveEMCALData.cxx:133
 AliEveEMCALData.cxx:134
 AliEveEMCALData.cxx:135
 AliEveEMCALData.cxx:136
 AliEveEMCALData.cxx:137
 AliEveEMCALData.cxx:138
 AliEveEMCALData.cxx:139
 AliEveEMCALData.cxx:140
 AliEveEMCALData.cxx:141
 AliEveEMCALData.cxx:142
 AliEveEMCALData.cxx:143
 AliEveEMCALData.cxx:144
 AliEveEMCALData.cxx:145
 AliEveEMCALData.cxx:146
 AliEveEMCALData.cxx:147
 AliEveEMCALData.cxx:148
 AliEveEMCALData.cxx:149
 AliEveEMCALData.cxx:150
 AliEveEMCALData.cxx:151
 AliEveEMCALData.cxx:152
 AliEveEMCALData.cxx:153
 AliEveEMCALData.cxx:154
 AliEveEMCALData.cxx:155
 AliEveEMCALData.cxx:156
 AliEveEMCALData.cxx:157
 AliEveEMCALData.cxx:158
 AliEveEMCALData.cxx:159
 AliEveEMCALData.cxx:160
 AliEveEMCALData.cxx:161
 AliEveEMCALData.cxx:162
 AliEveEMCALData.cxx:163
 AliEveEMCALData.cxx:164
 AliEveEMCALData.cxx:165
 AliEveEMCALData.cxx:166
 AliEveEMCALData.cxx:167
 AliEveEMCALData.cxx:168
 AliEveEMCALData.cxx:169
 AliEveEMCALData.cxx:170
 AliEveEMCALData.cxx:171
 AliEveEMCALData.cxx:172
 AliEveEMCALData.cxx:173
 AliEveEMCALData.cxx:174
 AliEveEMCALData.cxx:175
 AliEveEMCALData.cxx:176
 AliEveEMCALData.cxx:177
 AliEveEMCALData.cxx:178
 AliEveEMCALData.cxx:179
 AliEveEMCALData.cxx:180
 AliEveEMCALData.cxx:181
 AliEveEMCALData.cxx:182
 AliEveEMCALData.cxx:183
 AliEveEMCALData.cxx:184
 AliEveEMCALData.cxx:185
 AliEveEMCALData.cxx:186
 AliEveEMCALData.cxx:187
 AliEveEMCALData.cxx:188
 AliEveEMCALData.cxx:189
 AliEveEMCALData.cxx:190
 AliEveEMCALData.cxx:191
 AliEveEMCALData.cxx:192
 AliEveEMCALData.cxx:193
 AliEveEMCALData.cxx:194
 AliEveEMCALData.cxx:195
 AliEveEMCALData.cxx:196
 AliEveEMCALData.cxx:197
 AliEveEMCALData.cxx:198
 AliEveEMCALData.cxx:199
 AliEveEMCALData.cxx:200
 AliEveEMCALData.cxx:201
 AliEveEMCALData.cxx:202
 AliEveEMCALData.cxx:203
 AliEveEMCALData.cxx:204
 AliEveEMCALData.cxx:205
 AliEveEMCALData.cxx:206
 AliEveEMCALData.cxx:207
 AliEveEMCALData.cxx:208
 AliEveEMCALData.cxx:209
 AliEveEMCALData.cxx:210
 AliEveEMCALData.cxx:211
 AliEveEMCALData.cxx:212
 AliEveEMCALData.cxx:213
 AliEveEMCALData.cxx:214
 AliEveEMCALData.cxx:215
 AliEveEMCALData.cxx:216
 AliEveEMCALData.cxx:217
 AliEveEMCALData.cxx:218
 AliEveEMCALData.cxx:219
 AliEveEMCALData.cxx:220
 AliEveEMCALData.cxx:221
 AliEveEMCALData.cxx:222
 AliEveEMCALData.cxx:223
 AliEveEMCALData.cxx:224
 AliEveEMCALData.cxx:225
 AliEveEMCALData.cxx:226
 AliEveEMCALData.cxx:227
 AliEveEMCALData.cxx:228
 AliEveEMCALData.cxx:229
 AliEveEMCALData.cxx:230
 AliEveEMCALData.cxx:231
 AliEveEMCALData.cxx:232
 AliEveEMCALData.cxx:233
 AliEveEMCALData.cxx:234
 AliEveEMCALData.cxx:235
 AliEveEMCALData.cxx:236
 AliEveEMCALData.cxx:237
 AliEveEMCALData.cxx:238
 AliEveEMCALData.cxx:239
 AliEveEMCALData.cxx:240
 AliEveEMCALData.cxx:241
 AliEveEMCALData.cxx:242
 AliEveEMCALData.cxx:243
 AliEveEMCALData.cxx:244
 AliEveEMCALData.cxx:245
 AliEveEMCALData.cxx:246
 AliEveEMCALData.cxx:247
 AliEveEMCALData.cxx:248
 AliEveEMCALData.cxx:249
 AliEveEMCALData.cxx:250
 AliEveEMCALData.cxx:251
 AliEveEMCALData.cxx:252
 AliEveEMCALData.cxx:253
 AliEveEMCALData.cxx:254
 AliEveEMCALData.cxx:255
 AliEveEMCALData.cxx:256
 AliEveEMCALData.cxx:257
 AliEveEMCALData.cxx:258
 AliEveEMCALData.cxx:259
 AliEveEMCALData.cxx:260
 AliEveEMCALData.cxx:261
 AliEveEMCALData.cxx:262
 AliEveEMCALData.cxx:263
 AliEveEMCALData.cxx:264
 AliEveEMCALData.cxx:265
 AliEveEMCALData.cxx:266
 AliEveEMCALData.cxx:267
 AliEveEMCALData.cxx:268
 AliEveEMCALData.cxx:269
 AliEveEMCALData.cxx:270
 AliEveEMCALData.cxx:271
 AliEveEMCALData.cxx:272
 AliEveEMCALData.cxx:273
 AliEveEMCALData.cxx:274
 AliEveEMCALData.cxx:275
 AliEveEMCALData.cxx:276
 AliEveEMCALData.cxx:277
 AliEveEMCALData.cxx:278
 AliEveEMCALData.cxx:279
 AliEveEMCALData.cxx:280
 AliEveEMCALData.cxx:281
 AliEveEMCALData.cxx:282
 AliEveEMCALData.cxx:283
 AliEveEMCALData.cxx:284
 AliEveEMCALData.cxx:285
 AliEveEMCALData.cxx:286
 AliEveEMCALData.cxx:287
 AliEveEMCALData.cxx:288
 AliEveEMCALData.cxx:289
 AliEveEMCALData.cxx:290
 AliEveEMCALData.cxx:291
 AliEveEMCALData.cxx:292
 AliEveEMCALData.cxx:293
 AliEveEMCALData.cxx:294
 AliEveEMCALData.cxx:295
 AliEveEMCALData.cxx:296
 AliEveEMCALData.cxx:297
 AliEveEMCALData.cxx:298
 AliEveEMCALData.cxx:299
 AliEveEMCALData.cxx:300
 AliEveEMCALData.cxx:301
 AliEveEMCALData.cxx:302
 AliEveEMCALData.cxx:303
 AliEveEMCALData.cxx:304
 AliEveEMCALData.cxx:305
 AliEveEMCALData.cxx:306
 AliEveEMCALData.cxx:307
 AliEveEMCALData.cxx:308
 AliEveEMCALData.cxx:309
 AliEveEMCALData.cxx:310
 AliEveEMCALData.cxx:311
 AliEveEMCALData.cxx:312
 AliEveEMCALData.cxx:313
 AliEveEMCALData.cxx:314
 AliEveEMCALData.cxx:315
 AliEveEMCALData.cxx:316
 AliEveEMCALData.cxx:317
 AliEveEMCALData.cxx:318
 AliEveEMCALData.cxx:319
 AliEveEMCALData.cxx:320
 AliEveEMCALData.cxx:321
 AliEveEMCALData.cxx:322
 AliEveEMCALData.cxx:323
 AliEveEMCALData.cxx:324
 AliEveEMCALData.cxx:325
 AliEveEMCALData.cxx:326
 AliEveEMCALData.cxx:327
 AliEveEMCALData.cxx:328
 AliEveEMCALData.cxx:329
 AliEveEMCALData.cxx:330
 AliEveEMCALData.cxx:331
 AliEveEMCALData.cxx:332
 AliEveEMCALData.cxx:333
 AliEveEMCALData.cxx:334
 AliEveEMCALData.cxx:335
 AliEveEMCALData.cxx:336
 AliEveEMCALData.cxx:337
 AliEveEMCALData.cxx:338
 AliEveEMCALData.cxx:339
 AliEveEMCALData.cxx:340
 AliEveEMCALData.cxx:341
 AliEveEMCALData.cxx:342
 AliEveEMCALData.cxx:343
 AliEveEMCALData.cxx:344
 AliEveEMCALData.cxx:345
 AliEveEMCALData.cxx:346
 AliEveEMCALData.cxx:347
 AliEveEMCALData.cxx:348
 AliEveEMCALData.cxx:349
 AliEveEMCALData.cxx:350
 AliEveEMCALData.cxx:351
 AliEveEMCALData.cxx:352
 AliEveEMCALData.cxx:353
 AliEveEMCALData.cxx:354
 AliEveEMCALData.cxx:355
 AliEveEMCALData.cxx:356
 AliEveEMCALData.cxx:357
 AliEveEMCALData.cxx:358
 AliEveEMCALData.cxx:359
 AliEveEMCALData.cxx:360
 AliEveEMCALData.cxx:361
 AliEveEMCALData.cxx:362
 AliEveEMCALData.cxx:363
 AliEveEMCALData.cxx:364
 AliEveEMCALData.cxx:365
 AliEveEMCALData.cxx:366
 AliEveEMCALData.cxx:367
 AliEveEMCALData.cxx:368
 AliEveEMCALData.cxx:369
 AliEveEMCALData.cxx:370
 AliEveEMCALData.cxx:371
 AliEveEMCALData.cxx:372
 AliEveEMCALData.cxx:373
 AliEveEMCALData.cxx:374
 AliEveEMCALData.cxx:375
 AliEveEMCALData.cxx:376
 AliEveEMCALData.cxx:377
 AliEveEMCALData.cxx:378
 AliEveEMCALData.cxx:379
 AliEveEMCALData.cxx:380
 AliEveEMCALData.cxx:381
 AliEveEMCALData.cxx:382
 AliEveEMCALData.cxx:383
 AliEveEMCALData.cxx:384
 AliEveEMCALData.cxx:385
 AliEveEMCALData.cxx:386
 AliEveEMCALData.cxx:387
 AliEveEMCALData.cxx:388
 AliEveEMCALData.cxx:389
 AliEveEMCALData.cxx:390
 AliEveEMCALData.cxx:391
 AliEveEMCALData.cxx:392
 AliEveEMCALData.cxx:393
 AliEveEMCALData.cxx:394
 AliEveEMCALData.cxx:395
 AliEveEMCALData.cxx:396
 AliEveEMCALData.cxx:397
 AliEveEMCALData.cxx:398
 AliEveEMCALData.cxx:399
 AliEveEMCALData.cxx:400
 AliEveEMCALData.cxx:401
 AliEveEMCALData.cxx:402
 AliEveEMCALData.cxx:403
 AliEveEMCALData.cxx:404
 AliEveEMCALData.cxx:405
 AliEveEMCALData.cxx:406
 AliEveEMCALData.cxx:407
 AliEveEMCALData.cxx:408
 AliEveEMCALData.cxx:409
 AliEveEMCALData.cxx:410
 AliEveEMCALData.cxx:411
 AliEveEMCALData.cxx:412
 AliEveEMCALData.cxx:413
 AliEveEMCALData.cxx:414
 AliEveEMCALData.cxx:415
 AliEveEMCALData.cxx:416
 AliEveEMCALData.cxx:417
 AliEveEMCALData.cxx:418
 AliEveEMCALData.cxx:419
 AliEveEMCALData.cxx:420
 AliEveEMCALData.cxx:421
 AliEveEMCALData.cxx:422
 AliEveEMCALData.cxx:423
 AliEveEMCALData.cxx:424
 AliEveEMCALData.cxx:425
 AliEveEMCALData.cxx:426
 AliEveEMCALData.cxx:427
 AliEveEMCALData.cxx:428
 AliEveEMCALData.cxx:429
 AliEveEMCALData.cxx:430
 AliEveEMCALData.cxx:431
 AliEveEMCALData.cxx:432
 AliEveEMCALData.cxx:433
 AliEveEMCALData.cxx:434
 AliEveEMCALData.cxx:435
 AliEveEMCALData.cxx:436
 AliEveEMCALData.cxx:437
 AliEveEMCALData.cxx:438
 AliEveEMCALData.cxx:439
 AliEveEMCALData.cxx:440
 AliEveEMCALData.cxx:441
 AliEveEMCALData.cxx:442
 AliEveEMCALData.cxx:443
 AliEveEMCALData.cxx:444
 AliEveEMCALData.cxx:445
 AliEveEMCALData.cxx:446
 AliEveEMCALData.cxx:447
 AliEveEMCALData.cxx:448
 AliEveEMCALData.cxx:449
 AliEveEMCALData.cxx:450
 AliEveEMCALData.cxx:451
 AliEveEMCALData.cxx:452
 AliEveEMCALData.cxx:453
 AliEveEMCALData.cxx:454
 AliEveEMCALData.cxx:455
 AliEveEMCALData.cxx:456
 AliEveEMCALData.cxx:457
 AliEveEMCALData.cxx:458
 AliEveEMCALData.cxx:459
 AliEveEMCALData.cxx:460
 AliEveEMCALData.cxx:461
 AliEveEMCALData.cxx:462
 AliEveEMCALData.cxx:463
 AliEveEMCALData.cxx:464
 AliEveEMCALData.cxx:465
 AliEveEMCALData.cxx:466
 AliEveEMCALData.cxx:467
 AliEveEMCALData.cxx:468
 AliEveEMCALData.cxx:469
 AliEveEMCALData.cxx:470
 AliEveEMCALData.cxx:471
 AliEveEMCALData.cxx:472
 AliEveEMCALData.cxx:473
 AliEveEMCALData.cxx:474
 AliEveEMCALData.cxx:475
 AliEveEMCALData.cxx:476
 AliEveEMCALData.cxx:477
 AliEveEMCALData.cxx:478
 AliEveEMCALData.cxx:479
 AliEveEMCALData.cxx:480
 AliEveEMCALData.cxx:481
 AliEveEMCALData.cxx:482
 AliEveEMCALData.cxx:483
 AliEveEMCALData.cxx:484
 AliEveEMCALData.cxx:485
 AliEveEMCALData.cxx:486
 AliEveEMCALData.cxx:487
 AliEveEMCALData.cxx:488
 AliEveEMCALData.cxx:489
 AliEveEMCALData.cxx:490
 AliEveEMCALData.cxx:491
 AliEveEMCALData.cxx:492
 AliEveEMCALData.cxx:493
 AliEveEMCALData.cxx:494
 AliEveEMCALData.cxx:495
 AliEveEMCALData.cxx:496
 AliEveEMCALData.cxx:497
 AliEveEMCALData.cxx:498
 AliEveEMCALData.cxx:499
 AliEveEMCALData.cxx:500
 AliEveEMCALData.cxx:501
 AliEveEMCALData.cxx:502
 AliEveEMCALData.cxx:503
 AliEveEMCALData.cxx:504
 AliEveEMCALData.cxx:505
 AliEveEMCALData.cxx:506
 AliEveEMCALData.cxx:507
 AliEveEMCALData.cxx:508
 AliEveEMCALData.cxx:509
 AliEveEMCALData.cxx:510
 AliEveEMCALData.cxx:511
 AliEveEMCALData.cxx:512
 AliEveEMCALData.cxx:513
 AliEveEMCALData.cxx:514
 AliEveEMCALData.cxx:515
 AliEveEMCALData.cxx:516
 AliEveEMCALData.cxx:517
 AliEveEMCALData.cxx:518
 AliEveEMCALData.cxx:519
 AliEveEMCALData.cxx:520
 AliEveEMCALData.cxx:521
 AliEveEMCALData.cxx:522
 AliEveEMCALData.cxx:523
 AliEveEMCALData.cxx:524
 AliEveEMCALData.cxx:525
 AliEveEMCALData.cxx:526
 AliEveEMCALData.cxx:527
 AliEveEMCALData.cxx:528
 AliEveEMCALData.cxx:529
 AliEveEMCALData.cxx:530
 AliEveEMCALData.cxx:531
 AliEveEMCALData.cxx:532
 AliEveEMCALData.cxx:533
 AliEveEMCALData.cxx:534
 AliEveEMCALData.cxx:535
 AliEveEMCALData.cxx:536
 AliEveEMCALData.cxx:537
 AliEveEMCALData.cxx:538
 AliEveEMCALData.cxx:539
 AliEveEMCALData.cxx:540
 AliEveEMCALData.cxx:541
 AliEveEMCALData.cxx:542
 AliEveEMCALData.cxx:543
 AliEveEMCALData.cxx:544
 AliEveEMCALData.cxx:545
 AliEveEMCALData.cxx:546
 AliEveEMCALData.cxx:547
 AliEveEMCALData.cxx:548
 AliEveEMCALData.cxx:549
 AliEveEMCALData.cxx:550
 AliEveEMCALData.cxx:551
 AliEveEMCALData.cxx:552
 AliEveEMCALData.cxx:553
 AliEveEMCALData.cxx:554
 AliEveEMCALData.cxx:555
 AliEveEMCALData.cxx:556
 AliEveEMCALData.cxx:557
 AliEveEMCALData.cxx:558
 AliEveEMCALData.cxx:559
 AliEveEMCALData.cxx:560
 AliEveEMCALData.cxx:561
 AliEveEMCALData.cxx:562
 AliEveEMCALData.cxx:563
 AliEveEMCALData.cxx:564
 AliEveEMCALData.cxx:565
 AliEveEMCALData.cxx:566
 AliEveEMCALData.cxx:567
 AliEveEMCALData.cxx:568
 AliEveEMCALData.cxx:569
 AliEveEMCALData.cxx:570
 AliEveEMCALData.cxx:571
 AliEveEMCALData.cxx:572
 AliEveEMCALData.cxx:573
 AliEveEMCALData.cxx:574
 AliEveEMCALData.cxx:575
 AliEveEMCALData.cxx:576
 AliEveEMCALData.cxx:577
 AliEveEMCALData.cxx:578
 AliEveEMCALData.cxx:579
 AliEveEMCALData.cxx:580
 AliEveEMCALData.cxx:581
 AliEveEMCALData.cxx:582
 AliEveEMCALData.cxx:583
 AliEveEMCALData.cxx:584
 AliEveEMCALData.cxx:585
 AliEveEMCALData.cxx:586
 AliEveEMCALData.cxx:587
 AliEveEMCALData.cxx:588
 AliEveEMCALData.cxx:589
 AliEveEMCALData.cxx:590
 AliEveEMCALData.cxx:591
 AliEveEMCALData.cxx:592
 AliEveEMCALData.cxx:593
 AliEveEMCALData.cxx:594
 AliEveEMCALData.cxx:595
 AliEveEMCALData.cxx:596
 AliEveEMCALData.cxx:597
 AliEveEMCALData.cxx:598
 AliEveEMCALData.cxx:599
 AliEveEMCALData.cxx:600
 AliEveEMCALData.cxx:601
 AliEveEMCALData.cxx:602
 AliEveEMCALData.cxx:603
 AliEveEMCALData.cxx:604
 AliEveEMCALData.cxx:605
 AliEveEMCALData.cxx:606
 AliEveEMCALData.cxx:607
 AliEveEMCALData.cxx:608
 AliEveEMCALData.cxx:609
 AliEveEMCALData.cxx:610
 AliEveEMCALData.cxx:611
 AliEveEMCALData.cxx:612
 AliEveEMCALData.cxx:613
 AliEveEMCALData.cxx:614
 AliEveEMCALData.cxx:615
 AliEveEMCALData.cxx:616
 AliEveEMCALData.cxx:617
 AliEveEMCALData.cxx:618
 AliEveEMCALData.cxx:619
 AliEveEMCALData.cxx:620
 AliEveEMCALData.cxx:621
 AliEveEMCALData.cxx:622
 AliEveEMCALData.cxx:623
 AliEveEMCALData.cxx:624
 AliEveEMCALData.cxx:625
 AliEveEMCALData.cxx:626
 AliEveEMCALData.cxx:627
 AliEveEMCALData.cxx:628
 AliEveEMCALData.cxx:629
 AliEveEMCALData.cxx:630
 AliEveEMCALData.cxx:631
 AliEveEMCALData.cxx:632
 AliEveEMCALData.cxx:633
 AliEveEMCALData.cxx:634
 AliEveEMCALData.cxx:635
 AliEveEMCALData.cxx:636
 AliEveEMCALData.cxx:637
 AliEveEMCALData.cxx:638
 AliEveEMCALData.cxx:639
 AliEveEMCALData.cxx:640
 AliEveEMCALData.cxx:641
 AliEveEMCALData.cxx:642
 AliEveEMCALData.cxx:643
 AliEveEMCALData.cxx:644
 AliEveEMCALData.cxx:645
 AliEveEMCALData.cxx:646
 AliEveEMCALData.cxx:647
 AliEveEMCALData.cxx:648
 AliEveEMCALData.cxx:649
 AliEveEMCALData.cxx:650
 AliEveEMCALData.cxx:651
 AliEveEMCALData.cxx:652
 AliEveEMCALData.cxx:653
 AliEveEMCALData.cxx:654
 AliEveEMCALData.cxx:655
 AliEveEMCALData.cxx:656
 AliEveEMCALData.cxx:657
 AliEveEMCALData.cxx:658
 AliEveEMCALData.cxx:659
 AliEveEMCALData.cxx:660
 AliEveEMCALData.cxx:661
 AliEveEMCALData.cxx:662
 AliEveEMCALData.cxx:663
 AliEveEMCALData.cxx:664
 AliEveEMCALData.cxx:665
 AliEveEMCALData.cxx:666
 AliEveEMCALData.cxx:667
 AliEveEMCALData.cxx:668
 AliEveEMCALData.cxx:669
 AliEveEMCALData.cxx:670
 AliEveEMCALData.cxx:671
 AliEveEMCALData.cxx:672
 AliEveEMCALData.cxx:673
 AliEveEMCALData.cxx:674
 AliEveEMCALData.cxx:675
 AliEveEMCALData.cxx:676
 AliEveEMCALData.cxx:677
 AliEveEMCALData.cxx:678
 AliEveEMCALData.cxx:679
 AliEveEMCALData.cxx:680
 AliEveEMCALData.cxx:681
 AliEveEMCALData.cxx:682
 AliEveEMCALData.cxx:683
 AliEveEMCALData.cxx:684
 AliEveEMCALData.cxx:685
 AliEveEMCALData.cxx:686
 AliEveEMCALData.cxx:687
 AliEveEMCALData.cxx:688
 AliEveEMCALData.cxx:689
 AliEveEMCALData.cxx:690
 AliEveEMCALData.cxx:691
 AliEveEMCALData.cxx:692
 AliEveEMCALData.cxx:693
 AliEveEMCALData.cxx:694
 AliEveEMCALData.cxx:695
 AliEveEMCALData.cxx:696
 AliEveEMCALData.cxx:697
 AliEveEMCALData.cxx:698
 AliEveEMCALData.cxx:699
 AliEveEMCALData.cxx:700
 AliEveEMCALData.cxx:701
 AliEveEMCALData.cxx:702
 AliEveEMCALData.cxx:703
 AliEveEMCALData.cxx:704
 AliEveEMCALData.cxx:705
 AliEveEMCALData.cxx:706
 AliEveEMCALData.cxx:707
 AliEveEMCALData.cxx:708
 AliEveEMCALData.cxx:709
 AliEveEMCALData.cxx:710
 AliEveEMCALData.cxx:711
 AliEveEMCALData.cxx:712
 AliEveEMCALData.cxx:713
 AliEveEMCALData.cxx:714
 AliEveEMCALData.cxx:715
 AliEveEMCALData.cxx:716
 AliEveEMCALData.cxx:717
 AliEveEMCALData.cxx:718
 AliEveEMCALData.cxx:719
 AliEveEMCALData.cxx:720
 AliEveEMCALData.cxx:721
 AliEveEMCALData.cxx:722
 AliEveEMCALData.cxx:723
 AliEveEMCALData.cxx:724
 AliEveEMCALData.cxx:725
 AliEveEMCALData.cxx:726
 AliEveEMCALData.cxx:727
 AliEveEMCALData.cxx:728