CMS 3D CMS Logo

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

Public Member Functions

 HGCalSiliconModule ()
 
 HGCalSiliconModule (cms::DDParsingContext &ctxt, xml_h e)
 
void positionSensitive (cms::DDParsingContext &ctxt, xml_h e, const dd4hep::Volume &glog, int layertype, int layer)
 

Public Attributes

int absorbMode_
 
double alpha_
 
std::unordered_set< int > copies_
 
std::vector< int > copyNumber_
 
double cosAlpha_
 
int facingTypes_
 
int firstLayer_
 
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_
 
std::vector< std::string > names_
 
int orientationTypes_
 
int partialTypes_
 
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 > waferFull_
 
std::vector< int > waferIndex_
 
std::vector< int > waferLayerStart_
 
std::vector< std::string > waferPart_
 
std::vector< int > waferProperty_
 
double waferSepar_
 
double waferSize_
 
int waferTypes_
 
std::vector< double > zFrontB_
 
std::vector< double > zFrontT_
 
double zMinBlock_
 

Detailed Description

Definition at line 28 of file DDHGCalSiliconModule.cc.

Constructor & Destructor Documentation

◆ HGCalSiliconModule() [1/2]

HGCalSiliconModule::HGCalSiliconModule ( )
inline

Definition at line 29 of file DDHGCalSiliconModule.cc.

29 { throw cms::Exception("HGCalGeom") << "Wrong initialization to HGCalSiliconModule"; }

References Exception.

◆ HGCalSiliconModule() [2/2]

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

Definition at line 30 of file DDHGCalSiliconModule.cc.

30  {
31  cms::DDNamespace ns(ctxt, e, true);
33 
34 #ifdef EDM_ML_DEBUG
35  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: Creating an instance";
36 #endif
37  static constexpr double tol1 = 0.01 * dd4hep::mm;
38  static constexpr double tol2 = 0.00001 * dd4hep::mm;
39 
40  dd4hep::Volume mother = ns.volume(args.parentName());
41  waferTypes_ = args.value<int>("WaferTypes");
42  facingTypes_ = args.value<int>("FacingTypes");
43  partialTypes_ = args.value<int>("PartialTypes");
44  orientationTypes_ = args.value<int>("OrientationTypes");
45 #ifdef EDM_ML_DEBUG
46  edm::LogVerbatim("HGCalGeom") << "Number of types of wafers: " << waferTypes_ << " facings: " << facingTypes_
47  << " partials: " << partialTypes_ << " Orientations: " << orientationTypes_;
48 #endif
49  firstLayer_ = args.value<int>("FirstLayer");
50  absorbMode_ = args.value<int>("AbsorberMode");
51  sensitiveMode_ = args.value<int>("SensitiveMode");
52 #ifdef EDM_ML_DEBUG
53  edm::LogVerbatim("HGCalGeom") << "First Layer " << firstLayer_ << " and "
54  << "Absober:Sensitive mode " << absorbMode_ << ":" << sensitiveMode_;
55 #endif
56  zMinBlock_ = args.value<double>("zMinBlock");
57  waferSize_ = args.value<double>("waferSize");
58  waferSepar_ = args.value<double>("SensorSeparation");
59  sectors_ = args.value<int>("Sectors");
60  alpha_ = (1._pi) / sectors_;
61  cosAlpha_ = cos(alpha_);
62 #ifdef EDM_ML_DEBUG
63  edm::LogVerbatim("HGCalGeom") << "zStart " << cms::convert2mm(zMinBlock_) << " wafer width "
64  << cms::convert2mm(waferSize_) << " separations " << cms::convert2mm(waferSepar_)
65  << " sectors " << sectors_ << ":" << convertRadToDeg(alpha_) << ":" << cosAlpha_;
66 #endif
67  waferFull_ = args.value<std::vector<std::string>>("WaferNamesFull");
68  waferPart_ = args.value<std::vector<std::string>>("WaferNamesPartial");
69 #ifdef EDM_ML_DEBUG
70  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: " << waferFull_.size() << " full and " << waferPart_.size()
71  << " partial modules\nDDHGCalSiliconModule:Full Modules:";
72  unsigned int i1max = static_cast<unsigned int>(waferFull_.size());
73  for (unsigned int i1 = 0; i1 < i1max; i1 += 2) {
74  std::ostringstream st1;
75  unsigned int i2 = std::min((i1 + 2), i1max);
76  for (unsigned int i = i1; i < i2; ++i)
77  st1 << " [" << i << "] " << waferFull_[i];
78  edm::LogVerbatim("HGCalGeom") << st1.str() << std::endl;
79  }
80  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: Partial Modules:";
81  i1max = static_cast<unsigned int>(waferPart_.size());
82  for (unsigned int i1 = 0; i1 < i1max; i1 += 2) {
83  std::ostringstream st1;
84  unsigned int i2 = std::min((i1 + 2), i1max);
85  for (unsigned int i = i1; i < i2; ++i)
86  st1 << " [" << i << "] " << waferPart_[i];
87  edm::LogVerbatim("HGCalGeom") << st1.str() << std::endl;
88  }
89 #endif
90  materials_ = args.value<std::vector<std::string>>("MaterialNames");
91  names_ = args.value<std::vector<std::string>>("VolumeNames");
92  thick_ = args.value<std::vector<double>>("Thickness");
93  copyNumber_.resize(materials_.size(), 1);
94 #ifdef EDM_ML_DEBUG
95  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: " << materials_.size() << " types of volumes";
96  for (unsigned int i = 0; i < names_.size(); ++i)
97  edm::LogVerbatim("HGCalGeom") << "Volume [" << i << "] " << names_[i] << " of thickness "
98  << cms::convert2mm(thick_[i]) << " filled with " << materials_[i]
99  << " first copy number " << copyNumber_[i];
100 #endif
101  layers_ = args.value<std::vector<int>>("Layers");
102  layerThick_ = args.value<std::vector<double>>("LayerThick");
103 #ifdef EDM_ML_DEBUG
104  edm::LogVerbatim("HGCalGeom") << "There are " << layers_.size() << " blocks";
105  for (unsigned int i = 0; i < layers_.size(); ++i)
106  edm::LogVerbatim("HGCalGeom") << "Block [" << i << "] of thickness " << cms::convert2mm(layerThick_[i])
107  << " with " << layers_[i] << " layers";
108 #endif
109  layerType_ = args.value<std::vector<int>>("LayerType");
110  layerSense_ = args.value<std::vector<int>>("LayerSense");
111  layerCenter_ = args.value<std::vector<int>>("LayerCenter");
112 #ifdef EDM_ML_DEBUG
113  for (unsigned int i = 0; i < layerCenter_.size(); ++i)
114  edm::LogVerbatim("HGCalGeom") << "LayerCenter [" << i << "] " << layerCenter_[i];
115 #endif
116  if (firstLayer_ > 0) {
117  for (unsigned int i = 0; i < layerType_.size(); ++i) {
118  if (layerSense_[i] > 0) {
119  int ii = layerType_[i];
120  copyNumber_[ii] = (layerSense_[i] == 1) ? firstLayer_ : (firstLayer_ + 1);
121 #ifdef EDM_ML_DEBUG
122  edm::LogVerbatim("HGCalGeom") << "First copy number for layer type " << i << ":" << ii << " with "
123  << materials_[ii] << " changed to " << copyNumber_[ii];
124 #endif
125  }
126  }
127  } else {
128  firstLayer_ = 1;
129  }
130 #ifdef EDM_ML_DEBUG
131  edm::LogVerbatim("HGCalGeom") << "There are " << layerType_.size() << " layers";
132  for (unsigned int i = 0; i < layerType_.size(); ++i)
133  edm::LogVerbatim("HGCalGeom") << "Layer [" << i << "] with material type " << layerType_[i] << " sensitive class "
134  << layerSense_[i];
135 #endif
136  slopeB_ = args.value<std::vector<double>>("SlopeBottom");
137  zFrontB_ = args.value<std::vector<double>>("ZFrontBottom");
138  rMinFront_ = args.value<std::vector<double>>("RMinFront");
139  slopeT_ = args.value<std::vector<double>>("SlopeTop");
140  zFrontT_ = args.value<std::vector<double>>("ZFrontTop");
141  rMaxFront_ = args.value<std::vector<double>>("RMaxFront");
142 #ifdef EDM_ML_DEBUG
143  for (unsigned int i = 0; i < slopeB_.size(); ++i)
144  edm::LogVerbatim("HGCalGeom") << "Bottom Block [" << i << "] Zmin " << cms::convert2mm(zFrontB_[i]) << " Rmin "
145  << cms::convert2mm(rMinFront_[i]) << " Slope " << slopeB_[i];
146  for (unsigned int i = 0; i < slopeT_.size(); ++i)
147  edm::LogVerbatim("HGCalGeom") << "Top Block [" << i << "] Zmin " << cms::convert2mm(zFrontT_[i]) << " Rmax "
148  << cms::convert2mm(rMaxFront_[i]) << " Slope " << slopeT_[i];
149 #endif
150  waferIndex_ = args.value<std::vector<int>>("WaferIndex");
151  waferProperty_ = args.value<std::vector<int>>("WaferProperties");
152  waferLayerStart_ = args.value<std::vector<int>>("WaferLayerStart");
153 #ifdef EDM_ML_DEBUG
154  edm::LogVerbatim("HGCalGeom") << "waferProperties with " << waferIndex_.size() << " entries in "
155  << waferLayerStart_.size() << " layers";
156  for (unsigned int k = 0; k < waferLayerStart_.size(); ++k)
157  edm::LogVerbatim("HGCalGeom") << "LayerStart[" << k << "] " << waferLayerStart_[k];
158  for (unsigned int k = 0; k < waferIndex_.size(); ++k)
159  edm::LogVerbatim("HGCalGeom") << "Wafer[" << k << "] " << waferIndex_[k] << " ("
162  << HGCalWaferIndex::waferV(waferIndex_[k]) << ") : ("
166  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: NameSpace " << ns.name();
167 #endif
168 
169 #ifdef EDM_ML_DEBUG
170  edm::LogVerbatim("HGCalGeom") << "==>> Constructing DDHGCalSiliconModule...";
171  copies_.clear();
172 #endif
173 
174  double zi(zMinBlock_);
175  int laymin(0);
176  for (unsigned int i = 0; i < layers_.size(); ++i) {
177  double zo = zi + layerThick_[i];
178  double routF = HGCalGeomTools::radius(zi, zFrontT_, rMaxFront_, slopeT_);
179  int laymax = laymin + layers_[i];
180  double zz = zi;
181  double thickTot(0);
182  for (int ly = laymin; ly < laymax; ++ly) {
183  int ii = layerType_[ly];
184  int copy = copyNumber_[ii];
185  double hthick = 0.5 * thick_[ii];
186  double rinB = HGCalGeomTools::radius(zo - tol1, zFrontB_, rMinFront_, slopeB_);
187  zz += hthick;
188  thickTot += thick_[ii];
189 
190  std::string name = names_[ii] + std::to_string(copy);
191 #ifdef EDM_ML_DEBUG
192  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: Layer " << ly << ":" << ii << " Front "
193  << cms::convert2mm(zi) << ", " << cms::convert2mm(routF) << " Back "
194  << cms::convert2mm(zo) << ", " << cms::convert2mm(rinB)
195  << " superlayer thickness " << cms::convert2mm(layerThick_[i]);
196 #endif
197 
198  dd4hep::Material matter = ns.material(materials_[ii]);
199  dd4hep::Volume glog;
200 
201  if (layerSense_[ly] < 1) {
202  std::vector<double> pgonZ, pgonRin, pgonRout;
203  double rmax = routF * cosAlpha_ - tol1;
204  HGCalGeomTools::radius(zz - hthick,
205  zz + hthick,
206  zFrontB_,
207  rMinFront_,
208  slopeB_,
209  zFrontT_,
210  rMaxFront_,
211  slopeT_,
212  -layerSense_[ly],
213  pgonZ,
214  pgonRin,
215  pgonRout);
216  for (unsigned int isec = 0; isec < pgonZ.size(); ++isec) {
217  pgonZ[isec] -= zz;
218  if (layerSense_[ly] == 0 || absorbMode_ == 0)
219  pgonRout[isec] = rmax;
220  else
221  pgonRout[isec] = pgonRout[isec] * cosAlpha_ - tol1;
222  }
223  dd4hep::Solid solid = dd4hep::Polyhedra(sectors_, -alpha_, 2._pi, pgonZ, pgonRin, pgonRout);
224  ns.addSolidNS(ns.prepend(name), solid);
225  glog = dd4hep::Volume(solid.name(), solid, matter);
226  ns.addVolumeNS(glog);
227 #ifdef EDM_ML_DEBUG
228  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: " << solid.name() << " polyhedra of " << sectors_
229  << " sectors covering " << convertRadToDeg(-alpha_) << ":"
230  << convertRadToDeg(-alpha_ + 2._pi) << " with " << pgonZ.size()
231  << " sections and filled with " << matter.name();
232  for (unsigned int k = 0; k < pgonZ.size(); ++k)
233  edm::LogVerbatim("HGCalGeom") << "[" << k << "] z " << cms::convert2mm(pgonZ[k]) << " R "
234  << cms::convert2mm(pgonRin[k]) << ":" << cms::convert2mm(pgonRout[k]);
235 #endif
236  } else {
237  double rins =
238  (sensitiveMode_ < 1) ? rinB : HGCalGeomTools::radius(zz + hthick - tol1, zFrontB_, rMinFront_, slopeB_);
239  double routs =
240  (sensitiveMode_ < 1) ? routF : HGCalGeomTools::radius(zz - hthick, zFrontT_, rMaxFront_, slopeT_);
241  dd4hep::Solid solid = dd4hep::Tube(rins, routs, hthick, 0.0, 2._pi);
242  ns.addSolidNS(ns.prepend(name), solid);
243  glog = dd4hep::Volume(solid.name(), solid, matter);
244  ns.addVolumeNS(glog);
245 
246 #ifdef EDM_ML_DEBUG
247  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: " << solid.name() << " Tubs made of " << matter.name()
248  << " of dimensions " << cms::convert2mm(rinB) << ":" << cms::convert2mm(rins)
249  << ", " << cms::convert2mm(routF) << ":" << cms::convert2mm(routs) << ", "
250  << cms::convert2mm(hthick) << ", 0.0, 360.0 and position " << glog.name()
251  << " number " << copy << ":" << layerCenter_[copy - firstLayer_];
252 #endif
253  positionSensitive(ctxt, e, glog, layerSense_[ly], (copy - firstLayer_));
254  }
255 
256  dd4hep::Position r1(0, 0, zz);
257  mother.placeVolume(glog, copy, r1);
258  int inc = ((layerSense_[ly] > 0) && (facingTypes_ > 1)) ? 2 : 1;
259  copyNumber_[ii] = copy + inc;
260 #ifdef EDM_ML_DEBUG
261  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: " << glog.name() << " number " << copy
262  << " positioned in " << mother.name() << " at (0,0," << cms::convert2mm(zz)
263  << ") with no rotation";
264 #endif
265  zz += hthick;
266  } // End of loop over layers in a block
267  zi = zo;
268  laymin = laymax;
269  // Make consistency check of all the partitions of the block
270  if (std::abs(thickTot - layerThick_[i]) >= tol2) {
271  if (thickTot > layerThick_[i]) {
272  edm::LogError("HGCalGeom") << "Thickness of the partition " << cms::convert2mm(layerThick_[i])
273  << " is smaller than " << cms::convert2mm(thickTot)
274  << ": thickness of all its components **** ERROR ****";
275  } else {
276  edm::LogWarning("HGCalGeom") << "Thickness of the partition " << cms::convert2mm(layerThick_[i])
277  << " does not match with " << cms::convert2mm(thickTot) << " of the components";
278  }
279  }
280  } // End of loop over blocks
281 
282 #ifdef EDM_ML_DEBUG
283  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: " << copies_.size() << " different wafer copy numbers";
284  int k(0);
285  for (std::unordered_set<int>::const_iterator itr = copies_.begin(); itr != copies_.end(); ++itr, ++k) {
286  edm::LogVerbatim("HGCalGeom") << "Copy [" << k << "] : " << (*itr);
287  }
288  copies_.clear();
289  edm::LogVerbatim("HGCalGeom") << "<<== End of DDHGCalSiliconModule construction...";
290 #endif
291  }

References funct::abs(), cms::DDNamespace::addSolidNS(), cms::DDNamespace::addVolumeNS(), writedatasetfile::args, cms::convert2mm(), angle_units::operators::convertRadToDeg(), filterCSVwithJSON::copy, funct::cos(), MillePedeFileConverter_cfg::e, mps_fire::i, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, cuy::ii, dqmdumpme::k, cms::DDNamespace::material(), g4SimHits_cfi::Material, min(), Skims_PA_cff::name, cms::DDNamespace::name(), HGCalGeometryMode::Polyhedra, PixelTestBeamValidation_cfi::Position, cms::DDNamespace::prepend(), diffTwoXMLs::r1, HGCalGeomTools::radius(), AlCaHLTBitMon_QueryRunRegistry::string, cms::DDNamespace::volume(), HGCalWaferIndex::waferLayer(), HGCalProperty::waferOrient(), HGCalProperty::waferPartial(), HGCalProperty::waferThick(), HGCalWaferIndex::waferU(), HGCalWaferIndex::waferV(), and geometryCSVtoXML::zz.

Member Function Documentation

◆ positionSensitive()

void HGCalSiliconModule::positionSensitive ( cms::DDParsingContext ctxt,
xml_h  e,
const dd4hep::Volume &  glog,
int  layertype,
int  layer 
)
inline

Definition at line 293 of file DDHGCalSiliconModule.cc.

293  {
294  cms::DDNamespace ns(ctxt, e, true);
295  static const double sqrt3 = std::sqrt(3.0);
296  int layercenter = layerCenter_[layer];
297  int firstWafer = waferLayerStart_[layer];
298  int lastWafer = ((layer + 1 < static_cast<int>(waferLayerStart_.size())) ? waferLayerStart_[layer + 1]
299  : static_cast<int>(waferIndex_.size()));
300  double r = 0.5 * (waferSize_ + waferSepar_);
301  double R = 2.0 * r / sqrt3;
302  double dy = 0.75 * R;
303  const auto& xyoff = geomTools_.shiftXY(layercenter, (waferSize_ + waferSepar_));
304 #ifdef EDM_ML_DEBUG
305  int ium(0), ivm(0), kount(0);
306  std::vector<int> ntype(3, 0);
307  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: " << glog.name() << " r " << cms::convert2mm(r) << " R "
308  << cms::convert2mm(R) << " dy " << cms::convert2mm(dy) << " Shift "
309  << cms::convert2mm(xyoff.first) << ":" << cms::convert2mm(xyoff.second)
310  << " WaferSize " << cms::convert2mm((waferSize_ + waferSepar_)) << " index "
311  << firstWafer << ":" << (lastWafer - 1);
312 #endif
313  for (int k = firstWafer; k < lastWafer; ++k) {
316 #ifdef EDM_ML_DEBUG
317  int iu = std::abs(u);
318  int iv = std::abs(v);
319 #endif
320  int nr = 2 * v;
321  int nc = -2 * u + v;
322  double xpos = xyoff.first + nc * r;
323  double ypos = xyoff.second + nr * dy;
327  std::string wafer;
328  int i(999);
329  if (part == HGCalTypes::WaferFull) {
330  i = (layertype - 1) * waferTypes_ + type;
331  wafer = waferFull_[i];
332  } else {
334  (layertype - 1) * waferTypes_ * orientationTypes_ + type * orientationTypes_ + orien;
335 #ifdef EDM_ML_DEBUG
336  edm::LogVerbatim("HGCalGeom") << " layertype:type:part:orien:ind " << layertype << ":" << type << ":" << part
337  << ":" << orien << ":" << i << ":" << waferPart_.size();
338 #endif
339  wafer = waferPart_[i];
340  }
341  int copy = HGCalTypes::packTypeUV(type, u, v);
342 #ifdef EDM_ML_DEBUG
343  edm::LogVerbatim("HGCalGeom") << " DDHGCalSiliconModule: Layer" << HGCalWaferIndex::waferLayer(waferIndex_[k])
344  << " Wafer " << wafer << " number " << copy << " type:part:orien:ind " << type
345  << ":" << part << ":" << orien << ":" << i << " layer:u:v:indx "
346  << (layer + firstLayer_) << ":" << u << ":" << v;
347  if (iu > ium)
348  ium = iu;
349  if (iv > ivm)
350  ivm = iv;
351  kount++;
352  if (copies_.count(copy) == 0)
353  copies_.insert(copy);
354 #endif
355  dd4hep::Position tran(xpos, ypos, 0.0);
356  glog.placeVolume(ns.volume(wafer), copy, tran);
357 #ifdef EDM_ML_DEBUG
358  ++ntype[type];
359  edm::LogVerbatim("HGCalGeom") << " DDHGCalSiliconModule: " << wafer << " number " << copy << " type " << layertype
360  << ":" << type << " positioned in " << glog.name() << " at ("
361  << cms::convert2mm(xpos) << "," << cms::convert2mm(ypos) << ",0) with no rotation";
362 #endif
363  }
364 
365 #ifdef EDM_ML_DEBUG
366  edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconModule: Maximum # of u " << ium << " # of v " << ivm << " and "
367  << kount << " wafers (" << ntype[0] << ":" << ntype[1] << ":" << ntype[2] << ") for "
368  << glog.name();
369 #endif
370  }

References funct::abs(), cms::convert2mm(), filterCSVwithJSON::copy, PVValHelper::dy, MillePedeFileConverter_cfg::e, mps_fire::i, gpuVertexFinder::iv, dqmdumpme::k, phase1PixelTopology::layer, EgHLTOffHistBins_cfi::nr, HGCalTypes::packTypeUV(), PixelTestBeamValidation_cfi::Position, dttmaxenums::R, alignCSCRings::r, mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, findQualityFiles::v, cms::DDNamespace::volume(), HGCalTypes::WaferFull, HGCalWaferIndex::waferLayer(), HGCalProperty::waferOrient(), HGCalProperty::waferPartial(), HGCalProperty::waferThick(), HGCalWaferIndex::waferU(), and HGCalWaferIndex::waferV().

Member Data Documentation

◆ absorbMode_

int HGCalSiliconModule::absorbMode_

Definition at line 380 of file DDHGCalSiliconModule.cc.

◆ alpha_

double HGCalSiliconModule::alpha_

Definition at line 407 of file DDHGCalSiliconModule.cc.

◆ copies_

std::unordered_set<int> HGCalSiliconModule::copies_

Definition at line 406 of file DDHGCalSiliconModule.cc.

◆ copyNumber_

std::vector<int> HGCalSiliconModule::copyNumber_

Definition at line 391 of file DDHGCalSiliconModule.cc.

◆ cosAlpha_

double HGCalSiliconModule::cosAlpha_

Definition at line 407 of file DDHGCalSiliconModule.cc.

◆ facingTypes_

int HGCalSiliconModule::facingTypes_

Definition at line 376 of file DDHGCalSiliconModule.cc.

◆ firstLayer_

int HGCalSiliconModule::firstLayer_

Definition at line 379 of file DDHGCalSiliconModule.cc.

◆ geomTools_

HGCalGeomTools HGCalSiliconModule::geomTools_

Definition at line 373 of file DDHGCalSiliconModule.cc.

◆ layerCenter_

std::vector<int> HGCalSiliconModule::layerCenter_

Definition at line 396 of file DDHGCalSiliconModule.cc.

◆ layers_

std::vector<int> HGCalSiliconModule::layers_

Definition at line 392 of file DDHGCalSiliconModule.cc.

◆ layerSense_

std::vector<int> HGCalSiliconModule::layerSense_

Definition at line 395 of file DDHGCalSiliconModule.cc.

◆ layerThick_

std::vector<double> HGCalSiliconModule::layerThick_

Definition at line 393 of file DDHGCalSiliconModule.cc.

◆ layerType_

std::vector<int> HGCalSiliconModule::layerType_

Definition at line 394 of file DDHGCalSiliconModule.cc.

◆ materials_

std::vector<std::string> HGCalSiliconModule::materials_

Definition at line 388 of file DDHGCalSiliconModule.cc.

◆ names_

std::vector<std::string> HGCalSiliconModule::names_

Definition at line 389 of file DDHGCalSiliconModule.cc.

◆ orientationTypes_

int HGCalSiliconModule::orientationTypes_

Definition at line 378 of file DDHGCalSiliconModule.cc.

◆ partialTypes_

int HGCalSiliconModule::partialTypes_

Definition at line 377 of file DDHGCalSiliconModule.cc.

◆ rMaxFront_

std::vector<double> HGCalSiliconModule::rMaxFront_

Definition at line 402 of file DDHGCalSiliconModule.cc.

◆ rMinFront_

std::vector<double> HGCalSiliconModule::rMinFront_

Definition at line 399 of file DDHGCalSiliconModule.cc.

◆ sectors_

int HGCalSiliconModule::sectors_

Definition at line 385 of file DDHGCalSiliconModule.cc.

◆ sensitiveMode_

int HGCalSiliconModule::sensitiveMode_

Definition at line 381 of file DDHGCalSiliconModule.cc.

◆ slopeB_

std::vector<double> HGCalSiliconModule::slopeB_

Definition at line 397 of file DDHGCalSiliconModule.cc.

◆ slopeT_

std::vector<double> HGCalSiliconModule::slopeT_

Definition at line 400 of file DDHGCalSiliconModule.cc.

◆ thick_

std::vector<double> HGCalSiliconModule::thick_

Definition at line 390 of file DDHGCalSiliconModule.cc.

◆ waferFull_

std::vector<std::string> HGCalSiliconModule::waferFull_

Definition at line 386 of file DDHGCalSiliconModule.cc.

◆ waferIndex_

std::vector<int> HGCalSiliconModule::waferIndex_

Definition at line 403 of file DDHGCalSiliconModule.cc.

◆ waferLayerStart_

std::vector<int> HGCalSiliconModule::waferLayerStart_

Definition at line 405 of file DDHGCalSiliconModule.cc.

◆ waferPart_

std::vector<std::string> HGCalSiliconModule::waferPart_

Definition at line 387 of file DDHGCalSiliconModule.cc.

◆ waferProperty_

std::vector<int> HGCalSiliconModule::waferProperty_

Definition at line 404 of file DDHGCalSiliconModule.cc.

◆ waferSepar_

double HGCalSiliconModule::waferSepar_

Definition at line 384 of file DDHGCalSiliconModule.cc.

◆ waferSize_

double HGCalSiliconModule::waferSize_

Definition at line 383 of file DDHGCalSiliconModule.cc.

◆ waferTypes_

int HGCalSiliconModule::waferTypes_

Definition at line 375 of file DDHGCalSiliconModule.cc.

◆ zFrontB_

std::vector<double> HGCalSiliconModule::zFrontB_

Definition at line 398 of file DDHGCalSiliconModule.cc.

◆ zFrontT_

std::vector<double> HGCalSiliconModule::zFrontT_

Definition at line 401 of file DDHGCalSiliconModule.cc.

◆ zMinBlock_

double HGCalSiliconModule::zMinBlock_

Definition at line 382 of file DDHGCalSiliconModule.cc.

writedatasetfile.args
args
Definition: writedatasetfile.py:18
testProducerWithPsetDescEmpty_cfi.i2
i2
Definition: testProducerWithPsetDescEmpty_cfi.py:46
HGCalSiliconModule::slopeB_
std::vector< double > slopeB_
Definition: DDHGCalSiliconModule.cc:397
mps_fire.i
i
Definition: mps_fire.py:428
geometryCSVtoXML.zz
zz
Definition: geometryCSVtoXML.py:19
g4SimHits_cfi.Material
Material
Definition: g4SimHits_cfi.py:582
HGCalSiliconModule::facingTypes_
int facingTypes_
Definition: DDHGCalSiliconModule.cc:376
HGCalSiliconModule::layerThick_
std::vector< double > layerThick_
Definition: DDHGCalSiliconModule.cc:393
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
HGCalSiliconModule::zMinBlock_
double zMinBlock_
Definition: DDHGCalSiliconModule.cc:382
min
T min(T a, T b)
Definition: MathUtil.h:58
angle_units::operators::convertRadToDeg
constexpr NumType convertRadToDeg(NumType radians)
Definition: angle_units.h:21
cms::DDNamespace
Definition: DDNamespace.h:16
gpuVertexFinder::iv
int32_t *__restrict__ iv
Definition: gpuClusterTracksDBSCAN.h:42
HGCalTypes::WaferFull
Definition: HGCalTypes.h:50
testProducerWithPsetDescEmpty_cfi.i1
i1
Definition: testProducerWithPsetDescEmpty_cfi.py:45
HGCalWaferIndex::waferU
int32_t waferU(const int32_t index)
Definition: HGCalWaferIndex.cc:27
HGCalProperty::waferOrient
int32_t waferOrient(const int32_t property)
Definition: HGCalProperty.cc:17
HGCalGeomTools::shiftXY
std::pair< double, double > shiftXY(int waferPosition, double waferSize) const
Definition: HGCalGeomTools.cc:176
HGCalSiliconModule::absorbMode_
int absorbMode_
Definition: DDHGCalSiliconModule.cc:380
HGCalSiliconModule::sensitiveMode_
int sensitiveMode_
Definition: DDHGCalSiliconModule.cc:381
findQualityFiles.v
v
Definition: findQualityFiles.py:179
HGCalSiliconModule::layerCenter_
std::vector< int > layerCenter_
Definition: DDHGCalSiliconModule.cc:396
HGCalSiliconModule::waferIndex_
std::vector< int > waferIndex_
Definition: DDHGCalSiliconModule.cc:403
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
HGCalSiliconModule::copyNumber_
std::vector< int > copyNumber_
Definition: DDHGCalSiliconModule.cc:391
HGCalSiliconModule::sectors_
int sectors_
Definition: DDHGCalSiliconModule.cc:385
HGCalSiliconModule::partialTypes_
int partialTypes_
Definition: DDHGCalSiliconModule.cc:377
part
part
Definition: HCALResponse.h:20
HGCalSiliconModule::slopeT_
std::vector< double > slopeT_
Definition: DDHGCalSiliconModule.cc:400
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
HGCalSiliconModule::waferLayerStart_
std::vector< int > waferLayerStart_
Definition: DDHGCalSiliconModule.cc:405
HGCalWaferIndex::waferV
int32_t waferV(const int32_t index)
Definition: HGCalWaferIndex.cc:32
HGCalSiliconModule::copies_
std::unordered_set< int > copies_
Definition: DDHGCalSiliconModule.cc:406
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
HGCalSiliconModule::waferFull_
std::vector< std::string > waferFull_
Definition: DDHGCalSiliconModule.cc:386
HGCalSiliconModule::orientationTypes_
int orientationTypes_
Definition: DDHGCalSiliconModule.cc:378
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HGCalSiliconModule::firstLayer_
int firstLayer_
Definition: DDHGCalSiliconModule.cc:379
cms::Volume
dd4hep::Volume Volume
Definition: DDFilteredView.h:47
EgHLTOffHistBins_cfi.nr
nr
Definition: EgHLTOffHistBins_cfi.py:4
HGCalSiliconModule::waferSize_
double waferSize_
Definition: DDHGCalSiliconModule.cc:383
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:40
HGCalProperty::waferThick
int32_t waferThick(const int32_t property)
Definition: HGCalProperty.cc:9
cms::convert2mm
constexpr NumType convert2mm(NumType length)
Definition: DDutils.h:7
HGCalSiliconModule::zFrontB_
std::vector< double > zFrontB_
Definition: DDHGCalSiliconModule.cc:398
cms::DDAlgoArguments
Definition: DDAlgoArguments.h:28
PVValHelper::dy
Definition: PVValidationHelpers.h:50
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
HGCalSiliconModule::waferTypes_
int waferTypes_
Definition: DDHGCalSiliconModule.cc:375
HGCalSiliconModule::layerSense_
std::vector< int > layerSense_
Definition: DDHGCalSiliconModule.cc:395
HGCalProperty::waferPartial
int32_t waferPartial(const int32_t property)
Definition: HGCalProperty.cc:13
alignCSCRings.r
r
Definition: alignCSCRings.py:93
HGCalWaferIndex::waferLayer
int32_t waferLayer(const int32_t index)
Definition: HGCalWaferIndex.cc:23
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
HGCalSiliconModule::layerType_
std::vector< int > layerType_
Definition: DDHGCalSiliconModule.cc:394
HGCalSiliconModule::thick_
std::vector< double > thick_
Definition: DDHGCalSiliconModule.cc:390
diffTwoXMLs.r1
r1
Definition: diffTwoXMLs.py:53
HGCalSiliconModule::rMaxFront_
std::vector< double > rMaxFront_
Definition: DDHGCalSiliconModule.cc:402
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
HGCalGeometryMode::Polyhedra
Definition: HGCalGeometryMode.h:37
HGCalSiliconModule::cosAlpha_
double cosAlpha_
Definition: DDHGCalSiliconModule.cc:407
HGCalSiliconModule::materials_
std::vector< std::string > materials_
Definition: DDHGCalSiliconModule.cc:388
Exception
Definition: hltDiff.cc:245
HGCalSiliconModule::waferSepar_
double waferSepar_
Definition: DDHGCalSiliconModule.cc:384
HGCalSiliconModule::positionSensitive
void positionSensitive(cms::DDParsingContext &ctxt, xml_h e, const dd4hep::Volume &glog, int layertype, int layer)
Definition: DDHGCalSiliconModule.cc:293
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
HGCalSiliconModule::waferProperty_
std::vector< int > waferProperty_
Definition: DDHGCalSiliconModule.cc:404
HGCalSiliconModule::waferPart_
std::vector< std::string > waferPart_
Definition: DDHGCalSiliconModule.cc:387
HGCalSiliconModule::names_
std::vector< std::string > names_
Definition: DDHGCalSiliconModule.cc:389
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
edm::Log
Definition: MessageLogger.h:70
dttmaxenums::R
Definition: DTTMax.h:29
cuy.ii
ii
Definition: cuy.py:590
HGCalSiliconModule::layers_
std::vector< int > layers_
Definition: DDHGCalSiliconModule.cc:392
HGCalSiliconModule::rMinFront_
std::vector< double > rMinFront_
Definition: DDHGCalSiliconModule.cc:399
HGCalSiliconModule::alpha_
double alpha_
Definition: DDHGCalSiliconModule.cc:407
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
HGCalSiliconModule::zFrontT_
std::vector< double > zFrontT_
Definition: DDHGCalSiliconModule.cc:401
HGCalSiliconModule::geomTools_
HGCalGeomTools geomTools_
Definition: DDHGCalSiliconModule.cc:373