144 if (StatusCode::SUCCESS !=
m_detectorStore->retrieve(materialManager, std::string(
"MATERIALS"))) {
150 lArMaterialManager.buildMaterials();
159 const GeoMaterial *air = materialManager->
getMaterial(
"std::Air");
174 const GeoBox *expHallShape =
new GeoBox(expHallX, expHallY, expHallZ);
178 const GeoLogVol *expHallLog =
new GeoLogVol(
"ExpHallLog", expHallShape, air);
182 GeoPhysVol *expHallPhys =
new GeoPhysVol(expHallLog);
200 H6CryostatConstruction H6CryoCons;
202 Envelope = H6CryoCons.GetEnvelope();
203 expHallPhys->add(
new GeoNameTag(
"LAr"));
213 WallsConstruction WallsConstruction2002;
214 PVLink frontwalls = WallsConstruction2002.GetEnvelope();
216 expHallPhys->add(
new GeoNameTag(
"LAr"));
217 expHallPhys->add(
new GeoTransform( GeoTrf::TranslateZ3D(H62002WallsPos) ) );
218 expHallPhys->add(frontwalls);
226 TableConstructionH62002 TableConstruction;
227 PVLink
table = TableConstruction.GetEnvelope();
228 if(
table && expHallPhys ){
229 expHallPhys->add(
new GeoNameTag(
"LAr"));
230 expHallPhys->add(
new GeoTransform( GeoTrf::TranslateZ3D(H62002TablePos) ) );
231 expHallPhys->add(
table);
241 FrontBeamConstructionH62002 FrontBeamConstruction;
242 PVLink front = FrontBeamConstruction.GetEnvelope();
243 if(front && expHallPhys ){
244 expHallPhys->add(
new GeoNameTag(
"LAr"));
245 expHallPhys->add(
new GeoTransform( GeoTrf::TranslateZ3D(H62002FrontBeamPos) ) );
246 expHallPhys->add(front);
256 GeoIntrusivePtr<GeoPhysVol> LArPhysical = H6CryoCons.GetLArPhysical();
270 ExcluderConstruction excluderConstruction;
271 GeoIntrusivePtr<GeoPhysVol> excluder = excluderConstruction.GetEnvelope();
272 if(excluder && LArPhysical ){
273 LArPhysical->add(
new GeoNameTag(
"LAr::H6::Cryostat::Excluder"));
274 LArPhysical->add(excluder);
295 EMECConstruction emecConstruction(
true,
true,
true);
297 GeoIntrusivePtr<GeoVFullPhysVol> emecEnvelope = emecConstruction.GetEnvelope();
298 LArPhysical->add(
new GeoNameTag(
"LAr"));
300 LArPhysical->add(emecEnvelope);
303 if (StatusCode::SUCCESS==
m_detectorStore->retrieve(sEmecOuterWheel,
"EMEC_OUTER_WHEEL_POS" )) {
304 GeoIntrusivePtr<GeoFullPhysVol>emecEnvelope= sEmecOuterWheel->
getPhysVol();
372 if (StatusCode::SUCCESS==
m_detectorStore->retrieve(sEmecInnerWheel,
"EMEC_INNER_WHEEL_POS" )) {
373 GeoIntrusivePtr<GeoFullPhysVol>emecEnvelope= sEmecInnerWheel->
getPhysVol();
402 GeoIntrusivePtr<GeoFullPhysVol> PresamplerEnvelope = PresamplerConstruction.Envelope();
403 if ( PresamplerEnvelope && LArPhysical ) {
406 LArPhysical->add( PresamplerEnvelope );
427 HECConstructionH62002 hecConstruction;
428 GeoIntrusivePtr<GeoVFullPhysVol> hecEnvelope = hecConstruction.GetEnvelope();
429 if(hecEnvelope && LArPhysical ){
430 LArPhysical->add(
new GeoNameTag(
"LAr"));
433 LArPhysical->add(hecEnvelope);
443 for (
unsigned int s=0;
s<3;
s++) {
444 unsigned int width =
s==2 ? 2: 3;
445 for (
unsigned int r=0;
r<2;
r++) {
446 unsigned int nPhi =
r==0? 2:1;
447 double startPhi =
s==2 ? -36*
M_PI/64 : -38*
M_PI/64;
471 m_detectorStore->record(hecDetManager,hecDetManager->getName()).ignore();
472 m_detectorStore->record(emecDetectorManager,emecDetectorManager->getName()).ignore();
484 GeoNameTag *
tag =
new GeoNameTag(
"LAr");
486 world->add(expHallPhys);