9 #include <G4Material.hh> 10 #include <G4LogicalVolume.hh> 11 #include <G4VPhysicalVolume.hh> 12 #include <G4PVPlacement.hh> 13 #include <G4VisAttributes.hh> 15 #include <G4Polyhedra.hh> 17 #include <G4SystemOfUnits.hh> 18 #include <G4PhysicalConstants.hh> 42 SetSensitiveDetector(
"cryo",
"segment");
70 G4LogicalVolume* logVolume
71 =
new G4LogicalVolume(
new G4Tubs(GetName(),
72 0.0, GetRadius(), GetHeight()/2,
74 FindMaterial(
"Argon_Liquid"),
76 logVolume->SetVisAttributes(GetColor(logVolume));
77 if (GetSensitiveDetector()) {
78 logVolume->SetSensitiveDetector(GetSensitiveDetector());
81 G4ThreeVector
center(0.0,0.0,GetHeight()/2);
84 center -= G4ThreeVector(0.0,0.0,0.0);
88 G4LogicalVolume* logDrift = drift.
GetPiece();
89 center -= G4ThreeVector(0.0,0.0,drift.
GetHeight()/2);
91 new G4PVPlacement(NULL,
104 double fieldPlane[] = {-drift.
GetHeight()/2,
107 G4LogicalVolume *logFieldCage
108 =
new G4LogicalVolume(
new G4Polyhedra(GetName()+
"/FieldCage",
112 fieldInner, fieldOuter),
113 FindMaterial(
"FR4_Copper"),
114 GetName()+
"/FieldCage");
115 logFieldCage->SetVisAttributes(GetColor(logFieldCage));
117 new G4PVPlacement(NULL,
120 logFieldCage->GetName(),
static constexpr double cm
MiniCaptImmersedBuilder * fBuilder
double GetHeight()
Get the total height of the drift region.
void SetNewValue(G4UIcommand *cmd, G4String val)
double GetGridPlaneOffset()
Get the offset of the grid from the top of the drift region.
void SetNewValue(G4UIcommand *cmd, G4String val)
double GetHeight()
Get the height of the exposed region. This is calculated.
virtual ~MiniCaptImmersedBuilder()
void SetWirePlaneSpacing(double v)
Set the spacing between the wire planes.
void SetApothem(double v)
Construct a module from components.
BuilderMessenger(EDepSim::Builder *c, const char *guide=NULL)
virtual G4LogicalVolume * GetPiece(void)
G4ThreeVector GetOffset()
virtual G4LogicalVolume * GetPiece(void)
MiniCaptImmersedMessenger(MiniCaptImmersedBuilder *c)
void SetDriftLength(double v)
static constexpr double mm
double GetRadius()
Get the radius of the exposed region. This is calculated.
static constexpr double degree
virtual ~MiniCaptImmersedMessenger()