CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes
HGCalEEAlgo Struct Reference

Public Member Functions

void ConstructAlgo (cms::DDParsingContext &ctxt, xml_h e)
 
void ConstructLayers (const dd4hep::Volume module, cms::DDParsingContext &ctxt, xml_h e)
 
 HGCalEEAlgo ()=delete
 
 HGCalEEAlgo (cms::DDParsingContext &ctxt, xml_h e)
 
void PositionSensitive (cms::DDParsingContext &ctxt, xml_h e, const dd4hep::Volume &glog, double rin, double rout, double zpos, int layertype, int layercenter)
 

Public Attributes

int absorbMode_
 
double alpha_
 
int choiceType_
 
std::unordered_set< int > copies_
 
std::vector< int > copyNumber_
 
double cosAlpha_
 
int firstLayer_
 
double fracAreaMin_
 
HGCalGeomTools geomTools_
 
std::vector< int > layerCenter_
 
std::vector< int > layers_
 
std::vector< int > layerSense_
 
std::vector< double > layerThick_
 
std::vector< int > layerType_
 
std::vector< std::string > materials_
 
dd4hep::Volume mother_
 
std::vector< std::string > names_
 
std::string nameSpace_
 
int nCutRadPar_
 
std::vector< double > rad100to200_
 
std::vector< double > rad200to300_
 
std::vector< double > rMaxFront_
 
std::vector< double > rMinFront_
 
int sectors_
 
std::vector< double > slopeB_
 
std::vector< double > slopeT_
 
std::vector< double > thick_
 
std::vector< std::string > wafers_
 
double waferSepar_
 
double waferSize_
 
std::unique_ptr< HGCalWaferTypewaferType_
 
std::vector< double > zFrontB_
 
std::vector< double > zFrontT_
 
double zMinBlock_
 
double zMinRadPar_
 

Detailed Description

Definition at line 27 of file DDHGCalEEAlgo.cc.

Constructor & Destructor Documentation

HGCalEEAlgo::HGCalEEAlgo ( )
delete
HGCalEEAlgo::HGCalEEAlgo ( cms::DDParsingContext ctxt,
xml_h  e 
)
inline

Definition at line 66 of file DDHGCalEEAlgo.cc.

References writedatasetfile::args, angle_units::operators::convertRadToDeg(), funct::cos(), mps_fire::i, cuy::ii, dqmdumpme::k, cms::DDNamespace::name(), cms::DDAlgoArguments::parentName(), AlCaHLTBitMon_QueryRunRegistry::string, cms::DDAlgoArguments::value(), and cms::DDNamespace::volume().

66  {
67  cms::DDNamespace ns(ctxt, e, true);
69 
70  mother_ = ns.volume(args.parentName());
71  wafers_ = args.value<std::vector<std::string>>("WaferNames");
72 #ifdef EDM_ML_DEBUG
73  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: " << wafers_.size() << " wafers";
74  for (unsigned int i = 0; i < wafers_.size(); ++i)
75  edm::LogVerbatim("HGCalGeom") << "Wafer[" << i << "] " << wafers_[i];
76 #endif
77 
78  materials_ = args.value<std::vector<std::string>>("MaterialNames");
79  names_ = args.value<std::vector<std::string>>("VolumeNames");
80  thick_ = args.value<std::vector<double>>("Thickness");
81  for (unsigned int i = 0; i < materials_.size(); ++i) {
82  copyNumber_.emplace_back(1);
83  }
84 #ifdef EDM_ML_DEBUG
85  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: " << materials_.size() << " types of volumes";
86  for (unsigned int i = 0; i < names_.size(); ++i)
87  edm::LogVerbatim("HGCalGeom") << "Volume [" << i << "] " << names_[i] << " of thickness " << thick_[i]
88  << " filled with " << materials_[i] << " first copy number " << copyNumber_[i];
89 #endif
90 
91  layers_ = args.value<std::vector<int>>("Layers");
92  layerThick_ = args.value<std::vector<double>>("LayerThick");
93 #ifdef EDM_ML_DEBUG
94  edm::LogVerbatim("HGCalGeom") << "There are " << layers_.size() << " blocks";
95  for (unsigned int i = 0; i < layers_.size(); ++i)
96  edm::LogVerbatim("HGCalGeom") << "Block [" << i << "] of thickness " << layerThick_[i] << " with " << layers_[i]
97  << " layers";
98 #endif
99 
100  layerType_ = args.value<std::vector<int>>("LayerType");
101  layerSense_ = args.value<std::vector<int>>("LayerSense");
102  firstLayer_ = args.value<int>("FirstLayer");
103  absorbMode_ = args.value<int>("AbsorberMode");
104 
105 #ifdef EDM_ML_DEBUG
106  edm::LogVerbatim("HGCalGeom") << "First Layere " << firstLayer_ << " and "
107  << "Absober mode " << absorbMode_;
108 #endif
109  layerCenter_ = args.value<std::vector<int>>("LayerCenter");
110 #ifdef EDM_ML_DEBUG
111  for (unsigned int i = 0; i < layerCenter_.size(); ++i)
112  edm::LogVerbatim("HGCalGeom") << "LayerCenter [" << i << "] " << layerCenter_[i];
113 #endif
114  if (firstLayer_ > 0) {
115  for (unsigned int i = 0; i < layerType_.size(); ++i) {
116  if (layerSense_[i] > 0) {
117  int ii = layerType_[i];
118  copyNumber_[ii] = firstLayer_;
119 #ifdef EDM_ML_DEBUG
120  edm::LogVerbatim("HGCalGeom") << "First copy number for layer type " << i << ":" << ii << " with "
121  << materials_[ii] << " changed to " << copyNumber_[ii];
122 #endif
123  break;
124  }
125  }
126  }
127 #ifdef EDM_ML_DEBUG
128  edm::LogVerbatim("HGCalGeom") << "There are " << layerType_.size() << " layers";
129  for (unsigned int i = 0; i < layerType_.size(); ++i)
130  edm::LogVerbatim("HGCalGeom") << "Layer [" << i << "] with material type " << layerType_[i] << " sensitive class "
131  << layerSense_[i];
132 #endif
133  zMinBlock_ = args.value<double>("zMinBlock");
134 
135  rad100to200_ = args.value<std::vector<double>>("rad100to200");
136  rad200to300_ = args.value<std::vector<double>>("rad200to300");
137  zMinRadPar_ = args.value<double>("zMinForRadPar");
138  choiceType_ = args.value<int>("choiceType");
139  nCutRadPar_ = args.value<int>("nCornerCut");
140  fracAreaMin_ = args.value<double>("fracAreaMin");
141  waferSize_ = args.value<double>("waferSize");
142  waferSepar_ = args.value<double>("SensorSeparation");
143  sectors_ = args.value<int>("Sectors");
144  alpha_ = (1._pi) / sectors_;
145  cosAlpha_ = cos(alpha_);
146 #ifdef EDM_ML_DEBUG
147  edm::LogVerbatim("HGCalGeom") << "zStart " << zMinBlock_ << " radius for wafer type separation uses "
148  << rad100to200_.size() << " parameters; zmin " << zMinRadPar_ << " cutoff "
149  << choiceType_ << ":" << nCutRadPar_ << ":" << fracAreaMin_ << " wafer width "
150  << waferSize_ << " separations " << waferSepar_ << " sectors " << sectors_ << ":"
151  << convertRadToDeg(alpha_) << ":" << cosAlpha_;
152  for (unsigned int k = 0; k < rad100to200_.size(); ++k)
153  edm::LogVerbatim("HGCalGeom") << "[" << k << "] 100-200 " << rad100to200_[k] << " 200-300 " << rad200to300_[k];
154 #endif
155 
156  slopeB_ = args.value<std::vector<double>>("SlopeBottom");
157  zFrontB_ = args.value<std::vector<double>>("ZFrontBottom");
158  rMinFront_ = args.value<std::vector<double>>("RMinFront");
159  slopeT_ = args.value<std::vector<double>>("SlopeTop");
160  zFrontT_ = args.value<std::vector<double>>("ZFrontTop");
161  rMaxFront_ = args.value<std::vector<double>>("RMaxFront");
162 #ifdef EDM_ML_DEBUG
163  for (unsigned int i = 0; i < slopeB_.size(); ++i)
164  edm::LogVerbatim("HGCalGeom") << "Block [" << i << "] Zmin " << zFrontB_[i] << " Rmin " << rMinFront_[i]
165  << " Slope " << slopeB_[i];
166  for (unsigned int i = 0; i < slopeT_.size(); ++i)
167  edm::LogVerbatim("HGCalGeom") << "Block [" << i << "] Zmin " << zFrontT_[i] << " Rmax " << rMaxFront_[i]
168  << " Slope " << slopeT_[i];
169 #endif
170 
171  nameSpace_ = static_cast<std::string>(ns.name());
172 #ifdef EDM_ML_DEBUG
173  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: NameSpace " << nameSpace_;
174 #endif
175 
176  waferType_ = std::make_unique<HGCalWaferType>(
177  rad100to200_, rad200to300_, (waferSize_ + waferSepar_), zMinRadPar_, choiceType_, nCutRadPar_, fracAreaMin_);
178 
179  ConstructAlgo(ctxt, e);
180  }
std::vector< int > layerSense_
std::vector< double > rMaxFront_
double zMinBlock_
constexpr NumType convertRadToDeg(NumType radians)
Definition: angle_units.h:21
std::vector< double > slopeB_
std::vector< int > layerCenter_
dd4hep::Volume mother_
std::vector< double > rMinFront_
std::unique_ptr< HGCalWaferType > waferType_
double waferSepar_
double cosAlpha_
std::vector< int > layerType_
double fracAreaMin_
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
std::vector< std::string > materials_
double waferSize_
std::string nameSpace_
std::vector< std::string > names_
std::vector< double > thick_
double zMinRadPar_
ii
Definition: cuy.py:590
std::vector< double > rad200to300_
std::vector< double > zFrontT_
std::vector< int > layers_
void ConstructAlgo(cms::DDParsingContext &ctxt, xml_h e)
std::vector< double > rad100to200_
std::vector< double > layerThick_
std::vector< double > slopeT_
std::vector< double > zFrontB_
std::vector< std::string > wafers_
std::vector< int > copyNumber_

Member Function Documentation

void HGCalEEAlgo::ConstructAlgo ( cms::DDParsingContext ctxt,
xml_h  e 
)
inline

Definition at line 182 of file DDHGCalEEAlgo.cc.

References dqmdumpme::k.

182  {
183 #ifdef EDM_ML_DEBUG
184  edm::LogVerbatim("HGCalGeom") << "==>> Constructing DDHGCalEEAlgo...";
185  copies_.clear();
186 #endif
187  dd4hep::Volume par;
188  ConstructLayers(par, ctxt, e);
189 #ifdef EDM_ML_DEBUG
190  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: " << copies_.size() << " different wafer copy numbers";
191  int k(0);
192  for (std::unordered_set<int>::const_iterator itr = copies_.begin(); itr != copies_.end(); ++itr, ++k) {
193  edm::LogVerbatim("HGCalGeom") << "Copy [" << k << "] : " << (*itr);
194  }
195  copies_.clear();
196  edm::LogVerbatim("HGCalGeom") << "<<== End of DDHGCalEEAlgo construction...";
197 #endif
198  }
void ConstructLayers(const dd4hep::Volume module, cms::DDParsingContext &ctxt, xml_h e)
std::unordered_set< int > copies_
dd4hep::Volume Volume
void HGCalEEAlgo::ConstructLayers ( const dd4hep::Volume  module,
cms::DDParsingContext ctxt,
xml_h  e 
)
inline

Definition at line 200 of file DDHGCalEEAlgo.cc.

References funct::abs(), cms::DDNamespace::addSolidNS(), cms::DDNamespace::addVolumeNS(), angle_units::operators::convertRadToDeg(), filterCSVwithJSON::copy, mps_fire::i, cuy::ii, dqmdumpme::k, cms::DDNamespace::material(), g4SimHits_cfi::Material, Skims_PA_cff::name, angle_units::piRadians(), HGCalGeometryMode::Polyhedra, cms::DDNamespace::prepend(), diffTwoXMLs::r1, HGCalGeomTools::radius(), AlCaHLTBitMon_QueryRunRegistry::string, and geometryCSVtoXML::zz.

200  {
201  cms::DDNamespace ns(ctxt, e, true);
202 
203 #ifdef EDM_ML_DEBUG
204  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: \t\tInside Layers";
205 #endif
206 
207  double zi(zMinBlock_);
208  int laymin(0);
209  const double tol(0.01);
210  for (unsigned int i = 0; i < layers_.size(); i++) {
211  double zo = zi + layerThick_[i];
212  double routF = HGCalGeomTools::radius(zi, zFrontT_, rMaxFront_, slopeT_);
213  int laymax = laymin + layers_[i];
214  double zz = zi;
215  double thickTot(0);
216  for (int ly = laymin; ly < laymax; ++ly) {
217  int ii = layerType_[ly];
218  int copy = copyNumber_[ii];
219  double hthick = 0.5 * thick_[ii];
220  double rinB = HGCalGeomTools::radius(zo, zFrontB_, rMinFront_, slopeB_);
221  zz += hthick;
222  thickTot += thick_[ii];
223 
224  std::string name = nameSpace_ + names_[ii] + std::to_string(copy);
225 #ifdef EDM_ML_DEBUG
226  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: Layer " << ly << ":" << ii << " Front " << zi << ", " << routF
227  << " Back " << zo << ", " << rinB << " superlayer thickness " << layerThick_[i];
228 #endif
229 
230  std::string matName = materials_[ii];
231  dd4hep::Material matter = ns.material(matName);
232  dd4hep::Volume glog;
233  if (layerSense_[ly] < 1) {
234  std::vector<double> pgonZ, pgonRin, pgonRout;
235  if (layerSense_[ly] == 0 || absorbMode_ == 0) {
236  double rmax = routF * cosAlpha_ - tol;
237  pgonZ.emplace_back(-hthick);
238  pgonZ.emplace_back(hthick);
239  pgonRin.emplace_back(rinB);
240  pgonRin.emplace_back(rinB);
241  pgonRout.emplace_back(rmax);
242  pgonRout.emplace_back(rmax);
243  } else {
244  HGCalGeomTools::radius(zz - hthick,
245  zz + hthick,
246  zFrontB_,
247  rMinFront_,
248  slopeB_,
249  zFrontT_,
250  rMaxFront_,
251  slopeT_,
252  -layerSense_[ly],
253  pgonZ,
254  pgonRin,
255  pgonRout);
256  for (unsigned int isec = 0; isec < pgonZ.size(); ++isec) {
257  pgonZ[isec] -= zz;
258  pgonRout[isec] = pgonRout[isec] * cosAlpha_ - tol;
259  }
260  }
261 
262  dd4hep::Solid solid =
263  dd4hep::Polyhedra(sectors_, -alpha_, 2. * cms_units::piRadians, pgonZ, pgonRin, pgonRout);
264  ns.addSolidNS(ns.prepend(name), solid);
265  glog = dd4hep::Volume(solid.name(), solid, matter);
266  ns.addVolumeNS(glog);
267 
268 #ifdef EDM_ML_DEBUG
269  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: " << solid.name() << " polyhedra of " << sectors_
270  << " sectors covering " << convertRadToDeg(-alpha_) << ":"
271  << convertRadToDeg(-alpha_ + 2._pi) << " with " << pgonZ.size()
272  << " sections and filled with " << matName;
273 
274  for (unsigned int k = 0; k < pgonZ.size(); ++k)
275  edm::LogVerbatim("HGCalGeom")
276  << "[" << k << "] z " << pgonZ[k] << " R " << pgonRin[k] << ":" << pgonRout[k];
277 #endif
278  } else {
279  dd4hep::Solid solid = dd4hep::Tube(rinB, routF, hthick, 0.0, 2. * cms_units::piRadians);
280  ns.addSolidNS(ns.prepend(name), solid);
281  glog = dd4hep::Volume(solid.name(), solid, matter);
282  ns.addVolumeNS(glog);
283 
284 #ifdef EDM_ML_DEBUG
285  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: " << solid.name() << " Tubs made of " << matName
286  << " of dimensions " << rinB << ", " << routF << ", " << hthick
287  << ", 0.0, 360.0 and position " << glog.name() << " number " << copy << ":"
288  << layerCenter_[copy - 1];
289 #endif
290  PositionSensitive(ctxt, e, glog, rinB, routF, zz, layerSense_[ly], layerCenter_[copy - 1]); //, cpv);
291  }
292 
293  dd4hep::Position r1(0, 0, zz);
294  mother_.placeVolume(glog, copy, r1);
295  ++copyNumber_[ii];
296 
297 #ifdef EDM_ML_DEBUG
298  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: " << glog.name() << " number " << copy << " positioned in "
299  << module.name() << " at " << r1 << " with no rotation";
300 #endif
301  zz += hthick;
302  } // End of loop over layers in a block
303  zi = zo;
304  laymin = laymax;
305  if (std::abs(thickTot - layerThick_[i]) < 0.00001) {
306  } else if (thickTot > layerThick_[i]) {
307  edm::LogError("HGCalGeom") << "Thickness of the partition " << layerThick_[i] << " is smaller than " << thickTot
308  << ": thickness of all its "
309  << "components **** ERROR ****";
310  } else if (thickTot < layerThick_[i]) {
311  edm::LogWarning("HGCalGeom") << "Thickness of the partition " << layerThick_[i] << " does not match with "
312  << thickTot << " of the components";
313  }
314 
315  } // End of loop over layers in a block
316  }
std::vector< int > layerSense_
static void radius(double zf, double zb, std::vector< double > const &zFront1, std::vector< double > const &rFront1, std::vector< double > const &slope1, std::vector< double > const &zFront2, std::vector< double > const &rFront2, std::vector< double > const &slope2, int flag, std::vector< double > &zz, std::vector< double > &rin, std::vector< double > &rout)
std::vector< double > rMaxFront_
double zMinBlock_
constexpr NumType convertRadToDeg(NumType radians)
Definition: angle_units.h:21
std::vector< double > slopeB_
std::vector< int > layerCenter_
dd4hep::Volume mother_
std::vector< double > rMinFront_
double cosAlpha_
constexpr long double piRadians(M_PIl)
std::vector< int > layerType_
std::vector< std::string > materials_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void PositionSensitive(cms::DDParsingContext &ctxt, xml_h e, const dd4hep::Volume &glog, double rin, double rout, double zpos, int layertype, int layercenter)
std::string nameSpace_
std::vector< std::string > names_
dd4hep::Volume Volume
std::vector< double > thick_
ii
Definition: cuy.py:590
std::vector< double > zFrontT_
std::vector< int > layers_
std::vector< double > layerThick_
std::vector< double > slopeT_
std::vector< double > zFrontB_
Definition: vlib.h:198
std::vector< int > copyNumber_
void HGCalEEAlgo::PositionSensitive ( cms::DDParsingContext ctxt,
xml_h  e,
const dd4hep::Volume &  glog,
double  rin,
double  rout,
double  zpos,
int  layertype,
int  layercenter 
)
inline

Definition at line 318 of file DDHGCalEEAlgo.cc.

References funct::abs(), filterCSVwithJSON::copy, distTCMET_cfi::corner, PVValHelper::dy, createfilelist::int, HGCalParameters::k_CornerSize, N, nin, EgHLTOffHistBins_cfi::nr, dttmaxenums::R, alignCSCRings::r, HGCalGeomTools::shiftXY(), mathSSE::sqrt(), findQualityFiles::v, cms::DDNamespace::volume(), and HGCalGeomTools::waferCorner().

325  {
326  cms::DDNamespace ns(ctxt, e, true);
327  static const double sqrt3 = std::sqrt(3.0);
328  double r = 0.5 * (waferSize_ + waferSepar_);
329  double R = 2.0 * r / sqrt3;
330  double dy = 0.75 * R;
331  int N = (int)(0.5 * rout / r) + 2;
332  std::pair<double, double> xyoff = geomTools_.shiftXY(layercenter, (waferSize_ + waferSepar_));
333 #ifdef EDM_ML_DEBUG
334  int ium(0), ivm(0), iumAll(0), ivmAll(0), kount(0), ntot(0), nin(0);
335  std::vector<int> ntype(6, 0);
336  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: " << glog.name() << " rout " << rout << " N " << N
337  << " for maximum u, v; r " << r << " R " << R << " dy " << dy << " Shift "
338  << xyoff.first << ":" << xyoff.second << " WaferSize " << (waferSize_ + waferSepar_);
339 #endif
340 
341  for (int u = -N; u <= N; ++u) {
342  int iu = std::abs(u);
343  for (int v = -N; v <= N; ++v) {
344  int iv = std::abs(v);
345  int nr = 2 * v;
346  int nc = -2 * u + v;
347  double xpos = xyoff.first + nc * r;
348  double ypos = xyoff.second + nr * dy;
349  std::pair<int, int> corner = HGCalGeomTools::waferCorner(xpos, ypos, r, R, rin, rout, false);
350 #ifdef EDM_ML_DEBUG
351  ++ntot;
352  if (((corner.first <= 0) && std::abs(u) < 5 && std::abs(v) < 5) || (std::abs(u) < 2 && std::abs(v) < 2)) {
353  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: " << glog.name() << " R " << rin << ":" << rout << "\n Z "
354  << zpos << " LayerType " << layertype << " u " << u << " v " << v << " with "
355  << corner.first << " corners";
356  }
357 #endif
358  if (corner.first > 0) {
359  int type = waferType_->getType(xpos, ypos, zpos);
360  int copy = type * 1000000 + iv * 100 + iu;
361  if (u < 0)
362  copy += 10000;
363  if (v < 0)
364  copy += 100000;
365 #ifdef EDM_ML_DEBUG
366  if (iu > ium)
367  ium = iu;
368  if (iv > ivm)
369  ivm = iv;
370  kount++;
371  if (copies_.count(copy) == 0)
372  copies_.insert(copy);
373 #endif
374  if (corner.first == (int)(HGCalParameters::k_CornerSize)) {
375 #ifdef EDM_ML_DEBUG
376  if (iu > iumAll)
377  iumAll = iu;
378  if (iv > ivmAll)
379  ivmAll = iv;
380  ++nin;
381 #endif
382 
383  dd4hep::Position tran(xpos, ypos, 0.0);
384  if (layertype > 1)
385  type += 3;
386  glog.placeVolume(ns.volume(wafers_[type]), copy, tran);
387 #ifdef EDM_ML_DEBUG
388  ++ntype[type];
389  edm::LogVerbatim("HGCalGeom") << " DDHGCalEEAlgo: " << wafers_[type] << " number " << copy
390  << " positioned in " << glog.name() << " at " << tran << " with no rotation";
391 #endif
392  }
393  }
394  }
395  }
396 
397 #ifdef EDM_ML_DEBUG
398  edm::LogVerbatim("HGCalGeom") << " DDHGCalEEAlgo: Maximum # of u " << ium << ":" << iumAll << " # of v " << ivm
399  << ":" << ivmAll << " and " << nin << ":" << kount << ":" << ntot << " wafers ("
400  << ntype[0] << ":" << ntype[1] << ":" << ntype[2] << ":" << ntype[3] << ":"
401  << ntype[4] << ":" << ntype[5] << ") for " << glog.name() << " R " << rin << ":"
402  << rout;
403 #endif
404  }
type
Definition: HCALResponse.h:21
HGCalGeomTools geomTools_
std::unique_ptr< HGCalWaferType > waferType_
int nin
double waferSepar_
static std::pair< int32_t, int32_t > waferCorner(double xpos, double ypos, double r, double R, double rMin, double rMax, bool oldBug=false)
std::unordered_set< int > copies_
T sqrt(T t)
Definition: SSEVec.h:19
double waferSize_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static uint32_t k_CornerSize
#define N
Definition: blowfish.cc:9
std::vector< std::string > wafers_
std::pair< double, double > shiftXY(int waferPosition, double waferSize)

Member Data Documentation

int HGCalEEAlgo::absorbMode_

Definition at line 43 of file DDHGCalEEAlgo.cc.

double HGCalEEAlgo::alpha_

Definition at line 62 of file DDHGCalEEAlgo.cc.

int HGCalEEAlgo::choiceType_

Definition at line 48 of file DDHGCalEEAlgo.cc.

std::unordered_set<int> HGCalEEAlgo::copies_

Definition at line 61 of file DDHGCalEEAlgo.cc.

std::vector<int> HGCalEEAlgo::copyNumber_

Definition at line 36 of file DDHGCalEEAlgo.cc.

double HGCalEEAlgo::cosAlpha_

Definition at line 62 of file DDHGCalEEAlgo.cc.

int HGCalEEAlgo::firstLayer_

Definition at line 42 of file DDHGCalEEAlgo.cc.

double HGCalEEAlgo::fracAreaMin_

Definition at line 50 of file DDHGCalEEAlgo.cc.

HGCalGeomTools HGCalEEAlgo::geomTools_

Definition at line 28 of file DDHGCalEEAlgo.cc.

std::vector<int> HGCalEEAlgo::layerCenter_

Definition at line 41 of file DDHGCalEEAlgo.cc.

std::vector<int> HGCalEEAlgo::layers_

Definition at line 37 of file DDHGCalEEAlgo.cc.

std::vector<int> HGCalEEAlgo::layerSense_

Definition at line 40 of file DDHGCalEEAlgo.cc.

std::vector<double> HGCalEEAlgo::layerThick_

Definition at line 38 of file DDHGCalEEAlgo.cc.

std::vector<int> HGCalEEAlgo::layerType_

Definition at line 39 of file DDHGCalEEAlgo.cc.

std::vector<std::string> HGCalEEAlgo::materials_

Definition at line 33 of file DDHGCalEEAlgo.cc.

dd4hep::Volume HGCalEEAlgo::mother_

Definition at line 30 of file DDHGCalEEAlgo.cc.

std::vector<std::string> HGCalEEAlgo::names_

Definition at line 34 of file DDHGCalEEAlgo.cc.

std::string HGCalEEAlgo::nameSpace_

Definition at line 60 of file DDHGCalEEAlgo.cc.

int HGCalEEAlgo::nCutRadPar_

Definition at line 49 of file DDHGCalEEAlgo.cc.

std::vector<double> HGCalEEAlgo::rad100to200_

Definition at line 45 of file DDHGCalEEAlgo.cc.

std::vector<double> HGCalEEAlgo::rad200to300_

Definition at line 46 of file DDHGCalEEAlgo.cc.

std::vector<double> HGCalEEAlgo::rMaxFront_

Definition at line 59 of file DDHGCalEEAlgo.cc.

std::vector<double> HGCalEEAlgo::rMinFront_

Definition at line 56 of file DDHGCalEEAlgo.cc.

int HGCalEEAlgo::sectors_

Definition at line 53 of file DDHGCalEEAlgo.cc.

std::vector<double> HGCalEEAlgo::slopeB_

Definition at line 54 of file DDHGCalEEAlgo.cc.

std::vector<double> HGCalEEAlgo::slopeT_

Definition at line 57 of file DDHGCalEEAlgo.cc.

std::vector<double> HGCalEEAlgo::thick_

Definition at line 35 of file DDHGCalEEAlgo.cc.

std::vector<std::string> HGCalEEAlgo::wafers_

Definition at line 32 of file DDHGCalEEAlgo.cc.

double HGCalEEAlgo::waferSepar_

Definition at line 52 of file DDHGCalEEAlgo.cc.

double HGCalEEAlgo::waferSize_

Definition at line 51 of file DDHGCalEEAlgo.cc.

std::unique_ptr<HGCalWaferType> HGCalEEAlgo::waferType_

Definition at line 29 of file DDHGCalEEAlgo.cc.

std::vector<double> HGCalEEAlgo::zFrontB_

Definition at line 55 of file DDHGCalEEAlgo.cc.

std::vector<double> HGCalEEAlgo::zFrontT_

Definition at line 58 of file DDHGCalEEAlgo.cc.

double HGCalEEAlgo::zMinBlock_

Definition at line 44 of file DDHGCalEEAlgo.cc.

double HGCalEEAlgo::zMinRadPar_

Definition at line 47 of file DDHGCalEEAlgo.cc.