68 if (StatusCode::SUCCESS !=
m_detectorStore->retrieve(materialManager, std::string(
"MATERIALS"))) {
77 #if defined BUILDVP1LIGHT
79 double densityOfAir=0.1, densityOfPolystyrene=0.2;
80 const GeoMaterial *air =
new GeoMaterial(
"Air Toy",densityOfAir);
81 const GeoMaterial *poly =
new GeoMaterial(
"std::Polystyrene",densityOfPolystyrene);
84 const GeoMaterial *air = materialManager->
getMaterial(
"std::Air");
85 const GeoMaterial *poly = materialManager->
getMaterial(
"std::Polystyrene");
91 const GeoBox *toyBox =
new GeoBox(800*SYSTEM_OF_UNITS::cm,800*SYSTEM_OF_UNITS::cm, 1000*SYSTEM_OF_UNITS::cm);
95 const GeoLogVol *toyLog =
new GeoLogVol(
"ToyLog", toyBox, air);
99 GeoPhysVol *toyPhys =
new GeoPhysVol(toyLog);
110 const GeoTube *ringTube =
new GeoTube(500*SYSTEM_OF_UNITS::cm, 1000*SYSTEM_OF_UNITS::cm, 5.0*SYSTEM_OF_UNITS::cm);
114 const GeoLogVol *ringLog =
new GeoLogVol(
"RingLog", ringTube, air);
118 GeoSerialDenominator *ringName =
new GeoSerialDenominator(
"RING");
119 toyPhys->add(ringName);
120 for (
int i=0;i<100;i++) {
121 GeoFullPhysVol *ringPhys =
new GeoFullPhysVol(ringLog);
122 GeoAlignableTransform *xform =
new GeoAlignableTransform(GeoTrf::TranslateZ3D((i-50)*20*SYSTEM_OF_UNITS::cm));
124 toyPhys->add(ringPhys);
137 GeoBox *sPass =
new GeoBox(5.0*SYSTEM_OF_UNITS::cm, 30*SYSTEM_OF_UNITS::cm, 30*SYSTEM_OF_UNITS::cm);
138 GeoLogVol *lPass =
new GeoLogVol(
"Passive", sPass, poly);
139 GeoPhysVol *pPass =
new GeoPhysVol(lPass);
141 GeoBox *sIPass =
new GeoBox(4*SYSTEM_OF_UNITS::cm, 25*SYSTEM_OF_UNITS::cm, 25*SYSTEM_OF_UNITS::cm);
142 GeoLogVol *lIPass =
new GeoLogVol(
"InnerPassive", sIPass, air);
143 GeoPhysVol *pIPass =
new GeoPhysVol(lIPass);
147 const unsigned int NPLATES=100;
150 GENFUNCTION f = 360*SYSTEM_OF_UNITS::deg/NPLATES*i;
151 GENFUNCTION g = sin(4*f);
153 TRANSFUNCTION t1 = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(1100*SYSTEM_OF_UNITS::cm)*Pow(GeoTrf::TranslateZ3D(800*SYSTEM_OF_UNITS::cm),g);
154 TRANSFUNCTION t2 = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(1100*SYSTEM_OF_UNITS::cm)*Pow(GeoTrf::TranslateZ3D(800*SYSTEM_OF_UNITS::cm),
h);
161 GeoSerialDenominator *pass1Name =
new GeoSerialDenominator(
"PASSIVE-1-");
162 GeoSerialTransformer *s1 =
new GeoSerialTransformer(pPass,&t1, NPLATES);
163 toyPhys->add(pass1Name);
166 GeoSerialDenominator *pass2Name =
new GeoSerialDenominator(
"PASSIVE-2-");
167 GeoSerialTransformer *s2 =
new GeoSerialTransformer(pPass,&t2, NPLATES);
168 toyPhys->add(pass2Name);
174 GeoNameTag *tag =
new GeoNameTag(
"Toy");