Correct array size
[u/mrichter/AliRoot.git] / ZDC / AliZDCReco.cxx
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
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 **************************************************************************/
15
16/* $Id$ */
17
18////////////////////////////////////////////////
19// RecPoints classes for set ZDC //
20// This class reconstructs the space //
21// points from digits //
22// for the ZDC calorimeter //
23////////////////////////////////////////////////
24
25
26#include "AliZDCReco.h"
27
28ClassImp(AliZDCReco)
29
30
31//_____________________________________________________________________________
32AliZDCReco::AliZDCReco() :
33
34 TObject(),
35 //
36 fNDetSpecNSideA(0),
37 fNDetSpecPSideA(0),
38 fNDetSpecNSideC(0),
39 fNDetSpecPSideC(0),
40 fNTrueSpectators(0),
41 fNTrueSpecSideA(0),
42 fNTrueSpecSideC(0),
43 fNParticipants(0),
44 fNPartSideA(0),
45 fNPartSideC(0),
46 fImpParameter(0),
47 fImpParSideA(0),
48 fImpParSideC(0),
49 fRecoFlag(0x0),
50 fIsScalerOn(kFALSE)
51{
52 //
53 // Default constructor
54 //
55 for(Int_t i=0; i<10; i++){
56 fZN1EnTow[i] = fZP1EnTow[i] = fZN2EnTow[i] = fZP2EnTow[i] = 0.;
57 if(i<2){
58 fZN1Energy[i] = fZP1Energy[i] = fZN2Energy[i] = fZP2Energy[i] = 0.;
59 fZEM1signal[i] = fZEM2signal[i] = 0.;
60 fPMRef1[i] = fPMRef2[i] = 0.;
61 }
62 }
63
64 for(Int_t i=0; i<32; i++) fZDCScaler[i]=0;
65}
66
67
68//_____________________________________________________________________________
69AliZDCReco::AliZDCReco(
70 Float_t* ezn1, Float_t* ezp1, Float_t* ezn2, Float_t* ezp2,
71 Float_t* ezn1tow, Float_t* ezp1tow, Float_t* ezn2tow, Float_t* ezp2tow,
72 Float_t* ezem1, Float_t* ezem2, Float_t* ref1, Float_t* ref2,
73 //
74 Int_t detspnSideA, Int_t detsppSideA, Int_t detspnSideC, Int_t detsppSideC,
75 Int_t trsp, Int_t trspSideA,Int_t trspSideC,
76 Int_t npart, Int_t npartSideA, Int_t npartSideC,
77 Float_t b, Float_t bSideA, Float_t bSideC,
78 UInt_t recoFlag, Bool_t scalerOn, UInt_t* scaler) :
79
80 TObject(),
81 //
82 fNDetSpecNSideA(detspnSideA),
83 fNDetSpecPSideA(detsppSideA),
84 fNDetSpecNSideC(detspnSideC),
85 fNDetSpecPSideC(detsppSideC),
86 fNTrueSpectators(trsp),
87 fNTrueSpecSideA(trspSideA),
88 fNTrueSpecSideC(trspSideC),
89 fNParticipants(npart),
90 fNPartSideA(npartSideA),
91 fNPartSideC(npartSideC),
92 fImpParameter(b),
93 fImpParSideA(bSideA),
94 fImpParSideC(bSideC),
95 fRecoFlag(recoFlag),
96 fIsScalerOn(scalerOn)
97{
98 //
99 // Constructor
100 //
101 for(Int_t j=0; j<10; j++){
102 fZN1EnTow[j] = ezn1tow[j];
103 fZP1EnTow[j] = ezp1tow[j];
104 fZN2EnTow[j] = ezn2tow[j];
105 fZP2EnTow[j] = ezp2tow[j];
106 if(j<2){
107 fZN1Energy[j] = ezn1[j];
108 fZP1Energy[j] = ezp1[j];
109 fZN2Energy[j] = ezn2[j];
110 fZP2Energy[j] = ezp2[j];
111 fZEM1signal[j] = ezem1[j];
112 fZEM2signal[j] = ezem2[j];
113 fPMRef1[j] = ref1[j];
114 fPMRef2[j] = ref2[j];
115 }
116 }
117 for(Int_t j=0; j<32; j++) fZDCScaler[j] = scaler[j];
118
119}
120
121//______________________________________________________________________________
122AliZDCReco::AliZDCReco(const AliZDCReco &oldreco) :
123TObject(),
124fNDetSpecNSideA(oldreco.GetNDetSpecNSideA()),
125fNDetSpecPSideA(oldreco.GetNDetSpecPSideA()),
126fNDetSpecNSideC(oldreco.GetNDetSpecNSideC()),
127fNDetSpecPSideC(oldreco.GetNDetSpecPSideC()),
128fNTrueSpectators(oldreco.GetNTrueSpectators()),
129fNTrueSpecSideA(oldreco.GetNTrueSpecSideA()),
130fNTrueSpecSideC(oldreco.GetNTrueSpecSideC()),
131fNParticipants(oldreco.GetNParticipants()),
132fNPartSideA(oldreco.GetNPartSideA()),
133fNPartSideC(oldreco.GetNPartSideC()),
134fImpParameter(oldreco.GetImpParameter()),
135fImpParSideA(oldreco.GetImpParSideA()),
136fImpParSideC(oldreco.GetImpParSideC()),
137fRecoFlag(oldreco.GetRecoFlag()),
138fIsScalerOn(oldreco.IsScalerOn())
139{
140 // Copy constructor
141
142 fZN1Energy[0] = oldreco.GetZN1HREnergy();
143 fZP1Energy[0] = oldreco.GetZP1HREnergy();
144 fZN2Energy[0] = oldreco.GetZN2HREnergy();
145 fZP2Energy[0] = oldreco.GetZP2HREnergy();
146 //
147 fZN1Energy[1] = oldreco.GetZN1LREnergy();
148 fZP1Energy[1] = oldreco.GetZP1LREnergy();
149 fZN2Energy[1] = oldreco.GetZN2LREnergy();
150 fZP2Energy[1] = oldreco.GetZP2LREnergy();
151 //
152 for(Int_t i=0; i<5; i++){
153 fZN1EnTow[i] = oldreco.GetZN1HREnTow(i);
154 fZP1EnTow[i] = oldreco.GetZP1HREnTow(i);
155 fZN2EnTow[i] = oldreco.GetZN2HREnTow(i);
156 fZP2EnTow[i] = oldreco.GetZP2HREnTow(i);
157 fZN1EnTow[i+5] = oldreco.GetZN1LREnTow(i);
158 fZP1EnTow[i+5] = oldreco.GetZP1LREnTow(i);
159 fZN2EnTow[i+5] = oldreco.GetZN2LREnTow(i);
160 fZP2EnTow[i+5] = oldreco.GetZP2LREnTow(i);
161 }
162 fZEM1signal[0] = oldreco.GetZEM1HRsignal();
163 fZEM1signal[1] = oldreco.GetZEM1LRsignal();
164 fZEM2signal[0] = oldreco.GetZEM2HRsignal();
165 fZEM2signal[1] = oldreco.GetZEM2LRsignal();
166 fPMRef1[0] = oldreco.GetPMRef1HRsignal();
167 fPMRef1[1] = oldreco.GetPMRef1LRsignal();
168 fPMRef2[0] = oldreco.GetPMRef2HRsignal();
169 fPMRef2[1] = oldreco.GetPMRef2LRsignal();
170 for(Int_t j=0; j<32; j++) fZDCScaler[j] = oldreco.GetZDCScaler(j);
171}
172
173//______________________________________________________________________________
174void AliZDCReco::Print(Option_t *) const {
175 //
176 // Printing Reconstruction Parameters
177 //
178 printf(" ****************** AliZDCReco object ******************\n"
179 " --------------- side A ---------------\n"
180 " E_{ZN} = %f TeV, E_{ZP} = %f TeV, "
181 " E_{ZEM1} = %f TeV, E_{ZEM2} = %f TeV\n "
182 " N_{spec n}^{DET} = %d, N_{spec p}^{DET} = %d,"
183 " N_{part} = %d, b = %1.4f fm\n"
184 " --------------- side C ---------------\n"
185 " E_{ZN} = %f TeV, E_{ZP} = %f TeV\n "
186 " N_{spec n}^{DET} = %d, N_{spec p}^{DET} = %d,"
187 " N_{part} = %d, b = %1.4f fm\n"
188 " *******************************************************\n",
189 fZN2Energy[0]/1000., fZP2Energy[0]/1000.,
190 fZEM1signal[0]/1000.,fZEM2signal[0]/1000.,
191 fNDetSpecNSideA,fNDetSpecPSideA, fNPartSideA,fImpParSideA,
192 fZN1Energy[0]/1000.,fZP1Energy[0]/1000.,
193 fNDetSpecNSideC,fNDetSpecPSideC,fNPartSideC,fImpParSideC);
194
195}