Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 10:32:43

0001 //==========================================================================
0002 //  AIDA Detector description implementation 
0003 //--------------------------------------------------------------------------
0004 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
0005 // All rights reserved.
0006 //
0007 // For the licensing terms see $DD4hepINSTALL/LICENSE.
0008 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
0009 //
0010 // Author     : M.Frank
0011 //
0012 //==========================================================================
0013 //
0014 // NOTE:
0015 //
0016 // This is an internal include file. It should only be included to 
0017 // instantiate code. Otherwise the Opticalsurfacemanager include file should be
0018 // sufficient for all practical purposes.
0019 //
0020 //==========================================================================
0021 #ifndef DD4HEP_DETAIL_OPTICALSURFACEMANAGERINTERNA_H
0022 #define DD4HEP_DETAIL_OPTICALSURFACEMANAGERINTERNA_H
0023 
0024 /// Framework include files
0025 #include <DD4hep/Detector.h>
0026 
0027 /// C/C++ include files
0028 #include <map>
0029 
0030 /// Namespace for the AIDA detector description toolkit
0031 namespace dd4hep {
0032 
0033   /// Namespace for implementation details of the AIDA detector description toolkit
0034   namespace detail {
0035 
0036     /// This structure describes the internal data of the volume manager object
0037     /**
0038      *
0039      * \author  M.Frank
0040      * \version 1.0
0041      * \ingroup DD4HEP_CORE
0042      */
0043     class OpticalSurfaceManagerObject: public NamedObject {
0044     public:
0045       typedef std::pair<DetElement, std::string> LocalKey;
0046 
0047       /// Reference to the main detector description object
0048       Detector& detector;
0049       std::map<LocalKey,    SkinSurface>    skinSurfaces;
0050       std::map<LocalKey,    BorderSurface>  borderSurfaces;
0051       std::map<std::string, OpticalSurface> opticalSurfaces;
0052       
0053     public:
0054       /// Default constructor
0055       OpticalSurfaceManagerObject() = delete;
0056       /// No move constructor
0057       OpticalSurfaceManagerObject(OpticalSurfaceManagerObject&& copy) = delete;
0058       /// No copy constructor
0059       OpticalSurfaceManagerObject(const OpticalSurfaceManagerObject& copy) = delete;
0060       /// Initializing constructor
0061       OpticalSurfaceManagerObject(Detector& det) : detector(det) {}
0062       /// Default destructor
0063       virtual ~OpticalSurfaceManagerObject();
0064       /// No move assignment
0065       OpticalSurfaceManagerObject& operator=(OpticalSurfaceManagerObject&& copy) = delete;
0066       /// No copy assignment
0067       OpticalSurfaceManagerObject& operator=(const OpticalSurfaceManagerObject& copy) = delete;
0068     };
0069 
0070   }       /* End namespace detail                          */
0071 }         /* End namespace dd4hep                          */
0072 #endif // DD4HEP_DETAIL_OPTICALSURFACEMANAGERINTERNA_H