CMS 3D CMS Logo

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

#include <Fireworks/Geometry/interface/TGeoFromDddService.h>

Public Member Functions

TGeoManager * getGeoManager ()
 
void postBeginRun (const edm::Run &, const edm::EventSetup &)
 
void postEndRun (const edm::Run &, const edm::EventSetup &)
 
 TGeoFromDddService (const edm::ParameterSet &, edm::ActivityRegistry &)
 
virtual ~TGeoFromDddService ()
 

Private Member Functions

TGeoManager * createManager (int level)
 
TGeoMaterial * createMaterial (const DDMaterial &iMaterial)
 
TGeoShape * createShape (const std::string &iName, const DDSolid &iSolid)
 
TGeoVolume * createVolume (const std::string &iName, const DDSolid &iSolid, const DDMaterial &iMaterial)
 
const TGeoFromDddServiceoperator= (const TGeoFromDddService &)=delete
 
 TGeoFromDddService (const TGeoFromDddService &)=delete
 

Private Attributes

const edm::EventSetupm_eventSetup
 
TGeoManager * m_geoManager
 
int m_level
 
bool m_verbose
 
std::map< std::string, TGeoMaterial * > nameToMaterial_
 
std::map< std::string, TGeoMedium * > nameToMedium_
 
std::map< std::string, TGeoShape * > nameToShape_
 
std::map< std::string, TGeoVolume * > nameToVolume_
 

Detailed Description

Description: [one line class summary]

Usage: <usage>

Definition at line 46 of file TGeoFromDddService.h.

Constructor & Destructor Documentation

◆ TGeoFromDddService() [1/2]

TGeoFromDddService::TGeoFromDddService ( const edm::ParameterSet pset,
edm::ActivityRegistry ar 
)

Definition at line 58 of file TGeoFromDddService.cc.

59  : m_level(pset.getUntrackedParameter<int>("level", 10)),
60  m_verbose(pset.getUntrackedParameter<bool>("verbose", false)),
61  m_eventSetup(nullptr),
62  m_geoManager(nullptr) {
65 }

References postBeginRun(), postEndRun(), edm::ActivityRegistry::watchPostBeginRun(), and edm::ActivityRegistry::watchPostEndRun().

◆ ~TGeoFromDddService()

TGeoFromDddService::~TGeoFromDddService ( )
virtual

Definition at line 67 of file TGeoFromDddService.cc.

67  {
68  if (m_geoManager) {
69  delete m_geoManager;
70  }
71 }

References m_geoManager.

◆ TGeoFromDddService() [2/2]

TGeoFromDddService::TGeoFromDddService ( const TGeoFromDddService )
privatedelete

Member Function Documentation

◆ createManager()

TGeoManager * TGeoFromDddService::createManager ( int  level)
private

Definition at line 133 of file TGeoFromDddService.cc.

133  {
134  using namespace edm;
135 
138 
139  if (!viewH.isValid()) {
140  return nullptr;
141  }
142 
143  TGeoManager* geo_mgr = new TGeoManager("cmsGeo", "CMS Detector");
144  // NOTE: the default constructor does not create the identity matrix
145  if (gGeoIdentity == nullptr) {
146  gGeoIdentity = new TGeoIdentity("Identity");
147  }
148 
149  std::cout << "about to initialize the DDCompactView walker" << std::endl;
150  auto walker = math::GraphWalker<DDLogicalPart, DDPosData*>(viewH->graph(), viewH->root());
151  auto info = walker.current();
152 
153  // The top most item is actually the volume holding both the
154  // geometry AND the magnetic field volumes!
155  walker.firstChild();
156 
157  TGeoVolume* top = createVolume(info.first.name().fullname(), info.first.solid(), info.first.material());
158  if (top == nullptr) {
159  return nullptr;
160  }
161 
162  geo_mgr->SetTopVolume(top);
163  // ROOT chokes unless colors are assigned
164  top->SetVisibility(kFALSE);
165  top->SetLineColor(kBlue);
166 
167  std::vector<TGeoVolume*> parentStack;
168  parentStack.push_back(top);
169 
170  if (!walker.firstChild()) {
171  return nullptr;
172  }
173 
174  do {
175  auto info = walker.current();
176 
177  if (m_verbose) {
178  for (unsigned int i = 0; i < parentStack.size(); ++i) {
179  std::cout << " ";
180  }
181  std::cout << info.first.name() << " " << info.second->copyno() << " "
182  << DDSolidShapesName::name(info.first.solid().shape()) << std::endl;
183  }
184 
185  bool childAlreadyExists = (nullptr != nameToVolume_[info.first.name().fullname()]);
186  TGeoVolume* child = createVolume(info.first.name().fullname(), info.first.solid(), info.first.material());
187  if (nullptr != child && info.second != nullptr) {
188  parentStack.back()->AddNode(
189  child, info.second->copyno(), createPlacement(info.second->rotation(), info.second->translation()));
190  child->SetLineColor(kBlue);
191  } else {
192  if (info.second == nullptr) {
193  break;
194  }
195  }
196  if (nullptr == child || childAlreadyExists || level == int(parentStack.size())) {
197  if (nullptr != child) {
198  child->SetLineColor(kRed);
199  }
200  //stop descending
201  if (!walker.nextSibling()) {
202  while (walker.parent()) {
203  parentStack.pop_back();
204  if (walker.nextSibling()) {
205  break;
206  }
207  }
208  }
209  } else {
210  if (walker.firstChild()) {
211  parentStack.push_back(child);
212  } else {
213  if (!walker.nextSibling()) {
214  while (walker.parent()) {
215  parentStack.pop_back();
216  if (walker.nextSibling()) {
217  break;
218  }
219  }
220  }
221  }
222  }
223  } while (!parentStack.empty());
224 
225  geo_mgr->CloseGeometry();
226 
227  geo_mgr->DefaultColors();
228 
229  nameToShape_.clear();
230  nameToVolume_.clear();
231  nameToMaterial_.clear();
232  nameToMedium_.clear();
233 
234  return geo_mgr;
235 }

References gather_cfg::cout, dd4hep::createPlacement(), createVolume(), edm::EventSetup::get(), get, DDCompactView::graph(), mps_fire::i, info(), edm::ESHandleBase::isValid(), personalPlayback::level, m_eventSetup, m_verbose, DDSolidShapesName::name(), nameToMaterial_, nameToMedium_, nameToShape_, nameToVolume_, and DDCompactView::root().

Referenced by getGeoManager().

◆ createMaterial()

TGeoMaterial * TGeoFromDddService::createMaterial ( const DDMaterial iMaterial)
private

Definition at line 466 of file TGeoFromDddService.cc.

466  {
467  std::string mat_name = iMaterial.name().fullname();
468  TGeoMaterial* mat = nameToMaterial_[mat_name];
469 
470  if (mat == nullptr) {
471  if (iMaterial.noOfConstituents() > 0) {
472  TGeoMixture* mix = new TGeoMixture(mat_name.c_str(), iMaterial.noOfConstituents(), iMaterial.density() * cm3 / g);
473  for (int i = 0; i < iMaterial.noOfConstituents(); ++i) {
474  mix->AddElement(createMaterial(iMaterial.constituent(i).first), iMaterial.constituent(i).second);
475  }
476  mat = mix;
477  } else {
478  mat = new TGeoMaterial(mat_name.c_str(), iMaterial.a() * mole / g, iMaterial.z(), iMaterial.density() * cm3 / g);
479  }
480  nameToMaterial_[mat_name] = mat;
481  }
482 
483  return mat;
484 }

References DDMaterial::a(), DDMaterial::constituent(), DDMaterial::density(), DDName::fullname(), g, mps_fire::i, GeneratorMix_cff::mix, DDBase< N, C >::name(), nameToMaterial_, DDMaterial::noOfConstituents(), AlCaHLTBitMon_QueryRunRegistry::string, and DDMaterial::z().

Referenced by createVolume().

◆ createShape()

TGeoShape * TGeoFromDddService::createShape ( const std::string &  iName,
const DDSolid iSolid 
)
private

Definition at line 237 of file TGeoFromDddService.cc.

237  {
238  TGeoShape* rSolid = nameToShape_[iName];
239  if (rSolid == nullptr) {
240  const std::vector<double>& params = iSolid.parameters();
241  // std::cout <<" shape "<<iSolid<<std::endl;
242  switch (iSolid.shape()) {
243  case DDSolidShape::ddbox:
244  rSolid = new TGeoBBox(iName.c_str(), params[0] / cm, params[1] / cm, params[2] / cm);
245  break;
247  rSolid = new TGeoConeSeg(iName.c_str(),
248  params[0] / cm,
249  params[1] / cm,
250  params[2] / cm,
251  params[3] / cm,
252  params[4] / cm,
253  params[5] / deg,
254  params[6] / deg + params[5] / deg);
255  break;
257  //Order in params is zhalf,rIn,rOut,startPhi,deltaPhi
258  rSolid = new TGeoTubeSeg(iName.c_str(),
259  params[1] / cm,
260  params[2] / cm,
261  params[0] / cm,
262  params[3] / deg,
263  params[3] / deg + params[4] / deg);
264  break;
266  //Order in params is zhalf,rIn,rOut,startPhi,deltaPhi
267  rSolid = new TGeoCtub(iName.c_str(),
268  params[1] / cm,
269  params[2] / cm,
270  params[0] / cm,
271  params[3] / deg,
272  params[3] / deg + params[4] / deg,
273  params[5],
274  params[6],
275  params[7],
276  params[8],
277  params[9],
278  params[10]);
279  break;
281  rSolid = new TGeoTrap(iName.c_str(),
282  params[0] / cm, //dz
283  params[1] / deg, //theta
284  params[2] / deg, //phi
285  params[3] / cm, //dy1
286  params[4] / cm, //dx1
287  params[5] / cm, //dx2
288  params[6] / deg, //alpha1
289  params[7] / cm, //dy2
290  params[8] / cm, //dx3
291  params[9] / cm, //dx4
292  params[10] / deg); //alpha2
293  break;
295  rSolid = new TGeoPcon(iName.c_str(), params[0] / deg, params[1] / deg, (params.size() - 2) / 3);
296  {
297  std::vector<double> temp(params.size() + 1);
298  temp.reserve(params.size() + 1);
299  temp[0] = params[0] / deg;
300  temp[1] = params[1] / deg;
301  temp[2] = (params.size() - 2) / 3;
302  std::copy(params.begin() + 2, params.end(), temp.begin() + 3);
303  for (std::vector<double>::iterator it = temp.begin() + 3; it != temp.end(); ++it) {
304  *it /= cm;
305  }
306  rSolid->SetDimensions(&(*(temp.begin())));
307  }
308  break;
310  rSolid = new TGeoPgon(
311  iName.c_str(), params[1] / deg, params[2] / deg, static_cast<int>(params[0]), (params.size() - 3) / 3);
312  {
313  std::vector<double> temp(params.size() + 1);
314  temp[0] = params[1] / deg;
315  temp[1] = params[2] / deg;
316  temp[2] = params[0];
317  temp[3] = (params.size() - 3) / 3;
318  std::copy(params.begin() + 3, params.end(), temp.begin() + 4);
319  for (std::vector<double>::iterator it = temp.begin() + 4; it != temp.end(); ++it) {
320  *it /= cm;
321  }
322  rSolid->SetDimensions(&(*(temp.begin())));
323  }
324  break;
326  DDExtrudedPolygon extrPgon(iSolid);
327  std::vector<double> x = extrPgon.xVec();
328  std::transform(x.begin(), x.end(), x.begin(), [](double d) { return d / cm; });
329  std::vector<double> y = extrPgon.yVec();
330  std::transform(y.begin(), y.end(), y.begin(), [](double d) { return d / cm; });
331  std::vector<double> z = extrPgon.zVec();
332  std::vector<double> zx = extrPgon.zxVec();
333  std::vector<double> zy = extrPgon.zyVec();
334  std::vector<double> zscale = extrPgon.zscaleVec();
335 
336  TGeoXtru* mySolid = new TGeoXtru(z.size());
337  mySolid->DefinePolygon(x.size(), &(*x.begin()), &(*y.begin()));
338  for (size_t i = 0; i < params[0]; ++i) {
339  mySolid->DefineSection(i, z[i] / cm, zx[i] / cm, zy[i] / cm, zscale[i]);
340  }
341 
342  rSolid = mySolid;
343  } break;
345  //implementation taken from SimG4Core/Geometry/src/DDG4SolidConverter.cc
346  const static DDRotationMatrix s_rot(ROOT::Math::RotationX(90. * deg));
347  DDPseudoTrap pt(iSolid);
348  assert(pt.radius() < 0);
349  double x = 0;
350  double r = fabs(pt.radius());
351  if (pt.atMinusZ()) {
352  x = pt.x1();
353  } else {
354  x = pt.x2();
355  }
356  double openingAngle = 2.0 * asin(x / r);
357  double h = pt.y1() < pt.y2() ? pt.y2() : pt.y1();
358  h += h / 20.;
359  double displacement = 0;
360  double startPhi = 0;
361  double delta = sqrt((r + x) * (r - x));
362  if (pt.atMinusZ()) {
363  displacement = -pt.halfZ() - delta;
364  startPhi = 270. - openingAngle / deg / 2.0;
365  } else {
366  displacement = pt.halfZ() + delta;
367  startPhi = 90. - openingAngle / deg / 2.;
368  }
369  std::unique_ptr<TGeoShape> trap(new TGeoTrd2(
370  pt.name().name().c_str(), pt.x1() / cm, pt.x2() / cm, pt.y1() / cm, pt.y2() / cm, pt.halfZ() / cm));
371  std::unique_ptr<TGeoShape> tubs(
372  new TGeoTubeSeg(pt.name().name().c_str(), 0., r / cm, h / cm, startPhi, openingAngle));
373  TGeoSubtraction* sub = new TGeoSubtraction(
374  trap.release(), tubs.release(), createPlacement(s_rot, DDTranslation(0., 0., displacement)));
375  rSolid = new TGeoCompositeShape(iName.c_str(), sub);
376 
377  break;
378  }
380  DDBooleanSolid boolSolid(iSolid);
381  if (!boolSolid) {
382  throw cms::Exception("GeomConvert") << "conversion to DDBooleanSolid failed";
383  }
384 
385  std::unique_ptr<TGeoShape> left(createShape(boolSolid.solidA().name().fullname(), boolSolid.solidA()));
386  std::unique_ptr<TGeoShape> right(createShape(boolSolid.solidB().name().fullname(), boolSolid.solidB()));
387  if (nullptr != left.get() && nullptr != right.get()) {
388  TGeoSubtraction* sub =
389  new TGeoSubtraction(left.release(),
390  right.release(),
391  gGeoIdentity,
392  createPlacement(boolSolid.rotation().matrix(), boolSolid.translation()));
393  rSolid = new TGeoCompositeShape(iName.c_str(), sub);
394  }
395  break;
396  }
397  case DDSolidShape::ddunion: {
398  DDBooleanSolid boolSolid(iSolid);
399  if (!boolSolid) {
400  throw cms::Exception("GeomConvert") << "conversion to DDBooleanSolid failed";
401  }
402 
403  std::unique_ptr<TGeoShape> left(createShape(boolSolid.solidA().name().fullname(), boolSolid.solidA()));
404  std::unique_ptr<TGeoShape> right(createShape(boolSolid.solidB().name().fullname(), boolSolid.solidB()));
405  //DEBUGGING
406  //break;
407  if (nullptr != left.get() && nullptr != right.get()) {
408  TGeoUnion* boolS = new TGeoUnion(left.release(),
409  right.release(),
410  gGeoIdentity,
411  createPlacement(boolSolid.rotation().matrix(), boolSolid.translation()));
412  rSolid = new TGeoCompositeShape(iName.c_str(), boolS);
413  }
414  break;
415  }
417  DDBooleanSolid boolSolid(iSolid);
418  if (!boolSolid) {
419  throw cms::Exception("GeomConvert") << "conversion to DDBooleanSolid failed";
420  }
421 
422  std::unique_ptr<TGeoShape> left(createShape(boolSolid.solidA().name().fullname(), boolSolid.solidA()));
423  std::unique_ptr<TGeoShape> right(createShape(boolSolid.solidB().name().fullname(), boolSolid.solidB()));
424  if (nullptr != left.get() && nullptr != right.get()) {
425  TGeoIntersection* boolS =
426  new TGeoIntersection(left.release(),
427  right.release(),
428  gGeoIdentity,
429  createPlacement(boolSolid.rotation().matrix(), boolSolid.translation()));
430  rSolid = new TGeoCompositeShape(iName.c_str(), boolS);
431  }
432  break;
433  }
434  default:
435  break;
436  }
437  nameToShape_[iName] = rSolid;
438  }
439  if (rSolid == nullptr) {
440  std::cerr << "COULD NOT MAKE " << iName << std::endl;
441  }
442  return rSolid;
443 }

References cms::cuda::assert(), EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0::cerr, filterCSVwithJSON::copy, dd4hep::createPlacement(), ztail::d, ddbox, ddcons, ddcuttubs, ddextrudedpolygon, ddintersection, ddpolycone_rrz, ddpolyhedra_rrz, ddpseudotrap, ddsubtraction, ddtrap, ddtubs, ddunion, dumpMFGeometry_cfg::delta, Exception, DDName::fullname(), mps_fire::i, DDRotation::matrix(), DDBase< N, C >::name(), nameToShape_, DDSolid::parameters(), CalibrationSummaryClient_cfi::params, DiDispStaMuonMonitor_cfi::pt, alignCSCRings::r, DDBooleanSolid::rotation(), DDSolid::shape(), DDBooleanSolid::solidA(), DDBooleanSolid::solidB(), mathSSE::sqrt(), groupFilesInBlocks::temp, HcalDetIdTransform::transform(), DDBooleanSolid::translation(), x, DDExtrudedPolygon::xVec(), y, DDExtrudedPolygon::yVec(), z, DDExtrudedPolygon::zscaleVec(), DDExtrudedPolygon::zVec(), DDExtrudedPolygon::zxVec(), and DDExtrudedPolygon::zyVec().

Referenced by createVolume().

◆ createVolume()

TGeoVolume * TGeoFromDddService::createVolume ( const std::string &  iName,
const DDSolid iSolid,
const DDMaterial iMaterial 
)
private

Definition at line 445 of file TGeoFromDddService.cc.

447  {
448  TGeoVolume* v = nameToVolume_[iName];
449  if (v == nullptr) {
450  TGeoShape* solid = createShape(iSolid.name().fullname(), iSolid);
451  std::string mat_name = iMaterial.name().fullname();
452  TGeoMedium* geo_med = nameToMedium_[mat_name];
453  if (geo_med == nullptr) {
454  TGeoMaterial* geo_mat = createMaterial(iMaterial);
455  geo_med = new TGeoMedium(mat_name.c_str(), 0, geo_mat);
456  nameToMedium_[mat_name] = geo_med;
457  }
458  if (solid) {
459  v = new TGeoVolume(iName.c_str(), solid, geo_med);
460  }
461  nameToVolume_[iName] = v;
462  }
463  return v;
464 }

References createMaterial(), createShape(), DDName::fullname(), DDBase< N, C >::name(), nameToMedium_, nameToVolume_, AlCaHLTBitMon_QueryRunRegistry::string, and findQualityFiles::v.

Referenced by createManager().

◆ getGeoManager()

TGeoManager * TGeoFromDddService::getGeoManager ( )

Definition at line 97 of file TGeoFromDddService.cc.

97  {
98  if (m_geoManager == nullptr) {
99  if (m_eventSetup == nullptr)
100  edm::LogError("TGeoFromDddService") << "getGeoManager() -- EventSetup not present.\n";
101  else {
103  if (m_geoManager == nullptr)
104  edm::LogError("TGeoFromDddService") << "getGeoManager() -- creation failed.\n";
105  }
106  }
107  gGeoManager = m_geoManager;
108  return m_geoManager;
109 }

References createManager(), m_eventSetup, m_geoManager, and m_level.

◆ operator=()

const TGeoFromDddService& TGeoFromDddService::operator= ( const TGeoFromDddService )
privatedelete

◆ postBeginRun()

void TGeoFromDddService::postBeginRun ( const edm::Run ,
const edm::EventSetup es 
)

Definition at line 77 of file TGeoFromDddService.cc.

77  {
78  printf("TGeoFromDddService::postBeginRun\n");
79 
80  m_eventSetup = &es;
81 }

References m_eventSetup.

Referenced by TGeoFromDddService().

◆ postEndRun()

void TGeoFromDddService::postEndRun ( const edm::Run ,
const edm::EventSetup  
)

Definition at line 83 of file TGeoFromDddService.cc.

83  {
84  printf("TGeoFromDddService::postEndRun\n");
85 
86  // Construction of geometry fails miserably on second attempt ...
87  /*
88  if (m_geoManager)
89  {
90  delete m_geoManager;
91  m_geoManager = 0;
92  }
93  */
94  m_eventSetup = nullptr;
95 }

References m_eventSetup.

Referenced by TGeoFromDddService().

Member Data Documentation

◆ m_eventSetup

const edm::EventSetup* TGeoFromDddService::m_eventSetup
private

Definition at line 76 of file TGeoFromDddService.h.

Referenced by createManager(), getGeoManager(), postBeginRun(), and postEndRun().

◆ m_geoManager

TGeoManager* TGeoFromDddService::m_geoManager
private

Definition at line 77 of file TGeoFromDddService.h.

Referenced by getGeoManager(), and ~TGeoFromDddService().

◆ m_level

int TGeoFromDddService::m_level
private

Definition at line 74 of file TGeoFromDddService.h.

Referenced by getGeoManager().

◆ m_verbose

bool TGeoFromDddService::m_verbose
private

Definition at line 75 of file TGeoFromDddService.h.

Referenced by createManager().

◆ nameToMaterial_

std::map<std::string, TGeoMaterial*> TGeoFromDddService::nameToMaterial_
private

Definition at line 81 of file TGeoFromDddService.h.

Referenced by createManager(), and createMaterial().

◆ nameToMedium_

std::map<std::string, TGeoMedium*> TGeoFromDddService::nameToMedium_
private

Definition at line 82 of file TGeoFromDddService.h.

Referenced by createManager(), and createVolume().

◆ nameToShape_

std::map<std::string, TGeoShape*> TGeoFromDddService::nameToShape_
private

Definition at line 79 of file TGeoFromDddService.h.

Referenced by createManager(), and createShape().

◆ nameToVolume_

std::map<std::string, TGeoVolume*> TGeoFromDddService::nameToVolume_
private

Definition at line 80 of file TGeoFromDddService.h.

Referenced by createManager(), and createVolume().

personalPlayback.level
level
Definition: personalPlayback.py:22
TGeoFromDddService::createMaterial
TGeoMaterial * createMaterial(const DDMaterial &iMaterial)
Definition: TGeoFromDddService.cc:466
DDAxes::y
TGeoFromDddService::m_geoManager
TGeoManager * m_geoManager
Definition: TGeoFromDddService.h:77
mps_fire.i
i
Definition: mps_fire.py:428
DDSolidShape::ddtrap
math::GraphWalker< DDLogicalPart, DDPosData * >
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
TGeoFromDddService::postBeginRun
void postBeginRun(const edm::Run &, const edm::EventSetup &)
Definition: TGeoFromDddService.cc:77
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
CalibrationSummaryClient_cfi.params
params
Definition: CalibrationSummaryClient_cfi.py:14
edm::ActivityRegistry::watchPostEndRun
void watchPostEndRun(PostEndRun::slot_type const &iSlot)
Definition: ActivityRegistry.h:546
DDMaterial::density
double density() const
returns the density
Definition: DDMaterial.cc:80
edm
HLT enums.
Definition: AlignableModifier.h:19
DDSolidShape::ddpseudotrap
DDSolidShape::ddpolyhedra_rrz
DDMaterial::z
double z() const
retruns the atomic number
Definition: DDMaterial.cc:78
gather_cfg.cout
cout
Definition: gather_cfg.py:144
DDMaterial::noOfConstituents
int noOfConstituents() const
returns the number of compound materials or 0 for elementary materials
Definition: DDMaterial.cc:72
TGeoFromDddService::m_verbose
bool m_verbose
Definition: TGeoFromDddService.h:75
cms::cuda::assert
assert(be >=bs)
DDMaterial::constituent
FractionV::value_type constituent(int i) const
returns the i-th compound material and its fraction-mass
Definition: DDMaterial.cc:74
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:153
TGeoFromDddService::nameToShape_
std::map< std::string, TGeoShape * > nameToShape_
Definition: TGeoFromDddService.h:79
DDAxes::x
findQualityFiles.v
v
Definition: findQualityFiles.py:179
TGeoFromDddService::nameToMedium_
std::map< std::string, TGeoMedium * > nameToMedium_
Definition: TGeoFromDddService.h:82
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
TGeoFromDddService::nameToVolume_
std::map< std::string, TGeoVolume * > nameToVolume_
Definition: TGeoFromDddService.h:80
DDPseudoTrap
Definition: DDSolid.h:106
DDBooleanSolid
Definition: DDSolid.h:173
TGeoFromDddService::createManager
TGeoManager * createManager(int level)
Definition: TGeoFromDddService.cc:133
DDSolid::shape
DDSolidShape shape(void) const
The type of the solid.
Definition: DDSolid.cc:119
h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
TGeoFromDddService::createShape
TGeoShape * createShape(const std::string &iName, const DDSolid &iSolid)
Definition: TGeoFromDddService.cc:237
DDTranslation
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
DDSolidShape::ddtubs
DDCompactView::graph
const Graph & graph() const
Provides read-only access to the data structure of the compact-view.
Definition: DDCompactView.cc:59
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
TGeoFromDddService::m_eventSetup
const edm::EventSetup * m_eventSetup
Definition: TGeoFromDddService.h:76
DDBase::name
const N & name() const
Definition: DDBase.h:59
DDAxes::z
DDMaterial::a
double a() const
returns the atomic mass
Definition: DDMaterial.cc:76
HcalDetIdTransform::transform
unsigned transform(const HcalDetId &id, unsigned transformCode)
Definition: HcalDetIdTransform.cc:7
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
DDSolidShapesName::name
static const char *const name(DDSolidShape s)
Definition: DDSolidShapes.h:32
dumpMFGeometry_cfg.delta
delta
Definition: dumpMFGeometry_cfg.py:25
DDSolidShape::ddcons
TGeoFromDddService::postEndRun
void postEndRun(const edm::Run &, const edm::EventSetup &)
Definition: TGeoFromDddService.cc:83
edm::ActivityRegistry::watchPostBeginRun
void watchPostBeginRun(PostBeginRun::slot_type const &iSlot)
Definition: ActivityRegistry.h:532
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
DDExtrudedPolygon
Definition: DDSolid.h:238
get
#define get
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
edm::ESTransientHandle
Definition: ESTransientHandle.h:41
TGeoFromDddService::createVolume
TGeoVolume * createVolume(const std::string &iName, const DDSolid &iSolid, const DDMaterial &iMaterial)
Definition: TGeoFromDddService.cc:445
alignCSCRings.r
r
Definition: alignCSCRings.py:93
TGeoFromDddService::m_level
int m_level
Definition: TGeoFromDddService.h:74
DDCompactView::root
const DDLogicalPart & root() const
returns the DDLogicalPart representing the root of the geometrical hierarchy
Definition: DDCompactView.cc:63
DDRotationMatrix
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
Definition: DDRotationMatrix.h:8
DDSolidShape::ddbox
Exception
Definition: hltDiff.cc:246
DDSolid::parameters
const std::vector< double > & parameters(void) const
Give the parameters of the solid.
Definition: DDSolid.cc:121
DDSolidShape::ddextrudedpolygon
DDSolidShape::ddcuttubs
ztail.d
d
Definition: ztail.py:151
DDSolidShape::ddpolycone_rrz
DDName::fullname
const std::string fullname() const
Definition: DDName.h:40
TGeoFromDddService::nameToMaterial_
std::map< std::string, TGeoMaterial * > nameToMaterial_
Definition: TGeoFromDddService.h:81
DDSolidShape::ddsubtraction
DDSolidShape::ddintersection
child
Definition: simpleInheritance.h:11
EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0.cerr
cerr
Definition: EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0.py:8
GeneratorMix_cff.mix
mix
Definition: GeneratorMix_cff.py:6
dd4hep::createPlacement
TGeoCombiTrans * createPlacement(const Rotation3D &iRot, const Position &iTrans)
Definition: DDDefinitions2Objects.cc:109
DDSolidShape::ddunion
IdealGeometryRecord
Definition: IdealGeometryRecord.h:25
g
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27