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::TGeoFromDddService ( const edm::ParameterSet pset,
edm::ActivityRegistry ar 
)

Definition at line 58 of file TGeoFromDddService.cc.

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

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 }
void watchPostBeginRun(PostBeginRun::slot_type const &iSlot)
T getUntrackedParameter(std::string const &, T const &) const
TGeoManager * m_geoManager
const edm::EventSetup * m_eventSetup
void postBeginRun(const edm::Run &, const edm::EventSetup &)
void watchPostEndRun(PostEndRun::slot_type const &iSlot)
void postEndRun(const edm::Run &, const edm::EventSetup &)
TGeoFromDddService::~TGeoFromDddService ( )
virtual

Definition at line 67 of file TGeoFromDddService.cc.

References m_geoManager.

67  {
68  if (m_geoManager) {
69  delete m_geoManager;
70  }
71 }
TGeoManager * m_geoManager
TGeoFromDddService::TGeoFromDddService ( const TGeoFromDddService )
privatedelete

Member Function Documentation

TGeoManager * TGeoFromDddService::createManager ( int  level)
private

Definition at line 133 of file TGeoFromDddService.cc.

References gather_cfg::cout, dd4hep::createPlacement(), createVolume(), math::GraphWalker< N, E >::current(), edm::EventSetup::get(), DDCompactView::graph(), mps_fire::i, info(), edm::ESHandleBase::isValid(), m_eventSetup, m_verbose, DDSolidShapesName::name(), nameToMaterial_, nameToMedium_, nameToShape_, nameToVolume_, and DDCompactView::root().

Referenced by getGeoManager().

133  {
134  using namespace edm;
135 
137  m_eventSetup->get<IdealGeometryRecord>().get(viewH);
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 }
std::map< std::string, TGeoMaterial * > nameToMaterial_
static const TGPicture * info(bool iBackgroundIsBlack)
const edm::EventSetup * m_eventSetup
TGeoVolume * createVolume(const std::string &iName, const DDSolid &iSolid, const DDMaterial &iMaterial)
TGeoCombiTrans * createPlacement(const Rotation3D &iRot, const Position &iTrans)
std::map< std::string, TGeoVolume * > nameToVolume_
static const char *const name(DDSolidShape s)
Definition: DDSolidShapes.h:32
std::map< std::string, TGeoMedium * > nameToMedium_
const Graph & graph() const
Provides read-only access to the data structure of the compact-view.
std::map< std::string, TGeoShape * > nameToShape_
HLT enums.
T get() const
Definition: EventSetup.h:73
const DDLogicalPart & root() const
returns the DDLogicalPart representing the root of the geometrical hierarchy
bool isValid() const
Definition: ESHandle.h:44
value_type current() const
Definition: GraphWalker.h:88
TGeoMaterial * TGeoFromDddService::createMaterial ( const DDMaterial iMaterial)
private

Definition at line 466 of file TGeoFromDddService.cc.

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().

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 }
std::map< std::string, TGeoMaterial * > nameToMaterial_
double a() const
returns the atomic mass
Definition: DDMaterial.cc:76
const N & name() const
Definition: DDBase.h:59
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
double z() const
retruns the atomic number
Definition: DDMaterial.cc:78
const std::string fullname() const
Definition: DDName.h:40
FractionV::value_type constituent(int i) const
returns the i-th compound material and its fraction-mass
Definition: DDMaterial.cc:74
double density() const
returns the density
Definition: DDMaterial.cc:80
TGeoMaterial * createMaterial(const DDMaterial &iMaterial)
int noOfConstituents() const
returns the number of compound materials or 0 for elementary materials
Definition: DDMaterial.cc:72
TGeoShape * TGeoFromDddService::createShape ( const std::string &  iName,
const DDSolid iSolid 
)
private

Definition at line 237 of file TGeoFromDddService.cc.

References DDPseudoTrap::atMinusZ(), beam_dqm_sourceclient-live_cfg::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(), h, DDPseudoTrap::halfZ(), mps_fire::i, DDRotation::matrix(), DDName::name(), DDBase< N, C >::name(), nameToShape_, DDSolid::parameters(), CalibrationSummaryClient_cfi::params, DiDispStaMuonMonitor_cfi::pt, alignCSCRings::r, DDPseudoTrap::radius(), DDBooleanSolid::rotation(), DDSolid::shape(), DDBooleanSolid::solidA(), DDBooleanSolid::solidB(), mathSSE::sqrt(), groupFilesInBlocks::temp, HcalDetIdTransform::transform(), DDBooleanSolid::translation(), x, DDPseudoTrap::x1(), DDPseudoTrap::x2(), DDExtrudedPolygon::xVec(), y, DDPseudoTrap::y1(), DDPseudoTrap::y2(), DDExtrudedPolygon::yVec(), z, DDExtrudedPolygon::zscaleVec(), DDExtrudedPolygon::zVec(), DDExtrudedPolygon::zxVec(), and DDExtrudedPolygon::zyVec().

Referenced by createVolume().

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 }
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
const std::vector< double > & parameters(void) const
Give the parameters of the solid.
Definition: DDSolid.cc:121
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
TGeoCombiTrans * createPlacement(const Rotation3D &iRot, const Position &iTrans)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
T sqrt(T t)
Definition: SSEVec.h:19
DDSolidShape shape(void) const
The type of the solid.
Definition: DDSolid.cc:119
d
Definition: ztail.py:151
std::map< std::string, TGeoShape * > nameToShape_
TGeoShape * createShape(const std::string &iName, const DDSolid &iSolid)
unsigned transform(const HcalDetId &id, unsigned transformCode)
TGeoVolume * TGeoFromDddService::createVolume ( const std::string &  iName,
const DDSolid iSolid,
const DDMaterial iMaterial 
)
private

Definition at line 445 of file TGeoFromDddService.cc.

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

Referenced by createManager().

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 }
const N & name() const
Definition: DDBase.h:59
std::map< std::string, TGeoVolume * > nameToVolume_
const std::string fullname() const
Definition: DDName.h:40
std::map< std::string, TGeoMedium * > nameToMedium_
TGeoMaterial * createMaterial(const DDMaterial &iMaterial)
TGeoShape * createShape(const std::string &iName, const DDSolid &iSolid)
TGeoManager * TGeoFromDddService::getGeoManager ( )

Definition at line 97 of file TGeoFromDddService.cc.

References createManager(), dd4hep::createPlacement(), bookConverter::elements, m_eventSetup, m_geoManager, m_level, alignCSCRings::r, and OrderedSet::t.

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 }
TGeoManager * m_geoManager
const edm::EventSetup * m_eventSetup
TGeoManager * createManager(int level)
const TGeoFromDddService& TGeoFromDddService::operator= ( const TGeoFromDddService )
privatedelete
void TGeoFromDddService::postBeginRun ( const edm::Run ,
const edm::EventSetup es 
)

Definition at line 77 of file TGeoFromDddService.cc.

References m_eventSetup.

Referenced by TGeoFromDddService().

77  {
78  printf("TGeoFromDddService::postBeginRun\n");
79 
80  m_eventSetup = &es;
81 }
const edm::EventSetup * m_eventSetup
void TGeoFromDddService::postEndRun ( const edm::Run ,
const edm::EventSetup  
)

Definition at line 83 of file TGeoFromDddService.cc.

References m_eventSetup.

Referenced by TGeoFromDddService().

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 }
const edm::EventSetup * m_eventSetup

Member Data Documentation

const edm::EventSetup* TGeoFromDddService::m_eventSetup
private

Definition at line 76 of file TGeoFromDddService.h.

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

TGeoManager* TGeoFromDddService::m_geoManager
private

Definition at line 77 of file TGeoFromDddService.h.

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

int TGeoFromDddService::m_level
private

Definition at line 74 of file TGeoFromDddService.h.

Referenced by getGeoManager().

bool TGeoFromDddService::m_verbose
private

Definition at line 75 of file TGeoFromDddService.h.

Referenced by createManager().

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

Definition at line 81 of file TGeoFromDddService.h.

Referenced by createManager(), and createMaterial().

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

Definition at line 82 of file TGeoFromDddService.h.

Referenced by createManager(), and createVolume().

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

Definition at line 79 of file TGeoFromDddService.h.

Referenced by createManager(), and createShape().

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

Definition at line 80 of file TGeoFromDddService.h.

Referenced by createManager(), and createVolume().