Loading...
Searching...
No Matches
F02DetectorConstruction.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/field02/include/F02DetectorConstruction.hh
27/// \brief Definition of the F02DetectorConstruction class
28//
29//
30//
31//
32//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
33//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
34
35#ifndef F02DetectorConstruction_h
36#define F02DetectorConstruction_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
54
55//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
56
58{
59 public:
60
62 ~F02DetectorConstruction() 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 private:
100
101 F02DetectorMessenger* fDetectorMessenger = nullptr; // pointer -> Messenger
102 G4Cache<F02CalorimeterSD*> fCalorimeterSD = nullptr; // pointer -> sensitive detector
104
105 G4Tubs* fSolidWorld = nullptr; // pointer to the solid World
106 G4LogicalVolume* fLogicWorld = nullptr; // pointer to the logical World
107 G4VPhysicalVolume* fPhysiWorld = nullptr; // pointer to the physical World
108
109 G4Tubs* fSolidAbsorber = nullptr; // pointer to the solid Absorber
110 G4LogicalVolume* fLogicAbsorber = nullptr; // pointer to the logical Absorber
111 G4VPhysicalVolume* fPhysiAbsorber = nullptr; // pointer to the physical Absorber
112
114 G4double fAbsorberThickness = 4. * CLHEP::cm;
115 G4double fAbsorberRadius = 10. * CLHEP::cm;
117
118 G4double fZAbsorber = 36. * CLHEP::cm;
119 G4double fZStartAbs = 0.;
120 G4double fZEndAbs = 0.;
121
123 G4double fWorldSizeR = 20. * CLHEP::cm;
124 G4double fWorldSizeZ = 80. * CLHEP::cm;
125
126 private:
127
128 void DefineMaterials();
131};
132
133//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
134
136{
137 // Compute derived parameters of the calorimeter
138
141}
142
143#endif
G4VPhysicalVolume * Construct() override
F02DetectorMessenger * fDetectorMessenger
const G4VPhysicalVolume * GetAbsorber()
G4VPhysicalVolume * ConstructCalorimeter()
const G4VPhysicalVolume * GetPhysiWorld()
G4LogicalVolume * GetLogicalAbsorber()
G4Cache< F02ElectricFieldSetup * > fEmFieldSetup
G4Cache< F02CalorimeterSD * > fCalorimeterSD
A class for control of the Electric Field of the detector.

Applications | User Support | Publications | Collaboration