]>
Commit | Line | Data |
---|---|---|
d5ebf00e | 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 | ||
17 | //------------------------------------------------------------------------- | |
18 | // Implementation of Class AliESDZDC | |
19 | // This is a class that summarizes the ZDC data | |
20 | // for the ESD | |
21 | // Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch | |
22 | //------------------------------------------------------------------------- | |
23 | ||
24 | ||
25 | ||
26 | #include "AliESDZDC.h" | |
27 | ||
28 | ClassImp(AliESDZDC) | |
29 | ||
30 | //______________________________________________________________________________ | |
31 | AliESDZDC::AliESDZDC() : | |
32 | TObject(), | |
33 | fZDCN1Energy(0), | |
34 | fZDCP1Energy(0), | |
35 | fZDCN2Energy(0), | |
36 | fZDCP2Energy(0), | |
f6536de8 | 37 | fZDCEMEnergy(0), |
38 | fZDCEMEnergy1(0), | |
2b6cdc43 | 39 | fZDCParticipants(0), |
5f0ec064 | 40 | fZDCPartSideA(0), |
41 | fZDCPartSideC(0), | |
42 | fImpactParameter(0), | |
43 | fImpactParamSideA(0), | |
44 | fImpactParamSideC(0), | |
45 | fESDQuality(0) | |
d5ebf00e | 46 | { |
89291556 | 47 | for(Int_t i=0; i<5; i++){ |
a85132e7 | 48 | fZN1TowerEnergy[i] = fZN2TowerEnergy[i] = 0.; |
49 | fZP1TowerEnergy[i] = fZP2TowerEnergy[i] = 0.; | |
50 | fZN1TowerEnergyLR[i] = fZN2TowerEnergyLR[i] = 0.; | |
51 | fZP1TowerEnergyLR[i] = fZP2TowerEnergyLR[i] = 0.; | |
52 | } | |
89291556 | 53 | for(Int_t i=0; i<2; i++){ |
54 | fZNACentrCoord[i] = fZNCCentrCoord[i] = 0.; | |
55 | } | |
d5ebf00e | 56 | } |
57 | ||
2b6cdc43 | 58 | //______________________________________________________________________________ |
d5ebf00e | 59 | AliESDZDC::AliESDZDC(const AliESDZDC& zdc) : |
60 | TObject(zdc), | |
61 | fZDCN1Energy(zdc.fZDCN1Energy), | |
62 | fZDCP1Energy(zdc.fZDCP1Energy), | |
63 | fZDCN2Energy(zdc.fZDCN2Energy), | |
64 | fZDCP2Energy(zdc.fZDCP2Energy), | |
f6536de8 | 65 | fZDCEMEnergy(zdc.fZDCEMEnergy), |
66 | fZDCEMEnergy1(zdc.fZDCEMEnergy1), | |
2b6cdc43 | 67 | fZDCParticipants(zdc.fZDCParticipants), |
5f0ec064 | 68 | fZDCPartSideA(zdc.fZDCPartSideA), |
69 | fZDCPartSideC(zdc.fZDCPartSideC), | |
70 | fImpactParameter(zdc.fImpactParameter), | |
8c755c03 | 71 | fImpactParamSideA(zdc.fImpactParamSideA), |
72 | fImpactParamSideC(zdc.fImpactParamSideC), | |
5f0ec064 | 73 | fESDQuality(zdc.fESDQuality) |
d5ebf00e | 74 | { |
75 | // copy constructor | |
89291556 | 76 | for(Int_t i=0; i<5; i++){ |
a85132e7 | 77 | fZN1TowerEnergy[i] = zdc.fZN1TowerEnergy[i]; |
78 | fZN2TowerEnergy[i] = zdc.fZN2TowerEnergy[i]; | |
79 | fZP1TowerEnergy[i] = zdc.fZP1TowerEnergy[i]; | |
80 | fZP2TowerEnergy[i] = zdc.fZP2TowerEnergy[i]; | |
81 | fZN1TowerEnergyLR[i] = zdc.fZN1TowerEnergyLR[i]; | |
82 | fZN2TowerEnergyLR[i] = zdc.fZN2TowerEnergyLR[i]; | |
83 | fZP1TowerEnergyLR[i] = zdc.fZP1TowerEnergyLR[i]; | |
84 | fZP2TowerEnergyLR[i] = zdc.fZP2TowerEnergyLR[i]; | |
85 | } | |
89291556 | 86 | for(Int_t i=0; i<2; i++){ |
87 | fZNACentrCoord[i] = zdc.fZNACentrCoord[i]; | |
88 | fZNCCentrCoord[i] = zdc.fZNCCentrCoord[i]; | |
89 | } | |
d5ebf00e | 90 | } |
91 | ||
2b6cdc43 | 92 | //______________________________________________________________________________ |
d5ebf00e | 93 | AliESDZDC& AliESDZDC::operator=(const AliESDZDC&zdc) |
94 | { | |
95 | // assigment operator | |
96 | if(this!=&zdc) { | |
97 | TObject::operator=(zdc); | |
98 | fZDCN1Energy = zdc.fZDCN1Energy; | |
99 | fZDCP1Energy = zdc.fZDCP1Energy; | |
100 | fZDCN2Energy = zdc.fZDCN2Energy; | |
101 | fZDCP2Energy = zdc.fZDCP2Energy; | |
f6536de8 | 102 | fZDCEMEnergy = zdc.fZDCEMEnergy; |
103 | fZDCEMEnergy1 = zdc.fZDCEMEnergy1; | |
a85132e7 | 104 | for(Int_t i=0; i<5; i++){ |
7b4458a2 | 105 | fZN1TowerEnergy[i] = zdc.fZN1TowerEnergy[i]; |
106 | fZN2TowerEnergy[i] = zdc.fZN2TowerEnergy[i]; | |
a85132e7 | 107 | fZP1TowerEnergy[i] = zdc.fZP1TowerEnergy[i]; |
108 | fZP2TowerEnergy[i] = zdc.fZP2TowerEnergy[i]; | |
109 | fZN1TowerEnergyLR[i] = zdc.fZN1TowerEnergyLR[i]; | |
110 | fZN2TowerEnergyLR[i] = zdc.fZN2TowerEnergyLR[i]; | |
111 | fZP1TowerEnergyLR[i] = zdc.fZP1TowerEnergyLR[i]; | |
112 | fZP2TowerEnergyLR[i] = zdc.fZP2TowerEnergyLR[i]; | |
7b4458a2 | 113 | } |
5f0ec064 | 114 | // |
115 | fZDCParticipants = zdc.fZDCParticipants; | |
116 | fZDCPartSideA = zdc.fZDCPartSideA; | |
117 | fZDCPartSideC = zdc.fZDCPartSideC; | |
118 | fImpactParameter = zdc.fImpactParameter; | |
119 | fImpactParamSideA = zdc.fImpactParamSideA; | |
120 | fImpactParamSideC = zdc.fImpactParamSideC; | |
121 | // | |
89291556 | 122 | for(Int_t i=0; i<2; i++){ |
123 | fZNACentrCoord[i] = zdc.fZNACentrCoord[i]; | |
124 | fZNCCentrCoord[i] = zdc.fZNCCentrCoord[i]; | |
125 | } | |
5f0ec064 | 126 | // |
127 | fESDQuality = zdc.fESDQuality; | |
d5ebf00e | 128 | } |
129 | return *this; | |
130 | } | |
131 | ||
2b6cdc43 | 132 | //______________________________________________________________________________ |
732a24fe | 133 | void AliESDZDC::Copy(TObject &obj) const { |
134 | ||
135 | // this overwrites the virtual TOBject::Copy() | |
136 | // to allow run time copying without casting | |
137 | // in AliESDEvent | |
138 | ||
139 | if(this==&obj)return; | |
140 | AliESDZDC *robj = dynamic_cast<AliESDZDC*>(&obj); | |
141 | if(!robj)return; // not an AliESDZDC | |
142 | *robj = *this; | |
143 | ||
144 | } | |
145 | ||
d5ebf00e | 146 | |
147 | //______________________________________________________________________________ | |
148 | void AliESDZDC::Reset() | |
149 | { | |
150 | // reset all data members | |
151 | fZDCN1Energy=0; | |
152 | fZDCP1Energy=0; | |
153 | fZDCN2Energy=0; | |
154 | fZDCP2Energy=0; | |
f6536de8 | 155 | fZDCEMEnergy=0; |
156 | fZDCEMEnergy1=0; | |
89291556 | 157 | for(Int_t i=0; i<5; i++){ |
a85132e7 | 158 | fZN1TowerEnergy[i] = fZN2TowerEnergy[i] = 0.; |
159 | fZP1TowerEnergy[i] = fZP2TowerEnergy[i] = 0.; | |
160 | fZN1TowerEnergyLR[i] = fZN2TowerEnergyLR[i] = 0.; | |
161 | fZP1TowerEnergyLR[i] = fZP2TowerEnergyLR[i] = 0.; | |
162 | } | |
5f0ec064 | 163 | fZDCParticipants=0; |
164 | fZDCPartSideA=0; | |
165 | fZDCPartSideC=0; | |
166 | fImpactParameter=0; | |
167 | fImpactParamSideA=0; | |
168 | fImpactParamSideC=0; | |
89291556 | 169 | for(Int_t i=0; i<2; i++){ |
170 | fZNACentrCoord[i] = fZNCCentrCoord[i] = 0.; | |
171 | } | |
5f0ec064 | 172 | fESDQuality=0; |
d5ebf00e | 173 | } |
174 | ||
175 | //______________________________________________________________________________ | |
176 | void AliESDZDC::Print(const Option_t *) const | |
177 | { | |
a85132e7 | 178 | // Print ESD for the ZDC |
5f0ec064 | 179 | printf("\n \t E_{ZNC} = %f TeV, E_{ZPC} = %f TeV, E_{ZNA} = %f TeV, E_{ZPA} = %f TeV," |
180 | " E_{ZEM} = %f GeV, Npart = %d, b = %1.2f fm\n", | |
181 | fZDCN1Energy/1000.,fZDCP1Energy/1000.,fZDCN2Energy/1000.,fZDCP2Energy/1000., | |
182 | fZDCEMEnergy+fZDCEMEnergy1, fZDCParticipants,fImpactParameter); | |
d5ebf00e | 183 | } |
184 | ||
d1d3e36b | 185 | //______________________________________________________________________________ |
2b6cdc43 | 186 | Double32_t * AliESDZDC::GetZNCCentroid() |
d1d3e36b | 187 | { |
188 | // Provide coordinates of centroid over ZN (side C) front face | |
d1d3e36b | 189 | Float_t x[4] = {-1.75, 1.75, -1.75, 1.75}; |
5f0ec064 | 190 | Float_t y[4] = {-1.75, -1.75, 1.75, 1.75}; |
48486c12 | 191 | Float_t numX=0., numY=0., den=0.; |
5f0ec064 | 192 | Float_t c, alpha=0.395, w; |
5f0ec064 | 193 | // |
2b6cdc43 | 194 | for(Int_t i=0; i<4; i++){ |
3f7d0b78 | 195 | if(fZN1TowerEnergy[i+1]<0.) fZN1TowerEnergy[i+1]=0.; |
2b6cdc43 | 196 | w = TMath::Power(fZN1TowerEnergy[i+1], alpha); |
48486c12 | 197 | numX += x[i]*w; |
198 | numY += y[i]*w; | |
199 | den += w; | |
d1d3e36b | 200 | } |
48486c12 | 201 | if(den!=0){ |
5f0ec064 | 202 | // ATTENTION! Needs to be changed if E_beam(A-A) != 2.76 A TeV !!!! |
e955aeff | 203 | Float_t nSpecn = fZDCN1Energy/2760.; |
204 | c = 1.89358-0.71262/(nSpecn+0.71789); | |
5f0ec064 | 205 | fZNCCentrCoord[0] = c*numX/den; |
206 | fZNCCentrCoord[1] = c*numY/den; | |
d1d3e36b | 207 | } |
89291556 | 208 | return fZNCCentrCoord; |
d1d3e36b | 209 | } |
7b4458a2 | 210 | |
d1d3e36b | 211 | //______________________________________________________________________________ |
2b6cdc43 | 212 | Double32_t * AliESDZDC::GetZNACentroid() |
d1d3e36b | 213 | { |
214 | // Provide coordinates of centroid over ZN (side A) front face | |
d1d3e36b | 215 | Float_t x[4] = {-1.75, 1.75, -1.75, 1.75}; |
5f0ec064 | 216 | Float_t y[4] = {-1.75, -1.75, 1.75, 1.75}; |
48486c12 | 217 | Float_t numX=0., numY=0., den=0.; |
5f0ec064 | 218 | Float_t c, alpha=0.395, w; |
e955aeff | 219 | |
2b6cdc43 | 220 | for(Int_t i=0; i<4; i++){ |
e955aeff | 221 | if(fZN2TowerEnergy[i+1]<0.) fZN2TowerEnergy[i+1]=0.; |
222 | w = TMath::Power(fZN2TowerEnergy[i+1], alpha); | |
223 | numX += x[i]*w; | |
224 | numY += y[i]*w; | |
225 | den += w; | |
d1d3e36b | 226 | } |
ce099621 | 227 | // |
48486c12 | 228 | if(den!=0){ |
5f0ec064 | 229 | // ATTENTION! Needs to be changed if E_beam(A-A) != 2.76 A TeV !!!! |
e955aeff | 230 | Float_t nSpecn = fZDCN2Energy/2760.; |
231 | c = 1.89358-0.71262/(nSpecn+0.71789); | |
5f0ec064 | 232 | fZNACentrCoord[0] = c*numX/den; |
233 | fZNACentrCoord[1] = c*numY/den; | |
ce099621 | 234 | } |
89291556 | 235 | return fZNACentrCoord; |
d1d3e36b | 236 | } |