Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4MvtxSupport.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4MvtxSupport.h
1 #ifndef G4MVTX_PHG4MVTXSUPPORT_H
2 #define G4MVTX_PHG4MVTXSUPPORT_H
3 
4 #include "PHG4MvtxDefs.h"
5 
6 #include <array>
7 #include <string>
8 
9 class G4AssemblyVolume;
10 class G4LogicalVolume;
11 class PHG4MvtxCable;
12 class PHG4MvtxDetector;
14 
16 {
17  public:
18  PHG4MvtxSupport(PHG4MvtxDetector *detector, PHG4MvtxDisplayAction *dispAct, bool overlapCheck);
19 
20  virtual ~PHG4MvtxSupport();
21 
22  void ConstructMvtxSupport(G4LogicalVolume *&lv);
23 
24  private:
27 
29 
30  void CreateEndWheelsSideN(G4AssemblyVolume *&av);
31  void CreateEndWheelsSideS(G4AssemblyVolume *&av);
32  void CreateConeLayers(G4AssemblyVolume *&av);
33  void CreateCYSS(G4AssemblyVolume *&av);
34  void CreateServiceBarrel(G4AssemblyVolume *&av);
35 
36  void GetEndWheelSideN(const int lay, G4AssemblyVolume *&endWheel);
37  void GetEndWheelSideS(const int lay, G4AssemblyVolume *&endWheel);
38  void GetConeVolume(int lay, G4AssemblyVolume *&av);
39 
40  void CreateCable(PHG4MvtxCable *object, G4AssemblyVolume &assemblyVolume);
41  void CreateCableBundle(G4AssemblyVolume &assemblyVolume, const std::string &superName,
42  bool enableSignal, bool enableCooling, bool enablePower,
43  double x1, double x2, double y1, double y2, double z1, double z2);
44 
45  G4AssemblyVolume *buildBarrelCable();
46  G4AssemblyVolume *buildLayerCables(const int &lay);
47 
48  G4AssemblyVolume *m_avSupport{nullptr};
49  G4AssemblyVolume *m_avBarrelCable{nullptr};
50  std::array<G4AssemblyVolume *, PHG4MvtxDefs::kNLayers> m_avLayerCable{nullptr, nullptr, nullptr};
51 
52  bool m_overlapCheck{false};
53 };
54 
55 #endif