19#include "BDSCavity.hh"
20#include "BDSCavityFactoryRectangular.hh"
21#include "BDSCavityInfo.hh"
25#include "G4SubtractionSolid.hh"
27#include "G4UnionSolid.hh"
30#include "CLHEP/Units/SystemOfUnits.h"
34BDSCavityFactoryRectangular::BDSCavityFactoryRectangular()
37BDSCavityFactoryRectangular::~BDSCavityFactoryRectangular()
41 G4double totalChordLength,
45 G4double chordLength = totalChordLength;
47 G4double outerBoxHalf = cavityRadius + thickness;
48 G4VSolid* outerSolid =
new G4Box(name +
"_outer_solid",
52 G4VSolid* sub =
new G4Box(name +
"_outer_sub_solid",
53 outerBoxHalf - thickness,
54 outerBoxHalf - thickness,
55 0.5*chordLength - thickness);
56 allSolids.insert(outerSolid);
57 allSolids.insert(sub);
59 G4VSolid* innerSolid =
new G4Tubs(name +
"_inner_solid",
65 allSolids.insert(innerSolid);
68 G4VSolid* cavitySolid1 =
new G4SubtractionSolid(name +
"_cavity_sub_solid",
71 allSolids.insert(cavitySolid1);
72 cavitySolid =
new G4SubtractionSolid(name +
"_cavity_solid",
78 G4double vacuumHalfWidth = outerBoxHalf - thickness -
lengthSafety;
79 G4VSolid* vacuumInnerCavity =
new G4Box(name +
"_vacuum_inner_cavity_solid",
84 G4VSolid* vacuumAperture =
new G4Tubs(name +
"_vacuum_aperture_solid",
92 vacuumSolid =
new G4UnionSolid(name +
"_vacuum_solid",
95 allSolids.insert(vacuumInnerCavity);
96 allSolids.insert(vacuumAperture);
99 G4double containerRadius = cavityRadius + thickness +
lengthSafety;
104 return containerRadius;
G4VSolid * vacuumSolid
Cache of particular solid or lv for common functionality in this class.
G4VSolid * containerSolid
Cache of particular solid or lv for common functionality in this class.
G4VSolid * cavitySolid
Cache of particular solid or lv for common functionality in this class.
virtual G4double CreateSolids(G4String name, G4double totalChordLength, const BDSCavityInfo *info)
Create vacuumSolid and cavitySolid. Must return the container radius.
Holder for all Geometrical information required to create an RF cavity.
G4double equatorRadius
Equator radius - half width of widest part.
G4double irisRadius
Iris radius - half width of narrowest part.
G4double thickness
Thickness of wall material.
G4double lengthSafety
Cache of global constants variable.