#include <TClonesArray.h>
#include <TFile.h>
#include <TGeoGlobalMagField.h>
#include <TInterpreter.h>
#include <TObjArray.h>
#include <TROOT.h>
#include <TTree.h>
#include "AliAODEvent.h"
#include "AliAODMCParticle.h"
#include "AliAnalysisManager.h"
#include "AliEMCALAfterBurnerUF.h"
#include "AliEMCALClusterizer.h"
#include "AliEMCALClusterizerNxN.h"
#include "AliEMCALClusterizerv1.h"
#include "AliEMCALClusterizerv2.h"
#include "AliEMCALDigit.h"
#include "AliEMCALGeometry.h"
#include "AliEMCALRecParam.h"
#include "AliEMCALRecParam.h"
#include "AliEMCALRecPoint.h"
#include "AliEMCALRecoUtils.h"
#include "AliESDCaloCluster.h"
#include "AliESDEvent.h"
#include "AliLog.h"
#include "AliMagF.h"
#include "AliOADBContainer.h"
#include "AliTender.h"
#include "AliEMCALTenderSupply.h"
ClassImp(AliEMCALTenderSupply)
AliEMCALTenderSupply::AliEMCALTenderSupply() :
AliTenderSupply()
,fTask(0)
,fRun(0)
,fEMCALGeo(0x0)
,fEMCALGeoName("")
,fEMCALRecoUtils(0)
,fConfigName("")
,fDebugLevel(0)
,fNonLinearFunc(-1)
,fNonLinearThreshold(-1)
,fReCalibCluster(kFALSE)
,fUpdateCell(kFALSE)
,fCalibrateEnergy(kFALSE)
,fCalibrateTime(kFALSE)
,fCalibrateTimeParamAvailable(kFALSE)
,fDoNonLinearity(kFALSE)
,fBadCellRemove(kFALSE)
,fRejectExoticCells(kFALSE)
,fRejectExoticClusters(kFALSE)
,fClusterBadChannelCheck(kFALSE)
,fRecalClusPos(kFALSE)
,fFiducial(kFALSE)
,fNCellsFromEMCALBorder(-1)
,fRecalDistToBadChannels(kFALSE)
,fRecalShowerShape(kFALSE)
,fInputTree(0)
,fInputFile(0)
,fGetPassFromFileName(kTRUE)
,fFilepass(0)
,fMass(-1)
,fStep(-1)
,fCutEtaPhiSum(kTRUE)
,fCutEtaPhiSeparate(kFALSE)
,fRcut(-1)
,fEtacut(-1)
,fPhicut(-1)
,fBasePath("")
,fReClusterize(kFALSE)
,fClusterizer(0)
,fGeomMatrixSet(kFALSE)
,fLoadGeomMatrices(kFALSE)
,fRecParam(0x0)
,fDoTrackMatch(kFALSE)
,fDoUpdateOnly(kFALSE)
,fUnfolder(0)
,fDigitsArr(0)
,fClusterArr(0)
,fMisalignSurvey(kdefault)
,fExoticCellFraction(-1)
,fExoticCellDiffTime(-1)
,fExoticCellMinAmplitude(-1)
,fSetCellMCLabelFromCluster(0)
,fTempClusterArr(0)
,fRemapMCLabelForAODs(0)
,fUseAutomaticRecalib(1)
,fUseAutomaticRunDepRecalib(1)
,fUseAutomaticTimeCalib(1)
,fUseAutomaticRecParam(1)
{
for(Int_t i = 0; i < 12; i++) fEMCALMatrix[i] = 0 ;
for(Int_t j = 0; j < 12672; j++) fOrgClusterCellId[j] = -1;
}
AliEMCALTenderSupply::AliEMCALTenderSupply(const char *name, const AliTender *tender) :
AliTenderSupply(name,tender)
,fTask(0)
,fRun(0)
,fEMCALGeo(0x0)
,fEMCALGeoName("")
,fEMCALRecoUtils(0)
,fConfigName("")
,fDebugLevel(0)
,fNonLinearFunc(-1)
,fNonLinearThreshold(-1)
,fReCalibCluster(kFALSE)
,fUpdateCell(kFALSE)
,fCalibrateEnergy(kFALSE)
,fCalibrateTime(kFALSE)
,fCalibrateTimeParamAvailable(kFALSE)
,fDoNonLinearity(kFALSE)
,fBadCellRemove(kFALSE)
,fRejectExoticCells(kFALSE)
,fRejectExoticClusters(kFALSE)
,fClusterBadChannelCheck(kFALSE)
,fRecalClusPos(kFALSE)
,fFiducial(kFALSE)
,fNCellsFromEMCALBorder(-1)
,fRecalDistToBadChannels(kFALSE)
,fRecalShowerShape(kFALSE)
,fInputTree(0)
,fInputFile(0)
,fGetPassFromFileName(kTRUE)
,fFilepass("")
,fMass(-1)
,fStep(-1)
,fCutEtaPhiSum(kTRUE)
,fCutEtaPhiSeparate(kFALSE)
,fRcut(-1)
,fEtacut(-1)
,fPhicut(-1)
,fBasePath("")
,fReClusterize(kFALSE)
,fClusterizer(0)
,fGeomMatrixSet(kFALSE)
,fLoadGeomMatrices(kFALSE)
,fRecParam(0x0)
,fDoTrackMatch(kFALSE)
,fDoUpdateOnly(kFALSE)
,fUnfolder(0)
,fDigitsArr(0)
,fClusterArr(0)
,fMisalignSurvey(kdefault)
,fExoticCellFraction(-1)
,fExoticCellDiffTime(-1)
,fExoticCellMinAmplitude(-1)
,fSetCellMCLabelFromCluster(0)
,fTempClusterArr(0)
,fRemapMCLabelForAODs(0)
,fUseAutomaticRecalib(1)
,fUseAutomaticRunDepRecalib(1)
,fUseAutomaticTimeCalib(1)
,fUseAutomaticRecParam(1)
{
for(Int_t i = 0; i < 12; i++) fEMCALMatrix[i] = 0 ;
for(Int_t j = 0; j < 12672; j++) fOrgClusterCellId[j] = -1;
}
AliEMCALTenderSupply::AliEMCALTenderSupply(const char *name, AliAnalysisTaskSE *task) :
AliTenderSupply(name)
,fTask(task)
,fRun(0)
,fEMCALGeo(0x0)
,fEMCALGeoName("")
,fEMCALRecoUtils(0)
,fConfigName("")
,fDebugLevel(0)
,fNonLinearFunc(-1)
,fNonLinearThreshold(-1)
,fReCalibCluster(kFALSE)
,fUpdateCell(kFALSE)
,fCalibrateEnergy(kFALSE)
,fCalibrateTime(kFALSE)
,fCalibrateTimeParamAvailable(kFALSE)
,fDoNonLinearity(kFALSE)
,fBadCellRemove(kFALSE)
,fRejectExoticCells(kFALSE)
,fRejectExoticClusters(kFALSE)
,fClusterBadChannelCheck(kFALSE)
,fRecalClusPos(kFALSE)
,fFiducial(kFALSE)
,fNCellsFromEMCALBorder(-1)
,fRecalDistToBadChannels(kFALSE)
,fRecalShowerShape(kFALSE)
,fInputTree(0)
,fInputFile(0)
,fGetPassFromFileName(kTRUE)
,fFilepass("")
,fMass(-1)
,fStep(-1)
,fCutEtaPhiSum(kTRUE)
,fCutEtaPhiSeparate(kFALSE)
,fRcut(-1)
,fEtacut(-1)
,fPhicut(-1)
,fBasePath("")
,fReClusterize(kFALSE)
,fClusterizer(0)
,fGeomMatrixSet(kFALSE)
,fLoadGeomMatrices(kFALSE)
,fRecParam(0x0)
,fDoTrackMatch(kFALSE)
,fDoUpdateOnly(kFALSE)
,fUnfolder(0)
,fDigitsArr(0)
,fClusterArr(0)
,fMisalignSurvey(kdefault)
,fExoticCellFraction(-1)
,fExoticCellDiffTime(-1)
,fExoticCellMinAmplitude(-1)
,fSetCellMCLabelFromCluster(0)
,fTempClusterArr(0)
,fRemapMCLabelForAODs(0)
,fUseAutomaticRecalib(1)
,fUseAutomaticRunDepRecalib(1)
,fUseAutomaticTimeCalib(1)
,fUseAutomaticRecParam(1)
{
for(Int_t i = 0; i < 12; i++) fEMCALMatrix[i] = 0 ;
for(Int_t j = 0; j < 12672; j++) fOrgClusterCellId[j] = -1;
}
AliEMCALTenderSupply::~AliEMCALTenderSupply()
{
if (!AliAnalysisManager::GetAnalysisManager()) return;
if (!AliAnalysisManager::GetAnalysisManager()->IsProofMode())
{
delete fEMCALRecoUtils;
delete fRecParam;
delete fUnfolder;
if (!fClusterizer)
{
if (fDigitsArr)
{
fDigitsArr->Clear("C");
delete fDigitsArr;
}
}
else
{
delete fClusterizer;
fDigitsArr = 0;
}
}
}
void AliEMCALTenderSupply::SetDefaults()
{
SwitchOnReclustering();
SwitchOnTrackMatch();
}
Bool_t AliEMCALTenderSupply::RunChanged() const
{
return (fTender && fTender->RunChanged()) || (fTask && fRun != fTask->InputEvent()->GetRunNumber());
}
void AliEMCALTenderSupply::Init()
{
if (fDebugLevel>0)
AliWarning("Init EMCAL Tender supply");
if (fConfigName.Length()>0 && gROOT->LoadMacro(fConfigName) >=0) {
AliDebug(1, Form("Loading settings from macro %s", fConfigName.Data()));
AliEMCALTenderSupply *tender = (AliEMCALTenderSupply*)gInterpreter->ProcessLine("ConfigEMCALTenderSupply()");
fDebugLevel = tender->fDebugLevel;
fEMCALGeoName = tender->fEMCALGeoName;
fEMCALRecoUtils = tender->fEMCALRecoUtils;
fConfigName = tender->fConfigName;
fNonLinearFunc = tender->fNonLinearFunc;
fNonLinearThreshold = tender->fNonLinearThreshold;
fReCalibCluster = tender->fReCalibCluster;
fUpdateCell = tender->fUpdateCell;
fRecalClusPos = tender->fRecalClusPos;
fCalibrateEnergy = tender->fCalibrateEnergy;
fCalibrateTime = tender->fCalibrateTime;
fCalibrateTimeParamAvailable = tender->fCalibrateTimeParamAvailable;
fFiducial = tender->fFiducial;
fNCellsFromEMCALBorder = tender->fNCellsFromEMCALBorder;
fRecalDistToBadChannels = tender->fRecalDistToBadChannels;
fRecalShowerShape = tender->fRecalShowerShape;
fClusterBadChannelCheck = tender->fClusterBadChannelCheck;
fBadCellRemove = tender->fBadCellRemove;
fRejectExoticCells = tender->fRejectExoticCells;
fRejectExoticClusters = tender->fRejectExoticClusters;
fMass = tender->fMass;
fStep = tender->fStep;
fCutEtaPhiSum = tender->fCutEtaPhiSum;
fCutEtaPhiSeparate = tender->fCutEtaPhiSeparate;
fRcut = tender->fRcut;
fEtacut = tender->fEtacut;
fPhicut = tender->fPhicut;
fReClusterize = tender->fReClusterize;
fLoadGeomMatrices = tender->fLoadGeomMatrices;
fRecParam = tender->fRecParam;
fDoNonLinearity = tender->fDoNonLinearity;
fDoTrackMatch = tender->fDoTrackMatch;
fDoUpdateOnly = tender->fDoUpdateOnly;
fMisalignSurvey = tender->fMisalignSurvey;
fExoticCellFraction = tender->fExoticCellFraction;
fExoticCellDiffTime = tender->fExoticCellDiffTime;
fExoticCellMinAmplitude = tender->fExoticCellMinAmplitude;
for(Int_t i = 0; i < 12; i++)
fEMCALMatrix[i] = tender->fEMCALMatrix[i] ;
}
if (fDebugLevel>0){
AliInfo("Emcal Tender settings: ======================================");
AliInfo("------------ Switches --------------------------");
AliInfo(Form("BadCellRemove : %d", fBadCellRemove));
AliInfo(Form("ExoticCellRemove : %d", fRejectExoticCells));
AliInfo(Form("CalibrateEnergy : %d", fCalibrateEnergy));
AliInfo(Form("CalibrateTime : %d", fCalibrateTime));
AliInfo(Form("UpdateCell : %d", fUpdateCell));
AliInfo(Form("DoUpdateOnly : %d", fDoUpdateOnly));
AliInfo(Form("Reclustering : %d", fReClusterize));
AliInfo(Form("ClusterBadChannelCheck : %d", fClusterBadChannelCheck));
AliInfo(Form("ClusterExoticChannelCheck : %d", fRejectExoticClusters));
AliInfo(Form("CellFiducialRegion : %d", fFiducial));
AliInfo(Form("ReCalibrateCluster : %d", fReCalibCluster));
AliInfo(Form("RecalculateClusPos : %d", fRecalClusPos));
AliInfo(Form("RecalShowerShape : %d", fRecalShowerShape));
AliInfo(Form("NonLinearityCorrection : %d", fDoNonLinearity));
AliInfo(Form("RecalDistBadChannel : %d", fRecalDistToBadChannels));
AliInfo(Form("TrackMatch : %d", fDoTrackMatch));
AliInfo("------------ Variables -------------------------");
AliInfo(Form("DebugLevel : %d", fDebugLevel));
AliInfo(Form("BasePath : %s", fBasePath.Data()));
AliInfo(Form("ConfigFileName : %s", fConfigName.Data()));
AliInfo(Form("EMCALGeometryName : %s", fEMCALGeoName.Data()));
AliInfo(Form("NonLinearityFunction : %d", fNonLinearFunc));
AliInfo(Form("NonLinearityThreshold : %d", fNonLinearThreshold));
AliInfo(Form("MisalignmentMatrixSurvey : %d", fMisalignSurvey));
AliInfo(Form("NumberOfCellsFromEMCALBorder : %d", fNCellsFromEMCALBorder));
AliInfo(Form("RCut : %f", fRcut));
AliInfo(Form("Mass : %f", fMass));
AliInfo(Form("Step : %f", fStep));
AliInfo(Form("EtaCut : %f", fEtacut));
AliInfo(Form("PhiCut : %f", fPhicut));
AliInfo(Form("ExoticCellFraction : %f", fExoticCellFraction));
AliInfo(Form("ExoticCellDiffTime : %f", fExoticCellDiffTime));
AliInfo(Form("ExoticCellMinAmplitude : %f", fExoticCellMinAmplitude));
AliInfo("=============================================================");
}
if (!fEMCALRecoUtils)
fEMCALRecoUtils = new AliEMCALRecoUtils;
if (fEMCALGeoName.Length()>0)
fEMCALGeo = AliEMCALGeometry::GetInstance(fEMCALGeoName) ;
fDigitsArr = new TClonesArray("AliEMCALDigit",1000);
if (fNonLinearThreshold != -1)
fEMCALRecoUtils->SetNonLinearityThreshold(fNonLinearThreshold);
if (fNonLinearFunc != -1)
fEMCALRecoUtils->SetNonLinearityFunction(fNonLinearFunc);
fEMCALRecoUtils->SetPositionAlgorithm(AliEMCALRecoUtils::kPosTowerGlobal);
if (fNCellsFromEMCALBorder != -1)
fEMCALRecoUtils->SetNumberOfCellsFromEMCALBorder(fNCellsFromEMCALBorder);
fEMCALRecoUtils->SwitchOnNoFiducialBorderInEMCALEta0();
if (fExoticCellFraction != -1)
fEMCALRecoUtils->SetExoticCellFractionCut(fExoticCellFraction);
if (fExoticCellDiffTime != -1)
fEMCALRecoUtils->SetExoticCellDiffTimeCut(fExoticCellDiffTime);
if (fExoticCellMinAmplitude != -1)
fEMCALRecoUtils->SetExoticCellMinAmplitudeCut(fExoticCellMinAmplitude);
if (fMass != -1)
fEMCALRecoUtils->SetMass(fMass);
if (fStep != -1)
fEMCALRecoUtils->SetStep(fStep);
if (fCutEtaPhiSum) {
fEMCALRecoUtils->SwitchOnCutEtaPhiSum();
if (fRcut != -1)
fEMCALRecoUtils->SetCutR(fRcut);
} else if (fCutEtaPhiSeparate) {
fEMCALRecoUtils->SwitchOnCutEtaPhiSeparate();
if (fEtacut != -1)
fEMCALRecoUtils->SetCutEta(fEtacut);
if (fPhicut != -1)
fEMCALRecoUtils->SetCutPhi(fPhicut);
}
}
AliVEvent* AliEMCALTenderSupply::GetEvent()
{
if (fTender) {
return fTender->GetEvent();
} else if (fTask) {
return fTask->InputEvent();
}
return 0;
}
void AliEMCALTenderSupply::ProcessEvent()
{
AliVEvent *event = GetEvent();
if (!event) {
AliError("Event ptr = 0, returning");
return;
}
if (RunChanged()) {
fRun = event->GetRunNumber();
AliWarning(Form("Run changed, initializing parameters for %d", fRun));
if (dynamic_cast<AliAODEvent*>(event)) {
AliWarning("=============================================================");
AliWarning("=== Running on AOD is not equivalent to running on ESD! ===");
AliWarning("=============================================================");
}
if (fEMCALGeoName.Length()==0) {
fEMCALGeoName = "EMCAL_FIRSTYEARV1";
if (fRun>139517) {
fEMCALGeoName = "EMCAL_COMPLETEV1";
}
if (fRun>170593) {
fEMCALGeoName = "EMCAL_COMPLETE12SMV1";
}
fEMCALGeo = AliEMCALGeometry::GetInstance(fEMCALGeoName);
if (!fEMCALGeo) {
AliFatal(Form("Can not create geometry: %s", fEMCALGeoName.Data()));
return;
}
}
if (fGetPassFromFileName)
GetPass();
Bool_t needRecoParam = fReClusterize;
Bool_t needBadChannels = fBadCellRemove | fClusterBadChannelCheck | fRecalDistToBadChannels | fReClusterize;
Bool_t needRecalib = fCalibrateEnergy | fReClusterize;
Bool_t needTimecalib = fCalibrateTime | fReClusterize;
Bool_t needMisalign = fRecalClusPos | fReClusterize;
Bool_t needClusterizer = fReClusterize;
if (needBadChannels) {
Int_t fInitBC = InitBadChannels();
if (fInitBC==0)
AliError("InitBadChannels returned false, returning");
if (fInitBC==1)
AliWarning("InitBadChannels OK");
if (fInitBC>1)
AliWarning(Form("No external hot channel set: %d - %s", event->GetRunNumber(), fFilepass.Data()));
}
if (needRecalib) {
if(fUseAutomaticRecalib)
{
Int_t fInitRecalib = InitRecalib();
if (fInitRecalib==0)
AliError("InitRecalib returned false, returning");
if (fInitRecalib==1)
AliWarning("InitRecalib OK");
if (fInitRecalib>1)
AliWarning(Form("No recalibration available: %d - %s", event->GetRunNumber(), fFilepass.Data()));
}
if(fUseAutomaticRunDepRecalib)
{
Int_t fInitRunDepRecalib = InitRunDepRecalib();
if (fInitRunDepRecalib==0)
AliError("InitrunDepRecalib returned false, returning");
if (fInitRunDepRecalib==1)
AliWarning("InitRecalib OK");
if (fInitRunDepRecalib>1)
AliWarning(Form("No Temperature recalibration available: %d - %s", event->GetRunNumber(), fFilepass.Data()));
}
}
if (needTimecalib && fUseAutomaticTimeCalib) {
Int_t initTC = InitTimeCalibration();
if (!initTC)
AliError("InitTimeCalibration returned false, returning");
if (initTC==1) {
fCalibrateTimeParamAvailable = kTRUE;
AliWarning("InitTimeCalib OK");
}
if (initTC > 1)
AliWarning(Form("No external time calibration available: %d - %s", event->GetRunNumber(), fFilepass.Data()));
}
if (needMisalign) {
if (!InitMisalignMatrix())
AliError("InitMisalignmentMatrix returned false, returning");
else
AliWarning("InitMisalignMatrix OK");
}
if (needRecoParam && fUseAutomaticRecParam) {
Int_t initRC = InitRecParam();
if (initRC == 0)
AliInfo("Defaults reco params loaded.");
if (initRC > 1)
AliWarning("User defined reco params.");
}
if (needClusterizer) {
if (!InitClusterization())
AliError("InitClusterization returned false, returning");
else
AliWarning("InitClusterization OK");
}
if (fDebugLevel>1)
fEMCALRecoUtils->Print("");
}
if (fReClusterize) {
fReCalibCluster = kFALSE;
fRecalClusPos = kFALSE;
fRecalShowerShape = kFALSE;
}
if (fCalibrateEnergy)
fEMCALRecoUtils->SwitchOnRecalibration();
else
fEMCALRecoUtils->SwitchOffRecalibration();
if (fCalibrateTime)
fEMCALRecoUtils->SwitchOnTimeRecalibration();
else
fEMCALRecoUtils->SwitchOffTimeRecalibration();
if (fBadCellRemove)
fEMCALRecoUtils->SwitchOnBadChannelsRemoval();
else
fEMCALRecoUtils->SwitchOffBadChannelsRemoval();
if (fRecalDistToBadChannels)
fEMCALRecoUtils->SwitchOnDistToBadChannelRecalculation();
else
fEMCALRecoUtils->SwitchOffDistToBadChannelRecalculation();
if (fRejectExoticCells)
fEMCALRecoUtils->SwitchOnRejectExoticCell();
else
fEMCALRecoUtils->SwitchOffRejectExoticCell();
if (fRejectExoticClusters)
fEMCALRecoUtils->SwitchOnRejectExoticCluster();
else
fEMCALRecoUtils->SwitchOffRejectExoticCluster();
AliVCaloCells *cells= event->GetEMCALCells();
if (cells->GetNumberOfCells()<=0)
{
if (fDebugLevel>1)
AliWarning(Form("Number of EMCAL cells = %d, returning", cells->GetNumberOfCells()));
return;
}
if (fDebugLevel>2)
AliInfo(Form("Re-calibrate cluster %d\n",fReCalibCluster));
if (fCalibrateEnergy || fCalibrateTime || fBadCellRemove)
fEMCALRecoUtils->ResetCellsCalibrated();
if (fUpdateCell) {
UpdateCells();
fEMCALRecoUtils->SwitchOffRecalibration();
fEMCALRecoUtils->SwitchOffTimeRecalibration();
if (fDoUpdateOnly)
return;
}
if (fReClusterize)
{
FillDigitsArray();
Clusterize();
UpdateClusters();
}
TClonesArray *clusArr = dynamic_cast<TClonesArray*>(event->FindListObject("caloClusters"));
if (!clusArr)
clusArr = dynamic_cast<TClonesArray*>(event->FindListObject("CaloClusters"));
if (!clusArr) {
AliWarning(Form("No cluster array, number of cells in event = %d, returning", cells->GetNumberOfCells()));
return;
}
Int_t nclusters = clusArr->GetEntriesFast();
for (Int_t icluster=0; icluster < nclusters; ++icluster)
{
AliVCluster *clust = static_cast<AliVCluster*>(clusArr->At(icluster));
if (!clust)
continue;
if (!clust->IsEMCAL())
continue;
if (fClusterBadChannelCheck) {
Bool_t badRemoval = fEMCALRecoUtils->IsBadChannelsRemovalSwitchedOn();
fEMCALRecoUtils->SwitchOnBadChannelsRemoval();
Bool_t badResult = fEMCALRecoUtils->ClusterContainsBadChannel(fEMCALGeo, clust->GetCellsAbsId(), clust->GetNCells());
if (!badRemoval)
fEMCALRecoUtils->SwitchOffBadChannelsRemoval();
if (badResult)
{
delete clusArr->RemoveAt(icluster);
continue;
}
}
if (fRejectExoticClusters)
{
Bool_t exRemoval = fEMCALRecoUtils->IsRejectExoticCell();
fEMCALRecoUtils->SwitchOnRejectExoticCell();
Int_t bunchCrossNo = event->GetBunchCrossNumber();
Bool_t exResult = fEMCALRecoUtils->IsExoticCluster(clust, cells, bunchCrossNo);
if (!exRemoval)
fEMCALRecoUtils->SwitchOffRejectExoticCell();
if (exResult) {
delete clusArr->RemoveAt(icluster);
continue;
}
}
if (fFiducial) {
if (!fEMCALRecoUtils->CheckCellFiducialRegion(fEMCALGeo, clust, cells)){
delete clusArr->RemoveAt(icluster);
continue;
}
}
if (fReCalibCluster) {
fEMCALRecoUtils->RecalibrateClusterEnergy(fEMCALGeo, clust, cells);
if (clust->E() < 1e-9) {
delete clusArr->RemoveAt(icluster);
continue;
}
}
if (fRecalClusPos)
fEMCALRecoUtils->RecalculateClusterPosition(fEMCALGeo, cells, clust);
if (fRecalShowerShape)
fEMCALRecoUtils->RecalculateClusterShowerShapeParameters(fEMCALGeo, cells, clust);
if (fDoNonLinearity) {
Float_t correctedEnergy = fEMCALRecoUtils->CorrectClusterEnergyLinearity(clust);
clust->SetE(correctedEnergy);
}
if (fRecalDistToBadChannels)
fEMCALRecoUtils->RecalculateClusterDistanceToBadChannel(fEMCALGeo, cells, clust);
}
clusArr->Compress();
if (!fDoTrackMatch)
return;
if (!TGeoGlobalMagField::Instance()->GetField()) {
event->InitMagneticField();
}
fEMCALRecoUtils->FindMatches(event,0x0,fEMCALGeo);
fEMCALRecoUtils->SetClusterMatchedToTrack(event);
fEMCALRecoUtils->SetTracksMatchedToCluster(event);
}
Bool_t AliEMCALTenderSupply::InitMisalignMatrix()
{
AliVEvent *event = GetEvent();
if (!event)
return kFALSE;
if (fGeomMatrixSet)
{
AliInfo("Misalignment matrix already set");
return kTRUE;
}
if (fDebugLevel>0)
AliInfo("Initialising misalignment matrix");
if (fLoadGeomMatrices) {
for(Int_t mod=0; mod < fEMCALGeo->GetNumberOfSuperModules(); ++mod)
{
if (fEMCALMatrix[mod]){
if (fDebugLevel > 2)
fEMCALMatrix[mod]->Print();
fEMCALGeo->SetMisalMatrix(fEMCALMatrix[mod],mod);
}
}
fGeomMatrixSet = kTRUE;
return kTRUE;
}
Int_t runGM = event->GetRunNumber();
TObjArray *mobj = 0;
if (fMisalignSurvey == kdefault)
{
AliOADBContainer emcalgeoCont(Form("emcal"));
emcalgeoCont.InitFromFile("$ALICE_ROOT/OADB/EMCAL/EMCALlocal2master.root",Form("AliEMCALgeo"));
mobj=(TObjArray*)emcalgeoCont.GetObject(runGM,"EmcalMatrices");
}
if (fMisalignSurvey == kSurveybyS)
{
if (runGM <= 140000) {
AliOADBContainer emcalgeoCont(Form("emcal2010"));
emcalgeoCont.InitFromFile("$ALICE_ROOT/OADB/EMCAL/EMCALlocal2master.root",Form("AliEMCALgeo"));
mobj=(TObjArray*)emcalgeoCont.GetObject(100,"survey10");
}
else if (runGM>140000)
{
AliOADBContainer emcalgeoCont(Form("emcal2011"));
emcalgeoCont.InitFromFile("$ALICE_ROOT/OADB/EMCAL/EMCALlocal2master.root",Form("AliEMCALgeo"));
mobj=(TObjArray*)emcalgeoCont.GetObject(100,"survey11byS");
}
}
if (fMisalignSurvey == kSurveybyM)
{
if (runGM <= 140000) {
AliOADBContainer emcalgeoCont(Form("emcal2010"));
emcalgeoCont.InitFromFile("$ALICE_ROOT/OADB/EMCAL/EMCALlocal2master.root",Form("AliEMCALgeo"));
mobj=(TObjArray*)emcalgeoCont.GetObject(100,"survey10");
}
else if (runGM>140000)
{
AliOADBContainer emcalgeoCont(Form("emcal2011"));
emcalgeoCont.InitFromFile("$ALICE_ROOT/OADB/EMCAL/EMCALlocal2master.root",Form("AliEMCALgeo"));
mobj=(TObjArray*)emcalgeoCont.GetObject(100,"survey11byM");
}
}
if (!mobj) {
AliFatal("Geometry matrix array not found");
return kFALSE;
}
for(Int_t mod=0; mod < (fEMCALGeo->GetEMCGeometry())->GetNumberOfSuperModules(); mod++)
{
fEMCALMatrix[mod] = (TGeoHMatrix*) mobj->At(mod);
fEMCALGeo->SetMisalMatrix(fEMCALMatrix[mod],mod);
fEMCALMatrix[mod]->Print();
}
return kTRUE;
}
Int_t AliEMCALTenderSupply::InitBadChannels()
{
AliVEvent *event = GetEvent();
if (!event)
return 0;
if (fDebugLevel>0)
AliInfo("Initialising Bad channel map");
if (!fEMCALRecoUtils->GetEMCALBadChannelStatusMapArray())
fEMCALRecoUtils->InitEMCALBadChannelStatusMap() ;
Int_t runBC = event->GetRunNumber();
AliOADBContainer *contBC = new AliOADBContainer("");
if (fBasePath!="")
{
if (fDebugLevel>0) AliInfo(Form("Loading Bad Channels OADB from given path %s",fBasePath.Data()));
TFile *fbad=new TFile(Form("%s/EMCALBadChannels.root",fBasePath.Data()),"read");
if (!fbad || fbad->IsZombie())
{
AliFatal(Form("EMCALBadChannels.root was not found in the path provided: %s",fBasePath.Data()));
return 0;
}
if (fbad) delete fbad;
contBC->InitFromFile(Form("%s/EMCALBadChannels.root",fBasePath.Data()),"AliEMCALBadChannels");
}
else
{
if (fDebugLevel>0) AliInfo("Loading Bad Channels OADB from $ALICE_ROOT/OADB/EMCAL");
TFile *fbad=new TFile("$ALICE_ROOT/OADB/EMCAL/EMCALBadChannels.root","read");
if (!fbad || fbad->IsZombie())
{
AliFatal("$ALICE_ROOT/OADB/EMCAL/EMCALBadChannels.root was not found");
return 0;
}
if (fbad) delete fbad;
contBC->InitFromFile("$ALICE_ROOT/OADB/EMCAL/EMCALBadChannels.root","AliEMCALBadChannels");
}
TObjArray *arrayBC=(TObjArray*)contBC->GetObject(runBC);
if (!arrayBC)
{
AliError(Form("No external hot channel set for run number: %d", runBC));
return 2;
}
Int_t sms = fEMCALGeo->GetEMCGeometry()->GetNumberOfSuperModules();
for (Int_t i=0; i<sms; ++i)
{
TH2I *h = fEMCALRecoUtils->GetEMCALChannelStatusMap(i);
if (h)
delete h;
h=(TH2I*)arrayBC->FindObject(Form("EMCALBadChannelMap_Mod%d",i));
if (!h)
{
AliError(Form("Can not get EMCALBadChannelMap_Mod%d",i));
continue;
}
h->SetDirectory(0);
fEMCALRecoUtils->SetEMCALChannelStatusMap(i,h);
}
return 1;
}
Int_t AliEMCALTenderSupply::InitRecalib()
{
AliVEvent *event = GetEvent();
if (!event)
return 0;
if (fDebugLevel>0)
AliInfo("Initialising recalibration factors");
if (!fEMCALRecoUtils->GetEMCALRecalibrationFactorsArray())
fEMCALRecoUtils->InitEMCALRecalibrationFactors() ;
Int_t runRC = event->GetRunNumber();
AliOADBContainer *contRF=new AliOADBContainer("");
if (fBasePath!="")
{
if (fDebugLevel>0) AliInfo(Form("Loading Recalib OADB from given path %s",fBasePath.Data()));
TFile *fRecalib= new TFile(Form("%s/EMCALRecalib.root",fBasePath.Data()),"read");
if (!fRecalib || fRecalib->IsZombie())
{
AliFatal(Form("EMCALRecalib.root not found in %s",fBasePath.Data()));
return 0;
}
if (fRecalib) delete fRecalib;
contRF->InitFromFile(Form("%s/EMCALRecalib.root",fBasePath.Data()),"AliEMCALRecalib");
}
else
{
if (fDebugLevel>0) AliInfo("Loading Recalib OADB from $ALICE_ROOT/OADB/EMCAL");
TFile *fRecalib= new TFile("$ALICE_ROOT/OADB/EMCAL/EMCALRecalib.root","read");
if (!fRecalib || fRecalib->IsZombie())
{
AliFatal("$ALICE_ROOT/OADB/EMCAL/EMCALRecalib.root was not found");
return 0;
}
if (fRecalib) delete fRecalib;
contRF->InitFromFile("$ALICE_ROOT/OADB/EMCAL/EMCALRecalib.root","AliEMCALRecalib");
}
TObjArray *recal=(TObjArray*)contRF->GetObject(runRC);
if (!recal)
{
AliError(Form("No Objects for run: %d",runRC));
return 2;
}
TObjArray *recalpass=(TObjArray*)recal->FindObject(fFilepass);
if (!recalpass)
{
AliError(Form("No Objects for run: %d - %s",runRC,fFilepass.Data()));
return 2;
}
TObjArray *recalib=(TObjArray*)recalpass->FindObject("Recalib");
if (!recalib)
{
AliError(Form("No Recalib histos found for %d - %s",runRC,fFilepass.Data()));
return 2;
}
if (fDebugLevel>0) recalib->Print();
Int_t sms = fEMCALGeo->GetEMCGeometry()->GetNumberOfSuperModules();
for (Int_t i=0; i<sms; ++i)
{
TH2F *h = fEMCALRecoUtils->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);
fEMCALRecoUtils->SetEMCALChannelRecalibrationFactors(i,h);
}
return 1;
}
Int_t AliEMCALTenderSupply::InitRunDepRecalib()
{
AliVEvent *event = GetEvent();
if (!event)
return 0;
if (fDebugLevel>0)
AliInfo("Initialising recalibration factors");
if (!fEMCALRecoUtils->GetEMCALRecalibrationFactorsArray())
fEMCALRecoUtils->InitEMCALRecalibrationFactors() ;
Int_t runRC = event->GetRunNumber();
AliOADBContainer *contRF=new AliOADBContainer("");
if (fBasePath!="")
{
if (fDebugLevel>0) AliInfo(Form("Loading Recalib OADB from given path %s",fBasePath.Data()));
TFile *fRunDepRecalib= new TFile(Form("%s/EMCALTemperatureCorrCalib.root",fBasePath.Data()),"read");
if (!fRunDepRecalib || fRunDepRecalib->IsZombie())
{
AliFatal(Form("EMCALTemperatureCorrCalib.root not found in %s",fBasePath.Data()));
return 0;
}
if (fRunDepRecalib) delete fRunDepRecalib;
contRF->InitFromFile(Form("%s/EMCALTemperatureCorrCalib.root",fBasePath.Data()),"AliEMCALRunDepTempCalibCorrections");
}
else
{
if (fDebugLevel>0) AliInfo("Loading Recalib OADB from $ALICE_ROOT/OADB/EMCAL");
TFile *fRunDepRecalib= new TFile("$ALICE_ROOT/OADB/EMCAL/EMCALTemperatureCorrCalib.root","read");
if (!fRunDepRecalib || fRunDepRecalib->IsZombie())
{
AliFatal("$ALICE_ROOT/OADB/EMCAL/EMCALTemperatureCorrCalib.root was not found");
return 0;
}
if (fRunDepRecalib) delete fRunDepRecalib;
contRF->InitFromFile("$ALICE_ROOT/OADB/EMCAL/EMCALTemperatureCorrCalib.root","AliEMCALRunDepTempCalibCorrections");
}
TH1S *rundeprecal=(TH1S*)contRF->GetObject(runRC);
if (!rundeprecal)
{
AliWarning(Form("No TemperatureCorrCalib Objects for run: %d",runRC));
Int_t lower = 0;
Int_t ic = 0;
Int_t maxEntry = contRF->GetNumberOfEntries();
while ((ic < maxEntry) && (contRF->UpperLimit(ic) < runRC)) {
lower = ic;
ic++;
}
Int_t closest = lower;
if ((ic<maxEntry) &&
(contRF->LowerLimit(ic)-runRC) < (runRC - contRF->UpperLimit(lower))) {
closest = ic;
}
AliWarning(Form("TemperatureCorrCalib Objects found closest id %d from run: %d", closest, contRF->LowerLimit(closest)));
rundeprecal = (TH1S*) contRF->GetObjectByIndex(closest);
}
if (fDebugLevel>0) rundeprecal->Print();
Int_t nSM = fEMCALGeo->GetEMCGeometry()->GetNumberOfSuperModules();
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 = fEMCALRecoUtils->GetEMCALChannelRecalibrationFactor(ism,icol,irow);
Int_t absID = fEMCALGeo->GetAbsCellIdFromCellIndexes(ism, irow, icol);
factor *= rundeprecal->GetBinContent(absID) / 10000. ;
fEMCALRecoUtils->SetEMCALChannelRecalibrationFactor(ism,icol,irow,factor);
}
}
}
return 1;
}
Int_t AliEMCALTenderSupply::InitTimeCalibration()
{
AliVEvent *event = GetEvent();
if (!event)
return 0;
if (fDebugLevel>0)
AliInfo("Initialising time calibration map");
if (!fEMCALRecoUtils->GetEMCALTimeRecalibrationFactorsArray())
fEMCALRecoUtils->InitEMCALTimeRecalibrationFactors() ;
Int_t runBC = event->GetRunNumber();
AliOADBContainer *contBC = new AliOADBContainer("");
if (fBasePath!="")
{
if (fDebugLevel>0) AliInfo(Form("Loading time calibration OADB from given path %s",fBasePath.Data()));
TFile *fbad=new TFile(Form("%s/EMCALTimeCalib.root",fBasePath.Data()),"read");
if (!fbad || fbad->IsZombie())
{
AliFatal(Form("EMCALTimeCalib.root was not found in the path provided: %s",fBasePath.Data()));
return 0;
}
if (fbad) delete fbad;
contBC->InitFromFile(Form("%s/EMCALTimeCalib.root",fBasePath.Data()),"AliEMCALTimeCalib");
}
else
{
if (fDebugLevel>0) AliInfo("Loading time calibration OADB from $ALICE_ROOT/OADB/EMCAL");
TFile *fbad=new TFile("$ALICE_ROOT/OADB/EMCAL/EMCALTimeCalib.root","read");
if (!fbad || fbad->IsZombie())
{
AliFatal("$ALICE_ROOT/OADB/EMCAL/EMCALTimeCalib.root was not found");
return 0;
}
if (fbad) delete fbad;
contBC->InitFromFile("$ALICE_ROOT/OADB/EMCAL/EMCALTimeCalib.root","AliEMCALTimeCalib");
}
TObjArray *arrayBC=(TObjArray*)contBC->GetObject(runBC);
if (!arrayBC)
{
AliError(Form("No external time calibration set for run number: %d", runBC));
return 2;
}
TString pass = fFilepass;
if (fFilepass=="calo_spc") pass ="pass1";
TObjArray *arrayBCpass=(TObjArray*)arrayBC->FindObject(pass);
if (!arrayBCpass)
{
AliError(Form("No external time calibration set for: %d -%s", runBC,pass.Data()));
return 2;
}
if (fDebugLevel>0) arrayBCpass->Print();
for(Int_t i = 0; i < 4; i++)
{
TH1F *h = fEMCALRecoUtils->GetEMCALChannelTimeRecalibrationFactors(i);
if (h)
delete h;
h = (TH1F*)arrayBCpass->FindObject(Form("hAllTimeAvBC%d",i));
if (!h)
{
AliError(Form("Can not get hAllTimeAvBC%d",i));
continue;
}
h->SetDirectory(0);
fEMCALRecoUtils->SetEMCALChannelTimeRecalibrationFactors(i,h);
}
return 1;
}
void AliEMCALTenderSupply::UpdateCells()
{
AliVEvent *event = GetEvent();
if (!event) return ;
AliVCaloCells *cells = event->GetEMCALCells();
Int_t bunchCrossNo = event->GetBunchCrossNumber();
fEMCALRecoUtils->RecalibrateCells(cells, bunchCrossNo);
if (fRejectExoticCells)
{
Short_t absId =-1;
Double_t ecell = 0;
Double_t tcell = 0;
Double_t efrac = 0;
Int_t mclabel = -1;
Bool_t isExot = kFALSE;
Int_t nEMcell = cells->GetNumberOfCells() ;
for (Int_t iCell = 0; iCell < nEMcell; iCell++)
{
cells->GetCell(iCell, absId, ecell, tcell, mclabel, efrac);
isExot = fEMCALRecoUtils->IsExoticCell(absId, cells, bunchCrossNo);
if (isExot)
cells->SetCell(iCell, absId, 0.0, -1.0, mclabel, efrac);
}
}
cells->Sort();
}
TString AliEMCALTenderSupply::GetBeamType()
{
AliVEvent *event = GetEvent();
if (!event) {
AliError("Couldn't retrieve event!");
return "";
}
TString beamType;
AliESDEvent *esd = dynamic_cast<AliESDEvent*>(event);
if (esd) {
const AliESDRun *run = esd->GetESDRun();
beamType = run->GetBeamType();
}
else
{
Int_t runNumber = event->GetRunNumber();
if ((runNumber >= 136851 && runNumber <= 139517)
|| (runNumber >= 166529 && runNumber <= 170593))
{
beamType = "A-A";
}
else
{
beamType = "p-p";
}
}
return beamType;
}
Int_t AliEMCALTenderSupply::InitRecParam()
{
if (fRecParam != 0)
return 2;
TString beamType = GetBeamType();
fRecParam = new AliEMCALRecParam();
fRecParam->SetClusteringThreshold(0.100);
fRecParam->SetMinECut(0.050);
if (!fCalibrateTimeParamAvailable) {
fRecParam->SetTimeCut(250*1.e-9);
fRecParam->SetTimeMin(425*1.e-9);
fRecParam->SetTimeMax(825*1.e-9);
} else {
fRecParam->SetTimeCut(100*1.e-9);
fRecParam->SetTimeMin(-50*1.e-9);
fRecParam->SetTimeMax(50*1.e-9);
}
if (beamType == "A-A") {
fRecParam->SetClusterizerFlag(AliEMCALRecParam::kClusterizerv2);
} else {
fRecParam->SetClusterizerFlag(AliEMCALRecParam::kClusterizerv1);
}
return 0;
}
Bool_t AliEMCALTenderSupply::InitClusterization()
{
AliVEvent *event = GetEvent();
if (!event)
return kFALSE;
if (fDebugLevel>0)
AliInfo(Form("Initialising reclustering parameters: Clusterizer type: %d",fRecParam->GetClusterizerFlag()));
if (fClusterizer) {
fClusterizer->SetDigitsArr(0);
delete fClusterizer;
fClusterizer = 0;
}
if (fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerv1)
fClusterizer = new AliEMCALClusterizerv1 (fEMCALGeo);
else if (fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerv2)
fClusterizer = new AliEMCALClusterizerv2(fEMCALGeo);
else if (fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerNxN)
{
AliEMCALClusterizerNxN *clusterizer = new AliEMCALClusterizerNxN(fEMCALGeo);
clusterizer->SetNRowDiff(fRecParam->GetNRowDiff());
clusterizer->SetNColDiff(fRecParam->GetNColDiff());
fClusterizer = clusterizer;
}
else
{
AliFatal(Form("Clusterizer < %d > not available", fRecParam->GetClusterizerFlag()));
return kFALSE;
}
fClusterizer->SetECAClusteringThreshold(fRecParam->GetClusteringThreshold());
fClusterizer->SetECALogWeight (fRecParam->GetW0() );
fClusterizer->SetMinECut (fRecParam->GetMinECut() );
fClusterizer->SetUnfolding (fRecParam->GetUnfold() );
fClusterizer->SetECALocalMaxCut (fRecParam->GetLocMaxCut() );
fClusterizer->SetTimeCut (fRecParam->GetTimeCut() );
fClusterizer->SetTimeMin (fRecParam->GetTimeMin() );
fClusterizer->SetTimeMax (fRecParam->GetTimeMax() );
fClusterizer->SetInputCalibrated (kTRUE );
fClusterizer->SetJustClusters (kTRUE );
if (fRecParam->GetUnfold())
{
for (Int_t i = 0; i < 8; ++i)
{
fClusterizer->SetSSPars(i, fRecParam->GetSSPars(i));
}
for (Int_t i = 0; i < 3; ++i)
{
fClusterizer->SetPar5 (i, fRecParam->GetPar5(i));
fClusterizer->SetPar6 (i, fRecParam->GetPar6(i));
}
fClusterizer->InitClusterUnfolding();
}
fClusterizer->SetDigitsArr(fDigitsArr);
fClusterizer->SetOutput(0);
fClusterArr = const_cast<TObjArray *>(fClusterizer->GetRecPoints());
return kTRUE;
}
void AliEMCALTenderSupply::FillDigitsArray()
{
AliVEvent *event = GetEvent();
if (!event)
return;
Int_t cellLabels[12672];
if (fSetCellMCLabelFromCluster)
{
for (Int_t i = 0; i < 12672; i++)
{
cellLabels [i] = 0 ;
fOrgClusterCellId[i] =-1 ;
}
Int_t nClusters = event->GetNumberOfCaloClusters();
for (Int_t i = 0; i < nClusters; i++)
{
AliVCluster *clus = event->GetCaloCluster(i);
if (!clus) continue;
if (!clus->IsEMCAL()) continue ;
Int_t label = clus->GetLabel();
UShort_t * index = clus->GetCellsAbsId() ;
for(Int_t icell=0; icell < clus->GetNCells(); icell++)
{
cellLabels [index[icell]] = label;
fOrgClusterCellId[index[icell]] = i ;
}
}
}
fDigitsArr->Clear("C");
AliVCaloCells *cells = event->GetEMCALCells();
Int_t ncells = cells->GetNumberOfCells();
for (Int_t icell = 0, idigit = 0; icell < ncells; ++icell)
{
Double_t cellAmplitude=0, cellTime=0, efrac = 0;
Short_t cellNumber=0;
Int_t mcLabel=-1;
if (cells->GetCell(icell, cellNumber, cellAmplitude, cellTime, mcLabel, efrac) != kTRUE)
break;
if (cellAmplitude < fRecParam->GetMinECut())
continue;
if (fEMCALRecoUtils->IsExoticCell(cellNumber,cells,event->GetBunchCrossNumber()))
continue;
if (fSetCellMCLabelFromCluster) mcLabel = cellLabels[cellNumber];
else if (fRemapMCLabelForAODs ) RemapMCLabelForAODs(mcLabel);
if (mcLabel > 0 && efrac < 1e-6) efrac = 1;
new((*fDigitsArr)[idigit]) AliEMCALDigit(mcLabel, mcLabel, cellNumber,
(Float_t)cellAmplitude, (Float_t)cellTime,
AliEMCALDigit::kHG,idigit, 0, 0, efrac*cellAmplitude);
idigit++;
}
}
void AliEMCALTenderSupply::Clusterize()
{
fClusterizer->Digits2Clusters("");
}
void AliEMCALTenderSupply::UpdateClusters()
{
AliVEvent *event = GetEvent();
if (!event)
return;
TClonesArray *clus = dynamic_cast<TClonesArray*>(event->FindListObject("caloClusters"));
if (!clus)
clus = dynamic_cast<TClonesArray*>(event->FindListObject("CaloClusters"));
if (!clus)
{
AliError(" Null pointer to calo clusters array, returning");
return;
}
if (fSetCellMCLabelFromCluster == 2)
SetClustersMCLabelFromOriginalClusters() ;
Int_t nents = clus->GetEntriesFast();
for (Int_t i=0; i < nents; ++i)
{
AliVCluster *c = dynamic_cast<AliVCluster*>(clus->At(i));
if (!c)
continue;
if (c->IsEMCAL())
{
delete clus->RemoveAt(i);
}
}
clus->Compress();
RecPoints2Clusters(clus);
}
void AliEMCALTenderSupply::RecPoints2Clusters(TClonesArray *clus)
{
AliVEvent *event = GetEvent();
if (!event)
return;
Int_t ncls = fClusterArr->GetEntriesFast();
for(Int_t i=0, nout=clus->GetEntriesFast(); i < ncls; ++i)
{
AliEMCALRecPoint *recpoint = static_cast<AliEMCALRecPoint*>(fClusterArr->At(i));
Int_t ncellsTrue = 0;
const Int_t ncells = recpoint->GetMultiplicity();
UShort_t absIds[ncells];
Double32_t ratios[ncells];
Int_t *dlist = recpoint->GetDigitsList();
Float_t *elist = recpoint->GetEnergiesList();
for (Int_t c = 0; c < ncells; ++c)
{
AliEMCALDigit *digit = static_cast<AliEMCALDigit*>(fDigitsArr->At(dlist[c]));
absIds[ncellsTrue] = digit->GetId();
ratios[ncellsTrue] = elist[c]/digit->GetAmplitude();
if (ratios[ncellsTrue] < 0.001)
continue;
++ncellsTrue;
}
if (ncellsTrue < 1)
{
AliWarning("Skipping cluster with no cells");
continue;
}
TVector3 gpos;
recpoint->GetGlobalPosition(gpos);
Float_t g[3];
gpos.GetXYZ(g);
AliVCluster *c = static_cast<AliVCluster*>(clus->New(nout++));
c->SetID(nout-1);
c->SetType(AliVCluster::kEMCALClusterv1);
c->SetE(recpoint->GetEnergy());
c->SetPosition(g);
c->SetNCells(ncellsTrue);
c->SetDispersion(recpoint->GetDispersion());
c->SetEmcCpvDistance(-1);
c->SetChi2(-1);
c->SetTOF(recpoint->GetTime()) ;
c->SetNExMax(recpoint->GetNExMax());
Float_t elipAxis[2];
recpoint->GetElipsAxis(elipAxis);
c->SetM02(elipAxis[0]*elipAxis[0]) ;
c->SetM20(elipAxis[1]*elipAxis[1]) ;
c->SetCellsAbsId(absIds);
c->SetCellsAmplitudeFraction(ratios);
Int_t parentMult = 0;
Int_t *parentList = recpoint->GetParents(parentMult);
if (parentMult > 0) c->SetLabel(parentList, parentMult);
}
}
void AliEMCALTenderSupply::RemapMCLabelForAODs(Int_t & label)
{
if (label < 0) return;
AliAODEvent * evt = dynamic_cast<AliAODEvent*> (GetEvent()) ;
if (!evt) return ;
TClonesArray * arr = dynamic_cast<TClonesArray*>(evt->FindListObject("mcparticles")) ;
if (!arr) return ;
if (label < arr->GetEntriesFast())
{
AliAODMCParticle * particle = dynamic_cast<AliAODMCParticle *>(arr->At(label));
if (!particle) return ;
if (label == particle->Label()) return ;
}
for (Int_t ind = 0; ind < arr->GetEntriesFast(); ind++)
{
AliAODMCParticle * particle = dynamic_cast<AliAODMCParticle *>(arr->At(ind));
if (!particle) continue ;
if (label == particle->Label())
{
label = ind;
return;
}
}
label = -1;
}
void AliEMCALTenderSupply::SetClustersMCLabelFromOriginalClusters()
{
Int_t ncls = fClusterArr->GetEntriesFast();
for(Int_t irp=0; irp < ncls; ++irp)
{
TArrayI clArray(300) ;
clArray.Reset();
Int_t nClu = 0;
Int_t nLabTotOrg = 0;
Float_t emax = -1;
Int_t idMax = -1;
AliEMCALRecPoint *clus = static_cast<AliEMCALRecPoint*>(fClusterArr->At(irp));
const Int_t ncells = clus->GetMultiplicity();
Int_t *digList = clus->GetDigitsList();
for (Int_t iLoopCell = 0 ; iLoopCell < ncells ; iLoopCell++)
{
AliEMCALDigit *digit = static_cast<AliEMCALDigit*>(fDigitsArr->At(digList[iLoopCell]));
Int_t idCell = digit->GetId();
if (idCell>=0)
{
Int_t idCluster = fOrgClusterCellId[idCell];
Bool_t set = kTRUE;
for (Int_t icl =0; icl < nClu; icl++)
{
if (((Int_t)clArray.GetAt(icl))==-1) continue;
if (idCluster == ((Int_t)clArray.GetAt(icl))) set = kFALSE;
}
if (set && idCluster >= 0)
{
clArray.SetAt(idCluster,nClu++);
nLabTotOrg+=(GetEvent()->GetCaloCluster(idCluster))->GetNLabels();
AliVCluster * clOrg = GetEvent()->GetCaloCluster(idCluster);
if (emax < clOrg->E())
{
emax = clOrg->E();
idMax = idCluster;
}
}
}
}
if (idMax != ((Int_t)clArray.GetAt(0)))
{
Int_t maxIndex = -1;
Int_t firstCluster = ((Int_t)clArray.GetAt(0));
for (Int_t iLoopCluster = 0 ; iLoopCluster < nClu ; iLoopCluster++)
{
if (idMax == ((Int_t)clArray.GetAt(iLoopCluster))) maxIndex = iLoopCluster;
}
if (firstCluster >=0 && idMax >=0)
{
clArray.SetAt(idMax,0);
clArray.SetAt(firstCluster,maxIndex);
}
}
TArrayI clMCArray(nLabTotOrg) ;
clMCArray.Reset();
Int_t nLabTot = 0;
for (Int_t iLoopCluster = 0 ; iLoopCluster < nClu ; iLoopCluster++)
{
Int_t idCluster = (Int_t) clArray.GetAt(iLoopCluster);
AliVCluster * clOrg = GetEvent()->GetCaloCluster(idCluster);
Int_t nLab = clOrg->GetNLabels();
for (Int_t iLab = 0 ; iLab < nLab ; iLab++)
{
Int_t lab = clOrg->GetLabelAt(iLab) ;
if (lab>=0)
{
Bool_t set = kTRUE;
for(Int_t iLabTot =0; iLabTot < nLabTot; iLabTot++)
{
if (lab == ((Int_t)clMCArray.GetAt(iLabTot))) set = kFALSE;
}
if (set) clMCArray.SetAt(lab,nLabTot++);
}
}
}
Int_t *labels = new Int_t[nLabTot];
for(Int_t il = 0; il < nLabTot; il++) labels[il] = clMCArray.GetArray()[il];
clus->SetParents(nLabTot,labels);
}
}
void AliEMCALTenderSupply::GetPass()
{
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
fInputTree = mgr->GetTree();
if (!fInputTree)
{
AliError("Pointer to tree = 0, returning");
return;
}
fInputFile = fInputTree->GetCurrentFile();
if (!fInputFile) {
AliError("Null pointer input file, returning");
return;
}
TString fname(fInputFile->GetName());
if (fname.Contains("pass1")) fFilepass = TString("pass1");
else if (fname.Contains("pass2")) fFilepass = TString("pass2");
else if (fname.Contains("pass3")) fFilepass = TString("pass3");
else if (fname.Contains("pass4")) fFilepass = TString("pass4");
else if (fname.Contains("pass5")) fFilepass = TString("pass5");
else if (fname.Contains("LHC11c") &&
fname.Contains("spc_calo")) fFilepass = TString("spc_calo");
else if (fname.Contains("calo") || fname.Contains("high_lumi"))
{
fFilepass = TString("pass1");
}
else if (fname.Contains("LHC14a1a")) fFilepass = TString("LHC14a1a");
else
{
AliError(Form("Pass number string not found: %s", fname.Data()));
return;
}
}
AliEMCALTenderSupply.cxx:1 AliEMCALTenderSupply.cxx:2 AliEMCALTenderSupply.cxx:3 AliEMCALTenderSupply.cxx:4 AliEMCALTenderSupply.cxx:5 AliEMCALTenderSupply.cxx:6 AliEMCALTenderSupply.cxx:7 AliEMCALTenderSupply.cxx:8 AliEMCALTenderSupply.cxx:9 AliEMCALTenderSupply.cxx:10 AliEMCALTenderSupply.cxx:11 AliEMCALTenderSupply.cxx:12 AliEMCALTenderSupply.cxx:13 AliEMCALTenderSupply.cxx:14 AliEMCALTenderSupply.cxx:15 AliEMCALTenderSupply.cxx:16 AliEMCALTenderSupply.cxx:17 AliEMCALTenderSupply.cxx:18 AliEMCALTenderSupply.cxx:19 AliEMCALTenderSupply.cxx:20 AliEMCALTenderSupply.cxx:21 AliEMCALTenderSupply.cxx:22 AliEMCALTenderSupply.cxx:23 AliEMCALTenderSupply.cxx:24 AliEMCALTenderSupply.cxx:25 AliEMCALTenderSupply.cxx:26 AliEMCALTenderSupply.cxx:27 AliEMCALTenderSupply.cxx:28 AliEMCALTenderSupply.cxx:29 AliEMCALTenderSupply.cxx:30 AliEMCALTenderSupply.cxx:31 AliEMCALTenderSupply.cxx:32 AliEMCALTenderSupply.cxx:33 AliEMCALTenderSupply.cxx:34 AliEMCALTenderSupply.cxx:35 AliEMCALTenderSupply.cxx:36 AliEMCALTenderSupply.cxx:37 AliEMCALTenderSupply.cxx:38 AliEMCALTenderSupply.cxx:39 AliEMCALTenderSupply.cxx:40 AliEMCALTenderSupply.cxx:41 AliEMCALTenderSupply.cxx:42 AliEMCALTenderSupply.cxx:43 AliEMCALTenderSupply.cxx:44 AliEMCALTenderSupply.cxx:45 AliEMCALTenderSupply.cxx:46 AliEMCALTenderSupply.cxx:47 AliEMCALTenderSupply.cxx:48 AliEMCALTenderSupply.cxx:49 AliEMCALTenderSupply.cxx:50 AliEMCALTenderSupply.cxx:51 AliEMCALTenderSupply.cxx:52 AliEMCALTenderSupply.cxx:53 AliEMCALTenderSupply.cxx:54 AliEMCALTenderSupply.cxx:55 AliEMCALTenderSupply.cxx:56 AliEMCALTenderSupply.cxx:57 AliEMCALTenderSupply.cxx:58 AliEMCALTenderSupply.cxx:59 AliEMCALTenderSupply.cxx:60 AliEMCALTenderSupply.cxx:61 AliEMCALTenderSupply.cxx:62 AliEMCALTenderSupply.cxx:63 AliEMCALTenderSupply.cxx:64 AliEMCALTenderSupply.cxx:65 AliEMCALTenderSupply.cxx:66 AliEMCALTenderSupply.cxx:67 AliEMCALTenderSupply.cxx:68 AliEMCALTenderSupply.cxx:69 AliEMCALTenderSupply.cxx:70 AliEMCALTenderSupply.cxx:71 AliEMCALTenderSupply.cxx:72 AliEMCALTenderSupply.cxx:73 AliEMCALTenderSupply.cxx:74 AliEMCALTenderSupply.cxx:75 AliEMCALTenderSupply.cxx:76 AliEMCALTenderSupply.cxx:77 AliEMCALTenderSupply.cxx:78 AliEMCALTenderSupply.cxx:79 AliEMCALTenderSupply.cxx:80 AliEMCALTenderSupply.cxx:81 AliEMCALTenderSupply.cxx:82 AliEMCALTenderSupply.cxx:83 AliEMCALTenderSupply.cxx:84 AliEMCALTenderSupply.cxx:85 AliEMCALTenderSupply.cxx:86 AliEMCALTenderSupply.cxx:87 AliEMCALTenderSupply.cxx:88 AliEMCALTenderSupply.cxx:89 AliEMCALTenderSupply.cxx:90 AliEMCALTenderSupply.cxx:91 AliEMCALTenderSupply.cxx:92 AliEMCALTenderSupply.cxx:93 AliEMCALTenderSupply.cxx:94 AliEMCALTenderSupply.cxx:95 AliEMCALTenderSupply.cxx:96 AliEMCALTenderSupply.cxx:97 AliEMCALTenderSupply.cxx:98 AliEMCALTenderSupply.cxx:99 AliEMCALTenderSupply.cxx:100 AliEMCALTenderSupply.cxx:101 AliEMCALTenderSupply.cxx:102 AliEMCALTenderSupply.cxx:103 AliEMCALTenderSupply.cxx:104 AliEMCALTenderSupply.cxx:105 AliEMCALTenderSupply.cxx:106 AliEMCALTenderSupply.cxx:107 AliEMCALTenderSupply.cxx:108 AliEMCALTenderSupply.cxx:109 AliEMCALTenderSupply.cxx:110 AliEMCALTenderSupply.cxx:111 AliEMCALTenderSupply.cxx:112 AliEMCALTenderSupply.cxx:113 AliEMCALTenderSupply.cxx:114 AliEMCALTenderSupply.cxx:115 AliEMCALTenderSupply.cxx:116 AliEMCALTenderSupply.cxx:117 AliEMCALTenderSupply.cxx:118 AliEMCALTenderSupply.cxx:119 AliEMCALTenderSupply.cxx:120 AliEMCALTenderSupply.cxx:121 AliEMCALTenderSupply.cxx:122 AliEMCALTenderSupply.cxx:123 AliEMCALTenderSupply.cxx:124 AliEMCALTenderSupply.cxx:125 AliEMCALTenderSupply.cxx:126 AliEMCALTenderSupply.cxx:127 AliEMCALTenderSupply.cxx:128 AliEMCALTenderSupply.cxx:129 AliEMCALTenderSupply.cxx:130 AliEMCALTenderSupply.cxx:131 AliEMCALTenderSupply.cxx:132 AliEMCALTenderSupply.cxx:133 AliEMCALTenderSupply.cxx:134 AliEMCALTenderSupply.cxx:135 AliEMCALTenderSupply.cxx:136 AliEMCALTenderSupply.cxx:137 AliEMCALTenderSupply.cxx:138 AliEMCALTenderSupply.cxx:139 AliEMCALTenderSupply.cxx:140 AliEMCALTenderSupply.cxx:141 AliEMCALTenderSupply.cxx:142 AliEMCALTenderSupply.cxx:143 AliEMCALTenderSupply.cxx:144 AliEMCALTenderSupply.cxx:145 AliEMCALTenderSupply.cxx:146 AliEMCALTenderSupply.cxx:147 AliEMCALTenderSupply.cxx:148 AliEMCALTenderSupply.cxx:149 AliEMCALTenderSupply.cxx:150 AliEMCALTenderSupply.cxx:151 AliEMCALTenderSupply.cxx:152 AliEMCALTenderSupply.cxx:153 AliEMCALTenderSupply.cxx:154 AliEMCALTenderSupply.cxx:155 AliEMCALTenderSupply.cxx:156 AliEMCALTenderSupply.cxx:157 AliEMCALTenderSupply.cxx:158 AliEMCALTenderSupply.cxx:159 AliEMCALTenderSupply.cxx:160 AliEMCALTenderSupply.cxx:161 AliEMCALTenderSupply.cxx:162 AliEMCALTenderSupply.cxx:163 AliEMCALTenderSupply.cxx:164 AliEMCALTenderSupply.cxx:165 AliEMCALTenderSupply.cxx:166 AliEMCALTenderSupply.cxx:167 AliEMCALTenderSupply.cxx:168 AliEMCALTenderSupply.cxx:169 AliEMCALTenderSupply.cxx:170 AliEMCALTenderSupply.cxx:171 AliEMCALTenderSupply.cxx:172 AliEMCALTenderSupply.cxx:173 AliEMCALTenderSupply.cxx:174 AliEMCALTenderSupply.cxx:175 AliEMCALTenderSupply.cxx:176 AliEMCALTenderSupply.cxx:177 AliEMCALTenderSupply.cxx:178 AliEMCALTenderSupply.cxx:179 AliEMCALTenderSupply.cxx:180 AliEMCALTenderSupply.cxx:181 AliEMCALTenderSupply.cxx:182 AliEMCALTenderSupply.cxx:183 AliEMCALTenderSupply.cxx:184 AliEMCALTenderSupply.cxx:185 AliEMCALTenderSupply.cxx:186 AliEMCALTenderSupply.cxx:187 AliEMCALTenderSupply.cxx:188 AliEMCALTenderSupply.cxx:189 AliEMCALTenderSupply.cxx:190 AliEMCALTenderSupply.cxx:191 AliEMCALTenderSupply.cxx:192 AliEMCALTenderSupply.cxx:193 AliEMCALTenderSupply.cxx:194 AliEMCALTenderSupply.cxx:195 AliEMCALTenderSupply.cxx:196 AliEMCALTenderSupply.cxx:197 AliEMCALTenderSupply.cxx:198 AliEMCALTenderSupply.cxx:199 AliEMCALTenderSupply.cxx:200 AliEMCALTenderSupply.cxx:201 AliEMCALTenderSupply.cxx:202 AliEMCALTenderSupply.cxx:203 AliEMCALTenderSupply.cxx:204 AliEMCALTenderSupply.cxx:205 AliEMCALTenderSupply.cxx:206 AliEMCALTenderSupply.cxx:207 AliEMCALTenderSupply.cxx:208 AliEMCALTenderSupply.cxx:209 AliEMCALTenderSupply.cxx:210 AliEMCALTenderSupply.cxx:211 AliEMCALTenderSupply.cxx:212 AliEMCALTenderSupply.cxx:213 AliEMCALTenderSupply.cxx:214 AliEMCALTenderSupply.cxx:215 AliEMCALTenderSupply.cxx:216 AliEMCALTenderSupply.cxx:217 AliEMCALTenderSupply.cxx:218 AliEMCALTenderSupply.cxx:219 AliEMCALTenderSupply.cxx:220 AliEMCALTenderSupply.cxx:221 AliEMCALTenderSupply.cxx:222 AliEMCALTenderSupply.cxx:223 AliEMCALTenderSupply.cxx:224 AliEMCALTenderSupply.cxx:225 AliEMCALTenderSupply.cxx:226 AliEMCALTenderSupply.cxx:227 AliEMCALTenderSupply.cxx:228 AliEMCALTenderSupply.cxx:229 AliEMCALTenderSupply.cxx:230 AliEMCALTenderSupply.cxx:231 AliEMCALTenderSupply.cxx:232 AliEMCALTenderSupply.cxx:233 AliEMCALTenderSupply.cxx:234 AliEMCALTenderSupply.cxx:235 AliEMCALTenderSupply.cxx:236 AliEMCALTenderSupply.cxx:237 AliEMCALTenderSupply.cxx:238 AliEMCALTenderSupply.cxx:239 AliEMCALTenderSupply.cxx:240 AliEMCALTenderSupply.cxx:241 AliEMCALTenderSupply.cxx:242 AliEMCALTenderSupply.cxx:243 AliEMCALTenderSupply.cxx:244 AliEMCALTenderSupply.cxx:245 AliEMCALTenderSupply.cxx:246 AliEMCALTenderSupply.cxx:247 AliEMCALTenderSupply.cxx:248 AliEMCALTenderSupply.cxx:249 AliEMCALTenderSupply.cxx:250 AliEMCALTenderSupply.cxx:251 AliEMCALTenderSupply.cxx:252 AliEMCALTenderSupply.cxx:253 AliEMCALTenderSupply.cxx:254 AliEMCALTenderSupply.cxx:255 AliEMCALTenderSupply.cxx:256 AliEMCALTenderSupply.cxx:257 AliEMCALTenderSupply.cxx:258 AliEMCALTenderSupply.cxx:259 AliEMCALTenderSupply.cxx:260 AliEMCALTenderSupply.cxx:261 AliEMCALTenderSupply.cxx:262 AliEMCALTenderSupply.cxx:263 AliEMCALTenderSupply.cxx:264 AliEMCALTenderSupply.cxx:265 AliEMCALTenderSupply.cxx:266 AliEMCALTenderSupply.cxx:267 AliEMCALTenderSupply.cxx:268 AliEMCALTenderSupply.cxx:269 AliEMCALTenderSupply.cxx:270 AliEMCALTenderSupply.cxx:271 AliEMCALTenderSupply.cxx:272 AliEMCALTenderSupply.cxx:273 AliEMCALTenderSupply.cxx:274 AliEMCALTenderSupply.cxx:275 AliEMCALTenderSupply.cxx:276 AliEMCALTenderSupply.cxx:277 AliEMCALTenderSupply.cxx:278 AliEMCALTenderSupply.cxx:279 AliEMCALTenderSupply.cxx:280 AliEMCALTenderSupply.cxx:281 AliEMCALTenderSupply.cxx:282 AliEMCALTenderSupply.cxx:283 AliEMCALTenderSupply.cxx:284 AliEMCALTenderSupply.cxx:285 AliEMCALTenderSupply.cxx:286 AliEMCALTenderSupply.cxx:287 AliEMCALTenderSupply.cxx:288 AliEMCALTenderSupply.cxx:289 AliEMCALTenderSupply.cxx:290 AliEMCALTenderSupply.cxx:291 AliEMCALTenderSupply.cxx:292 AliEMCALTenderSupply.cxx:293 AliEMCALTenderSupply.cxx:294 AliEMCALTenderSupply.cxx:295 AliEMCALTenderSupply.cxx:296 AliEMCALTenderSupply.cxx:297 AliEMCALTenderSupply.cxx:298 AliEMCALTenderSupply.cxx:299 AliEMCALTenderSupply.cxx:300 AliEMCALTenderSupply.cxx:301 AliEMCALTenderSupply.cxx:302 AliEMCALTenderSupply.cxx:303 AliEMCALTenderSupply.cxx:304 AliEMCALTenderSupply.cxx:305 AliEMCALTenderSupply.cxx:306 AliEMCALTenderSupply.cxx:307 AliEMCALTenderSupply.cxx:308 AliEMCALTenderSupply.cxx:309 AliEMCALTenderSupply.cxx:310 AliEMCALTenderSupply.cxx:311 AliEMCALTenderSupply.cxx:312 AliEMCALTenderSupply.cxx:313 AliEMCALTenderSupply.cxx:314 AliEMCALTenderSupply.cxx:315 AliEMCALTenderSupply.cxx:316 AliEMCALTenderSupply.cxx:317 AliEMCALTenderSupply.cxx:318 AliEMCALTenderSupply.cxx:319 AliEMCALTenderSupply.cxx:320 AliEMCALTenderSupply.cxx:321 AliEMCALTenderSupply.cxx:322 AliEMCALTenderSupply.cxx:323 AliEMCALTenderSupply.cxx:324 AliEMCALTenderSupply.cxx:325 AliEMCALTenderSupply.cxx:326 AliEMCALTenderSupply.cxx:327 AliEMCALTenderSupply.cxx:328 AliEMCALTenderSupply.cxx:329 AliEMCALTenderSupply.cxx:330 AliEMCALTenderSupply.cxx:331 AliEMCALTenderSupply.cxx:332 AliEMCALTenderSupply.cxx:333 AliEMCALTenderSupply.cxx:334 AliEMCALTenderSupply.cxx:335 AliEMCALTenderSupply.cxx:336 AliEMCALTenderSupply.cxx:337 AliEMCALTenderSupply.cxx:338 AliEMCALTenderSupply.cxx:339 AliEMCALTenderSupply.cxx:340 AliEMCALTenderSupply.cxx:341 AliEMCALTenderSupply.cxx:342 AliEMCALTenderSupply.cxx:343 AliEMCALTenderSupply.cxx:344 AliEMCALTenderSupply.cxx:345 AliEMCALTenderSupply.cxx:346 AliEMCALTenderSupply.cxx:347 AliEMCALTenderSupply.cxx:348 AliEMCALTenderSupply.cxx:349 AliEMCALTenderSupply.cxx:350 AliEMCALTenderSupply.cxx:351 AliEMCALTenderSupply.cxx:352 AliEMCALTenderSupply.cxx:353 AliEMCALTenderSupply.cxx:354 AliEMCALTenderSupply.cxx:355 AliEMCALTenderSupply.cxx:356 AliEMCALTenderSupply.cxx:357 AliEMCALTenderSupply.cxx:358 AliEMCALTenderSupply.cxx:359 AliEMCALTenderSupply.cxx:360 AliEMCALTenderSupply.cxx:361 AliEMCALTenderSupply.cxx:362 AliEMCALTenderSupply.cxx:363 AliEMCALTenderSupply.cxx:364 AliEMCALTenderSupply.cxx:365 AliEMCALTenderSupply.cxx:366 AliEMCALTenderSupply.cxx:367 AliEMCALTenderSupply.cxx:368 AliEMCALTenderSupply.cxx:369 AliEMCALTenderSupply.cxx:370 AliEMCALTenderSupply.cxx:371 AliEMCALTenderSupply.cxx:372 AliEMCALTenderSupply.cxx:373 AliEMCALTenderSupply.cxx:374 AliEMCALTenderSupply.cxx:375 AliEMCALTenderSupply.cxx:376 AliEMCALTenderSupply.cxx:377 AliEMCALTenderSupply.cxx:378 AliEMCALTenderSupply.cxx:379 AliEMCALTenderSupply.cxx:380 AliEMCALTenderSupply.cxx:381 AliEMCALTenderSupply.cxx:382 AliEMCALTenderSupply.cxx:383 AliEMCALTenderSupply.cxx:384 AliEMCALTenderSupply.cxx:385 AliEMCALTenderSupply.cxx:386 AliEMCALTenderSupply.cxx:387 AliEMCALTenderSupply.cxx:388 AliEMCALTenderSupply.cxx:389 AliEMCALTenderSupply.cxx:390 AliEMCALTenderSupply.cxx:391 AliEMCALTenderSupply.cxx:392 AliEMCALTenderSupply.cxx:393 AliEMCALTenderSupply.cxx:394 AliEMCALTenderSupply.cxx:395 AliEMCALTenderSupply.cxx:396 AliEMCALTenderSupply.cxx:397 AliEMCALTenderSupply.cxx:398 AliEMCALTenderSupply.cxx:399 AliEMCALTenderSupply.cxx:400 AliEMCALTenderSupply.cxx:401 AliEMCALTenderSupply.cxx:402 AliEMCALTenderSupply.cxx:403 AliEMCALTenderSupply.cxx:404 AliEMCALTenderSupply.cxx:405 AliEMCALTenderSupply.cxx:406 AliEMCALTenderSupply.cxx:407 AliEMCALTenderSupply.cxx:408 AliEMCALTenderSupply.cxx:409 AliEMCALTenderSupply.cxx:410 AliEMCALTenderSupply.cxx:411 AliEMCALTenderSupply.cxx:412 AliEMCALTenderSupply.cxx:413 AliEMCALTenderSupply.cxx:414 AliEMCALTenderSupply.cxx:415 AliEMCALTenderSupply.cxx:416 AliEMCALTenderSupply.cxx:417 AliEMCALTenderSupply.cxx:418 AliEMCALTenderSupply.cxx:419 AliEMCALTenderSupply.cxx:420 AliEMCALTenderSupply.cxx:421 AliEMCALTenderSupply.cxx:422 AliEMCALTenderSupply.cxx:423 AliEMCALTenderSupply.cxx:424 AliEMCALTenderSupply.cxx:425 AliEMCALTenderSupply.cxx:426 AliEMCALTenderSupply.cxx:427 AliEMCALTenderSupply.cxx:428 AliEMCALTenderSupply.cxx:429 AliEMCALTenderSupply.cxx:430 AliEMCALTenderSupply.cxx:431 AliEMCALTenderSupply.cxx:432 AliEMCALTenderSupply.cxx:433 AliEMCALTenderSupply.cxx:434 AliEMCALTenderSupply.cxx:435 AliEMCALTenderSupply.cxx:436 AliEMCALTenderSupply.cxx:437 AliEMCALTenderSupply.cxx:438 AliEMCALTenderSupply.cxx:439 AliEMCALTenderSupply.cxx:440 AliEMCALTenderSupply.cxx:441 AliEMCALTenderSupply.cxx:442 AliEMCALTenderSupply.cxx:443 AliEMCALTenderSupply.cxx:444 AliEMCALTenderSupply.cxx:445 AliEMCALTenderSupply.cxx:446 AliEMCALTenderSupply.cxx:447 AliEMCALTenderSupply.cxx:448 AliEMCALTenderSupply.cxx:449 AliEMCALTenderSupply.cxx:450 AliEMCALTenderSupply.cxx:451 AliEMCALTenderSupply.cxx:452 AliEMCALTenderSupply.cxx:453 AliEMCALTenderSupply.cxx:454 AliEMCALTenderSupply.cxx:455 AliEMCALTenderSupply.cxx:456 AliEMCALTenderSupply.cxx:457 AliEMCALTenderSupply.cxx:458 AliEMCALTenderSupply.cxx:459 AliEMCALTenderSupply.cxx:460 AliEMCALTenderSupply.cxx:461 AliEMCALTenderSupply.cxx:462 AliEMCALTenderSupply.cxx:463 AliEMCALTenderSupply.cxx:464 AliEMCALTenderSupply.cxx:465 AliEMCALTenderSupply.cxx:466 AliEMCALTenderSupply.cxx:467 AliEMCALTenderSupply.cxx:468 AliEMCALTenderSupply.cxx:469 AliEMCALTenderSupply.cxx:470 AliEMCALTenderSupply.cxx:471 AliEMCALTenderSupply.cxx:472 AliEMCALTenderSupply.cxx:473 AliEMCALTenderSupply.cxx:474 AliEMCALTenderSupply.cxx:475 AliEMCALTenderSupply.cxx:476 AliEMCALTenderSupply.cxx:477 AliEMCALTenderSupply.cxx:478 AliEMCALTenderSupply.cxx:479 AliEMCALTenderSupply.cxx:480 AliEMCALTenderSupply.cxx:481 AliEMCALTenderSupply.cxx:482 AliEMCALTenderSupply.cxx:483 AliEMCALTenderSupply.cxx:484 AliEMCALTenderSupply.cxx:485 AliEMCALTenderSupply.cxx:486 AliEMCALTenderSupply.cxx:487 AliEMCALTenderSupply.cxx:488 AliEMCALTenderSupply.cxx:489 AliEMCALTenderSupply.cxx:490 AliEMCALTenderSupply.cxx:491 AliEMCALTenderSupply.cxx:492 AliEMCALTenderSupply.cxx:493 AliEMCALTenderSupply.cxx:494 AliEMCALTenderSupply.cxx:495 AliEMCALTenderSupply.cxx:496 AliEMCALTenderSupply.cxx:497 AliEMCALTenderSupply.cxx:498 AliEMCALTenderSupply.cxx:499 AliEMCALTenderSupply.cxx:500 AliEMCALTenderSupply.cxx:501 AliEMCALTenderSupply.cxx:502 AliEMCALTenderSupply.cxx:503 AliEMCALTenderSupply.cxx:504 AliEMCALTenderSupply.cxx:505 AliEMCALTenderSupply.cxx:506 AliEMCALTenderSupply.cxx:507 AliEMCALTenderSupply.cxx:508 AliEMCALTenderSupply.cxx:509 AliEMCALTenderSupply.cxx:510 AliEMCALTenderSupply.cxx:511 AliEMCALTenderSupply.cxx:512 AliEMCALTenderSupply.cxx:513 AliEMCALTenderSupply.cxx:514 AliEMCALTenderSupply.cxx:515 AliEMCALTenderSupply.cxx:516 AliEMCALTenderSupply.cxx:517 AliEMCALTenderSupply.cxx:518 AliEMCALTenderSupply.cxx:519 AliEMCALTenderSupply.cxx:520 AliEMCALTenderSupply.cxx:521 AliEMCALTenderSupply.cxx:522 AliEMCALTenderSupply.cxx:523 AliEMCALTenderSupply.cxx:524 AliEMCALTenderSupply.cxx:525 AliEMCALTenderSupply.cxx:526 AliEMCALTenderSupply.cxx:527 AliEMCALTenderSupply.cxx:528 AliEMCALTenderSupply.cxx:529 AliEMCALTenderSupply.cxx:530 AliEMCALTenderSupply.cxx:531 AliEMCALTenderSupply.cxx:532 AliEMCALTenderSupply.cxx:533 AliEMCALTenderSupply.cxx:534 AliEMCALTenderSupply.cxx:535 AliEMCALTenderSupply.cxx:536 AliEMCALTenderSupply.cxx:537 AliEMCALTenderSupply.cxx:538 AliEMCALTenderSupply.cxx:539 AliEMCALTenderSupply.cxx:540 AliEMCALTenderSupply.cxx:541 AliEMCALTenderSupply.cxx:542 AliEMCALTenderSupply.cxx:543 AliEMCALTenderSupply.cxx:544 AliEMCALTenderSupply.cxx:545 AliEMCALTenderSupply.cxx:546 AliEMCALTenderSupply.cxx:547 AliEMCALTenderSupply.cxx:548 AliEMCALTenderSupply.cxx:549 AliEMCALTenderSupply.cxx:550 AliEMCALTenderSupply.cxx:551 AliEMCALTenderSupply.cxx:552 AliEMCALTenderSupply.cxx:553 AliEMCALTenderSupply.cxx:554 AliEMCALTenderSupply.cxx:555 AliEMCALTenderSupply.cxx:556 AliEMCALTenderSupply.cxx:557 AliEMCALTenderSupply.cxx:558 AliEMCALTenderSupply.cxx:559 AliEMCALTenderSupply.cxx:560 AliEMCALTenderSupply.cxx:561 AliEMCALTenderSupply.cxx:562 AliEMCALTenderSupply.cxx:563 AliEMCALTenderSupply.cxx:564 AliEMCALTenderSupply.cxx:565 AliEMCALTenderSupply.cxx:566 AliEMCALTenderSupply.cxx:567 AliEMCALTenderSupply.cxx:568 AliEMCALTenderSupply.cxx:569 AliEMCALTenderSupply.cxx:570 AliEMCALTenderSupply.cxx:571 AliEMCALTenderSupply.cxx:572 AliEMCALTenderSupply.cxx:573 AliEMCALTenderSupply.cxx:574 AliEMCALTenderSupply.cxx:575 AliEMCALTenderSupply.cxx:576 AliEMCALTenderSupply.cxx:577 AliEMCALTenderSupply.cxx:578 AliEMCALTenderSupply.cxx:579 AliEMCALTenderSupply.cxx:580 AliEMCALTenderSupply.cxx:581 AliEMCALTenderSupply.cxx:582 AliEMCALTenderSupply.cxx:583 AliEMCALTenderSupply.cxx:584 AliEMCALTenderSupply.cxx:585 AliEMCALTenderSupply.cxx:586 AliEMCALTenderSupply.cxx:587 AliEMCALTenderSupply.cxx:588 AliEMCALTenderSupply.cxx:589 AliEMCALTenderSupply.cxx:590 AliEMCALTenderSupply.cxx:591 AliEMCALTenderSupply.cxx:592 AliEMCALTenderSupply.cxx:593 AliEMCALTenderSupply.cxx:594 AliEMCALTenderSupply.cxx:595 AliEMCALTenderSupply.cxx:596 AliEMCALTenderSupply.cxx:597 AliEMCALTenderSupply.cxx:598 AliEMCALTenderSupply.cxx:599 AliEMCALTenderSupply.cxx:600 AliEMCALTenderSupply.cxx:601 AliEMCALTenderSupply.cxx:602 AliEMCALTenderSupply.cxx:603 AliEMCALTenderSupply.cxx:604 AliEMCALTenderSupply.cxx:605 AliEMCALTenderSupply.cxx:606 AliEMCALTenderSupply.cxx:607 AliEMCALTenderSupply.cxx:608 AliEMCALTenderSupply.cxx:609 AliEMCALTenderSupply.cxx:610 AliEMCALTenderSupply.cxx:611 AliEMCALTenderSupply.cxx:612 AliEMCALTenderSupply.cxx:613 AliEMCALTenderSupply.cxx:614 AliEMCALTenderSupply.cxx:615 AliEMCALTenderSupply.cxx:616 AliEMCALTenderSupply.cxx:617 AliEMCALTenderSupply.cxx:618 AliEMCALTenderSupply.cxx:619 AliEMCALTenderSupply.cxx:620 AliEMCALTenderSupply.cxx:621 AliEMCALTenderSupply.cxx:622 AliEMCALTenderSupply.cxx:623 AliEMCALTenderSupply.cxx:624 AliEMCALTenderSupply.cxx:625 AliEMCALTenderSupply.cxx:626 AliEMCALTenderSupply.cxx:627 AliEMCALTenderSupply.cxx:628 AliEMCALTenderSupply.cxx:629 AliEMCALTenderSupply.cxx:630 AliEMCALTenderSupply.cxx:631 AliEMCALTenderSupply.cxx:632 AliEMCALTenderSupply.cxx:633 AliEMCALTenderSupply.cxx:634 AliEMCALTenderSupply.cxx:635 AliEMCALTenderSupply.cxx:636 AliEMCALTenderSupply.cxx:637 AliEMCALTenderSupply.cxx:638 AliEMCALTenderSupply.cxx:639 AliEMCALTenderSupply.cxx:640 AliEMCALTenderSupply.cxx:641 AliEMCALTenderSupply.cxx:642 AliEMCALTenderSupply.cxx:643 AliEMCALTenderSupply.cxx:644 AliEMCALTenderSupply.cxx:645 AliEMCALTenderSupply.cxx:646 AliEMCALTenderSupply.cxx:647 AliEMCALTenderSupply.cxx:648 AliEMCALTenderSupply.cxx:649 AliEMCALTenderSupply.cxx:650 AliEMCALTenderSupply.cxx:651 AliEMCALTenderSupply.cxx:652 AliEMCALTenderSupply.cxx:653 AliEMCALTenderSupply.cxx:654 AliEMCALTenderSupply.cxx:655 AliEMCALTenderSupply.cxx:656 AliEMCALTenderSupply.cxx:657 AliEMCALTenderSupply.cxx:658 AliEMCALTenderSupply.cxx:659 AliEMCALTenderSupply.cxx:660 AliEMCALTenderSupply.cxx:661 AliEMCALTenderSupply.cxx:662 AliEMCALTenderSupply.cxx:663 AliEMCALTenderSupply.cxx:664 AliEMCALTenderSupply.cxx:665 AliEMCALTenderSupply.cxx:666 AliEMCALTenderSupply.cxx:667 AliEMCALTenderSupply.cxx:668 AliEMCALTenderSupply.cxx:669 AliEMCALTenderSupply.cxx:670 AliEMCALTenderSupply.cxx:671 AliEMCALTenderSupply.cxx:672 AliEMCALTenderSupply.cxx:673 AliEMCALTenderSupply.cxx:674 AliEMCALTenderSupply.cxx:675 AliEMCALTenderSupply.cxx:676 AliEMCALTenderSupply.cxx:677 AliEMCALTenderSupply.cxx:678 AliEMCALTenderSupply.cxx:679 AliEMCALTenderSupply.cxx:680 AliEMCALTenderSupply.cxx:681 AliEMCALTenderSupply.cxx:682 AliEMCALTenderSupply.cxx:683 AliEMCALTenderSupply.cxx:684 AliEMCALTenderSupply.cxx:685 AliEMCALTenderSupply.cxx:686 AliEMCALTenderSupply.cxx:687 AliEMCALTenderSupply.cxx:688 AliEMCALTenderSupply.cxx:689 AliEMCALTenderSupply.cxx:690 AliEMCALTenderSupply.cxx:691 AliEMCALTenderSupply.cxx:692 AliEMCALTenderSupply.cxx:693 AliEMCALTenderSupply.cxx:694 AliEMCALTenderSupply.cxx:695 AliEMCALTenderSupply.cxx:696 AliEMCALTenderSupply.cxx:697 AliEMCALTenderSupply.cxx:698 AliEMCALTenderSupply.cxx:699 AliEMCALTenderSupply.cxx:700 AliEMCALTenderSupply.cxx:701 AliEMCALTenderSupply.cxx:702 AliEMCALTenderSupply.cxx:703 AliEMCALTenderSupply.cxx:704 AliEMCALTenderSupply.cxx:705 AliEMCALTenderSupply.cxx:706 AliEMCALTenderSupply.cxx:707 AliEMCALTenderSupply.cxx:708 AliEMCALTenderSupply.cxx:709 AliEMCALTenderSupply.cxx:710 AliEMCALTenderSupply.cxx:711 AliEMCALTenderSupply.cxx:712 AliEMCALTenderSupply.cxx:713 AliEMCALTenderSupply.cxx:714 AliEMCALTenderSupply.cxx:715 AliEMCALTenderSupply.cxx:716 AliEMCALTenderSupply.cxx:717 AliEMCALTenderSupply.cxx:718 AliEMCALTenderSupply.cxx:719 AliEMCALTenderSupply.cxx:720 AliEMCALTenderSupply.cxx:721 AliEMCALTenderSupply.cxx:722 AliEMCALTenderSupply.cxx:723 AliEMCALTenderSupply.cxx:724 AliEMCALTenderSupply.cxx:725 AliEMCALTenderSupply.cxx:726 AliEMCALTenderSupply.cxx:727 AliEMCALTenderSupply.cxx:728 AliEMCALTenderSupply.cxx:729 AliEMCALTenderSupply.cxx:730 AliEMCALTenderSupply.cxx:731 AliEMCALTenderSupply.cxx:732 AliEMCALTenderSupply.cxx:733 AliEMCALTenderSupply.cxx:734 AliEMCALTenderSupply.cxx:735 AliEMCALTenderSupply.cxx:736 AliEMCALTenderSupply.cxx:737 AliEMCALTenderSupply.cxx:738 AliEMCALTenderSupply.cxx:739 AliEMCALTenderSupply.cxx:740 AliEMCALTenderSupply.cxx:741 AliEMCALTenderSupply.cxx:742 AliEMCALTenderSupply.cxx:743 AliEMCALTenderSupply.cxx:744 AliEMCALTenderSupply.cxx:745 AliEMCALTenderSupply.cxx:746 AliEMCALTenderSupply.cxx:747 AliEMCALTenderSupply.cxx:748 AliEMCALTenderSupply.cxx:749 AliEMCALTenderSupply.cxx:750 AliEMCALTenderSupply.cxx:751 AliEMCALTenderSupply.cxx:752 AliEMCALTenderSupply.cxx:753 AliEMCALTenderSupply.cxx:754 AliEMCALTenderSupply.cxx:755 AliEMCALTenderSupply.cxx:756 AliEMCALTenderSupply.cxx:757 AliEMCALTenderSupply.cxx:758 AliEMCALTenderSupply.cxx:759 AliEMCALTenderSupply.cxx:760 AliEMCALTenderSupply.cxx:761 AliEMCALTenderSupply.cxx:762 AliEMCALTenderSupply.cxx:763 AliEMCALTenderSupply.cxx:764 AliEMCALTenderSupply.cxx:765 AliEMCALTenderSupply.cxx:766 AliEMCALTenderSupply.cxx:767 AliEMCALTenderSupply.cxx:768 AliEMCALTenderSupply.cxx:769 AliEMCALTenderSupply.cxx:770 AliEMCALTenderSupply.cxx:771 AliEMCALTenderSupply.cxx:772 AliEMCALTenderSupply.cxx:773 AliEMCALTenderSupply.cxx:774 AliEMCALTenderSupply.cxx:775 AliEMCALTenderSupply.cxx:776 AliEMCALTenderSupply.cxx:777 AliEMCALTenderSupply.cxx:778 AliEMCALTenderSupply.cxx:779 AliEMCALTenderSupply.cxx:780 AliEMCALTenderSupply.cxx:781 AliEMCALTenderSupply.cxx:782 AliEMCALTenderSupply.cxx:783 AliEMCALTenderSupply.cxx:784 AliEMCALTenderSupply.cxx:785 AliEMCALTenderSupply.cxx:786 AliEMCALTenderSupply.cxx:787 AliEMCALTenderSupply.cxx:788 AliEMCALTenderSupply.cxx:789 AliEMCALTenderSupply.cxx:790 AliEMCALTenderSupply.cxx:791 AliEMCALTenderSupply.cxx:792 AliEMCALTenderSupply.cxx:793 AliEMCALTenderSupply.cxx:794 AliEMCALTenderSupply.cxx:795 AliEMCALTenderSupply.cxx:796 AliEMCALTenderSupply.cxx:797 AliEMCALTenderSupply.cxx:798 AliEMCALTenderSupply.cxx:799 AliEMCALTenderSupply.cxx:800 AliEMCALTenderSupply.cxx:801 AliEMCALTenderSupply.cxx:802 AliEMCALTenderSupply.cxx:803 AliEMCALTenderSupply.cxx:804 AliEMCALTenderSupply.cxx:805 AliEMCALTenderSupply.cxx:806 AliEMCALTenderSupply.cxx:807 AliEMCALTenderSupply.cxx:808 AliEMCALTenderSupply.cxx:809 AliEMCALTenderSupply.cxx:810 AliEMCALTenderSupply.cxx:811 AliEMCALTenderSupply.cxx:812 AliEMCALTenderSupply.cxx:813 AliEMCALTenderSupply.cxx:814 AliEMCALTenderSupply.cxx:815 AliEMCALTenderSupply.cxx:816 AliEMCALTenderSupply.cxx:817 AliEMCALTenderSupply.cxx:818 AliEMCALTenderSupply.cxx:819 AliEMCALTenderSupply.cxx:820 AliEMCALTenderSupply.cxx:821 AliEMCALTenderSupply.cxx:822 AliEMCALTenderSupply.cxx:823 AliEMCALTenderSupply.cxx:824 AliEMCALTenderSupply.cxx:825 AliEMCALTenderSupply.cxx:826 AliEMCALTenderSupply.cxx:827 AliEMCALTenderSupply.cxx:828 AliEMCALTenderSupply.cxx:829 AliEMCALTenderSupply.cxx:830 AliEMCALTenderSupply.cxx:831 AliEMCALTenderSupply.cxx:832 AliEMCALTenderSupply.cxx:833 AliEMCALTenderSupply.cxx:834 AliEMCALTenderSupply.cxx:835 AliEMCALTenderSupply.cxx:836 AliEMCALTenderSupply.cxx:837 AliEMCALTenderSupply.cxx:838 AliEMCALTenderSupply.cxx:839 AliEMCALTenderSupply.cxx:840 AliEMCALTenderSupply.cxx:841 AliEMCALTenderSupply.cxx:842 AliEMCALTenderSupply.cxx:843 AliEMCALTenderSupply.cxx:844 AliEMCALTenderSupply.cxx:845 AliEMCALTenderSupply.cxx:846 AliEMCALTenderSupply.cxx:847 AliEMCALTenderSupply.cxx:848 AliEMCALTenderSupply.cxx:849 AliEMCALTenderSupply.cxx:850 AliEMCALTenderSupply.cxx:851 AliEMCALTenderSupply.cxx:852 AliEMCALTenderSupply.cxx:853 AliEMCALTenderSupply.cxx:854 AliEMCALTenderSupply.cxx:855 AliEMCALTenderSupply.cxx:856 AliEMCALTenderSupply.cxx:857 AliEMCALTenderSupply.cxx:858 AliEMCALTenderSupply.cxx:859 AliEMCALTenderSupply.cxx:860 AliEMCALTenderSupply.cxx:861 AliEMCALTenderSupply.cxx:862 AliEMCALTenderSupply.cxx:863 AliEMCALTenderSupply.cxx:864 AliEMCALTenderSupply.cxx:865 AliEMCALTenderSupply.cxx:866 AliEMCALTenderSupply.cxx:867 AliEMCALTenderSupply.cxx:868 AliEMCALTenderSupply.cxx:869 AliEMCALTenderSupply.cxx:870 AliEMCALTenderSupply.cxx:871 AliEMCALTenderSupply.cxx:872 AliEMCALTenderSupply.cxx:873 AliEMCALTenderSupply.cxx:874 AliEMCALTenderSupply.cxx:875 AliEMCALTenderSupply.cxx:876 AliEMCALTenderSupply.cxx:877 AliEMCALTenderSupply.cxx:878 AliEMCALTenderSupply.cxx:879 AliEMCALTenderSupply.cxx:880 AliEMCALTenderSupply.cxx:881 AliEMCALTenderSupply.cxx:882 AliEMCALTenderSupply.cxx:883 AliEMCALTenderSupply.cxx:884 AliEMCALTenderSupply.cxx:885 AliEMCALTenderSupply.cxx:886 AliEMCALTenderSupply.cxx:887 AliEMCALTenderSupply.cxx:888 AliEMCALTenderSupply.cxx:889 AliEMCALTenderSupply.cxx:890 AliEMCALTenderSupply.cxx:891 AliEMCALTenderSupply.cxx:892 AliEMCALTenderSupply.cxx:893 AliEMCALTenderSupply.cxx:894 AliEMCALTenderSupply.cxx:895 AliEMCALTenderSupply.cxx:896 AliEMCALTenderSupply.cxx:897 AliEMCALTenderSupply.cxx:898 AliEMCALTenderSupply.cxx:899 AliEMCALTenderSupply.cxx:900 AliEMCALTenderSupply.cxx:901 AliEMCALTenderSupply.cxx:902 AliEMCALTenderSupply.cxx:903 AliEMCALTenderSupply.cxx:904 AliEMCALTenderSupply.cxx:905 AliEMCALTenderSupply.cxx:906 AliEMCALTenderSupply.cxx:907 AliEMCALTenderSupply.cxx:908 AliEMCALTenderSupply.cxx:909 AliEMCALTenderSupply.cxx:910 AliEMCALTenderSupply.cxx:911 AliEMCALTenderSupply.cxx:912 AliEMCALTenderSupply.cxx:913 AliEMCALTenderSupply.cxx:914 AliEMCALTenderSupply.cxx:915 AliEMCALTenderSupply.cxx:916 AliEMCALTenderSupply.cxx:917 AliEMCALTenderSupply.cxx:918 AliEMCALTenderSupply.cxx:919 AliEMCALTenderSupply.cxx:920 AliEMCALTenderSupply.cxx:921 AliEMCALTenderSupply.cxx:922 AliEMCALTenderSupply.cxx:923 AliEMCALTenderSupply.cxx:924 AliEMCALTenderSupply.cxx:925 AliEMCALTenderSupply.cxx:926 AliEMCALTenderSupply.cxx:927 AliEMCALTenderSupply.cxx:928 AliEMCALTenderSupply.cxx:929 AliEMCALTenderSupply.cxx:930 AliEMCALTenderSupply.cxx:931 AliEMCALTenderSupply.cxx:932 AliEMCALTenderSupply.cxx:933 AliEMCALTenderSupply.cxx:934 AliEMCALTenderSupply.cxx:935 AliEMCALTenderSupply.cxx:936 AliEMCALTenderSupply.cxx:937 AliEMCALTenderSupply.cxx:938 AliEMCALTenderSupply.cxx:939 AliEMCALTenderSupply.cxx:940 AliEMCALTenderSupply.cxx:941 AliEMCALTenderSupply.cxx:942 AliEMCALTenderSupply.cxx:943 AliEMCALTenderSupply.cxx:944 AliEMCALTenderSupply.cxx:945 AliEMCALTenderSupply.cxx:946 AliEMCALTenderSupply.cxx:947 AliEMCALTenderSupply.cxx:948 AliEMCALTenderSupply.cxx:949 AliEMCALTenderSupply.cxx:950 AliEMCALTenderSupply.cxx:951 AliEMCALTenderSupply.cxx:952 AliEMCALTenderSupply.cxx:953 AliEMCALTenderSupply.cxx:954 AliEMCALTenderSupply.cxx:955 AliEMCALTenderSupply.cxx:956 AliEMCALTenderSupply.cxx:957 AliEMCALTenderSupply.cxx:958 AliEMCALTenderSupply.cxx:959 AliEMCALTenderSupply.cxx:960 AliEMCALTenderSupply.cxx:961 AliEMCALTenderSupply.cxx:962 AliEMCALTenderSupply.cxx:963 AliEMCALTenderSupply.cxx:964 AliEMCALTenderSupply.cxx:965 AliEMCALTenderSupply.cxx:966 AliEMCALTenderSupply.cxx:967 AliEMCALTenderSupply.cxx:968 AliEMCALTenderSupply.cxx:969 AliEMCALTenderSupply.cxx:970 AliEMCALTenderSupply.cxx:971 AliEMCALTenderSupply.cxx:972 AliEMCALTenderSupply.cxx:973 AliEMCALTenderSupply.cxx:974 AliEMCALTenderSupply.cxx:975 AliEMCALTenderSupply.cxx:976 AliEMCALTenderSupply.cxx:977 AliEMCALTenderSupply.cxx:978 AliEMCALTenderSupply.cxx:979 AliEMCALTenderSupply.cxx:980 AliEMCALTenderSupply.cxx:981 AliEMCALTenderSupply.cxx:982 AliEMCALTenderSupply.cxx:983 AliEMCALTenderSupply.cxx:984 AliEMCALTenderSupply.cxx:985 AliEMCALTenderSupply.cxx:986 AliEMCALTenderSupply.cxx:987 AliEMCALTenderSupply.cxx:988 AliEMCALTenderSupply.cxx:989 AliEMCALTenderSupply.cxx:990 AliEMCALTenderSupply.cxx:991 AliEMCALTenderSupply.cxx:992 AliEMCALTenderSupply.cxx:993 AliEMCALTenderSupply.cxx:994 AliEMCALTenderSupply.cxx:995 AliEMCALTenderSupply.cxx:996 AliEMCALTenderSupply.cxx:997 AliEMCALTenderSupply.cxx:998 AliEMCALTenderSupply.cxx:999 AliEMCALTenderSupply.cxx:1000 AliEMCALTenderSupply.cxx:1001 AliEMCALTenderSupply.cxx:1002 AliEMCALTenderSupply.cxx:1003 AliEMCALTenderSupply.cxx:1004 AliEMCALTenderSupply.cxx:1005 AliEMCALTenderSupply.cxx:1006 AliEMCALTenderSupply.cxx:1007 AliEMCALTenderSupply.cxx:1008 AliEMCALTenderSupply.cxx:1009 AliEMCALTenderSupply.cxx:1010 AliEMCALTenderSupply.cxx:1011 AliEMCALTenderSupply.cxx:1012 AliEMCALTenderSupply.cxx:1013 AliEMCALTenderSupply.cxx:1014 AliEMCALTenderSupply.cxx:1015 AliEMCALTenderSupply.cxx:1016 AliEMCALTenderSupply.cxx:1017 AliEMCALTenderSupply.cxx:1018 AliEMCALTenderSupply.cxx:1019 AliEMCALTenderSupply.cxx:1020 AliEMCALTenderSupply.cxx:1021 AliEMCALTenderSupply.cxx:1022 AliEMCALTenderSupply.cxx:1023 AliEMCALTenderSupply.cxx:1024 AliEMCALTenderSupply.cxx:1025 AliEMCALTenderSupply.cxx:1026 AliEMCALTenderSupply.cxx:1027 AliEMCALTenderSupply.cxx:1028 AliEMCALTenderSupply.cxx:1029 AliEMCALTenderSupply.cxx:1030 AliEMCALTenderSupply.cxx:1031 AliEMCALTenderSupply.cxx:1032 AliEMCALTenderSupply.cxx:1033 AliEMCALTenderSupply.cxx:1034 AliEMCALTenderSupply.cxx:1035 AliEMCALTenderSupply.cxx:1036 AliEMCALTenderSupply.cxx:1037 AliEMCALTenderSupply.cxx:1038 AliEMCALTenderSupply.cxx:1039 AliEMCALTenderSupply.cxx:1040 AliEMCALTenderSupply.cxx:1041 AliEMCALTenderSupply.cxx:1042 AliEMCALTenderSupply.cxx:1043 AliEMCALTenderSupply.cxx:1044 AliEMCALTenderSupply.cxx:1045 AliEMCALTenderSupply.cxx:1046 AliEMCALTenderSupply.cxx:1047 AliEMCALTenderSupply.cxx:1048 AliEMCALTenderSupply.cxx:1049 AliEMCALTenderSupply.cxx:1050 AliEMCALTenderSupply.cxx:1051 AliEMCALTenderSupply.cxx:1052 AliEMCALTenderSupply.cxx:1053 AliEMCALTenderSupply.cxx:1054 AliEMCALTenderSupply.cxx:1055 AliEMCALTenderSupply.cxx:1056 AliEMCALTenderSupply.cxx:1057 AliEMCALTenderSupply.cxx:1058 AliEMCALTenderSupply.cxx:1059 AliEMCALTenderSupply.cxx:1060 AliEMCALTenderSupply.cxx:1061 AliEMCALTenderSupply.cxx:1062 AliEMCALTenderSupply.cxx:1063 AliEMCALTenderSupply.cxx:1064 AliEMCALTenderSupply.cxx:1065 AliEMCALTenderSupply.cxx:1066 AliEMCALTenderSupply.cxx:1067 AliEMCALTenderSupply.cxx:1068 AliEMCALTenderSupply.cxx:1069 AliEMCALTenderSupply.cxx:1070 AliEMCALTenderSupply.cxx:1071 AliEMCALTenderSupply.cxx:1072 AliEMCALTenderSupply.cxx:1073 AliEMCALTenderSupply.cxx:1074 AliEMCALTenderSupply.cxx:1075 AliEMCALTenderSupply.cxx:1076 AliEMCALTenderSupply.cxx:1077 AliEMCALTenderSupply.cxx:1078 AliEMCALTenderSupply.cxx:1079 AliEMCALTenderSupply.cxx:1080 AliEMCALTenderSupply.cxx:1081 AliEMCALTenderSupply.cxx:1082 AliEMCALTenderSupply.cxx:1083 AliEMCALTenderSupply.cxx:1084 AliEMCALTenderSupply.cxx:1085 AliEMCALTenderSupply.cxx:1086 AliEMCALTenderSupply.cxx:1087 AliEMCALTenderSupply.cxx:1088 AliEMCALTenderSupply.cxx:1089 AliEMCALTenderSupply.cxx:1090 AliEMCALTenderSupply.cxx:1091 AliEMCALTenderSupply.cxx:1092 AliEMCALTenderSupply.cxx:1093 AliEMCALTenderSupply.cxx:1094 AliEMCALTenderSupply.cxx:1095 AliEMCALTenderSupply.cxx:1096 AliEMCALTenderSupply.cxx:1097 AliEMCALTenderSupply.cxx:1098 AliEMCALTenderSupply.cxx:1099 AliEMCALTenderSupply.cxx:1100 AliEMCALTenderSupply.cxx:1101 AliEMCALTenderSupply.cxx:1102 AliEMCALTenderSupply.cxx:1103 AliEMCALTenderSupply.cxx:1104 AliEMCALTenderSupply.cxx:1105 AliEMCALTenderSupply.cxx:1106 AliEMCALTenderSupply.cxx:1107 AliEMCALTenderSupply.cxx:1108 AliEMCALTenderSupply.cxx:1109 AliEMCALTenderSupply.cxx:1110 AliEMCALTenderSupply.cxx:1111 AliEMCALTenderSupply.cxx:1112 AliEMCALTenderSupply.cxx:1113 AliEMCALTenderSupply.cxx:1114 AliEMCALTenderSupply.cxx:1115 AliEMCALTenderSupply.cxx:1116 AliEMCALTenderSupply.cxx:1117 AliEMCALTenderSupply.cxx:1118 AliEMCALTenderSupply.cxx:1119 AliEMCALTenderSupply.cxx:1120 AliEMCALTenderSupply.cxx:1121 AliEMCALTenderSupply.cxx:1122 AliEMCALTenderSupply.cxx:1123 AliEMCALTenderSupply.cxx:1124 AliEMCALTenderSupply.cxx:1125 AliEMCALTenderSupply.cxx:1126 AliEMCALTenderSupply.cxx:1127 AliEMCALTenderSupply.cxx:1128 AliEMCALTenderSupply.cxx:1129 AliEMCALTenderSupply.cxx:1130 AliEMCALTenderSupply.cxx:1131 AliEMCALTenderSupply.cxx:1132 AliEMCALTenderSupply.cxx:1133 AliEMCALTenderSupply.cxx:1134 AliEMCALTenderSupply.cxx:1135 AliEMCALTenderSupply.cxx:1136 AliEMCALTenderSupply.cxx:1137 AliEMCALTenderSupply.cxx:1138 AliEMCALTenderSupply.cxx:1139 AliEMCALTenderSupply.cxx:1140 AliEMCALTenderSupply.cxx:1141 AliEMCALTenderSupply.cxx:1142 AliEMCALTenderSupply.cxx:1143 AliEMCALTenderSupply.cxx:1144 AliEMCALTenderSupply.cxx:1145 AliEMCALTenderSupply.cxx:1146 AliEMCALTenderSupply.cxx:1147 AliEMCALTenderSupply.cxx:1148 AliEMCALTenderSupply.cxx:1149 AliEMCALTenderSupply.cxx:1150 AliEMCALTenderSupply.cxx:1151 AliEMCALTenderSupply.cxx:1152 AliEMCALTenderSupply.cxx:1153 AliEMCALTenderSupply.cxx:1154 AliEMCALTenderSupply.cxx:1155 AliEMCALTenderSupply.cxx:1156 AliEMCALTenderSupply.cxx:1157 AliEMCALTenderSupply.cxx:1158 AliEMCALTenderSupply.cxx:1159 AliEMCALTenderSupply.cxx:1160 AliEMCALTenderSupply.cxx:1161 AliEMCALTenderSupply.cxx:1162 AliEMCALTenderSupply.cxx:1163 AliEMCALTenderSupply.cxx:1164 AliEMCALTenderSupply.cxx:1165 AliEMCALTenderSupply.cxx:1166 AliEMCALTenderSupply.cxx:1167 AliEMCALTenderSupply.cxx:1168 AliEMCALTenderSupply.cxx:1169 AliEMCALTenderSupply.cxx:1170 AliEMCALTenderSupply.cxx:1171 AliEMCALTenderSupply.cxx:1172 AliEMCALTenderSupply.cxx:1173 AliEMCALTenderSupply.cxx:1174 AliEMCALTenderSupply.cxx:1175 AliEMCALTenderSupply.cxx:1176 AliEMCALTenderSupply.cxx:1177 AliEMCALTenderSupply.cxx:1178 AliEMCALTenderSupply.cxx:1179 AliEMCALTenderSupply.cxx:1180 AliEMCALTenderSupply.cxx:1181 AliEMCALTenderSupply.cxx:1182 AliEMCALTenderSupply.cxx:1183 AliEMCALTenderSupply.cxx:1184 AliEMCALTenderSupply.cxx:1185 AliEMCALTenderSupply.cxx:1186 AliEMCALTenderSupply.cxx:1187 AliEMCALTenderSupply.cxx:1188 AliEMCALTenderSupply.cxx:1189 AliEMCALTenderSupply.cxx:1190 AliEMCALTenderSupply.cxx:1191 AliEMCALTenderSupply.cxx:1192 AliEMCALTenderSupply.cxx:1193 AliEMCALTenderSupply.cxx:1194 AliEMCALTenderSupply.cxx:1195 AliEMCALTenderSupply.cxx:1196 AliEMCALTenderSupply.cxx:1197 AliEMCALTenderSupply.cxx:1198 AliEMCALTenderSupply.cxx:1199 AliEMCALTenderSupply.cxx:1200 AliEMCALTenderSupply.cxx:1201 AliEMCALTenderSupply.cxx:1202 AliEMCALTenderSupply.cxx:1203 AliEMCALTenderSupply.cxx:1204 AliEMCALTenderSupply.cxx:1205 AliEMCALTenderSupply.cxx:1206 AliEMCALTenderSupply.cxx:1207 AliEMCALTenderSupply.cxx:1208 AliEMCALTenderSupply.cxx:1209 AliEMCALTenderSupply.cxx:1210 AliEMCALTenderSupply.cxx:1211 AliEMCALTenderSupply.cxx:1212 AliEMCALTenderSupply.cxx:1213 AliEMCALTenderSupply.cxx:1214 AliEMCALTenderSupply.cxx:1215 AliEMCALTenderSupply.cxx:1216 AliEMCALTenderSupply.cxx:1217 AliEMCALTenderSupply.cxx:1218 AliEMCALTenderSupply.cxx:1219 AliEMCALTenderSupply.cxx:1220 AliEMCALTenderSupply.cxx:1221 AliEMCALTenderSupply.cxx:1222 AliEMCALTenderSupply.cxx:1223 AliEMCALTenderSupply.cxx:1224 AliEMCALTenderSupply.cxx:1225 AliEMCALTenderSupply.cxx:1226 AliEMCALTenderSupply.cxx:1227 AliEMCALTenderSupply.cxx:1228 AliEMCALTenderSupply.cxx:1229 AliEMCALTenderSupply.cxx:1230 AliEMCALTenderSupply.cxx:1231 AliEMCALTenderSupply.cxx:1232 AliEMCALTenderSupply.cxx:1233 AliEMCALTenderSupply.cxx:1234 AliEMCALTenderSupply.cxx:1235 AliEMCALTenderSupply.cxx:1236 AliEMCALTenderSupply.cxx:1237 AliEMCALTenderSupply.cxx:1238 AliEMCALTenderSupply.cxx:1239 AliEMCALTenderSupply.cxx:1240 AliEMCALTenderSupply.cxx:1241 AliEMCALTenderSupply.cxx:1242 AliEMCALTenderSupply.cxx:1243 AliEMCALTenderSupply.cxx:1244 AliEMCALTenderSupply.cxx:1245 AliEMCALTenderSupply.cxx:1246 AliEMCALTenderSupply.cxx:1247 AliEMCALTenderSupply.cxx:1248 AliEMCALTenderSupply.cxx:1249 AliEMCALTenderSupply.cxx:1250 AliEMCALTenderSupply.cxx:1251 AliEMCALTenderSupply.cxx:1252 AliEMCALTenderSupply.cxx:1253 AliEMCALTenderSupply.cxx:1254 AliEMCALTenderSupply.cxx:1255 AliEMCALTenderSupply.cxx:1256 AliEMCALTenderSupply.cxx:1257 AliEMCALTenderSupply.cxx:1258 AliEMCALTenderSupply.cxx:1259 AliEMCALTenderSupply.cxx:1260 AliEMCALTenderSupply.cxx:1261 AliEMCALTenderSupply.cxx:1262 AliEMCALTenderSupply.cxx:1263 AliEMCALTenderSupply.cxx:1264 AliEMCALTenderSupply.cxx:1265 AliEMCALTenderSupply.cxx:1266 AliEMCALTenderSupply.cxx:1267 AliEMCALTenderSupply.cxx:1268 AliEMCALTenderSupply.cxx:1269 AliEMCALTenderSupply.cxx:1270 AliEMCALTenderSupply.cxx:1271 AliEMCALTenderSupply.cxx:1272 AliEMCALTenderSupply.cxx:1273 AliEMCALTenderSupply.cxx:1274 AliEMCALTenderSupply.cxx:1275 AliEMCALTenderSupply.cxx:1276 AliEMCALTenderSupply.cxx:1277 AliEMCALTenderSupply.cxx:1278 AliEMCALTenderSupply.cxx:1279 AliEMCALTenderSupply.cxx:1280 AliEMCALTenderSupply.cxx:1281 AliEMCALTenderSupply.cxx:1282 AliEMCALTenderSupply.cxx:1283 AliEMCALTenderSupply.cxx:1284 AliEMCALTenderSupply.cxx:1285 AliEMCALTenderSupply.cxx:1286 AliEMCALTenderSupply.cxx:1287 AliEMCALTenderSupply.cxx:1288 AliEMCALTenderSupply.cxx:1289 AliEMCALTenderSupply.cxx:1290 AliEMCALTenderSupply.cxx:1291 AliEMCALTenderSupply.cxx:1292 AliEMCALTenderSupply.cxx:1293 AliEMCALTenderSupply.cxx:1294 AliEMCALTenderSupply.cxx:1295 AliEMCALTenderSupply.cxx:1296 AliEMCALTenderSupply.cxx:1297 AliEMCALTenderSupply.cxx:1298 AliEMCALTenderSupply.cxx:1299 AliEMCALTenderSupply.cxx:1300 AliEMCALTenderSupply.cxx:1301 AliEMCALTenderSupply.cxx:1302 AliEMCALTenderSupply.cxx:1303 AliEMCALTenderSupply.cxx:1304 AliEMCALTenderSupply.cxx:1305 AliEMCALTenderSupply.cxx:1306 AliEMCALTenderSupply.cxx:1307 AliEMCALTenderSupply.cxx:1308 AliEMCALTenderSupply.cxx:1309 AliEMCALTenderSupply.cxx:1310 AliEMCALTenderSupply.cxx:1311 AliEMCALTenderSupply.cxx:1312 AliEMCALTenderSupply.cxx:1313 AliEMCALTenderSupply.cxx:1314 AliEMCALTenderSupply.cxx:1315 AliEMCALTenderSupply.cxx:1316 AliEMCALTenderSupply.cxx:1317 AliEMCALTenderSupply.cxx:1318 AliEMCALTenderSupply.cxx:1319 AliEMCALTenderSupply.cxx:1320 AliEMCALTenderSupply.cxx:1321 AliEMCALTenderSupply.cxx:1322 AliEMCALTenderSupply.cxx:1323 AliEMCALTenderSupply.cxx:1324 AliEMCALTenderSupply.cxx:1325 AliEMCALTenderSupply.cxx:1326 AliEMCALTenderSupply.cxx:1327 AliEMCALTenderSupply.cxx:1328 AliEMCALTenderSupply.cxx:1329 AliEMCALTenderSupply.cxx:1330 AliEMCALTenderSupply.cxx:1331 AliEMCALTenderSupply.cxx:1332 AliEMCALTenderSupply.cxx:1333 AliEMCALTenderSupply.cxx:1334 AliEMCALTenderSupply.cxx:1335 AliEMCALTenderSupply.cxx:1336 AliEMCALTenderSupply.cxx:1337 AliEMCALTenderSupply.cxx:1338 AliEMCALTenderSupply.cxx:1339 AliEMCALTenderSupply.cxx:1340 AliEMCALTenderSupply.cxx:1341 AliEMCALTenderSupply.cxx:1342 AliEMCALTenderSupply.cxx:1343 AliEMCALTenderSupply.cxx:1344 AliEMCALTenderSupply.cxx:1345 AliEMCALTenderSupply.cxx:1346 AliEMCALTenderSupply.cxx:1347 AliEMCALTenderSupply.cxx:1348 AliEMCALTenderSupply.cxx:1349 AliEMCALTenderSupply.cxx:1350 AliEMCALTenderSupply.cxx:1351 AliEMCALTenderSupply.cxx:1352 AliEMCALTenderSupply.cxx:1353 AliEMCALTenderSupply.cxx:1354 AliEMCALTenderSupply.cxx:1355 AliEMCALTenderSupply.cxx:1356 AliEMCALTenderSupply.cxx:1357 AliEMCALTenderSupply.cxx:1358 AliEMCALTenderSupply.cxx:1359 AliEMCALTenderSupply.cxx:1360 AliEMCALTenderSupply.cxx:1361 AliEMCALTenderSupply.cxx:1362 AliEMCALTenderSupply.cxx:1363 AliEMCALTenderSupply.cxx:1364 AliEMCALTenderSupply.cxx:1365 AliEMCALTenderSupply.cxx:1366 AliEMCALTenderSupply.cxx:1367 AliEMCALTenderSupply.cxx:1368 AliEMCALTenderSupply.cxx:1369 AliEMCALTenderSupply.cxx:1370 AliEMCALTenderSupply.cxx:1371 AliEMCALTenderSupply.cxx:1372 AliEMCALTenderSupply.cxx:1373 AliEMCALTenderSupply.cxx:1374 AliEMCALTenderSupply.cxx:1375 AliEMCALTenderSupply.cxx:1376 AliEMCALTenderSupply.cxx:1377 AliEMCALTenderSupply.cxx:1378 AliEMCALTenderSupply.cxx:1379 AliEMCALTenderSupply.cxx:1380 AliEMCALTenderSupply.cxx:1381 AliEMCALTenderSupply.cxx:1382 AliEMCALTenderSupply.cxx:1383 AliEMCALTenderSupply.cxx:1384 AliEMCALTenderSupply.cxx:1385 AliEMCALTenderSupply.cxx:1386 AliEMCALTenderSupply.cxx:1387 AliEMCALTenderSupply.cxx:1388 AliEMCALTenderSupply.cxx:1389 AliEMCALTenderSupply.cxx:1390 AliEMCALTenderSupply.cxx:1391 AliEMCALTenderSupply.cxx:1392 AliEMCALTenderSupply.cxx:1393 AliEMCALTenderSupply.cxx:1394 AliEMCALTenderSupply.cxx:1395 AliEMCALTenderSupply.cxx:1396 AliEMCALTenderSupply.cxx:1397 AliEMCALTenderSupply.cxx:1398 AliEMCALTenderSupply.cxx:1399 AliEMCALTenderSupply.cxx:1400 AliEMCALTenderSupply.cxx:1401 AliEMCALTenderSupply.cxx:1402 AliEMCALTenderSupply.cxx:1403 AliEMCALTenderSupply.cxx:1404 AliEMCALTenderSupply.cxx:1405 AliEMCALTenderSupply.cxx:1406 AliEMCALTenderSupply.cxx:1407 AliEMCALTenderSupply.cxx:1408 AliEMCALTenderSupply.cxx:1409 AliEMCALTenderSupply.cxx:1410 AliEMCALTenderSupply.cxx:1411 AliEMCALTenderSupply.cxx:1412 AliEMCALTenderSupply.cxx:1413 AliEMCALTenderSupply.cxx:1414 AliEMCALTenderSupply.cxx:1415 AliEMCALTenderSupply.cxx:1416 AliEMCALTenderSupply.cxx:1417 AliEMCALTenderSupply.cxx:1418 AliEMCALTenderSupply.cxx:1419 AliEMCALTenderSupply.cxx:1420 AliEMCALTenderSupply.cxx:1421 AliEMCALTenderSupply.cxx:1422 AliEMCALTenderSupply.cxx:1423 AliEMCALTenderSupply.cxx:1424 AliEMCALTenderSupply.cxx:1425 AliEMCALTenderSupply.cxx:1426 AliEMCALTenderSupply.cxx:1427 AliEMCALTenderSupply.cxx:1428 AliEMCALTenderSupply.cxx:1429 AliEMCALTenderSupply.cxx:1430 AliEMCALTenderSupply.cxx:1431 AliEMCALTenderSupply.cxx:1432 AliEMCALTenderSupply.cxx:1433 AliEMCALTenderSupply.cxx:1434 AliEMCALTenderSupply.cxx:1435 AliEMCALTenderSupply.cxx:1436 AliEMCALTenderSupply.cxx:1437 AliEMCALTenderSupply.cxx:1438 AliEMCALTenderSupply.cxx:1439 AliEMCALTenderSupply.cxx:1440 AliEMCALTenderSupply.cxx:1441 AliEMCALTenderSupply.cxx:1442 AliEMCALTenderSupply.cxx:1443 AliEMCALTenderSupply.cxx:1444 AliEMCALTenderSupply.cxx:1445 AliEMCALTenderSupply.cxx:1446 AliEMCALTenderSupply.cxx:1447 AliEMCALTenderSupply.cxx:1448 AliEMCALTenderSupply.cxx:1449 AliEMCALTenderSupply.cxx:1450 AliEMCALTenderSupply.cxx:1451 AliEMCALTenderSupply.cxx:1452 AliEMCALTenderSupply.cxx:1453 AliEMCALTenderSupply.cxx:1454 AliEMCALTenderSupply.cxx:1455 AliEMCALTenderSupply.cxx:1456 AliEMCALTenderSupply.cxx:1457 AliEMCALTenderSupply.cxx:1458 AliEMCALTenderSupply.cxx:1459 AliEMCALTenderSupply.cxx:1460 AliEMCALTenderSupply.cxx:1461 AliEMCALTenderSupply.cxx:1462 AliEMCALTenderSupply.cxx:1463 AliEMCALTenderSupply.cxx:1464 AliEMCALTenderSupply.cxx:1465 AliEMCALTenderSupply.cxx:1466 AliEMCALTenderSupply.cxx:1467 AliEMCALTenderSupply.cxx:1468 AliEMCALTenderSupply.cxx:1469 AliEMCALTenderSupply.cxx:1470 AliEMCALTenderSupply.cxx:1471 AliEMCALTenderSupply.cxx:1472 AliEMCALTenderSupply.cxx:1473 AliEMCALTenderSupply.cxx:1474 AliEMCALTenderSupply.cxx:1475 AliEMCALTenderSupply.cxx:1476 AliEMCALTenderSupply.cxx:1477 AliEMCALTenderSupply.cxx:1478 AliEMCALTenderSupply.cxx:1479 AliEMCALTenderSupply.cxx:1480 AliEMCALTenderSupply.cxx:1481 AliEMCALTenderSupply.cxx:1482 AliEMCALTenderSupply.cxx:1483 AliEMCALTenderSupply.cxx:1484 AliEMCALTenderSupply.cxx:1485 AliEMCALTenderSupply.cxx:1486 AliEMCALTenderSupply.cxx:1487 AliEMCALTenderSupply.cxx:1488 AliEMCALTenderSupply.cxx:1489 AliEMCALTenderSupply.cxx:1490 AliEMCALTenderSupply.cxx:1491 AliEMCALTenderSupply.cxx:1492 AliEMCALTenderSupply.cxx:1493 AliEMCALTenderSupply.cxx:1494 AliEMCALTenderSupply.cxx:1495 AliEMCALTenderSupply.cxx:1496 AliEMCALTenderSupply.cxx:1497 AliEMCALTenderSupply.cxx:1498 AliEMCALTenderSupply.cxx:1499 AliEMCALTenderSupply.cxx:1500 AliEMCALTenderSupply.cxx:1501 AliEMCALTenderSupply.cxx:1502 AliEMCALTenderSupply.cxx:1503 AliEMCALTenderSupply.cxx:1504 AliEMCALTenderSupply.cxx:1505 AliEMCALTenderSupply.cxx:1506 AliEMCALTenderSupply.cxx:1507 AliEMCALTenderSupply.cxx:1508 AliEMCALTenderSupply.cxx:1509 AliEMCALTenderSupply.cxx:1510 AliEMCALTenderSupply.cxx:1511 AliEMCALTenderSupply.cxx:1512 AliEMCALTenderSupply.cxx:1513 AliEMCALTenderSupply.cxx:1514 AliEMCALTenderSupply.cxx:1515 AliEMCALTenderSupply.cxx:1516 AliEMCALTenderSupply.cxx:1517 AliEMCALTenderSupply.cxx:1518 AliEMCALTenderSupply.cxx:1519 AliEMCALTenderSupply.cxx:1520 AliEMCALTenderSupply.cxx:1521 AliEMCALTenderSupply.cxx:1522 AliEMCALTenderSupply.cxx:1523 AliEMCALTenderSupply.cxx:1524 AliEMCALTenderSupply.cxx:1525 AliEMCALTenderSupply.cxx:1526 AliEMCALTenderSupply.cxx:1527 AliEMCALTenderSupply.cxx:1528 AliEMCALTenderSupply.cxx:1529 AliEMCALTenderSupply.cxx:1530 AliEMCALTenderSupply.cxx:1531 AliEMCALTenderSupply.cxx:1532 AliEMCALTenderSupply.cxx:1533 AliEMCALTenderSupply.cxx:1534 AliEMCALTenderSupply.cxx:1535 AliEMCALTenderSupply.cxx:1536 AliEMCALTenderSupply.cxx:1537 AliEMCALTenderSupply.cxx:1538 AliEMCALTenderSupply.cxx:1539 AliEMCALTenderSupply.cxx:1540 AliEMCALTenderSupply.cxx:1541 AliEMCALTenderSupply.cxx:1542 AliEMCALTenderSupply.cxx:1543 AliEMCALTenderSupply.cxx:1544 AliEMCALTenderSupply.cxx:1545 AliEMCALTenderSupply.cxx:1546 AliEMCALTenderSupply.cxx:1547 AliEMCALTenderSupply.cxx:1548 AliEMCALTenderSupply.cxx:1549 AliEMCALTenderSupply.cxx:1550 AliEMCALTenderSupply.cxx:1551 AliEMCALTenderSupply.cxx:1552 AliEMCALTenderSupply.cxx:1553 AliEMCALTenderSupply.cxx:1554 AliEMCALTenderSupply.cxx:1555 AliEMCALTenderSupply.cxx:1556 AliEMCALTenderSupply.cxx:1557 AliEMCALTenderSupply.cxx:1558 AliEMCALTenderSupply.cxx:1559 AliEMCALTenderSupply.cxx:1560 AliEMCALTenderSupply.cxx:1561 AliEMCALTenderSupply.cxx:1562 AliEMCALTenderSupply.cxx:1563 AliEMCALTenderSupply.cxx:1564 AliEMCALTenderSupply.cxx:1565 AliEMCALTenderSupply.cxx:1566 AliEMCALTenderSupply.cxx:1567 AliEMCALTenderSupply.cxx:1568 AliEMCALTenderSupply.cxx:1569 AliEMCALTenderSupply.cxx:1570 AliEMCALTenderSupply.cxx:1571 AliEMCALTenderSupply.cxx:1572 AliEMCALTenderSupply.cxx:1573 AliEMCALTenderSupply.cxx:1574 AliEMCALTenderSupply.cxx:1575 AliEMCALTenderSupply.cxx:1576 AliEMCALTenderSupply.cxx:1577 AliEMCALTenderSupply.cxx:1578 AliEMCALTenderSupply.cxx:1579 AliEMCALTenderSupply.cxx:1580 AliEMCALTenderSupply.cxx:1581 AliEMCALTenderSupply.cxx:1582 AliEMCALTenderSupply.cxx:1583 AliEMCALTenderSupply.cxx:1584 AliEMCALTenderSupply.cxx:1585 AliEMCALTenderSupply.cxx:1586 AliEMCALTenderSupply.cxx:1587 AliEMCALTenderSupply.cxx:1588 AliEMCALTenderSupply.cxx:1589 AliEMCALTenderSupply.cxx:1590 AliEMCALTenderSupply.cxx:1591 AliEMCALTenderSupply.cxx:1592 AliEMCALTenderSupply.cxx:1593 AliEMCALTenderSupply.cxx:1594 AliEMCALTenderSupply.cxx:1595 AliEMCALTenderSupply.cxx:1596 AliEMCALTenderSupply.cxx:1597 AliEMCALTenderSupply.cxx:1598 AliEMCALTenderSupply.cxx:1599 AliEMCALTenderSupply.cxx:1600 AliEMCALTenderSupply.cxx:1601 AliEMCALTenderSupply.cxx:1602 AliEMCALTenderSupply.cxx:1603 AliEMCALTenderSupply.cxx:1604 AliEMCALTenderSupply.cxx:1605 AliEMCALTenderSupply.cxx:1606 AliEMCALTenderSupply.cxx:1607 AliEMCALTenderSupply.cxx:1608 AliEMCALTenderSupply.cxx:1609 AliEMCALTenderSupply.cxx:1610 AliEMCALTenderSupply.cxx:1611 AliEMCALTenderSupply.cxx:1612 AliEMCALTenderSupply.cxx:1613 AliEMCALTenderSupply.cxx:1614 AliEMCALTenderSupply.cxx:1615 AliEMCALTenderSupply.cxx:1616 AliEMCALTenderSupply.cxx:1617 AliEMCALTenderSupply.cxx:1618 AliEMCALTenderSupply.cxx:1619 AliEMCALTenderSupply.cxx:1620 AliEMCALTenderSupply.cxx:1621 AliEMCALTenderSupply.cxx:1622 AliEMCALTenderSupply.cxx:1623 AliEMCALTenderSupply.cxx:1624 AliEMCALTenderSupply.cxx:1625 AliEMCALTenderSupply.cxx:1626 AliEMCALTenderSupply.cxx:1627 AliEMCALTenderSupply.cxx:1628 AliEMCALTenderSupply.cxx:1629 AliEMCALTenderSupply.cxx:1630 AliEMCALTenderSupply.cxx:1631 AliEMCALTenderSupply.cxx:1632 AliEMCALTenderSupply.cxx:1633 AliEMCALTenderSupply.cxx:1634 AliEMCALTenderSupply.cxx:1635 AliEMCALTenderSupply.cxx:1636 AliEMCALTenderSupply.cxx:1637 AliEMCALTenderSupply.cxx:1638 AliEMCALTenderSupply.cxx:1639 AliEMCALTenderSupply.cxx:1640 AliEMCALTenderSupply.cxx:1641 AliEMCALTenderSupply.cxx:1642 AliEMCALTenderSupply.cxx:1643 AliEMCALTenderSupply.cxx:1644 AliEMCALTenderSupply.cxx:1645 AliEMCALTenderSupply.cxx:1646 AliEMCALTenderSupply.cxx:1647 AliEMCALTenderSupply.cxx:1648 AliEMCALTenderSupply.cxx:1649 AliEMCALTenderSupply.cxx:1650 AliEMCALTenderSupply.cxx:1651 AliEMCALTenderSupply.cxx:1652 AliEMCALTenderSupply.cxx:1653 AliEMCALTenderSupply.cxx:1654 AliEMCALTenderSupply.cxx:1655 AliEMCALTenderSupply.cxx:1656 AliEMCALTenderSupply.cxx:1657 AliEMCALTenderSupply.cxx:1658 AliEMCALTenderSupply.cxx:1659 AliEMCALTenderSupply.cxx:1660 AliEMCALTenderSupply.cxx:1661 AliEMCALTenderSupply.cxx:1662 AliEMCALTenderSupply.cxx:1663 AliEMCALTenderSupply.cxx:1664 AliEMCALTenderSupply.cxx:1665 AliEMCALTenderSupply.cxx:1666 AliEMCALTenderSupply.cxx:1667 AliEMCALTenderSupply.cxx:1668 AliEMCALTenderSupply.cxx:1669 AliEMCALTenderSupply.cxx:1670 AliEMCALTenderSupply.cxx:1671 AliEMCALTenderSupply.cxx:1672 AliEMCALTenderSupply.cxx:1673 AliEMCALTenderSupply.cxx:1674 AliEMCALTenderSupply.cxx:1675 AliEMCALTenderSupply.cxx:1676 AliEMCALTenderSupply.cxx:1677 AliEMCALTenderSupply.cxx:1678 AliEMCALTenderSupply.cxx:1679 AliEMCALTenderSupply.cxx:1680 AliEMCALTenderSupply.cxx:1681 AliEMCALTenderSupply.cxx:1682 AliEMCALTenderSupply.cxx:1683 AliEMCALTenderSupply.cxx:1684 AliEMCALTenderSupply.cxx:1685 AliEMCALTenderSupply.cxx:1686 AliEMCALTenderSupply.cxx:1687 AliEMCALTenderSupply.cxx:1688 AliEMCALTenderSupply.cxx:1689 AliEMCALTenderSupply.cxx:1690 AliEMCALTenderSupply.cxx:1691 AliEMCALTenderSupply.cxx:1692 AliEMCALTenderSupply.cxx:1693 AliEMCALTenderSupply.cxx:1694 AliEMCALTenderSupply.cxx:1695 AliEMCALTenderSupply.cxx:1696 AliEMCALTenderSupply.cxx:1697 AliEMCALTenderSupply.cxx:1698 AliEMCALTenderSupply.cxx:1699 AliEMCALTenderSupply.cxx:1700 AliEMCALTenderSupply.cxx:1701 AliEMCALTenderSupply.cxx:1702 AliEMCALTenderSupply.cxx:1703 AliEMCALTenderSupply.cxx:1704 AliEMCALTenderSupply.cxx:1705 AliEMCALTenderSupply.cxx:1706 AliEMCALTenderSupply.cxx:1707 AliEMCALTenderSupply.cxx:1708 AliEMCALTenderSupply.cxx:1709 AliEMCALTenderSupply.cxx:1710 AliEMCALTenderSupply.cxx:1711 AliEMCALTenderSupply.cxx:1712 AliEMCALTenderSupply.cxx:1713 AliEMCALTenderSupply.cxx:1714 AliEMCALTenderSupply.cxx:1715 AliEMCALTenderSupply.cxx:1716 AliEMCALTenderSupply.cxx:1717 AliEMCALTenderSupply.cxx:1718 AliEMCALTenderSupply.cxx:1719 AliEMCALTenderSupply.cxx:1720 AliEMCALTenderSupply.cxx:1721 AliEMCALTenderSupply.cxx:1722 AliEMCALTenderSupply.cxx:1723 AliEMCALTenderSupply.cxx:1724 AliEMCALTenderSupply.cxx:1725 AliEMCALTenderSupply.cxx:1726 AliEMCALTenderSupply.cxx:1727 AliEMCALTenderSupply.cxx:1728 AliEMCALTenderSupply.cxx:1729 AliEMCALTenderSupply.cxx:1730 AliEMCALTenderSupply.cxx:1731 AliEMCALTenderSupply.cxx:1732 AliEMCALTenderSupply.cxx:1733 AliEMCALTenderSupply.cxx:1734 AliEMCALTenderSupply.cxx:1735 AliEMCALTenderSupply.cxx:1736 AliEMCALTenderSupply.cxx:1737 AliEMCALTenderSupply.cxx:1738 AliEMCALTenderSupply.cxx:1739 AliEMCALTenderSupply.cxx:1740 AliEMCALTenderSupply.cxx:1741 AliEMCALTenderSupply.cxx:1742 AliEMCALTenderSupply.cxx:1743 AliEMCALTenderSupply.cxx:1744 AliEMCALTenderSupply.cxx:1745 AliEMCALTenderSupply.cxx:1746 AliEMCALTenderSupply.cxx:1747 AliEMCALTenderSupply.cxx:1748 AliEMCALTenderSupply.cxx:1749 AliEMCALTenderSupply.cxx:1750 AliEMCALTenderSupply.cxx:1751 AliEMCALTenderSupply.cxx:1752 AliEMCALTenderSupply.cxx:1753 AliEMCALTenderSupply.cxx:1754 AliEMCALTenderSupply.cxx:1755 AliEMCALTenderSupply.cxx:1756 AliEMCALTenderSupply.cxx:1757 AliEMCALTenderSupply.cxx:1758 AliEMCALTenderSupply.cxx:1759 AliEMCALTenderSupply.cxx:1760 AliEMCALTenderSupply.cxx:1761 AliEMCALTenderSupply.cxx:1762 AliEMCALTenderSupply.cxx:1763 AliEMCALTenderSupply.cxx:1764 AliEMCALTenderSupply.cxx:1765 AliEMCALTenderSupply.cxx:1766 AliEMCALTenderSupply.cxx:1767 AliEMCALTenderSupply.cxx:1768 AliEMCALTenderSupply.cxx:1769 AliEMCALTenderSupply.cxx:1770 AliEMCALTenderSupply.cxx:1771 AliEMCALTenderSupply.cxx:1772 AliEMCALTenderSupply.cxx:1773 AliEMCALTenderSupply.cxx:1774 AliEMCALTenderSupply.cxx:1775 AliEMCALTenderSupply.cxx:1776 AliEMCALTenderSupply.cxx:1777 AliEMCALTenderSupply.cxx:1778 AliEMCALTenderSupply.cxx:1779 AliEMCALTenderSupply.cxx:1780 AliEMCALTenderSupply.cxx:1781 AliEMCALTenderSupply.cxx:1782 AliEMCALTenderSupply.cxx:1783 AliEMCALTenderSupply.cxx:1784 AliEMCALTenderSupply.cxx:1785 AliEMCALTenderSupply.cxx:1786 AliEMCALTenderSupply.cxx:1787 AliEMCALTenderSupply.cxx:1788 AliEMCALTenderSupply.cxx:1789 AliEMCALTenderSupply.cxx:1790 AliEMCALTenderSupply.cxx:1791 AliEMCALTenderSupply.cxx:1792 AliEMCALTenderSupply.cxx:1793 AliEMCALTenderSupply.cxx:1794 AliEMCALTenderSupply.cxx:1795 AliEMCALTenderSupply.cxx:1796 AliEMCALTenderSupply.cxx:1797 AliEMCALTenderSupply.cxx:1798 AliEMCALTenderSupply.cxx:1799 AliEMCALTenderSupply.cxx:1800 AliEMCALTenderSupply.cxx:1801 AliEMCALTenderSupply.cxx:1802 AliEMCALTenderSupply.cxx:1803 AliEMCALTenderSupply.cxx:1804 AliEMCALTenderSupply.cxx:1805 AliEMCALTenderSupply.cxx:1806 AliEMCALTenderSupply.cxx:1807 AliEMCALTenderSupply.cxx:1808 AliEMCALTenderSupply.cxx:1809 AliEMCALTenderSupply.cxx:1810 AliEMCALTenderSupply.cxx:1811 AliEMCALTenderSupply.cxx:1812 AliEMCALTenderSupply.cxx:1813 AliEMCALTenderSupply.cxx:1814 AliEMCALTenderSupply.cxx:1815 AliEMCALTenderSupply.cxx:1816 AliEMCALTenderSupply.cxx:1817 AliEMCALTenderSupply.cxx:1818 AliEMCALTenderSupply.cxx:1819 AliEMCALTenderSupply.cxx:1820 AliEMCALTenderSupply.cxx:1821 AliEMCALTenderSupply.cxx:1822 AliEMCALTenderSupply.cxx:1823 AliEMCALTenderSupply.cxx:1824 AliEMCALTenderSupply.cxx:1825 AliEMCALTenderSupply.cxx:1826 AliEMCALTenderSupply.cxx:1827