source: trunk/examples/advanced/cosmicray_charging/src/LISAElectronicsBoxes.icc@ 1322

Last change on this file since 1322 was 807, checked in by garnier, 17 years ago

update

File size: 25.4 KB
Line 
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// ********************************************************************
27// * *
28// * cosmicray_charging advanced example for Geant4 *
29// * (adapted simulation of test-mass charging in the LISA mission) *
30// * *
31// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass *
32// * Imperial College London *
33// * *
34// * LISADetectorConstruction class *
35// * *
36// ********************************************************************
37//
38// HISTORY
39// 22/02/2004: migrated from LISA-V04
40// 24/11/2004: migrated to cmath
41// 24/11/2004: inner boxes made invisible
42// 08/12/2005: removed compilation warnings
43//
44// ********************************************************************
45
46
47//***************************************************************************
48// Electronics Boxes
49//***************************************************************************
50
51
52 // Lower Deck electronics
53 G4double EB_zoff = -230.*mm;
54 G4ThreeVector EPC1_pos(-680*mm, +580*mm, EB_zoff+0.5*110.*mm);
55 G4ThreeVector EPC2_pos(-680*mm, -580*mm, EB_zoff+0.5*110.*mm);
56 G4ThreeVector GyroPack_pos(+150*mm, +980*mm, EB_zoff+0.5* 85.*mm);
57 G4ThreeVector InstConE1_pos(+720*mm, -190*mm, EB_zoff+0.5*180.*mm);
58 G4ThreeVector InstConE2_pos(+720*mm, +190*mm, EB_zoff+0.5*180.*mm);
59 G4ThreeVector RFDU_pos( +30*mm,-1000*mm, EB_zoff+0.5* 80.*mm);
60 G4ThreeVector StarTrack3_pos(+450*mm, -850*mm, EB_zoff+0.5* 54.*mm);
61 G4ThreeVector StarTrack4_pos(+450*mm, +850*mm, EB_zoff+0.5* 54.*mm);
62 G4ThreeVector STElec1_pos( +30*mm, -720*mm, EB_zoff+0.5*100.*mm);
63 G4ThreeVector STElec2_pos(-280*mm, -900*mm, EB_zoff+0.5*100.*mm);
64 G4ThreeVector STElec3_pos(-280*mm, +900*mm, EB_zoff+0.5*100.*mm);
65 G4ThreeVector STElec4_pos( +30*mm, +720*mm, EB_zoff+0.5*100.*mm);
66 G4ThreeVector TWT1_pos(-730*mm, +350*mm, EB_zoff+0.5* 36.*mm);
67 G4ThreeVector TWT2_pos(-730*mm, -350*mm, EB_zoff+0.5* 36.*mm);
68 G4ThreeVector UVBox1_pos(+180*mm, 0, EB_zoff+0.5* 70.*mm);
69 G4ThreeVector UVBox2_pos(+480*mm, 0, EB_zoff+0.5* 70.*mm);
70
71 // Upper Deck electronics
72 EB_zoff = 220.*mm;
73 G4ThreeVector PCDU_pos(-770*mm, +600*mm, EB_zoff-0.5*300.*mm);
74 G4ThreeVector CentELCPS_pos(-780*mm, -570*mm, EB_zoff-0.5*115.*mm);
75 G4ThreeVector CentEL2_pos(-250*mm,-1000*mm, EB_zoff-0.5*284.*mm);
76 G4ThreeVector FEEPEL1_pos(-250*mm,+1000*mm, EB_zoff-0.5*200.*mm);
77 G4ThreeVector FEEPEL2_pos(+270*mm,+1020*mm, EB_zoff-0.5*200.*mm);
78 G4ThreeVector HGADrive1_pos( 20*mm,-1210*mm, EB_zoff-0.5*100.*mm);
79 G4ThreeVector HGADrive2_pos( 20*mm,+1210*mm, EB_zoff-0.5*100.*mm);
80 G4ThreeVector InterfelEL1_pos(1030*mm, -180*mm, EB_zoff-0.5*150.*mm);
81 G4ThreeVector InterfelEL2_pos(1030*mm, +180*mm, EB_zoff-0.5*150.*mm);
82 G4ThreeVector LaserEL1_pos(+720*mm, -220*mm, EB_zoff-0.5*100.*mm);
83 G4ThreeVector LaserEL2_pos(+720*mm, +220*mm, EB_zoff-0.5*100.*mm);
84 G4ThreeVector LaserHead1_pos(1100*mm, -400*mm, EB_zoff-0.5* 5.*mm);
85 G4ThreeVector LaserHead2_pos(1010*mm, -480*mm, EB_zoff-0.5* 50.*mm);
86 G4ThreeVector LaserHead3_pos(1100*mm, +400*mm, EB_zoff-0.5* 50.*mm);
87 G4ThreeVector LaserHead4_pos(1010*mm, +480*mm, EB_zoff-0.5* 50.*mm);
88 G4ThreeVector StarTrack1_pos(+650*mm,+1050*mm, EB_zoff-0.5* 54.*mm);
89 G4ThreeVector StarTrack2_pos(+650*mm,-1050*mm, EB_zoff-0.5* 54.*mm);
90 G4ThreeVector Transpond2_pos(+270*mm,-1050*mm, EB_zoff-0.5*178.*mm);
91
92
93 // rotations
94 G4RotationMatrix EB_rot1; EB_rot1.rotateZ(+30.*deg);
95 G4RotationMatrix EB_rot2; EB_rot2.rotateZ(-30.*deg);
96 G4RotationMatrix EB_rot3; EB_rot3.rotateZ(+60.*deg);
97 G4RotationMatrix EB_rot4; EB_rot4.rotateZ(-60.*deg);
98
99
100 G4double f;
101 // Each box is made from solid Al6061 from which a volume
102 // f times smaller is removed to match assigned mass;
103
104
105 // Lower Deck electronics
106 G4Box* EPC_box_o;
107 EPC_box_o = new G4Box("EPC_box_o",
108 0.5*227.*mm, 0.5*63.*mm, 0.5*110.*mm);
109 G4LogicalVolume* EPC_log_o;
110 EPC_log_o = new G4LogicalVolume(EPC_box_o, Al6061, "EPC_log_o");
111 G4VPhysicalVolume* EPC_phys_o;
112 EPC_phys_o = new G4PVPlacement(0, spacecraft_pos + EPC1_pos,
113 "EPC_phys_o", EPC_log_o, wld_phys, false, 0);
114 EPC_phys_o = new G4PVPlacement(0, spacecraft_pos + EPC2_pos,
115 "EPC_phys_o", EPC_log_o, wld_phys, false, 1);
116 f = std::pow(1.-1.4/(2.70*227*63*110)*1E6, 1./3.);
117 // G4cout << "f: " << f << G4endl;
118 G4Box* EPC_box_i;
119 EPC_box_i = new G4Box("EPC_box_i",
120 f*0.5*227.*mm, f*0.5*63.*mm, f*0.5*110.*mm);
121 G4LogicalVolume* EPC_log_i;
122 EPC_log_i = new G4LogicalVolume(EPC_box_i, vacuum, "EPC_log_i");
123 G4VPhysicalVolume* EPC_phys_i;
124 EPC_phys_i = new G4PVPlacement
125 (0, 0, "EPC_phys_i", EPC_log_i, EPC_phys_o, false, 0);
126 //
127 //
128 G4Tubs* GyroPack_tub_o;
129 GyroPack_tub_o = new G4Tubs("GyroPack_tub_o",
130 0., 0.5*89.*mm, 0.5*85.*mm, 0., 360.*deg);
131 G4LogicalVolume* GyroPack_log_o;
132 GyroPack_log_o = new G4LogicalVolume
133 (GyroPack_tub_o, Al6061, "GyroPack_log_o");
134 G4VPhysicalVolume* GyroPack_phys_o;
135 GyroPack_phys_o = new G4PVPlacement(0, spacecraft_pos
136 + GyroPack_pos, "GyroPack_phys_o", GyroPack_log_o, wld_phys, false, 0);
137 f = std::pow(1.-1.00/(2.70*pi*(0.5*89.)*(0.5*89.)*85.)*1E6, 1./3.);
138 // G4cout << "f: " << f << G4endl;
139 G4Tubs* GyroPack_tub_i;
140 GyroPack_tub_i = new G4Tubs("GyroPack_tub_i",
141 0., f*0.5*89.*mm, f*0.5*85.*mm, 0., 360.*deg);
142 G4LogicalVolume* GyroPack_log_i;
143 GyroPack_log_i = new G4LogicalVolume
144 (GyroPack_tub_i, vacuum, "GyroPack_log_i");
145 G4VPhysicalVolume* GyroPack_phys_i;
146 GyroPack_phys_i = new G4PVPlacement(0, 0,
147 "GyroPack_phys_i", GyroPack_log_i, GyroPack_phys_o, false, 0);
148 //
149 //
150 G4Box* InstConE_box_o;
151 InstConE_box_o = new G4Box("InstConE_box_o",
152 0.5*250.*mm, 0.5*180.*mm, 0.5*180.*mm);
153 G4LogicalVolume* InstConE_log_o;
154 InstConE_log_o = new G4LogicalVolume
155 (InstConE_box_o, Al6061, "InstConE_log_o");
156 G4VPhysicalVolume* InstConE_phys_o;
157 InstConE_phys_o = new G4PVPlacement(G4Transform3D
158 (EB_rot1, spacecraft_pos + InstConE1_pos),
159 "InstConE_phys_o", InstConE_log_o, wld_phys, false, 0);
160 InstConE_phys_o = new G4PVPlacement(G4Transform3D
161 (EB_rot2, spacecraft_pos + InstConE2_pos),
162 "InstConE_phys_o", InstConE_log_o, wld_phys, false, 1);
163 f = std::pow(1.-4.5/(2.70*250*180*180)*1E6, 1./3.);
164 G4Box* InstConE_box_i;
165 InstConE_box_i = new G4Box("InstConE_box_i",
166 f*0.5*250.*mm, f*0.5*180.*mm, f*0.5*180.*mm);
167 G4LogicalVolume* InstConE_log_i;
168 InstConE_log_i = new G4LogicalVolume
169 (InstConE_box_i, vacuum, "InstConE_log_i");
170 G4VPhysicalVolume* InstConE_phys_i;
171 InstConE_phys_i = new G4PVPlacement
172 (0, 0, "InstConE_phys_i", InstConE_log_i, InstConE_phys_o, false, 0);
173 //
174 //
175 G4Box* RFDU_box_o;
176 RFDU_box_o = new G4Box("RFDU_box_o",
177 0.5*160.*mm, 0.5*60.*mm, 0.5*80.*mm);
178 G4LogicalVolume* RFDU_log_o;
179 RFDU_log_o = new G4LogicalVolume
180 (RFDU_box_o, Al6061, "RFDU_log_o");
181 G4VPhysicalVolume* RFDU_phys_o;
182 RFDU_phys_o = new G4PVPlacement(0, spacecraft_pos
183 + RFDU_pos, "RFDU_phys_o", RFDU_log_o, wld_phys, false, 0);
184 f = std::pow(1.-1.0/(2.70*160*60*80)*1E6, 1./3.);
185 G4Box* RFDU_box_i;
186 RFDU_box_i = new G4Box("RFDU_box_i",
187 f*0.5*160.*mm, f*0.5*60.*mm, f*0.5*80.*mm);
188 G4LogicalVolume* RFDU_log_i;
189 RFDU_log_i = new G4LogicalVolume(RFDU_box_i, vacuum, "RFDU_log_i");
190 G4VPhysicalVolume* RFDU_phys_i;
191 RFDU_phys_i = new G4PVPlacement
192 (0, 0, "RFDU_phys_i", RFDU_log_i, RFDU_phys_o, false, 0);
193 //
194 //
195 G4Box* StarTrack_L_box_o;
196 StarTrack_L_box_o = new G4Box("StarStrack_box_o",
197 0.5*50.*mm, 0.5*50.*mm, 0.5*54.*mm);
198 G4LogicalVolume* StarTrack_L_log_o;
199 StarTrack_L_log_o = new G4LogicalVolume
200 (StarTrack_L_box_o, Al6061, "StarTrack_log_o");
201 G4VPhysicalVolume* StarTrack_L_phys_o;
202 StarTrack_L_phys_o = new G4PVPlacement(0, spacecraft_pos + StarTrack3_pos,
203 "STarTrack3_phys_o", StarTrack_L_log_o, wld_phys, false, 0);
204 StarTrack_L_phys_o = new G4PVPlacement(0, spacecraft_pos + StarTrack4_pos,
205 "STarTrack4_phys_o", StarTrack_L_log_o, wld_phys, false, 1);
206 f = std::pow(1.-0.30/(2.70*50*50*54)*1E6, 1./3.);
207 G4Box* StarTrack_L_box_i;
208 StarTrack_L_box_i = new G4Box("StarTrack_L_box_i",
209 f*0.5*50.*mm, f*0.5*50.*mm, f*0.5*54.*mm);
210 G4LogicalVolume* StarTrack_L_log_i;
211 StarTrack_L_log_i = new G4LogicalVolume
212 (StarTrack_L_box_i, vacuum, "StarTrack_L_log_i");
213 G4VPhysicalVolume* StarTrack_L_phys_i;
214 StarTrack_L_phys_i = new G4PVPlacement
215 (0,0,"StarTrack_L_phys_i",StarTrack_L_log_i,StarTrack_L_phys_o,false,0);
216 //
217 //
218 G4Box* STElec_box_o;
219 STElec_box_o = new G4Box("STElec_box_o",
220 0.5*100.*mm, 0.5*100.*mm, 0.5*100.*mm);
221 G4LogicalVolume* STElec_log_o;
222 STElec_log_o = new G4LogicalVolume
223 (STElec_box_o, Al6061, "STElec_log_o");
224 G4VPhysicalVolume* STElec_phys_o;
225 STElec_phys_o = new G4PVPlacement(G4Transform3D
226 (EB_rot1, spacecraft_pos + STElec1_pos),
227 "STElec_phys_o", STElec_log_o, wld_phys, false, 0);
228 STElec_phys_o = new G4PVPlacement(G4Transform3D
229 (EB_rot1, spacecraft_pos + STElec2_pos),
230 "STElec_phys_o", STElec_log_o, wld_phys, false, 1);
231 STElec_phys_o = new G4PVPlacement(G4Transform3D
232 (EB_rot2, spacecraft_pos + STElec3_pos),
233 "STElec_phys_o", STElec_log_o, wld_phys, false, 2);
234 STElec_phys_o = new G4PVPlacement(G4Transform3D
235 (EB_rot2, spacecraft_pos + STElec4_pos),
236 "STElec_phys_o", STElec_log_o, wld_phys, false, 3);
237 f = std::pow(1.-2.0/(2.70*100*100*100)*1E6, 1./3.);
238 G4Box* STElec_box_i;
239 STElec_box_i = new G4Box("STElec_box_i",
240 f*0.5*100.*mm, f*0.5*100.*mm, f*0.5*100.*mm);
241 G4LogicalVolume* STElec_log_i;
242 STElec_log_i = new G4LogicalVolume(STElec_box_i, vacuum, "STElec_log_i");
243 G4VPhysicalVolume* STElec_phys_i;
244 STElec_phys_i = new G4PVPlacement
245 (0, 0, "STElec_phys_i", STElec_log_i, STElec_phys_o, false, 0);
246 //
247 //
248 G4Box* TWT_box_o;
249 TWT_box_o = new G4Box("TWT_box_o",
250 0.5*321.*mm, 0.5*58.*mm, 0.5*36.*mm);
251 G4LogicalVolume* TWT_log_o;
252 TWT_log_o = new G4LogicalVolume
253 (TWT_box_o, Al6061, "TWT_log_o");
254 G4VPhysicalVolume* TWT_phys_o;
255 TWT_phys_o = new G4PVPlacement(0, spacecraft_pos + TWT1_pos,
256 "TWT_phys_o", TWT_log_o, wld_phys, false, 0);
257 TWT_phys_o = new G4PVPlacement(0, spacecraft_pos + TWT2_pos,
258 "TWT_phys_o", TWT_log_o, wld_phys, false, 1);
259 f = std::pow(1.-0.75/(2.70*321*58*36)*1E6, 1./3.);
260 G4Box* TWT_box_i = new G4Box("TWT_box_i",
261 f*0.5*321.*mm, f*0.5*58.*mm, f*0.5*36.*mm);
262 G4LogicalVolume* TWT_log_i;
263 TWT_log_i = new G4LogicalVolume
264 (TWT_box_i, vacuum, "TWT_log_i");
265 G4VPhysicalVolume* TWT_phys_i;
266 TWT_phys_i = new G4PVPlacement
267 (0, 0, "TWT_phys_i", TWT_log_i, TWT_phys_o, false, 0);
268 //
269 //
270 G4Box* UVBox_box_o;
271 UVBox_box_o = new G4Box("UVBox_box_o",
272 0.5*150.*mm, 0.5*100.*mm, 0.5*70.*mm);
273 G4LogicalVolume* UVBox_log_o;
274 UVBox_log_o = new G4LogicalVolume
275 (UVBox_box_o, Al6061, "UVBox_log_o");
276 G4VPhysicalVolume* UVBox_phys_o;
277 UVBox_phys_o = new G4PVPlacement(0, spacecraft_pos + UVBox1_pos,
278 "UVBox_phys_o", UVBox_log_o, wld_phys, false, 0);
279 UVBox_phys_o = new G4PVPlacement(0, spacecraft_pos + UVBox2_pos,
280 "UVBox_phys_o", UVBox_log_o, wld_phys, false, 1);
281 f = std::pow(1.-0.50/(2.70*150*100*70)*1E6, 1./3.);
282 G4Box* UVBox_box_i;
283 UVBox_box_i = new G4Box("UVBox_box_i",
284 f*0.5*150.*mm, f*0.5*100.*mm, f*0.5*70.*mm);
285 G4LogicalVolume* UVBox_log_i;
286 UVBox_log_i = new G4LogicalVolume
287 (UVBox_box_i, vacuum, "UVBox_log_i");
288 G4VPhysicalVolume* UVBox_phys_i;
289 UVBox_phys_i = new G4PVPlacement
290 (0, 0, "UVBox_phys_i", UVBox_log_i, UVBox_phys_o, false, 0);
291
292
293
294 // Upper Deck electronics
295
296 G4Box* PCDU_box_o;
297 PCDU_box_o = new G4Box("PCDU_box_o",
298 0.5*200.*mm, 0.5*350.*mm, 0.5*300.*mm);
299 G4LogicalVolume* PCDU_log_o;
300 PCDU_log_o = new G4LogicalVolume
301 (PCDU_box_o, Al6061, "PCDU_log_o");
302 G4VPhysicalVolume* PCDU_phys_o;
303 PCDU_phys_o = new G4PVPlacement(0, spacecraft_pos
304 + PCDU_pos, "PCDU_phys_o", PCDU_log_o, wld_phys, false, 0);
305 f = std::pow(1.-15.90/(2.70*200*350*300)*1E6, 1./3.);
306 G4Box* PCDU_box_i;
307 PCDU_box_i = new G4Box("PCDU_box_i",
308 f*0.5*200.*mm, f*0.5*350.*mm, f*0.5*300.*mm);
309 G4LogicalVolume* PCDU_log_i;
310 PCDU_log_i = new G4LogicalVolume
311 (PCDU_box_i, vacuum, "PCDU_log_i");
312 G4VPhysicalVolume* PCDU_phys_i;
313 PCDU_phys_i = new G4PVPlacement
314 (0, 0, "PCDU_phys_i", PCDU_log_i, PCDU_phys_o, false, 0);
315 //
316 //
317 G4Box* CentELCPS_box_o;
318 CentELCPS_box_o = new G4Box("CentELCPS_box_o",
319 0.5*240.*mm, 0.5*356.*mm, 0.5*140.*mm);
320 G4LogicalVolume* CentELCPS_log_o;
321 CentELCPS_log_o = new G4LogicalVolume
322 (CentELCPS_box_o, Al6061, "CentELCPS_log_o");
323 G4VPhysicalVolume* CentELCPS_phys_o;
324 CentELCPS_phys_o = new G4PVPlacement(0, spacecraft_pos
325 + CentELCPS_pos, "CentELCPS_phys_o", CentELCPS_log_o, wld_phys, false, 0);
326 f = std::pow(1.-15.90/(2.70*240*356*140)*1E6, 1./3.);
327 G4Box* CentELCPS_box_i;
328 CentELCPS_box_i = new G4Box("CentELCPS_box_i",
329 f*0.5*240.*mm, f*0.5*356.*mm, f*0.5*140.*mm);
330 G4LogicalVolume* CentELCPS_log_i;
331 CentELCPS_log_i = new G4LogicalVolume
332 (CentELCPS_box_i, vacuum, "CentELCPS_log_i");
333 G4VPhysicalVolume* CentELCPS_phys_i;
334 CentELCPS_phys_i = new G4PVPlacement
335 (0, 0, "CentELCPS_phys_i", CentELCPS_log_i, CentELCPS_phys_o, false, 0);
336 //
337 //
338 G4Box* CentEL2_box_o;
339 CentEL2_box_o = new G4Box("CentEL2_box_o",
340 0.5*220.*mm, 0.5*184.*mm, 0.5*284.*mm);
341 G4LogicalVolume* CentEL2_log_o;
342 CentEL2_log_o = new G4LogicalVolume
343 (CentEL2_box_o, Al6061, "CentEL2_log_o");
344 G4VPhysicalVolume* CentEL2_phys_o;
345 CentEL2_phys_o = new G4PVPlacement(G4Transform3D
346 (EB_rot3, spacecraft_pos + CentEL2_pos),
347 "CentEL2_phys_o", CentEL2_log_o, wld_phys, false, 0);
348 f = std::pow(1.-15.90/(2.70*220*184*284)*1E6, 1./3.);
349 G4Box* CentEL2_box_i;
350 CentEL2_box_i = new G4Box("CentEL2_box_i",
351 f*0.5*220.*mm, f*0.5*184.*mm, f*0.5*284.*mm);
352 G4LogicalVolume* CentEL2_log_i;
353 CentEL2_log_i = new G4LogicalVolume
354 (CentEL2_box_i, vacuum, "CentEL2_log_i");
355 G4VPhysicalVolume* CentEL2_phys_i;
356 CentEL2_phys_i = new G4PVPlacement
357 (0, 0, "CentEL2_phys_i", CentEL2_log_i, CentEL2_phys_o, false, 0);
358 //
359 //
360 G4Box* FEEPEL_box_o;
361 FEEPEL_box_o = new G4Box("FEEPEL_box_o",
362 0.5*260.*mm, 0.5*170.*mm, 0.5*200.*mm);
363 G4LogicalVolume* FEEPEL_log_o;
364 FEEPEL_log_o = new G4LogicalVolume
365 (FEEPEL_box_o, Al6061, "FEEPEL_log_o");
366 G4VPhysicalVolume* FEEPEL_phys_o;
367 FEEPEL_phys_o = new G4PVPlacement(G4Transform3D
368 (EB_rot4, spacecraft_pos + FEEPEL1_pos),
369 "FEEPEL_phys_o", FEEPEL_log_o, wld_phys, false, 0);
370 FEEPEL_phys_o = new G4PVPlacement(G4Transform3D
371 (EB_rot1, spacecraft_pos + FEEPEL2_pos),
372 "FEEPEL_phys_o", FEEPEL_log_o, wld_phys, false, 1);
373 f = std::pow(1.-6.50/(2.70*260*170*200)*1E6, 1./3.);
374 G4Box* FEEPEL_box_i;
375 FEEPEL_box_i = new G4Box("FEEPEL_box_i",
376 f*0.5*260.*mm, f*0.5*170.*mm, f*0.5*200.*mm);
377 G4LogicalVolume* FEEPEL_log_i;
378 FEEPEL_log_i = new G4LogicalVolume
379 (FEEPEL_box_i, vacuum, "FEEPEL_log_i");
380 G4VPhysicalVolume* FEEPEL_phys_i;
381 FEEPEL_phys_i = new G4PVPlacement
382 (0, 0, "FEEPEL_phys_i", FEEPEL_log_i, FEEPEL_phys_o, false, 0);
383 //
384 //
385 G4Box* HGADrive_box_o;
386 HGADrive_box_o = new G4Box("HGADrive_box_o",
387 0.5*100.*mm, 0.5*100.*mm, 0.5*100.*mm);
388 G4LogicalVolume* HGADrive_log_o;
389 HGADrive_log_o = new G4LogicalVolume
390 (HGADrive_box_o, Al6061, "HGADrive_log_o");
391 G4VPhysicalVolume* HGADrive_phys_o;
392 HGADrive_phys_o = new G4PVPlacement(0, spacecraft_pos + HGADrive1_pos,
393 "HGADrive_phys_o", HGADrive_log_o, wld_phys, false, 0);
394 HGADrive_phys_o = new G4PVPlacement(0, spacecraft_pos + HGADrive2_pos,
395 "HGADrive_phys_o", HGADrive_log_o, wld_phys, false, 1);
396 f = std::pow(1.-1.00/(2.70*100*100*100)*1E6, 1./3.);
397 G4Box* HGADrive_box_i;
398 HGADrive_box_i = new G4Box("HGADrive_box_i",
399 f*0.5*100.*mm, f*0.5*100.*mm, f*0.5*100.*mm);
400 G4LogicalVolume* HGADrive_log_i;
401 HGADrive_log_i = new G4LogicalVolume
402 (HGADrive_box_i, vacuum, "HGADrive_log_i");
403 G4VPhysicalVolume* HGADrive_phys_i;
404 HGADrive_phys_i = new G4PVPlacement
405 (0, 0, "HGADrive_phys_i", HGADrive_log_i, HGADrive_phys_o, false, 0);
406 //
407 //
408 G4Box* InterfelEL_box_o;
409 InterfelEL_box_o = new G4Box("InterfelEL_box_o",
410 0.5*200.*mm, 0.5*200.*mm, 0.5*150.*mm);
411 G4LogicalVolume* InterfelEL_log_o;
412 InterfelEL_log_o = new G4LogicalVolume
413 (InterfelEL_box_o, Al6061, "InterfelEL_log_o");
414 G4VPhysicalVolume* InterfelEL_phys_o;
415 InterfelEL_phys_o = new G4PVPlacement(0, spacecraft_pos + InterfelEL1_pos,
416 "InterfelEL_phys_o", InterfelEL_log_o, wld_phys, false, 0);
417 InterfelEL_phys_o = new G4PVPlacement(0, spacecraft_pos + InterfelEL2_pos,
418 "InterfelEL_phys_o", InterfelEL_log_o, wld_phys, false, 1);
419 f = std::pow(1.-3.50/(2.70*200*200*150)*1E6, 1./3.);
420 G4Box* InterfelEL_box_i;
421 InterfelEL_box_i = new G4Box("InterfelEL_box_i",
422 f*0.5*200.*mm, f*0.5*200.*mm, f*0.5*150.*mm);
423 G4LogicalVolume* InterfelEL_log_i;
424 InterfelEL_log_i = new G4LogicalVolume
425 (InterfelEL_box_i, vacuum, "InterfelEL_log_i");
426 G4VPhysicalVolume* InterfelEL_phys_i;
427 InterfelEL_phys_i = new G4PVPlacement(0, 0,
428 "InterfelEL_phys_i", InterfelEL_log_i, InterfelEL_phys_o, false, 0);
429 //
430 //
431 G4Box* LaserEL_box_o;
432 LaserEL_box_o = new G4Box("LaserEL_box_o",
433 0.5*200.*mm, 0.5*200.*mm, 0.5*100.*mm);
434 G4LogicalVolume* LaserEL_log_o;
435 LaserEL_log_o = new G4LogicalVolume
436 (LaserEL_box_o, Al6061, "LaserEL_log_o");
437 G4VPhysicalVolume* LaserEL_phys_o;
438 LaserEL_phys_o = new G4PVPlacement(G4Transform3D
439 (EB_rot1, spacecraft_pos + LaserEL1_pos),
440 "LaserEL_phys_o", LaserEL_log_o, wld_phys, false, 0);
441 LaserEL_phys_o = new G4PVPlacement(G4Transform3D
442 (EB_rot2, spacecraft_pos + LaserEL2_pos),
443 "LaserEL_phys_o", LaserEL_log_o, wld_phys, false, 1);
444 f = std::pow(1.-3.00/(2.70*200*200*100)*1E6, 1./3.);
445 G4Box* LaserEL_box_i;
446 LaserEL_box_i = new G4Box("LaserEL_box_i",
447 f*0.5*200.*mm, f*0.5*200.*mm, f*0.5*100.*mm);
448 G4LogicalVolume* LaserEL_log_i;
449 LaserEL_log_i = new G4LogicalVolume
450 (LaserEL_box_i, vacuum, "LaserEL_log_i");
451 G4VPhysicalVolume* LaserEL_phys_i;
452 LaserEL_phys_i = new G4PVPlacement
453 (0, 0, "LaserEL_phys_i", LaserEL_log_i, LaserEL_phys_o, false, 0);
454 //
455 //
456 G4Box* LaserHead_box_o;
457 LaserHead_box_o = new G4Box("LaserHead_box_o",
458 0.5*100.*mm, 0.5*100.*mm, 0.5*50.*mm);
459 G4LogicalVolume* LaserHead_log_o;
460 LaserHead_log_o = new G4LogicalVolume
461 (LaserHead_box_o, Al6061, "LaserHead_log_o");
462 G4VPhysicalVolume* LaserHead_phys_o;
463 LaserHead_phys_o = new G4PVPlacement(G4Transform3D
464 (EB_rot3, spacecraft_pos + LaserHead1_pos),
465 "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 0);
466 LaserHead_phys_o = new G4PVPlacement(G4Transform3D
467 (EB_rot3, spacecraft_pos + LaserHead2_pos),
468 "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 1);
469 LaserHead_phys_o = new G4PVPlacement(G4Transform3D
470 (EB_rot4, spacecraft_pos + LaserHead3_pos),
471 "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 2);
472 LaserHead_phys_o = new G4PVPlacement(G4Transform3D
473 (EB_rot4, spacecraft_pos + LaserHead4_pos),
474 "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 3);
475 f = std::pow(1.-0.70/(2.70*100*100*50)*1E6, 1./3.);
476 G4Box* LaserHead_box_i;
477 LaserHead_box_i = new G4Box("LaserHead_box_i",
478 f*0.5*100.*mm, f*0.5*100.*mm, f*0.5*50.*mm);
479 G4LogicalVolume* LaserHead_log_i;
480 LaserHead_log_i = new G4LogicalVolume
481 (LaserHead_box_i, vacuum, "LaserHead_log_i");
482 G4VPhysicalVolume* LaserHead_phys_i;
483 LaserHead_phys_i = new G4PVPlacement
484 (0, 0, "LaserHead_phys_i", LaserHead_log_i, LaserHead_phys_o, false, 0);
485 //
486 //
487 G4Box* StarTrack_U_box_o;
488 StarTrack_U_box_o = new G4Box("StarStrack_box_o",
489 0.5*50.*mm, 0.5*50.*mm, 0.5*54.*mm);
490 G4LogicalVolume* StarTrack_U_log_o;
491 StarTrack_U_log_o = new G4LogicalVolume
492 (StarTrack_U_box_o, Al6061, "StarTrack_log_o");
493 G4VPhysicalVolume* StarTrack_U_phys_o;
494 StarTrack_U_phys_o = new G4PVPlacement(0, spacecraft_pos + StarTrack1_pos,
495 "STarTrack_phys_o", StarTrack_U_log_o, wld_phys, false, 0);
496 StarTrack_U_phys_o = new G4PVPlacement(0, spacecraft_pos + StarTrack2_pos,
497 "STarTrack_phys_o", StarTrack_U_log_o, wld_phys, false, 1);
498 f = std::pow(1.-0.30/(2.70*50*50*54)*1E6, 1./3.);
499 G4Box* StarTrack_U_box_i;
500 StarTrack_U_box_i = new G4Box("StarTrack_U_box_i",
501 f*0.5*50.*mm, f*0.5*50.*mm, f*0.5*54.*mm);
502 G4LogicalVolume* StarTrack_U_log_i;
503 StarTrack_U_log_i = new G4LogicalVolume
504 (StarTrack_U_box_i, vacuum, "StarTrack_U_log_i");
505 G4VPhysicalVolume* StarTrack_U_phys_i;
506 StarTrack_U_phys_i = new G4PVPlacement(0, 0,
507 "StarTrack_U_phys_i", StarTrack_U_log_i, StarTrack_U_phys_o, false, 0);
508 //
509 //
510 G4Box* Transpond2_box_o;
511 Transpond2_box_o = new G4Box("Transpond2_box_o",
512 0.5*220.*mm, 0.5*184.*mm, 0.5*178.*mm);
513 G4LogicalVolume* Transpond2_log_o;
514 Transpond2_log_o = new G4LogicalVolume
515 (Transpond2_box_o, Al6061, "Transpond2_log_o");
516 G4VPhysicalVolume* Transpond2_phys_o;
517 Transpond2_phys_o = new G4PVPlacement(G4Transform3D
518 (EB_rot2, spacecraft_pos + Transpond2_pos),
519 "Transpond2_phys_o", Transpond2_log_o, wld_phys, false, 0);
520 f = std::pow(1.-3.50/(2.70*220*184*178)*1E6, 1./3.);
521 G4Box* Transpond2_box_i;
522 Transpond2_box_i = new G4Box("Transpond2_box_i",
523 f*0.5*220.*mm, f*0.5*184.*mm, f*0.5*178.*mm);
524 G4LogicalVolume* Transpond2_log_i;
525 Transpond2_log_i = new G4LogicalVolume
526 (Transpond2_box_i, vacuum, "Transpond2_log_i");
527 G4VPhysicalVolume* Transpond2_phys_i;
528 Transpond2_phys_i = new G4PVPlacement(0, 0,
529 "Transpond2_phys_i", Transpond2_log_i, Transpond2_phys_o, false, 0);
530
531
532 // vis Attributes
533
534 EPC_log_o->SetVisAttributes(sol_blue_vat);
535 GyroPack_log_o->SetVisAttributes(sol_blue_vat);
536 InstConE_log_o->SetVisAttributes(sol_blue_vat);
537 RFDU_log_o->SetVisAttributes(sol_blue_vat);
538 StarTrack_L_log_o->SetVisAttributes(sol_blue_vat);
539 STElec_log_o->SetVisAttributes(sol_blue_vat);
540 TWT_log_o->SetVisAttributes(sol_blue_vat);
541 UVBox_log_o->SetVisAttributes(sol_blue_vat);
542 EPC_log_i->SetVisAttributes(G4VisAttributes::Invisible);
543 GyroPack_log_i->SetVisAttributes(G4VisAttributes::Invisible);
544 InstConE_log_i->SetVisAttributes(G4VisAttributes::Invisible);
545 RFDU_log_i->SetVisAttributes(G4VisAttributes::Invisible);
546 StarTrack_L_log_i->SetVisAttributes(G4VisAttributes::Invisible);
547 STElec_log_i->SetVisAttributes(G4VisAttributes::Invisible);
548 TWT_log_i->SetVisAttributes(G4VisAttributes::Invisible);
549 UVBox_log_i->SetVisAttributes(G4VisAttributes::Invisible);
550
551 PCDU_log_o->SetVisAttributes(sol_lblue_vat);
552 CentELCPS_log_o->SetVisAttributes(sol_lblue_vat);
553 CentEL2_log_o->SetVisAttributes(sol_lblue_vat);
554 FEEPEL_log_o->SetVisAttributes(sol_lblue_vat);
555 HGADrive_log_o->SetVisAttributes(sol_lblue_vat);
556 InterfelEL_log_o->SetVisAttributes(sol_lblue_vat);
557 LaserEL_log_o->SetVisAttributes(sol_lblue_vat);
558 LaserHead_log_o->SetVisAttributes(sol_lblue_vat);
559 StarTrack_U_log_o->SetVisAttributes(sol_lblue_vat);
560 Transpond2_log_o->SetVisAttributes(sol_lblue_vat);
561 PCDU_log_i->SetVisAttributes(G4VisAttributes::Invisible);
562 CentELCPS_log_i->SetVisAttributes(G4VisAttributes::Invisible);
563 CentEL2_log_i->SetVisAttributes(G4VisAttributes::Invisible);
564 FEEPEL_log_i->SetVisAttributes(G4VisAttributes::Invisible);
565 HGADrive_log_i->SetVisAttributes(G4VisAttributes::Invisible);
566 InterfelEL_log_i->SetVisAttributes(G4VisAttributes::Invisible);
567 LaserEL_log_i->SetVisAttributes(G4VisAttributes::Invisible);
568 LaserHead_log_i->SetVisAttributes(G4VisAttributes::Invisible);
569 StarTrack_U_log_i->SetVisAttributes(G4VisAttributes::Invisible);
570 Transpond2_log_i->SetVisAttributes(G4VisAttributes::Invisible);
571
572
573
574 // **************************************************************************
575
576
Note: See TracBrowser for help on using the repository browser.