Loading...
Searching...
No Matches
SAXSDetectorConstruction.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 SAXSDetectorConstruction.hh
27/// \brief Implementation of the SAXSDetectorConstruction class
28//
29//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
30
31#ifndef SAXSDetectorConstruction_h
32#define SAXSDetectorConstruction_h 1
33#endif
34
36
37#include "G4VUserDetectorConstruction.hh"
38
39#include "G4Box.hh"
40#include "G4Tubs.hh"
41#include "G4LogicalVolume.hh"
42#include "G4VPhysicalVolume.hh"
43
44#include "G4RunManager.hh"
45#include "globals.hh"
46
47#include "G4Material.hh"
48#include "G4MaterialTable.hh"
49#include "G4Element.hh"
50#include "G4ElementTable.hh"
51#include "G4NistManager.hh"
52#include "G4ExtendedMaterial.hh"
53
54//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
55
56/// Detector construction.
57
59{
60public:
63
64 void DefineMaterials();
66
68
71
72protected:
74
75private:
76 virtual void ConstructSDandField();
77
79
81
82 //-----------------definition of Volumes-------------------
83 //World
87
88 //Phantom
93
94 //Slits
103
104 //Detector
107
108 //Shielding
113
114 //--------------------definition of Materials--------------
115 //materials for MIFF study
147
148 //custom material
162
163 //definitions of variables for MedMat composition
165
166 //other materials
171
172 //-------------definition of Geometrical Variables---------
173 //World
174 G4double fWorldSize;
175
176 //Phantom
179 G4double fPhantomZ;
180
181 //setup angle (rad)
182 G4double fthetaSetup;
183
184 //Slits
185 G4double fSlitSize;
190 G4double fSlit1SampleDistance; //center-center
202
203 //Detector
206 G4double fDetectorSampleDistance; //center-center
207
208 //Shielding
210
211 //-------------set methods for the messenger---------------
212public:
213 void SetCustomMatFF(const G4String& ffname) {fCustomMatFF = ffname;}
214
215 void SetCustomMatDensity(G4double csd) {fCustomMatDensity = csd;}
216 void SetCustomMatHmassfract(G4double csHmf) {fCustomMatHmassfract = csHmf;}
217 void SetCustomMatCmassfract(G4double csCmf) {fCustomMatCmassfract = csCmf;}
218 void SetCustomMatNmassfract(G4double csNmf) {fCustomMatNmassfract = csNmf;}
219 void SetCustomMatOmassfract(G4double csOmf) {fCustomMatOmassfract = csOmf;}
220 void SetCustomMatNamassfract(G4double csNamf) {fCustomMatNamassfract = csNamf;}
221 void SetCustomMatPmassfract(G4double csPmf) {fCustomMatPmassfract = csPmf;}
222 void SetCustomMatSmassfract(G4double csSmf) {fCustomMatSmassfract = csSmf;}
223 void SetCustomMatClmassfract(G4double csClmf) {fCustomMatClmassfract = csClmf;}
224 void SetCustomMatKmassfract(G4double csKmf) {fCustomMatKmassfract = csKmf;}
225 void SetCustomMatCamassfract(G4double csCamf) {fCustomMatCamassfract = csCamf;}
226
228
229 void SetPhantomDiameter(G4double diam) {fPhantomDiameter = diam;}
230 void SetPhantomHeight(G4double ht) {fPhantomHeight = ht;}
231 void SetPhantomZ(G4double PhZ) {fPhantomZ = PhZ;}
232
233 void SetComp0(G4double c0) {fComp0 = c0;}
234 void SetComp1(G4double c1) {fComp1 = c1;}
235 void SetComp2(G4double c2) {fComp2 = c2;}
236 void SetComp3(G4double c3) {fComp3 = c3;}
237
238 void SetThetaSetup(G4double theta) {fthetaSetup = theta;}
239
240 void SetSlits(G4bool bslits) {fIWantSlits = bslits;}
241 void SetSlit1Thickness(G4double sl1th) {fSlit1Thickness = sl1th;}
242 void SetSlit2Thickness(G4double sl2th) {fSlit2Thickness = sl2th;}
243 void SetSlit3Thickness(G4double sl3th) {fSlit3Thickness = sl3th;}
244 void SetSlit4Thickness(G4double sl4th) {fSlit4Thickness = sl4th;}
245 void SetSlit1SampleDistance(G4double slSampleDist1)
246 {fSlit1SampleDistance = slSampleDist1;}
247 void SetSlit2SampleDistance(G4double slSampleDist2)
248 {fSlit2SampleDistance = slSampleDist2;}
249 void SetSlit3SampleDistance(G4double slSampleDist3)
250 {fSlit3SampleDistance = slSampleDist3;}
251 void SetSlit4SampleDistance(G4double slSampleDist4)
252 {fSlit4SampleDistance = slSampleDist4;}
253 void SetSlit1xAperture(G4double aperture1x) {fSlit1xAperture = aperture1x;}
254 void SetSlit2xAperture(G4double aperture2x) {fSlit2xAperture = aperture2x;}
255 void SetSlit3xAperture(G4double aperture3x) {fSlit3xAperture = aperture3x;}
256 void SetSlit4xAperture(G4double aperture4x) {fSlit4xAperture = aperture4x;}
257 void SetSlit1yAperture(G4double aperture1y) {fSlit1yAperture = aperture1y;}
258 void SetSlit2yAperture(G4double aperture2y) {fSlit2yAperture = aperture2y;}
259 void SetSlit3yAperture(G4double aperture3y) {fSlit3yAperture = aperture3y;}
260 void SetSlit4yAperture(G4double aperture4y) {fSlit4yAperture = aperture4y;}
261
262 void SetDetectorSize(G4double detSize) {fDetectorSize = detSize;}
263 void SetDetectorThickness(G4double detTh) {fDetectorThickness = detTh;}
264 void SetDetectorSampleDistance(G4double detDist)
265 {fDetectorSampleDistance = detDist;}
266
267};
268//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
269
Implementation of the SAXSDetectorConstructionMessenger class.
DetectorConstruction messenger.
void SetSlit3SampleDistance(G4double slSampleDist3)
void SetCustomMatSmassfract(G4double csSmf)
void SetSlit4xAperture(G4double aperture4x)
void SetCustomMatKmassfract(G4double csKmf)
void SetCustomMatClmassfract(G4double csClmf)
void SetDetectorSampleDistance(G4double detDist)
void SetSlit1SampleDistance(G4double slSampleDist1)
void SetSlit1yAperture(G4double aperture1y)
void SetDetectorThickness(G4double detTh)
virtual G4VPhysicalVolume * Construct()
G4LogicalVolume * GetSensitiveVolume() const
void SetCustomMatNamassfract(G4double csNamf)
void SetCustomMatHmassfract(G4double csHmf)
void SetCustomMatPmassfract(G4double csPmf)
void SetCustomMatCmassfract(G4double csCmf)
G4VPhysicalVolume * fShieldingBackPhysical
void SetSlit2xAperture(G4double aperture2x)
void SetCustomMatCamassfract(G4double csCamf)
void SetCustomMatNmassfract(G4double csNmf)
void SetSlit4SampleDistance(G4double slSampleDist4)
void SetSlit2yAperture(G4double aperture2y)
void SetSlit1xAperture(G4double aperture1x)
G4LogicalVolume * GetPhantom() const
void SetSlit2SampleDistance(G4double slSampleDist2)
void SetCustomMatFF(const G4String &ffname)
void SetSlit3xAperture(G4double aperture3x)
void SetDetectorSize(G4double detSize)
void SetSlit3yAperture(G4double aperture3y)
SAXSDetectorConstructionMessenger * fMessenger
void SetCustomMatOmassfract(G4double csOmf)
void SetSlit4yAperture(G4double aperture4y)

Applications | User Support | Publications | Collaboration