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 **************************************************************************/
17 //-------------------------------------------------------------------------
18 // Implementation of Class AliESDZDC
19 // This is a class that summarizes the ZDC data
21 // Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch
22 //-------------------------------------------------------------------------
26 #include "AliESDZDC.h"
30 //Float_t funCParCentr(const Int_t n) {return 1.8936-0.7126/(n + 0.7179);}
32 //______________________________________________________________________________
33 AliESDZDC::AliESDZDC() :
44 for(Int_t i=0; i<5; i++){
45 fZN1TowerEnergy[i] = fZN2TowerEnergy[i] = 0.;
46 fZP1TowerEnergy[i] = fZP2TowerEnergy[i] = 0.;
47 fZN1TowerEnergyLR[i] = fZN2TowerEnergyLR[i] = 0.;
48 fZP1TowerEnergyLR[i] = fZP2TowerEnergyLR[i] = 0.;
50 for(Int_t i=0; i<2; i++){
51 fZNACentrCoord[i] = fZNCCentrCoord[i] = 0.;
55 //______________________________________________________________________________
56 AliESDZDC::AliESDZDC(const AliESDZDC& zdc) :
58 fZDCN1Energy(zdc.fZDCN1Energy),
59 fZDCP1Energy(zdc.fZDCP1Energy),
60 fZDCN2Energy(zdc.fZDCN2Energy),
61 fZDCP2Energy(zdc.fZDCP2Energy),
62 fZDCEMEnergy(zdc.fZDCEMEnergy),
63 fZDCEMEnergy1(zdc.fZDCEMEnergy1),
64 fZDCParticipants(zdc.fZDCParticipants),
65 fZDCParticipants2(zdc.fZDCParticipants2)
68 for(Int_t i=0; i<5; i++){
69 fZN1TowerEnergy[i] = zdc.fZN1TowerEnergy[i];
70 fZN2TowerEnergy[i] = zdc.fZN2TowerEnergy[i];
71 fZP1TowerEnergy[i] = zdc.fZP1TowerEnergy[i];
72 fZP2TowerEnergy[i] = zdc.fZP2TowerEnergy[i];
73 fZN1TowerEnergyLR[i] = zdc.fZN1TowerEnergyLR[i];
74 fZN2TowerEnergyLR[i] = zdc.fZN2TowerEnergyLR[i];
75 fZP1TowerEnergyLR[i] = zdc.fZP1TowerEnergyLR[i];
76 fZP2TowerEnergyLR[i] = zdc.fZP2TowerEnergyLR[i];
78 for(Int_t i=0; i<2; i++){
79 fZNACentrCoord[i] = zdc.fZNACentrCoord[i];
80 fZNCCentrCoord[i] = zdc.fZNCCentrCoord[i];
84 //______________________________________________________________________________
85 AliESDZDC& AliESDZDC::operator=(const AliESDZDC&zdc)
89 TObject::operator=(zdc);
90 fZDCN1Energy = zdc.fZDCN1Energy;
91 fZDCP1Energy = zdc.fZDCP1Energy;
92 fZDCN2Energy = zdc.fZDCN2Energy;
93 fZDCP2Energy = zdc.fZDCP2Energy;
94 fZDCParticipants = zdc.fZDCParticipants;
95 fZDCParticipants2 = zdc.fZDCParticipants2;
96 fZDCEMEnergy = zdc.fZDCEMEnergy;
97 fZDCEMEnergy1 = zdc.fZDCEMEnergy1;
98 for(Int_t i=0; i<5; i++){
99 fZN1TowerEnergy[i] = zdc.fZN1TowerEnergy[i];
100 fZN2TowerEnergy[i] = zdc.fZN2TowerEnergy[i];
101 fZP1TowerEnergy[i] = zdc.fZP1TowerEnergy[i];
102 fZP2TowerEnergy[i] = zdc.fZP2TowerEnergy[i];
103 fZN1TowerEnergyLR[i] = zdc.fZN1TowerEnergyLR[i];
104 fZN2TowerEnergyLR[i] = zdc.fZN2TowerEnergyLR[i];
105 fZP1TowerEnergyLR[i] = zdc.fZP1TowerEnergyLR[i];
106 fZP2TowerEnergyLR[i] = zdc.fZP2TowerEnergyLR[i];
108 for(Int_t i=0; i<2; i++){
109 fZNACentrCoord[i] = zdc.fZNACentrCoord[i];
110 fZNCCentrCoord[i] = zdc.fZNCCentrCoord[i];
116 //______________________________________________________________________________
117 void AliESDZDC::Copy(TObject &obj) const {
119 // this overwrites the virtual TOBject::Copy()
120 // to allow run time copying without casting
123 if(this==&obj)return;
124 AliESDZDC *robj = dynamic_cast<AliESDZDC*>(&obj);
125 if(!robj)return; // not an AliESDZDC
131 //______________________________________________________________________________
132 void AliESDZDC::Reset()
134 // reset all data members
143 for(Int_t i=0; i<5; i++){
144 fZN1TowerEnergy[i] = fZN2TowerEnergy[i] = 0.;
145 fZP1TowerEnergy[i] = fZP2TowerEnergy[i] = 0.;
146 fZN1TowerEnergyLR[i] = fZN2TowerEnergyLR[i] = 0.;
147 fZP1TowerEnergyLR[i] = fZP2TowerEnergyLR[i] = 0.;
149 for(Int_t i=0; i<2; i++){
150 fZNACentrCoord[i] = fZNCCentrCoord[i] = 0.;
154 //______________________________________________________________________________
155 void AliESDZDC::Print(const Option_t *) const
157 // Print ESD for the ZDC
158 printf("\n \t ZN1Energy = %f TeV, ZP1Energy = %f TeV, ZN2Energy = %f TeV,"
159 " ZP2Energy = %f, Npart side C = %d, Npart side A = %d\n",
160 fZDCN1Energy,fZDCP1Energy,fZDCN2Energy,fZDCP2Energy,fZDCParticipants,fZDCParticipants2);
163 //______________________________________________________________________________
164 Double32_t * AliESDZDC::GetZNCCentroid()
166 // Provide coordinates of centroid over ZN (side C) front face
167 Float_t x[4] = {-1.75, 1.75, -1.75, 1.75};
168 Float_t y[4] = {-1.75, -1.72, 1.75, 1.75};
169 Float_t NumX=0., NumY=0., Den=0.;
170 Float_t alpha=0.395, w;
171 for(Int_t i=0; i<4; i++){
172 if(fZN1TowerEnergy[i+1]<0.) fZN1TowerEnergy[i+1]=0.;
173 w = TMath::Power(fZN1TowerEnergy[i+1], alpha);
179 fZNCCentrCoord[0] = 1.8665*NumX/Den;
180 fZNCCentrCoord[1] = 1.8665*NumY/Den;
182 return fZNCCentrCoord;
185 //______________________________________________________________________________
186 Double32_t * AliESDZDC::GetZNACentroid()
188 // Provide coordinates of centroid over ZN (side A) front face
189 Float_t x[4] = {-1.75, 1.75, -1.75, 1.75};
190 Float_t y[4] = {-1.75, -1.72, 1.75, 1.75};
191 Float_t NumX=0., NumY=0., Den=0.;
192 Float_t alpha=0.395, w;
193 for(Int_t i=0; i<4; i++){
194 if(fZN2TowerEnergy[i+1]<0.) fZN2TowerEnergy[i+1]=0.;
195 w = TMath::Power(fZN2TowerEnergy[i+1], alpha);
202 fZNACentrCoord[0] = 1.8665*NumX/Den;
203 fZNACentrCoord[1] = 1.8665*NumY/Den;
205 return fZNACentrCoord;