Correct array size
[u/mrichter/AliRoot.git] / ZDC / AliZDCReco.cxx
CommitLineData
1450a7cd 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
803d1ab0 16/* $Id$ */
1450a7cd 17
18////////////////////////////////////////////////
19// RecPoints classes for set ZDC //
93f80a6f 20// This class reconstructs the space //
21// points from digits //
22// for the ZDC calorimeter //
1450a7cd 23////////////////////////////////////////////////
24
25
26#include "AliZDCReco.h"
27
28ClassImp(AliZDCReco)
29
cc2abffd 30
31//_____________________________________________________________________________
32AliZDCReco::AliZDCReco() :
33
34 TObject(),
646f1679 35 //
73bc3a3f 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),
1e319f71 48 fImpParSideC(0),
81f09162 49 fRecoFlag(0x0),
50 fIsScalerOn(kFALSE)
cc2abffd 51{
52 //
53 // Default constructor
54 //
c35ed519 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 }
84d6255e 62 }
81f09162 63
64 for(Int_t i=0; i<32; i++) fZDCScaler[i]=0;
cc2abffd 65}
66
67
1450a7cd 68//_____________________________________________________________________________
73bc3a3f 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,
1e319f71 77 Float_t b, Float_t bSideA, Float_t bSideC,
81f09162 78 UInt_t recoFlag, Bool_t scalerOn, UInt_t* scaler) :
cc2abffd 79
80 TObject(),
646f1679 81 //
73bc3a3f 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),
1e319f71 94 fImpParSideC(bSideC),
81f09162 95 fRecoFlag(recoFlag),
96 fIsScalerOn(scalerOn)
1450a7cd 97{
93f80a6f 98 //
cc2abffd 99 // Constructor
93f80a6f 100 //
c35ed519 101 for(Int_t j=0; j<10; j++){
646f1679 102 fZN1EnTow[j] = ezn1tow[j];
103 fZP1EnTow[j] = ezp1tow[j];
104 fZN2EnTow[j] = ezn2tow[j];
105 fZP2EnTow[j] = ezp2tow[j];
c35ed519 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 }
646f1679 116 }
81f09162 117 for(Int_t j=0; j<32; j++) fZDCScaler[j] = scaler[j];
1450a7cd 118
119}
93f80a6f 120
121//______________________________________________________________________________
cc2abffd 122AliZDCReco::AliZDCReco(const AliZDCReco &oldreco) :
a718c993 123TObject(),
73bc3a3f 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()),
1e319f71 136fImpParSideC(oldreco.GetImpParSideC()),
81f09162 137fRecoFlag(oldreco.GetRecoFlag()),
138fIsScalerOn(oldreco.IsScalerOn())
cc2abffd 139{
140 // Copy constructor
141
c35ed519 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();
646f1679 151 //
152 for(Int_t i=0; i<5; i++){
c35ed519 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);
646f1679 161 }
c35ed519 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();
81f09162 170 for(Int_t j=0; j<32; j++) fZDCScaler[j] = oldreco.GetZDCScaler(j);
cc2abffd 171}
172
173//______________________________________________________________________________
93f80a6f 174void AliZDCReco::Print(Option_t *) const {
175 //
176 // Printing Reconstruction Parameters
177 //
73bc3a3f 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",
4e1fc320 189 fZN2Energy[0]/1000., fZP2Energy[0]/1000.,
73bc3a3f 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
93f80a6f 195}