76{
77
78 const G4bool checkOverlaps = true;
79
80
81 const G4double worldSizeXY = 1.*m;
82 const G4double worldSizeZ = 1.*m;
83
84
85 G4int nofLayers = 10;
86 G4double absoThickness = 10.*mm;
87 G4double gapThickness = 5.*mm;
88 G4double calorSizeXY = 10.*cm;
89
90 auto layerThickness = absoThickness + gapThickness;
91 auto calorThickness = nofLayers * layerThickness;
92
93
94 auto defaultMaterial = G4Material::GetMaterial("G4_Galactic");
95 auto absorberMaterial = G4Material::GetMaterial("G4_Pb");
96 auto gapMaterial = G4Material::GetMaterial("liquidArgon");
97
98
99 auto worldS
100 =
new G4Box(
"World",worldSizeXY/2,worldSizeXY/2,worldSizeZ/2);
101
102 auto worldLV
104 worldS,
105 defaultMaterial,
106 "World");
107
108 auto worldPV
110 0,
111 G4ThreeVector(),
112 worldLV,
113 "World",
114 0,
115 false,
116 0,
117 checkOverlaps);
118
119
120
121
122 auto calorimeterS
123 =
new G4Box(
"Calorimeter",calorSizeXY/2,calorSizeXY/2,calorThickness/2);
124
125 auto calorLV
127 calorimeterS,
128 defaultMaterial,
129 "Calorimeter");
130
132 0,
133 G4ThreeVector(),
134 calorLV,
135 "Calorimeter",
136 worldLV,
137 false,
138 0,
139 checkOverlaps);
140
141
142
143 auto layerS
145 calorSizeXY/2, calorSizeXY/2, layerThickness/2);
146
147 auto layerLV
149 layerS,
150 defaultMaterial,
151 "Layer");
152
154 "Layer",
155 layerLV,
156 calorLV,
157 kZAxis,
158 nofLayers,
159 layerThickness);
160
161
162
163 auto absorberS
165 calorSizeXY/2, calorSizeXY/2, absoThickness/2);
166
167 auto absorberLV
169 absorberS,
170 absorberMaterial,
171 "Abso");
172
174 0,
175 G4ThreeVector(0., 0., -gapThickness/2),
176 absorberLV,
177 "Abso",
178 layerLV,
179 false,
180 0,
181 checkOverlaps);
182
183
184
185 auto gapS
187 calorSizeXY/2, calorSizeXY/2, gapThickness/2);
188
189 auto gapLV
191 gapS,
192 gapMaterial,
193 "Gap");
194
196 0,
197 G4ThreeVector(0., 0., absoThickness/2),
198 gapLV,
199 "Gap",
200 layerLV,
201 false,
202 0,
203 checkOverlaps);
204
205
206 worldLV->SetVisAttributes (G4VisAttributes::GetInvisible());
207
208 return worldPV;
209}