Loading...
Searching...
No Matches
F01DetectorConstruction.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26/// \file field/field01/include/F01DetectorConstruction.hh
27/// \brief Definition of the F01DetectorConstruction class
28//
29//
30//
31//
32//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
33//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
34
35#ifndef F01DetectorConstruction_h
36#define F01DetectorConstruction_h 1
37
38#include "G4VUserDetectorConstruction.hh"
39#include "G4Cache.hh"
40
41#include "CLHEP/Units/SystemOfUnits.h"
42
43class G4Box;
44class G4Tubs;
45class G4LogicalVolume;
47
48class G4Material;
50
53class F01FieldSetup;
54
55//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
56
58{
59 public:
60
62 ~F01DetectorConstruction() override;
63
64 public:
65
67 void SetAbsorberThickness(G4double);
68 void SetAbsorberRadius(G4double);
69
70 void SetAbsorberZpos(G4double);
71
73 void SetWorldSizeZ(G4double);
74 void SetWorldSizeR(G4double);
75
76 G4VPhysicalVolume* Construct() override;
77 void ConstructSDandField() override;
78
79 public:
80
82
84 G4double GetWorldSizeZ() {return fWorldSizeZ;}
85 G4double GetWorldSizeR() {return fWorldSizeR;}
86
87 G4double GetAbsorberZpos() {return fZAbsorber;}
88 G4double GetZStartAbs() {return fZStartAbs;}
89 G4double GetZEndAbs() {return fZEndAbs;}
90
94
98
99 void SetUseFSALstepper( G4bool val ) { fUseFSALstepper = val; }
101
102 private:
103
104 F01DetectorMessenger* fDetectorMessenger = nullptr; // pointer -> Messenger
105 G4Cache<F01CalorimeterSD*> fCalorimeterSD; // pointer -> sensitive detector
107
108 G4Tubs* fSolidWorld = nullptr; // pointer to the solid World
109 G4LogicalVolume* fLogicWorld = nullptr; // pointer to the logical World
110 G4VPhysicalVolume* fPhysiWorld = nullptr; // pointer to the physical World
111
112 G4Tubs* fSolidAbsorber = nullptr; // pointer to the solid Absorber
113 G4LogicalVolume* fLogicAbsorber = nullptr; // pointer to the logical Absorber
114 G4VPhysicalVolume* fPhysiAbsorber = nullptr; // pointer to the physical Absorber
115
117 G4double fAbsorberThickness = 1.0 * CLHEP::mm;
118 G4double fAbsorberRadius = 20000. * CLHEP::mm;
119
120 G4double fZAbsorber = 21990. * CLHEP::mm;
121 G4double fZStartAbs = 0.;
122 G4double fZEndAbs = 0.;
123
125 G4double fWorldSizeR = 22000. * CLHEP::mm;
126 G4double fWorldSizeZ = 44000. * CLHEP::mm;
127
128 G4bool fUseFSALstepper= false;
129
130 private:
131
132 void DefineMaterials();
135};
136
137//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
138
140{
141 // Compute derived parameters of the calorimeter
142
145
146 G4cout << "-- Calorimeter Absorber z-coords: Start= "
147 << fZStartAbs << " End= " << fZEndAbs << G4endl;
148}
149
150#endif
G4LogicalVolume * GetLogicalAbsorber()
G4VPhysicalVolume * ConstructCalorimeter()
G4Cache< F01FieldSetup * > fEmFieldSetup
const G4VPhysicalVolume * GetAbsorber()
G4VPhysicalVolume * Construct() override
const G4VPhysicalVolume * GetPhysiWorld()
F01DetectorMessenger * fDetectorMessenger
G4Cache< F01CalorimeterSD * > fCalorimeterSD

Applications | User Support | Publications | Collaboration