1 #include "G4UnitsTable.hh"
2 #include "G4PhysicalConstants.hh"
3 #include "G4SystemOfUnits.hh"
7 #include "CLHEP/Units/SystemOfUnits.h"
8 #include "G4Material.hh"
9 #include "G4PVPlacement.hh"
11 #include "G4LogicalVolume.hh"
12 #include "G4Polycone.hh"
13 #include "G4Polyhedra.hh"
14 #include "G4OpticalSurface.hh"
15 #include "G4LogicalBorderSurface.hh"
16 #include "G4LogicalSkinSurface.hh"
17 #include "G4VisAttributes.hh"
26 G4Material* bulkMaterial,
28 ) : G4LogicalVolume(new G4Box(
"temp",10,10,10), bulkMaterial, name)
33 theta = 60*CLHEP::degree;
37 G4cout<<
"THETA= "<<
theta/CLHEP::degree<<G4endl;
38 G4cout<<
"F= "<<
f<<G4endl;
41 G4cout<<
"*WCSimLC* Light collector enabled."<<G4endl;
43 G4cout<<
"*WCSimLC* Tsukada Mirror enabled."<<G4endl;
56 G4double rin[70], rout[70], z[70];
74 G4cout<<
"*Tsukada* n= "<<
n<<
"; r= "<<rin[
n]<<
"; z= "<<z[
n]<<G4endl;
95 G4MaterialPropertiesTable* propMirror=
96 new G4MaterialPropertiesTable();
98 const int NUMENTRIES_water = 60;
99 G4double ENERGY_water[NUMENTRIES_water] =
100 { 1.56962e-09*GeV, 1.58974e-09*GeV, 1.61039e-09*GeV, 1.63157e-09*GeV,
101 1.65333e-09*GeV, 1.67567e-09*GeV, 1.69863e-09*GeV, 1.72222e-09*GeV,
102 1.74647e-09*GeV, 1.77142e-09*GeV,1.7971e-09*GeV, 1.82352e-09*GeV,
103 1.85074e-09*GeV, 1.87878e-09*GeV, 1.90769e-09*GeV, 1.93749e-09*GeV,
104 1.96825e-09*GeV, 1.99999e-09*GeV, 2.03278e-09*GeV, 2.06666e-09*GeV,
105 2.10169e-09*GeV, 2.13793e-09*GeV, 2.17543e-09*GeV, 2.21428e-09*GeV,
106 2.25454e-09*GeV, 2.29629e-09*GeV, 2.33962e-09*GeV, 2.38461e-09*GeV,
107 2.43137e-09*GeV, 2.47999e-09*GeV, 2.53061e-09*GeV, 2.58333e-09*GeV,
108 2.63829e-09*GeV, 2.69565e-09*GeV, 2.75555e-09*GeV, 2.81817e-09*GeV,
109 2.88371e-09*GeV, 2.95237e-09*GeV, 3.02438e-09*GeV, 3.09999e-09*GeV,
110 3.17948e-09*GeV, 3.26315e-09*GeV, 3.35134e-09*GeV, 3.44444e-09*GeV,
111 3.54285e-09*GeV, 3.64705e-09*GeV, 3.75757e-09*GeV, 3.87499e-09*GeV,
112 3.99999e-09*GeV, 4.13332e-09*GeV, 4.27585e-09*GeV, 4.42856e-09*GeV,
113 4.59258e-09*GeV, 4.76922e-09*GeV, 4.95999e-09*GeV, 5.16665e-09*GeV,
114 5.39129e-09*GeV, 5.63635e-09*GeV, 5.90475e-09*GeV, 6.19998e-09*GeV };
116 G4double REF_mirror = 0.9;
118 G4double REFLECTIVITY_mirror[NUMENTRIES_water] =
119 { REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror,
120 REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror,
121 REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror,
122 REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror,
123 REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror,
124 REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror,
125 REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror,
126 REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror,
127 REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror,
128 REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror, REF_mirror};
130 propMirror->AddProperty(
"REFLECTIVITY", ENERGY_water, REFLECTIVITY_mirror, NUMENTRIES_water);
140 G4cout<<
"N= "<<
n<<G4endl;
142 G4Polycone *conc_solid =
new G4Polycone(name+
"_plastic", 0, 2*M_PI,
n, z,
146 SetSolid(conc_solid);
147 SetName(name+
"_plastic");
151 G4VisAttributes* visAtt=
new G4VisAttributes(G4Color(1.0,1.0,0.,1.0));
152 visAtt->SetForceSolid(
true);
176 z2 = z2/(sinth*
sinth) +
t;
183 G4double offset = 62.3;
184 radius = radius * 3./5.;
185 G4double par[5] = {0.0000435759,0.00000830419,-0.00003567787,-0.01320270214,0.00526226472};
187 z2 =((-par[2]*radius-par[4])/(2*par[1])-sqrt((((par[2]*radius+par[4])*(par[2]*radius+par[4]))/(2*par[1]*2*par[1]))-((par[0]*radius*radius+par[3]*radius+1)/par[1])));
195 this->SetVisAttributes(G4VisAttributes::Invisible);
G4double thickness_mirror
WCSimLC(const G4String &name, G4Material *bulkMaterial, G4int LCType)
G4double Tsukada_z_from_r(double radius)
G4double Winston_z_from_r(double r)
static G4OpticalSurface * OpLCMirrorSurface