DD4hep  1.28.0
Detector Description Toolkit for High Energy Physics
OpticalSurfaceManager.h
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation
3 //--------------------------------------------------------------------------
4 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 // All rights reserved.
6 //
7 // For the licensing terms see $DD4hepINSTALL/LICENSE.
8 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 //
10 // Author : M.Frank
11 //
12 //==========================================================================
13 #ifndef DD4HEP_OPTICALSURFACEMANAGER_H
14 #define DD4HEP_OPTICALSURFACEMANAGER_H
15 
16 // Framework include files
17 #include <DD4hep/OpticalSurfaces.h>
18 
19 // ROOT include files
20 #include <TGeoManager.h>
21 
23 namespace dd4hep {
24 
26  namespace detail {
27  class OpticalSurfaceManagerObject;
28  }
29 
31 
37  class OpticalSurfaceManager: public Handle<detail::OpticalSurfaceManagerObject> {
38  public:
40 
41  public:
43  OpticalSurfaceManager() = default;
47  OpticalSurfaceManager(TGeoManager* obj) : Handle<Object>(obj) { }
51  template <typename Q>
57 
60 
62  SkinSurface skinSurface(const std::string& full_name) const;
64  SkinSurface skinSurface(DetElement de, const std::string& nam) const;
66  BorderSurface borderSurface(const std::string& full_name) const;
68  BorderSurface borderSurface(DetElement de, const std::string& nam) const;
70  OpticalSurface opticalSurface(const std::string& full_name) const;
72  OpticalSurface opticalSurface(DetElement de, const std::string& nam) const;
74  void addSkinSurface(DetElement de, SkinSurface surf) const;
76  void addBorderSurface(DetElement de, BorderSurface surf) const;
78  void addOpticalSurface(OpticalSurface surf) const;
79 
81  void registerSurfaces(DetElement subdetector);
82  };
83 } /* End namespace dd4hep */
84 #endif // DD4HEP_OPTICALSURFACEMANAGER_H
dd4hep::OpticalSurfaceManager::opticalSurface
OpticalSurface opticalSurface(const std::string &full_name) const
Access optical surface data by its full name.
Definition: OpticalSurfaceManager.cpp:91
dd4hep::OpticalSurfaceManager::OpticalSurfaceManager
OpticalSurfaceManager(Detector &description)
Initializing constructor.
dd4hep::detail::OpticalSurfaceManagerObject
This structure describes the internal data of the volume manager object.
Definition: OpticalSurfaceManagerInterna.h:43
dd4hep::OpticalSurfaceManager::addSkinSurface
void addSkinSurface(DetElement de, SkinSurface surf) const
Add skin surface to manager.
Definition: OpticalSurfaceManager.cpp:96
OpticalSurfaces.h
dd4hep::OpticalSurfaceManager::OpticalSurfaceManager
OpticalSurfaceManager(const Handle< Object > &e)
Constructor from same-type handle.
Definition: OpticalSurfaceManager.h:49
dd4hep::Handle
Handle: a templated class like a shared pointer, which allows specialized access to tgeometry objects...
Definition: Handle.h:84
dd4hep::OpticalSurfaceManager::OpticalSurfaceManager
OpticalSurfaceManager()=default
Default constructor.
dd4hep::OpticalSurfaceManager::addOpticalSurface
void addOpticalSurface(OpticalSurface surf) const
Add optical surface data to manager.
Definition: OpticalSurfaceManager.cpp:112
dd4hep::OpticalSurfaceManager::operator=
OpticalSurfaceManager & operator=(const OpticalSurfaceManager &m)=default
Assignment operator.
dd4hep::OpticalSurfaceManager::getOpticalSurfaceManager
static OpticalSurfaceManager getOpticalSurfaceManager(Detector &description)
static accessor calling DD4hepOpticalSurfaceManagerPlugin if necessary
Definition: OpticalSurfaceManager.cpp:28
dd4hep::DetElement
Handle class describing a detector element.
Definition: DetElement.h:188
dd4hep::OpticalSurfaceManager::registerSurfaces
void registerSurfaces(DetElement subdetector)
Register the temporary surface objects with the TGeoManager.
Definition: OpticalSurfaceManager.cpp:120
dd4hep::SkinSurface
Class to support the handling of optical surfaces.
Definition: OpticalSurfaces.h:111
dd4hep::OpticalSurfaceManager::OpticalSurfaceManager
OpticalSurfaceManager(TGeoManager *obj)
Constructor taking object pointer.
Definition: OpticalSurfaceManager.h:47
dd4hep::OpticalSurfaceManager::addBorderSurface
void addBorderSurface(DetElement de, BorderSurface surf) const
Add border surface to manager.
Definition: OpticalSurfaceManager.cpp:104
dd4hep::OpticalSurfaceManager::borderSurface
BorderSurface borderSurface(const std::string &full_name) const
Access border surface by its full name.
Definition: OpticalSurfaceManager.cpp:70
dd4hep::OpticalSurfaceManager::OpticalSurfaceManager
OpticalSurfaceManager(const Handle< Q > &e)
Constructor from arbitrary handle.
Definition: OpticalSurfaceManager.h:52
dd4hep::OpticalSurfaceManager::Object
detail::OpticalSurfaceManagerObject Object
Definition: OpticalSurfaceManager.h:39
dd4hep::OpticalSurfaceManager::OpticalSurfaceManager
OpticalSurfaceManager(const OpticalSurfaceManager &e)=default
Copy constructor.
dd4hep
Namespace for the AIDA detector description toolkit.
Definition: AlignmentsCalib.h:28
dd4hep::Detector
The main interface to the dd4hep detector description package.
Definition: Detector.h:90
dd4hep::BorderSurface
Class to support the handling of optical surfaces.
Definition: OpticalSurfaces.h:155
dd4hep::OpticalSurface
Class to support the handling of optical surfaces.
Definition: OpticalSurfaces.h:42
dd4hep::OpticalSurfaceManager::skinSurface
SkinSurface skinSurface(const std::string &full_name) const
Access skin surface by its full name.
Definition: OpticalSurfaceManager.cpp:49
dd4hep::OpticalSurfaceManager
Class to support the handling of optical surfaces.
Definition: OpticalSurfaceManager.h:37