1 #ifndef __RAT_ToroidalPMTConstruction__
2 #define __RAT_ToroidalPMTConstruction__
4 #include <G4LogicalVolume.hh>
5 #include <G4Material.hh>
6 #include <G4OpticalSurface.hh>
7 #include <G4PVPlacement.hh>
8 #include <G4VSensitiveDetector.hh>
11 #include <RAT/Factory.hh>
12 #include <RAT/GLG4TorusStack.hh>
13 #include <RAT/PMTConstruction.hh>
14 #include <RAT/WaveguideFactory.hh>
22 efficiencyCorrection = 1.0;
24 photocathode_MINrho = 0.0;
25 photocathode_MAXrho = 0.0;
33 double minEnvelopeRadius;
36 std::vector<double> zEdge;
37 std::vector<double> rhoEdge;
38 std::vector<double> zOrigin;
43 double photocathode_MINrho;
44 double photocathode_MAXrho;
51 G4OpticalSurface *photocathode;
52 G4OpticalSurface *mirror;
53 G4OpticalSurface *dynode_surface;
55 double efficiencyCorrection;
64 virtual G4LogicalVolume *BuildVolume(
const std::string &prefix);
65 virtual G4VSolid *BuildSolid(
const std::string &prefix);
66 virtual G4PVPlacement *PlacePMT(G4RotationMatrix *pmtrot, G4ThreeVector pmtpos,
const std::string &name,
67 G4LogicalVolume *logi_pmt, G4VPhysicalVolume *mother_phys,
bool booleanSolid,
71 G4VSolid *NewEnvelopeSolid(
const std::string &name);
73 void CalcInnerParams(
GLG4TorusStack *body, std::vector<double> &innerZEdge, std::vector<double> &innerRhoEdge,
74 int &equatorIndex,
double &zLowestDynode);
77 G4PVPlacement *body_phys;
78 G4PVPlacement *inner1_phys;
79 G4PVPlacement *inner2_phys;
80 G4PVPlacement *central_gap_phys;
81 G4PVPlacement *dynode_phys;
83 G4LogicalVolume *log_pmt;
Definition: GLG4TorusStack.hh:62
Definition: PMTConstruction.hh:14
Definition: ToroidalPMTConstruction.hh:59
Definition: WaveguideFactory.hh:9
Definition: CCCrossSecMessenger.hh:29
Definition: ToroidalPMTConstruction.hh:20