#include <TH2F.h>
#include <TH1D.h>
#include <TAxis.h>
#include <TMap.h>
#include "AliRawReader.h"
#include "AliESDEvent.h"
#include "AliESDZDC.h"
#include "AliZDCDigit.h"
#include "AliZDCRawStream.h"
#include "AliZDCReco.h"
#include "AliZDCReconstructor.h"
#include "AliZDCPedestals.h"
#include "AliZDCEnCalib.h"
#include "AliZDCSaturationCalib.h"
#include "AliZDCTowerCalib.h"
#include "AliZDCMBCalib.h"
#include "AliZDCTDCCalib.h"
#include "AliZDCRecoParam.h"
#include "AliZDCRecoParampp.h"
#include "AliZDCRecoParamPbPb.h"
#include "AliRunInfo.h"
#include "AliLHCClockPhase.h"
ClassImp(AliZDCReconstructor)
AliZDCRecoParam *AliZDCReconstructor::fgRecoParam=0;
AliZDCMBCalib *AliZDCReconstructor::fgMBCalibData=0;
AliZDCReconstructor:: AliZDCReconstructor() :
fPedData(GetPedestalData()),
fEnCalibData(GetEnergyCalibData()),
fSatCalibData(GetSaturationCalibData()),
fTowCalibData(GetTowerCalibData()),
fTDCCalibData(GetTDCCalibData()),
fRecoMode(0),
fBeamEnergy(0.),
fNRun(0),
fIsCalibrationMB(kFALSE),
fPedSubMode(0),
fSignalThreshold(7),
fMeanPhase(0),
fESDZDC(NULL){
}
AliZDCReconstructor::~AliZDCReconstructor()
{
if(fPedData) delete fPedData;
if(fEnCalibData) delete fEnCalibData;
if(fSatCalibData) delete fSatCalibData;
if(fTowCalibData) delete fTowCalibData;
if(fgMBCalibData) delete fgMBCalibData;
if(fESDZDC) delete fESDZDC;
}
void AliZDCReconstructor::Init()
{
TString runType = GetRunInfo()->GetRunType();
if((runType.CompareTo("CALIBRATION_MB")) == 0){
fIsCalibrationMB = kTRUE;
}
TString beamType = GetRunInfo()->GetBeamType();
if(((beamType.CompareTo("UNKNOWN"))==0) &&
((runType.CompareTo("PHYSICS"))==0 || (runType.CompareTo("CALIBRATION_BC"))==0)){
fRecoMode=1;
}
fBeamEnergy = GetRunInfo()->GetBeamEnergy();
if(fBeamEnergy<0.01){
AliWarning(" Beam energy value missing -> setting it to 1380 GeV ");
fBeamEnergy = 1380.;
}
if(((beamType.CompareTo("pp"))==0) || ((beamType.CompareTo("p-p"))==0)
||((beamType.CompareTo("PP"))==0) || ((beamType.CompareTo("P-P"))==0)){
fRecoMode=1;
}
else if(((beamType.CompareTo("p-A"))==0) || ((beamType.CompareTo("A-p"))==0)
||((beamType.CompareTo("P-A"))==0) || ((beamType.CompareTo("A-P"))==0)){
fRecoMode=1;
}
else if((beamType.CompareTo("A-A")) == 0 || (beamType.CompareTo("AA")) == 0){
fRecoMode=2;
if(!fgRecoParam) fgRecoParam = const_cast<AliZDCRecoParam*>(GetRecoParam());
if(fgRecoParam){
fgRecoParam->SetGlauberMCDist(fBeamEnergy);
}
}
AliCDBEntry *entry = AliCDBManager::Instance()->Get("GRP/Calib/LHCClockPhase");
if (!entry) AliFatal("LHC clock-phase shift is not found in OCDB !");
else{
AliLHCClockPhase *phaseLHC = (AliLHCClockPhase*)entry->GetObject();
fMeanPhase = phaseLHC->GetMeanPhaseB1();
}
if(fIsCalibrationMB==kFALSE)
AliInfo(Form("\n\n ***** ZDC reconstruction initialized for %s @ %1.0f + %1.0f GeV *****\n\n",
beamType.Data(), fBeamEnergy, fBeamEnergy));
if((runType.CompareTo("CALIBRATION_EMD")) == 0){
fRecoMode=1;
fBeamEnergy = 1380.;
}
AliInfo(Form("\n ZDC reconstruction mode %d (1 -> p-p, 2-> A-A)\n\n",fRecoMode));
fESDZDC = new AliESDZDC();
}
void AliZDCReconstructor::Init(TString beamType, Float_t beamEnergy)
{
fIsCalibrationMB = kFALSE;
fBeamEnergy = beamEnergy;
if(((beamType.CompareTo("pp"))==0) || ((beamType.CompareTo("p-p"))==0)
||((beamType.CompareTo("PP"))==0) || ((beamType.CompareTo("P-P"))==0)){
fRecoMode=1;
}
else if(((beamType.CompareTo("p-A"))==0) || ((beamType.CompareTo("A-p"))==0)
||((beamType.CompareTo("P-A"))==0) || ((beamType.CompareTo("A-P"))==0)){
fRecoMode=1;
}
else if((beamType.CompareTo("A-A")) == 0 || (beamType.CompareTo("AA")) == 0){
fRecoMode=2;
if(!fgRecoParam) fgRecoParam = const_cast<AliZDCRecoParam*>(GetRecoParam());
if( fgRecoParam ) fgRecoParam->SetGlauberMCDist(fBeamEnergy);
}
AliCDBEntry *entry = AliCDBManager::Instance()->Get("GRP/Calib/LHCClockPhase");
if (!entry) AliFatal("LHC clock-phase shift is not found in OCDB !");
else{
AliLHCClockPhase *phaseLHC = (AliLHCClockPhase*)entry->GetObject();
fMeanPhase = phaseLHC->GetMeanPhase();
}
fESDZDC = new AliESDZDC();
AliInfo(Form("\n\n ***** ZDC reconstruction initialized for %s @ %1.0f + %1.0f GeV *****\n\n",
beamType.Data(), fBeamEnergy, fBeamEnergy));
}
void AliZDCReconstructor::Reconstruct(TTree* digitsTree, TTree* clustersTree) const
{
int const kNch = 24;
Float_t meanPed[2*kNch];
for(Int_t jj=0; jj<2*kNch; jj++) meanPed[jj] = fPedData->GetMeanPed(jj);
Float_t corrCoeff0[2*kNch], corrCoeff1[2*kNch];
for(Int_t jj=0; jj<2*kNch; jj++){
corrCoeff0[jj] = fPedData->GetPedCorrCoeff0(jj);
corrCoeff1[jj] = fPedData->GetPedCorrCoeff1(jj);
}
AliZDCDigit digit;
AliZDCDigit* pdigit = &digit;
digitsTree->SetBranchAddress("ZDC", &pdigit);
Float_t tZN1Corr[10], tZP1Corr[10], tZN2Corr[10], tZP2Corr[10];
for(Int_t i=0; i<10; i++) tZN1Corr[i] = tZP1Corr[i] = tZN2Corr[i] = tZP2Corr[i] = 0.;
Float_t dZEM1Corr[2]={0,0}, dZEM2Corr[2]={0,0}, sPMRef1[2]={0,0}, sPMRef2[2]={0,0};
Int_t digNentries = digitsTree->GetEntries();
Float_t ootDigi[kNch]; Int_t i=0;
if(fPedSubMode==1){
for(Int_t iDigit=kNch; iDigit<digNentries; iDigit++){
if(i<=kNch) ootDigi[i-1] = digitsTree->GetEntry(iDigit);
else AliWarning(" Can't read more out of time values: index>kNch !!!\n");
i++;
}
}
for(Int_t iDigit=0; iDigit<(digNentries/2); iDigit++) {
digitsTree->GetEntry(iDigit);
if (!pdigit) continue;
Int_t det = digit.GetSector(0);
Int_t quad = digit.GetSector(1);
Int_t pedindex = -1;
Float_t ped2SubHg=0., ped2SubLg=0.;
if(quad!=5){
if(det==1) pedindex = quad;
else if(det==2) pedindex = quad+5;
else if(det==3) pedindex = quad+9;
else if(det==4) pedindex = quad+12;
else if(det==5) pedindex = quad+17;
}
else pedindex = (det-1)/3+22;
if(fPedSubMode==0){
ped2SubHg = meanPed[pedindex];
ped2SubLg = meanPed[pedindex+kNch];
}
else if(fPedSubMode==1){
ped2SubHg = corrCoeff1[pedindex]*ootDigi[pedindex]+corrCoeff0[pedindex];
ped2SubLg = corrCoeff1[pedindex+kNch]*ootDigi[pedindex+kNch]+corrCoeff0[pedindex+kNch];
}
if(quad != 5){
if(det == 1){
tZN1Corr[quad] = (Float_t) (digit.GetADCValue(0)-ped2SubHg);
tZN1Corr[quad+5] = (Float_t) (digit.GetADCValue(1)-ped2SubLg);
}
else if(det == 2){
tZP1Corr[quad] = (Float_t) (digit.GetADCValue(0)-ped2SubHg);
tZP1Corr[quad+5] = (Float_t) (digit.GetADCValue(1)-ped2SubLg);
}
else if(det == 3){
if(quad == 1){
dZEM1Corr[0] += (Float_t) (digit.GetADCValue(0)-ped2SubHg);
dZEM1Corr[1] += (Float_t) (digit.GetADCValue(1)-ped2SubLg);
}
else if(quad == 2){
dZEM2Corr[0] += (Float_t) (digit.GetADCValue(0)-ped2SubHg);
dZEM2Corr[1] += (Float_t) (digit.GetADCValue(1)-ped2SubLg);
}
}
else if(det == 4){
tZN2Corr[quad] = (Float_t) (digit.GetADCValue(0)-ped2SubHg);
tZN2Corr[quad+5] = (Float_t) (digit.GetADCValue(1)-ped2SubLg);
}
else if(det == 5){
tZP2Corr[quad] = (Float_t) (digit.GetADCValue(0)-ped2SubHg);
tZP2Corr[quad+5] = (Float_t) (digit.GetADCValue(1)-ped2SubLg);
}
}
else{
if(det == 1){
sPMRef1[0] = (Float_t) (digit.GetADCValue(0)-ped2SubHg);
sPMRef1[1] = (Float_t) (digit.GetADCValue(1)-ped2SubLg);
}
else if(det == 4){
sPMRef2[0] = (Float_t) (digit.GetADCValue(0)-ped2SubHg);
sPMRef2[1] = (Float_t) (digit.GetADCValue(1)-ped2SubLg);
}
}
}
UInt_t counts[32];
Int_t tdc[32][4];
for(Int_t jj=0; jj<32; jj++){
counts[jj]=0;
for(Int_t ii=0; ii<4; ii++) tdc[jj][ii]=0;
}
Int_t evQualityBlock[4] = {1,0,0,0};
Int_t triggerBlock[4] = {0,0,0,0};
Int_t chBlock[3] = {0,0,0};
UInt_t puBits=0;
if(fRecoMode==1)
ReconstructEventpp(clustersTree, tZN1Corr, tZP1Corr, tZN2Corr, tZP2Corr,
dZEM1Corr, dZEM2Corr, sPMRef1, sPMRef2,
kFALSE, counts, tdc,
evQualityBlock, triggerBlock, chBlock, puBits);
else if(fRecoMode==2)
ReconstructEventPbPb(clustersTree, tZN1Corr, tZP1Corr, tZN2Corr, tZP2Corr,
dZEM1Corr, dZEM2Corr, sPMRef1, sPMRef2,
kFALSE, counts, tdc,
evQualityBlock, triggerBlock, chBlock, puBits);
}
void AliZDCReconstructor::Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const
{
int const kNch = 24;
Float_t meanPed[2*kNch];
for(Int_t jj=0; jj<2*kNch; jj++) meanPed[jj] = fPedData->GetMeanPed(jj);
Float_t corrCoeff0[2*kNch], corrCoeff1[2*kNch];
for(Int_t jj=0; jj<2*kNch; jj++){
corrCoeff0[jj] = fPedData->GetPedCorrCoeff0(jj);
corrCoeff1[jj] = fPedData->GetPedCorrCoeff1(jj);
}
Int_t adcZN1[5], adcZN1oot[5], adcZN1lg[5], adcZN1ootlg[5];
Int_t adcZP1[5], adcZP1oot[5], adcZP1lg[5], adcZP1ootlg[5];
Int_t adcZN2[5], adcZN2oot[5], adcZN2lg[5], adcZN2ootlg[5];
Int_t adcZP2[5], adcZP2oot[5], adcZP2lg[5], adcZP2ootlg[5];
Int_t adcZEM[2], adcZEMoot[2], adcZEMlg[2], adcZEMootlg[2];
Int_t pmRef[2], pmRefoot[2], pmReflg[2], pmRefootlg[2];
for(Int_t ich=0; ich<5; ich++){
adcZN1[ich] = adcZN1oot[ich] = adcZN1lg[ich] = adcZN1ootlg[ich] = 0;
adcZP1[ich] = adcZP1oot[ich] = adcZP1lg[ich] = adcZP1ootlg[ich] = 0;
adcZN2[ich] = adcZN2oot[ich] = adcZN2lg[ich] = adcZN2ootlg[ich] = 0;
adcZP2[ich] = adcZP2oot[ich] = adcZP2lg[ich] = adcZP2ootlg[ich] = 0;
if(ich<2){
adcZEM[ich] = adcZEMoot[ich] = adcZEMlg[ich] = adcZEMootlg[ich] = 0;
pmRef[ich] = pmRefoot[ich] = pmReflg[ich] = pmRefootlg[ich] = 0;
}
}
Float_t tZN1Corr[10], tZP1Corr[10], tZN2Corr[10], tZP2Corr[10];
for(Int_t i=0; i<10; i++) tZN1Corr[i] = tZP1Corr[i] = tZN2Corr[i] = tZP2Corr[i] = 0.;
Float_t dZEM1Corr[2]={0,0}, dZEM2Corr[2]={0,0}, sPMRef1[2]={0,0}, sPMRef2[2]={0,0};
Bool_t isScalerOn=kFALSE;
Int_t jsc=0, itdc=0, iprevtdc=-1, ihittdc=0;
UInt_t scalerData[32];
Int_t tdcData[32][4];
for(Int_t k=0; k<32; k++){
scalerData[k]=0;
for(Int_t i=0; i<4; i++) tdcData[k][i]=0;
}
Int_t evQualityBlock[4] = {1,0,0,0};
Int_t triggerBlock[4] = {0,0,0,0};
Int_t chBlock[3] = {0,0,0};
UInt_t puBits=0;
Int_t kFirstADCGeo=0, kLastADCGeo=3, kScalerGeo=8, kZDCTDCGeo=4, kPUGeo=29;
AliZDCRawStream rawData(rawReader);
while(rawData.Next()){
if((rawData.GetADCModule()>=kFirstADCGeo) && (rawData.GetADCModule()<=kLastADCGeo)){
if((rawData.IsADCDataWord()) && (rawData.GetNChannelsOn()<48)) chBlock[0] = kTRUE;
if((rawData.IsADCDataWord()) && (rawData.IsOverflow() == kTRUE)) chBlock[1] = kTRUE;
if((rawData.IsADCDataWord()) && (rawData.IsUnderflow() == kTRUE)) chBlock[2] = kTRUE;
if((rawData.IsADCDataWord()) && (rawData.IsADCEventGood() == kTRUE)) evQualityBlock[0] = kTRUE;
if((rawData.IsADCDataWord()) && (rawData.IsUnderflow()==kFALSE)
&& (rawData.IsOverflow()==kFALSE) && (rawData.IsADCEventGood()==kTRUE)){
Int_t adcMod = rawData.GetADCModule();
Int_t det = rawData.GetSector(0);
Int_t quad = rawData.GetSector(1);
Int_t gain = rawData.GetADCGain();
Int_t pedindex=0;
if(fPedSubMode == 0){
if(det==3){
if(adcMod==0 || adcMod==1){
if(gain==0) adcZEM[quad-1] = rawData.GetADCValue();
else adcZEMlg[quad-1] = rawData.GetADCValue();
}
else if(adcMod==2 || adcMod==3){
if(gain==0) adcZEMoot[quad-1] = rawData.GetADCValue();
else adcZEMootlg[quad-1] = rawData.GetADCValue();
}
}
if(adcMod == 2 || adcMod == 3) continue;
if(quad != 5){
if(det==1){
pedindex = quad;
if(gain == 0) tZN1Corr[quad] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex]);
else tZN1Corr[quad+5] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex+kNch]);
}
else if(det==2){
pedindex = quad+5;
if(gain == 0) tZP1Corr[quad] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex]);
else tZP1Corr[quad+5] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex+kNch]);
}
else if(det == 4){
pedindex = quad+12;
if(gain == 0) tZN2Corr[quad] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex]);
else tZN2Corr[quad+5] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex+kNch]);
}
else if(det == 5){
pedindex = quad+17;
if(gain == 0) tZP2Corr[quad] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex]);
else tZP2Corr[quad+5] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex+kNch]);
}
}
else{
pedindex = (det-1)/3 + 22;
if(det == 1){
if(gain==0) sPMRef1[0] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex]);
else sPMRef1[1] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex+kNch]);
}
else if(det == 4){
if(gain==0) sPMRef2[0] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex]);
else sPMRef2[1] += (Float_t) (rawData.GetADCValue()-meanPed[pedindex+kNch]);
}
}
}
else if(fPedSubMode == 1){
if(adcMod==0 || adcMod==1){
if(quad != 5){
if(det == 1){
if(gain==0) adcZN1[quad] = rawData.GetADCValue();
else adcZN1lg[quad] = rawData.GetADCValue();
}
else if(det == 2){
if(gain==0) adcZP1[quad] = rawData.GetADCValue();
else adcZP1lg[quad] = rawData.GetADCValue();
}
else if(det == 3){
if(gain==0) adcZEM[quad-1] = rawData.GetADCValue();
else adcZEMlg[quad-1] = rawData.GetADCValue();
}
else if(det == 4){
if(gain==0) adcZN2[quad] = rawData.GetADCValue();
else adcZN2lg[quad] = rawData.GetADCValue();
}
else if(det == 5){
if(gain==0) adcZP2[quad] = rawData.GetADCValue();
else adcZP2lg[quad] = rawData.GetADCValue();
}
}
else{
if(gain==0) pmRef[quad-1] = rawData.GetADCValue();
else pmReflg[quad-1] = rawData.GetADCValue();
}
}
else if(adcMod==2 || adcMod==3){
if(quad != 5){
if(det == 1){
if(gain==0) adcZN1oot[quad] = rawData.GetADCValue();
else adcZN1ootlg[quad] = rawData.GetADCValue();
}
else if(det == 2){
if(gain==0) adcZP1oot[quad] = rawData.GetADCValue();
else adcZP1ootlg[quad] = rawData.GetADCValue();
}
else if(det == 3){
if(gain==0) adcZEMoot[quad-1] = rawData.GetADCValue();
else adcZEMootlg[quad-1] = rawData.GetADCValue();
}
else if(det == 4){
if(gain==0) adcZN2oot[quad] = rawData.GetADCValue();
else adcZN2ootlg[quad] = rawData.GetADCValue();
}
else if(det == 5){
if(gain==0) adcZP2oot[quad] = rawData.GetADCValue();
else adcZP2ootlg[quad] = rawData.GetADCValue();
}
}
else{
if(gain==0) pmRefoot[quad-1] = rawData.GetADCValue();
else pmRefootlg[quad-1] = rawData.GetADCValue();
}
}
}
}
}
else if(rawData.GetADCModule()==kScalerGeo){
if(rawData.IsScalerWord()==kTRUE){
isScalerOn = kTRUE;
scalerData[jsc] = rawData.GetTriggerCount();
jsc++;
}
}
else if(rawData.GetADCModule()==kZDCTDCGeo && rawData.IsZDCTDCDatum()==kTRUE){
itdc = rawData.GetChannel();
if(itdc==iprevtdc) ihittdc++;
else ihittdc=0;
iprevtdc=itdc;
if(ihittdc<4) tdcData[itdc][ihittdc] = rawData.GetZDCTDCDatum();
}
else if(rawData.GetADCModule()==kPUGeo){
puBits = rawData.GetDetectorPattern();
}
else if(rawData.IstriggerHistoryWord()==kTRUE){
triggerBlock[0] = rawData.IsCPTInputEMDTrigger();
triggerBlock[1] = rawData.IsCPTInputSemiCentralTrigger();
triggerBlock[2] = rawData.IsCPTInputCentralTrigger();
triggerBlock[3] = rawData.IsCPTInputMBTrigger();
}
}
if(fPedSubMode==1){
for(Int_t t=0; t<5; t++){
tZN1Corr[t] = adcZN1[t] - (corrCoeff1[t]*adcZN1oot[t]+corrCoeff0[t]);
tZN1Corr[t+5] = adcZN1lg[t] - (corrCoeff1[t+kNch]*adcZN1ootlg[t]+corrCoeff0[t+kNch]);
tZP1Corr[t] = adcZP1[t] - (corrCoeff1[t+5]*adcZP1oot[t]+corrCoeff0[t+5]);
tZP1Corr[t+5] = adcZP1lg[t] - (corrCoeff1[t+5+kNch]*adcZP1ootlg[t]+corrCoeff0[t+5+kNch]);
tZN2Corr[t] = adcZN2[t] - (corrCoeff1[t+12]*adcZN2oot[t]+corrCoeff0[t+12]);
tZN2Corr[t+5] = adcZN2lg[t] - (corrCoeff1[t+12+kNch]*adcZN2ootlg[t]+corrCoeff0[t+12+kNch]);
tZP2Corr[t] = adcZP2[t] - (corrCoeff1[t+17]*adcZP2oot[t]+corrCoeff0[t+17]);
tZP2Corr[t+5] = adcZP2lg[t] - (corrCoeff1[t+17+kNch]*adcZP2ootlg[t]+corrCoeff0[t+17+kNch]);
}
dZEM1Corr[0] = adcZEM[0] - (corrCoeff1[10]*adcZEMoot[0]+corrCoeff0[10]);
dZEM1Corr[1] = adcZEMlg[0] - (corrCoeff1[10+kNch]*adcZEMootlg[0]+corrCoeff0[10+kNch]);
dZEM2Corr[0] = adcZEM[1] - (corrCoeff1[11]*adcZEMoot[1]+corrCoeff0[11]);
dZEM2Corr[1] = adcZEMlg[1] - (corrCoeff1[11+kNch]*adcZEMootlg[1]+corrCoeff0[11+kNch]);
sPMRef1[0] = pmRef[0] - (corrCoeff1[22]*pmRefoot[0]+corrCoeff0[22]);
sPMRef1[1] = pmReflg[0] - (corrCoeff1[22+kNch]*pmRefootlg[0]+corrCoeff0[22+kNch]);
sPMRef2[0] = pmRef[0] - (corrCoeff1[23]*pmRefoot[1]+corrCoeff0[23]);
sPMRef2[1] = pmReflg[0] - (corrCoeff1[23+kNch]*pmRefootlg[1]+corrCoeff0[23+kNch]);
}
if(fPedSubMode==0 && fRecoMode==2){
dZEM1Corr[0] = adcZEM[0] - (corrCoeff1[10]*adcZEMoot[0]+corrCoeff0[10]);
dZEM1Corr[1] = adcZEMlg[0] - (corrCoeff1[10+kNch]*adcZEMootlg[0]+corrCoeff0[10+kNch]);
dZEM2Corr[0] = adcZEM[1] - (corrCoeff1[11]*adcZEMoot[1]+corrCoeff0[11]);
dZEM2Corr[1] = adcZEMlg[1] - (corrCoeff1[11+kNch]*adcZEMootlg[1]+corrCoeff0[11+kNch]);
}
if(fRecoMode==1)
ReconstructEventpp(clustersTree, tZN1Corr, tZP1Corr, tZN2Corr, tZP2Corr,
dZEM1Corr, dZEM2Corr, sPMRef1, sPMRef2,
isScalerOn, scalerData, tdcData,
evQualityBlock, triggerBlock, chBlock, puBits);
else if(fRecoMode==2)
ReconstructEventPbPb(clustersTree, tZN1Corr, tZP1Corr, tZN2Corr, tZP2Corr,
dZEM1Corr, dZEM2Corr, sPMRef1, sPMRef2,
isScalerOn, scalerData, tdcData,
evQualityBlock, triggerBlock, chBlock, puBits);
}
void AliZDCReconstructor::ReconstructEventpp(TTree *clustersTree,
const Float_t* const corrADCZN1, const Float_t* const corrADCZP1,
const Float_t* const corrADCZN2, const Float_t* const corrADCZP2,
const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2,
Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler,
Int_t tdcData[32][4], const Int_t* const evQualityBlock,
const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const
{
UInt_t rFlags[32];
for(Int_t ifl=0; ifl<32; ifl++) rFlags[ifl]=0;
if(evQualityBlock[0] == 1) rFlags[31] = 0x0;
else rFlags[31] = 0x1;
if(evQualityBlock[1] == 1) rFlags[30] = 0x1;
if(evQualityBlock[2] == 1) rFlags[29] = 0x1;
if(evQualityBlock[3] == 1) rFlags[28] = 0x1;
if(triggerBlock[0] == 1) rFlags[27] = 0x1;
if(triggerBlock[1] == 1) rFlags[26] = 0x1;
if(triggerBlock[2] == 1) rFlags[25] = 0x1;
if(triggerBlock[3] == 1) rFlags[24] = 0x1;
if(chBlock[0] == 1) rFlags[18] = 0x1;
if(chBlock[1] == 1) rFlags[17] = 0x1;
if(chBlock[2] == 1) rFlags[16] = 0x1;
rFlags[13] = puBits & 0x00000020;
rFlags[12] = puBits & 0x00000010;
rFlags[11] = puBits & 0x00000080;
rFlags[10] = puBits & 0x00000040;
rFlags[9] = puBits & 0x00000020;
rFlags[8] = puBits & 0x00000010;
if(corrADCZP1[0]>fSignalThreshold) rFlags[5] = 0x1;
if(corrADCZN1[0]>fSignalThreshold) rFlags[4] = 0x1;
if(corrADCZEM2[0]>fSignalThreshold) rFlags[3] = 0x1;
if(corrADCZEM1[0]>fSignalThreshold) rFlags[2] = 0x1;
if(corrADCZP2[0]>fSignalThreshold) rFlags[1] = 0x1;
if(corrADCZN2[0]>fSignalThreshold) rFlags[0] = 0x1;
UInt_t recoFlag = rFlags[31] << 31 | rFlags[30] << 30 | rFlags[29] << 29 | rFlags[28] << 28 |
rFlags[27] << 27 | rFlags[26] << 26 | rFlags[25] << 25 | rFlags[24] << 24 |
0x0 << 23 | 0x0 << 22 | 0x0 << 21 | 0x0 << 20 |
0x0 << 19 | rFlags[18] << 18 | rFlags[17] << 17 | rFlags[16] << 16 |
0x0 << 15 | 0x0 << 14 | rFlags[13] << 13 | rFlags[12] << 12 |
rFlags[11] << 11 |rFlags[10] << 10 | rFlags[9] << 9 | rFlags[8] << 8 |
0x0 << 7 | 0x0 << 6 | rFlags[5] << 5 | rFlags[4] << 4 |
rFlags[3] << 3 | rFlags[2] << 2 | rFlags[1] << 1 | rFlags[0];
Float_t equalCoeffZN1[5], equalCoeffZP1[5], equalCoeffZN2[5], equalCoeffZP2[5];
for(Int_t ji=0; ji<5; ji++){
equalCoeffZN1[ji] = fTowCalibData->GetZN1EqualCoeff(ji);
equalCoeffZP1[ji] = fTowCalibData->GetZP1EqualCoeff(ji);
equalCoeffZN2[ji] = fTowCalibData->GetZN2EqualCoeff(ji);
equalCoeffZP2[ji] = fTowCalibData->GetZP2EqualCoeff(ji);
}
Float_t calibEne[6], calibSatZNA[4], calibSatZNC[4];
for(Int_t ij=0; ij<6; ij++) calibEne[ij] = fEnCalibData->GetEnCalib(ij);
for(Int_t ij=0; ij<4; ij++){
calibSatZNA[ij] = fSatCalibData->GetZNASatCalib(ij);
calibSatZNC[ij] = fSatCalibData->GetZNCSatCalib(ij);
}
Float_t equalTowZN1[10], equalTowZN2[10], equalTowZP1[10], equalTowZP2[10];
for(Int_t gi=0; gi<10; gi++){
if(gi<5){
equalTowZN1[gi] = corrADCZN1[gi]*equalCoeffZN1[gi];
equalTowZP1[gi] = corrADCZP1[gi]*equalCoeffZP1[gi];
equalTowZN2[gi] = corrADCZN2[gi]*equalCoeffZN2[gi];
equalTowZP2[gi] = corrADCZP2[gi]*equalCoeffZP2[gi];
}
else{
equalTowZN1[gi] = corrADCZN1[gi]*equalCoeffZN1[gi-5];
equalTowZP1[gi] = corrADCZP1[gi]*equalCoeffZP1[gi-5];
equalTowZN2[gi] = corrADCZN2[gi]*equalCoeffZN2[gi-5];
equalTowZP2[gi] = corrADCZP2[gi]*equalCoeffZP2[gi-5];
}
}
equalTowZN1[0] = equalTowZN1[0] + calibSatZNC[0]*equalTowZN1[0]*equalTowZN1[0] +
calibSatZNC[1]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0] +
calibSatZNC[2]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0] +
calibSatZNC[3]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0];
equalTowZN2[0] = equalTowZN2[0] + calibSatZNA[0]*equalTowZN2[0]*equalTowZN2[0] +
calibSatZNA[1]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0] +
calibSatZNA[2]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0] +
calibSatZNA[3]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0];
Float_t calibSumZN1[]={0,0}, calibSumZN2[]={0,0}, calibSumZP1[]={0,0}, calibSumZP2[]={0,0};
for(Int_t gi=0; gi<5; gi++){
calibSumZN1[0] += equalTowZN1[gi];
calibSumZP1[0] += equalTowZP1[gi];
calibSumZN2[0] += equalTowZN2[gi];
calibSumZP2[0] += equalTowZP2[gi];
calibSumZN1[1] += equalTowZN1[gi+5];
calibSumZP1[1] += equalTowZP1[gi+5];
calibSumZN2[1] += equalTowZN2[gi+5];
calibSumZP2[1] += equalTowZP2[gi+5];
}
calibSumZN1[0] = calibSumZN1[0]*calibEne[0];
calibSumZP1[0] = calibSumZP1[0]*calibEne[1];
calibSumZN2[0] = calibSumZN2[0]*calibEne[2];
calibSumZP2[0] = calibSumZP2[0]*calibEne[3];
calibSumZN1[1] = calibSumZN1[1]*calibEne[0];
calibSumZP1[1] = calibSumZP1[1]*calibEne[1];
calibSumZN2[1] = calibSumZN2[1]*calibEne[2];
calibSumZP2[1] = calibSumZP2[1]*calibEne[3];
Float_t calibTowZN1[10], calibTowZN2[10], calibTowZP1[10], calibTowZP2[10];
for(Int_t gi=0; gi<5; gi++){
calibTowZN1[gi] = equalTowZN1[gi]*calibEne[0];
calibTowZP1[gi] = equalTowZP1[gi]*calibEne[1];
calibTowZN2[gi] = equalTowZN2[gi]*calibEne[2];
calibTowZP2[gi] = equalTowZP2[gi]*calibEne[3];
calibTowZN1[gi+5] = equalTowZN1[gi+5]*calibEne[0];
calibTowZP1[gi+5] = equalTowZP1[gi+5]*calibEne[1];
calibTowZN2[gi+5] = equalTowZN2[gi+5]*calibEne[2];
calibTowZP2[gi+5] = equalTowZP2[gi+5]*calibEne[3];
}
Float_t calibZEM1[]={0,0}, calibZEM2[]={0,0};
calibZEM1[0] = corrADCZEM1[0]*calibEne[4];
calibZEM1[1] = corrADCZEM1[1]*calibEne[4];
calibZEM2[0] = corrADCZEM2[0]*calibEne[5];
calibZEM2[1] = corrADCZEM2[1]*calibEne[5];
Int_t nDetSpecNLeft=0, nDetSpecPLeft=0, nDetSpecNRight=0, nDetSpecPRight=0;
Int_t nGenSpec=0, nGenSpecLeft=0, nGenSpecRight=0;
Int_t nPart=0, nPartTotLeft=0, nPartTotRight=0;
Double_t impPar=0., impPar1=0., impPar2=0.;
Bool_t energyFlag = kFALSE;
AliZDCReco* reco = new AliZDCReco(calibSumZN1, calibSumZP1, calibSumZN2, calibSumZP2,
calibTowZN1, calibTowZP1, calibTowZN2, calibTowZP2,
calibZEM1, calibZEM2, sPMRef1, sPMRef2,
nDetSpecNLeft, nDetSpecPLeft, nDetSpecNRight, nDetSpecPRight,
nGenSpec, nGenSpecLeft, nGenSpecRight,
nPart, nPartTotLeft, nPartTotRight,
impPar, impPar1, impPar2,
recoFlag, energyFlag, isScalerOn, scaler, tdcData);
const Int_t kBufferSize = 4000;
clustersTree->Branch("ZDC", "AliZDCReco", &reco, kBufferSize);
clustersTree->Fill();
delete reco;
}
void AliZDCReconstructor::ReconstructEventPbPb(TTree *clustersTree,
const Float_t* const corrADCZN1, const Float_t* const corrADCZP1,
const Float_t* const corrADCZN2, const Float_t* const corrADCZP2,
const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2,
Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler,
Int_t tdcData[32][4], const Int_t* const evQualityBlock,
const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const
{
UInt_t rFlags[32];
for(Int_t ifl=0; ifl<32; ifl++) rFlags[ifl]=0;
if(evQualityBlock[0] == 1) rFlags[31] = 0x0;
else rFlags[31] = 0x1;
if(evQualityBlock[1] == 1) rFlags[30] = 0x1;
if(evQualityBlock[2] == 1) rFlags[29] = 0x1;
if(evQualityBlock[3] == 1) rFlags[28] = 0x1;
if(triggerBlock[0] == 1) rFlags[27] = 0x1;
if(triggerBlock[1] == 1) rFlags[26] = 0x1;
if(triggerBlock[2] == 1) rFlags[25] = 0x1;
if(triggerBlock[3] == 1) rFlags[24] = 0x1;
if(chBlock[0] == 1) rFlags[18] = 0x1;
if(chBlock[1] == 1) rFlags[17] = 0x1;
if(chBlock[2] == 1) rFlags[16] = 0x1;
rFlags[13] = puBits & 0x00000020;
rFlags[12] = puBits & 0x00000010;
rFlags[11] = puBits & 0x00000080;
rFlags[10] = puBits & 0x00000040;
rFlags[9] = puBits & 0x00000020;
rFlags[8] = puBits & 0x00000010;
if(corrADCZP1[0]>fSignalThreshold) rFlags[5] = 0x1;
if(corrADCZN1[0]>fSignalThreshold) rFlags[4] = 0x1;
if(corrADCZEM2[0]>fSignalThreshold) rFlags[3] = 0x1;
if(corrADCZEM1[0]>fSignalThreshold) rFlags[2] = 0x1;
if(corrADCZP2[0]>fSignalThreshold) rFlags[1] = 0x1;
if(corrADCZN2[0]>fSignalThreshold) rFlags[0] = 0x1;
UInt_t recoFlag = rFlags[31] << 31 | rFlags[30] << 30 | rFlags[29] << 29 | rFlags[28] << 28 |
rFlags[27] << 27 | rFlags[26] << 26 | rFlags[25] << 25 | rFlags[24] << 24 |
0x0 << 23 | 0x0 << 22 | 0x0 << 21 | 0x0 << 20 |
0x0 << 19 | rFlags[18] << 18 | rFlags[17] << 17 | rFlags[16] << 16 |
0x0 << 15 | 0x0 << 14 | rFlags[13] << 13 | rFlags[12] << 12 |
rFlags[11] << 11 |rFlags[10] << 10 | rFlags[9] << 9 | rFlags[8] << 8 |
0x0 << 7 | 0x0 << 6 | rFlags[5] << 5 | rFlags[4] << 4 |
rFlags[3] << 3 | rFlags[2] << 2 | rFlags[1] << 1 | rFlags[0];
Float_t equalCoeffZN1[5], equalCoeffZP1[5], equalCoeffZN2[5], equalCoeffZP2[5];
for(Int_t ji=0; ji<5; ji++){
equalCoeffZN1[ji] = fTowCalibData->GetZN1EqualCoeff(ji);
equalCoeffZP1[ji] = fTowCalibData->GetZP1EqualCoeff(ji);
equalCoeffZN2[ji] = fTowCalibData->GetZN2EqualCoeff(ji);
equalCoeffZP2[ji] = fTowCalibData->GetZP2EqualCoeff(ji);
}
Float_t calibEne[6], calibSatZNA[4], calibSatZNC[4];
for(Int_t ij=0; ij<6; ij++) calibEne[ij] = fEnCalibData->GetEnCalib(ij);
for(Int_t ij=0; ij<4; ij++){
calibSatZNA[ij] = fSatCalibData->GetZNASatCalib(ij);
calibSatZNC[ij] = fSatCalibData->GetZNCSatCalib(ij);
}
Float_t equalTowZN1[10], equalTowZN2[10], equalTowZP1[10], equalTowZP2[10];
for(Int_t gi=0; gi<10; gi++){
if(gi<5){
equalTowZN1[gi] = corrADCZN1[gi]*equalCoeffZN1[gi];
equalTowZP1[gi] = corrADCZP1[gi]*equalCoeffZP1[gi];
equalTowZN2[gi] = corrADCZN2[gi]*equalCoeffZN2[gi];
equalTowZP2[gi] = corrADCZP2[gi]*equalCoeffZP2[gi];
}
else{
equalTowZN1[gi] = corrADCZN1[gi]*equalCoeffZN1[gi-5];
equalTowZP1[gi] = corrADCZP1[gi]*equalCoeffZP1[gi-5];
equalTowZN2[gi] = corrADCZN2[gi]*equalCoeffZN2[gi-5];
equalTowZP2[gi] = corrADCZP2[gi]*equalCoeffZP2[gi-5];
}
}
equalTowZN1[0] = equalTowZN1[0] + calibSatZNC[0]*equalTowZN1[0]*equalTowZN1[0] +
calibSatZNC[1]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0] +
calibSatZNC[2]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0] +
calibSatZNC[3]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0]*equalTowZN1[0];
equalTowZN2[0] = equalTowZN2[0] + calibSatZNA[0]*equalTowZN2[0]*equalTowZN2[0] +
calibSatZNA[1]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0] +
calibSatZNA[2]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0] +
calibSatZNA[3]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0]*equalTowZN2[0];
Float_t calibSumZN1[]={0,0}, calibSumZN2[]={0,0}, calibSumZP1[]={0,0}, calibSumZP2[]={0,0};
for(Int_t gi=0; gi<5; gi++){
calibSumZN1[0] += equalTowZN1[gi];
calibSumZP1[0] += equalTowZP1[gi];
calibSumZN2[0] += equalTowZN2[gi];
calibSumZP2[0] += equalTowZP2[gi];
calibSumZN1[1] += equalTowZN1[gi+5];
calibSumZP1[1] += equalTowZP1[gi+5];
calibSumZN2[1] += equalTowZN2[gi+5];
calibSumZP2[1] += equalTowZP2[gi+5];
}
calibSumZN1[0] = calibSumZN1[0]*calibEne[0]*8.;
calibSumZP1[0] = calibSumZP1[0]*calibEne[1]*8.;
calibSumZN2[0] = calibSumZN2[0]*calibEne[2]*8.;
calibSumZP2[0] = calibSumZP2[0]*calibEne[3]*8.;
calibSumZN1[1] = calibSumZN1[1]*calibEne[0];
calibSumZP1[1] = calibSumZP1[1]*calibEne[1];
calibSumZN2[1] = calibSumZN2[1]*calibEne[2];
calibSumZP2[1] = calibSumZP2[1]*calibEne[3];
Float_t calibZEM1[]={0,0}, calibZEM2[]={0,0};
calibZEM1[0] = corrADCZEM1[0]*calibEne[4];
calibZEM1[1] = corrADCZEM1[1]*calibEne[4];
calibZEM2[0] = corrADCZEM2[0]*calibEne[5];
calibZEM2[1] = corrADCZEM2[1]*calibEne[5];
Float_t calibTowZN1[10], calibTowZN2[10], calibTowZP1[10], calibTowZP2[10];
for(Int_t gi=0; gi<5; gi++){
calibTowZN1[gi] = equalTowZN1[gi]*2*calibEne[0]*8.;
calibTowZP1[gi] = equalTowZP1[gi]*2*calibEne[1]*8.;
calibTowZN2[gi] = equalTowZN2[gi]*2*calibEne[2]*8.;
calibTowZP2[gi] = equalTowZP2[gi]*2*calibEne[3]*8.;
calibTowZN1[gi+5] = equalTowZN1[gi+5]*2*calibEne[0];
calibTowZP1[gi+5] = equalTowZP1[gi+5]*2*calibEne[1];
calibTowZN2[gi+5] = equalTowZN2[gi+5]*2*calibEne[2];
calibTowZP2[gi+5] = equalTowZP2[gi+5]*2*calibEne[3];
}
Int_t nDetSpecNLeft=0, nDetSpecPLeft=0, nDetSpecNRight=0, nDetSpecPRight=0;
if(fBeamEnergy>0.01){
nDetSpecNLeft = (Int_t) (calibSumZN1[0]/fBeamEnergy);
nDetSpecPLeft = (Int_t) (calibSumZP1[0]/fBeamEnergy);
nDetSpecNRight = (Int_t) (calibSumZN2[0]/fBeamEnergy);
nDetSpecPRight = (Int_t) (calibSumZP2[0]/fBeamEnergy);
}
else AliWarning(" ATTENTION!!! fBeamEnergy=0 -> N_spec will be ZERO!!! \n");
Int_t nGenSpec=0, nGenSpecA=0, nGenSpecC=0;
Int_t nPart=0, nPartA=0, nPartC=0;
Double_t b=0., bA=0., bC=0.;
if(fIsCalibrationMB == kFALSE){
if(!fgRecoParam) fgRecoParam = const_cast<AliZDCRecoParam*>(GetRecoParam());
if(!fgRecoParam){
AliError(" RecoParam object not retrieved correctly: not reconstructing ZDC event!!!");
return;
}
TH1D* hNpartDist = fgRecoParam->GethNpartDist();
TH1D* hbDist = fgRecoParam->GethbDist();
Float_t fClkCenter = fgRecoParam->GetClkCenter();
if(!hNpartDist || !hbDist){
AliError("Something wrong in Glauber MC histos got from AliZDCREcoParamPbPb: NO EVENT RECO FOR ZDC DATA!!!\n\n");
}
else{
if(!fgMBCalibData) fgMBCalibData = const_cast<AliZDCMBCalib*>(GetMBCalibData());
TH2F *hZDCvsZEM = fgMBCalibData->GethZDCvsZEM();
TH2F *hZDCCvsZEM = fgMBCalibData->GethZDCCvsZEM();
TH2F *hZDCAvsZEM = fgMBCalibData->GethZDCAvsZEM();
Double_t xHighEdge = hZDCvsZEM->GetXaxis()->GetXmax();
Double_t origin = xHighEdge*fClkCenter;
TF1 *line = new TF1("line","[0]*x+[1]",0.,xHighEdge);
Float_t y = (calibSumZN1[0]+calibSumZP1[0]+calibSumZN2[0]+calibSumZP2[0])/1000.;
Float_t x = (calibZEM1[0]+calibZEM2[0])/1000.;
line->SetParameter(0, y/(x-origin));
line->SetParameter(1, -origin*y/(x-origin));
Double_t countPerc=0;
Double_t xBinCenter=0, yBinCenter=0;
for(Int_t nbinx=1; nbinx<=hZDCvsZEM->GetNbinsX(); nbinx++){
for(Int_t nbiny=1; nbiny<=hZDCvsZEM->GetNbinsY(); nbiny++){
xBinCenter = hZDCvsZEM->GetXaxis()->GetBinCenter(nbinx);
yBinCenter = hZDCvsZEM->GetYaxis()->GetBinCenter(nbiny);
if(line->GetParameter(0)>0){
if(yBinCenter < (line->GetParameter(0)*xBinCenter + line->GetParameter(1))){
countPerc += hZDCvsZEM->GetBinContent(nbinx,nbiny);
}
}
else{
if(yBinCenter > (line->GetParameter(0)*xBinCenter + line->GetParameter(1))){
countPerc += hZDCvsZEM->GetBinContent(nbinx,nbiny);
}
}
}
}
Double_t xSecPerc = 0.;
if(hZDCvsZEM->GetEntries()!=0){
xSecPerc = countPerc/hZDCvsZEM->GetEntries();
}
else{
AliWarning(" Histogram hZDCvsZEM from OCDB has no entries!!!");
}
TF1 *lineC = new TF1("lineC","[0]*x+[1]",0.,xHighEdge);
Float_t yC = (calibSumZN1[0]+calibSumZP1[0])/1000.;
lineC->SetParameter(0, yC/(x-origin));
lineC->SetParameter(1, -origin*yC/(x-origin));
Double_t countPercC=0;
Double_t xBinCenterC=0, yBinCenterC=0;
for(Int_t nbinx=1; nbinx<=hZDCCvsZEM->GetNbinsX(); nbinx++){
for(Int_t nbiny=1; nbiny<=hZDCCvsZEM->GetNbinsY(); nbiny++){
xBinCenterC = hZDCCvsZEM->GetXaxis()->GetBinCenter(nbinx);
yBinCenterC = hZDCCvsZEM->GetYaxis()->GetBinCenter(nbiny);
if(lineC->GetParameter(0)>0){
if(yBinCenterC < (lineC->GetParameter(0)*xBinCenterC + lineC->GetParameter(1))){
countPercC += hZDCCvsZEM->GetBinContent(nbinx,nbiny);
}
}
else{
if(yBinCenterC > (lineC->GetParameter(0)*xBinCenterC + lineC->GetParameter(1))){
countPercC += hZDCCvsZEM->GetBinContent(nbinx,nbiny);
}
}
}
}
Double_t xSecPercC = 0.;
if(hZDCCvsZEM->GetEntries()!=0){
xSecPercC = countPercC/hZDCCvsZEM->GetEntries();
}
else{
AliWarning(" Histogram hZDCCvsZEM from OCDB has no entries!!!");
}
TF1 *lineA = new TF1("lineA","[0]*x+[1]",0.,xHighEdge);
Float_t yA = (calibSumZN2[0]+calibSumZP2[0])/1000.;
lineA->SetParameter(0, yA/(x-origin));
lineA->SetParameter(1, -origin*yA/(x-origin));
Double_t countPercA=0;
Double_t xBinCenterA=0, yBinCenterA=0;
for(Int_t nbinx=1; nbinx<=hZDCAvsZEM->GetNbinsX(); nbinx++){
for(Int_t nbiny=1; nbiny<=hZDCAvsZEM->GetNbinsY(); nbiny++){
xBinCenterA = hZDCAvsZEM->GetXaxis()->GetBinCenter(nbinx);
yBinCenterA = hZDCAvsZEM->GetYaxis()->GetBinCenter(nbiny);
if(lineA->GetParameter(0)>0){
if(yBinCenterA < (lineA->GetParameter(0)*xBinCenterA + lineA->GetParameter(1))){
countPercA += hZDCAvsZEM->GetBinContent(nbinx,nbiny);
}
}
else{
if(yBinCenterA > (lineA->GetParameter(0)*xBinCenterA + lineA->GetParameter(1))){
countPercA += hZDCAvsZEM->GetBinContent(nbinx,nbiny);
}
}
}
}
Double_t xSecPercA = 0.;
if(hZDCAvsZEM->GetEntries()!=0){
xSecPercA = countPercA/hZDCAvsZEM->GetEntries();
}
else{
AliWarning(" Histogram hZDCAvsZEM from OCDB has no entries!!!");
}
Double_t nPartFrac=0., nPartFracC=0., nPartFracA=0.;
for(Int_t npbin=1; npbin<hNpartDist->GetNbinsX(); npbin++){
nPartFrac += (hNpartDist->GetBinContent(npbin))/(hNpartDist->GetEntries());
if((1.-nPartFrac) < xSecPerc){
nPart = (Int_t) hNpartDist->GetBinLowEdge(npbin);
break;
}
}
if(nPart<0) nPart=0;
for(Int_t npbin=1; npbin<hNpartDist->GetNbinsX(); npbin++){
nPartFracC += (hNpartDist->GetBinContent(npbin))/(hNpartDist->GetEntries());
if((1.-nPartFracC) < xSecPercC){
nPartC = (Int_t) hNpartDist->GetBinLowEdge(npbin);
break;
}
}
if(nPartC<0) nPartC=0;
for(Int_t npbin=1; npbin<hNpartDist->GetNbinsX(); npbin++){
nPartFracA += (hNpartDist->GetBinContent(npbin))/(hNpartDist->GetEntries());
if((1.-nPartFracA) < xSecPercA){
nPartA = (Int_t) hNpartDist->GetBinLowEdge(npbin);
break;
}
}
if(nPartA<0) nPartA=0;
Double_t bFrac=0., bFracC=0., bFracA=0.;
for(Int_t ibbin=1; ibbin<hbDist->GetNbinsX(); ibbin++){
bFrac += (hbDist->GetBinContent(ibbin))/(hbDist->GetEntries());
if(bFrac > xSecPerc){
b = hbDist->GetBinLowEdge(ibbin);
break;
}
}
for(Int_t ibbin=1; ibbin<hbDist->GetNbinsX(); ibbin++){
bFracC += (hbDist->GetBinContent(ibbin))/(hbDist->GetEntries());
if(bFracC > xSecPercC){
bC = hbDist->GetBinLowEdge(ibbin);
break;
}
}
for(Int_t ibbin=1; ibbin<hbDist->GetNbinsX(); ibbin++){
bFracA += (hbDist->GetBinContent(ibbin))/(hbDist->GetEntries());
if(bFracA > xSecPercA){
bA = hbDist->GetBinLowEdge(ibbin);
break;
}
}
nGenSpec = 416 - nPart;
nGenSpecC = 416 - nPartC;
nGenSpecA = 416 - nPartA;
if(nGenSpec>416) nGenSpec=416; if(nGenSpec<0) nGenSpec=0;
if(nGenSpecC>416) nGenSpecC=416; if(nGenSpecC<0) nGenSpecC=0;
if(nGenSpecA>416) nGenSpecA=416; if(nGenSpecA<0) nGenSpecA=0;
delete line;
delete lineC; delete lineA;
}
}
Bool_t energyFlag = kTRUE;
AliZDCReco* reco = new AliZDCReco(calibSumZN1, calibSumZP1, calibSumZN2, calibSumZP2,
calibTowZN1, calibTowZP1, calibTowZN2, calibTowZP2,
calibZEM1, calibZEM2, sPMRef1, sPMRef2,
nDetSpecNLeft, nDetSpecPLeft, nDetSpecNRight, nDetSpecPRight,
nGenSpec, nGenSpecA, nGenSpecC,
nPart, nPartA, nPartC, b, bA, bC,
recoFlag, energyFlag, isScalerOn, scaler, tdcData);
const Int_t kBufferSize = 4000;
clustersTree->Branch("ZDC", "AliZDCReco", &reco, kBufferSize);
clustersTree->Fill();
delete reco;
}
void AliZDCReconstructor::FillZDCintoESD(TTree *clustersTree, AliESDEvent* esd) const
{
int const knTDC = 6;
Float_t tdcOffset[knTDC];
for(Int_t jj=0; jj<knTDC; jj++) tdcOffset[jj] = fTDCCalibData->GetMeanTDC(jj);
AliZDCReco reco;
AliZDCReco* preco = &reco;
clustersTree->SetBranchAddress("ZDC", &preco);
clustersTree->GetEntry(0);
Float_t tZN1Ene[5], tZN2Ene[5], tZP1Ene[5], tZP2Ene[5];
Float_t tZN1EneLR[5], tZN2EneLR[5], tZP1EneLR[5], tZP2EneLR[5];
for(Int_t i=0; i<5; i++){
tZN1Ene[i] = reco.GetZN1HREnTow(i);
tZN2Ene[i] = reco.GetZN2HREnTow(i);
tZP1Ene[i] = reco.GetZP1HREnTow(i);
tZP2Ene[i] = reco.GetZP2HREnTow(i);
tZN1EneLR[i] = reco.GetZN1LREnTow(i);
tZN2EneLR[i] = reco.GetZN2LREnTow(i);
tZP1EneLR[i] = reco.GetZP1LREnTow(i);
tZP2EneLR[i] = reco.GetZP2LREnTow(i);
}
fESDZDC->SetZN1TowerEnergy(tZN1Ene);
fESDZDC->SetZN2TowerEnergy(tZN2Ene);
fESDZDC->SetZP1TowerEnergy(tZP1Ene);
fESDZDC->SetZP2TowerEnergy(tZP2Ene);
fESDZDC->SetZN1TowerEnergyLR(tZN1EneLR);
fESDZDC->SetZN2TowerEnergyLR(tZN2EneLR);
fESDZDC->SetZP1TowerEnergyLR(tZP1EneLR);
fESDZDC->SetZP2TowerEnergyLR(tZP2EneLR);
Int_t nPart = reco.GetNParticipants();
Int_t nPartA = reco.GetNPartSideA();
Int_t nPartC = reco.GetNPartSideC();
Double_t b = reco.GetImpParameter();
Double_t bA = reco.GetImpParSideA();
Double_t bC = reco.GetImpParSideC();
UInt_t recoFlag = reco.GetRecoFlag();
fESDZDC->SetZDC(reco.GetZN1HREnergy(), reco.GetZP1HREnergy(),
reco.GetZEM1HRsignal(), reco.GetZEM2HRsignal(),
reco.GetZN2HREnergy(), reco.GetZP2HREnergy(),
nPart, nPartA, nPartC, b, bA, bC, recoFlag);
if(reco.IsScalerOn()==kTRUE){
UInt_t counts[32];
for(Int_t jk=0; jk<32; jk++) counts[jk] = reco.GetZDCScaler(jk);
fESDZDC->SetZDCScaler(counts);
}
Int_t tdcValues[32][4] = {{0,}};
Float_t tdcCorrected[32][4] = {{9999.,}};
for(Int_t jk=0; jk<32; jk++){
for(Int_t lk=0; lk<4; lk++){
tdcValues[jk][lk] = reco.GetZDCTDCData(jk, lk);
if(jk==8 && TMath::Abs(tdcValues[jk][lk])>1e-09) fESDZDC->SetZEM1TDChit(kTRUE);
else if(jk==9 && TMath::Abs(tdcValues[jk][lk])>1e-09) fESDZDC->SetZEM2TDChit(kTRUE);
else if(jk==10 && TMath::Abs(tdcValues[jk][lk])>1e-09) fESDZDC->SetZNCTDChit(kTRUE);
else if(jk==11 && TMath::Abs(tdcValues[jk][lk])>1e-09) fESDZDC->SetZPCTDChit(kTRUE);
else if(jk==12 && TMath::Abs(tdcValues[jk][lk])>1e-09) fESDZDC->SetZNATDChit(kTRUE);
else if(jk==13 && TMath::Abs(tdcValues[jk][lk])>1e-09) fESDZDC->SetZPATDChit(kTRUE);
}
}
for(Int_t jk=0; jk<32; jk++){
for(Int_t lk=0; lk<4; lk++){
if(tdcValues[jk][lk]!=0.){
if(TMath::Abs(tdcValues[jk][lk])>1e-09){
tdcCorrected[jk][lk] = 0.025*(tdcValues[jk][lk]-tdcValues[15][0])+fMeanPhase;
if(jk>=8 && jk<=13) tdcCorrected[jk][lk] = tdcCorrected[jk][lk] - tdcOffset[jk-8];
}
}
}
}
fESDZDC->SetZDCTDCData(tdcValues);
fESDZDC->SetZDCTDCCorrected(tdcCorrected);
fESDZDC->AliESDZDC::SetBit(AliESDZDC::kCorrectedTDCFilled, reco.GetEnergyFlag());
fESDZDC->AliESDZDC::SetBit(AliESDZDC::kEnergyCalibratedSignal, kTRUE);
if(esd) esd->SetZDCData(fESDZDC);
}
AliCDBStorage* AliZDCReconstructor::SetStorage(const char *uri)
{
Bool_t deleteManager = kFALSE;
AliCDBManager *manager = AliCDBManager::Instance();
AliCDBStorage *defstorage = manager->GetDefaultStorage();
if(!defstorage || !(defstorage->Contains("ZDC"))){
AliWarning("No default storage set or default storage doesn't contain ZDC!");
manager->SetDefaultStorage(uri);
deleteManager = kTRUE;
}
AliCDBStorage *storage = manager->GetDefaultStorage();
if(deleteManager){
AliCDBManager::Instance()->UnsetDefaultStorage();
defstorage = 0;
}
return storage;
}
AliZDCPedestals* AliZDCReconstructor::GetPedestalData() const
{
AliZDCPedestals *calibdata = 0x0;
AliCDBEntry *entry = AliCDBManager::Instance()->Get("ZDC/Calib/Pedestals");
if(!entry) AliFatal("No calibration data loaded!");
else{
entry->SetOwner(kFALSE);
calibdata = dynamic_cast<AliZDCPedestals*> (entry->GetObject());
if(!calibdata) AliFatal("Wrong calibration object in calibration file!");
}
return calibdata;
}
AliZDCEnCalib* AliZDCReconstructor::GetEnergyCalibData() const
{
AliZDCEnCalib *calibdata = 0x0;
AliCDBEntry *entry = AliCDBManager::Instance()->Get("ZDC/Calib/EnergyCalib");
if(!entry) AliFatal("No calibration data loaded!");
else{
entry->SetOwner(kFALSE);
calibdata = dynamic_cast<AliZDCEnCalib*> (entry->GetObject());
if(!calibdata) AliFatal("Wrong calibration object in calibration file!");
}
return calibdata;
}
AliZDCSaturationCalib* AliZDCReconstructor::GetSaturationCalibData() const
{
AliZDCSaturationCalib *calibdata = 0x0;
AliCDBEntry *entry = AliCDBManager::Instance()->Get("ZDC/Calib/SaturationCalib");
if(!entry) AliFatal("No calibration data loaded!");
else{
entry->SetOwner(kFALSE);
calibdata = dynamic_cast<AliZDCSaturationCalib*> (entry->GetObject());
if(!calibdata) AliFatal("Wrong calibration object in calibration file!");
}
return calibdata;
}
AliZDCTowerCalib* AliZDCReconstructor::GetTowerCalibData() const
{
AliZDCTowerCalib *calibdata = 0x0;
AliCDBEntry *entry = AliCDBManager::Instance()->Get("ZDC/Calib/TowerCalib");
if(!entry) AliFatal("No calibration data loaded!");
else{
entry->SetOwner(kFALSE);
calibdata = dynamic_cast<AliZDCTowerCalib*> (entry->GetObject());
if(!calibdata) AliFatal("Wrong calibration object in calibration file!");
}
return calibdata;
}
AliZDCMBCalib* AliZDCReconstructor::GetMBCalibData() const
{
AliZDCMBCalib *calibdata = 0x0;
AliCDBEntry *entry = AliCDBManager::Instance()->Get("ZDC/Calib/MBCalib");
if(!entry) AliFatal("No calibration data loaded!");
else{
entry->SetOwner(kFALSE);
calibdata = dynamic_cast<AliZDCMBCalib*> (entry->GetObject());
if(!calibdata) AliFatal("Wrong calibration object in calibration file!");
}
return calibdata;
}
AliZDCTDCCalib* AliZDCReconstructor::GetTDCCalibData() const
{
AliZDCTDCCalib *calibdata = 0x0;
AliCDBEntry *entry = AliCDBManager::Instance()->Get("ZDC/Calib/TDCCalib");
if(!entry) AliFatal("No calibration data loaded!");
else{
entry->SetOwner(kFALSE);
calibdata = dynamic_cast<AliZDCTDCCalib*> (entry->GetObject());
if(!calibdata) AliFatal("Wrong calibration object in calibration file!");
}
return calibdata;
}
AliZDCReconstructor.cxx:1 AliZDCReconstructor.cxx:2 AliZDCReconstructor.cxx:3 AliZDCReconstructor.cxx:4 AliZDCReconstructor.cxx:5 AliZDCReconstructor.cxx:6 AliZDCReconstructor.cxx:7 AliZDCReconstructor.cxx:8 AliZDCReconstructor.cxx:9 AliZDCReconstructor.cxx:10 AliZDCReconstructor.cxx:11 AliZDCReconstructor.cxx:12 AliZDCReconstructor.cxx:13 AliZDCReconstructor.cxx:14 AliZDCReconstructor.cxx:15 AliZDCReconstructor.cxx:16 AliZDCReconstructor.cxx:17 AliZDCReconstructor.cxx:18 AliZDCReconstructor.cxx:19 AliZDCReconstructor.cxx:20 AliZDCReconstructor.cxx:21 AliZDCReconstructor.cxx:22 AliZDCReconstructor.cxx:23 AliZDCReconstructor.cxx:24 AliZDCReconstructor.cxx:25 AliZDCReconstructor.cxx:26 AliZDCReconstructor.cxx:27 AliZDCReconstructor.cxx:28 AliZDCReconstructor.cxx:29 AliZDCReconstructor.cxx:30 AliZDCReconstructor.cxx:31 AliZDCReconstructor.cxx:32 AliZDCReconstructor.cxx:33 AliZDCReconstructor.cxx:34 AliZDCReconstructor.cxx:35 AliZDCReconstructor.cxx:36 AliZDCReconstructor.cxx:37 AliZDCReconstructor.cxx:38 AliZDCReconstructor.cxx:39 AliZDCReconstructor.cxx:40 AliZDCReconstructor.cxx:41 AliZDCReconstructor.cxx:42 AliZDCReconstructor.cxx:43 AliZDCReconstructor.cxx:44 AliZDCReconstructor.cxx:45 AliZDCReconstructor.cxx:46 AliZDCReconstructor.cxx:47 AliZDCReconstructor.cxx:48 AliZDCReconstructor.cxx:49 AliZDCReconstructor.cxx:50 AliZDCReconstructor.cxx:51 AliZDCReconstructor.cxx:52 AliZDCReconstructor.cxx:53 AliZDCReconstructor.cxx:54 AliZDCReconstructor.cxx:55 AliZDCReconstructor.cxx:56 AliZDCReconstructor.cxx:57 AliZDCReconstructor.cxx:58 AliZDCReconstructor.cxx:59 AliZDCReconstructor.cxx:60 AliZDCReconstructor.cxx:61 AliZDCReconstructor.cxx:62 AliZDCReconstructor.cxx:63 AliZDCReconstructor.cxx:64 AliZDCReconstructor.cxx:65 AliZDCReconstructor.cxx:66 AliZDCReconstructor.cxx:67 AliZDCReconstructor.cxx:68 AliZDCReconstructor.cxx:69 AliZDCReconstructor.cxx:70 AliZDCReconstructor.cxx:71 AliZDCReconstructor.cxx:72 AliZDCReconstructor.cxx:73 AliZDCReconstructor.cxx:74 AliZDCReconstructor.cxx:75 AliZDCReconstructor.cxx:76 AliZDCReconstructor.cxx:77 AliZDCReconstructor.cxx:78 AliZDCReconstructor.cxx:79 AliZDCReconstructor.cxx:80 AliZDCReconstructor.cxx:81 AliZDCReconstructor.cxx:82 AliZDCReconstructor.cxx:83 AliZDCReconstructor.cxx:84 AliZDCReconstructor.cxx:85 AliZDCReconstructor.cxx:86 AliZDCReconstructor.cxx:87 AliZDCReconstructor.cxx:88 AliZDCReconstructor.cxx:89 AliZDCReconstructor.cxx:90 AliZDCReconstructor.cxx:91 AliZDCReconstructor.cxx:92 AliZDCReconstructor.cxx:93 AliZDCReconstructor.cxx:94 AliZDCReconstructor.cxx:95 AliZDCReconstructor.cxx:96 AliZDCReconstructor.cxx:97 AliZDCReconstructor.cxx:98 AliZDCReconstructor.cxx:99 AliZDCReconstructor.cxx:100 AliZDCReconstructor.cxx:101 AliZDCReconstructor.cxx:102 AliZDCReconstructor.cxx:103 AliZDCReconstructor.cxx:104 AliZDCReconstructor.cxx:105 AliZDCReconstructor.cxx:106 AliZDCReconstructor.cxx:107 AliZDCReconstructor.cxx:108 AliZDCReconstructor.cxx:109 AliZDCReconstructor.cxx:110 AliZDCReconstructor.cxx:111 AliZDCReconstructor.cxx:112 AliZDCReconstructor.cxx:113 AliZDCReconstructor.cxx:114 AliZDCReconstructor.cxx:115 AliZDCReconstructor.cxx:116 AliZDCReconstructor.cxx:117 AliZDCReconstructor.cxx:118 AliZDCReconstructor.cxx:119 AliZDCReconstructor.cxx:120 AliZDCReconstructor.cxx:121 AliZDCReconstructor.cxx:122 AliZDCReconstructor.cxx:123 AliZDCReconstructor.cxx:124 AliZDCReconstructor.cxx:125 AliZDCReconstructor.cxx:126 AliZDCReconstructor.cxx:127 AliZDCReconstructor.cxx:128 AliZDCReconstructor.cxx:129 AliZDCReconstructor.cxx:130 AliZDCReconstructor.cxx:131 AliZDCReconstructor.cxx:132 AliZDCReconstructor.cxx:133 AliZDCReconstructor.cxx:134 AliZDCReconstructor.cxx:135 AliZDCReconstructor.cxx:136 AliZDCReconstructor.cxx:137 AliZDCReconstructor.cxx:138 AliZDCReconstructor.cxx:139 AliZDCReconstructor.cxx:140 AliZDCReconstructor.cxx:141 AliZDCReconstructor.cxx:142 AliZDCReconstructor.cxx:143 AliZDCReconstructor.cxx:144 AliZDCReconstructor.cxx:145 AliZDCReconstructor.cxx:146 AliZDCReconstructor.cxx:147 AliZDCReconstructor.cxx:148 AliZDCReconstructor.cxx:149 AliZDCReconstructor.cxx:150 AliZDCReconstructor.cxx:151 AliZDCReconstructor.cxx:152 AliZDCReconstructor.cxx:153 AliZDCReconstructor.cxx:154 AliZDCReconstructor.cxx:155 AliZDCReconstructor.cxx:156 AliZDCReconstructor.cxx:157 AliZDCReconstructor.cxx:158 AliZDCReconstructor.cxx:159 AliZDCReconstructor.cxx:160 AliZDCReconstructor.cxx:161 AliZDCReconstructor.cxx:162 AliZDCReconstructor.cxx:163 AliZDCReconstructor.cxx:164 AliZDCReconstructor.cxx:165 AliZDCReconstructor.cxx:166 AliZDCReconstructor.cxx:167 AliZDCReconstructor.cxx:168 AliZDCReconstructor.cxx:169 AliZDCReconstructor.cxx:170 AliZDCReconstructor.cxx:171 AliZDCReconstructor.cxx:172 AliZDCReconstructor.cxx:173 AliZDCReconstructor.cxx:174 AliZDCReconstructor.cxx:175 AliZDCReconstructor.cxx:176 AliZDCReconstructor.cxx:177 AliZDCReconstructor.cxx:178 AliZDCReconstructor.cxx:179 AliZDCReconstructor.cxx:180 AliZDCReconstructor.cxx:181 AliZDCReconstructor.cxx:182 AliZDCReconstructor.cxx:183 AliZDCReconstructor.cxx:184 AliZDCReconstructor.cxx:185 AliZDCReconstructor.cxx:186 AliZDCReconstructor.cxx:187 AliZDCReconstructor.cxx:188 AliZDCReconstructor.cxx:189 AliZDCReconstructor.cxx:190 AliZDCReconstructor.cxx:191 AliZDCReconstructor.cxx:192 AliZDCReconstructor.cxx:193 AliZDCReconstructor.cxx:194 AliZDCReconstructor.cxx:195 AliZDCReconstructor.cxx:196 AliZDCReconstructor.cxx:197 AliZDCReconstructor.cxx:198 AliZDCReconstructor.cxx:199 AliZDCReconstructor.cxx:200 AliZDCReconstructor.cxx:201 AliZDCReconstructor.cxx:202 AliZDCReconstructor.cxx:203 AliZDCReconstructor.cxx:204 AliZDCReconstructor.cxx:205 AliZDCReconstructor.cxx:206 AliZDCReconstructor.cxx:207 AliZDCReconstructor.cxx:208 AliZDCReconstructor.cxx:209 AliZDCReconstructor.cxx:210 AliZDCReconstructor.cxx:211 AliZDCReconstructor.cxx:212 AliZDCReconstructor.cxx:213 AliZDCReconstructor.cxx:214 AliZDCReconstructor.cxx:215 AliZDCReconstructor.cxx:216 AliZDCReconstructor.cxx:217 AliZDCReconstructor.cxx:218 AliZDCReconstructor.cxx:219 AliZDCReconstructor.cxx:220 AliZDCReconstructor.cxx:221 AliZDCReconstructor.cxx:222 AliZDCReconstructor.cxx:223 AliZDCReconstructor.cxx:224 AliZDCReconstructor.cxx:225 AliZDCReconstructor.cxx:226 AliZDCReconstructor.cxx:227 AliZDCReconstructor.cxx:228 AliZDCReconstructor.cxx:229 AliZDCReconstructor.cxx:230 AliZDCReconstructor.cxx:231 AliZDCReconstructor.cxx:232 AliZDCReconstructor.cxx:233 AliZDCReconstructor.cxx:234 AliZDCReconstructor.cxx:235 AliZDCReconstructor.cxx:236 AliZDCReconstructor.cxx:237 AliZDCReconstructor.cxx:238 AliZDCReconstructor.cxx:239 AliZDCReconstructor.cxx:240 AliZDCReconstructor.cxx:241 AliZDCReconstructor.cxx:242 AliZDCReconstructor.cxx:243 AliZDCReconstructor.cxx:244 AliZDCReconstructor.cxx:245 AliZDCReconstructor.cxx:246 AliZDCReconstructor.cxx:247 AliZDCReconstructor.cxx:248 AliZDCReconstructor.cxx:249 AliZDCReconstructor.cxx:250 AliZDCReconstructor.cxx:251 AliZDCReconstructor.cxx:252 AliZDCReconstructor.cxx:253 AliZDCReconstructor.cxx:254 AliZDCReconstructor.cxx:255 AliZDCReconstructor.cxx:256 AliZDCReconstructor.cxx:257 AliZDCReconstructor.cxx:258 AliZDCReconstructor.cxx:259 AliZDCReconstructor.cxx:260 AliZDCReconstructor.cxx:261 AliZDCReconstructor.cxx:262 AliZDCReconstructor.cxx:263 AliZDCReconstructor.cxx:264 AliZDCReconstructor.cxx:265 AliZDCReconstructor.cxx:266 AliZDCReconstructor.cxx:267 AliZDCReconstructor.cxx:268 AliZDCReconstructor.cxx:269 AliZDCReconstructor.cxx:270 AliZDCReconstructor.cxx:271 AliZDCReconstructor.cxx:272 AliZDCReconstructor.cxx:273 AliZDCReconstructor.cxx:274 AliZDCReconstructor.cxx:275 AliZDCReconstructor.cxx:276 AliZDCReconstructor.cxx:277 AliZDCReconstructor.cxx:278 AliZDCReconstructor.cxx:279 AliZDCReconstructor.cxx:280 AliZDCReconstructor.cxx:281 AliZDCReconstructor.cxx:282 AliZDCReconstructor.cxx:283 AliZDCReconstructor.cxx:284 AliZDCReconstructor.cxx:285 AliZDCReconstructor.cxx:286 AliZDCReconstructor.cxx:287 AliZDCReconstructor.cxx:288 AliZDCReconstructor.cxx:289 AliZDCReconstructor.cxx:290 AliZDCReconstructor.cxx:291 AliZDCReconstructor.cxx:292 AliZDCReconstructor.cxx:293 AliZDCReconstructor.cxx:294 AliZDCReconstructor.cxx:295 AliZDCReconstructor.cxx:296 AliZDCReconstructor.cxx:297 AliZDCReconstructor.cxx:298 AliZDCReconstructor.cxx:299 AliZDCReconstructor.cxx:300 AliZDCReconstructor.cxx:301 AliZDCReconstructor.cxx:302 AliZDCReconstructor.cxx:303 AliZDCReconstructor.cxx:304 AliZDCReconstructor.cxx:305 AliZDCReconstructor.cxx:306 AliZDCReconstructor.cxx:307 AliZDCReconstructor.cxx:308 AliZDCReconstructor.cxx:309 AliZDCReconstructor.cxx:310 AliZDCReconstructor.cxx:311 AliZDCReconstructor.cxx:312 AliZDCReconstructor.cxx:313 AliZDCReconstructor.cxx:314 AliZDCReconstructor.cxx:315 AliZDCReconstructor.cxx:316 AliZDCReconstructor.cxx:317 AliZDCReconstructor.cxx:318 AliZDCReconstructor.cxx:319 AliZDCReconstructor.cxx:320 AliZDCReconstructor.cxx:321 AliZDCReconstructor.cxx:322 AliZDCReconstructor.cxx:323 AliZDCReconstructor.cxx:324 AliZDCReconstructor.cxx:325 AliZDCReconstructor.cxx:326 AliZDCReconstructor.cxx:327 AliZDCReconstructor.cxx:328 AliZDCReconstructor.cxx:329 AliZDCReconstructor.cxx:330 AliZDCReconstructor.cxx:331 AliZDCReconstructor.cxx:332 AliZDCReconstructor.cxx:333 AliZDCReconstructor.cxx:334 AliZDCReconstructor.cxx:335 AliZDCReconstructor.cxx:336 AliZDCReconstructor.cxx:337 AliZDCReconstructor.cxx:338 AliZDCReconstructor.cxx:339 AliZDCReconstructor.cxx:340 AliZDCReconstructor.cxx:341 AliZDCReconstructor.cxx:342 AliZDCReconstructor.cxx:343 AliZDCReconstructor.cxx:344 AliZDCReconstructor.cxx:345 AliZDCReconstructor.cxx:346 AliZDCReconstructor.cxx:347 AliZDCReconstructor.cxx:348 AliZDCReconstructor.cxx:349 AliZDCReconstructor.cxx:350 AliZDCReconstructor.cxx:351 AliZDCReconstructor.cxx:352 AliZDCReconstructor.cxx:353 AliZDCReconstructor.cxx:354 AliZDCReconstructor.cxx:355 AliZDCReconstructor.cxx:356 AliZDCReconstructor.cxx:357 AliZDCReconstructor.cxx:358 AliZDCReconstructor.cxx:359 AliZDCReconstructor.cxx:360 AliZDCReconstructor.cxx:361 AliZDCReconstructor.cxx:362 AliZDCReconstructor.cxx:363 AliZDCReconstructor.cxx:364 AliZDCReconstructor.cxx:365 AliZDCReconstructor.cxx:366 AliZDCReconstructor.cxx:367 AliZDCReconstructor.cxx:368 AliZDCReconstructor.cxx:369 AliZDCReconstructor.cxx:370 AliZDCReconstructor.cxx:371 AliZDCReconstructor.cxx:372 AliZDCReconstructor.cxx:373 AliZDCReconstructor.cxx:374 AliZDCReconstructor.cxx:375 AliZDCReconstructor.cxx:376 AliZDCReconstructor.cxx:377 AliZDCReconstructor.cxx:378 AliZDCReconstructor.cxx:379 AliZDCReconstructor.cxx:380 AliZDCReconstructor.cxx:381 AliZDCReconstructor.cxx:382 AliZDCReconstructor.cxx:383 AliZDCReconstructor.cxx:384 AliZDCReconstructor.cxx:385 AliZDCReconstructor.cxx:386 AliZDCReconstructor.cxx:387 AliZDCReconstructor.cxx:388 AliZDCReconstructor.cxx:389 AliZDCReconstructor.cxx:390 AliZDCReconstructor.cxx:391 AliZDCReconstructor.cxx:392 AliZDCReconstructor.cxx:393 AliZDCReconstructor.cxx:394 AliZDCReconstructor.cxx:395 AliZDCReconstructor.cxx:396 AliZDCReconstructor.cxx:397 AliZDCReconstructor.cxx:398 AliZDCReconstructor.cxx:399 AliZDCReconstructor.cxx:400 AliZDCReconstructor.cxx:401 AliZDCReconstructor.cxx:402 AliZDCReconstructor.cxx:403 AliZDCReconstructor.cxx:404 AliZDCReconstructor.cxx:405 AliZDCReconstructor.cxx:406 AliZDCReconstructor.cxx:407 AliZDCReconstructor.cxx:408 AliZDCReconstructor.cxx:409 AliZDCReconstructor.cxx:410 AliZDCReconstructor.cxx:411 AliZDCReconstructor.cxx:412 AliZDCReconstructor.cxx:413 AliZDCReconstructor.cxx:414 AliZDCReconstructor.cxx:415 AliZDCReconstructor.cxx:416 AliZDCReconstructor.cxx:417 AliZDCReconstructor.cxx:418 AliZDCReconstructor.cxx:419 AliZDCReconstructor.cxx:420 AliZDCReconstructor.cxx:421 AliZDCReconstructor.cxx:422 AliZDCReconstructor.cxx:423 AliZDCReconstructor.cxx:424 AliZDCReconstructor.cxx:425 AliZDCReconstructor.cxx:426 AliZDCReconstructor.cxx:427 AliZDCReconstructor.cxx:428 AliZDCReconstructor.cxx:429 AliZDCReconstructor.cxx:430 AliZDCReconstructor.cxx:431 AliZDCReconstructor.cxx:432 AliZDCReconstructor.cxx:433 AliZDCReconstructor.cxx:434 AliZDCReconstructor.cxx:435 AliZDCReconstructor.cxx:436 AliZDCReconstructor.cxx:437 AliZDCReconstructor.cxx:438 AliZDCReconstructor.cxx:439 AliZDCReconstructor.cxx:440 AliZDCReconstructor.cxx:441 AliZDCReconstructor.cxx:442 AliZDCReconstructor.cxx:443 AliZDCReconstructor.cxx:444 AliZDCReconstructor.cxx:445 AliZDCReconstructor.cxx:446 AliZDCReconstructor.cxx:447 AliZDCReconstructor.cxx:448 AliZDCReconstructor.cxx:449 AliZDCReconstructor.cxx:450 AliZDCReconstructor.cxx:451 AliZDCReconstructor.cxx:452 AliZDCReconstructor.cxx:453 AliZDCReconstructor.cxx:454 AliZDCReconstructor.cxx:455 AliZDCReconstructor.cxx:456 AliZDCReconstructor.cxx:457 AliZDCReconstructor.cxx:458 AliZDCReconstructor.cxx:459 AliZDCReconstructor.cxx:460 AliZDCReconstructor.cxx:461 AliZDCReconstructor.cxx:462 AliZDCReconstructor.cxx:463 AliZDCReconstructor.cxx:464 AliZDCReconstructor.cxx:465 AliZDCReconstructor.cxx:466 AliZDCReconstructor.cxx:467 AliZDCReconstructor.cxx:468 AliZDCReconstructor.cxx:469 AliZDCReconstructor.cxx:470 AliZDCReconstructor.cxx:471 AliZDCReconstructor.cxx:472 AliZDCReconstructor.cxx:473 AliZDCReconstructor.cxx:474 AliZDCReconstructor.cxx:475 AliZDCReconstructor.cxx:476 AliZDCReconstructor.cxx:477 AliZDCReconstructor.cxx:478 AliZDCReconstructor.cxx:479 AliZDCReconstructor.cxx:480 AliZDCReconstructor.cxx:481 AliZDCReconstructor.cxx:482 AliZDCReconstructor.cxx:483 AliZDCReconstructor.cxx:484 AliZDCReconstructor.cxx:485 AliZDCReconstructor.cxx:486 AliZDCReconstructor.cxx:487 AliZDCReconstructor.cxx:488 AliZDCReconstructor.cxx:489 AliZDCReconstructor.cxx:490 AliZDCReconstructor.cxx:491 AliZDCReconstructor.cxx:492 AliZDCReconstructor.cxx:493 AliZDCReconstructor.cxx:494 AliZDCReconstructor.cxx:495 AliZDCReconstructor.cxx:496 AliZDCReconstructor.cxx:497 AliZDCReconstructor.cxx:498 AliZDCReconstructor.cxx:499 AliZDCReconstructor.cxx:500 AliZDCReconstructor.cxx:501 AliZDCReconstructor.cxx:502 AliZDCReconstructor.cxx:503 AliZDCReconstructor.cxx:504 AliZDCReconstructor.cxx:505 AliZDCReconstructor.cxx:506 AliZDCReconstructor.cxx:507 AliZDCReconstructor.cxx:508 AliZDCReconstructor.cxx:509 AliZDCReconstructor.cxx:510 AliZDCReconstructor.cxx:511 AliZDCReconstructor.cxx:512 AliZDCReconstructor.cxx:513 AliZDCReconstructor.cxx:514 AliZDCReconstructor.cxx:515 AliZDCReconstructor.cxx:516 AliZDCReconstructor.cxx:517 AliZDCReconstructor.cxx:518 AliZDCReconstructor.cxx:519 AliZDCReconstructor.cxx:520 AliZDCReconstructor.cxx:521 AliZDCReconstructor.cxx:522 AliZDCReconstructor.cxx:523 AliZDCReconstructor.cxx:524 AliZDCReconstructor.cxx:525 AliZDCReconstructor.cxx:526 AliZDCReconstructor.cxx:527 AliZDCReconstructor.cxx:528 AliZDCReconstructor.cxx:529 AliZDCReconstructor.cxx:530 AliZDCReconstructor.cxx:531 AliZDCReconstructor.cxx:532 AliZDCReconstructor.cxx:533 AliZDCReconstructor.cxx:534 AliZDCReconstructor.cxx:535 AliZDCReconstructor.cxx:536 AliZDCReconstructor.cxx:537 AliZDCReconstructor.cxx:538 AliZDCReconstructor.cxx:539 AliZDCReconstructor.cxx:540 AliZDCReconstructor.cxx:541 AliZDCReconstructor.cxx:542 AliZDCReconstructor.cxx:543 AliZDCReconstructor.cxx:544 AliZDCReconstructor.cxx:545 AliZDCReconstructor.cxx:546 AliZDCReconstructor.cxx:547 AliZDCReconstructor.cxx:548 AliZDCReconstructor.cxx:549 AliZDCReconstructor.cxx:550 AliZDCReconstructor.cxx:551 AliZDCReconstructor.cxx:552 AliZDCReconstructor.cxx:553 AliZDCReconstructor.cxx:554 AliZDCReconstructor.cxx:555 AliZDCReconstructor.cxx:556 AliZDCReconstructor.cxx:557 AliZDCReconstructor.cxx:558 AliZDCReconstructor.cxx:559 AliZDCReconstructor.cxx:560 AliZDCReconstructor.cxx:561 AliZDCReconstructor.cxx:562 AliZDCReconstructor.cxx:563 AliZDCReconstructor.cxx:564 AliZDCReconstructor.cxx:565 AliZDCReconstructor.cxx:566 AliZDCReconstructor.cxx:567 AliZDCReconstructor.cxx:568 AliZDCReconstructor.cxx:569 AliZDCReconstructor.cxx:570 AliZDCReconstructor.cxx:571 AliZDCReconstructor.cxx:572 AliZDCReconstructor.cxx:573 AliZDCReconstructor.cxx:574 AliZDCReconstructor.cxx:575 AliZDCReconstructor.cxx:576 AliZDCReconstructor.cxx:577 AliZDCReconstructor.cxx:578 AliZDCReconstructor.cxx:579 AliZDCReconstructor.cxx:580 AliZDCReconstructor.cxx:581 AliZDCReconstructor.cxx:582 AliZDCReconstructor.cxx:583 AliZDCReconstructor.cxx:584 AliZDCReconstructor.cxx:585 AliZDCReconstructor.cxx:586 AliZDCReconstructor.cxx:587 AliZDCReconstructor.cxx:588 AliZDCReconstructor.cxx:589 AliZDCReconstructor.cxx:590 AliZDCReconstructor.cxx:591 AliZDCReconstructor.cxx:592 AliZDCReconstructor.cxx:593 AliZDCReconstructor.cxx:594 AliZDCReconstructor.cxx:595 AliZDCReconstructor.cxx:596 AliZDCReconstructor.cxx:597 AliZDCReconstructor.cxx:598 AliZDCReconstructor.cxx:599 AliZDCReconstructor.cxx:600 AliZDCReconstructor.cxx:601 AliZDCReconstructor.cxx:602 AliZDCReconstructor.cxx:603 AliZDCReconstructor.cxx:604 AliZDCReconstructor.cxx:605 AliZDCReconstructor.cxx:606 AliZDCReconstructor.cxx:607 AliZDCReconstructor.cxx:608 AliZDCReconstructor.cxx:609 AliZDCReconstructor.cxx:610 AliZDCReconstructor.cxx:611 AliZDCReconstructor.cxx:612 AliZDCReconstructor.cxx:613 AliZDCReconstructor.cxx:614 AliZDCReconstructor.cxx:615 AliZDCReconstructor.cxx:616 AliZDCReconstructor.cxx:617 AliZDCReconstructor.cxx:618 AliZDCReconstructor.cxx:619 AliZDCReconstructor.cxx:620 AliZDCReconstructor.cxx:621 AliZDCReconstructor.cxx:622 AliZDCReconstructor.cxx:623 AliZDCReconstructor.cxx:624 AliZDCReconstructor.cxx:625 AliZDCReconstructor.cxx:626 AliZDCReconstructor.cxx:627 AliZDCReconstructor.cxx:628 AliZDCReconstructor.cxx:629 AliZDCReconstructor.cxx:630 AliZDCReconstructor.cxx:631 AliZDCReconstructor.cxx:632 AliZDCReconstructor.cxx:633 AliZDCReconstructor.cxx:634 AliZDCReconstructor.cxx:635 AliZDCReconstructor.cxx:636 AliZDCReconstructor.cxx:637 AliZDCReconstructor.cxx:638 AliZDCReconstructor.cxx:639 AliZDCReconstructor.cxx:640 AliZDCReconstructor.cxx:641 AliZDCReconstructor.cxx:642 AliZDCReconstructor.cxx:643 AliZDCReconstructor.cxx:644 AliZDCReconstructor.cxx:645 AliZDCReconstructor.cxx:646 AliZDCReconstructor.cxx:647 AliZDCReconstructor.cxx:648 AliZDCReconstructor.cxx:649 AliZDCReconstructor.cxx:650 AliZDCReconstructor.cxx:651 AliZDCReconstructor.cxx:652 AliZDCReconstructor.cxx:653 AliZDCReconstructor.cxx:654 AliZDCReconstructor.cxx:655 AliZDCReconstructor.cxx:656 AliZDCReconstructor.cxx:657 AliZDCReconstructor.cxx:658 AliZDCReconstructor.cxx:659 AliZDCReconstructor.cxx:660 AliZDCReconstructor.cxx:661 AliZDCReconstructor.cxx:662 AliZDCReconstructor.cxx:663 AliZDCReconstructor.cxx:664 AliZDCReconstructor.cxx:665 AliZDCReconstructor.cxx:666 AliZDCReconstructor.cxx:667 AliZDCReconstructor.cxx:668 AliZDCReconstructor.cxx:669 AliZDCReconstructor.cxx:670 AliZDCReconstructor.cxx:671 AliZDCReconstructor.cxx:672 AliZDCReconstructor.cxx:673 AliZDCReconstructor.cxx:674 AliZDCReconstructor.cxx:675 AliZDCReconstructor.cxx:676 AliZDCReconstructor.cxx:677 AliZDCReconstructor.cxx:678 AliZDCReconstructor.cxx:679 AliZDCReconstructor.cxx:680 AliZDCReconstructor.cxx:681 AliZDCReconstructor.cxx:682 AliZDCReconstructor.cxx:683 AliZDCReconstructor.cxx:684 AliZDCReconstructor.cxx:685 AliZDCReconstructor.cxx:686 AliZDCReconstructor.cxx:687 AliZDCReconstructor.cxx:688 AliZDCReconstructor.cxx:689 AliZDCReconstructor.cxx:690 AliZDCReconstructor.cxx:691 AliZDCReconstructor.cxx:692 AliZDCReconstructor.cxx:693 AliZDCReconstructor.cxx:694 AliZDCReconstructor.cxx:695 AliZDCReconstructor.cxx:696 AliZDCReconstructor.cxx:697 AliZDCReconstructor.cxx:698 AliZDCReconstructor.cxx:699 AliZDCReconstructor.cxx:700 AliZDCReconstructor.cxx:701 AliZDCReconstructor.cxx:702 AliZDCReconstructor.cxx:703 AliZDCReconstructor.cxx:704 AliZDCReconstructor.cxx:705 AliZDCReconstructor.cxx:706 AliZDCReconstructor.cxx:707 AliZDCReconstructor.cxx:708 AliZDCReconstructor.cxx:709 AliZDCReconstructor.cxx:710 AliZDCReconstructor.cxx:711 AliZDCReconstructor.cxx:712 AliZDCReconstructor.cxx:713 AliZDCReconstructor.cxx:714 AliZDCReconstructor.cxx:715 AliZDCReconstructor.cxx:716 AliZDCReconstructor.cxx:717 AliZDCReconstructor.cxx:718 AliZDCReconstructor.cxx:719 AliZDCReconstructor.cxx:720 AliZDCReconstructor.cxx:721 AliZDCReconstructor.cxx:722 AliZDCReconstructor.cxx:723 AliZDCReconstructor.cxx:724 AliZDCReconstructor.cxx:725 AliZDCReconstructor.cxx:726 AliZDCReconstructor.cxx:727 AliZDCReconstructor.cxx:728 AliZDCReconstructor.cxx:729 AliZDCReconstructor.cxx:730 AliZDCReconstructor.cxx:731 AliZDCReconstructor.cxx:732 AliZDCReconstructor.cxx:733 AliZDCReconstructor.cxx:734 AliZDCReconstructor.cxx:735 AliZDCReconstructor.cxx:736 AliZDCReconstructor.cxx:737 AliZDCReconstructor.cxx:738 AliZDCReconstructor.cxx:739 AliZDCReconstructor.cxx:740 AliZDCReconstructor.cxx:741 AliZDCReconstructor.cxx:742 AliZDCReconstructor.cxx:743 AliZDCReconstructor.cxx:744 AliZDCReconstructor.cxx:745 AliZDCReconstructor.cxx:746 AliZDCReconstructor.cxx:747 AliZDCReconstructor.cxx:748 AliZDCReconstructor.cxx:749 AliZDCReconstructor.cxx:750 AliZDCReconstructor.cxx:751 AliZDCReconstructor.cxx:752 AliZDCReconstructor.cxx:753 AliZDCReconstructor.cxx:754 AliZDCReconstructor.cxx:755 AliZDCReconstructor.cxx:756 AliZDCReconstructor.cxx:757 AliZDCReconstructor.cxx:758 AliZDCReconstructor.cxx:759 AliZDCReconstructor.cxx:760 AliZDCReconstructor.cxx:761 AliZDCReconstructor.cxx:762 AliZDCReconstructor.cxx:763 AliZDCReconstructor.cxx:764 AliZDCReconstructor.cxx:765 AliZDCReconstructor.cxx:766 AliZDCReconstructor.cxx:767 AliZDCReconstructor.cxx:768 AliZDCReconstructor.cxx:769 AliZDCReconstructor.cxx:770 AliZDCReconstructor.cxx:771 AliZDCReconstructor.cxx:772 AliZDCReconstructor.cxx:773 AliZDCReconstructor.cxx:774 AliZDCReconstructor.cxx:775 AliZDCReconstructor.cxx:776 AliZDCReconstructor.cxx:777 AliZDCReconstructor.cxx:778 AliZDCReconstructor.cxx:779 AliZDCReconstructor.cxx:780 AliZDCReconstructor.cxx:781 AliZDCReconstructor.cxx:782 AliZDCReconstructor.cxx:783 AliZDCReconstructor.cxx:784 AliZDCReconstructor.cxx:785 AliZDCReconstructor.cxx:786 AliZDCReconstructor.cxx:787 AliZDCReconstructor.cxx:788 AliZDCReconstructor.cxx:789 AliZDCReconstructor.cxx:790 AliZDCReconstructor.cxx:791 AliZDCReconstructor.cxx:792 AliZDCReconstructor.cxx:793 AliZDCReconstructor.cxx:794 AliZDCReconstructor.cxx:795 AliZDCReconstructor.cxx:796 AliZDCReconstructor.cxx:797 AliZDCReconstructor.cxx:798 AliZDCReconstructor.cxx:799 AliZDCReconstructor.cxx:800 AliZDCReconstructor.cxx:801 AliZDCReconstructor.cxx:802 AliZDCReconstructor.cxx:803 AliZDCReconstructor.cxx:804 AliZDCReconstructor.cxx:805 AliZDCReconstructor.cxx:806 AliZDCReconstructor.cxx:807 AliZDCReconstructor.cxx:808 AliZDCReconstructor.cxx:809 AliZDCReconstructor.cxx:810 AliZDCReconstructor.cxx:811 AliZDCReconstructor.cxx:812 AliZDCReconstructor.cxx:813 AliZDCReconstructor.cxx:814 AliZDCReconstructor.cxx:815 AliZDCReconstructor.cxx:816 AliZDCReconstructor.cxx:817 AliZDCReconstructor.cxx:818 AliZDCReconstructor.cxx:819 AliZDCReconstructor.cxx:820 AliZDCReconstructor.cxx:821 AliZDCReconstructor.cxx:822 AliZDCReconstructor.cxx:823 AliZDCReconstructor.cxx:824 AliZDCReconstructor.cxx:825 AliZDCReconstructor.cxx:826 AliZDCReconstructor.cxx:827 AliZDCReconstructor.cxx:828 AliZDCReconstructor.cxx:829 AliZDCReconstructor.cxx:830 AliZDCReconstructor.cxx:831 AliZDCReconstructor.cxx:832 AliZDCReconstructor.cxx:833 AliZDCReconstructor.cxx:834 AliZDCReconstructor.cxx:835 AliZDCReconstructor.cxx:836 AliZDCReconstructor.cxx:837 AliZDCReconstructor.cxx:838 AliZDCReconstructor.cxx:839 AliZDCReconstructor.cxx:840 AliZDCReconstructor.cxx:841 AliZDCReconstructor.cxx:842 AliZDCReconstructor.cxx:843 AliZDCReconstructor.cxx:844 AliZDCReconstructor.cxx:845 AliZDCReconstructor.cxx:846 AliZDCReconstructor.cxx:847 AliZDCReconstructor.cxx:848 AliZDCReconstructor.cxx:849 AliZDCReconstructor.cxx:850 AliZDCReconstructor.cxx:851 AliZDCReconstructor.cxx:852 AliZDCReconstructor.cxx:853 AliZDCReconstructor.cxx:854 AliZDCReconstructor.cxx:855 AliZDCReconstructor.cxx:856 AliZDCReconstructor.cxx:857 AliZDCReconstructor.cxx:858 AliZDCReconstructor.cxx:859 AliZDCReconstructor.cxx:860 AliZDCReconstructor.cxx:861 AliZDCReconstructor.cxx:862 AliZDCReconstructor.cxx:863 AliZDCReconstructor.cxx:864 AliZDCReconstructor.cxx:865 AliZDCReconstructor.cxx:866 AliZDCReconstructor.cxx:867 AliZDCReconstructor.cxx:868 AliZDCReconstructor.cxx:869 AliZDCReconstructor.cxx:870 AliZDCReconstructor.cxx:871 AliZDCReconstructor.cxx:872 AliZDCReconstructor.cxx:873 AliZDCReconstructor.cxx:874 AliZDCReconstructor.cxx:875 AliZDCReconstructor.cxx:876 AliZDCReconstructor.cxx:877 AliZDCReconstructor.cxx:878 AliZDCReconstructor.cxx:879 AliZDCReconstructor.cxx:880 AliZDCReconstructor.cxx:881 AliZDCReconstructor.cxx:882 AliZDCReconstructor.cxx:883 AliZDCReconstructor.cxx:884 AliZDCReconstructor.cxx:885 AliZDCReconstructor.cxx:886 AliZDCReconstructor.cxx:887 AliZDCReconstructor.cxx:888 AliZDCReconstructor.cxx:889 AliZDCReconstructor.cxx:890 AliZDCReconstructor.cxx:891 AliZDCReconstructor.cxx:892 AliZDCReconstructor.cxx:893 AliZDCReconstructor.cxx:894 AliZDCReconstructor.cxx:895 AliZDCReconstructor.cxx:896 AliZDCReconstructor.cxx:897 AliZDCReconstructor.cxx:898 AliZDCReconstructor.cxx:899 AliZDCReconstructor.cxx:900 AliZDCReconstructor.cxx:901 AliZDCReconstructor.cxx:902 AliZDCReconstructor.cxx:903 AliZDCReconstructor.cxx:904 AliZDCReconstructor.cxx:905 AliZDCReconstructor.cxx:906 AliZDCReconstructor.cxx:907 AliZDCReconstructor.cxx:908 AliZDCReconstructor.cxx:909 AliZDCReconstructor.cxx:910 AliZDCReconstructor.cxx:911 AliZDCReconstructor.cxx:912 AliZDCReconstructor.cxx:913 AliZDCReconstructor.cxx:914 AliZDCReconstructor.cxx:915 AliZDCReconstructor.cxx:916 AliZDCReconstructor.cxx:917 AliZDCReconstructor.cxx:918 AliZDCReconstructor.cxx:919 AliZDCReconstructor.cxx:920 AliZDCReconstructor.cxx:921 AliZDCReconstructor.cxx:922 AliZDCReconstructor.cxx:923 AliZDCReconstructor.cxx:924 AliZDCReconstructor.cxx:925 AliZDCReconstructor.cxx:926 AliZDCReconstructor.cxx:927 AliZDCReconstructor.cxx:928 AliZDCReconstructor.cxx:929 AliZDCReconstructor.cxx:930 AliZDCReconstructor.cxx:931 AliZDCReconstructor.cxx:932 AliZDCReconstructor.cxx:933 AliZDCReconstructor.cxx:934 AliZDCReconstructor.cxx:935 AliZDCReconstructor.cxx:936 AliZDCReconstructor.cxx:937 AliZDCReconstructor.cxx:938 AliZDCReconstructor.cxx:939 AliZDCReconstructor.cxx:940 AliZDCReconstructor.cxx:941 AliZDCReconstructor.cxx:942 AliZDCReconstructor.cxx:943 AliZDCReconstructor.cxx:944 AliZDCReconstructor.cxx:945 AliZDCReconstructor.cxx:946 AliZDCReconstructor.cxx:947 AliZDCReconstructor.cxx:948 AliZDCReconstructor.cxx:949 AliZDCReconstructor.cxx:950 AliZDCReconstructor.cxx:951 AliZDCReconstructor.cxx:952 AliZDCReconstructor.cxx:953 AliZDCReconstructor.cxx:954 AliZDCReconstructor.cxx:955 AliZDCReconstructor.cxx:956 AliZDCReconstructor.cxx:957 AliZDCReconstructor.cxx:958 AliZDCReconstructor.cxx:959 AliZDCReconstructor.cxx:960 AliZDCReconstructor.cxx:961 AliZDCReconstructor.cxx:962 AliZDCReconstructor.cxx:963 AliZDCReconstructor.cxx:964 AliZDCReconstructor.cxx:965 AliZDCReconstructor.cxx:966 AliZDCReconstructor.cxx:967 AliZDCReconstructor.cxx:968 AliZDCReconstructor.cxx:969 AliZDCReconstructor.cxx:970 AliZDCReconstructor.cxx:971 AliZDCReconstructor.cxx:972 AliZDCReconstructor.cxx:973 AliZDCReconstructor.cxx:974 AliZDCReconstructor.cxx:975 AliZDCReconstructor.cxx:976 AliZDCReconstructor.cxx:977 AliZDCReconstructor.cxx:978 AliZDCReconstructor.cxx:979 AliZDCReconstructor.cxx:980 AliZDCReconstructor.cxx:981 AliZDCReconstructor.cxx:982 AliZDCReconstructor.cxx:983 AliZDCReconstructor.cxx:984 AliZDCReconstructor.cxx:985 AliZDCReconstructor.cxx:986 AliZDCReconstructor.cxx:987 AliZDCReconstructor.cxx:988 AliZDCReconstructor.cxx:989 AliZDCReconstructor.cxx:990 AliZDCReconstructor.cxx:991 AliZDCReconstructor.cxx:992 AliZDCReconstructor.cxx:993 AliZDCReconstructor.cxx:994 AliZDCReconstructor.cxx:995 AliZDCReconstructor.cxx:996 AliZDCReconstructor.cxx:997 AliZDCReconstructor.cxx:998 AliZDCReconstructor.cxx:999 AliZDCReconstructor.cxx:1000 AliZDCReconstructor.cxx:1001 AliZDCReconstructor.cxx:1002 AliZDCReconstructor.cxx:1003 AliZDCReconstructor.cxx:1004 AliZDCReconstructor.cxx:1005 AliZDCReconstructor.cxx:1006 AliZDCReconstructor.cxx:1007 AliZDCReconstructor.cxx:1008 AliZDCReconstructor.cxx:1009 AliZDCReconstructor.cxx:1010 AliZDCReconstructor.cxx:1011 AliZDCReconstructor.cxx:1012 AliZDCReconstructor.cxx:1013 AliZDCReconstructor.cxx:1014 AliZDCReconstructor.cxx:1015 AliZDCReconstructor.cxx:1016 AliZDCReconstructor.cxx:1017 AliZDCReconstructor.cxx:1018 AliZDCReconstructor.cxx:1019 AliZDCReconstructor.cxx:1020 AliZDCReconstructor.cxx:1021 AliZDCReconstructor.cxx:1022 AliZDCReconstructor.cxx:1023 AliZDCReconstructor.cxx:1024 AliZDCReconstructor.cxx:1025 AliZDCReconstructor.cxx:1026 AliZDCReconstructor.cxx:1027 AliZDCReconstructor.cxx:1028 AliZDCReconstructor.cxx:1029 AliZDCReconstructor.cxx:1030 AliZDCReconstructor.cxx:1031 AliZDCReconstructor.cxx:1032 AliZDCReconstructor.cxx:1033 AliZDCReconstructor.cxx:1034 AliZDCReconstructor.cxx:1035 AliZDCReconstructor.cxx:1036 AliZDCReconstructor.cxx:1037 AliZDCReconstructor.cxx:1038 AliZDCReconstructor.cxx:1039 AliZDCReconstructor.cxx:1040 AliZDCReconstructor.cxx:1041 AliZDCReconstructor.cxx:1042 AliZDCReconstructor.cxx:1043 AliZDCReconstructor.cxx:1044 AliZDCReconstructor.cxx:1045 AliZDCReconstructor.cxx:1046 AliZDCReconstructor.cxx:1047 AliZDCReconstructor.cxx:1048 AliZDCReconstructor.cxx:1049 AliZDCReconstructor.cxx:1050 AliZDCReconstructor.cxx:1051 AliZDCReconstructor.cxx:1052 AliZDCReconstructor.cxx:1053 AliZDCReconstructor.cxx:1054 AliZDCReconstructor.cxx:1055 AliZDCReconstructor.cxx:1056 AliZDCReconstructor.cxx:1057 AliZDCReconstructor.cxx:1058 AliZDCReconstructor.cxx:1059 AliZDCReconstructor.cxx:1060 AliZDCReconstructor.cxx:1061 AliZDCReconstructor.cxx:1062 AliZDCReconstructor.cxx:1063 AliZDCReconstructor.cxx:1064 AliZDCReconstructor.cxx:1065 AliZDCReconstructor.cxx:1066 AliZDCReconstructor.cxx:1067 AliZDCReconstructor.cxx:1068 AliZDCReconstructor.cxx:1069 AliZDCReconstructor.cxx:1070 AliZDCReconstructor.cxx:1071 AliZDCReconstructor.cxx:1072 AliZDCReconstructor.cxx:1073 AliZDCReconstructor.cxx:1074 AliZDCReconstructor.cxx:1075 AliZDCReconstructor.cxx:1076 AliZDCReconstructor.cxx:1077 AliZDCReconstructor.cxx:1078 AliZDCReconstructor.cxx:1079 AliZDCReconstructor.cxx:1080 AliZDCReconstructor.cxx:1081 AliZDCReconstructor.cxx:1082 AliZDCReconstructor.cxx:1083 AliZDCReconstructor.cxx:1084 AliZDCReconstructor.cxx:1085 AliZDCReconstructor.cxx:1086 AliZDCReconstructor.cxx:1087 AliZDCReconstructor.cxx:1088 AliZDCReconstructor.cxx:1089 AliZDCReconstructor.cxx:1090 AliZDCReconstructor.cxx:1091 AliZDCReconstructor.cxx:1092 AliZDCReconstructor.cxx:1093 AliZDCReconstructor.cxx:1094 AliZDCReconstructor.cxx:1095 AliZDCReconstructor.cxx:1096 AliZDCReconstructor.cxx:1097 AliZDCReconstructor.cxx:1098 AliZDCReconstructor.cxx:1099 AliZDCReconstructor.cxx:1100 AliZDCReconstructor.cxx:1101 AliZDCReconstructor.cxx:1102 AliZDCReconstructor.cxx:1103 AliZDCReconstructor.cxx:1104 AliZDCReconstructor.cxx:1105 AliZDCReconstructor.cxx:1106 AliZDCReconstructor.cxx:1107 AliZDCReconstructor.cxx:1108 AliZDCReconstructor.cxx:1109 AliZDCReconstructor.cxx:1110 AliZDCReconstructor.cxx:1111 AliZDCReconstructor.cxx:1112 AliZDCReconstructor.cxx:1113 AliZDCReconstructor.cxx:1114 AliZDCReconstructor.cxx:1115 AliZDCReconstructor.cxx:1116 AliZDCReconstructor.cxx:1117 AliZDCReconstructor.cxx:1118 AliZDCReconstructor.cxx:1119 AliZDCReconstructor.cxx:1120 AliZDCReconstructor.cxx:1121 AliZDCReconstructor.cxx:1122 AliZDCReconstructor.cxx:1123 AliZDCReconstructor.cxx:1124 AliZDCReconstructor.cxx:1125 AliZDCReconstructor.cxx:1126 AliZDCReconstructor.cxx:1127 AliZDCReconstructor.cxx:1128 AliZDCReconstructor.cxx:1129 AliZDCReconstructor.cxx:1130 AliZDCReconstructor.cxx:1131 AliZDCReconstructor.cxx:1132 AliZDCReconstructor.cxx:1133 AliZDCReconstructor.cxx:1134 AliZDCReconstructor.cxx:1135 AliZDCReconstructor.cxx:1136 AliZDCReconstructor.cxx:1137 AliZDCReconstructor.cxx:1138 AliZDCReconstructor.cxx:1139 AliZDCReconstructor.cxx:1140 AliZDCReconstructor.cxx:1141 AliZDCReconstructor.cxx:1142 AliZDCReconstructor.cxx:1143 AliZDCReconstructor.cxx:1144 AliZDCReconstructor.cxx:1145 AliZDCReconstructor.cxx:1146 AliZDCReconstructor.cxx:1147 AliZDCReconstructor.cxx:1148 AliZDCReconstructor.cxx:1149 AliZDCReconstructor.cxx:1150 AliZDCReconstructor.cxx:1151 AliZDCReconstructor.cxx:1152 AliZDCReconstructor.cxx:1153 AliZDCReconstructor.cxx:1154 AliZDCReconstructor.cxx:1155 AliZDCReconstructor.cxx:1156 AliZDCReconstructor.cxx:1157 AliZDCReconstructor.cxx:1158 AliZDCReconstructor.cxx:1159 AliZDCReconstructor.cxx:1160 AliZDCReconstructor.cxx:1161 AliZDCReconstructor.cxx:1162 AliZDCReconstructor.cxx:1163 AliZDCReconstructor.cxx:1164 AliZDCReconstructor.cxx:1165 AliZDCReconstructor.cxx:1166 AliZDCReconstructor.cxx:1167 AliZDCReconstructor.cxx:1168 AliZDCReconstructor.cxx:1169 AliZDCReconstructor.cxx:1170 AliZDCReconstructor.cxx:1171 AliZDCReconstructor.cxx:1172 AliZDCReconstructor.cxx:1173 AliZDCReconstructor.cxx:1174 AliZDCReconstructor.cxx:1175 AliZDCReconstructor.cxx:1176 AliZDCReconstructor.cxx:1177 AliZDCReconstructor.cxx:1178 AliZDCReconstructor.cxx:1179 AliZDCReconstructor.cxx:1180 AliZDCReconstructor.cxx:1181 AliZDCReconstructor.cxx:1182 AliZDCReconstructor.cxx:1183 AliZDCReconstructor.cxx:1184 AliZDCReconstructor.cxx:1185 AliZDCReconstructor.cxx:1186 AliZDCReconstructor.cxx:1187 AliZDCReconstructor.cxx:1188 AliZDCReconstructor.cxx:1189 AliZDCReconstructor.cxx:1190 AliZDCReconstructor.cxx:1191 AliZDCReconstructor.cxx:1192 AliZDCReconstructor.cxx:1193 AliZDCReconstructor.cxx:1194 AliZDCReconstructor.cxx:1195 AliZDCReconstructor.cxx:1196 AliZDCReconstructor.cxx:1197 AliZDCReconstructor.cxx:1198 AliZDCReconstructor.cxx:1199 AliZDCReconstructor.cxx:1200 AliZDCReconstructor.cxx:1201 AliZDCReconstructor.cxx:1202 AliZDCReconstructor.cxx:1203 AliZDCReconstructor.cxx:1204 AliZDCReconstructor.cxx:1205 AliZDCReconstructor.cxx:1206 AliZDCReconstructor.cxx:1207 AliZDCReconstructor.cxx:1208 AliZDCReconstructor.cxx:1209 AliZDCReconstructor.cxx:1210 AliZDCReconstructor.cxx:1211 AliZDCReconstructor.cxx:1212 AliZDCReconstructor.cxx:1213 AliZDCReconstructor.cxx:1214 AliZDCReconstructor.cxx:1215 AliZDCReconstructor.cxx:1216 AliZDCReconstructor.cxx:1217 AliZDCReconstructor.cxx:1218 AliZDCReconstructor.cxx:1219 AliZDCReconstructor.cxx:1220 AliZDCReconstructor.cxx:1221 AliZDCReconstructor.cxx:1222 AliZDCReconstructor.cxx:1223 AliZDCReconstructor.cxx:1224 AliZDCReconstructor.cxx:1225 AliZDCReconstructor.cxx:1226 AliZDCReconstructor.cxx:1227 AliZDCReconstructor.cxx:1228 AliZDCReconstructor.cxx:1229 AliZDCReconstructor.cxx:1230 AliZDCReconstructor.cxx:1231 AliZDCReconstructor.cxx:1232 AliZDCReconstructor.cxx:1233 AliZDCReconstructor.cxx:1234 AliZDCReconstructor.cxx:1235 AliZDCReconstructor.cxx:1236 AliZDCReconstructor.cxx:1237 AliZDCReconstructor.cxx:1238 AliZDCReconstructor.cxx:1239 AliZDCReconstructor.cxx:1240 AliZDCReconstructor.cxx:1241 AliZDCReconstructor.cxx:1242 AliZDCReconstructor.cxx:1243 AliZDCReconstructor.cxx:1244 AliZDCReconstructor.cxx:1245 AliZDCReconstructor.cxx:1246 AliZDCReconstructor.cxx:1247 AliZDCReconstructor.cxx:1248 AliZDCReconstructor.cxx:1249 AliZDCReconstructor.cxx:1250 AliZDCReconstructor.cxx:1251 AliZDCReconstructor.cxx:1252 AliZDCReconstructor.cxx:1253 AliZDCReconstructor.cxx:1254 AliZDCReconstructor.cxx:1255 AliZDCReconstructor.cxx:1256 AliZDCReconstructor.cxx:1257 AliZDCReconstructor.cxx:1258 AliZDCReconstructor.cxx:1259 AliZDCReconstructor.cxx:1260 AliZDCReconstructor.cxx:1261 AliZDCReconstructor.cxx:1262 AliZDCReconstructor.cxx:1263 AliZDCReconstructor.cxx:1264 AliZDCReconstructor.cxx:1265 AliZDCReconstructor.cxx:1266 AliZDCReconstructor.cxx:1267 AliZDCReconstructor.cxx:1268 AliZDCReconstructor.cxx:1269 AliZDCReconstructor.cxx:1270 AliZDCReconstructor.cxx:1271 AliZDCReconstructor.cxx:1272 AliZDCReconstructor.cxx:1273 AliZDCReconstructor.cxx:1274 AliZDCReconstructor.cxx:1275 AliZDCReconstructor.cxx:1276 AliZDCReconstructor.cxx:1277 AliZDCReconstructor.cxx:1278 AliZDCReconstructor.cxx:1279 AliZDCReconstructor.cxx:1280 AliZDCReconstructor.cxx:1281 AliZDCReconstructor.cxx:1282 AliZDCReconstructor.cxx:1283 AliZDCReconstructor.cxx:1284 AliZDCReconstructor.cxx:1285 AliZDCReconstructor.cxx:1286 AliZDCReconstructor.cxx:1287 AliZDCReconstructor.cxx:1288 AliZDCReconstructor.cxx:1289 AliZDCReconstructor.cxx:1290 AliZDCReconstructor.cxx:1291 AliZDCReconstructor.cxx:1292 AliZDCReconstructor.cxx:1293 AliZDCReconstructor.cxx:1294 AliZDCReconstructor.cxx:1295 AliZDCReconstructor.cxx:1296 AliZDCReconstructor.cxx:1297 AliZDCReconstructor.cxx:1298 AliZDCReconstructor.cxx:1299 AliZDCReconstructor.cxx:1300 AliZDCReconstructor.cxx:1301 AliZDCReconstructor.cxx:1302 AliZDCReconstructor.cxx:1303 AliZDCReconstructor.cxx:1304 AliZDCReconstructor.cxx:1305 AliZDCReconstructor.cxx:1306 AliZDCReconstructor.cxx:1307 AliZDCReconstructor.cxx:1308 AliZDCReconstructor.cxx:1309 AliZDCReconstructor.cxx:1310 AliZDCReconstructor.cxx:1311 AliZDCReconstructor.cxx:1312 AliZDCReconstructor.cxx:1313 AliZDCReconstructor.cxx:1314 AliZDCReconstructor.cxx:1315 AliZDCReconstructor.cxx:1316 AliZDCReconstructor.cxx:1317 AliZDCReconstructor.cxx:1318 AliZDCReconstructor.cxx:1319 AliZDCReconstructor.cxx:1320 AliZDCReconstructor.cxx:1321 AliZDCReconstructor.cxx:1322 AliZDCReconstructor.cxx:1323 AliZDCReconstructor.cxx:1324 AliZDCReconstructor.cxx:1325 AliZDCReconstructor.cxx:1326 AliZDCReconstructor.cxx:1327 AliZDCReconstructor.cxx:1328 AliZDCReconstructor.cxx:1329 AliZDCReconstructor.cxx:1330 AliZDCReconstructor.cxx:1331 AliZDCReconstructor.cxx:1332 AliZDCReconstructor.cxx:1333 AliZDCReconstructor.cxx:1334 AliZDCReconstructor.cxx:1335 AliZDCReconstructor.cxx:1336 AliZDCReconstructor.cxx:1337 AliZDCReconstructor.cxx:1338 AliZDCReconstructor.cxx:1339 AliZDCReconstructor.cxx:1340 AliZDCReconstructor.cxx:1341 AliZDCReconstructor.cxx:1342 AliZDCReconstructor.cxx:1343 AliZDCReconstructor.cxx:1344 AliZDCReconstructor.cxx:1345 AliZDCReconstructor.cxx:1346 AliZDCReconstructor.cxx:1347 AliZDCReconstructor.cxx:1348 AliZDCReconstructor.cxx:1349 AliZDCReconstructor.cxx:1350 AliZDCReconstructor.cxx:1351 AliZDCReconstructor.cxx:1352 AliZDCReconstructor.cxx:1353 AliZDCReconstructor.cxx:1354 AliZDCReconstructor.cxx:1355 AliZDCReconstructor.cxx:1356 AliZDCReconstructor.cxx:1357 AliZDCReconstructor.cxx:1358 AliZDCReconstructor.cxx:1359 AliZDCReconstructor.cxx:1360 AliZDCReconstructor.cxx:1361 AliZDCReconstructor.cxx:1362 AliZDCReconstructor.cxx:1363 AliZDCReconstructor.cxx:1364 AliZDCReconstructor.cxx:1365 AliZDCReconstructor.cxx:1366 AliZDCReconstructor.cxx:1367 AliZDCReconstructor.cxx:1368 AliZDCReconstructor.cxx:1369 AliZDCReconstructor.cxx:1370 AliZDCReconstructor.cxx:1371 AliZDCReconstructor.cxx:1372 AliZDCReconstructor.cxx:1373 AliZDCReconstructor.cxx:1374 AliZDCReconstructor.cxx:1375 AliZDCReconstructor.cxx:1376 AliZDCReconstructor.cxx:1377 AliZDCReconstructor.cxx:1378 AliZDCReconstructor.cxx:1379 AliZDCReconstructor.cxx:1380 AliZDCReconstructor.cxx:1381 AliZDCReconstructor.cxx:1382 AliZDCReconstructor.cxx:1383 AliZDCReconstructor.cxx:1384 AliZDCReconstructor.cxx:1385 AliZDCReconstructor.cxx:1386 AliZDCReconstructor.cxx:1387 AliZDCReconstructor.cxx:1388 AliZDCReconstructor.cxx:1389 AliZDCReconstructor.cxx:1390 AliZDCReconstructor.cxx:1391 AliZDCReconstructor.cxx:1392 AliZDCReconstructor.cxx:1393 AliZDCReconstructor.cxx:1394 AliZDCReconstructor.cxx:1395 AliZDCReconstructor.cxx:1396 AliZDCReconstructor.cxx:1397 AliZDCReconstructor.cxx:1398 AliZDCReconstructor.cxx:1399 AliZDCReconstructor.cxx:1400 AliZDCReconstructor.cxx:1401 AliZDCReconstructor.cxx:1402 AliZDCReconstructor.cxx:1403 AliZDCReconstructor.cxx:1404 AliZDCReconstructor.cxx:1405 AliZDCReconstructor.cxx:1406 AliZDCReconstructor.cxx:1407 AliZDCReconstructor.cxx:1408 AliZDCReconstructor.cxx:1409 AliZDCReconstructor.cxx:1410 AliZDCReconstructor.cxx:1411 AliZDCReconstructor.cxx:1412 AliZDCReconstructor.cxx:1413 AliZDCReconstructor.cxx:1414 AliZDCReconstructor.cxx:1415 AliZDCReconstructor.cxx:1416 AliZDCReconstructor.cxx:1417 AliZDCReconstructor.cxx:1418 AliZDCReconstructor.cxx:1419 AliZDCReconstructor.cxx:1420 AliZDCReconstructor.cxx:1421 AliZDCReconstructor.cxx:1422 AliZDCReconstructor.cxx:1423 AliZDCReconstructor.cxx:1424 AliZDCReconstructor.cxx:1425 AliZDCReconstructor.cxx:1426 AliZDCReconstructor.cxx:1427 AliZDCReconstructor.cxx:1428 AliZDCReconstructor.cxx:1429 AliZDCReconstructor.cxx:1430 AliZDCReconstructor.cxx:1431 AliZDCReconstructor.cxx:1432 AliZDCReconstructor.cxx:1433 AliZDCReconstructor.cxx:1434 AliZDCReconstructor.cxx:1435 AliZDCReconstructor.cxx:1436 AliZDCReconstructor.cxx:1437 AliZDCReconstructor.cxx:1438 AliZDCReconstructor.cxx:1439 AliZDCReconstructor.cxx:1440 AliZDCReconstructor.cxx:1441 AliZDCReconstructor.cxx:1442 AliZDCReconstructor.cxx:1443 AliZDCReconstructor.cxx:1444 AliZDCReconstructor.cxx:1445 AliZDCReconstructor.cxx:1446 AliZDCReconstructor.cxx:1447 AliZDCReconstructor.cxx:1448 AliZDCReconstructor.cxx:1449 AliZDCReconstructor.cxx:1450 AliZDCReconstructor.cxx:1451 AliZDCReconstructor.cxx:1452 AliZDCReconstructor.cxx:1453 AliZDCReconstructor.cxx:1454 AliZDCReconstructor.cxx:1455 AliZDCReconstructor.cxx:1456 AliZDCReconstructor.cxx:1457 AliZDCReconstructor.cxx:1458 AliZDCReconstructor.cxx:1459 AliZDCReconstructor.cxx:1460 AliZDCReconstructor.cxx:1461 AliZDCReconstructor.cxx:1462 AliZDCReconstructor.cxx:1463 AliZDCReconstructor.cxx:1464 AliZDCReconstructor.cxx:1465 AliZDCReconstructor.cxx:1466 AliZDCReconstructor.cxx:1467 AliZDCReconstructor.cxx:1468 AliZDCReconstructor.cxx:1469 AliZDCReconstructor.cxx:1470 AliZDCReconstructor.cxx:1471 AliZDCReconstructor.cxx:1472 AliZDCReconstructor.cxx:1473 AliZDCReconstructor.cxx:1474 AliZDCReconstructor.cxx:1475 AliZDCReconstructor.cxx:1476 AliZDCReconstructor.cxx:1477 AliZDCReconstructor.cxx:1478 AliZDCReconstructor.cxx:1479 AliZDCReconstructor.cxx:1480 AliZDCReconstructor.cxx:1481 AliZDCReconstructor.cxx:1482 AliZDCReconstructor.cxx:1483 AliZDCReconstructor.cxx:1484 AliZDCReconstructor.cxx:1485 AliZDCReconstructor.cxx:1486 AliZDCReconstructor.cxx:1487 AliZDCReconstructor.cxx:1488 AliZDCReconstructor.cxx:1489 AliZDCReconstructor.cxx:1490 AliZDCReconstructor.cxx:1491 AliZDCReconstructor.cxx:1492 AliZDCReconstructor.cxx:1493 AliZDCReconstructor.cxx:1494 AliZDCReconstructor.cxx:1495 AliZDCReconstructor.cxx:1496 AliZDCReconstructor.cxx:1497 AliZDCReconstructor.cxx:1498 AliZDCReconstructor.cxx:1499 AliZDCReconstructor.cxx:1500 AliZDCReconstructor.cxx:1501 AliZDCReconstructor.cxx:1502 AliZDCReconstructor.cxx:1503 AliZDCReconstructor.cxx:1504 AliZDCReconstructor.cxx:1505 AliZDCReconstructor.cxx:1506 AliZDCReconstructor.cxx:1507 AliZDCReconstructor.cxx:1508 AliZDCReconstructor.cxx:1509 AliZDCReconstructor.cxx:1510 AliZDCReconstructor.cxx:1511 AliZDCReconstructor.cxx:1512 AliZDCReconstructor.cxx:1513 AliZDCReconstructor.cxx:1514 AliZDCReconstructor.cxx:1515 AliZDCReconstructor.cxx:1516 AliZDCReconstructor.cxx:1517 AliZDCReconstructor.cxx:1518 AliZDCReconstructor.cxx:1519 AliZDCReconstructor.cxx:1520 AliZDCReconstructor.cxx:1521 AliZDCReconstructor.cxx:1522 AliZDCReconstructor.cxx:1523 AliZDCReconstructor.cxx:1524 AliZDCReconstructor.cxx:1525 AliZDCReconstructor.cxx:1526 AliZDCReconstructor.cxx:1527 AliZDCReconstructor.cxx:1528 AliZDCReconstructor.cxx:1529 AliZDCReconstructor.cxx:1530 AliZDCReconstructor.cxx:1531 AliZDCReconstructor.cxx:1532 AliZDCReconstructor.cxx:1533 AliZDCReconstructor.cxx:1534 AliZDCReconstructor.cxx:1535 AliZDCReconstructor.cxx:1536 AliZDCReconstructor.cxx:1537 AliZDCReconstructor.cxx:1538 AliZDCReconstructor.cxx:1539 AliZDCReconstructor.cxx:1540 AliZDCReconstructor.cxx:1541 AliZDCReconstructor.cxx:1542 AliZDCReconstructor.cxx:1543 AliZDCReconstructor.cxx:1544 AliZDCReconstructor.cxx:1545 AliZDCReconstructor.cxx:1546 AliZDCReconstructor.cxx:1547 AliZDCReconstructor.cxx:1548 AliZDCReconstructor.cxx:1549 AliZDCReconstructor.cxx:1550 AliZDCReconstructor.cxx:1551 AliZDCReconstructor.cxx:1552 AliZDCReconstructor.cxx:1553 AliZDCReconstructor.cxx:1554 AliZDCReconstructor.cxx:1555 AliZDCReconstructor.cxx:1556 AliZDCReconstructor.cxx:1557