1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *;
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
18 ////////////////////////////////////////////////
19 // RecPoints classes for set ZDC //
20 // This class reconstructs the space //
21 // points from digits //
22 // for the ZDC calorimeter //
23 ////////////////////////////////////////////////
26 #include "AliZDCReco.h"
31 //_____________________________________________________________________________
32 AliZDCReco::AliZDCReco() :
53 // Default constructor
55 for(Int_t i=0; i<10; i++){
56 fZN1EnTow[i] = fZP1EnTow[i] = fZN2EnTow[i] = fZP2EnTow[i] = 0.;
58 fZN1Energy[i] = fZP1Energy[i] = fZN2Energy[i] = fZP2Energy[i] = 0.;
59 fZEM1signal[i] = fZEM2signal[i] = 0.;
60 fPMRef1[i] = fPMRef2[i] = 0.;
64 for(Int_t i=0; i<32; i++){
66 for(Int_t ij=0; ij<4; ij++) fZDCTDCData[i][ij] = 0;
71 //_____________________________________________________________________________
72 AliZDCReco::AliZDCReco(
73 Float_t* ezn1, Float_t* ezp1, Float_t* ezn2, Float_t* ezp2,
74 Float_t* ezn1tow, Float_t* ezp1tow, Float_t* ezn2tow, Float_t* ezp2tow,
75 Float_t* ezem1, Float_t* ezem2, Float_t* ref1, Float_t* ref2,
77 Int_t detspnSideA, Int_t detsppSideA, Int_t detspnSideC, Int_t detsppSideC,
78 Int_t trsp, Int_t trspSideA,Int_t trspSideC,
79 Int_t npart, Int_t npartSideA, Int_t npartSideC,
80 Float_t b, Float_t bSideA, Float_t bSideC,
81 UInt_t recoFlag, Bool_t scalerOn, UInt_t* scaler, Int_t tdcData[32][4]) :
85 fNDetSpecNSideA(detspnSideA),
86 fNDetSpecPSideA(detsppSideA),
87 fNDetSpecNSideC(detspnSideC),
88 fNDetSpecPSideC(detsppSideC),
89 fNTrueSpectators(trsp),
90 fNTrueSpecSideA(trspSideA),
91 fNTrueSpecSideC(trspSideC),
92 fNParticipants(npart),
93 fNPartSideA(npartSideA),
94 fNPartSideC(npartSideC),
104 for(Int_t j=0; j<10; j++){
105 fZN1EnTow[j] = ezn1tow[j];
106 fZP1EnTow[j] = ezp1tow[j];
107 fZN2EnTow[j] = ezn2tow[j];
108 fZP2EnTow[j] = ezp2tow[j];
110 fZN1Energy[j] = ezn1[j];
111 fZP1Energy[j] = ezp1[j];
112 fZN2Energy[j] = ezn2[j];
113 fZP2Energy[j] = ezp2[j];
114 fZEM1signal[j] = ezem1[j];
115 fZEM2signal[j] = ezem2[j];
116 fPMRef1[j] = ref1[j];
117 fPMRef2[j] = ref2[j];
120 for(Int_t j=0; j<32; j++){
121 fZDCScaler[j] = scaler[j];
122 for(Int_t y=0; y<4; y++) fZDCTDCData[j][y] = tdcData[j][y];
126 //______________________________________________________________________________
127 AliZDCReco::AliZDCReco(const AliZDCReco &oldreco) :
129 fNDetSpecNSideA(oldreco.GetNDetSpecNSideA()),
130 fNDetSpecPSideA(oldreco.GetNDetSpecPSideA()),
131 fNDetSpecNSideC(oldreco.GetNDetSpecNSideC()),
132 fNDetSpecPSideC(oldreco.GetNDetSpecPSideC()),
133 fNTrueSpectators(oldreco.GetNTrueSpectators()),
134 fNTrueSpecSideA(oldreco.GetNTrueSpecSideA()),
135 fNTrueSpecSideC(oldreco.GetNTrueSpecSideC()),
136 fNParticipants(oldreco.GetNParticipants()),
137 fNPartSideA(oldreco.GetNPartSideA()),
138 fNPartSideC(oldreco.GetNPartSideC()),
139 fImpParameter(oldreco.GetImpParameter()),
140 fImpParSideA(oldreco.GetImpParSideA()),
141 fImpParSideC(oldreco.GetImpParSideC()),
142 fRecoFlag(oldreco.GetRecoFlag()),
143 fIsScalerOn(oldreco.IsScalerOn())
147 fZN1Energy[0] = oldreco.GetZN1HREnergy();
148 fZP1Energy[0] = oldreco.GetZP1HREnergy();
149 fZN2Energy[0] = oldreco.GetZN2HREnergy();
150 fZP2Energy[0] = oldreco.GetZP2HREnergy();
152 fZN1Energy[1] = oldreco.GetZN1LREnergy();
153 fZP1Energy[1] = oldreco.GetZP1LREnergy();
154 fZN2Energy[1] = oldreco.GetZN2LREnergy();
155 fZP2Energy[1] = oldreco.GetZP2LREnergy();
157 for(Int_t i=0; i<5; i++){
158 fZN1EnTow[i] = oldreco.GetZN1HREnTow(i);
159 fZP1EnTow[i] = oldreco.GetZP1HREnTow(i);
160 fZN2EnTow[i] = oldreco.GetZN2HREnTow(i);
161 fZP2EnTow[i] = oldreco.GetZP2HREnTow(i);
162 fZN1EnTow[i+5] = oldreco.GetZN1LREnTow(i);
163 fZP1EnTow[i+5] = oldreco.GetZP1LREnTow(i);
164 fZN2EnTow[i+5] = oldreco.GetZN2LREnTow(i);
165 fZP2EnTow[i+5] = oldreco.GetZP2LREnTow(i);
167 fZEM1signal[0] = oldreco.GetZEM1HRsignal();
168 fZEM1signal[1] = oldreco.GetZEM1LRsignal();
169 fZEM2signal[0] = oldreco.GetZEM2HRsignal();
170 fZEM2signal[1] = oldreco.GetZEM2LRsignal();
171 fPMRef1[0] = oldreco.GetPMRef1HRsignal();
172 fPMRef1[1] = oldreco.GetPMRef1LRsignal();
173 fPMRef2[0] = oldreco.GetPMRef2HRsignal();
174 fPMRef2[1] = oldreco.GetPMRef2LRsignal();
175 for(Int_t j=0; j<32; j++){
176 fZDCScaler[j] = oldreco.GetZDCScaler(j);
177 for(Int_t y=0; y<4; y++) fZDCTDCData[j][y] = oldreco.GetZDCTDCData(j, y);
181 //______________________________________________________________________________
182 void AliZDCReco::Print(Option_t *) const {
184 // Printing Reconstruction Parameters
186 printf(" ****************** AliZDCReco object ******************\n"
187 " --------------- side A ---------------\n"
188 " E_ZN = %1.2f TeV, E_ZP = %1.2f TeV, "
189 " E_ZEM1 = %1.2f TeV, E_ZEM2 = %1.2f TeV\n "
190 " N_spec_n = %d, N_spec_p = %d,"
191 " N_part = %d, b = %1.4f fm\n"
192 " --------------- side C ---------------\n"
193 " E_ZN = %1.2f TeV, E_ZP = %1.2f TeV, "
194 " N_spec_n = %d, N_spec_p = %d,"
195 " N_part = %d, b = %1.4f fm\n"
196 " *******************************************************\n",
197 fZN2Energy[0]/1000., fZP2Energy[0]/1000.,
198 fZEM1signal[0]/1000.,fZEM2signal[0]/1000.,
199 fNDetSpecNSideA,fNDetSpecPSideA, fNPartSideA,fImpParSideA,
200 fZN1Energy[0]/1000.,fZP1Energy[0]/1000.,
201 fNDetSpecNSideC,fNDetSpecPSideC,fNPartSideC,fImpParSideC);