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

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/geo/include/RAT/GeoNestedTubeConstruction.hh Source File
Ratpac-two
GeoNestedTubeConstruction.hh
1 #ifndef __RAT_GeoNestedTubeConstruction__
2 #define __RAT_GeoNestedTubeConstruction__
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/Factory.hh>
12 #include <RAT/GeoFactory.hh>
13 #include <RAT/GeoFiberSensitiveDetector.hh>
14 #include <string>
15 #include <vector>
16 
17 namespace RAT {
18 
20  GeoNestedTubeConstructionParams() { invisible = false; };
21 
22  bool invisible;
23 
24  double outer_r;
25  double inner_r;
26  double core_r;
27  double Dz; // half length
28 
29  G4Material *outer;
30  G4Material *inner;
31  G4Material *core;
32 
33  // G4OpticalSurface *outer_inner;
34  G4OpticalSurface *inner_core;
35 };
36 
38  public:
39  GeoNestedTubeConstruction(DBLinkPtr table, DBLinkPtr postable, G4LogicalVolume *mother, int ID);
40  virtual ~GeoNestedTubeConstruction() {}
41 
42  virtual G4LogicalVolume *BuildVolume(const std::string &prefix, int ID, DBLinkPtr table);
43  virtual G4VSolid *BuildSolid(const std::string &prefix);
44  virtual G4PVPlacement *PlaceNestedTube(G4RotationMatrix *tuberot, G4ThreeVector tubepos, const std::string &name,
45  G4LogicalVolume *logi_tube, G4VPhysicalVolume *mother_phys, bool booleanSolid,
46  int copyNo);
47 
48  protected:
49  // physical volumes
50  G4PVPlacement *inner_phys;
51  G4PVPlacement *core_phys;
52 
53  G4LogicalVolume *log_tube;
55 
56  DBLinkPtr myTable;
57 };
58 
59 } // namespace RAT
60 
61 #endif
Definition: GeoNestedTubeConstruction.hh:37
Definition: CCCrossSecMessenger.hh:29
Definition: GeoNestedTubeConstruction.hh:19