Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-06-30 07:54:18

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 #ifndef DDCORE_SRC_GEOMETRYTREEDUMP_H
0015 #define DDCORE_SRC_GEOMETRYTREEDUMP_H
0016 
0017 // Framework include files
0018 #include <DD4hep/Detector.h>
0019 #include <DD4hep/GeoHandler.h>
0020 
0021 // C/C++ include files
0022 #include <set>
0023 #include <vector>
0024 
0025 class TGeoVolume;
0026 class TGeoNode;
0027 
0028 /// Namespace for the AIDA detector description toolkit
0029 namespace dd4hep {
0030 
0031   /// Namespace for implementation details of the AIDA detector description toolkit
0032   namespace detail {
0033 
0034     /// Geometry to screen dump action
0035     /**
0036      *  \author  M.Frank
0037      *  \version 1.0
0038      *  \ingroup DD4HEP_CORE
0039      */
0040     class GeometryTreeDump: public GeoHandler {
0041     public:
0042       GeometryTreeDump() = default;
0043       /// Standard destructor
0044       virtual ~GeometryTreeDump() = default;
0045       /// Main entry point: create required object(s)
0046       void create(DetElement top);
0047 
0048       /// Dump logical volume in GDML format to output stream
0049       virtual void* handleVolume(const std::string& name, Volume volume) const;
0050       /// Dump single volume transformation in GDML format to output stream
0051       virtual void* handleTransformation(const std::string& name, const TGeoMatrix* matrix) const;
0052       /// Dump solid in GDML format to output stream
0053       virtual void* handleSolid(const std::string& name, const TGeoShape* volume) const;
0054 
0055       /// Dump all constants in GDML format to output stream
0056       virtual void handleDefines(const Detector::HandleMap& defs) const;
0057       /// Dump all visualisation specs in Detector format to output stream
0058       void handleVisualisation(const Detector::HandleMap& vis) const;
0059       /// Dump all solids in GDML format to output stream
0060       virtual void handleSolids(const std::set<TGeoShape*>& solids) const;
0061       /// Dump Transformations in GDML format to output stream
0062       virtual void handleTransformations(const std::vector<std::pair<std::string, TGeoMatrix*> >& trafos) const;
0063       /// Dump structure information in GDML format to output stream
0064       virtual void handleStructure(const std::set<Volume>& volset) const;
0065     };
0066   }    // End namespace detail
0067 }      // End namespace dd4hep
0068 #endif // DDCORE_SRC_GEOMETRYTREEDUMP_H