#include <TGeoManager.h>
#include <TH2F.h>
#include <TCanvas.h>
#include <TStyle.h>
#include <TPad.h>
#include <TFile.h>
#include <TParticle.h>
#include "AliCalorimeterUtils.h"
#include "AliESDEvent.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "AliAODPWG4Particle.h"
#include "AliVCluster.h"
#include "AliVCaloCells.h"
#include "AliAODCaloCluster.h"
#include "AliOADBContainer.h"
#include "AliAnalysisManager.h"
#include "AliAODMCParticle.h"
#include "AliLog.h"
#include "AliEMCALGeometry.h"
#include "AliPHOSGeoUtils.h"
ClassImp(AliCalorimeterUtils)
AliCalorimeterUtils::AliCalorimeterUtils() :
TObject(), fDebug(0),
fEMCALGeoName(""),
fPHOSGeoName (""),
fEMCALGeo(0x0), fPHOSGeo(0x0),
fEMCALGeoMatrixSet(kFALSE), fPHOSGeoMatrixSet(kFALSE),
fLoadEMCALMatrices(kFALSE), fLoadPHOSMatrices(kFALSE),
fRemoveBadChannels(kFALSE), fPHOSBadChannelMap(0x0),
fNCellsFromPHOSBorder(0),
fNMaskCellColumns(0), fMaskCellColumns(0x0),
fRecalibration(kFALSE), fRunDependentCorrection(kFALSE),
fPHOSRecalibrationFactors(), fEMCALRecoUtils(new AliEMCALRecoUtils),
fRecalculatePosition(kFALSE), fCorrectELinearity(kFALSE),
fRecalculateMatching(kFALSE),
fCutR(20), fCutZ(20),
fCutEta(20), fCutPhi(20),
fLocMaxCutE(0), fLocMaxCutEDiff(0),
fPlotCluster(0), fOADBSet(kFALSE),
fOADBForEMCAL(kFALSE), fOADBForPHOS(kFALSE),
fOADBFilePathEMCAL(""), fOADBFilePathPHOS(""),
fImportGeometryFromFile(0), fImportGeometryFilePath(""),
fNSuperModulesUsed(0),
fMCECellClusFracCorrOn(0), fMCECellClusFracCorrParam()
{
InitParameters();
for(Int_t i = 0; i < 12; i++) fEMCALMatrix[i] = 0 ;
for(Int_t i = 0; i < 5 ; i++) fPHOSMatrix [i] = 0 ;
}
AliCalorimeterUtils::~AliCalorimeterUtils()
{
if(fEMCALGeo) delete fEMCALGeo ;
if(fPHOSBadChannelMap) {
fPHOSBadChannelMap->Clear();
delete fPHOSBadChannelMap;
}
if(fPHOSRecalibrationFactors) {
fPHOSRecalibrationFactors->Clear();
delete fPHOSRecalibrationFactors;
}
if(fEMCALRecoUtils) delete fEMCALRecoUtils ;
if(fNMaskCellColumns) delete [] fMaskCellColumns;
}
void AliCalorimeterUtils::AccessOADB(AliVEvent* event)
{
if(fOADBSet) return ;
Int_t runnumber = event->GetRunNumber() ;
TString pass = GetPass();
if(fOADBForEMCAL)
{
AliInfo(Form("Get AODB parameters from EMCAL in %s for run %d, and <%s>",fOADBFilePathEMCAL.Data(),runnumber,pass.Data()));
Int_t nSM = fEMCALGeo->GetNumberOfSuperModules();
if(fRemoveBadChannels)
{
AliOADBContainer *contBC=new AliOADBContainer("");
contBC->InitFromFile(Form("%s/EMCALBadChannels.root",fOADBFilePathEMCAL.Data()),"AliEMCALBadChannels");
TObjArray *arrayBC=(TObjArray*)contBC->GetObject(runnumber);
if(arrayBC)
{
SwitchOnDistToBadChannelRecalculation();
AliInfo("Remove EMCAL bad cells");
for (Int_t i=0; i<nSM; ++i)
{
TH2I *hbm = GetEMCALChannelStatusMap(i);
if (hbm)
delete hbm;
hbm=(TH2I*)arrayBC->FindObject(Form("EMCALBadChannelMap_Mod%d",i));
if (!hbm)
{
AliError(Form("Can not get EMCALBadChannelMap_Mod%d",i));
continue;
}
hbm->SetDirectory(0);
SetEMCALChannelStatusMap(i,hbm);
}
} else AliInfo("Do NOT remove EMCAL bad channels\n");
}
if(fRecalibration)
{
AliOADBContainer *contRF=new AliOADBContainer("");
contRF->InitFromFile(Form("%s/EMCALRecalib.root",fOADBFilePathEMCAL.Data()),"AliEMCALRecalib");
TObjArray *recal=(TObjArray*)contRF->GetObject(runnumber);
if(recal)
{
TObjArray *recalpass=(TObjArray*)recal->FindObject(pass);
if(recalpass)
{
TObjArray *recalib=(TObjArray*)recalpass->FindObject("Recalib");
if(recalib)
{
AliInfo("Recalibrate EMCAL");
for (Int_t i=0; i < nSM; ++i)
{
TH2F *h = GetEMCALChannelRecalibrationFactors(i);
if (h)
delete h;
h = (TH2F*)recalib->FindObject(Form("EMCALRecalFactors_SM%d",i));
if (!h)
{
AliError(Form("Could not load EMCALRecalFactors_SM%d",i));
continue;
}
h->SetDirectory(0);
SetEMCALChannelRecalibrationFactors(i,h);
}
} else AliInfo("Do NOT recalibrate EMCAL, no params object array");
} else AliInfo("Do NOT recalibrate EMCAL, no params for pass");
} else AliInfo("Do NOT recalibrate EMCAL, no params for run");
}
if(fRunDependentCorrection)
{
AliOADBContainer *contRFTD=new AliOADBContainer("");
contRFTD->InitFromFile(Form("%s/EMCALTemperatureCorrCalib.root",fOADBFilePathEMCAL.Data()),"AliEMCALRunDepTempCalibCorrections");
TH1S *htd=(TH1S*)contRFTD->GetObject(runnumber);
if (!htd)
{
AliWarning(Form("No TemperatureCorrCalib Objects for run: %d",runnumber));
Int_t lower = 0;
Int_t ic = 0;
Int_t maxEntry = contRFTD->GetNumberOfEntries();
while ( (ic < maxEntry) && (contRFTD->UpperLimit(ic) < runnumber) ) {
lower = ic;
ic++;
}
Int_t closest = lower;
if ( (ic<maxEntry) &&
(contRFTD->LowerLimit(ic)-runnumber) < (runnumber - contRFTD->UpperLimit(lower)) ) {
closest = ic;
}
AliWarning(Form("TemperatureCorrCalib Objects found closest id %d from run: %d", closest, contRFTD->LowerLimit(closest)));
htd = (TH1S*) contRFTD->GetObjectByIndex(closest);
}
if(htd)
{
AliInfo("Recalibrate (Temperature) EMCAL");
for (Int_t ism=0; ism<nSM; ++ism)
{
for (Int_t icol=0; icol<48; ++icol)
{
for (Int_t irow=0; irow<24; ++irow)
{
Float_t factor = GetEMCALChannelRecalibrationFactor(ism,icol,irow);
Int_t absID = fEMCALGeo->GetAbsCellIdFromCellIndexes(ism, irow, icol);
factor *= htd->GetBinContent(absID) / 10000. ;
SetEMCALChannelRecalibrationFactor(ism,icol,irow,factor);
}
}
}
}else AliInfo("Do NOT recalibrate EMCAL with T variations, no params TH1");
}
if(fEMCALRecoUtils->IsTimeRecalibrationOn())
{
AliOADBContainer *contTRF=new AliOADBContainer("");
contTRF->InitFromFile(Form("%s/EMCALTimeCalib.root",fOADBFilePathEMCAL.Data()),"AliEMCALTimeCalib");
TObjArray *trecal=(TObjArray*)contTRF->GetObject(runnumber);
if(trecal)
{
TString passM = pass;
if(pass=="spc_calo") passM = "pass1";
TObjArray *trecalpass=(TObjArray*)trecal->FindObject(passM);
if(trecalpass)
{
AliInfo("Time Recalibrate EMCAL");
for (Int_t ibc = 0; ibc < 4; ++ibc)
{
TH1F *h = GetEMCALChannelTimeRecalibrationFactors(ibc);
if (h)
delete h;
h = (TH1F*)trecalpass->FindObject(Form("hAllTimeAvBC%d",ibc));
if (!h)
{
AliError(Form("Could not load hAllTimeAvBC%d",ibc));
continue;
}
h->SetDirectory(0);
SetEMCALChannelTimeRecalibrationFactors(ibc,h);
}
} else AliInfo("Do NOT recalibrate time EMCAL, no params for pass");
} else AliInfo("Do NOT recalibrate time EMCAL, no params for run");
}
}
if(fOADBForPHOS)
{
AliInfo(Form("Get AODB parameters from PHOS in %s for run %d, and <%s>",fOADBFilePathPHOS.Data(),runnumber,pass.Data()));
if(fRemoveBadChannels)
{
AliOADBContainer badmapContainer(Form("phosBadMap"));
TString fileName="$ALICE_ROOT/OADB/PHOS/PHOSBadMaps.root";
badmapContainer.InitFromFile(Form("%s/PHOSBadMaps.root",fOADBFilePathPHOS.Data()),"phosBadMap");
TObjArray *maps = (TObjArray*)badmapContainer.GetObject(139000,"phosBadMap");
if(!maps)
{
AliInfo(Form("Can not read PHOS bad map for run %d",runnumber)) ;
}
else
{
AliInfo(Form("Setting PHOS bad map with name %s",maps->GetName())) ;
for(Int_t mod=1; mod<5;mod++)
{
TH2I *hbmPH = GetPHOSChannelStatusMap(mod);
if(hbmPH)
delete hbmPH ;
hbmPH = (TH2I*)maps->At(mod);
if(hbmPH) hbmPH->SetDirectory(0);
SetPHOSChannelStatusMap(mod-1,hbmPH);
}
}
}
}
fOADBSet = kTRUE;
}
void AliCalorimeterUtils::AccessGeometry(AliVEvent* inputEvent)
{
Int_t runnumber = inputEvent->GetRunNumber() ;
InitPHOSGeometry (runnumber);
InitEMCALGeometry(runnumber);
if(!fEMCALGeoMatrixSet && fEMCALGeo)
{
if(fLoadEMCALMatrices)
{
AliInfo("Load user defined EMCAL geometry matrices");
AliOADBContainer emcGeoMat("AliEMCALgeo");
emcGeoMat.InitFromFile(Form("%s/EMCALlocal2master.root",fOADBFilePathEMCAL.Data()),"AliEMCALgeo");
TObjArray *matEMCAL=(TObjArray*)emcGeoMat.GetObject(runnumber,"EmcalMatrices");
for(Int_t mod=0; mod < (fEMCALGeo->GetEMCGeometry())->GetNumberOfSuperModules(); mod++)
{
if (!fEMCALMatrix[mod])
{
AliDebug(1,Form("EMCAL matrices SM %d, %p", mod,((TGeoHMatrix*) matEMCAL->At(mod))));
fEMCALMatrix[mod] = (TGeoHMatrix*) matEMCAL->At(mod) ;
}
if(fEMCALMatrix[mod])
{
if(fDebug > 1)
fEMCALMatrix[mod]->Print();
fEMCALGeo->SetMisalMatrix(fEMCALMatrix[mod],mod) ;
}
}
fEMCALGeoMatrixSet = kTRUE;
}
else if (!gGeoManager)
{
AliDebug(1,"Load EMCAL misalignment matrices");
if(!strcmp(inputEvent->GetName(),"AliESDEvent"))
{
for(Int_t mod=0; mod < (fEMCALGeo->GetEMCGeometry())->GetNumberOfSuperModules(); mod++)
{
if(((AliESDEvent*)inputEvent)->GetEMCALMatrix(mod))
{
fEMCALGeo->SetMisalMatrix(((AliESDEvent*)inputEvent)->GetEMCALMatrix(mod),mod) ;
}
}
fEMCALGeoMatrixSet = kTRUE;
}
else
{
AliDebug(1,"Setting of EMCAL transformation matrixes for AODs not implemented yet. \n Import geometry.root file");
}
}
else if(gGeoManager)
{
fEMCALGeoMatrixSet = kTRUE;
}
}
if(!fPHOSGeoMatrixSet && fPHOSGeo)
{
if(fLoadPHOSMatrices)
{
AliInfo("Load user defined PHOS geometry matrices");
AliOADBContainer geomContainer("phosGeo");
geomContainer.InitFromFile(Form("%s/PHOSGeometry.root",fOADBFilePathPHOS.Data()),"PHOSRotationMatrixes");
TObjArray *matPHOS = (TObjArray*)geomContainer.GetObject(139000,"PHOSRotationMatrixes");
for(Int_t mod = 0 ; mod < 5 ; mod++)
{
if (!fPHOSMatrix[mod])
{
AliDebug(1,Form("PHOS matrices module %d, %p",mod,((TGeoHMatrix*) matPHOS->At(mod))));
fPHOSMatrix[mod] = (TGeoHMatrix*) matPHOS->At(mod) ;
}
if(fPHOSMatrix[mod])
{
if(fDebug > 1 )
fPHOSMatrix[mod]->Print();
fPHOSGeo->SetMisalMatrix(fPHOSMatrix[mod],mod) ;
}
}
fPHOSGeoMatrixSet = kTRUE;
}
else if (!gGeoManager)
{
AliDebug(1,"Load PHOS misalignment matrices.");
if(!strcmp(inputEvent->GetName(),"AliESDEvent"))
{
for(Int_t mod = 0; mod < 5; mod++)
{
if( ((AliESDEvent*)inputEvent)->GetPHOSMatrix(mod))
{
fPHOSGeo->SetMisalMatrix( ((AliESDEvent*)inputEvent)->GetPHOSMatrix(mod),mod) ;
}
}
fPHOSGeoMatrixSet = kTRUE;
}
else
{
AliDebug(1,"Setting of EMCAL transformation matrixes for AODs not implemented yet. \n Import geometry.root file");
}
}
else if(gGeoManager)
{
fPHOSGeoMatrixSet = kTRUE;
}
}
}
Bool_t AliCalorimeterUtils::AreNeighbours(Int_t calo, Int_t absId1, Int_t absId2 ) const
{
Bool_t areNeighbours = kFALSE ;
Int_t iRCU1 = -1, irow1 = -1, icol1 = -1;
Int_t iRCU2 = -1, irow2 = -1, icol2 = -1;
Int_t rowdiff = 0, coldiff = 0;
Int_t nSupMod1 = GetModuleNumberCellIndexes(absId1, calo, icol1, irow1, iRCU1);
Int_t nSupMod2 = GetModuleNumberCellIndexes(absId2, calo, icol2, irow2, iRCU2);
if(calo==kEMCAL && nSupMod1!=nSupMod2)
{
if(nSupMod1%2) icol1+=AliEMCALGeoParams::fgkEMCALCols;
else icol2+=AliEMCALGeoParams::fgkEMCALCols;
}
rowdiff = TMath::Abs( irow1 - irow2 ) ;
coldiff = TMath::Abs( icol1 - icol2 ) ;
if ((coldiff + rowdiff == 1 ))
areNeighbours = kTRUE ;
return areNeighbours;
}
Bool_t AliCalorimeterUtils::IsClusterSharedByTwoSuperModules(const AliEMCALGeometry * geom,
AliVCluster* cluster)
{
Int_t iSupMod = -1;
Int_t iSM0 = -1;
Int_t iTower = -1;
Int_t iIphi = -1;
Int_t iIeta = -1;
Int_t iphi = -1;
Int_t ieta = -1;
for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++)
{
geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta);
geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta);
if (iDigit == 0 ) iSM0 = iSupMod;
else if(iSupMod!= iSM0) return kTRUE;
}
return kFALSE;
}
Bool_t AliCalorimeterUtils::CheckCellFiducialRegion(AliVCluster* cluster,
AliVCaloCells* cells) const
{
if(cells->GetType()==AliVCaloCells::kEMCALCell && fEMCALRecoUtils->GetNumberOfCellsFromEMCALBorder() <= 0 ) return kTRUE;
if(cells->GetType()==AliVCaloCells::kPHOSCell && fNCellsFromPHOSBorder <= 0 ) return kTRUE;
Int_t absIdMax = -1;
Float_t ampMax = -1;
for(Int_t i = 0; i < cluster->GetNCells() ; i++)
{
Int_t absId = cluster->GetCellAbsId(i) ;
Float_t amp = cells->GetCellAmplitude(absId);
if(amp > ampMax)
{
ampMax = amp;
absIdMax = absId;
}
}
AliDebug(1,Form("Cluster Max AbsId %d, Cell Energy %2.2f, Cluster Energy %2.2f",
absIdMax, ampMax, cluster->E()));
if(absIdMax==-1) return kFALSE;
Bool_t okrow = kFALSE;
Bool_t okcol = kFALSE;
if(cells->GetType()==AliVCaloCells::kEMCALCell)
{
Int_t iTower = -1, iIphi = -1, iIeta = -1, iphi = -1, ieta = -1, iSM = -1;
fEMCALGeo->GetCellIndex(absIdMax,iSM,iTower,iIphi,iIeta);
fEMCALGeo->GetCellPhiEtaIndexInSModule(iSM,iTower,iIphi, iIeta,iphi,ieta);
if(iSM < 0 || iphi < 0 || ieta < 0 )
{
AliFatal(Form("Negative value for super module: %d, or cell ieta: %d, or cell iphi: %d, check EMCAL geometry name",iSM,ieta,iphi));
}
Int_t nborder = fEMCALRecoUtils->GetNumberOfCellsFromEMCALBorder();
if(iSM < 10)
{
if(iphi >= nborder && iphi < 24-nborder) okrow =kTRUE;
}
else
{
if(fEMCALGeoName.Contains("12SM"))
{
if(iphi >= nborder && iphi < 8-nborder) okrow =kTRUE;
}
else
{
if(iphi >= nborder && iphi <12-nborder) okrow =kTRUE;
}
}
if(!fEMCALRecoUtils->IsEMCALNoBorderAtEta0())
{
if(ieta > nborder && ieta < 48-nborder) okcol =kTRUE;
}
else
{
if(iSM%2==0)
{
if(ieta >= nborder) okcol = kTRUE;
}
else
{
if(ieta < 48-nborder) okcol = kTRUE;
}
}
AliDebug(1,Form("EMCAL Cluster in %d cells fiducial volume: ieta %d, iphi %d, SM %d ? ok row %d, ok column %d",
nborder, ieta, iphi, iSM,okrow,okcol));
}
else if ( cells->GetType() == AliVCaloCells::kPHOSCell )
{
Int_t relId[4];
Int_t irow = -1, icol = -1;
fPHOSGeo->AbsToRelNumbering(absIdMax,relId);
irow = relId[2];
icol = relId[3];
if(irow >= fNCellsFromPHOSBorder && irow < 64-fNCellsFromPHOSBorder) okrow =kTRUE;
if(icol >= fNCellsFromPHOSBorder && icol < 56-fNCellsFromPHOSBorder) okcol =kTRUE;
AliDebug(1,Form("PHOS Cluster in %d cells fiducial volume: ieta %d, iphi %d, SM %d ? ok row %d, ok column %d",
fNCellsFromPHOSBorder, icol, irow, relId[0]-1,okrow,okcol));
}
if (okcol && okrow) return kTRUE;
else return kFALSE;
}
Bool_t AliCalorimeterUtils::ClusterContainsBadChannel(Int_t calorimeter, UShort_t* cellList, Int_t nCells)
{
if (!fRemoveBadChannels) return kFALSE;
if(calorimeter == kEMCAL && !fEMCALRecoUtils->GetEMCALChannelStatusMap(0)) return kFALSE;
if(calorimeter == kPHOS && !fPHOSBadChannelMap) return kFALSE;
Int_t icol = -1;
Int_t irow = -1;
Int_t imod = -1;
for(Int_t iCell = 0; iCell<nCells; iCell++){
if(calorimeter == kEMCAL){
return fEMCALRecoUtils->ClusterContainsBadChannel((AliEMCALGeometry*)fEMCALGeo,cellList,nCells);
}
else if(calorimeter==kPHOS){
Int_t relId[4];
fPHOSGeo->AbsToRelNumbering(cellList[iCell],relId);
irow = relId[2];
icol = relId[3];
imod = relId[0]-1;
if(fPHOSBadChannelMap->GetEntries() <= imod)continue;
if(GetPHOSChannelStatus(imod, irow, icol)) return kTRUE;
}
else return kFALSE;
}
return kFALSE;
}
void AliCalorimeterUtils::CorrectClusterEnergy(AliVCluster *clus)
{
clus->SetE(fEMCALRecoUtils->CorrectClusterEnergyLinearity(clus));
}
Int_t AliCalorimeterUtils::GetMaxEnergyCell(AliVCaloCells* cells, const AliVCluster* clu,
Float_t & clusterFraction) const
{
if( !clu || !cells ){
AliInfo("Cluster or cells pointer is null!");
return -1;
}
Double_t eMax =-1.;
Double_t eTot = 0.;
Double_t eCell =-1.;
Float_t fraction = 1.;
Float_t recalFactor = 1.;
Int_t cellAbsId =-1 , absId =-1 ;
Int_t iSupMod =-1 , ieta =-1 , iphi = -1, iRCU = -1;
Int_t calo = kEMCAL;
if(clu->IsPHOS()) calo = kPHOS ;
for (Int_t iDig=0; iDig< clu->GetNCells(); iDig++) {
cellAbsId = clu->GetCellAbsId(iDig);
fraction = clu->GetCellAmplitudeFraction(iDig);
if(fraction < 1e-4) fraction = 1.;
iSupMod = GetModuleNumberCellIndexes(cellAbsId, calo, ieta, iphi, iRCU);
if(IsRecalibrationOn()) {
if(calo==kEMCAL) recalFactor = GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi);
else recalFactor = GetPHOSChannelRecalibrationFactor (iSupMod,iphi,ieta);
}
eCell = cells->GetCellAmplitude(cellAbsId)*fraction*recalFactor;
if(eCell > eMax) {
eMax = eCell;
absId = cellAbsId;
}
eTot+=eCell;
}
if(eTot > 0.1)
clusterFraction = (eTot-eMax)/eTot;
else
clusterFraction =1.;
return absId;
}
AliVTrack * AliCalorimeterUtils::GetMatchedTrack(AliVCluster* cluster,
AliVEvent* event, Int_t index) const
{
AliVTrack *track = 0;
if(cluster->IsEMCAL() && IsRecalculationOfClusterTrackMatchingOn())
{
Int_t trackIndex = fEMCALRecoUtils->GetMatchedTrackIndex(cluster->GetID());
if(trackIndex < 0 )
{
AliInfo(Form("Wrong track index %d, from recalculation", trackIndex));
}
else
{
track = dynamic_cast<AliVTrack*> (event->GetTrack(trackIndex));
}
return track ;
}
if(!strcmp("AliESDCaloCluster",Form("%s",cluster->ClassName())))
{
Int_t iESDtrack = cluster->GetTrackMatchedIndex();
if(iESDtrack < 0 )
{
AliWarning(Form("Wrong track index %d", index));
return 0x0;
}
track = dynamic_cast<AliVTrack*> (event->GetTrack(iESDtrack));
}
else
{
if(cluster->GetNTracksMatched() > 0 )
track = dynamic_cast<AliVTrack*>(cluster->GetTrackMatched(index));
}
return track ;
}
Float_t AliCalorimeterUtils::GetMCECellClusFracCorrection(Float_t eCell, Float_t eCluster) const
{
if( eCluster <= 0 || eCluster < eCell )
{
AliWarning(Form("Bad values eCell=%f, eCluster %f",eCell,eCluster));
return 1;
}
Float_t frac = eCell / eCluster;
Float_t correction = fMCECellClusFracCorrParam[0] +
TMath::Exp( frac*fMCECellClusFracCorrParam[2]+fMCECellClusFracCorrParam[1] ) +
fMCECellClusFracCorrParam[3]/TMath::Sqrt(frac);
return correction;
}
Int_t AliCalorimeterUtils::GetModuleNumber(AliAODPWG4Particle * particle, AliVEvent * inputEvent) const
{
Int_t absId = -1;
if(particle->GetDetectorTag()==kEMCAL)
{
fEMCALGeo->GetAbsCellIdFromEtaPhi(particle->Eta(),particle->Phi(), absId);
AliDebug(2,Form("EMCAL: cluster eta %f, phi %f, absid %d, SuperModule %d",
particle->Eta(), particle->Phi()*TMath::RadToDeg(),absId, fEMCALGeo->GetSuperModuleNumber(absId)));
return fEMCALGeo->GetSuperModuleNumber(absId) ;
}
else if(particle->GetDetectorTag()==kPHOS)
{
if(strcmp(inputEvent->ClassName(), "AliMCEvent") == 0 )
{
Int_t mod =-1;
Double_t z = 0., x=0.;
TParticle* primary = 0x0;
AliStack * stack = ((AliMCEvent*)inputEvent)->Stack();
if(stack)
{
primary = stack->Particle(particle->GetCaloLabel(0));
}
else
{
AliFatal("Stack not available, stop!");
}
if(primary)
{
fPHOSGeo->ImpactOnEmc(primary,mod,z,x) ;
}
else
{
AliFatal("Primary not available, stop!");
}
return mod;
}
else
{
return -1;
}
}
return -1;
}
Int_t AliCalorimeterUtils::GetModuleNumber(AliVCluster * cluster) const
{
if(!cluster)
{
AliDebug(1,"AliCalorimeterUtils::GetModuleNumber() - NUL Cluster, please check!!!");
return -1;
}
if ( cluster->GetNCells() <= 0 ) return -1;
Int_t absId = cluster->GetCellAbsId(0);
if ( absId < 0 ) return -1;
if( cluster->IsEMCAL() )
{
AliDebug(2,Form("EMCAL absid %d, SuperModule %d",absId, fEMCALGeo->GetSuperModuleNumber(absId)));
return fEMCALGeo->GetSuperModuleNumber(absId) ;
}
else if ( cluster->IsPHOS() )
{
Int_t relId[4];
fPHOSGeo->AbsToRelNumbering(absId,relId);
AliDebug(2,Form("PHOS absid %d Module %d",absId, relId[0]-1));
return relId[0]-1;
}
return -1;
}
Int_t AliCalorimeterUtils::GetModuleNumberCellIndexes(Int_t absId, Int_t calo,
Int_t & icol, Int_t & irow, Int_t & iRCU) const
{
Int_t imod = -1;
if ( absId < 0) return -1 ;
if ( calo == kEMCAL )
{
Int_t iTower = -1, iIphi = -1, iIeta = -1;
fEMCALGeo->GetCellIndex(absId,imod,iTower,iIphi,iIeta);
fEMCALGeo->GetCellPhiEtaIndexInSModule(imod,iTower,iIphi, iIeta,irow,icol);
if(imod < 0 || irow < 0 || icol < 0 )
{
AliFatal(Form("Negative value for super module: %d, or cell icol: %d, or cell irow: %d, check EMCAL geometry name",imod,icol,irow));
}
if(imod < 10 )
{
if (0<=irow&&irow<8) iRCU=0;
else if (8<=irow&&irow<16 && 0<=icol&&icol<24) iRCU=0;
else if (8<=irow&&irow<16 && 24<=icol&&icol<48) iRCU=1;
else if (16<=irow&&irow<24) iRCU=1;
if (imod%2==1) iRCU = 1 - iRCU;
}
else
{
iRCU = 0 ;
}
if (iRCU < 0)
{
AliFatal(Form("Wrong EMCAL RCU number = %d", iRCU));
}
return imod ;
}
else
{
Int_t relId[4];
fPHOSGeo->AbsToRelNumbering(absId,relId);
irow = relId[2];
icol = relId[3];
imod = relId[0]-1;
iRCU= (Int_t)(relId[2]-1)/16 ;
if (iRCU >= 4)
{
AliFatal(Form("Wrong PHOS RCU number = %d", iRCU));
}
return imod;
}
return -1;
}
Int_t AliCalorimeterUtils::GetNumberOfLocalMaxima(AliVCluster* cluster, AliVCaloCells* cells)
{
const Int_t nc = cluster->GetNCells();
Int_t absIdList[nc];
Float_t maxEList[nc];
Int_t nMax = GetNumberOfLocalMaxima(cluster, cells, absIdList, maxEList);
return nMax;
}
Int_t AliCalorimeterUtils::GetNumberOfLocalMaxima(AliVCluster* cluster, AliVCaloCells* cells,
Int_t *absIdList, Float_t *maxEList)
{
Int_t iDigitN = 0 ;
Int_t iDigit = 0 ;
Int_t absId1 = -1 ;
Int_t absId2 = -1 ;
const Int_t nCells = cluster->GetNCells();
Float_t eCluster = RecalibrateClusterEnergy(cluster, cells);
Float_t simuTotWeight = 0;
if(fMCECellClusFracCorrOn)
{
simuTotWeight = RecalibrateClusterEnergyWeightCell(cluster, cells,eCluster);
simuTotWeight/= eCluster;
}
Int_t calorimeter = kEMCAL;
if(!cluster->IsEMCAL()) calorimeter = kPHOS;
Float_t emax = 0;
Int_t idmax =-1;
for(iDigit = 0; iDigit < nCells ; iDigit++)
{
absIdList[iDigit] = cluster->GetCellsAbsId()[iDigit] ;
Float_t en = cells->GetCellAmplitude(absIdList[iDigit]);
RecalibrateCellAmplitude(en,calorimeter,absIdList[iDigit]);
if(fMCECellClusFracCorrOn)
en*=GetMCECellClusFracCorrection(en,eCluster)/simuTotWeight;
if( en > emax )
{
emax = en ;
idmax = absIdList[iDigit] ;
}
}
for(iDigit = 0 ; iDigit < nCells; iDigit++)
{
if(absIdList[iDigit]>=0)
{
absId1 = cluster->GetCellsAbsId()[iDigit];
Float_t en1 = cells->GetCellAmplitude(absId1);
RecalibrateCellAmplitude(en1,calorimeter,absId1);
if(fMCECellClusFracCorrOn)
en1*=GetMCECellClusFracCorrection(en1,eCluster)/simuTotWeight;
for(iDigitN = 0; iDigitN < nCells; iDigitN++)
{
absId2 = cluster->GetCellsAbsId()[iDigitN] ;
if(absId2==-1 || absId2==absId1) continue;
Float_t en2 = cells->GetCellAmplitude(absId2);
RecalibrateCellAmplitude(en2,calorimeter,absId2);
if(fMCECellClusFracCorrOn)
en2*=GetMCECellClusFracCorrection(en2,eCluster)/simuTotWeight;
if ( AreNeighbours(calorimeter, absId1, absId2) )
{
if (en1 > en2 )
{
absIdList[iDigitN] = -1 ;
if(en1 < en2 + fLocMaxCutEDiff) {
absIdList[iDigit] = -1 ;
}
}
else
{
absIdList[iDigit] = -1 ;
if(en1 > en2 - fLocMaxCutEDiff)
{
absIdList[iDigitN] = -1 ;
}
}
}
}
}
}
iDigitN = 0 ;
for(iDigit = 0; iDigit < nCells; iDigit++)
{
if(absIdList[iDigit]>=0 )
{
absIdList[iDigitN] = absIdList[iDigit] ;
Float_t en = cells->GetCellAmplitude(absIdList[iDigit]);
RecalibrateCellAmplitude(en,calorimeter,absIdList[iDigit]);
if(fMCECellClusFracCorrOn)
en*=GetMCECellClusFracCorrection(en,eCluster)/simuTotWeight;
if(en < fLocMaxCutE) continue;
maxEList[iDigitN] = en ;
iDigitN++ ;
}
}
if(iDigitN == 0)
{
AliDebug(1,Form("No local maxima found, assign highest energy cell as maxima, id %d, en cell %2.2f, en cluster %2.2f",
idmax,emax,cluster->E()));
iDigitN = 1 ;
maxEList[0] = emax ;
absIdList[0] = idmax ;
}
AliDebug(1,Form("In cluster E %2.2f (wth non lin. %2.2f), M02 %2.2f, M20 %2.2f, N maxima %d",
cluster->E(),eCluster, cluster->GetM02(),cluster->GetM20(), iDigitN));
return iDigitN ;
}
TString AliCalorimeterUtils::GetPass()
{
if (!AliAnalysisManager::GetAnalysisManager()->GetTree())
{
AliError("AliCalorimeterUtils::GetPass() - Pointer to tree = 0, returning null");
return TString("");
}
if (!AliAnalysisManager::GetAnalysisManager()->GetTree()->GetCurrentFile())
{
AliError("AliCalorimeterUtils::GetPass() - Null pointer input file, returning null");
return TString("");
}
TString pass(AliAnalysisManager::GetAnalysisManager()->GetTree()->GetCurrentFile()->GetName());
if (pass.Contains("ass1")) return TString("pass1");
else if (pass.Contains("ass2")) return TString("pass2");
else if (pass.Contains("ass3")) return TString("pass3");
else if (pass.Contains("ass4")) return TString("pass4");
else if (pass.Contains("ass5")) return TString("pass5");
else if (pass.Contains("LHC11c") && pass.Contains("spc_calo") ) return TString("spc_calo");
else if (pass.Contains("calo") || pass.Contains("high_lumi"))
{
AliInfo("Path contains <calo> or <high-lumi>, set as <pass1>");
return TString("pass1");
}
AliInfo("Pass number string not found");
return TString("");
}
void AliCalorimeterUtils::InitParameters()
{
fEMCALGeoName = "";
fPHOSGeoName = "";
fEMCALGeoMatrixSet = kFALSE;
fPHOSGeoMatrixSet = kFALSE;
fRemoveBadChannels = kFALSE;
fNCellsFromPHOSBorder = 0;
fLocMaxCutE = 0.1 ;
fLocMaxCutEDiff = 0.0 ;
fOADBSet = kFALSE;
fOADBForEMCAL = kTRUE ;
fOADBForPHOS = kFALSE;
fOADBFilePathEMCAL = "$ALICE_ROOT/OADB/EMCAL" ;
fOADBFilePathPHOS = "$ALICE_ROOT/OADB/PHOS" ;
fImportGeometryFromFile = kTRUE;
fImportGeometryFilePath = "";
fNSuperModulesUsed = 22;
fMCECellClusFracCorrParam[0] = 0.78;
fMCECellClusFracCorrParam[1] =-1.8;
fMCECellClusFracCorrParam[2] =-6.3;
fMCECellClusFracCorrParam[3] = 0.014;
}
void AliCalorimeterUtils::InitPHOSBadChannelStatusMap()
{
AliDebug(1,"Init bad channel map");
Bool_t oldStatus = TH1::AddDirectoryStatus();
TH1::AddDirectory(kFALSE);
fPHOSBadChannelMap = new TObjArray(5);
for (int i = 0; i < 5; i++)fPHOSBadChannelMap->Add(new TH2I(Form("PHOS_BadMap_mod%d",i),Form("PHOS_BadMap_mod%d",i), 64, 0, 64, 56, 0, 56));
fPHOSBadChannelMap->SetOwner(kTRUE);
fPHOSBadChannelMap->Compress();
TH1::AddDirectory(oldStatus);
}
void AliCalorimeterUtils::InitPHOSRecalibrationFactors()
{
AliDebug(1,"Init recalibration map");
Bool_t oldStatus = TH1::AddDirectoryStatus();
TH1::AddDirectory(kFALSE);
fPHOSRecalibrationFactors = new TObjArray(5);
for (int i = 0; i < 5; i++)fPHOSRecalibrationFactors->Add(new TH2F(Form("PHOSRecalFactors_Mod%d",i),Form("PHOSRecalFactors_Mod%d",i), 64, 0, 64, 56, 0, 56));
for (Int_t m = 0; m < 5; m++) {
for (Int_t i = 0; i < 56; i++) {
for (Int_t j = 0; j < 64; j++) {
SetPHOSChannelRecalibrationFactor(m,j,i,1.);
}
}
}
fPHOSRecalibrationFactors->SetOwner(kTRUE);
fPHOSRecalibrationFactors->Compress();
TH1::AddDirectory(oldStatus);
}
void AliCalorimeterUtils::InitEMCALGeometry(Int_t runnumber)
{
if (fEMCALGeo) return;
AliDebug(1,Form(" for run=%d",runnumber));
if(fEMCALGeoName=="")
{
if (runnumber < 140000 &&
runnumber >= 100000) fEMCALGeoName = "EMCAL_FIRSTYEARV1";
else if(runnumber >= 140000 &&
runnumber < 171000) fEMCALGeoName = "EMCAL_COMPLETEV1";
else fEMCALGeoName = "EMCAL_COMPLETE12SMV1";
AliInfo(Form("Set EMCAL geometry name to <%s> for run %d",fEMCALGeoName.Data(),runnumber));
}
fEMCALGeo = AliEMCALGeometry::GetInstance(fEMCALGeoName);
if(fImportGeometryFromFile && !gGeoManager)
{
if(fImportGeometryFilePath=="")
{
if (runnumber < 140000 &&
runnumber >= 100000) fImportGeometryFilePath = "$ALICE_ROOT/OADB/EMCAL/geometry_2010.root";
if (runnumber >= 140000 &&
runnumber < 171000) fImportGeometryFilePath = "$ALICE_ROOT/OADB/EMCAL/geometry_2011.root";
else fImportGeometryFilePath = "$ALICE_ROOT/OADB/EMCAL/geometry_2012.root";
}
AliInfo(Form("Import %s",fImportGeometryFilePath.Data()));
TGeoManager::Import(fImportGeometryFilePath) ;
}
else if (!gGeoManager) AliInfo("Careful!, gGeoManager not loaded, load misalign matrices");
}
void AliCalorimeterUtils::InitPHOSGeometry(Int_t runnumber)
{
if (fPHOSGeo) return;
AliDebug(1,Form(" for run=%d",runnumber));
if(fPHOSGeoName=="") fPHOSGeoName = "PHOSgeo";
fPHOSGeo = new AliPHOSGeoUtils(fPHOSGeoName);
}
Bool_t AliCalorimeterUtils::IsMCParticleInCalorimeterAcceptance(Int_t calo, TParticle* particle)
{
if(!particle || (calo!=kEMCAL && calo!=kPHOS)) return kFALSE ;
if( (!IsPHOSGeoMatrixSet () && calo == kPHOS ) ||
(!IsEMCALGeoMatrixSet() && calo == kEMCAL) )
{
AliFatal(Form("Careful Geo Matrix for calo <%d> is not set, use AliFidutialCut instead",calo));
return kFALSE ;
}
if(calo == kPHOS )
{
Int_t mod = 0 ;
Double_t x = 0, z = 0 ;
return GetPHOSGeometry()->ImpactOnEmc( particle, mod, z, x);
}
else if(calo == kEMCAL)
{
Int_t absID = 0 ;
Bool_t ok = GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(particle->Eta(),particle->Phi(),absID);
if(ok)
{
Int_t icol = -1, irow = -1, iRCU = -1;
Int_t nModule = GetModuleNumberCellIndexes(absID,calo, icol, irow, iRCU);
Int_t status = GetEMCALChannelStatus(nModule,icol,irow);
if(status > 0) ok = kFALSE;
}
return ok ;
}
return kFALSE ;
}
Bool_t AliCalorimeterUtils::IsMCParticleInCalorimeterAcceptance(Int_t calo, AliAODMCParticle* particle)
{
if(!particle || (calo!=kEMCAL && calo!=kPHOS)) return kFALSE ;
if( (!IsPHOSGeoMatrixSet () && calo == kPHOS ) ||
(!IsEMCALGeoMatrixSet() && calo == kEMCAL) )
{
AliFatal(Form("Careful Geo Matrix for calo <%d> is not set, use AliFidutialCut instead",calo));
return kFALSE ;
}
Float_t phi = particle->Phi();
if(phi < 0) phi+=TMath::TwoPi();
if(calo == kPHOS )
{
Int_t mod = 0 ;
Double_t x = 0, z = 0 ;
Double_t vtx[]={ particle->Xv(), particle->Yv(), particle->Zv() } ;
return GetPHOSGeometry()->ImpactOnEmc(vtx, particle->Theta(), phi, mod, z, x) ;
}
else if(calo == kEMCAL)
{
Int_t absID = 0 ;
Bool_t ok = GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(particle->Eta(),phi,absID);
if(ok)
{
Int_t icol = -1, irow = -1, iRCU = -1;
Int_t nModule = GetModuleNumberCellIndexes(absID,calo, icol, irow, iRCU);
Int_t status = GetEMCALChannelStatus(nModule,icol,irow);
if(status > 0) ok = kFALSE;
}
return ok ;
}
return kFALSE ;
}
Bool_t AliCalorimeterUtils::IsMCParticleInCalorimeterAcceptance(Int_t calo, Float_t eta, Float_t theta,
Float_t phiOrg, Int_t & absID)
{
if(calo!=kEMCAL && calo!=kPHOS) return kFALSE ;
if( (!IsPHOSGeoMatrixSet () && calo == kPHOS ) ||
(!IsEMCALGeoMatrixSet() && calo == kEMCAL) )
{
AliFatal(Form("Careful Geo Matrix for calo <%d> is not set, use AliFidutialCut instead",calo));
return kFALSE ;
}
Float_t phi = phiOrg;
if(phi < 0) phi+=TMath::TwoPi();
if(calo == kPHOS )
{
Int_t mod = 0 ;
Double_t x = 0, z = 0 ;
Double_t vtx[]={0,0,0} ;
return GetPHOSGeometry()->ImpactOnEmc(vtx, theta, phi, mod, z, x) ;
}
else if(calo == kEMCAL)
{
Bool_t ok = GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta,phi,absID);
if(ok)
{
Int_t icol = -1, irow = -1, iRCU = -1;
Int_t nModule = GetModuleNumberCellIndexes(absID,calo, icol, irow, iRCU);
Int_t status = GetEMCALChannelStatus(nModule,icol,irow);
if(status > 0) ok = kFALSE;
}
return ok ;
}
return kFALSE ;
}
Bool_t AliCalorimeterUtils::MaskFrameCluster(Int_t iSM, Int_t ieta) const
{
Int_t icol = ieta;
if(iSM%2) icol+=48;
if (fNMaskCellColumns && fMaskCellColumns)
{
for (Int_t imask = 0; imask < fNMaskCellColumns; imask++)
{
if(icol==fMaskCellColumns[imask]) return kTRUE;
}
}
return kFALSE;
}
void AliCalorimeterUtils::Print(const Option_t * opt) const
{
if(! opt)
return;
printf("***** Print: %s %s ******\n", GetName(), GetTitle() ) ;
printf("Remove Clusters with bad channels? %d\n",fRemoveBadChannels);
printf("Remove Clusters with max cell at less than %d cells from EMCAL border and %d cells from PHOS border\n",
fEMCALRecoUtils->GetNumberOfCellsFromEMCALBorder(), fNCellsFromPHOSBorder);
if(fEMCALRecoUtils->IsEMCALNoBorderAtEta0()) printf("Do not remove EMCAL clusters at Eta = 0\n");
printf("Recalibrate Clusters? %d, run by run %d\n",fRecalibration,fRunDependentCorrection);
printf("Recalculate Clusters Position? %d\n",fRecalculatePosition);
printf("Recalculate Clusters Energy? %d\n",fCorrectELinearity);
printf("Matching criteria: dR < %2.2f[cm], dZ < %2.2f[cm]\n",fCutR,fCutZ);
printf("Loc. Max. E > %2.2f\n", fLocMaxCutE);
printf("Loc. Max. E Diff > %2.2f\n", fLocMaxCutEDiff);
printf(" \n") ;
}
void AliCalorimeterUtils::RecalibrateCellAmplitude(Float_t & amp, Int_t calo, Int_t id) const
{
Int_t icol = -1; Int_t irow = -1; Int_t iRCU = -1;
Int_t nModule = GetModuleNumberCellIndexes(id,calo, icol, irow, iRCU);
if (IsRecalibrationOn())
{
if(calo == kPHOS)
{
amp *= GetPHOSChannelRecalibrationFactor(nModule,icol,irow);
}
else
{
amp *= GetEMCALChannelRecalibrationFactor(nModule,icol,irow);
}
}
}
void AliCalorimeterUtils::RecalibrateCellTime(Double_t & time, Int_t calo, Int_t id, Int_t bc) const
{
if(calo == kEMCAL && GetEMCALRecoUtils()->IsTimeRecalibrationOn())
{
GetEMCALRecoUtils()->RecalibrateCellTime(id,bc,time);
}
}
Float_t AliCalorimeterUtils::RecalibrateClusterEnergy(AliVCluster * cluster,
AliVCaloCells * cells)
{
Float_t frac = 0., energy = 0.;
if(cells)
{
UShort_t * index = cluster->GetCellsAbsId() ;
Double_t * fraction = cluster->GetCellsAmplitudeFraction() ;
Int_t ncells = cluster->GetNCells();
Int_t calo = kEMCAL;
if(cluster->IsPHOS()) calo = kPHOS ;
for(Int_t icell = 0; icell < ncells; icell++){
Int_t absId = index[icell];
frac = fraction[icell];
if(frac < 1e-3) frac = 1;
Float_t amp = cells->GetCellAmplitude(absId);
RecalibrateCellAmplitude(amp,calo, absId);
AliDebug(2,Form("Recalibrate cell: calo <%d>, cell fraction %f, cell energy %f",
calo,frac,cells->GetCellAmplitude(absId)));
energy += amp*frac;
}
AliDebug(1,Form("Energy before %f, after %f",cluster->E(),energy));
}
else
{
AliFatal("Cells pointer does not exist!");
}
return energy;
}
Float_t AliCalorimeterUtils::RecalibrateClusterEnergyWeightCell(AliVCluster * cluster,
AliVCaloCells * cells, Float_t energyOrg)
{
Float_t frac = 0., energy = 0.;
if(cells)
{
UShort_t * index = cluster->GetCellsAbsId() ;
Double_t * fraction = cluster->GetCellsAmplitudeFraction() ;
Int_t ncells = cluster->GetNCells();
Int_t calo = kEMCAL;
if(cluster->IsPHOS()) calo = kPHOS ;
for(Int_t icell = 0; icell < ncells; icell++)
{
Int_t absId = index[icell];
frac = fraction[icell];
if(frac < 1e-3) frac = 1;
Float_t amp = cells->GetCellAmplitude(absId);
RecalibrateCellAmplitude(amp,calo, absId);
amp*=GetMCECellClusFracCorrection(amp,energyOrg);
AliDebug(2,Form("Recalibrate cell: calo <%d>, cell fraction %f, cell energy %f",
calo,frac,cells->GetCellAmplitude(absId)));
energy += amp*frac;
}
AliDebug(1,Form("Energy before %f, after %f",cluster->E(),energy));
}
else
{
AliFatal("Cells pointer does not exist!");
}
return energy;
}
void AliCalorimeterUtils::RecalculateClusterPosition(AliVCaloCells* cells, AliVCluster* clu)
{
fEMCALRecoUtils->RecalculateClusterPosition((AliEMCALGeometry*)fEMCALGeo, cells,clu);
}
void AliCalorimeterUtils::RecalculateClusterTrackMatching(AliVEvent * event,
TObjArray* clusterArray)
{
if (fRecalculateMatching)
{
fEMCALRecoUtils->FindMatches(event,clusterArray,fEMCALGeo) ;
}
}
void AliCalorimeterUtils::SplitEnergy(Int_t absId1, Int_t absId2,
AliVCluster* cluster,
AliVCaloCells* cells,
AliAODCaloCluster* cluster1,
AliAODCaloCluster* cluster2,
Int_t nMax, Int_t eventNumber)
{
TH2F* hClusterMap = 0 ;
TH2F* hClusterLocMax = 0 ;
TH2F* hCluster1 = 0 ;
TH2F* hCluster2 = 0 ;
if(fPlotCluster)
{
hClusterMap = new TH2F("hClusterMap","Cluster Map",48,0,48,24,0,24);
hClusterLocMax = new TH2F("hClusterLocMax","Cluster 2 highest local maxima",48,0,48,24,0,24);
hCluster1 = new TH2F("hCluster1","Cluster 1",48,0,48,24,0,24);
hCluster2 = new TH2F("hCluster2","Cluster 2",48,0,48,24,0,24);
hClusterMap ->SetXTitle("column");
hClusterMap ->SetYTitle("row");
hClusterLocMax ->SetXTitle("column");
hClusterLocMax ->SetYTitle("row");
hCluster1 ->SetXTitle("column");
hCluster1 ->SetYTitle("row");
hCluster2 ->SetXTitle("column");
hCluster2 ->SetYTitle("row");
}
Int_t calorimeter = kEMCAL;
if(cluster->IsPHOS())
{
calorimeter=kPHOS;
AliWarning("Not supported for PHOS yet");
return;
}
const Int_t ncells = cluster->GetNCells();
Int_t absIdList[ncells];
Float_t e1 = 0, e2 = 0 ;
Int_t icol = -1, irow = -1, iRCU = -1, sm = -1;
Float_t eCluster = 0;
Float_t minCol = 100, minRow = 100, maxCol = -1, maxRow = -1;
for(Int_t iDigit = 0; iDigit < ncells; iDigit++ )
{
absIdList[iDigit] = cluster->GetCellsAbsId()[iDigit];
Float_t ec = cells->GetCellAmplitude(absIdList[iDigit]);
RecalibrateCellAmplitude(ec,calorimeter, absIdList[iDigit]);
eCluster+=ec;
if(fPlotCluster)
{
sm = GetModuleNumberCellIndexes(absIdList[iDigit], calorimeter, icol, irow, iRCU) ;
if(sm > -1 && sm < 12)
{
if(icol > maxCol) maxCol = icol;
if(icol < minCol) minCol = icol;
if(irow > maxRow) maxRow = irow;
if(irow < minRow) minRow = irow;
hClusterMap->Fill(icol,irow,ec);
}
}
}
Int_t ncells1 = 1 ;
UShort_t absIdList1[9] ;
Double_t fracList1 [9] ;
absIdList1[0] = absId1 ;
fracList1 [0] = 1. ;
Float_t ecell1 = cells->GetCellAmplitude(absId1);
RecalibrateCellAmplitude(ecell1, calorimeter, absId1);
e1 = ecell1;
Int_t ncells2 = 1 ;
UShort_t absIdList2[9] ;
Double_t fracList2 [9] ;
absIdList2[0] = absId2 ;
fracList2 [0] = 1. ;
Float_t ecell2 = cells->GetCellAmplitude(absId2);
RecalibrateCellAmplitude(ecell2, calorimeter, absId2);
e2 = ecell2;
if(fPlotCluster)
{
Int_t icol1 = -1, irow1 = -1, icol2 = -1, irow2 = -1;
sm = GetModuleNumberCellIndexes(absId1, calorimeter, icol1, irow1, iRCU) ;
hClusterLocMax->Fill(icol1,irow1,ecell1);
sm = GetModuleNumberCellIndexes(absId2, calorimeter, icol2, irow2, iRCU) ;
hClusterLocMax->Fill(icol2,irow2,ecell2);
}
Float_t eRemain = (eCluster-ecell1-ecell2)/2;
Float_t shareFraction1 = ecell1/eCluster+eRemain/eCluster;
Float_t shareFraction2 = ecell2/eCluster+eRemain/eCluster;
for(Int_t iDigit = 0; iDigit < ncells; iDigit++)
{
Int_t absId = absIdList[iDigit];
if(absId==absId1 || absId==absId2 || absId < 0) continue;
Float_t ecell = cells->GetCellAmplitude(absId);
RecalibrateCellAmplitude(ecell, calorimeter, absId);
if(AreNeighbours(calorimeter, absId1,absId ))
{
absIdList1[ncells1]= absId;
if(AreNeighbours(calorimeter, absId2,absId ))
{
fracList1[ncells1] = shareFraction1;
e1 += ecell*shareFraction1;
}
else
{
fracList1[ncells1] = 1.;
e1 += ecell;
}
ncells1++;
}
if(AreNeighbours(calorimeter, absId2,absId ))
{
absIdList2[ncells2]= absId;
if(AreNeighbours(calorimeter, absId1,absId ))
{
fracList2[ncells2] = shareFraction2;
e2 += ecell*shareFraction2;
}
else
{
fracList2[ncells2] = 1.;
e2 += ecell;
}
ncells2++;
}
}
AliDebug(1,Form("N Local Max %d, Cluster energy = %f, Ecell1 = %f, Ecell2 = %f, Enew1 = %f, Enew2 = %f, Remain %f, \n ncells %d, ncells1 %d, ncells2 %d, f1 %f, f2 %f, sum f12 = %f",
nMax, eCluster,ecell1,ecell2,e1,e2,eCluster-e1-e2,ncells,ncells1,ncells2,shareFraction1,shareFraction2,shareFraction1+shareFraction2));
cluster1->SetE(e1);
cluster2->SetE(e2);
cluster1->SetNCells(ncells1);
cluster2->SetNCells(ncells2);
cluster1->SetCellsAbsId(absIdList1);
cluster2->SetCellsAbsId(absIdList2);
cluster1->SetCellsAmplitudeFraction(fracList1);
cluster2->SetCellsAmplitudeFraction(fracList2);
CorrectClusterEnergy(cluster1) ;
CorrectClusterEnergy(cluster2) ;
if(calorimeter==kEMCAL)
{
GetEMCALRecoUtils()->RecalculateClusterPosition(GetEMCALGeometry(), cells, cluster1);
GetEMCALRecoUtils()->RecalculateClusterPosition(GetEMCALGeometry(), cells, cluster2);
}
if(fPlotCluster)
{
for(Int_t iDigit = 0; iDigit < ncells1; iDigit++ )
{
sm = GetModuleNumberCellIndexes(absIdList1[iDigit], calorimeter, icol, irow, iRCU) ;
Float_t ecell = cells->GetCellAmplitude(absIdList1[iDigit]);
RecalibrateCellAmplitude(ecell, calorimeter, absIdList1[iDigit]);
if( AreNeighbours(calorimeter, absId2,absIdList1[iDigit]) && absId1!=absIdList1[iDigit])
hCluster1->Fill(icol,irow,ecell*shareFraction1);
else
hCluster1->Fill(icol,irow,ecell);
}
for(Int_t iDigit = 0; iDigit < ncells2; iDigit++ )
{
sm = GetModuleNumberCellIndexes(absIdList2[iDigit], calorimeter, icol, irow, iRCU) ;
Float_t ecell = cells->GetCellAmplitude(absIdList2[iDigit]);
RecalibrateCellAmplitude(ecell, calorimeter, absIdList2[iDigit]);
if( AreNeighbours(calorimeter, absId1,absIdList2[iDigit]) && absId2!=absIdList2[iDigit])
hCluster2->Fill(icol,irow,ecell*shareFraction2);
else
hCluster2->Fill(icol,irow,ecell);
}
gStyle->SetPadRightMargin(0.1);
gStyle->SetPadLeftMargin(0.1);
gStyle->SetOptStat(0);
gStyle->SetOptFit(000000);
if(maxCol-minCol > maxRow-minRow)
{
maxRow+= maxCol-minCol;
}
else
{
maxCol+= maxRow-minRow;
}
TCanvas * c= new TCanvas("canvas", "canvas", 4000, 4000) ;
c->Divide(2,2);
c->cd(1);
gPad->SetGridy();
gPad->SetGridx();
gPad->SetLogz();
hClusterMap ->SetAxisRange(minCol, maxCol,"X");
hClusterMap ->SetAxisRange(minRow, maxRow,"Y");
hClusterMap ->Draw("colz TEXT");
c->cd(2);
gPad->SetGridy();
gPad->SetGridx();
gPad->SetLogz();
hClusterLocMax ->SetAxisRange(minCol, maxCol,"X");
hClusterLocMax ->SetAxisRange(minRow, maxRow,"Y");
hClusterLocMax ->Draw("colz TEXT");
c->cd(3);
gPad->SetGridy();
gPad->SetGridx();
gPad->SetLogz();
hCluster1 ->SetAxisRange(minCol, maxCol,"X");
hCluster1 ->SetAxisRange(minRow, maxRow,"Y");
hCluster1 ->Draw("colz TEXT");
c->cd(4);
gPad->SetGridy();
gPad->SetGridx();
gPad->SetLogz();
hCluster2 ->SetAxisRange(minCol, maxCol,"X");
hCluster2 ->SetAxisRange(minRow, maxRow,"Y");
hCluster2 ->Draw("colz TEXT");
if(eCluster > 6 )c->Print(Form("clusterFigures/Event%d_E%1.0f_nMax%d_NCell1_%d_NCell2_%d.eps",
eventNumber,cluster->E(),nMax,ncells1,ncells2));
delete c;
delete hClusterMap;
delete hClusterLocMax;
delete hCluster1;
delete hCluster2;
}
}
AliCalorimeterUtils.cxx:1 AliCalorimeterUtils.cxx:2 AliCalorimeterUtils.cxx:3 AliCalorimeterUtils.cxx:4 AliCalorimeterUtils.cxx:5 AliCalorimeterUtils.cxx:6 AliCalorimeterUtils.cxx:7 AliCalorimeterUtils.cxx:8 AliCalorimeterUtils.cxx:9 AliCalorimeterUtils.cxx:10 AliCalorimeterUtils.cxx:11 AliCalorimeterUtils.cxx:12 AliCalorimeterUtils.cxx:13 AliCalorimeterUtils.cxx:14 AliCalorimeterUtils.cxx:15 AliCalorimeterUtils.cxx:16 AliCalorimeterUtils.cxx:17 AliCalorimeterUtils.cxx:18 AliCalorimeterUtils.cxx:19 AliCalorimeterUtils.cxx:20 AliCalorimeterUtils.cxx:21 AliCalorimeterUtils.cxx:22 AliCalorimeterUtils.cxx:23 AliCalorimeterUtils.cxx:24 AliCalorimeterUtils.cxx:25 AliCalorimeterUtils.cxx:26 AliCalorimeterUtils.cxx:27 AliCalorimeterUtils.cxx:28 AliCalorimeterUtils.cxx:29 AliCalorimeterUtils.cxx:30 AliCalorimeterUtils.cxx:31 AliCalorimeterUtils.cxx:32 AliCalorimeterUtils.cxx:33 AliCalorimeterUtils.cxx:34 AliCalorimeterUtils.cxx:35 AliCalorimeterUtils.cxx:36 AliCalorimeterUtils.cxx:37 AliCalorimeterUtils.cxx:38 AliCalorimeterUtils.cxx:39 AliCalorimeterUtils.cxx:40 AliCalorimeterUtils.cxx:41 AliCalorimeterUtils.cxx:42 AliCalorimeterUtils.cxx:43 AliCalorimeterUtils.cxx:44 AliCalorimeterUtils.cxx:45 AliCalorimeterUtils.cxx:46 AliCalorimeterUtils.cxx:47 AliCalorimeterUtils.cxx:48 AliCalorimeterUtils.cxx:49 AliCalorimeterUtils.cxx:50 AliCalorimeterUtils.cxx:51 AliCalorimeterUtils.cxx:52 AliCalorimeterUtils.cxx:53 AliCalorimeterUtils.cxx:54 AliCalorimeterUtils.cxx:55 AliCalorimeterUtils.cxx:56 AliCalorimeterUtils.cxx:57 AliCalorimeterUtils.cxx:58 AliCalorimeterUtils.cxx:59 AliCalorimeterUtils.cxx:60 AliCalorimeterUtils.cxx:61 AliCalorimeterUtils.cxx:62 AliCalorimeterUtils.cxx:63 AliCalorimeterUtils.cxx:64 AliCalorimeterUtils.cxx:65 AliCalorimeterUtils.cxx:66 AliCalorimeterUtils.cxx:67 AliCalorimeterUtils.cxx:68 AliCalorimeterUtils.cxx:69 AliCalorimeterUtils.cxx:70 AliCalorimeterUtils.cxx:71 AliCalorimeterUtils.cxx:72 AliCalorimeterUtils.cxx:73 AliCalorimeterUtils.cxx:74 AliCalorimeterUtils.cxx:75 AliCalorimeterUtils.cxx:76 AliCalorimeterUtils.cxx:77 AliCalorimeterUtils.cxx:78 AliCalorimeterUtils.cxx:79 AliCalorimeterUtils.cxx:80 AliCalorimeterUtils.cxx:81 AliCalorimeterUtils.cxx:82 AliCalorimeterUtils.cxx:83 AliCalorimeterUtils.cxx:84 AliCalorimeterUtils.cxx:85 AliCalorimeterUtils.cxx:86 AliCalorimeterUtils.cxx:87 AliCalorimeterUtils.cxx:88 AliCalorimeterUtils.cxx:89 AliCalorimeterUtils.cxx:90 AliCalorimeterUtils.cxx:91 AliCalorimeterUtils.cxx:92 AliCalorimeterUtils.cxx:93 AliCalorimeterUtils.cxx:94 AliCalorimeterUtils.cxx:95 AliCalorimeterUtils.cxx:96 AliCalorimeterUtils.cxx:97 AliCalorimeterUtils.cxx:98 AliCalorimeterUtils.cxx:99 AliCalorimeterUtils.cxx:100 AliCalorimeterUtils.cxx:101 AliCalorimeterUtils.cxx:102 AliCalorimeterUtils.cxx:103 AliCalorimeterUtils.cxx:104 AliCalorimeterUtils.cxx:105 AliCalorimeterUtils.cxx:106 AliCalorimeterUtils.cxx:107 AliCalorimeterUtils.cxx:108 AliCalorimeterUtils.cxx:109 AliCalorimeterUtils.cxx:110 AliCalorimeterUtils.cxx:111 AliCalorimeterUtils.cxx:112 AliCalorimeterUtils.cxx:113 AliCalorimeterUtils.cxx:114 AliCalorimeterUtils.cxx:115 AliCalorimeterUtils.cxx:116 AliCalorimeterUtils.cxx:117 AliCalorimeterUtils.cxx:118 AliCalorimeterUtils.cxx:119 AliCalorimeterUtils.cxx:120 AliCalorimeterUtils.cxx:121 AliCalorimeterUtils.cxx:122 AliCalorimeterUtils.cxx:123 AliCalorimeterUtils.cxx:124 AliCalorimeterUtils.cxx:125 AliCalorimeterUtils.cxx:126 AliCalorimeterUtils.cxx:127 AliCalorimeterUtils.cxx:128 AliCalorimeterUtils.cxx:129 AliCalorimeterUtils.cxx:130 AliCalorimeterUtils.cxx:131 AliCalorimeterUtils.cxx:132 AliCalorimeterUtils.cxx:133 AliCalorimeterUtils.cxx:134 AliCalorimeterUtils.cxx:135 AliCalorimeterUtils.cxx:136 AliCalorimeterUtils.cxx:137 AliCalorimeterUtils.cxx:138 AliCalorimeterUtils.cxx:139 AliCalorimeterUtils.cxx:140 AliCalorimeterUtils.cxx:141 AliCalorimeterUtils.cxx:142 AliCalorimeterUtils.cxx:143 AliCalorimeterUtils.cxx:144 AliCalorimeterUtils.cxx:145 AliCalorimeterUtils.cxx:146 AliCalorimeterUtils.cxx:147 AliCalorimeterUtils.cxx:148 AliCalorimeterUtils.cxx:149 AliCalorimeterUtils.cxx:150 AliCalorimeterUtils.cxx:151 AliCalorimeterUtils.cxx:152 AliCalorimeterUtils.cxx:153 AliCalorimeterUtils.cxx:154 AliCalorimeterUtils.cxx:155 AliCalorimeterUtils.cxx:156 AliCalorimeterUtils.cxx:157 AliCalorimeterUtils.cxx:158 AliCalorimeterUtils.cxx:159 AliCalorimeterUtils.cxx:160 AliCalorimeterUtils.cxx:161 AliCalorimeterUtils.cxx:162 AliCalorimeterUtils.cxx:163 AliCalorimeterUtils.cxx:164 AliCalorimeterUtils.cxx:165 AliCalorimeterUtils.cxx:166 AliCalorimeterUtils.cxx:167 AliCalorimeterUtils.cxx:168 AliCalorimeterUtils.cxx:169 AliCalorimeterUtils.cxx:170 AliCalorimeterUtils.cxx:171 AliCalorimeterUtils.cxx:172 AliCalorimeterUtils.cxx:173 AliCalorimeterUtils.cxx:174 AliCalorimeterUtils.cxx:175 AliCalorimeterUtils.cxx:176 AliCalorimeterUtils.cxx:177 AliCalorimeterUtils.cxx:178 AliCalorimeterUtils.cxx:179 AliCalorimeterUtils.cxx:180 AliCalorimeterUtils.cxx:181 AliCalorimeterUtils.cxx:182 AliCalorimeterUtils.cxx:183 AliCalorimeterUtils.cxx:184 AliCalorimeterUtils.cxx:185 AliCalorimeterUtils.cxx:186 AliCalorimeterUtils.cxx:187 AliCalorimeterUtils.cxx:188 AliCalorimeterUtils.cxx:189 AliCalorimeterUtils.cxx:190 AliCalorimeterUtils.cxx:191 AliCalorimeterUtils.cxx:192 AliCalorimeterUtils.cxx:193 AliCalorimeterUtils.cxx:194 AliCalorimeterUtils.cxx:195 AliCalorimeterUtils.cxx:196 AliCalorimeterUtils.cxx:197 AliCalorimeterUtils.cxx:198 AliCalorimeterUtils.cxx:199 AliCalorimeterUtils.cxx:200 AliCalorimeterUtils.cxx:201 AliCalorimeterUtils.cxx:202 AliCalorimeterUtils.cxx:203 AliCalorimeterUtils.cxx:204 AliCalorimeterUtils.cxx:205 AliCalorimeterUtils.cxx:206 AliCalorimeterUtils.cxx:207 AliCalorimeterUtils.cxx:208 AliCalorimeterUtils.cxx:209 AliCalorimeterUtils.cxx:210 AliCalorimeterUtils.cxx:211 AliCalorimeterUtils.cxx:212 AliCalorimeterUtils.cxx:213 AliCalorimeterUtils.cxx:214 AliCalorimeterUtils.cxx:215 AliCalorimeterUtils.cxx:216 AliCalorimeterUtils.cxx:217 AliCalorimeterUtils.cxx:218 AliCalorimeterUtils.cxx:219 AliCalorimeterUtils.cxx:220 AliCalorimeterUtils.cxx:221 AliCalorimeterUtils.cxx:222 AliCalorimeterUtils.cxx:223 AliCalorimeterUtils.cxx:224 AliCalorimeterUtils.cxx:225 AliCalorimeterUtils.cxx:226 AliCalorimeterUtils.cxx:227 AliCalorimeterUtils.cxx:228 AliCalorimeterUtils.cxx:229 AliCalorimeterUtils.cxx:230 AliCalorimeterUtils.cxx:231 AliCalorimeterUtils.cxx:232 AliCalorimeterUtils.cxx:233 AliCalorimeterUtils.cxx:234 AliCalorimeterUtils.cxx:235 AliCalorimeterUtils.cxx:236 AliCalorimeterUtils.cxx:237 AliCalorimeterUtils.cxx:238 AliCalorimeterUtils.cxx:239 AliCalorimeterUtils.cxx:240 AliCalorimeterUtils.cxx:241 AliCalorimeterUtils.cxx:242 AliCalorimeterUtils.cxx:243 AliCalorimeterUtils.cxx:244 AliCalorimeterUtils.cxx:245 AliCalorimeterUtils.cxx:246 AliCalorimeterUtils.cxx:247 AliCalorimeterUtils.cxx:248 AliCalorimeterUtils.cxx:249 AliCalorimeterUtils.cxx:250 AliCalorimeterUtils.cxx:251 AliCalorimeterUtils.cxx:252 AliCalorimeterUtils.cxx:253 AliCalorimeterUtils.cxx:254 AliCalorimeterUtils.cxx:255 AliCalorimeterUtils.cxx:256 AliCalorimeterUtils.cxx:257 AliCalorimeterUtils.cxx:258 AliCalorimeterUtils.cxx:259 AliCalorimeterUtils.cxx:260 AliCalorimeterUtils.cxx:261 AliCalorimeterUtils.cxx:262 AliCalorimeterUtils.cxx:263 AliCalorimeterUtils.cxx:264 AliCalorimeterUtils.cxx:265 AliCalorimeterUtils.cxx:266 AliCalorimeterUtils.cxx:267 AliCalorimeterUtils.cxx:268 AliCalorimeterUtils.cxx:269 AliCalorimeterUtils.cxx:270 AliCalorimeterUtils.cxx:271 AliCalorimeterUtils.cxx:272 AliCalorimeterUtils.cxx:273 AliCalorimeterUtils.cxx:274 AliCalorimeterUtils.cxx:275 AliCalorimeterUtils.cxx:276 AliCalorimeterUtils.cxx:277 AliCalorimeterUtils.cxx:278 AliCalorimeterUtils.cxx:279 AliCalorimeterUtils.cxx:280 AliCalorimeterUtils.cxx:281 AliCalorimeterUtils.cxx:282 AliCalorimeterUtils.cxx:283 AliCalorimeterUtils.cxx:284 AliCalorimeterUtils.cxx:285 AliCalorimeterUtils.cxx:286 AliCalorimeterUtils.cxx:287 AliCalorimeterUtils.cxx:288 AliCalorimeterUtils.cxx:289 AliCalorimeterUtils.cxx:290 AliCalorimeterUtils.cxx:291 AliCalorimeterUtils.cxx:292 AliCalorimeterUtils.cxx:293 AliCalorimeterUtils.cxx:294 AliCalorimeterUtils.cxx:295 AliCalorimeterUtils.cxx:296 AliCalorimeterUtils.cxx:297 AliCalorimeterUtils.cxx:298 AliCalorimeterUtils.cxx:299 AliCalorimeterUtils.cxx:300 AliCalorimeterUtils.cxx:301 AliCalorimeterUtils.cxx:302 AliCalorimeterUtils.cxx:303 AliCalorimeterUtils.cxx:304 AliCalorimeterUtils.cxx:305 AliCalorimeterUtils.cxx:306 AliCalorimeterUtils.cxx:307 AliCalorimeterUtils.cxx:308 AliCalorimeterUtils.cxx:309 AliCalorimeterUtils.cxx:310 AliCalorimeterUtils.cxx:311 AliCalorimeterUtils.cxx:312 AliCalorimeterUtils.cxx:313 AliCalorimeterUtils.cxx:314 AliCalorimeterUtils.cxx:315 AliCalorimeterUtils.cxx:316 AliCalorimeterUtils.cxx:317 AliCalorimeterUtils.cxx:318 AliCalorimeterUtils.cxx:319 AliCalorimeterUtils.cxx:320 AliCalorimeterUtils.cxx:321 AliCalorimeterUtils.cxx:322 AliCalorimeterUtils.cxx:323 AliCalorimeterUtils.cxx:324 AliCalorimeterUtils.cxx:325 AliCalorimeterUtils.cxx:326 AliCalorimeterUtils.cxx:327 AliCalorimeterUtils.cxx:328 AliCalorimeterUtils.cxx:329 AliCalorimeterUtils.cxx:330 AliCalorimeterUtils.cxx:331 AliCalorimeterUtils.cxx:332 AliCalorimeterUtils.cxx:333 AliCalorimeterUtils.cxx:334 AliCalorimeterUtils.cxx:335 AliCalorimeterUtils.cxx:336 AliCalorimeterUtils.cxx:337 AliCalorimeterUtils.cxx:338 AliCalorimeterUtils.cxx:339 AliCalorimeterUtils.cxx:340 AliCalorimeterUtils.cxx:341 AliCalorimeterUtils.cxx:342 AliCalorimeterUtils.cxx:343 AliCalorimeterUtils.cxx:344 AliCalorimeterUtils.cxx:345 AliCalorimeterUtils.cxx:346 AliCalorimeterUtils.cxx:347 AliCalorimeterUtils.cxx:348 AliCalorimeterUtils.cxx:349 AliCalorimeterUtils.cxx:350 AliCalorimeterUtils.cxx:351 AliCalorimeterUtils.cxx:352 AliCalorimeterUtils.cxx:353 AliCalorimeterUtils.cxx:354 AliCalorimeterUtils.cxx:355 AliCalorimeterUtils.cxx:356 AliCalorimeterUtils.cxx:357 AliCalorimeterUtils.cxx:358 AliCalorimeterUtils.cxx:359 AliCalorimeterUtils.cxx:360 AliCalorimeterUtils.cxx:361 AliCalorimeterUtils.cxx:362 AliCalorimeterUtils.cxx:363 AliCalorimeterUtils.cxx:364 AliCalorimeterUtils.cxx:365 AliCalorimeterUtils.cxx:366 AliCalorimeterUtils.cxx:367 AliCalorimeterUtils.cxx:368 AliCalorimeterUtils.cxx:369 AliCalorimeterUtils.cxx:370 AliCalorimeterUtils.cxx:371 AliCalorimeterUtils.cxx:372 AliCalorimeterUtils.cxx:373 AliCalorimeterUtils.cxx:374 AliCalorimeterUtils.cxx:375 AliCalorimeterUtils.cxx:376 AliCalorimeterUtils.cxx:377 AliCalorimeterUtils.cxx:378 AliCalorimeterUtils.cxx:379 AliCalorimeterUtils.cxx:380 AliCalorimeterUtils.cxx:381 AliCalorimeterUtils.cxx:382 AliCalorimeterUtils.cxx:383 AliCalorimeterUtils.cxx:384 AliCalorimeterUtils.cxx:385 AliCalorimeterUtils.cxx:386 AliCalorimeterUtils.cxx:387 AliCalorimeterUtils.cxx:388 AliCalorimeterUtils.cxx:389 AliCalorimeterUtils.cxx:390 AliCalorimeterUtils.cxx:391 AliCalorimeterUtils.cxx:392 AliCalorimeterUtils.cxx:393 AliCalorimeterUtils.cxx:394 AliCalorimeterUtils.cxx:395 AliCalorimeterUtils.cxx:396 AliCalorimeterUtils.cxx:397 AliCalorimeterUtils.cxx:398 AliCalorimeterUtils.cxx:399 AliCalorimeterUtils.cxx:400 AliCalorimeterUtils.cxx:401 AliCalorimeterUtils.cxx:402 AliCalorimeterUtils.cxx:403 AliCalorimeterUtils.cxx:404 AliCalorimeterUtils.cxx:405 AliCalorimeterUtils.cxx:406 AliCalorimeterUtils.cxx:407 AliCalorimeterUtils.cxx:408 AliCalorimeterUtils.cxx:409 AliCalorimeterUtils.cxx:410 AliCalorimeterUtils.cxx:411 AliCalorimeterUtils.cxx:412 AliCalorimeterUtils.cxx:413 AliCalorimeterUtils.cxx:414 AliCalorimeterUtils.cxx:415 AliCalorimeterUtils.cxx:416 AliCalorimeterUtils.cxx:417 AliCalorimeterUtils.cxx:418 AliCalorimeterUtils.cxx:419 AliCalorimeterUtils.cxx:420 AliCalorimeterUtils.cxx:421 AliCalorimeterUtils.cxx:422 AliCalorimeterUtils.cxx:423 AliCalorimeterUtils.cxx:424 AliCalorimeterUtils.cxx:425 AliCalorimeterUtils.cxx:426 AliCalorimeterUtils.cxx:427 AliCalorimeterUtils.cxx:428 AliCalorimeterUtils.cxx:429 AliCalorimeterUtils.cxx:430 AliCalorimeterUtils.cxx:431 AliCalorimeterUtils.cxx:432 AliCalorimeterUtils.cxx:433 AliCalorimeterUtils.cxx:434 AliCalorimeterUtils.cxx:435 AliCalorimeterUtils.cxx:436 AliCalorimeterUtils.cxx:437 AliCalorimeterUtils.cxx:438 AliCalorimeterUtils.cxx:439 AliCalorimeterUtils.cxx:440 AliCalorimeterUtils.cxx:441 AliCalorimeterUtils.cxx:442 AliCalorimeterUtils.cxx:443 AliCalorimeterUtils.cxx:444 AliCalorimeterUtils.cxx:445 AliCalorimeterUtils.cxx:446 AliCalorimeterUtils.cxx:447 AliCalorimeterUtils.cxx:448 AliCalorimeterUtils.cxx:449 AliCalorimeterUtils.cxx:450 AliCalorimeterUtils.cxx:451 AliCalorimeterUtils.cxx:452 AliCalorimeterUtils.cxx:453 AliCalorimeterUtils.cxx:454 AliCalorimeterUtils.cxx:455 AliCalorimeterUtils.cxx:456 AliCalorimeterUtils.cxx:457 AliCalorimeterUtils.cxx:458 AliCalorimeterUtils.cxx:459 AliCalorimeterUtils.cxx:460 AliCalorimeterUtils.cxx:461 AliCalorimeterUtils.cxx:462 AliCalorimeterUtils.cxx:463 AliCalorimeterUtils.cxx:464 AliCalorimeterUtils.cxx:465 AliCalorimeterUtils.cxx:466 AliCalorimeterUtils.cxx:467 AliCalorimeterUtils.cxx:468 AliCalorimeterUtils.cxx:469 AliCalorimeterUtils.cxx:470 AliCalorimeterUtils.cxx:471 AliCalorimeterUtils.cxx:472 AliCalorimeterUtils.cxx:473 AliCalorimeterUtils.cxx:474 AliCalorimeterUtils.cxx:475 AliCalorimeterUtils.cxx:476 AliCalorimeterUtils.cxx:477 AliCalorimeterUtils.cxx:478 AliCalorimeterUtils.cxx:479 AliCalorimeterUtils.cxx:480 AliCalorimeterUtils.cxx:481 AliCalorimeterUtils.cxx:482 AliCalorimeterUtils.cxx:483 AliCalorimeterUtils.cxx:484 AliCalorimeterUtils.cxx:485 AliCalorimeterUtils.cxx:486 AliCalorimeterUtils.cxx:487 AliCalorimeterUtils.cxx:488 AliCalorimeterUtils.cxx:489 AliCalorimeterUtils.cxx:490 AliCalorimeterUtils.cxx:491 AliCalorimeterUtils.cxx:492 AliCalorimeterUtils.cxx:493 AliCalorimeterUtils.cxx:494 AliCalorimeterUtils.cxx:495 AliCalorimeterUtils.cxx:496 AliCalorimeterUtils.cxx:497 AliCalorimeterUtils.cxx:498 AliCalorimeterUtils.cxx:499 AliCalorimeterUtils.cxx:500 AliCalorimeterUtils.cxx:501 AliCalorimeterUtils.cxx:502 AliCalorimeterUtils.cxx:503 AliCalorimeterUtils.cxx:504 AliCalorimeterUtils.cxx:505 AliCalorimeterUtils.cxx:506 AliCalorimeterUtils.cxx:507 AliCalorimeterUtils.cxx:508 AliCalorimeterUtils.cxx:509 AliCalorimeterUtils.cxx:510 AliCalorimeterUtils.cxx:511 AliCalorimeterUtils.cxx:512 AliCalorimeterUtils.cxx:513 AliCalorimeterUtils.cxx:514 AliCalorimeterUtils.cxx:515 AliCalorimeterUtils.cxx:516 AliCalorimeterUtils.cxx:517 AliCalorimeterUtils.cxx:518 AliCalorimeterUtils.cxx:519 AliCalorimeterUtils.cxx:520 AliCalorimeterUtils.cxx:521 AliCalorimeterUtils.cxx:522 AliCalorimeterUtils.cxx:523 AliCalorimeterUtils.cxx:524 AliCalorimeterUtils.cxx:525 AliCalorimeterUtils.cxx:526 AliCalorimeterUtils.cxx:527 AliCalorimeterUtils.cxx:528 AliCalorimeterUtils.cxx:529 AliCalorimeterUtils.cxx:530 AliCalorimeterUtils.cxx:531 AliCalorimeterUtils.cxx:532 AliCalorimeterUtils.cxx:533 AliCalorimeterUtils.cxx:534 AliCalorimeterUtils.cxx:535 AliCalorimeterUtils.cxx:536 AliCalorimeterUtils.cxx:537 AliCalorimeterUtils.cxx:538 AliCalorimeterUtils.cxx:539 AliCalorimeterUtils.cxx:540 AliCalorimeterUtils.cxx:541 AliCalorimeterUtils.cxx:542 AliCalorimeterUtils.cxx:543 AliCalorimeterUtils.cxx:544 AliCalorimeterUtils.cxx:545 AliCalorimeterUtils.cxx:546 AliCalorimeterUtils.cxx:547 AliCalorimeterUtils.cxx:548 AliCalorimeterUtils.cxx:549 AliCalorimeterUtils.cxx:550 AliCalorimeterUtils.cxx:551 AliCalorimeterUtils.cxx:552 AliCalorimeterUtils.cxx:553 AliCalorimeterUtils.cxx:554 AliCalorimeterUtils.cxx:555 AliCalorimeterUtils.cxx:556 AliCalorimeterUtils.cxx:557 AliCalorimeterUtils.cxx:558 AliCalorimeterUtils.cxx:559 AliCalorimeterUtils.cxx:560 AliCalorimeterUtils.cxx:561 AliCalorimeterUtils.cxx:562 AliCalorimeterUtils.cxx:563 AliCalorimeterUtils.cxx:564 AliCalorimeterUtils.cxx:565 AliCalorimeterUtils.cxx:566 AliCalorimeterUtils.cxx:567 AliCalorimeterUtils.cxx:568 AliCalorimeterUtils.cxx:569 AliCalorimeterUtils.cxx:570 AliCalorimeterUtils.cxx:571 AliCalorimeterUtils.cxx:572 AliCalorimeterUtils.cxx:573 AliCalorimeterUtils.cxx:574 AliCalorimeterUtils.cxx:575 AliCalorimeterUtils.cxx:576 AliCalorimeterUtils.cxx:577 AliCalorimeterUtils.cxx:578 AliCalorimeterUtils.cxx:579 AliCalorimeterUtils.cxx:580 AliCalorimeterUtils.cxx:581 AliCalorimeterUtils.cxx:582 AliCalorimeterUtils.cxx:583 AliCalorimeterUtils.cxx:584 AliCalorimeterUtils.cxx:585 AliCalorimeterUtils.cxx:586 AliCalorimeterUtils.cxx:587 AliCalorimeterUtils.cxx:588 AliCalorimeterUtils.cxx:589 AliCalorimeterUtils.cxx:590 AliCalorimeterUtils.cxx:591 AliCalorimeterUtils.cxx:592 AliCalorimeterUtils.cxx:593 AliCalorimeterUtils.cxx:594 AliCalorimeterUtils.cxx:595 AliCalorimeterUtils.cxx:596 AliCalorimeterUtils.cxx:597 AliCalorimeterUtils.cxx:598 AliCalorimeterUtils.cxx:599 AliCalorimeterUtils.cxx:600 AliCalorimeterUtils.cxx:601 AliCalorimeterUtils.cxx:602 AliCalorimeterUtils.cxx:603 AliCalorimeterUtils.cxx:604 AliCalorimeterUtils.cxx:605 AliCalorimeterUtils.cxx:606 AliCalorimeterUtils.cxx:607 AliCalorimeterUtils.cxx:608 AliCalorimeterUtils.cxx:609 AliCalorimeterUtils.cxx:610 AliCalorimeterUtils.cxx:611 AliCalorimeterUtils.cxx:612 AliCalorimeterUtils.cxx:613 AliCalorimeterUtils.cxx:614 AliCalorimeterUtils.cxx:615 AliCalorimeterUtils.cxx:616 AliCalorimeterUtils.cxx:617 AliCalorimeterUtils.cxx:618 AliCalorimeterUtils.cxx:619 AliCalorimeterUtils.cxx:620 AliCalorimeterUtils.cxx:621 AliCalorimeterUtils.cxx:622 AliCalorimeterUtils.cxx:623 AliCalorimeterUtils.cxx:624 AliCalorimeterUtils.cxx:625 AliCalorimeterUtils.cxx:626 AliCalorimeterUtils.cxx:627 AliCalorimeterUtils.cxx:628 AliCalorimeterUtils.cxx:629 AliCalorimeterUtils.cxx:630 AliCalorimeterUtils.cxx:631 AliCalorimeterUtils.cxx:632 AliCalorimeterUtils.cxx:633 AliCalorimeterUtils.cxx:634 AliCalorimeterUtils.cxx:635 AliCalorimeterUtils.cxx:636 AliCalorimeterUtils.cxx:637 AliCalorimeterUtils.cxx:638 AliCalorimeterUtils.cxx:639 AliCalorimeterUtils.cxx:640 AliCalorimeterUtils.cxx:641 AliCalorimeterUtils.cxx:642 AliCalorimeterUtils.cxx:643 AliCalorimeterUtils.cxx:644 AliCalorimeterUtils.cxx:645 AliCalorimeterUtils.cxx:646 AliCalorimeterUtils.cxx:647 AliCalorimeterUtils.cxx:648 AliCalorimeterUtils.cxx:649 AliCalorimeterUtils.cxx:650 AliCalorimeterUtils.cxx:651 AliCalorimeterUtils.cxx:652 AliCalorimeterUtils.cxx:653 AliCalorimeterUtils.cxx:654 AliCalorimeterUtils.cxx:655 AliCalorimeterUtils.cxx:656 AliCalorimeterUtils.cxx:657 AliCalorimeterUtils.cxx:658 AliCalorimeterUtils.cxx:659 AliCalorimeterUtils.cxx:660 AliCalorimeterUtils.cxx:661 AliCalorimeterUtils.cxx:662 AliCalorimeterUtils.cxx:663 AliCalorimeterUtils.cxx:664 AliCalorimeterUtils.cxx:665 AliCalorimeterUtils.cxx:666 AliCalorimeterUtils.cxx:667 AliCalorimeterUtils.cxx:668 AliCalorimeterUtils.cxx:669 AliCalorimeterUtils.cxx:670 AliCalorimeterUtils.cxx:671 AliCalorimeterUtils.cxx:672 AliCalorimeterUtils.cxx:673 AliCalorimeterUtils.cxx:674 AliCalorimeterUtils.cxx:675 AliCalorimeterUtils.cxx:676 AliCalorimeterUtils.cxx:677 AliCalorimeterUtils.cxx:678 AliCalorimeterUtils.cxx:679 AliCalorimeterUtils.cxx:680 AliCalorimeterUtils.cxx:681 AliCalorimeterUtils.cxx:682 AliCalorimeterUtils.cxx:683 AliCalorimeterUtils.cxx:684 AliCalorimeterUtils.cxx:685 AliCalorimeterUtils.cxx:686 AliCalorimeterUtils.cxx:687 AliCalorimeterUtils.cxx:688 AliCalorimeterUtils.cxx:689 AliCalorimeterUtils.cxx:690 AliCalorimeterUtils.cxx:691 AliCalorimeterUtils.cxx:692 AliCalorimeterUtils.cxx:693 AliCalorimeterUtils.cxx:694 AliCalorimeterUtils.cxx:695 AliCalorimeterUtils.cxx:696 AliCalorimeterUtils.cxx:697 AliCalorimeterUtils.cxx:698 AliCalorimeterUtils.cxx:699 AliCalorimeterUtils.cxx:700 AliCalorimeterUtils.cxx:701 AliCalorimeterUtils.cxx:702 AliCalorimeterUtils.cxx:703 AliCalorimeterUtils.cxx:704 AliCalorimeterUtils.cxx:705 AliCalorimeterUtils.cxx:706 AliCalorimeterUtils.cxx:707 AliCalorimeterUtils.cxx:708 AliCalorimeterUtils.cxx:709 AliCalorimeterUtils.cxx:710 AliCalorimeterUtils.cxx:711 AliCalorimeterUtils.cxx:712 AliCalorimeterUtils.cxx:713 AliCalorimeterUtils.cxx:714 AliCalorimeterUtils.cxx:715 AliCalorimeterUtils.cxx:716 AliCalorimeterUtils.cxx:717 AliCalorimeterUtils.cxx:718 AliCalorimeterUtils.cxx:719 AliCalorimeterUtils.cxx:720 AliCalorimeterUtils.cxx:721 AliCalorimeterUtils.cxx:722 AliCalorimeterUtils.cxx:723 AliCalorimeterUtils.cxx:724 AliCalorimeterUtils.cxx:725 AliCalorimeterUtils.cxx:726 AliCalorimeterUtils.cxx:727 AliCalorimeterUtils.cxx:728 AliCalorimeterUtils.cxx:729 AliCalorimeterUtils.cxx:730 AliCalorimeterUtils.cxx:731 AliCalorimeterUtils.cxx:732 AliCalorimeterUtils.cxx:733 AliCalorimeterUtils.cxx:734 AliCalorimeterUtils.cxx:735 AliCalorimeterUtils.cxx:736 AliCalorimeterUtils.cxx:737 AliCalorimeterUtils.cxx:738 AliCalorimeterUtils.cxx:739 AliCalorimeterUtils.cxx:740 AliCalorimeterUtils.cxx:741 AliCalorimeterUtils.cxx:742 AliCalorimeterUtils.cxx:743 AliCalorimeterUtils.cxx:744 AliCalorimeterUtils.cxx:745 AliCalorimeterUtils.cxx:746 AliCalorimeterUtils.cxx:747 AliCalorimeterUtils.cxx:748 AliCalorimeterUtils.cxx:749 AliCalorimeterUtils.cxx:750 AliCalorimeterUtils.cxx:751 AliCalorimeterUtils.cxx:752 AliCalorimeterUtils.cxx:753 AliCalorimeterUtils.cxx:754 AliCalorimeterUtils.cxx:755 AliCalorimeterUtils.cxx:756 AliCalorimeterUtils.cxx:757 AliCalorimeterUtils.cxx:758 AliCalorimeterUtils.cxx:759 AliCalorimeterUtils.cxx:760 AliCalorimeterUtils.cxx:761 AliCalorimeterUtils.cxx:762 AliCalorimeterUtils.cxx:763 AliCalorimeterUtils.cxx:764 AliCalorimeterUtils.cxx:765 AliCalorimeterUtils.cxx:766 AliCalorimeterUtils.cxx:767 AliCalorimeterUtils.cxx:768 AliCalorimeterUtils.cxx:769 AliCalorimeterUtils.cxx:770 AliCalorimeterUtils.cxx:771 AliCalorimeterUtils.cxx:772 AliCalorimeterUtils.cxx:773 AliCalorimeterUtils.cxx:774 AliCalorimeterUtils.cxx:775 AliCalorimeterUtils.cxx:776 AliCalorimeterUtils.cxx:777 AliCalorimeterUtils.cxx:778 AliCalorimeterUtils.cxx:779 AliCalorimeterUtils.cxx:780 AliCalorimeterUtils.cxx:781 AliCalorimeterUtils.cxx:782 AliCalorimeterUtils.cxx:783 AliCalorimeterUtils.cxx:784 AliCalorimeterUtils.cxx:785 AliCalorimeterUtils.cxx:786 AliCalorimeterUtils.cxx:787 AliCalorimeterUtils.cxx:788 AliCalorimeterUtils.cxx:789 AliCalorimeterUtils.cxx:790 AliCalorimeterUtils.cxx:791 AliCalorimeterUtils.cxx:792 AliCalorimeterUtils.cxx:793 AliCalorimeterUtils.cxx:794 AliCalorimeterUtils.cxx:795 AliCalorimeterUtils.cxx:796 AliCalorimeterUtils.cxx:797 AliCalorimeterUtils.cxx:798 AliCalorimeterUtils.cxx:799 AliCalorimeterUtils.cxx:800 AliCalorimeterUtils.cxx:801 AliCalorimeterUtils.cxx:802 AliCalorimeterUtils.cxx:803 AliCalorimeterUtils.cxx:804 AliCalorimeterUtils.cxx:805 AliCalorimeterUtils.cxx:806 AliCalorimeterUtils.cxx:807 AliCalorimeterUtils.cxx:808 AliCalorimeterUtils.cxx:809 AliCalorimeterUtils.cxx:810 AliCalorimeterUtils.cxx:811 AliCalorimeterUtils.cxx:812 AliCalorimeterUtils.cxx:813 AliCalorimeterUtils.cxx:814 AliCalorimeterUtils.cxx:815 AliCalorimeterUtils.cxx:816 AliCalorimeterUtils.cxx:817 AliCalorimeterUtils.cxx:818 AliCalorimeterUtils.cxx:819 AliCalorimeterUtils.cxx:820 AliCalorimeterUtils.cxx:821 AliCalorimeterUtils.cxx:822 AliCalorimeterUtils.cxx:823 AliCalorimeterUtils.cxx:824 AliCalorimeterUtils.cxx:825 AliCalorimeterUtils.cxx:826 AliCalorimeterUtils.cxx:827 AliCalorimeterUtils.cxx:828 AliCalorimeterUtils.cxx:829 AliCalorimeterUtils.cxx:830 AliCalorimeterUtils.cxx:831 AliCalorimeterUtils.cxx:832 AliCalorimeterUtils.cxx:833 AliCalorimeterUtils.cxx:834 AliCalorimeterUtils.cxx:835 AliCalorimeterUtils.cxx:836 AliCalorimeterUtils.cxx:837 AliCalorimeterUtils.cxx:838 AliCalorimeterUtils.cxx:839 AliCalorimeterUtils.cxx:840 AliCalorimeterUtils.cxx:841 AliCalorimeterUtils.cxx:842 AliCalorimeterUtils.cxx:843 AliCalorimeterUtils.cxx:844 AliCalorimeterUtils.cxx:845 AliCalorimeterUtils.cxx:846 AliCalorimeterUtils.cxx:847 AliCalorimeterUtils.cxx:848 AliCalorimeterUtils.cxx:849 AliCalorimeterUtils.cxx:850 AliCalorimeterUtils.cxx:851 AliCalorimeterUtils.cxx:852 AliCalorimeterUtils.cxx:853 AliCalorimeterUtils.cxx:854 AliCalorimeterUtils.cxx:855 AliCalorimeterUtils.cxx:856 AliCalorimeterUtils.cxx:857 AliCalorimeterUtils.cxx:858 AliCalorimeterUtils.cxx:859 AliCalorimeterUtils.cxx:860 AliCalorimeterUtils.cxx:861 AliCalorimeterUtils.cxx:862 AliCalorimeterUtils.cxx:863 AliCalorimeterUtils.cxx:864 AliCalorimeterUtils.cxx:865 AliCalorimeterUtils.cxx:866 AliCalorimeterUtils.cxx:867 AliCalorimeterUtils.cxx:868 AliCalorimeterUtils.cxx:869 AliCalorimeterUtils.cxx:870 AliCalorimeterUtils.cxx:871 AliCalorimeterUtils.cxx:872 AliCalorimeterUtils.cxx:873 AliCalorimeterUtils.cxx:874 AliCalorimeterUtils.cxx:875 AliCalorimeterUtils.cxx:876 AliCalorimeterUtils.cxx:877 AliCalorimeterUtils.cxx:878 AliCalorimeterUtils.cxx:879 AliCalorimeterUtils.cxx:880 AliCalorimeterUtils.cxx:881 AliCalorimeterUtils.cxx:882 AliCalorimeterUtils.cxx:883 AliCalorimeterUtils.cxx:884 AliCalorimeterUtils.cxx:885 AliCalorimeterUtils.cxx:886 AliCalorimeterUtils.cxx:887 AliCalorimeterUtils.cxx:888 AliCalorimeterUtils.cxx:889 AliCalorimeterUtils.cxx:890 AliCalorimeterUtils.cxx:891 AliCalorimeterUtils.cxx:892 AliCalorimeterUtils.cxx:893 AliCalorimeterUtils.cxx:894 AliCalorimeterUtils.cxx:895 AliCalorimeterUtils.cxx:896 AliCalorimeterUtils.cxx:897 AliCalorimeterUtils.cxx:898 AliCalorimeterUtils.cxx:899 AliCalorimeterUtils.cxx:900 AliCalorimeterUtils.cxx:901 AliCalorimeterUtils.cxx:902 AliCalorimeterUtils.cxx:903 AliCalorimeterUtils.cxx:904 AliCalorimeterUtils.cxx:905 AliCalorimeterUtils.cxx:906 AliCalorimeterUtils.cxx:907 AliCalorimeterUtils.cxx:908 AliCalorimeterUtils.cxx:909 AliCalorimeterUtils.cxx:910 AliCalorimeterUtils.cxx:911 AliCalorimeterUtils.cxx:912 AliCalorimeterUtils.cxx:913 AliCalorimeterUtils.cxx:914 AliCalorimeterUtils.cxx:915 AliCalorimeterUtils.cxx:916 AliCalorimeterUtils.cxx:917 AliCalorimeterUtils.cxx:918 AliCalorimeterUtils.cxx:919 AliCalorimeterUtils.cxx:920 AliCalorimeterUtils.cxx:921 AliCalorimeterUtils.cxx:922 AliCalorimeterUtils.cxx:923 AliCalorimeterUtils.cxx:924 AliCalorimeterUtils.cxx:925 AliCalorimeterUtils.cxx:926 AliCalorimeterUtils.cxx:927 AliCalorimeterUtils.cxx:928 AliCalorimeterUtils.cxx:929 AliCalorimeterUtils.cxx:930 AliCalorimeterUtils.cxx:931 AliCalorimeterUtils.cxx:932 AliCalorimeterUtils.cxx:933 AliCalorimeterUtils.cxx:934 AliCalorimeterUtils.cxx:935 AliCalorimeterUtils.cxx:936 AliCalorimeterUtils.cxx:937 AliCalorimeterUtils.cxx:938 AliCalorimeterUtils.cxx:939 AliCalorimeterUtils.cxx:940 AliCalorimeterUtils.cxx:941 AliCalorimeterUtils.cxx:942 AliCalorimeterUtils.cxx:943 AliCalorimeterUtils.cxx:944 AliCalorimeterUtils.cxx:945 AliCalorimeterUtils.cxx:946 AliCalorimeterUtils.cxx:947 AliCalorimeterUtils.cxx:948 AliCalorimeterUtils.cxx:949 AliCalorimeterUtils.cxx:950 AliCalorimeterUtils.cxx:951 AliCalorimeterUtils.cxx:952 AliCalorimeterUtils.cxx:953 AliCalorimeterUtils.cxx:954 AliCalorimeterUtils.cxx:955 AliCalorimeterUtils.cxx:956 AliCalorimeterUtils.cxx:957 AliCalorimeterUtils.cxx:958 AliCalorimeterUtils.cxx:959 AliCalorimeterUtils.cxx:960 AliCalorimeterUtils.cxx:961 AliCalorimeterUtils.cxx:962 AliCalorimeterUtils.cxx:963 AliCalorimeterUtils.cxx:964 AliCalorimeterUtils.cxx:965 AliCalorimeterUtils.cxx:966 AliCalorimeterUtils.cxx:967 AliCalorimeterUtils.cxx:968 AliCalorimeterUtils.cxx:969 AliCalorimeterUtils.cxx:970 AliCalorimeterUtils.cxx:971 AliCalorimeterUtils.cxx:972 AliCalorimeterUtils.cxx:973 AliCalorimeterUtils.cxx:974 AliCalorimeterUtils.cxx:975 AliCalorimeterUtils.cxx:976 AliCalorimeterUtils.cxx:977 AliCalorimeterUtils.cxx:978 AliCalorimeterUtils.cxx:979 AliCalorimeterUtils.cxx:980 AliCalorimeterUtils.cxx:981 AliCalorimeterUtils.cxx:982 AliCalorimeterUtils.cxx:983 AliCalorimeterUtils.cxx:984 AliCalorimeterUtils.cxx:985 AliCalorimeterUtils.cxx:986 AliCalorimeterUtils.cxx:987 AliCalorimeterUtils.cxx:988 AliCalorimeterUtils.cxx:989 AliCalorimeterUtils.cxx:990 AliCalorimeterUtils.cxx:991 AliCalorimeterUtils.cxx:992 AliCalorimeterUtils.cxx:993 AliCalorimeterUtils.cxx:994 AliCalorimeterUtils.cxx:995 AliCalorimeterUtils.cxx:996 AliCalorimeterUtils.cxx:997 AliCalorimeterUtils.cxx:998 AliCalorimeterUtils.cxx:999 AliCalorimeterUtils.cxx:1000 AliCalorimeterUtils.cxx:1001 AliCalorimeterUtils.cxx:1002 AliCalorimeterUtils.cxx:1003 AliCalorimeterUtils.cxx:1004 AliCalorimeterUtils.cxx:1005 AliCalorimeterUtils.cxx:1006 AliCalorimeterUtils.cxx:1007 AliCalorimeterUtils.cxx:1008 AliCalorimeterUtils.cxx:1009 AliCalorimeterUtils.cxx:1010 AliCalorimeterUtils.cxx:1011 AliCalorimeterUtils.cxx:1012 AliCalorimeterUtils.cxx:1013 AliCalorimeterUtils.cxx:1014 AliCalorimeterUtils.cxx:1015 AliCalorimeterUtils.cxx:1016 AliCalorimeterUtils.cxx:1017 AliCalorimeterUtils.cxx:1018 AliCalorimeterUtils.cxx:1019 AliCalorimeterUtils.cxx:1020 AliCalorimeterUtils.cxx:1021 AliCalorimeterUtils.cxx:1022 AliCalorimeterUtils.cxx:1023 AliCalorimeterUtils.cxx:1024 AliCalorimeterUtils.cxx:1025 AliCalorimeterUtils.cxx:1026 AliCalorimeterUtils.cxx:1027 AliCalorimeterUtils.cxx:1028 AliCalorimeterUtils.cxx:1029 AliCalorimeterUtils.cxx:1030 AliCalorimeterUtils.cxx:1031 AliCalorimeterUtils.cxx:1032 AliCalorimeterUtils.cxx:1033 AliCalorimeterUtils.cxx:1034 AliCalorimeterUtils.cxx:1035 AliCalorimeterUtils.cxx:1036 AliCalorimeterUtils.cxx:1037 AliCalorimeterUtils.cxx:1038 AliCalorimeterUtils.cxx:1039 AliCalorimeterUtils.cxx:1040 AliCalorimeterUtils.cxx:1041 AliCalorimeterUtils.cxx:1042 AliCalorimeterUtils.cxx:1043 AliCalorimeterUtils.cxx:1044 AliCalorimeterUtils.cxx:1045 AliCalorimeterUtils.cxx:1046 AliCalorimeterUtils.cxx:1047 AliCalorimeterUtils.cxx:1048 AliCalorimeterUtils.cxx:1049 AliCalorimeterUtils.cxx:1050 AliCalorimeterUtils.cxx:1051 AliCalorimeterUtils.cxx:1052 AliCalorimeterUtils.cxx:1053 AliCalorimeterUtils.cxx:1054 AliCalorimeterUtils.cxx:1055 AliCalorimeterUtils.cxx:1056 AliCalorimeterUtils.cxx:1057 AliCalorimeterUtils.cxx:1058 AliCalorimeterUtils.cxx:1059 AliCalorimeterUtils.cxx:1060 AliCalorimeterUtils.cxx:1061 AliCalorimeterUtils.cxx:1062 AliCalorimeterUtils.cxx:1063 AliCalorimeterUtils.cxx:1064 AliCalorimeterUtils.cxx:1065 AliCalorimeterUtils.cxx:1066 AliCalorimeterUtils.cxx:1067 AliCalorimeterUtils.cxx:1068 AliCalorimeterUtils.cxx:1069 AliCalorimeterUtils.cxx:1070 AliCalorimeterUtils.cxx:1071 AliCalorimeterUtils.cxx:1072 AliCalorimeterUtils.cxx:1073 AliCalorimeterUtils.cxx:1074 AliCalorimeterUtils.cxx:1075 AliCalorimeterUtils.cxx:1076 AliCalorimeterUtils.cxx:1077 AliCalorimeterUtils.cxx:1078 AliCalorimeterUtils.cxx:1079 AliCalorimeterUtils.cxx:1080 AliCalorimeterUtils.cxx:1081 AliCalorimeterUtils.cxx:1082 AliCalorimeterUtils.cxx:1083 AliCalorimeterUtils.cxx:1084 AliCalorimeterUtils.cxx:1085 AliCalorimeterUtils.cxx:1086 AliCalorimeterUtils.cxx:1087 AliCalorimeterUtils.cxx:1088 AliCalorimeterUtils.cxx:1089 AliCalorimeterUtils.cxx:1090 AliCalorimeterUtils.cxx:1091 AliCalorimeterUtils.cxx:1092 AliCalorimeterUtils.cxx:1093 AliCalorimeterUtils.cxx:1094 AliCalorimeterUtils.cxx:1095 AliCalorimeterUtils.cxx:1096 AliCalorimeterUtils.cxx:1097 AliCalorimeterUtils.cxx:1098 AliCalorimeterUtils.cxx:1099 AliCalorimeterUtils.cxx:1100 AliCalorimeterUtils.cxx:1101 AliCalorimeterUtils.cxx:1102 AliCalorimeterUtils.cxx:1103 AliCalorimeterUtils.cxx:1104 AliCalorimeterUtils.cxx:1105 AliCalorimeterUtils.cxx:1106 AliCalorimeterUtils.cxx:1107 AliCalorimeterUtils.cxx:1108 AliCalorimeterUtils.cxx:1109 AliCalorimeterUtils.cxx:1110 AliCalorimeterUtils.cxx:1111 AliCalorimeterUtils.cxx:1112 AliCalorimeterUtils.cxx:1113 AliCalorimeterUtils.cxx:1114 AliCalorimeterUtils.cxx:1115 AliCalorimeterUtils.cxx:1116 AliCalorimeterUtils.cxx:1117 AliCalorimeterUtils.cxx:1118 AliCalorimeterUtils.cxx:1119 AliCalorimeterUtils.cxx:1120 AliCalorimeterUtils.cxx:1121 AliCalorimeterUtils.cxx:1122 AliCalorimeterUtils.cxx:1123 AliCalorimeterUtils.cxx:1124 AliCalorimeterUtils.cxx:1125 AliCalorimeterUtils.cxx:1126 AliCalorimeterUtils.cxx:1127 AliCalorimeterUtils.cxx:1128 AliCalorimeterUtils.cxx:1129 AliCalorimeterUtils.cxx:1130 AliCalorimeterUtils.cxx:1131 AliCalorimeterUtils.cxx:1132 AliCalorimeterUtils.cxx:1133 AliCalorimeterUtils.cxx:1134 AliCalorimeterUtils.cxx:1135 AliCalorimeterUtils.cxx:1136 AliCalorimeterUtils.cxx:1137 AliCalorimeterUtils.cxx:1138 AliCalorimeterUtils.cxx:1139 AliCalorimeterUtils.cxx:1140 AliCalorimeterUtils.cxx:1141 AliCalorimeterUtils.cxx:1142 AliCalorimeterUtils.cxx:1143 AliCalorimeterUtils.cxx:1144 AliCalorimeterUtils.cxx:1145 AliCalorimeterUtils.cxx:1146 AliCalorimeterUtils.cxx:1147 AliCalorimeterUtils.cxx:1148 AliCalorimeterUtils.cxx:1149 AliCalorimeterUtils.cxx:1150 AliCalorimeterUtils.cxx:1151 AliCalorimeterUtils.cxx:1152 AliCalorimeterUtils.cxx:1153 AliCalorimeterUtils.cxx:1154 AliCalorimeterUtils.cxx:1155 AliCalorimeterUtils.cxx:1156 AliCalorimeterUtils.cxx:1157 AliCalorimeterUtils.cxx:1158 AliCalorimeterUtils.cxx:1159 AliCalorimeterUtils.cxx:1160 AliCalorimeterUtils.cxx:1161 AliCalorimeterUtils.cxx:1162 AliCalorimeterUtils.cxx:1163 AliCalorimeterUtils.cxx:1164 AliCalorimeterUtils.cxx:1165 AliCalorimeterUtils.cxx:1166 AliCalorimeterUtils.cxx:1167 AliCalorimeterUtils.cxx:1168 AliCalorimeterUtils.cxx:1169 AliCalorimeterUtils.cxx:1170 AliCalorimeterUtils.cxx:1171 AliCalorimeterUtils.cxx:1172 AliCalorimeterUtils.cxx:1173 AliCalorimeterUtils.cxx:1174 AliCalorimeterUtils.cxx:1175 AliCalorimeterUtils.cxx:1176 AliCalorimeterUtils.cxx:1177 AliCalorimeterUtils.cxx:1178 AliCalorimeterUtils.cxx:1179 AliCalorimeterUtils.cxx:1180 AliCalorimeterUtils.cxx:1181 AliCalorimeterUtils.cxx:1182 AliCalorimeterUtils.cxx:1183 AliCalorimeterUtils.cxx:1184 AliCalorimeterUtils.cxx:1185 AliCalorimeterUtils.cxx:1186 AliCalorimeterUtils.cxx:1187 AliCalorimeterUtils.cxx:1188 AliCalorimeterUtils.cxx:1189 AliCalorimeterUtils.cxx:1190 AliCalorimeterUtils.cxx:1191 AliCalorimeterUtils.cxx:1192 AliCalorimeterUtils.cxx:1193 AliCalorimeterUtils.cxx:1194 AliCalorimeterUtils.cxx:1195 AliCalorimeterUtils.cxx:1196 AliCalorimeterUtils.cxx:1197 AliCalorimeterUtils.cxx:1198 AliCalorimeterUtils.cxx:1199 AliCalorimeterUtils.cxx:1200 AliCalorimeterUtils.cxx:1201 AliCalorimeterUtils.cxx:1202 AliCalorimeterUtils.cxx:1203 AliCalorimeterUtils.cxx:1204 AliCalorimeterUtils.cxx:1205 AliCalorimeterUtils.cxx:1206 AliCalorimeterUtils.cxx:1207 AliCalorimeterUtils.cxx:1208 AliCalorimeterUtils.cxx:1209 AliCalorimeterUtils.cxx:1210 AliCalorimeterUtils.cxx:1211 AliCalorimeterUtils.cxx:1212 AliCalorimeterUtils.cxx:1213 AliCalorimeterUtils.cxx:1214 AliCalorimeterUtils.cxx:1215 AliCalorimeterUtils.cxx:1216 AliCalorimeterUtils.cxx:1217 AliCalorimeterUtils.cxx:1218 AliCalorimeterUtils.cxx:1219 AliCalorimeterUtils.cxx:1220 AliCalorimeterUtils.cxx:1221 AliCalorimeterUtils.cxx:1222 AliCalorimeterUtils.cxx:1223 AliCalorimeterUtils.cxx:1224 AliCalorimeterUtils.cxx:1225 AliCalorimeterUtils.cxx:1226 AliCalorimeterUtils.cxx:1227 AliCalorimeterUtils.cxx:1228 AliCalorimeterUtils.cxx:1229 AliCalorimeterUtils.cxx:1230 AliCalorimeterUtils.cxx:1231 AliCalorimeterUtils.cxx:1232 AliCalorimeterUtils.cxx:1233 AliCalorimeterUtils.cxx:1234 AliCalorimeterUtils.cxx:1235 AliCalorimeterUtils.cxx:1236 AliCalorimeterUtils.cxx:1237 AliCalorimeterUtils.cxx:1238 AliCalorimeterUtils.cxx:1239 AliCalorimeterUtils.cxx:1240 AliCalorimeterUtils.cxx:1241 AliCalorimeterUtils.cxx:1242 AliCalorimeterUtils.cxx:1243 AliCalorimeterUtils.cxx:1244 AliCalorimeterUtils.cxx:1245 AliCalorimeterUtils.cxx:1246 AliCalorimeterUtils.cxx:1247 AliCalorimeterUtils.cxx:1248 AliCalorimeterUtils.cxx:1249 AliCalorimeterUtils.cxx:1250 AliCalorimeterUtils.cxx:1251 AliCalorimeterUtils.cxx:1252 AliCalorimeterUtils.cxx:1253 AliCalorimeterUtils.cxx:1254 AliCalorimeterUtils.cxx:1255 AliCalorimeterUtils.cxx:1256 AliCalorimeterUtils.cxx:1257 AliCalorimeterUtils.cxx:1258 AliCalorimeterUtils.cxx:1259 AliCalorimeterUtils.cxx:1260 AliCalorimeterUtils.cxx:1261 AliCalorimeterUtils.cxx:1262 AliCalorimeterUtils.cxx:1263 AliCalorimeterUtils.cxx:1264 AliCalorimeterUtils.cxx:1265 AliCalorimeterUtils.cxx:1266 AliCalorimeterUtils.cxx:1267 AliCalorimeterUtils.cxx:1268 AliCalorimeterUtils.cxx:1269 AliCalorimeterUtils.cxx:1270 AliCalorimeterUtils.cxx:1271 AliCalorimeterUtils.cxx:1272 AliCalorimeterUtils.cxx:1273 AliCalorimeterUtils.cxx:1274 AliCalorimeterUtils.cxx:1275 AliCalorimeterUtils.cxx:1276 AliCalorimeterUtils.cxx:1277 AliCalorimeterUtils.cxx:1278 AliCalorimeterUtils.cxx:1279 AliCalorimeterUtils.cxx:1280 AliCalorimeterUtils.cxx:1281 AliCalorimeterUtils.cxx:1282 AliCalorimeterUtils.cxx:1283 AliCalorimeterUtils.cxx:1284 AliCalorimeterUtils.cxx:1285 AliCalorimeterUtils.cxx:1286 AliCalorimeterUtils.cxx:1287 AliCalorimeterUtils.cxx:1288 AliCalorimeterUtils.cxx:1289 AliCalorimeterUtils.cxx:1290 AliCalorimeterUtils.cxx:1291 AliCalorimeterUtils.cxx:1292 AliCalorimeterUtils.cxx:1293 AliCalorimeterUtils.cxx:1294 AliCalorimeterUtils.cxx:1295 AliCalorimeterUtils.cxx:1296 AliCalorimeterUtils.cxx:1297 AliCalorimeterUtils.cxx:1298 AliCalorimeterUtils.cxx:1299 AliCalorimeterUtils.cxx:1300 AliCalorimeterUtils.cxx:1301 AliCalorimeterUtils.cxx:1302 AliCalorimeterUtils.cxx:1303 AliCalorimeterUtils.cxx:1304 AliCalorimeterUtils.cxx:1305 AliCalorimeterUtils.cxx:1306 AliCalorimeterUtils.cxx:1307 AliCalorimeterUtils.cxx:1308 AliCalorimeterUtils.cxx:1309 AliCalorimeterUtils.cxx:1310 AliCalorimeterUtils.cxx:1311 AliCalorimeterUtils.cxx:1312 AliCalorimeterUtils.cxx:1313 AliCalorimeterUtils.cxx:1314 AliCalorimeterUtils.cxx:1315 AliCalorimeterUtils.cxx:1316 AliCalorimeterUtils.cxx:1317 AliCalorimeterUtils.cxx:1318 AliCalorimeterUtils.cxx:1319 AliCalorimeterUtils.cxx:1320 AliCalorimeterUtils.cxx:1321 AliCalorimeterUtils.cxx:1322 AliCalorimeterUtils.cxx:1323 AliCalorimeterUtils.cxx:1324 AliCalorimeterUtils.cxx:1325 AliCalorimeterUtils.cxx:1326 AliCalorimeterUtils.cxx:1327 AliCalorimeterUtils.cxx:1328 AliCalorimeterUtils.cxx:1329 AliCalorimeterUtils.cxx:1330 AliCalorimeterUtils.cxx:1331 AliCalorimeterUtils.cxx:1332 AliCalorimeterUtils.cxx:1333 AliCalorimeterUtils.cxx:1334 AliCalorimeterUtils.cxx:1335 AliCalorimeterUtils.cxx:1336 AliCalorimeterUtils.cxx:1337 AliCalorimeterUtils.cxx:1338 AliCalorimeterUtils.cxx:1339 AliCalorimeterUtils.cxx:1340 AliCalorimeterUtils.cxx:1341 AliCalorimeterUtils.cxx:1342 AliCalorimeterUtils.cxx:1343 AliCalorimeterUtils.cxx:1344 AliCalorimeterUtils.cxx:1345 AliCalorimeterUtils.cxx:1346 AliCalorimeterUtils.cxx:1347 AliCalorimeterUtils.cxx:1348 AliCalorimeterUtils.cxx:1349 AliCalorimeterUtils.cxx:1350 AliCalorimeterUtils.cxx:1351 AliCalorimeterUtils.cxx:1352 AliCalorimeterUtils.cxx:1353 AliCalorimeterUtils.cxx:1354 AliCalorimeterUtils.cxx:1355 AliCalorimeterUtils.cxx:1356 AliCalorimeterUtils.cxx:1357 AliCalorimeterUtils.cxx:1358 AliCalorimeterUtils.cxx:1359 AliCalorimeterUtils.cxx:1360 AliCalorimeterUtils.cxx:1361 AliCalorimeterUtils.cxx:1362 AliCalorimeterUtils.cxx:1363 AliCalorimeterUtils.cxx:1364 AliCalorimeterUtils.cxx:1365 AliCalorimeterUtils.cxx:1366 AliCalorimeterUtils.cxx:1367 AliCalorimeterUtils.cxx:1368 AliCalorimeterUtils.cxx:1369 AliCalorimeterUtils.cxx:1370 AliCalorimeterUtils.cxx:1371 AliCalorimeterUtils.cxx:1372 AliCalorimeterUtils.cxx:1373 AliCalorimeterUtils.cxx:1374 AliCalorimeterUtils.cxx:1375 AliCalorimeterUtils.cxx:1376 AliCalorimeterUtils.cxx:1377 AliCalorimeterUtils.cxx:1378 AliCalorimeterUtils.cxx:1379 AliCalorimeterUtils.cxx:1380 AliCalorimeterUtils.cxx:1381 AliCalorimeterUtils.cxx:1382 AliCalorimeterUtils.cxx:1383 AliCalorimeterUtils.cxx:1384 AliCalorimeterUtils.cxx:1385 AliCalorimeterUtils.cxx:1386 AliCalorimeterUtils.cxx:1387 AliCalorimeterUtils.cxx:1388 AliCalorimeterUtils.cxx:1389 AliCalorimeterUtils.cxx:1390 AliCalorimeterUtils.cxx:1391 AliCalorimeterUtils.cxx:1392 AliCalorimeterUtils.cxx:1393 AliCalorimeterUtils.cxx:1394 AliCalorimeterUtils.cxx:1395 AliCalorimeterUtils.cxx:1396 AliCalorimeterUtils.cxx:1397 AliCalorimeterUtils.cxx:1398 AliCalorimeterUtils.cxx:1399 AliCalorimeterUtils.cxx:1400 AliCalorimeterUtils.cxx:1401 AliCalorimeterUtils.cxx:1402 AliCalorimeterUtils.cxx:1403 AliCalorimeterUtils.cxx:1404 AliCalorimeterUtils.cxx:1405 AliCalorimeterUtils.cxx:1406 AliCalorimeterUtils.cxx:1407 AliCalorimeterUtils.cxx:1408 AliCalorimeterUtils.cxx:1409 AliCalorimeterUtils.cxx:1410 AliCalorimeterUtils.cxx:1411 AliCalorimeterUtils.cxx:1412 AliCalorimeterUtils.cxx:1413 AliCalorimeterUtils.cxx:1414 AliCalorimeterUtils.cxx:1415 AliCalorimeterUtils.cxx:1416 AliCalorimeterUtils.cxx:1417 AliCalorimeterUtils.cxx:1418 AliCalorimeterUtils.cxx:1419 AliCalorimeterUtils.cxx:1420 AliCalorimeterUtils.cxx:1421 AliCalorimeterUtils.cxx:1422 AliCalorimeterUtils.cxx:1423 AliCalorimeterUtils.cxx:1424 AliCalorimeterUtils.cxx:1425 AliCalorimeterUtils.cxx:1426 AliCalorimeterUtils.cxx:1427 AliCalorimeterUtils.cxx:1428 AliCalorimeterUtils.cxx:1429 AliCalorimeterUtils.cxx:1430 AliCalorimeterUtils.cxx:1431 AliCalorimeterUtils.cxx:1432 AliCalorimeterUtils.cxx:1433 AliCalorimeterUtils.cxx:1434 AliCalorimeterUtils.cxx:1435 AliCalorimeterUtils.cxx:1436 AliCalorimeterUtils.cxx:1437 AliCalorimeterUtils.cxx:1438 AliCalorimeterUtils.cxx:1439 AliCalorimeterUtils.cxx:1440 AliCalorimeterUtils.cxx:1441 AliCalorimeterUtils.cxx:1442 AliCalorimeterUtils.cxx:1443 AliCalorimeterUtils.cxx:1444 AliCalorimeterUtils.cxx:1445 AliCalorimeterUtils.cxx:1446 AliCalorimeterUtils.cxx:1447 AliCalorimeterUtils.cxx:1448 AliCalorimeterUtils.cxx:1449 AliCalorimeterUtils.cxx:1450 AliCalorimeterUtils.cxx:1451 AliCalorimeterUtils.cxx:1452 AliCalorimeterUtils.cxx:1453 AliCalorimeterUtils.cxx:1454 AliCalorimeterUtils.cxx:1455 AliCalorimeterUtils.cxx:1456 AliCalorimeterUtils.cxx:1457 AliCalorimeterUtils.cxx:1458 AliCalorimeterUtils.cxx:1459 AliCalorimeterUtils.cxx:1460 AliCalorimeterUtils.cxx:1461 AliCalorimeterUtils.cxx:1462 AliCalorimeterUtils.cxx:1463 AliCalorimeterUtils.cxx:1464 AliCalorimeterUtils.cxx:1465 AliCalorimeterUtils.cxx:1466 AliCalorimeterUtils.cxx:1467 AliCalorimeterUtils.cxx:1468 AliCalorimeterUtils.cxx:1469 AliCalorimeterUtils.cxx:1470 AliCalorimeterUtils.cxx:1471 AliCalorimeterUtils.cxx:1472 AliCalorimeterUtils.cxx:1473 AliCalorimeterUtils.cxx:1474 AliCalorimeterUtils.cxx:1475 AliCalorimeterUtils.cxx:1476 AliCalorimeterUtils.cxx:1477 AliCalorimeterUtils.cxx:1478 AliCalorimeterUtils.cxx:1479 AliCalorimeterUtils.cxx:1480 AliCalorimeterUtils.cxx:1481 AliCalorimeterUtils.cxx:1482 AliCalorimeterUtils.cxx:1483 AliCalorimeterUtils.cxx:1484 AliCalorimeterUtils.cxx:1485 AliCalorimeterUtils.cxx:1486 AliCalorimeterUtils.cxx:1487 AliCalorimeterUtils.cxx:1488 AliCalorimeterUtils.cxx:1489 AliCalorimeterUtils.cxx:1490 AliCalorimeterUtils.cxx:1491 AliCalorimeterUtils.cxx:1492 AliCalorimeterUtils.cxx:1493 AliCalorimeterUtils.cxx:1494 AliCalorimeterUtils.cxx:1495 AliCalorimeterUtils.cxx:1496 AliCalorimeterUtils.cxx:1497 AliCalorimeterUtils.cxx:1498 AliCalorimeterUtils.cxx:1499 AliCalorimeterUtils.cxx:1500 AliCalorimeterUtils.cxx:1501 AliCalorimeterUtils.cxx:1502 AliCalorimeterUtils.cxx:1503 AliCalorimeterUtils.cxx:1504 AliCalorimeterUtils.cxx:1505 AliCalorimeterUtils.cxx:1506 AliCalorimeterUtils.cxx:1507 AliCalorimeterUtils.cxx:1508 AliCalorimeterUtils.cxx:1509 AliCalorimeterUtils.cxx:1510 AliCalorimeterUtils.cxx:1511 AliCalorimeterUtils.cxx:1512 AliCalorimeterUtils.cxx:1513 AliCalorimeterUtils.cxx:1514 AliCalorimeterUtils.cxx:1515 AliCalorimeterUtils.cxx:1516 AliCalorimeterUtils.cxx:1517 AliCalorimeterUtils.cxx:1518 AliCalorimeterUtils.cxx:1519 AliCalorimeterUtils.cxx:1520 AliCalorimeterUtils.cxx:1521 AliCalorimeterUtils.cxx:1522 AliCalorimeterUtils.cxx:1523 AliCalorimeterUtils.cxx:1524 AliCalorimeterUtils.cxx:1525 AliCalorimeterUtils.cxx:1526 AliCalorimeterUtils.cxx:1527 AliCalorimeterUtils.cxx:1528 AliCalorimeterUtils.cxx:1529 AliCalorimeterUtils.cxx:1530 AliCalorimeterUtils.cxx:1531 AliCalorimeterUtils.cxx:1532 AliCalorimeterUtils.cxx:1533 AliCalorimeterUtils.cxx:1534 AliCalorimeterUtils.cxx:1535 AliCalorimeterUtils.cxx:1536 AliCalorimeterUtils.cxx:1537 AliCalorimeterUtils.cxx:1538 AliCalorimeterUtils.cxx:1539 AliCalorimeterUtils.cxx:1540 AliCalorimeterUtils.cxx:1541 AliCalorimeterUtils.cxx:1542 AliCalorimeterUtils.cxx:1543 AliCalorimeterUtils.cxx:1544 AliCalorimeterUtils.cxx:1545 AliCalorimeterUtils.cxx:1546 AliCalorimeterUtils.cxx:1547 AliCalorimeterUtils.cxx:1548 AliCalorimeterUtils.cxx:1549 AliCalorimeterUtils.cxx:1550 AliCalorimeterUtils.cxx:1551 AliCalorimeterUtils.cxx:1552 AliCalorimeterUtils.cxx:1553 AliCalorimeterUtils.cxx:1554 AliCalorimeterUtils.cxx:1555 AliCalorimeterUtils.cxx:1556 AliCalorimeterUtils.cxx:1557 AliCalorimeterUtils.cxx:1558 AliCalorimeterUtils.cxx:1559 AliCalorimeterUtils.cxx:1560 AliCalorimeterUtils.cxx:1561 AliCalorimeterUtils.cxx:1562 AliCalorimeterUtils.cxx:1563 AliCalorimeterUtils.cxx:1564 AliCalorimeterUtils.cxx:1565 AliCalorimeterUtils.cxx:1566 AliCalorimeterUtils.cxx:1567 AliCalorimeterUtils.cxx:1568 AliCalorimeterUtils.cxx:1569 AliCalorimeterUtils.cxx:1570 AliCalorimeterUtils.cxx:1571 AliCalorimeterUtils.cxx:1572 AliCalorimeterUtils.cxx:1573 AliCalorimeterUtils.cxx:1574 AliCalorimeterUtils.cxx:1575 AliCalorimeterUtils.cxx:1576 AliCalorimeterUtils.cxx:1577 AliCalorimeterUtils.cxx:1578 AliCalorimeterUtils.cxx:1579 AliCalorimeterUtils.cxx:1580 AliCalorimeterUtils.cxx:1581 AliCalorimeterUtils.cxx:1582 AliCalorimeterUtils.cxx:1583 AliCalorimeterUtils.cxx:1584 AliCalorimeterUtils.cxx:1585 AliCalorimeterUtils.cxx:1586 AliCalorimeterUtils.cxx:1587 AliCalorimeterUtils.cxx:1588 AliCalorimeterUtils.cxx:1589 AliCalorimeterUtils.cxx:1590 AliCalorimeterUtils.cxx:1591 AliCalorimeterUtils.cxx:1592 AliCalorimeterUtils.cxx:1593 AliCalorimeterUtils.cxx:1594 AliCalorimeterUtils.cxx:1595 AliCalorimeterUtils.cxx:1596 AliCalorimeterUtils.cxx:1597 AliCalorimeterUtils.cxx:1598 AliCalorimeterUtils.cxx:1599 AliCalorimeterUtils.cxx:1600 AliCalorimeterUtils.cxx:1601 AliCalorimeterUtils.cxx:1602 AliCalorimeterUtils.cxx:1603 AliCalorimeterUtils.cxx:1604 AliCalorimeterUtils.cxx:1605 AliCalorimeterUtils.cxx:1606 AliCalorimeterUtils.cxx:1607 AliCalorimeterUtils.cxx:1608 AliCalorimeterUtils.cxx:1609 AliCalorimeterUtils.cxx:1610 AliCalorimeterUtils.cxx:1611 AliCalorimeterUtils.cxx:1612 AliCalorimeterUtils.cxx:1613 AliCalorimeterUtils.cxx:1614 AliCalorimeterUtils.cxx:1615 AliCalorimeterUtils.cxx:1616 AliCalorimeterUtils.cxx:1617 AliCalorimeterUtils.cxx:1618 AliCalorimeterUtils.cxx:1619 AliCalorimeterUtils.cxx:1620 AliCalorimeterUtils.cxx:1621 AliCalorimeterUtils.cxx:1622 AliCalorimeterUtils.cxx:1623 AliCalorimeterUtils.cxx:1624 AliCalorimeterUtils.cxx:1625 AliCalorimeterUtils.cxx:1626 AliCalorimeterUtils.cxx:1627 AliCalorimeterUtils.cxx:1628 AliCalorimeterUtils.cxx:1629 AliCalorimeterUtils.cxx:1630 AliCalorimeterUtils.cxx:1631 AliCalorimeterUtils.cxx:1632 AliCalorimeterUtils.cxx:1633 AliCalorimeterUtils.cxx:1634 AliCalorimeterUtils.cxx:1635 AliCalorimeterUtils.cxx:1636 AliCalorimeterUtils.cxx:1637 AliCalorimeterUtils.cxx:1638 AliCalorimeterUtils.cxx:1639 AliCalorimeterUtils.cxx:1640 AliCalorimeterUtils.cxx:1641 AliCalorimeterUtils.cxx:1642 AliCalorimeterUtils.cxx:1643 AliCalorimeterUtils.cxx:1644 AliCalorimeterUtils.cxx:1645 AliCalorimeterUtils.cxx:1646 AliCalorimeterUtils.cxx:1647 AliCalorimeterUtils.cxx:1648 AliCalorimeterUtils.cxx:1649 AliCalorimeterUtils.cxx:1650 AliCalorimeterUtils.cxx:1651 AliCalorimeterUtils.cxx:1652 AliCalorimeterUtils.cxx:1653 AliCalorimeterUtils.cxx:1654 AliCalorimeterUtils.cxx:1655 AliCalorimeterUtils.cxx:1656 AliCalorimeterUtils.cxx:1657 AliCalorimeterUtils.cxx:1658 AliCalorimeterUtils.cxx:1659 AliCalorimeterUtils.cxx:1660 AliCalorimeterUtils.cxx:1661 AliCalorimeterUtils.cxx:1662 AliCalorimeterUtils.cxx:1663 AliCalorimeterUtils.cxx:1664 AliCalorimeterUtils.cxx:1665 AliCalorimeterUtils.cxx:1666 AliCalorimeterUtils.cxx:1667 AliCalorimeterUtils.cxx:1668 AliCalorimeterUtils.cxx:1669 AliCalorimeterUtils.cxx:1670 AliCalorimeterUtils.cxx:1671 AliCalorimeterUtils.cxx:1672 AliCalorimeterUtils.cxx:1673 AliCalorimeterUtils.cxx:1674 AliCalorimeterUtils.cxx:1675 AliCalorimeterUtils.cxx:1676 AliCalorimeterUtils.cxx:1677 AliCalorimeterUtils.cxx:1678 AliCalorimeterUtils.cxx:1679 AliCalorimeterUtils.cxx:1680 AliCalorimeterUtils.cxx:1681 AliCalorimeterUtils.cxx:1682 AliCalorimeterUtils.cxx:1683 AliCalorimeterUtils.cxx:1684 AliCalorimeterUtils.cxx:1685 AliCalorimeterUtils.cxx:1686 AliCalorimeterUtils.cxx:1687 AliCalorimeterUtils.cxx:1688 AliCalorimeterUtils.cxx:1689 AliCalorimeterUtils.cxx:1690 AliCalorimeterUtils.cxx:1691 AliCalorimeterUtils.cxx:1692 AliCalorimeterUtils.cxx:1693 AliCalorimeterUtils.cxx:1694 AliCalorimeterUtils.cxx:1695 AliCalorimeterUtils.cxx:1696 AliCalorimeterUtils.cxx:1697 AliCalorimeterUtils.cxx:1698 AliCalorimeterUtils.cxx:1699 AliCalorimeterUtils.cxx:1700 AliCalorimeterUtils.cxx:1701 AliCalorimeterUtils.cxx:1702 AliCalorimeterUtils.cxx:1703 AliCalorimeterUtils.cxx:1704 AliCalorimeterUtils.cxx:1705 AliCalorimeterUtils.cxx:1706 AliCalorimeterUtils.cxx:1707 AliCalorimeterUtils.cxx:1708 AliCalorimeterUtils.cxx:1709 AliCalorimeterUtils.cxx:1710 AliCalorimeterUtils.cxx:1711 AliCalorimeterUtils.cxx:1712 AliCalorimeterUtils.cxx:1713 AliCalorimeterUtils.cxx:1714 AliCalorimeterUtils.cxx:1715 AliCalorimeterUtils.cxx:1716 AliCalorimeterUtils.cxx:1717 AliCalorimeterUtils.cxx:1718 AliCalorimeterUtils.cxx:1719 AliCalorimeterUtils.cxx:1720 AliCalorimeterUtils.cxx:1721 AliCalorimeterUtils.cxx:1722 AliCalorimeterUtils.cxx:1723 AliCalorimeterUtils.cxx:1724 AliCalorimeterUtils.cxx:1725 AliCalorimeterUtils.cxx:1726 AliCalorimeterUtils.cxx:1727 AliCalorimeterUtils.cxx:1728 AliCalorimeterUtils.cxx:1729 AliCalorimeterUtils.cxx:1730 AliCalorimeterUtils.cxx:1731 AliCalorimeterUtils.cxx:1732 AliCalorimeterUtils.cxx:1733 AliCalorimeterUtils.cxx:1734 AliCalorimeterUtils.cxx:1735 AliCalorimeterUtils.cxx:1736 AliCalorimeterUtils.cxx:1737 AliCalorimeterUtils.cxx:1738 AliCalorimeterUtils.cxx:1739 AliCalorimeterUtils.cxx:1740 AliCalorimeterUtils.cxx:1741 AliCalorimeterUtils.cxx:1742 AliCalorimeterUtils.cxx:1743 AliCalorimeterUtils.cxx:1744 AliCalorimeterUtils.cxx:1745 AliCalorimeterUtils.cxx:1746 AliCalorimeterUtils.cxx:1747 AliCalorimeterUtils.cxx:1748 AliCalorimeterUtils.cxx:1749 AliCalorimeterUtils.cxx:1750 AliCalorimeterUtils.cxx:1751 AliCalorimeterUtils.cxx:1752 AliCalorimeterUtils.cxx:1753 AliCalorimeterUtils.cxx:1754 AliCalorimeterUtils.cxx:1755 AliCalorimeterUtils.cxx:1756 AliCalorimeterUtils.cxx:1757 AliCalorimeterUtils.cxx:1758 AliCalorimeterUtils.cxx:1759 AliCalorimeterUtils.cxx:1760 AliCalorimeterUtils.cxx:1761 AliCalorimeterUtils.cxx:1762 AliCalorimeterUtils.cxx:1763 AliCalorimeterUtils.cxx:1764 AliCalorimeterUtils.cxx:1765 AliCalorimeterUtils.cxx:1766 AliCalorimeterUtils.cxx:1767 AliCalorimeterUtils.cxx:1768 AliCalorimeterUtils.cxx:1769 AliCalorimeterUtils.cxx:1770 AliCalorimeterUtils.cxx:1771 AliCalorimeterUtils.cxx:1772 AliCalorimeterUtils.cxx:1773 AliCalorimeterUtils.cxx:1774 AliCalorimeterUtils.cxx:1775 AliCalorimeterUtils.cxx:1776 AliCalorimeterUtils.cxx:1777 AliCalorimeterUtils.cxx:1778 AliCalorimeterUtils.cxx:1779 AliCalorimeterUtils.cxx:1780 AliCalorimeterUtils.cxx:1781 AliCalorimeterUtils.cxx:1782 AliCalorimeterUtils.cxx:1783 AliCalorimeterUtils.cxx:1784 AliCalorimeterUtils.cxx:1785 AliCalorimeterUtils.cxx:1786 AliCalorimeterUtils.cxx:1787 AliCalorimeterUtils.cxx:1788 AliCalorimeterUtils.cxx:1789 AliCalorimeterUtils.cxx:1790 AliCalorimeterUtils.cxx:1791 AliCalorimeterUtils.cxx:1792 AliCalorimeterUtils.cxx:1793 AliCalorimeterUtils.cxx:1794 AliCalorimeterUtils.cxx:1795 AliCalorimeterUtils.cxx:1796 AliCalorimeterUtils.cxx:1797 AliCalorimeterUtils.cxx:1798 AliCalorimeterUtils.cxx:1799 AliCalorimeterUtils.cxx:1800 AliCalorimeterUtils.cxx:1801 AliCalorimeterUtils.cxx:1802 AliCalorimeterUtils.cxx:1803 AliCalorimeterUtils.cxx:1804 AliCalorimeterUtils.cxx:1805 AliCalorimeterUtils.cxx:1806 AliCalorimeterUtils.cxx:1807 AliCalorimeterUtils.cxx:1808 AliCalorimeterUtils.cxx:1809 AliCalorimeterUtils.cxx:1810 AliCalorimeterUtils.cxx:1811 AliCalorimeterUtils.cxx:1812 AliCalorimeterUtils.cxx:1813 AliCalorimeterUtils.cxx:1814 AliCalorimeterUtils.cxx:1815 AliCalorimeterUtils.cxx:1816 AliCalorimeterUtils.cxx:1817 AliCalorimeterUtils.cxx:1818 AliCalorimeterUtils.cxx:1819 AliCalorimeterUtils.cxx:1820 AliCalorimeterUtils.cxx:1821 AliCalorimeterUtils.cxx:1822 AliCalorimeterUtils.cxx:1823 AliCalorimeterUtils.cxx:1824 AliCalorimeterUtils.cxx:1825 AliCalorimeterUtils.cxx:1826 AliCalorimeterUtils.cxx:1827 AliCalorimeterUtils.cxx:1828 AliCalorimeterUtils.cxx:1829 AliCalorimeterUtils.cxx:1830 AliCalorimeterUtils.cxx:1831 AliCalorimeterUtils.cxx:1832 AliCalorimeterUtils.cxx:1833 AliCalorimeterUtils.cxx:1834 AliCalorimeterUtils.cxx:1835 AliCalorimeterUtils.cxx:1836 AliCalorimeterUtils.cxx:1837 AliCalorimeterUtils.cxx:1838 AliCalorimeterUtils.cxx:1839 AliCalorimeterUtils.cxx:1840 AliCalorimeterUtils.cxx:1841 AliCalorimeterUtils.cxx:1842 AliCalorimeterUtils.cxx:1843 AliCalorimeterUtils.cxx:1844 AliCalorimeterUtils.cxx:1845 AliCalorimeterUtils.cxx:1846 AliCalorimeterUtils.cxx:1847 AliCalorimeterUtils.cxx:1848 AliCalorimeterUtils.cxx:1849 AliCalorimeterUtils.cxx:1850 AliCalorimeterUtils.cxx:1851 AliCalorimeterUtils.cxx:1852 AliCalorimeterUtils.cxx:1853 AliCalorimeterUtils.cxx:1854 AliCalorimeterUtils.cxx:1855 AliCalorimeterUtils.cxx:1856 AliCalorimeterUtils.cxx:1857 AliCalorimeterUtils.cxx:1858 AliCalorimeterUtils.cxx:1859 AliCalorimeterUtils.cxx:1860 AliCalorimeterUtils.cxx:1861 AliCalorimeterUtils.cxx:1862 AliCalorimeterUtils.cxx:1863 AliCalorimeterUtils.cxx:1864 AliCalorimeterUtils.cxx:1865 AliCalorimeterUtils.cxx:1866 AliCalorimeterUtils.cxx:1867 AliCalorimeterUtils.cxx:1868 AliCalorimeterUtils.cxx:1869 AliCalorimeterUtils.cxx:1870 AliCalorimeterUtils.cxx:1871 AliCalorimeterUtils.cxx:1872 AliCalorimeterUtils.cxx:1873 AliCalorimeterUtils.cxx:1874 AliCalorimeterUtils.cxx:1875 AliCalorimeterUtils.cxx:1876 AliCalorimeterUtils.cxx:1877 AliCalorimeterUtils.cxx:1878 AliCalorimeterUtils.cxx:1879 AliCalorimeterUtils.cxx:1880 AliCalorimeterUtils.cxx:1881 AliCalorimeterUtils.cxx:1882 AliCalorimeterUtils.cxx:1883 AliCalorimeterUtils.cxx:1884 AliCalorimeterUtils.cxx:1885 AliCalorimeterUtils.cxx:1886 AliCalorimeterUtils.cxx:1887 AliCalorimeterUtils.cxx:1888 AliCalorimeterUtils.cxx:1889 AliCalorimeterUtils.cxx:1890 AliCalorimeterUtils.cxx:1891 AliCalorimeterUtils.cxx:1892 AliCalorimeterUtils.cxx:1893 AliCalorimeterUtils.cxx:1894 AliCalorimeterUtils.cxx:1895 AliCalorimeterUtils.cxx:1896 AliCalorimeterUtils.cxx:1897 AliCalorimeterUtils.cxx:1898 AliCalorimeterUtils.cxx:1899 AliCalorimeterUtils.cxx:1900 AliCalorimeterUtils.cxx:1901 AliCalorimeterUtils.cxx:1902 AliCalorimeterUtils.cxx:1903 AliCalorimeterUtils.cxx:1904 AliCalorimeterUtils.cxx:1905 AliCalorimeterUtils.cxx:1906 AliCalorimeterUtils.cxx:1907 AliCalorimeterUtils.cxx:1908 AliCalorimeterUtils.cxx:1909 AliCalorimeterUtils.cxx:1910 AliCalorimeterUtils.cxx:1911 AliCalorimeterUtils.cxx:1912 AliCalorimeterUtils.cxx:1913 AliCalorimeterUtils.cxx:1914 AliCalorimeterUtils.cxx:1915 AliCalorimeterUtils.cxx:1916 AliCalorimeterUtils.cxx:1917 AliCalorimeterUtils.cxx:1918 AliCalorimeterUtils.cxx:1919 AliCalorimeterUtils.cxx:1920 AliCalorimeterUtils.cxx:1921 AliCalorimeterUtils.cxx:1922 AliCalorimeterUtils.cxx:1923 AliCalorimeterUtils.cxx:1924 AliCalorimeterUtils.cxx:1925 AliCalorimeterUtils.cxx:1926 AliCalorimeterUtils.cxx:1927 AliCalorimeterUtils.cxx:1928 AliCalorimeterUtils.cxx:1929 AliCalorimeterUtils.cxx:1930 AliCalorimeterUtils.cxx:1931 AliCalorimeterUtils.cxx:1932 AliCalorimeterUtils.cxx:1933 AliCalorimeterUtils.cxx:1934 AliCalorimeterUtils.cxx:1935 AliCalorimeterUtils.cxx:1936 AliCalorimeterUtils.cxx:1937 AliCalorimeterUtils.cxx:1938 AliCalorimeterUtils.cxx:1939 AliCalorimeterUtils.cxx:1940 AliCalorimeterUtils.cxx:1941 AliCalorimeterUtils.cxx:1942 AliCalorimeterUtils.cxx:1943 AliCalorimeterUtils.cxx:1944 AliCalorimeterUtils.cxx:1945 AliCalorimeterUtils.cxx:1946 AliCalorimeterUtils.cxx:1947 AliCalorimeterUtils.cxx:1948 AliCalorimeterUtils.cxx:1949 AliCalorimeterUtils.cxx:1950 AliCalorimeterUtils.cxx:1951 AliCalorimeterUtils.cxx:1952 AliCalorimeterUtils.cxx:1953 AliCalorimeterUtils.cxx:1954 AliCalorimeterUtils.cxx:1955 AliCalorimeterUtils.cxx:1956 AliCalorimeterUtils.cxx:1957 AliCalorimeterUtils.cxx:1958 AliCalorimeterUtils.cxx:1959 AliCalorimeterUtils.cxx:1960