Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:18:15

0001 #ifndef G4MVTX_PHG4MVTXSUPPORT_H
0002 #define G4MVTX_PHG4MVTXSUPPORT_H
0003 
0004 #include "PHG4MvtxDefs.h"
0005 
0006 #include <array>
0007 #include <string>
0008 
0009 class G4AssemblyVolume;
0010 class G4LogicalVolume;
0011 class PHG4MvtxCable;
0012 class PHG4MvtxDetector;
0013 class PHG4MvtxDisplayAction;
0014 
0015 class PHG4MvtxSupport
0016 {
0017  public:
0018   PHG4MvtxSupport(PHG4MvtxDetector *detector, PHG4MvtxDisplayAction *dispAct, bool overlapCheck);
0019 
0020   virtual ~PHG4MvtxSupport();
0021 
0022   void ConstructMvtxSupport(G4LogicalVolume *&lv);
0023 
0024  private:
0025   PHG4MvtxDetector *m_Detector{nullptr};
0026   PHG4MvtxDisplayAction *m_DisplayAction{nullptr};
0027 
0028   void CreateMvtxSupportMaterials();
0029 
0030   void CreateEndWheelsSideN(G4AssemblyVolume *&av);
0031   void CreateEndWheelsSideS(G4AssemblyVolume *&av);
0032   void CreateConeLayers(G4AssemblyVolume *&av);
0033   void CreateCYSS(G4AssemblyVolume *&av);
0034   void CreateServiceBarrel(G4AssemblyVolume *&av);
0035 
0036   void GetEndWheelSideN(const int lay, G4AssemblyVolume *&endWheel);
0037   void GetEndWheelSideS(const int lay, G4AssemblyVolume *&endWheel);
0038   void GetConeVolume(int lay, G4AssemblyVolume *&av);
0039 
0040   void CreateCable(PHG4MvtxCable *object, G4AssemblyVolume &assemblyVolume);
0041   void CreateCableBundle(G4AssemblyVolume &assemblyVolume, const std::string &superName,
0042                          bool enableSignal, bool enableCooling, bool enablePower,
0043                          double x1, double x2, double y1, double y2, double z1, double z2);
0044 
0045   G4AssemblyVolume *buildBarrelCable();
0046   G4AssemblyVolume *buildLayerCables(const int &lay);
0047 
0048   G4AssemblyVolume *m_avSupport{nullptr};
0049   G4AssemblyVolume *m_avBarrelCable{nullptr};
0050   std::array<G4AssemblyVolume *, PHG4MvtxDefs::kNLayers> m_avLayerCable{nullptr, nullptr, nullptr};
0051 
0052   bool m_overlapCheck{false};
0053 };
0054 
0055 #endif