75 fPosWindow0 = 0.000000*
cm;
76 fPosWindow1 = 0.004120*
cm;
79 fPosPrimFoil = 2.650000*
cm;
82 fPosMon0 = 5.000000*
cm;
83 fPosMon1 = 5.011270*
cm;
86 fPosBag0 = 6.497500*
cm;
87 fPosHelium0 = 6.500000*
cm;
88 fPosHelium1 = 116.500000*
cm;
89 fPosBag1 = 116.502500*
cm;
90 fThicknessRing = 1.4*
cm;
93 fPosScorer = 118.200000*
cm;
94 fThicknessScorer= 0.001*
cm;
95 fWidthScorerRing= 0.1*
cm;
98 fRadOverall = 23.3*
cm;
99 fRadRingInner = 20.0*
cm;
116 delete fWindowVisAtt;
117 delete fPrimFoilVisAtt;
120 delete fHeliumVisAtt;
122 delete fScorerVisAtt;
219 G4double halfLengthWorld = fPosScorer/2. + fPosDelta;
220 G4double radWorld = fRadOverall + fRadDelta;
222 halfLengthWorld, 0.*
deg, 360.*
deg);
231 worldLog,
"World", 0,
false, 0);
239 G4double halfLengthWorld = fPosScorer/2.;
240 G4double halfThicknessWindow = fPosWindow1/2.;
242 halfThicknessWindow, 0.*
deg, 360.*
deg);
252 halfThicknessWindow - halfLengthWorld),
253 windowLog,
"ExitWindow",worldLog,
false,0);
259 G4double halfLengthWorld = fPosScorer/2.;
262 if (fHalfThicknessPrimFoil==0.)
return;
265 fHalfThicknessPrimFoil, 0.*
deg, 360.*
deg);
267 fMaterialPrimFoil,
"PrimFoilLog");
274 fPosPrimFoil + fHalfThicknessPrimFoil - halfLengthWorld),
275 primFoilLog,
"ScatteringFoil",worldLog,
false,0);
281 G4double halfLengthWorld = fPosScorer/2.;
282 G4double halfThicknessMon = (fPosMon1 - fPosMon0) /2.;
284 halfThicknessMon, 0.*
deg, 360.*
deg);
294 fPosMon0 + halfThicknessMon - halfLengthWorld),
295 monLog,
"MonitorChamber",worldLog,
false,0);
301 G4double halfLengthWorld = fPosScorer/2.;
304 G4double halfThicknessBag = (fPosBag1 - fPosBag0) /2.;
306 halfThicknessBag, 0.*
deg, 360.*
deg);
316 fPosBag0 + halfThicknessBag - halfLengthWorld),
317 bagLog,
"HeliumBag",worldLog,
false,0);
320 G4double halfThicknessHelium = (fPosHelium1 - fPosHelium0) /2.;
322 halfThicknessHelium, 0.*
deg, 360.*
deg);
331 heliumLog,
"Helium",bagLog,
false,0);
334 G4double halfThicknessRing = fThicknessRing /2.;
335 G4VSolid* ringSolid =
new G4Tubs(
"ringSolid", fRadRingInner, fRadOverall,
336 halfThicknessRing, 0.*
deg, 360.*
deg);
350 -halfThicknessHelium + halfThicknessRing),
351 ring0Log,
"Ring0",heliumLog,
false,0);
355 halfThicknessHelium - halfThicknessRing),
356 ring1Log,
"Ring1",heliumLog,
false,0);
362 G4double halfLengthWorld = fPosScorer/2.;
363 G4double halfThicknessScorer = fThicknessScorer /2.;
366 halfThicknessScorer, 0.*
deg, 360.*
deg);
375 halfLengthWorld - halfThicknessScorer),
376 scorerLog,
"Scorer",worldLog,
false,0);
380 halfThicknessScorer, 0.*
deg, 360.*
deg);
384 G4int(fRadOverall/fWidthScorerRing),fWidthScorerRing);
400 fSensitiveDetectorCache.
Get();
402 if (!sensitiveDetector) {
439 fHalfThicknessPrimFoil = thicknessPrimFoil / 2.;
G4bool RegisterPrimitive(G4VPrimitiveScorer *)
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
virtual G4VPhysicalVolume * Construct()
CLHEP::Hep3Vector G4ThreeVector
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
void SetPrimFoilThickness(G4double thicknessPrimFoil)
void SetVerboseLevel(G4int vl)
void CreateScorer(G4LogicalVolume *logicWorld)
static G4MaterialTable * GetMaterialTable()
void SetFilter(G4VSDFilter *f)
Definition of the ElectronBenchmarkDetectorMessenger class.
void CreatePrimaryFoil(G4LogicalVolume *logicWorld)
static G4NistManager * Instance()
static G4PhysicalVolumeStore * GetInstance()
void CreateHeliumBag(G4LogicalVolume *logicWorld)
G4GLOB_DLL std::ostream G4cout
void CreateMonitor(G4LogicalVolume *logicWorld)
static G4LogicalVolumeStore * GetInstance()
static G4SolidStore * GetInstance()
void CreateExitWindow(G4LogicalVolume *logicWorld)
static G4GeometryManager * GetInstance()
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
void SetPrimFoilMaterial(G4String matname)
static G4RunManager * GetRunManager()
G4LogicalVolume * GetLogicalVolume() const
static G4SDManager * GetSDMpointer()
Definition of the ElectronBenchmarkDetector class.
void OpenGeometry(G4VPhysicalVolume *vol=0)
void AddElement(G4Element *element, G4int nAtoms)
virtual ~ElectronBenchmarkDetector()
ElectronBenchmarkDetector()
void ConstructSDandField()
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
void SetVisAttributes(const G4VisAttributes *pVA)
G4VPhysicalVolume * CreateWorld()
G4VPhysicalVolume * CreateGeometry()