CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
HcalGeomParameters Class Reference

#include <HcalGeomParameters.h>

Public Member Functions

double getConstDzHF () const
 
void getConstRHO (std::vector< double > &) const
 
std::vector< int > getModHalfHBHE (const int type) const
 
 HcalGeomParameters ()
 
void loadGeometry (const DDFilteredView &_fv, HcalParameters &php)
 
 ~HcalGeomParameters ()
 

Private Member Functions

unsigned find (int element, std::vector< int > &array) const
 
double getEta (double r, double z) const
 

Private Attributes

double dlShort
 
double dzVcal
 
double etaHO [4]
 
int nmodHB
 
int nmodHE
 
int nzHB
 
int nzHE
 
double rminHO
 
double zVcal
 

Detailed Description

this class extracts some geometry constants from CompactView to be used by Reco Geometry/Topology

Date
2015/06/25 00:06:50
Author
Sunanda Banerjee, Fermilab sunan.nosp@m.da.b.nosp@m.anerj.nosp@m.ee@c.nosp@m.ern.c.nosp@m.h

Definition at line 26 of file HcalGeomParameters.h.

Constructor & Destructor Documentation

HcalGeomParameters::HcalGeomParameters ( )

Definition at line 20 of file HcalGeomParameters.cc.

20  {
21 #ifdef EDM_ML_DEBUG
22  edm::LogVerbatim("HCalGeom") << "HcalGeomParameters::HcalGeomParameters ( const DDCompactView& cpv ) constructor";
23 #endif
24 }
HcalGeomParameters::~HcalGeomParameters ( )

Definition at line 26 of file HcalGeomParameters.cc.

26  {
27 #ifdef EDM_ML_DEBUG
28  edm::LogVerbatim("HCalGeom") << "HcalGeomParameters::destructed!!!";
29 #endif
30 }

Member Function Documentation

unsigned int HcalGeomParameters::find ( int  element,
std::vector< int > &  array 
) const
private

Definition at line 50 of file HcalGeomParameters.cc.

References mps_fire::i, and triggerObjects_cff::id.

Referenced by getConstDzHF(), and loadGeometry().

50  {
51  unsigned int id = array.size();
52  for (unsigned int i = 0; i < array.size(); i++) {
53  if (element == array[i]) {
54  id = i;
55  break;
56  }
57  }
58  return id;
59 }
double HcalGeomParameters::getConstDzHF ( ) const
inline
void HcalGeomParameters::getConstRHO ( std::vector< double > &  rHO) const

Definition at line 32 of file HcalGeomParameters.cc.

References etaHO, mps_fire::i, and rminHO.

Referenced by getConstDzHF().

32  {
33  rHO.emplace_back(rminHO);
34  for (double i : etaHO)
35  rHO.emplace_back(i);
36 }
double HcalGeomParameters::getEta ( double  r,
double  z 
) const
private

Definition at line 61 of file HcalGeomParameters.cc.

References dqm-mbProfile::log, funct::tan(), and createJobs::tmp.

Referenced by getConstDzHF(), and loadGeometry().

61  {
62  double tmp = 0;
63  if (z != 0)
64  tmp = -log(tan(0.5 * atan(r / z)));
65 #ifdef EDM_ML_DEBUG
66  edm::LogVerbatim("HCalGeom") << "HcalGeomParameters::getEta " << r << " " << z << " ==> " << tmp;
67 #endif
68  return tmp;
69 }
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
tmp
align.sh
Definition: createJobs.py:716
std::vector< int > HcalGeomParameters::getModHalfHBHE ( const int  type) const

Definition at line 38 of file HcalGeomParameters.cc.

References nmodHB, nmodHE, nzHB, and nzHE.

Referenced by getConstDzHF().

38  {
39  std::vector<int> modHalf;
40  if (type == 0) {
41  modHalf.emplace_back(nmodHB);
42  modHalf.emplace_back(nzHB);
43  } else {
44  modHalf.emplace_back(nmodHE);
45  modHalf.emplace_back(nzHE);
46  }
47  return modHalf;
48 }
type
Definition: HCALResponse.h:21
void HcalGeomParameters::loadGeometry ( const DDFilteredView _fv,
HcalParameters php 
)

Definition at line 71 of file HcalGeomParameters.cc.

References funct::abs(), DDTrap::alpha1(), DDTrap::alpha2(), filterCSVwithJSON::copy, DDFilteredView::copyNumbers(), funct::cos(), ddbox, ddcons, ddpolycone_rrz, ddtrap, ddtubs, HcalParameters::drHB, PVValHelper::dx, HcalParameters::dx1HE, HcalParameters::dx2HE, HcalParameters::dxHB, PVValHelper::dy, HcalParameters::dyHB, HcalParameters::dyHE, PVValHelper::dz, HcalParameters::dzHE, dzVcal, etaHO, find(), newFWLiteAna::found, getEta(), DDBox::halfX(), DDBox::halfY(), DDTrap::halfZ(), DDBox::halfZ(), photonIsolationHIProducer_cfi::hf, mps_fire::i, cuy::ib, createfilelist::int, dqmiolumiharvest::j, dqmdumpme::k, GetRecoTauVFromDQM_MC_cff::kk, HcalParameters::layHB, HcalParameters::layHE, DDFilteredView::logicalPart(), min(), DDBase< N, C >::name(), DDFilteredView::next(), nmodHB, nmodHE, nzHB, nzHE, DDSolid::parameters(), HcalParameters::rHB, HcalParameters::rhoxHB, HcalParameters::rhoxHE, DDTubs::rIn(), rminHO, DDTubs::rOut(), DDSolid::shape(), DDLogicalPart::solid(), OrderedSet::t, funct::tan(), createJobs::tmp, DDFilteredView::translation(), DDTrap::x1(), DDTrap::x2(), DDTrap::x3(), DDTrap::x4(), DDTrap::y1(), DDTrap::y2(), testProducerWithPsetDescEmpty_cfi::z2, DDTubs::zhalf(), HcalParameters::zHE, HcalParameters::zHO, HcalParameters::zxHB, and HcalParameters::zxHE.

Referenced by getConstDzHF().

71  {
72  DDFilteredView fv = _fv;
73  bool dodet = true, hf = false;
74  std::vector<double> rb(20, 0.0), ze(20, 0.0), thkb(20, -1.0), thke(20, -1.0);
75  std::vector<int> ib(20, 0), ie(20, 0);
76  std::vector<int> izb, phib, ize, phie;
77  std::vector<double> rxb;
78 #ifdef EDM_ML_DEBUG
79  std::vector<double> rminHE(20, 0.0), rmaxHE(20, 0.0);
80 #endif
81  php.rhoxHB.clear();
82  php.zxHB.clear();
83  php.dyHB.clear();
84  php.dxHB.clear();
85  php.layHB.clear();
86  php.layHE.clear();
87  php.zxHE.clear();
88  php.rhoxHE.clear();
89  php.dyHE.clear();
90  php.dx1HE.clear();
91  php.dx2HE.clear();
92  dzVcal = -1.;
93 
94  while (dodet) {
96  std::vector<int> copy = fv.copyNumbers();
97  const DDSolid& sol = fv.logicalPart().solid();
98  int idet = 0, lay = -1;
99  int nsiz = (int)(copy.size());
100  if (nsiz > 0)
101  lay = copy[nsiz - 1] / 10;
102  if (nsiz > 1)
103  idet = copy[nsiz - 2] / 1000;
104  double dx = 0, dy = 0, dz = 0, dx1 = 0, dx2 = 0;
105 #ifdef EDM_ML_DEBUG
106  double alp(0);
107 #endif
108  if (sol.shape() == DDSolidShape::ddbox) {
109  const DDBox& box = static_cast<DDBox>(fv.logicalPart().solid());
110  dx = box.halfX();
111  dy = box.halfY();
112  dz = box.halfZ();
113  } else if (sol.shape() == DDSolidShape::ddtrap) {
114  const DDTrap& trp = static_cast<DDTrap>(fv.logicalPart().solid());
115  dx1 = trp.x1();
116  dx2 = trp.x2();
117  dx = 0.25 * (trp.x1() + trp.x2() + trp.x3() + trp.x4());
118  dy = 0.5 * (trp.y1() + trp.y2());
119  dz = trp.halfZ();
120 #ifdef EDM_ML_DEBUG
121  alp = 0.5 * (trp.alpha1() + trp.alpha2());
122 #endif
123  } else if (sol.shape() == DDSolidShape::ddtubs) {
124  const DDTubs& tub = static_cast<DDTubs>(fv.logicalPart().solid());
125  dx = tub.rIn();
126  dy = tub.rOut();
127  dz = tub.zhalf();
128  }
129  if (idet == 3) {
130  // HB
131 #ifdef EDM_ML_DEBUG
132  edm::LogVerbatim("HCalGeom") << "HB " << sol.name() << " Shape " << sol.shape() << " Layer " << lay << " R "
133  << t.Rho();
134 #endif
135  if (lay >= 0 && lay < 20) {
136  ib[lay]++;
137  rb[lay] += t.Rho();
138  if (thkb[lay] <= 0) {
139  if (lay < 17)
140  thkb[lay] = dx;
141  else
142  thkb[lay] = std::min(dx, dy);
143  }
144  if (lay < 17) {
145  bool found = false;
146  for (double k : rxb) {
147  if (std::abs(k - t.Rho()) < 0.01) {
148  found = true;
149  break;
150  }
151  }
152  if (!found) {
153  rxb.emplace_back(t.Rho());
154  php.rhoxHB.emplace_back(t.Rho() * std::cos(t.phi()));
155  php.zxHB.emplace_back(std::abs(t.z()));
156  php.dyHB.emplace_back(2. * dy);
157  php.dxHB.emplace_back(2. * dz);
158  php.layHB.emplace_back(lay);
159  }
160  }
161  }
162  if (lay == 2) {
163  int iz = copy[nsiz - 5];
164  int fi = copy[nsiz - 4];
165  unsigned int it1 = find(iz, izb);
166  if (it1 == izb.size())
167  izb.emplace_back(iz);
168  unsigned int it2 = find(fi, phib);
169  if (it2 == phib.size())
170  phib.emplace_back(fi);
171  }
172  if (lay == 18) {
173  int ifi = -1, ich = -1;
174  if (nsiz > 2)
175  ifi = copy[nsiz - 3];
176  if (nsiz > 3)
177  ich = copy[nsiz - 4];
178  double z1 = std::abs((t.z()) + dz);
179  double z2 = std::abs((t.z()) - dz);
180  if (std::abs(z1 - z2) < 0.01)
181  z1 = 0;
182  if (ifi == 1 && ich == 4) {
183  if (z1 > z2) {
184  double tmp = z1;
185  z1 = z2;
186  z2 = tmp;
187  }
188  bool sok = true;
189  for (unsigned int kk = 0; kk < php.zHO.size(); kk++) {
190  if (std::abs(z2 - php.zHO[kk]) < 0.01) {
191  sok = false;
192  break;
193  } else if (z2 < php.zHO[kk]) {
194  php.zHO.resize(php.zHO.size() + 2);
195  for (unsigned int kz = php.zHO.size() - 1; kz > kk + 1; kz = kz - 2) {
196  php.zHO[kz] = php.zHO[kz - 2];
197  php.zHO[kz - 1] = php.zHO[kz - 3];
198  }
199  php.zHO[kk + 1] = z2;
200  php.zHO[kk] = z1;
201  sok = false;
202  break;
203  }
204  }
205  if (sok) {
206  php.zHO.emplace_back(z1);
207  php.zHO.emplace_back(z2);
208  }
209 #ifdef EDM_ML_DEBUG
210  edm::LogVerbatim("HCalGeom") << "Detector " << idet << " Lay " << lay << " fi " << ifi << " " << ich << " z "
211  << z1 << " " << z2;
212 #endif
213  }
214  }
215  } else if (idet == 4) {
216  // HE
217 #ifdef EDM_ML_DEBUG
218  edm::LogVerbatim("HCalGeom") << "HE " << sol.name() << " Shape " << sol.shape() << " Layer " << lay << " Z "
219  << t.z();
220 #endif
221  if (lay >= 0 && lay < 20) {
222  ie[lay]++;
223  ze[lay] += std::abs(t.z());
224  if (thke[lay] <= 0)
225  thke[lay] = dz;
226 #ifdef EDM_ML_DEBUG
227  double rinHE = t.Rho() * cos(alp) - dy;
228  double routHE = t.Rho() * cos(alp) + dy;
229  rminHE[lay] += rinHE;
230  rmaxHE[lay] += routHE;
231 #endif
232  bool found = false;
233  for (double k : php.zxHE) {
234  if (std::abs(k - std::abs(t.z())) < 0.01) {
235  found = true;
236  break;
237  }
238  }
239  if (!found) {
240  php.zxHE.emplace_back(std::abs(t.z()));
241  php.rhoxHE.emplace_back(t.Rho() * std::cos(t.phi()));
242  php.dyHE.emplace_back(dy * std::cos(t.phi()));
243  dx1 -= 0.5 * (t.rho() - dy) * std::cos(t.phi()) * std::tan(10 * CLHEP::deg);
244  dx2 -= 0.5 * (t.rho() + dy) * std::cos(t.phi()) * std::tan(10 * CLHEP::deg);
245  php.dx1HE.emplace_back(-dx1);
246  php.dx2HE.emplace_back(-dx2);
247  php.layHE.emplace_back(lay);
248  }
249  }
250  if (copy[nsiz - 1] == 21 || copy[nsiz - 1] == 71) {
251  int iz = copy[nsiz - 7];
252  int fi = copy[nsiz - 5];
253  unsigned int it1 = find(iz, ize);
254  if (it1 == ize.size())
255  ize.emplace_back(iz);
256  unsigned int it2 = find(fi, phie);
257  if (it2 == phie.size())
258  phie.emplace_back(fi);
259  }
260  } else if (idet == 5) {
261  // HF
262  if (!hf) {
263  const std::vector<double>& paras = sol.parameters();
264 #ifdef EDM_ML_DEBUG
265  edm::LogVerbatim("HCalGeom") << "HF " << sol.name() << " Shape " << sol.shape() << " Z " << t.z() << " with "
266  << paras.size() << " Parameters";
267  for (unsigned j = 0; j < paras.size(); j++)
268  edm::LogVerbatim("HCalGeom") << "HF Parameter[" << j << "] = " << paras[j];
269 #endif
270  if (sol.shape() == DDSolidShape::ddpolycone_rrz) {
271  int nz = (int)(paras.size()) - 3;
272  dzVcal = 0.5 * (paras[nz] - paras[3]);
273  hf = true;
274  } else if (sol.shape() == DDSolidShape::ddtubs || sol.shape() == DDSolidShape::ddcons) {
275  dzVcal = paras[0];
276  hf = true;
277  }
278  }
279 #ifdef EDM_ML_DEBUG
280  } else {
281  edm::LogVerbatim("HCalGeom") << "Unknown Detector " << idet << " for " << sol.name() << " Shape " << sol.shape()
282  << " R " << t.Rho() << " Z " << t.z();
283 #endif
284  }
285  dodet = fv.next();
286  }
287 
288  int ibmx = 0, iemx = 0;
289  for (int i = 0; i < 20; i++) {
290  if (ib[i] > 0) {
291  rb[i] /= (double)(ib[i]);
292  ibmx = i + 1;
293  }
294  if (ie[i] > 0) {
295  ze[i] /= (double)(ie[i]);
296  iemx = i + 1;
297  }
298 #ifdef EDM_ML_DEBUG
299  if (ie[i] > 0) {
300  rminHE[i] /= (double)(ie[i]);
301  rmaxHE[i] /= (double)(ie[i]);
302  }
303  edm::LogVerbatim("HCalGeom") << "Index " << i << " Barrel " << ib[i] << " " << rb[i] << " Endcap " << ie[i] << " "
304  << ze[i] << ":" << rminHE[i] << ":" << rmaxHE[i];
305 #endif
306  }
307  for (int i = 4; i >= 0; i--) {
308  if (ib[i] == 0) {
309  rb[i] = rb[i + 1];
310  thkb[i] = thkb[i + 1];
311  }
312  if (ie[i] == 0) {
313  ze[i] = ze[i + 1];
314  thke[i] = thke[i + 1];
315  }
316 #ifdef EDM_ML_DEBUG
317  if (ib[i] == 0 || ie[i] == 0)
318  edm::LogVerbatim("HCalGeom") << "Index " << i << " Barrel " << ib[i] << " " << rb[i] << " Endcap " << ie[i] << " "
319  << ze[i];
320 #endif
321  }
322 
323 #ifdef EDM_ML_DEBUG
324  for (unsigned int k = 0; k < php.layHB.size(); ++k)
325  edm::LogVerbatim("HCalGeom") << "HB: " << php.layHB[k] << " R " << rxb[k] << " " << php.rhoxHB[k] << " Z "
326  << php.zxHB[k] << " DY " << php.dyHB[k] << " DZ " << php.dxHB[k];
327  for (unsigned int k = 0; k < php.layHE.size(); ++k)
328  edm::LogVerbatim("HCalGeom") << "HE: " << php.layHE[k] << " R " << php.rhoxHE[k] << " Z " << php.zxHE[k]
329  << " X1|X2 " << php.dx1HE[k] << "|" << php.dx2HE[k] << " DY " << php.dyHE[k];
330  edm::LogVerbatim("HCalGeom") << "HcalGeomParameters: Maximum Layer for HB " << ibmx << " for HE " << iemx
331  << " extent " << dzVcal;
332 #endif
333 
334  if (ibmx > 0) {
335  php.rHB.resize(ibmx);
336  php.drHB.resize(ibmx);
337  for (int i = 0; i < ibmx; i++) {
338  php.rHB[i] = rb[i];
339  php.drHB[i] = thkb[i];
340 #ifdef EDM_ML_DEBUG
341  edm::LogVerbatim("HCalGeom") << "HcalGeomParameters: php.rHB[" << i << "] = " << php.rHB[i] << " php.drHB[" << i
342  << "] = " << php.drHB[i];
343 #endif
344  }
345  }
346  if (iemx > 0) {
347  php.zHE.resize(iemx);
348  php.dzHE.resize(iemx);
349  for (int i = 0; i < iemx; i++) {
350  php.zHE[i] = ze[i];
351  php.dzHE[i] = thke[i];
352 #ifdef EDM_ML_DEBUG
353  edm::LogVerbatim("HCalGeom") << "HcalGeomParameters: php.zHE[" << i << "] = " << php.zHE[i] << " php.dzHE[" << i
354  << "] = " << php.dzHE[i];
355 #endif
356  }
357  }
358 
359  nzHB = (int)(izb.size());
360  nmodHB = (int)(phib.size());
361 #ifdef EDM_ML_DEBUG
362  edm::LogVerbatim("HCalGeom") << "HcalGeomParameters::loadGeometry: " << nzHB << " barrel half-sectors";
363  for (int i = 0; i < nzHB; i++)
364  edm::LogVerbatim("HCalGeom") << "Section " << i << " Copy number " << izb[i];
365  edm::LogVerbatim("HCalGeom") << "HcalGeomParameters::loadGeometry: " << nmodHB << " barrel modules";
366  for (int i = 0; i < nmodHB; i++)
367  edm::LogVerbatim("HCalGeom") << "Module " << i << " Copy number " << phib[i];
368 #endif
369 
370  nzHE = (int)(ize.size());
371  nmodHE = (int)(phie.size());
372 #ifdef EDM_ML_DEBUG
373  edm::LogVerbatim("HCalGeom") << "HcalGeomParameters::loadGeometry: " << nzHE << " endcap half-sectors";
374  for (int i = 0; i < nzHE; i++)
375  edm::LogVerbatim("HCalGeom") << "Section " << i << " Copy number " << ize[i];
376  edm::LogVerbatim("HCalGeom") << "HcalGeomParameters::loadGeometry: " << nmodHE << " endcap modules";
377  for (int i = 0; i < nmodHE; i++)
378  edm::LogVerbatim("HCalGeom") << "Module " << i << " Copy number " << phie[i];
379 #endif
380 
381 #ifdef EDM_ML_DEBUG
382  edm::LogVerbatim("HCalGeom") << "HO has Z of size " << php.zHO.size();
383  for (unsigned int kk = 0; kk < php.zHO.size(); kk++)
384  edm::LogVerbatim("HCalGeom") << "ZHO[" << kk << "] = " << php.zHO[kk];
385 #endif
386  if (ibmx > 17 && php.zHO.size() > 4) {
387  rminHO = php.rHB[17] - 100.0;
388  etaHO[0] = getEta(0.5 * (php.rHB[17] + php.rHB[18]), php.zHO[1]);
389  etaHO[1] = getEta(php.rHB[18] + php.drHB[18], php.zHO[2]);
390  etaHO[2] = getEta(php.rHB[18] - php.drHB[18], php.zHO[3]);
391  etaHO[3] = getEta(php.rHB[18] + php.drHB[18], php.zHO[4]);
392  } else {
393  rminHO = -1.0;
394  etaHO[0] = etaHO[1] = etaHO[2] = etaHO[3] = 0;
395  }
396 #ifdef EDM_ML_DEBUG
397  edm::LogVerbatim("HCalGeom") << "HO Eta boundaries " << etaHO[0] << " " << etaHO[1] << " " << etaHO[2] << " "
398  << etaHO[3];
399  edm::LogVerbatim("HCalGeom") << "HO Parameters " << rminHO << " " << php.zHO.size();
400  for (unsigned int i = 0; i < php.zHO.size(); ++i)
401  edm::LogVerbatim("HCalGeom") << " zho[" << i << "] = " << php.zHO[i];
402 #endif
403 }
std::vector< double > zHO
const std::vector< double > & parameters(void) const
Give the parameters of the solid.
Definition: DDSolid.cc:121
double halfZ(void) const
half of the z-Axis
Definition: DDSolid.cc:131
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
double halfZ(void) const
Definition: DDSolid.cc:212
std::vector< int > layHE
double x1(void) const
Half-length along x of the side at y=-pDy1 of the face at -pDz.
Definition: DDSolid.cc:139
const N & name() const
Definition: DDBase.h:59
double halfY(void) const
Definition: DDSolid.cc:210
std::vector< double > rHB
nav_type copyNumbers() const
return the stack of copy numbers
unsigned find(int element, std::vector< int > &array) const
std::vector< double > rhoxHB
std::vector< double > dx2HE
const DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
A DDSolid represents the shape of a part.
Definition: DDSolid.h:39
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
std::vector< double > rhoxHE
std::vector< double > zxHE
std::vector< double > zHE
std::vector< double > dyHE
std::vector< double > zxHB
double x4(void) const
Half-length along x of the side at y=+pDy2 of the face at +pDz.
Definition: DDSolid.cc:149
bool next()
set current node to the next node in the filtered tree
std::vector< double > dx1HE
std::vector< double > dzHE
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Interface to a Trapezoid.
Definition: DDSolid.h:77
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
double y1(void) const
Half-length along y of the face at -pDz.
Definition: DDSolid.cc:137
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
DDSolidShape shape(void) const
The type of the solid.
Definition: DDSolid.cc:119
T min(T a, T b)
Definition: MathUtil.h:58
double rOut(void) const
Definition: DDSolid.cc:454
std::vector< double > dyHB
double halfX(void) const
Definition: DDSolid.cc:208
Interface to a Box.
Definition: DDSolid.h:156
double alpha1(void) const
Angle with respect to the y axis from the centre of the side at y=-pDy1 to the centre at y=+pDy1 of t...
Definition: DDSolid.cc:143
double alpha2(void) const
Angle with respect to the y axis from the centre of the side at y=-pDy2 to the centre at y=+pDy2 of t...
Definition: DDSolid.cc:151
std::vector< double > dxHB
double x2(void) const
Half-length along x of the side at y=+pDy1 of the face at -pDz.
Definition: DDSolid.cc:141
double zhalf(void) const
Definition: DDSolid.cc:450
double getEta(double r, double z) const
std::vector< double > drHB
double y2(void) const
Half-length along y of the face at +pDz.
Definition: DDSolid.cc:145
const DDTranslation & translation() const
The absolute translation of the current node.
double rIn(void) const
Definition: DDSolid.cc:452
tmp
align.sh
Definition: createJobs.py:716
std::vector< int > layHB
double x3(void) const
Half-length along x of the side at y=-pDy2 of the face at +pDz.
Definition: DDSolid.cc:147
ib
Definition: cuy.py:662

Member Data Documentation

double HcalGeomParameters::dlShort
private

Definition at line 45 of file HcalGeomParameters.h.

double HcalGeomParameters::dzVcal
private

Definition at line 44 of file HcalGeomParameters.h.

Referenced by getConstDzHF(), and loadGeometry().

double HcalGeomParameters::etaHO[4]
private

Definition at line 42 of file HcalGeomParameters.h.

Referenced by getConstRHO(), and loadGeometry().

int HcalGeomParameters::nmodHB
private

Definition at line 40 of file HcalGeomParameters.h.

Referenced by getModHalfHBHE(), and loadGeometry().

int HcalGeomParameters::nmodHE
private

Definition at line 41 of file HcalGeomParameters.h.

Referenced by getModHalfHBHE(), and loadGeometry().

int HcalGeomParameters::nzHB
private

Definition at line 40 of file HcalGeomParameters.h.

Referenced by getModHalfHBHE(), and loadGeometry().

int HcalGeomParameters::nzHE
private

Definition at line 41 of file HcalGeomParameters.h.

Referenced by getModHalfHBHE(), and loadGeometry().

double HcalGeomParameters::rminHO
private

Definition at line 42 of file HcalGeomParameters.h.

Referenced by getConstRHO(), and loadGeometry().

double HcalGeomParameters::zVcal
private

Definition at line 43 of file HcalGeomParameters.h.