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.;
66 //_____________________________________________________________________________
67 AliZDCReco::AliZDCReco(
68 Float_t* ezn1, Float_t* ezp1, Float_t* ezn2, Float_t* ezp2,
69 Float_t* ezn1tow, Float_t* ezp1tow, Float_t* ezn2tow, Float_t* ezp2tow,
70 Float_t* ezem1, Float_t* ezem2, Float_t* ref1, Float_t* ref2,
72 Int_t detspnSideA, Int_t detsppSideA, Int_t detspnSideC, Int_t detsppSideC,
73 Int_t trsp, Int_t trspSideA,Int_t trspSideC,
74 Int_t npart, Int_t npartSideA, Int_t npartSideC,
75 Float_t b, Float_t bSideA, Float_t bSideC,
80 fNDetSpecNSideA(detspnSideA),
81 fNDetSpecPSideA(detsppSideA),
82 fNDetSpecNSideC(detspnSideC),
83 fNDetSpecPSideC(detsppSideC),
84 fNTrueSpectators(trsp),
85 fNTrueSpecSideA(trspSideA),
86 fNTrueSpecSideC(trspSideC),
87 fNParticipants(npart),
88 fNPartSideA(npartSideA),
89 fNPartSideC(npartSideC),
99 for(Int_t j=0; j<10; j++){
100 fZN1EnTow[j] = ezn1tow[j];
101 fZP1EnTow[j] = ezp1tow[j];
102 fZN2EnTow[j] = ezn2tow[j];
103 fZP2EnTow[j] = ezp2tow[j];
105 fZN1Energy[j] = ezn1[j];
106 fZP1Energy[j] = ezp1[j];
107 fZN2Energy[j] = ezn2[j];
108 fZP2Energy[j] = ezp2[j];
109 fZEM1signal[j] = ezem1[j];
110 fZEM2signal[j] = ezem2[j];
111 fPMRef1[j] = ref1[j];
112 fPMRef2[j] = ref2[j];
118 //______________________________________________________________________________
119 AliZDCReco::AliZDCReco(const AliZDCReco &oldreco) :
121 fNDetSpecNSideA(oldreco.GetNDetSpecNSideA()),
122 fNDetSpecPSideA(oldreco.GetNDetSpecPSideA()),
123 fNDetSpecNSideC(oldreco.GetNDetSpecNSideC()),
124 fNDetSpecPSideC(oldreco.GetNDetSpecPSideC()),
125 fNTrueSpectators(oldreco.GetNTrueSpectators()),
126 fNTrueSpecSideA(oldreco.GetNTrueSpecSideA()),
127 fNTrueSpecSideC(oldreco.GetNTrueSpecSideC()),
128 fNParticipants(oldreco.GetNParticipants()),
129 fNPartSideA(oldreco.GetNPartSideA()),
130 fNPartSideC(oldreco.GetNPartSideC()),
131 fImpParameter(oldreco.GetImpParameter()),
132 fImpParSideA(oldreco.GetImpParSideA()),
133 fImpParSideC(oldreco.GetImpParSideC()),
134 fRecoFlag(oldreco.GetRecoFlag())
138 fZN1Energy[0] = oldreco.GetZN1HREnergy();
139 fZP1Energy[0] = oldreco.GetZP1HREnergy();
140 fZN2Energy[0] = oldreco.GetZN2HREnergy();
141 fZP2Energy[0] = oldreco.GetZP2HREnergy();
143 fZN1Energy[1] = oldreco.GetZN1LREnergy();
144 fZP1Energy[1] = oldreco.GetZP1LREnergy();
145 fZN2Energy[1] = oldreco.GetZN2LREnergy();
146 fZP2Energy[1] = oldreco.GetZP2LREnergy();
148 for(Int_t i=0; i<5; i++){
149 fZN1EnTow[i] = oldreco.GetZN1HREnTow(i);
150 fZP1EnTow[i] = oldreco.GetZP1HREnTow(i);
151 fZN2EnTow[i] = oldreco.GetZN2HREnTow(i);
152 fZP2EnTow[i] = oldreco.GetZP2HREnTow(i);
153 fZN1EnTow[i+5] = oldreco.GetZN1LREnTow(i);
154 fZP1EnTow[i+5] = oldreco.GetZP1LREnTow(i);
155 fZN2EnTow[i+5] = oldreco.GetZN2LREnTow(i);
156 fZP2EnTow[i+5] = oldreco.GetZP2LREnTow(i);
158 fZEM1signal[0] = oldreco.GetZEM1HRsignal();
159 fZEM1signal[1] = oldreco.GetZEM1LRsignal();
160 fZEM2signal[0] = oldreco.GetZEM2HRsignal();
161 fZEM2signal[1] = oldreco.GetZEM2LRsignal();
162 fPMRef1[0] = oldreco.GetPMRef1HRsignal();
163 fPMRef1[1] = oldreco.GetPMRef1LRsignal();
164 fPMRef2[0] = oldreco.GetPMRef2HRsignal();
165 fPMRef2[1] = oldreco.GetPMRef2LRsignal();
168 //______________________________________________________________________________
169 void AliZDCReco::Print(Option_t *) const {
171 // Printing Reconstruction Parameters
173 printf(" ****************** AliZDCReco object ******************\n"
174 " --------------- side A ---------------\n"
175 " E_{ZN} = %f TeV, E_{ZP} = %f TeV, "
176 " E_{ZEM1} = %f TeV, E_{ZEM2} = %f TeV\n "
177 " N_{spec n}^{DET} = %d, N_{spec p}^{DET} = %d,"
178 " N_{part} = %d, b = %1.4f fm\n"
179 " --------------- side C ---------------\n"
180 " E_{ZN} = %f TeV, E_{ZP} = %f TeV\n "
181 " N_{spec n}^{DET} = %d, N_{spec p}^{DET} = %d,"
182 " N_{part} = %d, b = %1.4f fm\n"
183 " *******************************************************\n",
184 fZN2Energy[0]/1000., fZP2Energy[0]/1000.,
185 fZEM1signal[0]/1000.,fZEM2signal[0]/1000.,
186 fNDetSpecNSideA,fNDetSpecPSideA, fNPartSideA,fImpParSideA,
187 fZN1Energy[0]/1000.,fZP1Energy[0]/1000.,
188 fNDetSpecNSideC,fNDetSpecPSideC,fNPartSideC,fImpParSideC);