ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
LXeDetectorConstruction.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file LXeDetectorConstruction.hh
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
//
29
//
30
//
31
#ifndef LXeDetectorConstruction_H
32
#define LXeDetectorConstruction_H 1
33
34
class
G4LogicalVolume
;
35
class
G4VPhysicalVolume
;
36
class
G4Box
;
37
class
G4Tubs
;
38
class
LXeMainVolume
;
39
class
G4Sphere
;
40
41
#include "
G4Material.hh
"
42
#include "
LXeDetectorMessenger.hh
"
43
#include "
G4VisAttributes.hh
"
44
#include "
G4RotationMatrix.hh
"
45
46
#include "
LXeScintSD.hh
"
47
#include "
LXePMTSD.hh
"
48
49
#include "
G4VUserDetectorConstruction.hh
"
50
#include "
G4Cache.hh
"
51
52
class
LXeDetectorConstruction
:
public
G4VUserDetectorConstruction
53
{
54
public
:
55
56
LXeDetectorConstruction
();
57
virtual
~LXeDetectorConstruction
();
58
59
virtual
G4VPhysicalVolume
*
Construct
();
60
virtual
void
ConstructSDandField
();
61
62
//Functions to modify the geometry
63
void
SetDimensions
(
G4ThreeVector
);
64
void
SetHousingThickness
(
G4double
);
65
void
SetNX
(
G4int
);
66
void
SetNY
(
G4int
);
67
void
SetNZ
(
G4int
);
68
void
SetPMTRadius
(
G4double
);
69
void
SetDefaults
();
70
void
SetSaveThreshold
(
G4int
);
71
72
//Get values
73
G4int
GetNX
()
const
{
return
fNx
;};
74
G4int
GetNY
()
const
{
return
fNy
;};
75
G4int
GetNZ
()
const
{
return
fNz
;};
76
G4int
GetSaveThreshold
()
const
{
return
fSaveThreshold
;};
77
G4double
GetScintX
()
const
{
return
fScint_x
;}
78
G4double
GetScintY
()
const
{
return
fScint_y
;}
79
G4double
GetScintZ
()
const
{
return
fScint_z
;}
80
G4double
GetHousingThickness
()
const
{
return
fD_mtl
;}
81
G4double
GetPMTRadius
()
const
{
return
fOuterRadius_pmt
;}
82
G4double
GetSlabZ
()
const
{
return
fSlab_z
;}
83
84
void
SetSphereOn
(
G4bool
);
85
static
G4bool
GetSphereOn
(){
return
fSphereOn
;}
86
87
void
SetHousingReflectivity
(
G4double
);
88
G4double
GetHousingReflectivity
()
const
{
return
fRefl
;}
89
90
void
SetWLSSlabOn
(
G4bool
b
);
91
G4bool
GetWLSSlabOn
()
const
{
return
fWLSslab
;}
92
93
void
SetMainVolumeOn
(
G4bool
b
);
94
G4bool
GetMainVolumeOn
()
const
{
return
fMainVolumeOn
;}
95
96
void
SetNFibers
(
G4int
n
);
97
G4int
GetNFibers
()
const
{
return
fNfibers
;}
98
99
void
SetMainScintYield
(
G4double
);
100
void
SetWLSScintYield
(
G4double
);
101
102
private
:
103
104
void
DefineMaterials
();
105
106
LXeDetectorMessenger
*
fDetectorMessenger
;
107
108
G4Box
*
fExperimentalHall_box
;
109
G4LogicalVolume
*
fExperimentalHall_log
;
110
G4VPhysicalVolume
*
fExperimentalHall_phys
;
111
112
//Materials & Elements
113
G4Material
*
fLXe
;
114
G4Material
*
fAl
;
115
G4Element
*
fN
;
116
G4Element
*
fO
;
117
G4Material
*
fAir
;
118
G4Material
*
fVacuum
;
119
G4Element
*
fC
;
120
G4Element
*
fH
;
121
G4Material
*
fGlass
;
122
G4Material
*
fPstyrene
;
123
G4Material
*
fPMMA
;
124
G4Material
*
fPethylene1
;
125
G4Material
*
fPethylene2
;
126
127
//Geometry
128
G4double
fScint_x
;
129
G4double
fScint_y
;
130
G4double
fScint_z
;
131
G4double
fD_mtl
;
132
G4int
fNx
;
133
G4int
fNy
;
134
G4int
fNz
;
135
G4int
fSaveThreshold
;
136
G4double
fOuterRadius_pmt
;
137
G4int
fNfibers
;
138
static
G4bool
fSphereOn
;
139
G4double
fRefl
;
140
G4bool
fWLSslab
;
141
G4bool
fMainVolumeOn
;
142
G4double
fSlab_z
;
143
144
LXeMainVolume
*
fMainVolume
;
145
146
G4MaterialPropertiesTable
*
fLXe_mt
;
147
G4MaterialPropertiesTable
*
fMPTPStyrene
;
148
149
//Sensitive Detectors
150
G4Cache<LXeScintSD*>
fScint_SD
;
151
G4Cache<LXePMTSD*>
fPmt_SD
;
152
153
};
154
155
#endif
geant4
tree
geant4-10.6-release
examples
extended
optical
LXe
include
LXeDetectorConstruction.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:08
using
1.8.2 with
ECCE GitHub integration