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

Last change on this file since 1313 was 807, checked in by garnier, 16 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.