ClassImp(AliZDCReco)
+
//_____________________________________________________________________________
-AliZDCReco::AliZDCReco(Float_t ezn, Float_t ezp, Float_t ezdc, Float_t ezem,
- Int_t detspn, Int_t detspp, Int_t trspn, Int_t trspp, Int_t trsp, Int_t part, Float_t b)
+AliZDCReco::AliZDCReco() :
+
+ TObject(),
+ //
+ fNDetSpecNSideA(0),
+ fNDetSpecPSideA(0),
+ fNDetSpecNSideC(0),
+ fNDetSpecPSideC(0),
+ fNTrueSpectators(0),
+ fNTrueSpecSideA(0),
+ fNTrueSpecSideC(0),
+ fNParticipants(0),
+ fNPartSideA(0),
+ fNPartSideC(0),
+ fImpParameter(0),
+ fImpParSideA(0),
+ fImpParSideC(0),
+ fRecoFlag(0x0),
+ fEnergyFlag(kFALSE),
+ fIsScalerOn(kFALSE)
{
//
- // Standard constructor
- //
- fZNenergy = ezn;
- fZPenergy = ezp;
- fZDCenergy = ezdc;
- fZEMenergy = ezem;
- fNDetSpecN = detspn;
- fNDetSpecP = detspp;
- fNTrueSpecN = trspn;
- fNTrueSpecP = trspp;
- fNTrueSpec = trsp;
- fNPart = part;
- fImpPar = b;
+ // Default constructor
+ //
+ for(Int_t i=0; i<10; i++){
+ fZN1EnTow[i] = fZP1EnTow[i] = fZN2EnTow[i] = fZP2EnTow[i] = 0.;
+ if(i<2){
+ fZN1Energy[i] = fZP1Energy[i] = fZN2Energy[i] = fZP2Energy[i] = 0.;
+ fZEM1signal[i] = fZEM2signal[i] = 0.;
+ fPMRef1[i] = fPMRef2[i] = 0.;
+ }
+ }
+
+ for(Int_t i=0; i<32; i++){
+ fZDCScaler[i] = 0;
+ for(Int_t ij=0; ij<4; ij++) fZDCTDCData[i][ij] = 0;
+ }
+}
+
+
+//_____________________________________________________________________________
+AliZDCReco::AliZDCReco(
+ Float_t* ezn1, Float_t* ezp1, Float_t* ezn2, Float_t* ezp2,
+ Float_t* ezn1tow, Float_t* ezp1tow, Float_t* ezn2tow, Float_t* ezp2tow,
+ Float_t* ezem1, Float_t* ezem2, Float_t* ref1, Float_t* ref2,
+ //
+ Int_t detspnSideA, Int_t detsppSideA, Int_t detspnSideC, Int_t detsppSideC,
+ 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 energyFlag, Bool_t scalerOn,
+ UInt_t* scaler, Int_t tdcData[32][4]) :
+
+ TObject(),
+ //
+ fNDetSpecNSideA(detspnSideA),
+ fNDetSpecPSideA(detsppSideA),
+ fNDetSpecNSideC(detspnSideC),
+ fNDetSpecPSideC(detsppSideC),
+ fNTrueSpectators(trsp),
+ fNTrueSpecSideA(trspSideA),
+ fNTrueSpecSideC(trspSideC),
+ fNParticipants(npart),
+ fNPartSideA(npartSideA),
+ fNPartSideC(npartSideC),
+ fImpParameter(b),
+ fImpParSideA(bSideA),
+ fImpParSideC(bSideC),
+ fRecoFlag(recoFlag),
+ fEnergyFlag(energyFlag),
+ fIsScalerOn(scalerOn)
+{
+ //
+ // Constructor
+ //
+ for(Int_t j=0; j<10; j++){
+ fZN1EnTow[j] = ezn1tow[j];
+ fZP1EnTow[j] = ezp1tow[j];
+ fZN2EnTow[j] = ezn2tow[j];
+ fZP2EnTow[j] = ezp2tow[j];
+ if(j<2){
+ fZN1Energy[j] = ezn1[j];
+ fZP1Energy[j] = ezp1[j];
+ fZN2Energy[j] = ezn2[j];
+ fZP2Energy[j] = ezp2[j];
+ fZEM1signal[j] = ezem1[j];
+ fZEM2signal[j] = ezem2[j];
+ fPMRef1[j] = ref1[j];
+ fPMRef2[j] = ref2[j];
+ }
+ }
+ for(Int_t j=0; j<32; j++){
+ fZDCScaler[j] = scaler[j];
+ for(Int_t y=0; y<4; y++) fZDCTDCData[j][y] = tdcData[j][y];
+ }
+}
+
+//______________________________________________________________________________
+AliZDCReco::AliZDCReco(const AliZDCReco &oldreco) :
+TObject(),
+fNDetSpecNSideA(oldreco.GetNDetSpecNSideA()),
+fNDetSpecPSideA(oldreco.GetNDetSpecPSideA()),
+fNDetSpecNSideC(oldreco.GetNDetSpecNSideC()),
+fNDetSpecPSideC(oldreco.GetNDetSpecPSideC()),
+fNTrueSpectators(oldreco.GetNTrueSpectators()),
+fNTrueSpecSideA(oldreco.GetNTrueSpecSideA()),
+fNTrueSpecSideC(oldreco.GetNTrueSpecSideC()),
+fNParticipants(oldreco.GetNParticipants()),
+fNPartSideA(oldreco.GetNPartSideA()),
+fNPartSideC(oldreco.GetNPartSideC()),
+fImpParameter(oldreco.GetImpParameter()),
+fImpParSideA(oldreco.GetImpParSideA()),
+fImpParSideC(oldreco.GetImpParSideC()),
+fRecoFlag(oldreco.GetRecoFlag()),
+fEnergyFlag(oldreco.GetEnergyFlag()),
+fIsScalerOn(oldreco.IsScalerOn())
+{
+ // Copy constructor
+
+ fZN1Energy[0] = oldreco.GetZN1HREnergy();
+ fZP1Energy[0] = oldreco.GetZP1HREnergy();
+ fZN2Energy[0] = oldreco.GetZN2HREnergy();
+ fZP2Energy[0] = oldreco.GetZP2HREnergy();
+ //
+ fZN1Energy[1] = oldreco.GetZN1LREnergy();
+ fZP1Energy[1] = oldreco.GetZP1LREnergy();
+ fZN2Energy[1] = oldreco.GetZN2LREnergy();
+ fZP2Energy[1] = oldreco.GetZP2LREnergy();
+ //
+ for(Int_t i=0; i<5; i++){
+ fZN1EnTow[i] = oldreco.GetZN1HREnTow(i);
+ fZP1EnTow[i] = oldreco.GetZP1HREnTow(i);
+ fZN2EnTow[i] = oldreco.GetZN2HREnTow(i);
+ fZP2EnTow[i] = oldreco.GetZP2HREnTow(i);
+ fZN1EnTow[i+5] = oldreco.GetZN1LREnTow(i);
+ fZP1EnTow[i+5] = oldreco.GetZP1LREnTow(i);
+ fZN2EnTow[i+5] = oldreco.GetZN2LREnTow(i);
+ fZP2EnTow[i+5] = oldreco.GetZP2LREnTow(i);
+ }
+ fZEM1signal[0] = oldreco.GetZEM1HRsignal();
+ fZEM1signal[1] = oldreco.GetZEM1LRsignal();
+ fZEM2signal[0] = oldreco.GetZEM2HRsignal();
+ fZEM2signal[1] = oldreco.GetZEM2LRsignal();
+ fPMRef1[0] = oldreco.GetPMRef1HRsignal();
+ fPMRef1[1] = oldreco.GetPMRef1LRsignal();
+ fPMRef2[0] = oldreco.GetPMRef2HRsignal();
+ fPMRef2[1] = oldreco.GetPMRef2LRsignal();
+ for(Int_t j=0; j<32; j++){
+ fZDCScaler[j] = oldreco.GetZDCScaler(j);
+ for(Int_t y=0; y<4; y++) fZDCTDCData[j][y] = oldreco.GetZDCTDCData(j, y);
+ }
+}
+
+
+//______________________________________________________________________________
+AliZDCReco &AliZDCReco::operator= (const AliZDCReco &reco)
+{
+ // assignment operator
+ if(&reco == this) return *this;
+
+ fNDetSpecNSideA = reco.GetNDetSpecNSideA();
+ fNDetSpecPSideA = reco.GetNDetSpecPSideA();
+ fNDetSpecNSideC = reco.GetNDetSpecNSideC();
+ fNDetSpecPSideC = reco.GetNDetSpecPSideC();
+ fNTrueSpectators = reco.GetNTrueSpectators();
+ fNTrueSpecSideA = reco.GetNTrueSpecSideA();
+ fNTrueSpecSideC = reco.GetNTrueSpecSideC();
+ fNParticipants = reco.GetNParticipants();
+ fNPartSideA = reco.GetNPartSideA();
+ fNPartSideC = reco.GetNPartSideC();
+ fImpParameter = reco.GetImpParameter();
+ fImpParSideA = reco.GetImpParSideA();
+ fImpParSideC = reco.GetImpParSideC();
+ fRecoFlag = reco.GetRecoFlag();
+ fEnergyFlag = reco.GetEnergyFlag();
+ fIsScalerOn = reco.IsScalerOn();
+
+ fZN1Energy[0] = reco.GetZN1HREnergy();
+ fZP1Energy[0] = reco.GetZP1HREnergy();
+ fZN2Energy[0] = reco.GetZN2HREnergy();
+ fZP2Energy[0] = reco.GetZP2HREnergy();
+ //
+ fZN1Energy[1] = reco.GetZN1LREnergy();
+ fZP1Energy[1] = reco.GetZP1LREnergy();
+ fZN2Energy[1] = reco.GetZN2LREnergy();
+ fZP2Energy[1] = reco.GetZP2LREnergy();
+ //
+ for(Int_t i=0; i<5; i++){
+ fZN1EnTow[i] = reco.GetZN1HREnTow(i);
+ fZP1EnTow[i] = reco.GetZP1HREnTow(i);
+ fZN2EnTow[i] = reco.GetZN2HREnTow(i);
+ fZP2EnTow[i] = reco.GetZP2HREnTow(i);
+ fZN1EnTow[i+5] = reco.GetZN1LREnTow(i);
+ fZP1EnTow[i+5] = reco.GetZP1LREnTow(i);
+ fZN2EnTow[i+5] = reco.GetZN2LREnTow(i);
+ fZP2EnTow[i+5] = reco.GetZP2LREnTow(i);
+ }
+ fZEM1signal[0] = reco.GetZEM1HRsignal();
+ fZEM1signal[1] = reco.GetZEM1LRsignal();
+ fZEM2signal[0] = reco.GetZEM2HRsignal();
+ fZEM2signal[1] = reco.GetZEM2LRsignal();
+ fPMRef1[0] = reco.GetPMRef1HRsignal();
+ fPMRef1[1] = reco.GetPMRef1LRsignal();
+ fPMRef2[0] = reco.GetPMRef2HRsignal();
+ fPMRef2[1] = reco.GetPMRef2LRsignal();
+ for(Int_t j=0; j<32; j++){
+ fZDCScaler[j] = reco.GetZDCScaler(j);
+ for(Int_t y=0; y<4; y++) fZDCTDCData[j][y] = reco.GetZDCTDCData(j, y);
+ }
+
+ return *this;
}
//______________________________________________________________________________
//
// Printing Reconstruction Parameters
//
- printf(" --- Reconstruction -> EZN = %f TeV, EZP = %f TeV, EZDC = %f TeV,"
- " EZEM = %f GeV \n NDetSpecN = %d, NDetSpecP = %d, Nspecn = %d,"
- " Nspecp = %d, Npart = %d, b = %f fm.\n ",
- fZNenergy,fZPenergy,fZDCenergy,fZEMenergy,fNDetSpecN,fNDetSpecP,
- fNTrueSpecN,fNTrueSpecP,fNPart,fImpPar);
+ printf(" ****************** AliZDCReco object ******************\n"
+ " --------------- side A ---------------\n"
+ " E_ZN = %1.2f TeV, E_ZP = %1.2f TeV, "
+ " E_ZEM1 = %1.2f TeV, E_ZEM2 = %1.2f TeV\n "
+ " N_spec_n = %d, N_spec_p = %d,"
+ " N_part = %d, b = %1.4f fm\n"
+ " --------------- side C ---------------\n"
+ " E_ZN = %1.2f TeV, E_ZP = %1.2f TeV, "
+ " N_spec_n = %d, N_spec_p = %d,"
+ " N_part = %d, b = %1.4f fm\n"
+ " *******************************************************\n",
+ fZN2Energy[0]/1000., fZP2Energy[0]/1000.,
+ fZEM1signal[0]/1000.,fZEM2signal[0]/1000.,
+ fNDetSpecNSideA,fNDetSpecPSideA, fNPartSideA,fImpParSideA,
+ fZN1Energy[0]/1000.,fZP1Energy[0]/1000.,
+ fNDetSpecNSideC,fNDetSpecPSideC,fNPartSideC,fImpParSideC);
+
}