fVMEScaler[i]=0;
for(Int_t y=0; y<4; y++){
fZDCTDCData[i][y]=0.;
- fZNCTime[y]=0.;
- fZNATime[y]=0.;
+ fZDCTDCCorrected[i][y]=0.;
}
}
}
fVMEScaler[i] = zdc.fVMEScaler[i];
for(Int_t y=0; y<4; y++){
fZDCTDCData[i][y] = zdc.fZDCTDCData[i][y];
- fZNCTime[y] = zdc.fZNCTime[y];
- fZNATime[y] = zdc.fZNATime[y];
+ fZDCTDCCorrected[i][y] = zdc.fZDCTDCCorrected[i][y];
}
}
}
fVMEScaler[i] = zdc.fVMEScaler[i];
for(Int_t y=0; y<4; y++){
fZDCTDCData[i][y] = zdc.fZDCTDCData[i][y];
- fZNCTime[y] = zdc.fZNCTime[y];
- fZNATime[y] = zdc.fZNATime[y];
+ fZDCTDCCorrected[i][y] = zdc.fZDCTDCCorrected[i][y];
}
}
}
fVMEScaler[i] = 0;
for(Int_t y=0; y<4; y++){
fZDCTDCData[i][y] = 0.;
- fZNCTime[y] = 0.;
- fZNATime[y] = 0.;
+ fZDCTDCCorrected[i][y] = 0.;
}
}
}
printf(" ### TDCData (!=0): \n");
for(Int_t i=0; i<32; i++){
for(Int_t j=0; j<4; j++)
- if(fZDCTDCData[i][j]!=0) printf("\t %d \n",fZDCTDCData[i][j]);
+ if(fZDCTDCCorrected[i][j]!=0) printf("\t %1.0f \n",fZDCTDCCorrected[i][j]);
}
printf("\n");
}
class AliESDZDC: public TObject {
public:
+
+ enum {
+ kCorrectedTDCFilled = BIT(14)
+ };
+
AliESDZDC();
AliESDZDC(const AliESDZDC& zdc);
AliESDZDC& operator=(const AliESDZDC& zdc);
Bool_t GetZNCentroidInPbPb(Float_t beamEne, Double_t centrZNC[2], Double_t centrZNA[2]);
Bool_t GetZNCentroidInpp(Double_t centrZNC[2], Double_t centrZNA[2]);
//
+
+ UInt_t GetZDCScaler(Int_t i) const {return fVMEScaler[i];}
+ const UInt_t* GetZDCScaler() const {return fVMEScaler;}
+
+ Int_t GetZDCTDCData(Int_t i, Int_t j) const {return fZDCTDCData[i][j];}
+ Float_t GetZDCTDCCorrected(Int_t i, Int_t j) const {return fZDCTDCCorrected[i][j];}
+ Float_t GetZNTDCSum(Int_t ihit) const
+ {if(ihit<4) return (Float_t) (fZDCTDCCorrected[10][ihit]+fZDCTDCCorrected[12][ihit]);
+ else return 0.;}
+ Float_t GetZNTDCDiff(Int_t ihit) const
+ {if(ihit<4) return (Float_t) (fZDCTDCCorrected[12][ihit]-fZDCTDCCorrected[10][ihit]);
+ else return 0.;}
+
void SetZDC(Double_t n1Energy, Double_t p1Energy,
Double_t emEnergy0, Double_t emEnergy1,
Double_t n2Energy, Double_t p2Energy,
{for(Int_t i=0; i<2; i++) fZNACentrCoord[i] = centrCoord[i];}
void SetZNCCentroid(const Float_t centrCoord[2])
{for(Int_t i=0; i<2; i++) fZNCCentrCoord[i] = centrCoord[i];}
-
- UInt_t GetZDCScaler(Int_t i) const {return fVMEScaler[i];}
- const UInt_t* GetZDCScaler() const {return fVMEScaler;}
-
- Float_t GetZDCTDCData(Int_t i, Int_t j) const {return fZDCTDCData[i][j];}
void SetZDCScaler(const UInt_t count[32])
{for(Int_t k=0; k<32; k++) fVMEScaler[k] = count[k];}
- void SetZDCTDC(const Float_t values[32][4])
+ void SetZDCTDCData(const Int_t values[32][4])
{for(Int_t k=0; k<32; k++)
for(Int_t j=0; j<4; j++) fZDCTDCData[k][j] = values[k][j];}
-
- void SetZNCTime(const Float_t val[4]) {for(int k=0; k<4; k++) fZNCTime[k] = val[k];}
- void SetZNATime(const Float_t val[4]) {for(int k=0; k<4; k++) fZNATime[k] = val[k];}
+
+ void SetZDCTDCCorrected(const Float_t values[32][4])
+ {for(Int_t k=0; k<32; k++)
+ for(Int_t j=0; j<4; j++) fZDCTDCCorrected[k][j] = values[k][j];}
void Reset();
void Print(const Option_t *opt=0) const;
Double32_t fZNCCentrCoord[2]; // Coordinates of the centroid over ZNA
UInt_t fESDQuality; // flags from reconstruction
UInt_t fVMEScaler[32]; // counts from VME scaler
- Float_t fZDCTDCData[32][4];// ZDC TDC data
- Float_t fZNCTime[4]; // ZNC corrected TDC data
- Float_t fZNATime[4]; // ZNA corrected TDC data
-
- ClassDef(AliESDZDC,15)
+ Int_t fZDCTDCData[32][4]; // ZDC TDC data
+ Float_t fZDCTDCCorrected[32][4];// ZDC TDC data in ns corrected 4 phase shift
+
+ ClassDef(AliESDZDC,16)
};
#endif
for(Int_t i=0; i<32; i++){
fZDCScaler[i] = 0;
- for(Int_t ij=0; ij<4; ij++) fZDCTDCData[i][ij] = 0.;
+ for(Int_t ij=0; ij<4; ij++) fZDCTDCData[i][ij] = 0;
}
}
Int_t trsp, Int_t trspSideA,Int_t trspSideC,
Int_t npart, Int_t npartSideA, Int_t npartSideC,
Float_t b, Float_t bSideA, Float_t bSideC,
- UInt_t recoFlag, Bool_t scalerOn, UInt_t* scaler, Float_t tdcData[32][4]) :
+ UInt_t recoFlag, Bool_t scalerOn, UInt_t* scaler, Int_t tdcData[32][4]) :
TObject(),
//
Int_t trsp, Int_t trspSideA, Int_t trspSideC,
Int_t npart, Int_t npartSideA, Int_t npartSideC,
Float_t b, Float_t bSideA, Float_t bSideC,
- UInt_t recoFlag, Bool_t scalerOn, UInt_t* scaler, Float_t tdcData[32][4]);
+ UInt_t recoFlag, Bool_t scalerOn, UInt_t* scaler, Int_t tdcData[32][4]);
AliZDCReco(const AliZDCReco &oldreco);
virtual ~AliZDCReco() {}
virtual Bool_t IsScalerOn() const {return fIsScalerOn;}
virtual UInt_t GetZDCScaler(Int_t k) const {return fZDCScaler[k];}
//
- virtual Float_t GetZDCTDCData(Int_t j, Int_t k) const {return fZDCTDCData[j][k];}
+ virtual Int_t GetZDCTDCData(Int_t j, Int_t k) const {return fZDCTDCData[j][k];}
// Print method
virtual void Print(Option_t *) const;
Bool_t fIsScalerOn; // True if scaler has been read in the event
UInt_t fZDCScaler[32]; // Counts from ZDC VME scaler
//
- Float_t fZDCTDCData[32][4]; // TDC data
+ Int_t fZDCTDCData[32][4]; // TDC data raw
- ClassDef(AliZDCReco,11) // RecPoints for the Zero Degree Calorimeters
+ ClassDef(AliZDCReco,12) // RecPoints for the Zero Degree Calorimeters
};
#endif
}//digits loop
UInt_t counts[32];
- Float_t tdc[32][4];
+ 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.;
+ for(Int_t ii=0; ii<4; ii++) tdc[jj][ii]=0;
}
Int_t evQualityBlock[4] = {1,0,0,0};
Bool_t isScalerOn=kFALSE;
Int_t jsc=0, itdc=0, iprevtdc=-1, ihittdc=0;
UInt_t scalerData[32];
- Float_t tdcData[32][4];
+ 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.;
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,
- Float_t tdcData[32][4], const Int_t* const evQualityBlock,
+ Int_t tdcData[32][4], const Int_t* const evQualityBlock,
const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const
{
// ****************** Reconstruct one event ******************
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,
- Float_t tdcData[32][4], const Int_t* const evQualityBlock,
+ Int_t tdcData[32][4], const Int_t* const evQualityBlock,
const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const
{
// ****************** Reconstruct one event ******************
}
// Writing TDC data into ZDC ESDs
- Float_t tdcValues[32][4];
- Float_t zncTime[4]={0.,0.,0.,0.}, znaTime[4]={0.,0.,0.,0.};
+ Int_t tdcValues[32][4];
+ Float_t tdcCorrected[32][4];
for(Int_t jk=0; jk<32; jk++){
- Int_t indc=0, inda=0;
for(Int_t lk=0; lk<4; lk++){
- tdcValues[jk][lk] = 0.025*reco.GetZDCTDCData(jk, lk);
- if((jk==10) && (tdcValues[jk][lk]!=0)){
- zncTime[indc] = tdcValues[jk][lk]-tdcValues[14][0]+fMeanPhase;
- indc++;
- }
- else if((jk==12) && (tdcValues[jk][lk]!=0)){
- znaTime[inda] = tdcValues[jk][lk]-tdcValues[14][0]+fMeanPhase;
- inda++;
- }
+ tdcValues[jk][lk] = reco.GetZDCTDCData(jk, lk);
}
}
- fESDZDC->SetZDCTDC(tdcValues);
-
- fESDZDC->SetZNCTime(zncTime);
- fESDZDC->SetZNATime(znaTime);
+ for(Int_t jk=0; jk<32; jk++){
+ for(Int_t lk=0; lk<4; lk++){
+ if(tdcValues[jk][lk]!=0.) tdcCorrected[jk][lk] = 0.025*(tdcValues[jk][lk]-tdcValues[14][0])+fMeanPhase;
+ }
+ }
+ fESDZDC->SetZDCTDCData(tdcValues);
+ fESDZDC->SetZDCTDCCorrected(tdcCorrected);
+ fESDZDC->AliESDZDC::SetBit(AliESDZDC::kCorrectedTDCFilled, kTRUE);
if(esd) esd->SetZDCData(fESDZDC);
}
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,
- Float_t tdcData[32][4], const Int_t* const evQualityBlock,
+ Int_t tdcData[32][4], const Int_t* const evQualityBlock,
const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const;
void 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,
- Float_t tdcData[32][4], const Int_t* const evQualityBlock,
+ Int_t tdcData[32][4], const Int_t* const evQualityBlock,
const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const;
static AliZDCRecoParam *fgRecoParam; // reconstruction parameters