13#include "G4LogicalVolume.hh"
14#include "G4VPhysicalVolume.hh"
15#include "G4UnionSolid.hh"
16#include "G4ThreeVector.hh"
17#include "G4Material.hh"
18#include "G4PVPlacement.hh"
20#include "G4VisAttributes.hh"
24#include "G4SystemOfUnits.hh"
31 for(G4int i=0; i<3; i++)
39 for(G4int i=0; i<5; i++)
54 physicalgoldLayer = 0;
65 logicalinnerBeSide = 0;
66 physicalinnerBeSide = 0;
93 G4double density, a, z,fractionmass;
95 G4String name, symbol;
99 Au=
new G4Material(
"Gold",79,a,density);
103 Ag=
new G4Material(
"Silver",47,a,density);
106 G4Element*
H =
new G4Element(name=
"Hydrogen",symbol=
"H" , z= 1., a);
109 G4Element*
C =
new G4Element(name=
"Carbon" ,symbol=
"C" , z= 6., a);
111 density = 0.810*g/cm3;
112 Oil =
new G4Material(name=
"Oil",density,nel=2);
113 Oil->AddElement(
C, natoms=18);
114 Oil->AddElement(
H, natoms=38);
125 G4Tubs* solidPip1 =
new G4Tubs(
"solidPip1",0.,33.7,134,0,360);
126 G4Tubs* solidPip2 =
new G4Tubs(
"solidPip2",0.,48,66,0,360);
127 G4UnionSolid* solidPip_tmp =
new G4UnionSolid(
"solidPip_tmp",solidPip1,solidPip2,0,G4ThreeVector(0,0,-167));
128 G4UnionSolid* solidPip =
new G4UnionSolid(
"solidPip",solidPip_tmp,solidPip2,0,G4ThreeVector(0,0,167));
129 logicalPip =
new G4LogicalVolume(solidPip, G4Material::GetMaterial(
"Beam"),
"logicalPip");
130 physicalPip =
new G4PVPlacement(0,G4ThreeVector(0,0,0),logicalPip,
"physicalPip",logicalbes,
false,0);
133 G4Tubs* solidgoldLayer =
new G4Tubs(
"solidgoldLayer",goldLayer[0],goldLayer[1],goldLayer[2]/2,0,360);
134 logicalgoldLayer =
new G4LogicalVolume(solidgoldLayer, Au,
"logicalgoldLayer");
135 physicalgoldLayer =
new G4PVPlacement(0,G4ThreeVector(0,0,0),logicalgoldLayer,
"physicalgoldLayer",logicalPip,
false,0);
138 G4Tubs* solidinnerBe =
new G4Tubs(
"solidinnerBe",innerBe[0],innerBe[1],innerBe[2]/2,0,360);
139 logicalinnerBe =
new G4LogicalVolume(solidinnerBe, G4Material::GetMaterial(
"Beryllium"),
"logicalinnerBe");
140 physicalinnerBe =
new G4PVPlacement(0,G4ThreeVector(0,0,0),logicalinnerBe,
"physicalinnerBe",logicalPip,
false,0);
143 G4Tubs* solidoilLayer =
new G4Tubs(
"solidoilLayer",oilLayer[0],oilLayer[1],oilLayer[2]/2,0,360);
144 logicaloilLayer =
new G4LogicalVolume(solidoilLayer, Oil,
"logicaloilLayer");
145 physicaloilLayer =
new G4PVPlacement(0,G4ThreeVector(0,0,0),logicaloilLayer,
"physicaloilLayer",logicalPip,
false,0);
148 G4Tubs* solidouterBe =
new G4Tubs(
"solidouterBe",outerBe[0],outerBe[1],outerBe[2]/2,0,360);
149 logicalouterBe =
new G4LogicalVolume(solidouterBe, G4Material::GetMaterial(
"Beryllium"),
"logicalouterBe");
150 physicalouterBe =
new G4PVPlacement(0,G4ThreeVector(0,0,0),logicalouterBe,
"physicalouterBe",logicalPip,
false,0);
153 G4Tubs* solidinnerBeSide =
new G4Tubs(
"solidinnerBeSide",innerBeSide[0],innerBeSide[1],innerBeSide[2]/2,0,360);
154 logicalinnerBeSide =
new G4LogicalVolume(solidinnerBeSide, G4Material::GetMaterial(
"Beryllium"),
"logicalinnerBeSide");
155 physicalinnerBeSide =
new G4PVPlacement(0,G4ThreeVector(0,0,innerBeSide[3]),logicalinnerBeSide,
"physicalinnerBeSide1",logicalPip,
false,0);
156 new G4PVPlacement(0,G4ThreeVector(0,0,innerBeSide[4]),logicalinnerBeSide,
"physicalinnerBeSide2",logicalPip,
false,1);
159 G4Tubs* solidinnerAl =
new G4Tubs(
"solidinnerAl",innerAl[0],innerAl[1],innerAl[2]/2,0,360);
160 logicalinnerAl =
new G4LogicalVolume(solidinnerAl, G4Material::GetMaterial(
"Aluminium"),
"logicalinnerAl");
161 physicalinnerAl =
new G4PVPlacement(0,G4ThreeVector(0,0,innerAl[3]),logicalinnerAl,
"physicalinnerAl1",logicalPip,
false,0);
162 new G4PVPlacement(0,G4ThreeVector(0,0,innerAl[4]),logicalinnerAl,
"physicalinnerAl2",logicalPip,
false,1);
165 G4Tubs* solidAlRing =
new G4Tubs(
"solidAlRing",AlRing[0],AlRing[1],AlRing[2]/2,0,360);
166 logicalAlRing =
new G4LogicalVolume(solidAlRing, G4Material::GetMaterial(
"Aluminium"),
"logicalAlRing");
167 physicalAlRing =
new G4PVPlacement(0,G4ThreeVector(0,0,AlRing[3]),logicalAlRing,
"physicalAlRing1",logicalPip,
false,0);
168 new G4PVPlacement(0,G4ThreeVector(0,0,AlRing[4]),logicalAlRing,
"physicalAlRing2",logicalPip,
false,1);
171 G4Tubs* solidouterAl =
new G4Tubs(
"solidouterAl",outerAl[0],outerAl[1],outerAl[2]/2,0,360);
172 logicalouterAl =
new G4LogicalVolume(solidouterAl, G4Material::GetMaterial(
"Aluminium"),
"logicalouterAl");
173 physicalouterAl =
new G4PVPlacement(0,G4ThreeVector(0,0,outerAl[3]),logicalouterAl,
"physicalouterAl1",logicalPip,
false,0);
174 new G4PVPlacement(0,G4ThreeVector(0,0,outerAl[4]),logicalouterAl,
"physicalouterAl2",logicalPip,
false,1);
177 G4Tubs* solidAgLayer =
new G4Tubs(
"solidAgLayer",AgLayer[0],AgLayer[1],AgLayer[2]/2,0,360);
178 logicalAgLayer =
new G4LogicalVolume(solidAgLayer, Ag,
"logicalAgLayer");
179 physicalAgLayer =
new G4PVPlacement(0,G4ThreeVector(0,0,AgLayer[3]),logicalAgLayer,
"physicalAgLayer1",logicalPip,
false,0);
180 new G4PVPlacement(0,G4ThreeVector(0,0,AgLayer[4]),logicalAgLayer,
"physicalAgLayer2",logicalPip,
false,1);
183 G4Tubs* solidCuLayer =
new G4Tubs(
"solidCuLayer",CuLayer[0],CuLayer[1],CuLayer[2]/2,0,360);
184 logicalCuLayer =
new G4LogicalVolume(solidCuLayer, G4Material::GetMaterial(
"Copper"),
"logicalCuLayer");
185 physicalCuLayer =
new G4PVPlacement(0,G4ThreeVector(0,0,CuLayer[3]),logicalCuLayer,
"physicalCuLayer1",logicalPip,
false,0);
186 new G4PVPlacement(0,G4ThreeVector(0,0,CuLayer[4]),logicalCuLayer,
"physicalCuLayer2",logicalPip,
false,1);
189 G4Tubs* solidAlCover =
new G4Tubs(
"solidAlCover",AlCover[0],AlCover[1],AlCover[2]/2,0,360);
190 logicalAlCover =
new G4LogicalVolume(solidAlCover, G4Material::GetMaterial(
"Aluminium"),
"logicalAlCover");
191 physicalAlCover =
new G4PVPlacement(0,G4ThreeVector(0,0,AlCover[3]),logicalAlCover,
"physicalAlCover1",logicalPip,
false,0);
192 new G4PVPlacement(0,G4ThreeVector(0,0,AlCover[4]),logicalAlCover,
"physicalAlCover2",logicalPip,
false,1);
194 G4VisAttributes* visPip =
new G4VisAttributes(G4Colour(0.,0.,1.));
195 logicalPip->SetVisAttributes(visPip);
197 G4VisAttributes* visgold =
new G4VisAttributes(G4Colour(1.,1.,0.));
198 logicalgoldLayer->SetVisAttributes(visgold);
200 G4VisAttributes* visBe =
new G4VisAttributes(G4Colour(0.,1.,0.));
201 logicalinnerBe->SetVisAttributes(visBe);
203 G4VisAttributes* visOil =
new G4VisAttributes(G4Colour(1.,1.,1.));
204 logicaloilLayer->SetVisAttributes(visOil);
206 logicalouterBe->SetVisAttributes(visBe);
208 logicalinnerBeSide->SetVisAttributes(visBe);
210 logicalinnerAl->SetVisAttributes(visOil);
212 logicalAlRing->SetVisAttributes(visOil);
214 logicalouterAl->SetVisAttributes(visOil);
216 logicalAgLayer->SetVisAttributes(visBe);
218 logicalCuLayer->SetVisAttributes(visPip);
220 logicalAlCover->SetVisAttributes(visOil);
***************************************************************************************Pseudo Class RRes *****************************************************************************************Parameters and physical constants **Maarten sept ************************************************************************DOUBLE PRECISION xsmu **************************************************************************PARTICLE DATA all others are from PDG *Only resonances with known widths into electron pairs are sept ************************************************************************C Declarations C
G4double getOilLayer(G4int i)
G4double getInnerBe(G4int i)
G4double getInnerAl(G4int i)
G4double getOuterBe(G4int i)
G4double getAlRing(G4int i)
G4double getAlCover(G4int i)
G4double getAgLayer(G4int i)
G4double getInnerBeSide(G4int i)
G4double getOuterAl(G4int i)
G4double getCuLayer(G4int i)
G4double getGoldLayer(G4int i)
void Construct(G4LogicalVolume *logicbes)