Loading...
Searching...
No Matches
F03DetectorConstruction.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/field03/include/F03DetectorConstruction.hh
27/// \brief Definition of the F03DetectorConstruction class
28//
29//
30//
31//
32//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
33//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
34
35#ifndef F03DetectorConstruction_h
36#define F03DetectorConstruction_h 1
37
38#include "G4VUserDetectorConstruction.hh"
39#include "G4Cache.hh"
40
41#include "CLHEP/Units/SystemOfUnits.h"
42
43class G4Tubs;
44class G4LogicalVolume;
46
47class G4Material;
49
52class F03FieldSetup;
53
54//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
55
57{
58 public:
59
61 ~F03DetectorConstruction() override;
62
63 public:
64
66 void SetAbsorberThickness(G4double);
67 void SetAbsorberRadius(G4double);
68
69 void SetAbsorberZpos(G4double);
70
72 void SetWorldSizeZ(G4double);
73 void SetWorldSizeR(G4double);
74
75 G4VPhysicalVolume* Construct() override;
76 void ConstructSDandField() override;
77
78 public:
79
81
83 G4double GetWorldSizeZ() {return fWorldSizeZ;}
84 G4double GetWorldSizeR() {return fWorldSizeR;}
85
86 G4double GetAbsorberZpos() {return fZAbsorber;}
87 G4double GetZStartAbs() {return fZStartAbs;}
88 G4double GetZEndAbs() {return fZEndAbs;}
89
93
97
98 private:
99 F03DetectorMessenger* fDetectorMessenger = nullptr; // pointer to the Messenger
100 G4Cache<F03CalorimeterSD*> fCalorimeterSD = nullptr; // pointer to the sensitive det.
102
103 G4Tubs* fSolidWorld = nullptr; // pointer to the solid World
104 G4LogicalVolume* fLogicWorld = nullptr; // pointer to the logical World
105 G4VPhysicalVolume* fPhysiWorld = nullptr; // pointer to the physical World
106
107 G4Tubs* fSolidAbsorber = nullptr; // pointer to the solid Absorber
108 G4LogicalVolume* fLogicAbsorber = nullptr; // pointer to the logical Absorber
109 G4VPhysicalVolume* fPhysiAbsorber = nullptr; // pointer to the physical Absorber
110
111 G4Tubs* fSolidRadSlice = nullptr; // pointer to the solid z-slice
112 G4LogicalVolume* fLogicRadSlice = nullptr; // pointer to the logical z-slide
113 G4VPhysicalVolume* fPhysiRadSlice = nullptr; // pointer to the physical z-slide
114
118
121 G4Material* fRadiatorMat = nullptr; // pointer to the TR radiator material
122
123 G4double fWorldSizeR = 22000. * CLHEP::mm;
124 G4double fWorldSizeZ = 44000. * CLHEP::mm;
125
126 G4double fAbsorberThickness = 1. * CLHEP::mm;
127 G4double fAbsorberRadius = 20000. * CLHEP::mm;
128
129 G4double fZAbsorber = 21990. * CLHEP::mm;
130 G4double fZStartAbs = 0.;
131 G4double fZEndAbs = 0.;
132
133 G4double fRadThickness = 100. * CLHEP::mm;
134 G4double fGasGap = 100. * CLHEP::mm;
135 G4double fDetGap = 1. * CLHEP::mm;
136
137 G4int fFoilNumber = 2;
138
139 private:
140
141 void DefineMaterials();
144};
145
146//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
147
149{
150 // Compute derived parameters of the calorimeter
151
154}
155
156#endif
const G4VPhysicalVolume * GetPhysiWorld()
const G4VPhysicalVolume * GetAbsorber()
F03DetectorMessenger * fDetectorMessenger
G4VPhysicalVolume * Construct() override
G4LogicalVolume * GetLogicalAbsorber()
G4Cache< F03CalorimeterSD * > fCalorimeterSD
G4VPhysicalVolume * ConstructCalorimeter()
G4Cache< F03FieldSetup * > fEmFieldSetup
A class for setting up the Magnetic Field.

Applications | User Support | Publications | Collaboration