00001 //---------------------------------------------------------------------------// 00002 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu// 00003 // // 00004 // MAJORANA Simulation // 00005 // // 00006 // This code implementation is the intellectual property of the // 00007 // MAJORANA Collaboration. It is based on Geant4, an intellectual // 00008 // property of the RD44 GEANT4 collaboration. // 00009 // // 00010 // ********************* // 00011 // // 00012 // Neither the authors of this software system, nor their employing // 00013 // institutes, nor the agencies providing financial support for this // 00014 // work make any representation or warranty, express or implied, // 00015 // regarding this software system or assume any liability for its use. // 00016 // By copying, distributing or modifying the Program (or any work based // 00017 // on on the Program) you indicate your acceptance of this statement, // 00018 // and all its terms. // 00019 // // 00020 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu// 00021 //---------------------------------------------------------------------------// 00022 // 00023 // $Id: MJGeometryShield.cc,v 1.2 2004/11/09 13:42:39 xliu Exp $ 00024 // 00025 // CLASS IMPLEMENTATION: MJGeometryShield.cc 00026 // 00027 //---------------------------------------------------------------------------// 00033 // 00034 //---------------------------------------------------------------------------// 00046 //---------------------------------------------------------------------------// 00047 // 00048 00049 // GEANT4 headers 00050 #include "globals.hh" 00051 #include "G4Box.hh" 00052 #include "G4Material.hh" 00053 #include "G4PVPlacement.hh" 00054 00055 // MJ headers 00056 #include "geometry/MJGeometryShield.hh" //Present MJ Class Headers 00057 #include "geometry/MJGeometryGlobals.hh" 00058 00059 //---------------------------------------------------------------------------// 00060 00061 MJGeometryShield::MJGeometryShield() 00062 { 00063 // Set the visualization attributes for each of the components 00064 G4VisAttributes *shieldVisAtt = new G4VisAttributes(G4VisAttributes::Invisible); 00065 // shieldVisAtt->SetVisibility( false ); 00066 // shieldVisAtt->SetForceWireframe( true ); 00067 00068 G4VisAttributes *chamberVisAtt = new G4VisAttributes(G4VisAttributes::Invisible); 00069 // chamberVisAtt->SetVisibility( false ); 00070 // chamberVisAtt->SetForceWireframe( true ); 00071 00072 // Build the shield and inner chamber 00073 G4double innerX, innerY, innerZ; 00074 G4double shieldWidth; 00075 innerX = innerY = innerZ = shieldWidth = 50*cm; 00076 G4Material *shieldMaterial = G4Material::GetMaterial( "Lead-Mod" ); 00077 G4Material *chamberMaterial = G4Material::GetMaterial( "Air" ); 00078 00079 G4Box *shieldSolid = new G4Box( "shieldSolid", (innerX + shieldWidth)/2, (innerY + shieldWidth)/2, (innerZ + shieldWidth)/2 ); 00080 theShieldLogical = new G4LogicalVolume( shieldSolid, shieldMaterial, "shieldLogical" ); 00081 theShieldLogical->SetVisAttributes( shieldVisAtt ); 00082 00083 G4Box *innerChamberSolid = new G4Box( "innerChamberSolid", innerX/2, innerY/2, innerZ/2 ); 00084 G4LogicalVolume *innerChamberLogical = new G4LogicalVolume( innerChamberSolid, chamberMaterial, "innerChamberLogical" ); 00085 innerChamberLogical->SetVisAttributes( chamberVisAtt ); 00086 innerChamber = new G4PVPlacement( 0, G4ThreeVector(), innerChamberLogical, "innerChamberPhysical", theShieldLogical, false, 0 ); 00087 } 00088 00089 //MJGeometryShield::MJGeometryShield(const MJGeometryShield & other) {} 00090 00091 MJGeometryShield::~MJGeometryShield() {}