]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliESDZDC.cxx
reading geometry during Init
[u/mrichter/AliRoot.git] / STEER / AliESDZDC.cxx
CommitLineData
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
28ClassImp(AliESDZDC)
29
d1d3e36b 30float fCParCentr(const int n) {return 1.8936-0.7126/(n + 0.7179);}
31
d5ebf00e 32//______________________________________________________________________________
33AliESDZDC::AliESDZDC() :
34 TObject(),
35 fZDCN1Energy(0),
36 fZDCP1Energy(0),
37 fZDCN2Energy(0),
38 fZDCP2Energy(0),
f6536de8 39 fZDCEMEnergy(0),
40 fZDCEMEnergy1(0),
d5ebf00e 41 fZDCParticipants(0)
42{
a85132e7 43 for(int i=0; i<5; i++){
44 fZN1TowerEnergy[i] = fZN2TowerEnergy[i] = 0.;
45 fZP1TowerEnergy[i] = fZP2TowerEnergy[i] = 0.;
46 fZN1TowerEnergyLR[i] = fZN2TowerEnergyLR[i] = 0.;
47 fZP1TowerEnergyLR[i] = fZP2TowerEnergyLR[i] = 0.;
48 }
d5ebf00e 49}
50
51AliESDZDC::AliESDZDC(const AliESDZDC& zdc) :
52 TObject(zdc),
53 fZDCN1Energy(zdc.fZDCN1Energy),
54 fZDCP1Energy(zdc.fZDCP1Energy),
55 fZDCN2Energy(zdc.fZDCN2Energy),
56 fZDCP2Energy(zdc.fZDCP2Energy),
f6536de8 57 fZDCEMEnergy(zdc.fZDCEMEnergy),
58 fZDCEMEnergy1(zdc.fZDCEMEnergy1),
d5ebf00e 59 fZDCParticipants(zdc.fZDCParticipants)
60{
61 // copy constructor
a85132e7 62 for(int i=0; i<5; i++){
63 fZN1TowerEnergy[i] = zdc.fZN1TowerEnergy[i];
64 fZN2TowerEnergy[i] = zdc.fZN2TowerEnergy[i];
65 fZP1TowerEnergy[i] = zdc.fZP1TowerEnergy[i];
66 fZP2TowerEnergy[i] = zdc.fZP2TowerEnergy[i];
67 fZN1TowerEnergyLR[i] = zdc.fZN1TowerEnergyLR[i];
68 fZN2TowerEnergyLR[i] = zdc.fZN2TowerEnergyLR[i];
69 fZP1TowerEnergyLR[i] = zdc.fZP1TowerEnergyLR[i];
70 fZP2TowerEnergyLR[i] = zdc.fZP2TowerEnergyLR[i];
71 }
d5ebf00e 72}
73
74AliESDZDC& AliESDZDC::operator=(const AliESDZDC&zdc)
75{
76 // assigment operator
77 if(this!=&zdc) {
78 TObject::operator=(zdc);
79 fZDCN1Energy = zdc.fZDCN1Energy;
80 fZDCP1Energy = zdc.fZDCP1Energy;
81 fZDCN2Energy = zdc.fZDCN2Energy;
82 fZDCP2Energy = zdc.fZDCP2Energy;
d5ebf00e 83 fZDCParticipants = zdc.fZDCParticipants;
f6536de8 84 fZDCEMEnergy = zdc.fZDCEMEnergy;
85 fZDCEMEnergy1 = zdc.fZDCEMEnergy1;
a85132e7 86 for(Int_t i=0; i<5; i++){
7b4458a2 87 fZN1TowerEnergy[i] = zdc.fZN1TowerEnergy[i];
88 fZN2TowerEnergy[i] = zdc.fZN2TowerEnergy[i];
a85132e7 89 fZP1TowerEnergy[i] = zdc.fZP1TowerEnergy[i];
90 fZP2TowerEnergy[i] = zdc.fZP2TowerEnergy[i];
91 fZN1TowerEnergyLR[i] = zdc.fZN1TowerEnergyLR[i];
92 fZN2TowerEnergyLR[i] = zdc.fZN2TowerEnergyLR[i];
93 fZP1TowerEnergyLR[i] = zdc.fZP1TowerEnergyLR[i];
94 fZP2TowerEnergyLR[i] = zdc.fZP2TowerEnergyLR[i];
7b4458a2 95 }
d5ebf00e 96 }
97 return *this;
98}
99
100
101//______________________________________________________________________________
102void AliESDZDC::Reset()
103{
104 // reset all data members
105 fZDCN1Energy=0;
106 fZDCP1Energy=0;
107 fZDCN2Energy=0;
108 fZDCP2Energy=0;
7b4458a2 109 fZDCParticipants=0;
f6536de8 110 fZDCEMEnergy=0;
111 fZDCEMEnergy1=0;
19652c51 112 for(int i=0; i<5; i++){
a85132e7 113 fZN1TowerEnergy[i] = fZN2TowerEnergy[i] = 0.;
114 fZP1TowerEnergy[i] = fZP2TowerEnergy[i] = 0.;
115 fZN1TowerEnergyLR[i] = fZN2TowerEnergyLR[i] = 0.;
116 fZP1TowerEnergyLR[i] = fZP2TowerEnergyLR[i] = 0.;
117 }
d5ebf00e 118}
119
120//______________________________________________________________________________
121void AliESDZDC::Print(const Option_t *) const
122{
a85132e7 123 // Print ESD for the ZDC
124 printf("\n \t ZN1Energy = %f TeV, ZP1Energy = %f TeV, ZN2Energy = %f TeV,"
125 " ZP2Energy = %f, Nparticipants = %d\n",
126 fZDCN1Energy,fZDCP1Energy,fZDCN2Energy,fZDCP2Energy,fZDCParticipants);
d5ebf00e 127}
128
d1d3e36b 129//______________________________________________________________________________
130const Float_t * AliESDZDC::GetZNCCentroid(int NspecnC) const
131{
132 // Provide coordinates of centroid over ZN (side C) front face
133 Float_t CentrCoord[2];
134 Float_t x[4] = {-1.75, 1.75, -1.75, 1.75};
135 Float_t y[4] = {-1.75, -1.72, 1.75, 1.75};
136 Float_t NumX=0., NumY=0., Den=0.;
137 Float_t alpha=0.395, w;
138 for(Int_t i=1; i<5; i++){
139 w = TMath::Power(fZN1TowerEnergy[i], alpha);
140 NumX += x[i]*w;
141 NumY += y[i]*w;
142 Den += w;
143 }
144 if(Den!=0){
145 CentrCoord[0] = fCParCentr(NspecnC)*NumX/Den;
146 CentrCoord[1] = fCParCentr(NspecnC)*NumY/Den;
147 }
148 return CentrCoord;
149}
7b4458a2 150
d1d3e36b 151//______________________________________________________________________________
152const Float_t * AliESDZDC::GetZNACentroid(int NspecnA) const
153{
154 // Provide coordinates of centroid over ZN (side A) front face
155 Float_t CentrCoord[2];
156 Float_t x[4] = {-1.75, 1.75, -1.75, 1.75};
157 Float_t y[4] = {-1.75, -1.72, 1.75, 1.75};
158 Float_t NumX=0., NumY=0., Den=0.;
159 Float_t alpha=0.395, w;
160 for(Int_t i=1; i<5; i++){
161 w = TMath::Power(fZN2TowerEnergy[i], alpha);
162 NumX += x[i]*w;
163 NumY += y[i]*w;
164 Den += w;
165 }
ce099621 166 //
167 if(Den!=0){
168 CentrCoord[0] = fCParCentr(NspecnA)*NumX/Den;
169 CentrCoord[1] = fCParCentr(NspecnA)*NumY/Den;
170 }
d1d3e36b 171 return CentrCoord;
172}