114 {
116
117
118
119
120
121 G4Tubs* solidPip1 = new G4Tubs( "solidPip1", 0., 33.7, 134, 0, 360 );
122 G4Tubs* solidPip2 = new G4Tubs( "solidPip2", 0., 48, 66, 0, 360 );
123 G4UnionSolid* solidPip_tmp =
124 new G4UnionSolid( "solidPip_tmp", solidPip1, solidPip2, 0, G4ThreeVector( 0, 0, -167 ) );
125 G4UnionSolid* solidPip =
126 new G4UnionSolid( "solidPip", solidPip_tmp, solidPip2, 0, G4ThreeVector( 0, 0, 167 ) );
127 logicalPip =
128 new G4LogicalVolume( solidPip, G4Material::GetMaterial( "Beam" ), "logicalPip" );
129 physicalPip = new G4PVPlacement( 0, G4ThreeVector( 0, 0, 0 ), logicalPip, "physicalPip",
130 logicalbes, false, 0 );
131
132
133 G4Tubs* solidgoldLayer =
134 new G4Tubs( "solidgoldLayer", goldLayer[0], goldLayer[1], goldLayer[2] / 2, 0, 360 );
135 logicalgoldLayer = new G4LogicalVolume( solidgoldLayer, Au, "logicalgoldLayer" );
136 physicalgoldLayer = new G4PVPlacement( 0, G4ThreeVector( 0, 0, 0 ), logicalgoldLayer,
137 "physicalgoldLayer", logicalPip, false, 0 );
138
139
140 G4Tubs* solidinnerBe =
141 new G4Tubs( "solidinnerBe", innerBe[0], innerBe[1], innerBe[2] / 2, 0, 360 );
142 logicalinnerBe = new G4LogicalVolume( solidinnerBe, G4Material::GetMaterial( "Beryllium" ),
143 "logicalinnerBe" );
144 physicalinnerBe = new G4PVPlacement( 0, G4ThreeVector( 0, 0, 0 ), logicalinnerBe,
145 "physicalinnerBe", logicalPip, false, 0 );
146
147
148 G4Tubs* solidoilLayer =
149 new G4Tubs( "solidoilLayer", oilLayer[0], oilLayer[1], oilLayer[2] / 2, 0, 360 );
150 logicaloilLayer = new G4LogicalVolume( solidoilLayer, Oil, "logicaloilLayer" );
151 physicaloilLayer = new G4PVPlacement( 0, G4ThreeVector( 0, 0, 0 ), logicaloilLayer,
152 "physicaloilLayer", logicalPip, false, 0 );
153
154
155 G4Tubs* solidouterBe =
156 new G4Tubs( "solidouterBe", outerBe[0], outerBe[1], outerBe[2] / 2, 0, 360 );
157 logicalouterBe = new G4LogicalVolume( solidouterBe, G4Material::GetMaterial( "Beryllium" ),
158 "logicalouterBe" );
159 physicalouterBe = new G4PVPlacement( 0, G4ThreeVector( 0, 0, 0 ), logicalouterBe,
160 "physicalouterBe", logicalPip, false, 0 );
161
162
163 G4Tubs* solidinnerBeSide = new G4Tubs( "solidinnerBeSide", innerBeSide[0], innerBeSide[1],
164 innerBeSide[2] / 2, 0, 360 );
165 logicalinnerBeSide = new G4LogicalVolume(
166 solidinnerBeSide, G4Material::GetMaterial( "Beryllium" ), "logicalinnerBeSide" );
167 physicalinnerBeSide =
168 new G4PVPlacement( 0, G4ThreeVector( 0, 0, innerBeSide[3] ), logicalinnerBeSide,
169 "physicalinnerBeSide1", logicalPip, false, 0 );
170 new G4PVPlacement( 0, G4ThreeVector( 0, 0, innerBeSide[4] ), logicalinnerBeSide,
171 "physicalinnerBeSide2", logicalPip, false, 1 );
172
173
174 G4Tubs* solidinnerAl =
175 new G4Tubs( "solidinnerAl", innerAl[0], innerAl[1], innerAl[2] / 2, 0, 360 );
176 logicalinnerAl = new G4LogicalVolume( solidinnerAl, G4Material::GetMaterial( "Aluminium" ),
177 "logicalinnerAl" );
178 physicalinnerAl = new G4PVPlacement( 0, G4ThreeVector( 0, 0, innerAl[3] ), logicalinnerAl,
179 "physicalinnerAl1", logicalPip, false, 0 );
180 new G4PVPlacement( 0, G4ThreeVector( 0, 0, innerAl[4] ), logicalinnerAl, "physicalinnerAl2",
181 logicalPip, false, 1 );
182
183
184 G4Tubs* solidAlRing =
185 new G4Tubs( "solidAlRing", AlRing[0], AlRing[1], AlRing[2] / 2, 0, 360 );
186 logicalAlRing = new G4LogicalVolume( solidAlRing, G4Material::GetMaterial( "Aluminium" ),
187 "logicalAlRing" );
188 physicalAlRing = new G4PVPlacement( 0, G4ThreeVector( 0, 0, AlRing[3] ), logicalAlRing,
189 "physicalAlRing1", logicalPip, false, 0 );
190 new G4PVPlacement( 0, G4ThreeVector( 0, 0, AlRing[4] ), logicalAlRing, "physicalAlRing2",
191 logicalPip, false, 1 );
192
193
194 G4Tubs* solidouterAl =
195 new G4Tubs( "solidouterAl", outerAl[0], outerAl[1], outerAl[2] / 2, 0, 360 );
196 logicalouterAl = new G4LogicalVolume( solidouterAl, G4Material::GetMaterial( "Aluminium" ),
197 "logicalouterAl" );
198 physicalouterAl = new G4PVPlacement( 0, G4ThreeVector( 0, 0, outerAl[3] ), logicalouterAl,
199 "physicalouterAl1", logicalPip, false, 0 );
200 new G4PVPlacement( 0, G4ThreeVector( 0, 0, outerAl[4] ), logicalouterAl, "physicalouterAl2",
201 logicalPip, false, 1 );
202
203
204 G4Tubs* solidAgLayer =
205 new G4Tubs( "solidAgLayer", AgLayer[0], AgLayer[1], AgLayer[2] / 2, 0, 360 );
206 logicalAgLayer = new G4LogicalVolume( solidAgLayer, Ag, "logicalAgLayer" );
207 physicalAgLayer = new G4PVPlacement( 0, G4ThreeVector( 0, 0, AgLayer[3] ), logicalAgLayer,
208 "physicalAgLayer1", logicalPip, false, 0 );
209 new G4PVPlacement( 0, G4ThreeVector( 0, 0, AgLayer[4] ), logicalAgLayer, "physicalAgLayer2",
210 logicalPip, false, 1 );
211
212
213 G4Tubs* solidCuLayer =
214 new G4Tubs( "solidCuLayer", CuLayer[0], CuLayer[1], CuLayer[2] / 2, 0, 360 );
215 logicalCuLayer = new G4LogicalVolume( solidCuLayer, G4Material::GetMaterial( "Copper" ),
216 "logicalCuLayer" );
217 physicalCuLayer = new G4PVPlacement( 0, G4ThreeVector( 0, 0, CuLayer[3] ), logicalCuLayer,
218 "physicalCuLayer1", logicalPip, false, 0 );
219 new G4PVPlacement( 0, G4ThreeVector( 0, 0, CuLayer[4] ), logicalCuLayer, "physicalCuLayer2",
220 logicalPip, false, 1 );
221
222
223 G4Tubs* solidAlCover =
224 new G4Tubs( "solidAlCover", AlCover[0], AlCover[1], AlCover[2] / 2, 0, 360 );
225 logicalAlCover = new G4LogicalVolume( solidAlCover, G4Material::GetMaterial( "Aluminium" ),
226 "logicalAlCover" );
227 physicalAlCover = new G4PVPlacement( 0, G4ThreeVector( 0, 0, AlCover[3] ), logicalAlCover,
228 "physicalAlCover1", logicalPip, false, 0 );
229 new G4PVPlacement( 0, G4ThreeVector( 0, 0, AlCover[4] ), logicalAlCover, "physicalAlCover2",
230 logicalPip, false, 1 );
231
232 G4VisAttributes* visPip = new G4VisAttributes( G4Colour( 0., 0., 1. ) );
233 logicalPip->SetVisAttributes( visPip );
234
235 G4VisAttributes* visgold = new G4VisAttributes( G4Colour( 1., 1., 0. ) );
236 logicalgoldLayer->SetVisAttributes( visgold );
237
238 G4VisAttributes* visBe = new G4VisAttributes( G4Colour( 0., 1., 0. ) );
239 logicalinnerBe->SetVisAttributes( visBe );
240
241 G4VisAttributes* visOil = new G4VisAttributes( G4Colour( 1., 1., 1. ) );
242 logicaloilLayer->SetVisAttributes( visOil );
243
244 logicalouterBe->SetVisAttributes( visBe );
245
246 logicalinnerBeSide->SetVisAttributes( visBe );
247
248 logicalinnerAl->SetVisAttributes( visOil );
249
250 logicalAlRing->SetVisAttributes( visOil );
251
252 logicalouterAl->SetVisAttributes( visOil );
253
254 logicalAgLayer->SetVisAttributes( visBe );
255
256 logicalCuLayer->SetVisAttributes( visPip );
257
258 logicalAlCover->SetVisAttributes( visOil );
259
260}