5 #ifndef __RAT_HemisphereEncapsulation__
6 #define __RAT_HemisphereEncapsulation__
9 #include <G4GenericPolycone.hh>
10 #include <G4LogicalVolume.hh>
11 #include <G4Material.hh>
12 #include <G4OpticalSurface.hh>
13 #include <G4PVPlacement.hh>
14 #include <G4Paraboloid.hh>
15 #include <G4Sphere.hh>
16 #include <G4SubtractionSolid.hh>
17 #include <G4UnionSolid.hh>
18 #include <G4VSensitiveDetector.hh>
19 #include <G4VSolid.hh>
20 #include <G4VisAttributes.hh>
22 #include <RAT/Factory.hh>
23 #include <RAT/GLG4TorusStack.hh>
24 #include <RAT/PMTEncapsulation.hh>
36 double envelope_radius;
38 double encap_thickness;
40 double dome_flange_thickness;
41 double metal_flange_thickness;
42 double optical_gel_sub_height;
43 std::vector<double> metal_flange_dimensions;
44 std::vector<double> silica_bag_dimensions;
45 std::vector<double> silica_bag_position;
46 std::vector<double> cable_dimensions;
47 std::vector<double> cable_position;
50 std::vector<double> zEdge;
51 std::vector<double> rhoEdge;
52 std::vector<double> zOrigin;
53 G4ThreeVector pmtposvec;
54 std::vector<double> posvec;
56 G4Material *exterior_material;
57 G4Material *inner_encapsulation_material;
58 G4Material *front_encapsulation_material;
59 G4Material *rear_encapsulation_material;
60 G4Material *metal_flange_material;
61 G4Material *silica_bag_material;
62 G4Material *cable_material;
63 G4Material *optical_gel_material;
65 G4OpticalSurface *inner_encapsulation_surface;
66 G4OpticalSurface *front_encapsulation_surface;
67 G4OpticalSurface *rear_encapsulation_surface;
68 G4OpticalSurface *metal_flange_surface;
69 G4OpticalSurface *cable_surface;
70 G4OpticalSurface *silica_bag_surface;
71 G4OpticalSurface *optical_gel_surface;
79 virtual G4LogicalVolume *BuildVolume(
const std::string &prefix);
80 virtual G4VSolid *BuildSolid(
const std::string &prefix);
81 virtual G4PVPlacement *PlaceEncap(G4RotationMatrix *pmtrot, G4ThreeVector pmtpos,
const std::string &name,
82 G4LogicalVolume *logi_pmt, G4VPhysicalVolume *mother_phys,
bool booleanSolid,
86 G4VSolid *NewEnvelopeSolid(
const std::string &name);
87 G4VSolid *NewEncapsulationSolid(
const std::string &name);
88 G4VSolid *optical_gel_height_subtraction(
const std::string &_name);
89 G4VSolid *optical_gel_pmt_subtraction(
const std::string &_name,
GLG4TorusStack *body);
92 G4PVPlacement *inner_encapsulation_phys;
93 G4PVPlacement *optical_gel_encapsulation_phys;
94 G4PVPlacement *front_encapsulation_phys;
95 G4PVPlacement *rear_encapsulation_phys;
96 G4PVPlacement *front_metal_encapsulaion_flange_phys;
97 G4PVPlacement *rear_metal_encapsulation_flange_phys;
98 G4PVPlacement *silica_bag_encapsulation_phys;
99 G4PVPlacement *cable_encapsulation_phys;
Definition: GLG4TorusStack.hh:62
Definition: HemisphereEncapsulation.hh:74
Definition: PMTEncapsulation.hh:13
Definition: CCCrossSecMessenger.hh:29
Definition: HemisphereEncapsulation.hh:29