/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/geo/include/RAT/RevolutionPMTConstruction.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/geo/include/RAT/RevolutionPMTConstruction.hh Source File
Ratpac-two
RevolutionPMTConstruction.hh
1 #ifndef __RAT_RevolutionPMTConstruction__
2 #define __RAT_RevolutionPMTConstruction__
3 
4 #include <G4LogicalVolume.hh>
5 #include <G4Material.hh>
6 #include <G4OpticalSurface.hh>
7 #include <G4PVPlacement.hh>
8 #include <G4VSensitiveDetector.hh>
9 #include <G4VSolid.hh>
10 #include <RAT/DB.hh>
11 #include <RAT/PMTConstruction.hh>
12 #include <string>
13 #include <vector>
14 
15 namespace RAT {
16 
19  invisible = false;
20  efficiencyCorrection = 1.0; // default to 1.0 for no correction
21  photocathode_MINrho = 0.0;
22  photocathode_MAXrho = 0.0;
23  };
24 
25  bool invisible;
26 
27  double dynodeRadius; // mm
28  double dynodeTop; // mm
29  double dynodeHeight; // mm
30  double photocathode_MINrho; // mm
31  double photocathode_MAXrho; // mm
32 
33  std::vector<double> rInner, zInner, rEdge, zEdge;
34 
35  G4Material *exterior;
36  G4Material *glass;
37  G4Material *vacuum;
38  G4Material *dynode;
39 
40  G4OpticalSurface *photocathode;
41  G4OpticalSurface *mirror;
42  G4OpticalSurface *dynode_surface;
43 
44  double efficiencyCorrection;
45 };
46 
47 // Construction for PMTs based on G4Polycon
49  public:
50  RevolutionPMTConstruction(DBLinkPtr params, G4LogicalVolume *mother);
51  virtual ~RevolutionPMTConstruction() {}
52 
53  virtual G4LogicalVolume *BuildVolume(const std::string &prefix);
54  virtual G4VSolid *BuildSolid(const std::string &prefix);
55  virtual G4PVPlacement *PlacePMT(G4RotationMatrix *pmtrot, G4ThreeVector pmtpos, const std::string &name,
56  G4LogicalVolume *logi_pmt, G4VPhysicalVolume *mother_phys, bool booleanSolid,
57  int copyNo);
58 
59  protected:
60  G4LogicalVolume *body_log;
61 
62  G4PVPlacement *inner1_phys;
63  G4PVPlacement *inner2_phys;
64  G4PVPlacement *central_gap_phys;
65  G4PVPlacement *dynode_phys;
66 
68 };
69 
70 } // namespace RAT
71 
72 #endif
Definition: PMTConstruction.hh:14
Definition: RevolutionPMTConstruction.hh:48
Definition: CCCrossSecMessenger.hh:29
Definition: RevolutionPMTConstruction.hh:17