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_
 
int nCutRadPar_
 
std::vector< double > rad100to200_
 
std::vector< double > rad200to300_
 
std::vector< double > rMaxFront_
 
std::vector< double > rMinFront_
 
int sectors_
 
int sensitiveMode_
 
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 28 of file DDHGCalEEAlgo.cc.

Constructor & Destructor Documentation

◆ HGCalEEAlgo() [1/2]

HGCalEEAlgo::HGCalEEAlgo ( )
delete

◆ HGCalEEAlgo() [2/2]

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

Definition at line 67 of file DDHGCalEEAlgo.cc.

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

References writedatasetfile::args, angle_units::operators::convertRadToDeg(), funct::cos(), MillePedeFileConverter_cfg::e, mps_fire::i, cuy::ii, dqmdumpme::k, cms::DDNamespace::name(), and cms::DDNamespace::volume().

Member Function Documentation

◆ ConstructAlgo()

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

Definition at line 182 of file DDHGCalEEAlgo.cc.

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  }

References MillePedeFileConverter_cfg::e, and dqmdumpme::k.

◆ ConstructLayers()

void HGCalEEAlgo::ConstructLayers ( const dd4hep::Volume  module,
cms::DDParsingContext ctxt,
xml_h  e 
)
inline

Definition at line 200 of file DDHGCalEEAlgo.cc.

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

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

◆ PositionSensitive()

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 331 of file DDHGCalEEAlgo.cc.

338  {
339  cms::DDNamespace ns(ctxt, e, true);
340  static const double sqrt3 = std::sqrt(3.0);
341  double r = 0.5 * (waferSize_ + waferSepar_);
342  double R = 2.0 * r / sqrt3;
343  double dy = 0.75 * R;
344  int N = (int)(0.5 * rout / r) + 2;
345  const auto& xyoff = geomTools_.shiftXY(layercenter, (waferSize_ + waferSepar_));
346 #ifdef EDM_ML_DEBUG
347  int ium(0), ivm(0), iumAll(0), ivmAll(0), kount(0), ntot(0), nin(0);
348  std::vector<int> ntype(6, 0);
349  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: " << glog.name() << " rout " << rout << " N " << N
350  << " for maximum u, v; r " << r << " R " << R << " dy " << dy << " Shift "
351  << xyoff.first << ":" << xyoff.second << " WaferSize " << (waferSize_ + waferSepar_);
352 #endif
353 
354  for (int u = -N; u <= N; ++u) {
355  for (int v = -N; v <= N; ++v) {
356  int nr = 2 * v;
357  int nc = -2 * u + v;
358  double xpos = xyoff.first + nc * r;
359  double ypos = xyoff.second + nr * dy;
360  const auto& corner = HGCalGeomTools::waferCorner(xpos, ypos, r, R, rin, rout, false);
361 #ifdef EDM_ML_DEBUG
362  int iu = std::abs(u);
363  int iv = std::abs(v);
364  ++ntot;
365  if (((corner.first <= 0) && std::abs(u) < 5 && std::abs(v) < 5) || (std::abs(u) < 2 && std::abs(v) < 2)) {
366  edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: " << glog.name() << " R " << rin << ":" << rout << "\n Z "
367  << zpos << " LayerType " << layertype << " u " << u << " v " << v << " with "
368  << corner.first << " corners";
369  }
370 #endif
371  if (corner.first > 0) {
372  int type = waferType_->getType(xpos, ypos, zpos);
373  int copy = HGCalTypes::packTypeUV(type, u, v);
374 #ifdef EDM_ML_DEBUG
375  if (iu > ium)
376  ium = iu;
377  if (iv > ivm)
378  ivm = iv;
379  kount++;
380  if (copies_.count(copy) == 0)
381  copies_.insert(copy);
382 #endif
383  if (corner.first == (int)(HGCalParameters::k_CornerSize)) {
384 #ifdef EDM_ML_DEBUG
385  if (iu > iumAll)
386  iumAll = iu;
387  if (iv > ivmAll)
388  ivmAll = iv;
389  ++nin;
390 #endif
391 
392  dd4hep::Position tran(xpos, ypos, 0.0);
393  if (layertype > 1)
394  type += 3;
395  glog.placeVolume(ns.volume(wafers_[type]), copy, tran);
396 #ifdef EDM_ML_DEBUG
397  ++ntype[type];
398  edm::LogVerbatim("HGCalGeom") << " DDHGCalEEAlgo: " << wafers_[type] << " number " << copy
399  << " positioned in " << glog.name() << " at " << tran << " with no rotation";
400 #endif
401  }
402  }
403  }
404  }
405 
406 #ifdef EDM_ML_DEBUG
407  edm::LogVerbatim("HGCalGeom") << " DDHGCalEEAlgo: Maximum # of u " << ium << ":" << iumAll << " # of v " << ivm
408  << ":" << ivmAll << " and " << nin << ":" << kount << ":" << ntot << " wafers ("
409  << ntype[0] << ":" << ntype[1] << ":" << ntype[2] << ":" << ntype[3] << ":"
410  << ntype[4] << ":" << ntype[5] << ") for " << glog.name() << " R " << rin << ":"
411  << rout;
412 #endif
413  }

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

Member Data Documentation

◆ absorbMode_

int HGCalEEAlgo::absorbMode_

Definition at line 44 of file DDHGCalEEAlgo.cc.

◆ alpha_

double HGCalEEAlgo::alpha_

Definition at line 63 of file DDHGCalEEAlgo.cc.

◆ choiceType_

int HGCalEEAlgo::choiceType_

Definition at line 50 of file DDHGCalEEAlgo.cc.

◆ copies_

std::unordered_set<int> HGCalEEAlgo::copies_

Definition at line 62 of file DDHGCalEEAlgo.cc.

◆ copyNumber_

std::vector<int> HGCalEEAlgo::copyNumber_

Definition at line 37 of file DDHGCalEEAlgo.cc.

◆ cosAlpha_

double HGCalEEAlgo::cosAlpha_

Definition at line 63 of file DDHGCalEEAlgo.cc.

◆ firstLayer_

int HGCalEEAlgo::firstLayer_

Definition at line 43 of file DDHGCalEEAlgo.cc.

◆ fracAreaMin_

double HGCalEEAlgo::fracAreaMin_

Definition at line 52 of file DDHGCalEEAlgo.cc.

◆ geomTools_

HGCalGeomTools HGCalEEAlgo::geomTools_

Definition at line 29 of file DDHGCalEEAlgo.cc.

◆ layerCenter_

std::vector<int> HGCalEEAlgo::layerCenter_

Definition at line 42 of file DDHGCalEEAlgo.cc.

◆ layers_

std::vector<int> HGCalEEAlgo::layers_

Definition at line 38 of file DDHGCalEEAlgo.cc.

◆ layerSense_

std::vector<int> HGCalEEAlgo::layerSense_

Definition at line 41 of file DDHGCalEEAlgo.cc.

◆ layerThick_

std::vector<double> HGCalEEAlgo::layerThick_

Definition at line 39 of file DDHGCalEEAlgo.cc.

◆ layerType_

std::vector<int> HGCalEEAlgo::layerType_

Definition at line 40 of file DDHGCalEEAlgo.cc.

◆ materials_

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

Definition at line 34 of file DDHGCalEEAlgo.cc.

◆ mother_

dd4hep::Volume HGCalEEAlgo::mother_

Definition at line 31 of file DDHGCalEEAlgo.cc.

◆ names_

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

Definition at line 35 of file DDHGCalEEAlgo.cc.

◆ nCutRadPar_

int HGCalEEAlgo::nCutRadPar_

Definition at line 51 of file DDHGCalEEAlgo.cc.

◆ rad100to200_

std::vector<double> HGCalEEAlgo::rad100to200_

Definition at line 47 of file DDHGCalEEAlgo.cc.

◆ rad200to300_

std::vector<double> HGCalEEAlgo::rad200to300_

Definition at line 48 of file DDHGCalEEAlgo.cc.

◆ rMaxFront_

std::vector<double> HGCalEEAlgo::rMaxFront_

Definition at line 61 of file DDHGCalEEAlgo.cc.

◆ rMinFront_

std::vector<double> HGCalEEAlgo::rMinFront_

Definition at line 58 of file DDHGCalEEAlgo.cc.

◆ sectors_

int HGCalEEAlgo::sectors_

Definition at line 55 of file DDHGCalEEAlgo.cc.

◆ sensitiveMode_

int HGCalEEAlgo::sensitiveMode_

Definition at line 45 of file DDHGCalEEAlgo.cc.

◆ slopeB_

std::vector<double> HGCalEEAlgo::slopeB_

Definition at line 56 of file DDHGCalEEAlgo.cc.

◆ slopeT_

std::vector<double> HGCalEEAlgo::slopeT_

Definition at line 59 of file DDHGCalEEAlgo.cc.

◆ thick_

std::vector<double> HGCalEEAlgo::thick_

Definition at line 36 of file DDHGCalEEAlgo.cc.

◆ wafers_

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

Definition at line 33 of file DDHGCalEEAlgo.cc.

◆ waferSepar_

double HGCalEEAlgo::waferSepar_

Definition at line 54 of file DDHGCalEEAlgo.cc.

◆ waferSize_

double HGCalEEAlgo::waferSize_

Definition at line 53 of file DDHGCalEEAlgo.cc.

◆ waferType_

std::unique_ptr<HGCalWaferType> HGCalEEAlgo::waferType_

Definition at line 30 of file DDHGCalEEAlgo.cc.

◆ zFrontB_

std::vector<double> HGCalEEAlgo::zFrontB_

Definition at line 57 of file DDHGCalEEAlgo.cc.

◆ zFrontT_

std::vector<double> HGCalEEAlgo::zFrontT_

Definition at line 60 of file DDHGCalEEAlgo.cc.

◆ zMinBlock_

double HGCalEEAlgo::zMinBlock_

Definition at line 46 of file DDHGCalEEAlgo.cc.

◆ zMinRadPar_

double HGCalEEAlgo::zMinRadPar_

Definition at line 49 of file DDHGCalEEAlgo.cc.

HGCalEEAlgo::geomTools_
HGCalGeomTools geomTools_
Definition: DDHGCalEEAlgo.cc:29
HGCalEEAlgo::choiceType_
int choiceType_
Definition: DDHGCalEEAlgo.cc:50
HGCalEEAlgo::sectors_
int sectors_
Definition: DDHGCalEEAlgo.cc:55
writedatasetfile.args
args
Definition: writedatasetfile.py:18
HGCalGeomTools::waferCorner
static std::pair< int32_t, int32_t > waferCorner(double xpos, double ypos, double r, double R, double rMin, double rMax, bool oldBug=false)
Definition: HGCalGeomTools.cc:223
mps_fire.i
i
Definition: mps_fire.py:428
geometryCSVtoXML.zz
zz
Definition: geometryCSVtoXML.py:19
HGCalEEAlgo::thick_
std::vector< double > thick_
Definition: DDHGCalEEAlgo.cc:36
g4SimHits_cfi.Material
Material
Definition: g4SimHits_cfi.py:560
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
HGCalEEAlgo::layerSense_
std::vector< int > layerSense_
Definition: DDHGCalEEAlgo.cc:41
HGCalEEAlgo::zFrontT_
std::vector< double > zFrontT_
Definition: DDHGCalEEAlgo.cc:60
HGCalEEAlgo::rad200to300_
std::vector< double > rad200to300_
Definition: DDHGCalEEAlgo.cc:48
HGCalEEAlgo::waferSize_
double waferSize_
Definition: DDHGCalEEAlgo.cc:53
angle_units::operators::convertRadToDeg
constexpr NumType convertRadToDeg(NumType radians)
Definition: angle_units.h:21
cms::DDNamespace
Definition: DDNamespace.h:16
HGCalParameters::k_CornerSize
static constexpr uint32_t k_CornerSize
Definition: HGCalParameters.h:38
distTCMET_cfi.corner
corner
Definition: distTCMET_cfi.py:38
nin
int nin
Definition: CascadeWrapper.h:114
HGCalEEAlgo::sensitiveMode_
int sensitiveMode_
Definition: DDHGCalEEAlgo.cc:45
HGCalEEAlgo::layerThick_
std::vector< double > layerThick_
Definition: DDHGCalEEAlgo.cc:39
HGCalGeomTools::shiftXY
std::pair< double, double > shiftXY(int waferPosition, double waferSize) const
Definition: HGCalGeomTools.cc:170
findQualityFiles.v
v
Definition: findQualityFiles.py:179
HGCalEEAlgo::slopeT_
std::vector< double > slopeT_
Definition: DDHGCalEEAlgo.cc:59
HGCalEEAlgo::zMinBlock_
double zMinBlock_
Definition: DDHGCalEEAlgo.cc:46
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
HGCalEEAlgo::rMinFront_
std::vector< double > rMinFront_
Definition: DDHGCalEEAlgo.cc:58
HGCalEEAlgo::cosAlpha_
double cosAlpha_
Definition: DDHGCalEEAlgo.cc:63
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
N
#define N
Definition: blowfish.cc:9
HGCalEEAlgo::wafers_
std::vector< std::string > wafers_
Definition: DDHGCalEEAlgo.cc:33
HGCalEEAlgo::rad100to200_
std::vector< double > rad100to200_
Definition: DDHGCalEEAlgo.cc:47
PixelTestBeamValidation_cfi.Position
Position
Definition: PixelTestBeamValidation_cfi.py:75
dqmdumpme.k
k
Definition: dqmdumpme.py:60
HGCalTypes::packTypeUV
static int32_t packTypeUV(int type, int u, int v)
Definition: HGCalTypes.cc:3
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HGCalEEAlgo::copies_
std::unordered_set< int > copies_
Definition: DDHGCalEEAlgo.cc:62
angle_units::piRadians
constexpr long double piRadians(M_PIl)
cms::Volume
dd4hep::Volume Volume
Definition: DDFilteredView.h:47
HGCalEEAlgo::waferSepar_
double waferSepar_
Definition: DDHGCalEEAlgo.cc:54
EgHLTOffHistBins_cfi.nr
nr
Definition: EgHLTOffHistBins_cfi.py:4
HGCalEEAlgo::zFrontB_
std::vector< double > zFrontB_
Definition: DDHGCalEEAlgo.cc:57
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
HGCalEEAlgo::layerType_
std::vector< int > layerType_
Definition: DDHGCalEEAlgo.cc:40
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:39
createfilelist.int
int
Definition: createfilelist.py:10
HGCalEEAlgo::copyNumber_
std::vector< int > copyNumber_
Definition: DDHGCalEEAlgo.cc:37
cms::DDAlgoArguments
Definition: DDAlgoArguments.h:28
HGCalEEAlgo::materials_
std::vector< std::string > materials_
Definition: DDHGCalEEAlgo.cc:34
PVValHelper::dy
Definition: PVValidationHelpers.h:49
HGCalEEAlgo::firstLayer_
int firstLayer_
Definition: DDHGCalEEAlgo.cc:43
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
itr
std::vector< std::pair< float, float > >::iterator itr
Definition: HGCDigitizer.cc:29
HGCalEEAlgo::names_
std::vector< std::string > names_
Definition: DDHGCalEEAlgo.cc:35
HGCalEEAlgo::nCutRadPar_
int nCutRadPar_
Definition: DDHGCalEEAlgo.cc:51
alignCSCRings.r
r
Definition: alignCSCRings.py:93
HGCalGeomTools::radius
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)
Definition: HGCalGeomTools.cc:11
HGCalEEAlgo::slopeB_
std::vector< double > slopeB_
Definition: DDHGCalEEAlgo.cc:56
HGCalEEAlgo::ConstructAlgo
void ConstructAlgo(cms::DDParsingContext &ctxt, xml_h e)
Definition: DDHGCalEEAlgo.cc:182
HGCalEEAlgo::waferType_
std::unique_ptr< HGCalWaferType > waferType_
Definition: DDHGCalEEAlgo.cc:30
HGCalEEAlgo::absorbMode_
int absorbMode_
Definition: DDHGCalEEAlgo.cc:44
diffTwoXMLs.r1
r1
Definition: diffTwoXMLs.py:53
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
HGCalGeometryMode::Polyhedra
Definition: HGCalGeometryMode.h:35
HGCalEEAlgo::rMaxFront_
std::vector< double > rMaxFront_
Definition: DDHGCalEEAlgo.cc:61
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
HGCalEEAlgo::layerCenter_
std::vector< int > layerCenter_
Definition: DDHGCalEEAlgo.cc:42
HGCalEEAlgo::ConstructLayers
void ConstructLayers(const dd4hep::Volume module, cms::DDParsingContext &ctxt, xml_h e)
Definition: DDHGCalEEAlgo.cc:200
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HGCalEEAlgo::zMinRadPar_
double zMinRadPar_
Definition: DDHGCalEEAlgo.cc:49
HGCalEEAlgo::mother_
dd4hep::Volume mother_
Definition: DDHGCalEEAlgo.cc:31
edm::Log
Definition: MessageLogger.h:70
dttmaxenums::R
Definition: DTTMax.h:29
HGCalEEAlgo::fracAreaMin_
double fracAreaMin_
Definition: DDHGCalEEAlgo.cc:52
cuy.ii
ii
Definition: cuy.py:590
HGCalEEAlgo::alpha_
double alpha_
Definition: DDHGCalEEAlgo.cc:63
HGCalEEAlgo::layers_
std::vector< int > layers_
Definition: DDHGCalEEAlgo.cc:38
HGCalEEAlgo::PositionSensitive
void PositionSensitive(cms::DDParsingContext &ctxt, xml_h e, const dd4hep::Volume &glog, double rin, double rout, double zpos, int layertype, int layercenter)
Definition: DDHGCalEEAlgo.cc:331
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37