Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:22:34

0001 // Author: Sergey Linev, 3.03.2023
0002 
0003 /*************************************************************************
0004  * Copyright (C) 1995-2023, Rene Brun and Fons Rademakers.               *
0005  * All rights reserved.                                                  *
0006  *                                                                       *
0007  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0008  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0009  *************************************************************************/
0010 
0011 #ifndef ROOT7_RGeomHierarchy
0012 #define ROOT7_RGeomHierarchy
0013 
0014 #include <ROOT/RWebDisplayArgs.hxx>
0015 #include <ROOT/RGeomData.hxx>
0016 
0017 #include <memory>
0018 
0019 class TGeoManager;
0020 class TGeoVolume;
0021 
0022 namespace ROOT {
0023 
0024 class RWebWindow;
0025 
0026 class RGeomHierarchy {
0027 
0028 protected:
0029 
0030    RGeomDescription &fDesc;                  ///<! geometry description, shared with external
0031    std::shared_ptr<RWebWindow> fWebWindow;   ///<! web window to show geometry
0032 
0033    void WebWindowCallback(unsigned connid, const std::string &arg);
0034 
0035    void ProcessSignal(const std::string &kind);
0036 
0037 public:
0038 
0039    RGeomHierarchy(RGeomDescription &desc, bool use_server_threads = false);
0040    virtual ~RGeomHierarchy();
0041 
0042    void Show(const RWebDisplayArgs &args = "");
0043 
0044    void Update();
0045 
0046    void BrowseTo(const std::string &itemname);
0047 
0048    RGeomDescription &Description() { return fDesc; }
0049 
0050    void ClearOnClose(const std::shared_ptr<void> &handle);
0051 };
0052 
0053 } // namespace ROOT
0054 
0055 #endif