Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:19:02

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef G4DETECTORS_PHG4SECTORDETECTOR_H
0004 #define G4DETECTORS_PHG4SECTORDETECTOR_H
0005 
0006 #include "PHG4SectorConstructor.h"
0007 
0008 #include <g4main/PHG4Detector.h>
0009 
0010 #include <string>  // for string
0011 
0012 class G4LogicalVolume;
0013 class G4VPhysicalVolume;
0014 class PHCompositeNode;
0015 class PHG4SectorDisplayAction;
0016 class PHG4Subsystem;
0017 
0018 class PHG4SectorDetector : public PHG4Detector, public PHG4Sector::PHG4SectorConstructor
0019 {
0020  public:
0021   //! constructor
0022   PHG4SectorDetector(PHG4Subsystem *subsys, PHCompositeNode *Node, const std::string &dnam);
0023 
0024   //! destructor
0025   ~PHG4SectorDetector(void) override = default;
0026 
0027   //! construct
0028   void ConstructMe(G4LogicalVolume *world) override;
0029 
0030   //!@name volume accessors
0031   //@{
0032   bool IsInSectorActive(G4VPhysicalVolume *physvol);
0033   //@}
0034 
0035   void SuperDetector(const std::string &name) { superdetector = name; }
0036   const std::string &SuperDetector() const { return superdetector; }
0037 
0038   using PHG4Detector::OverlapCheck;  // not implementing all OverlapChecc methods
0039   void OverlapCheck(const bool chk) override
0040   {
0041     PHG4Detector::OverlapCheck(chk);
0042     PHG4SectorConstructor::OverlapCheck(chk);
0043   }
0044 
0045  private:
0046   PHG4SectorDisplayAction *m_DisplayAction;
0047 
0048   std::string superdetector;
0049 };
0050 
0051 #endif