src/BDSParallelWorld.cc

00001 #include "BDSParallelWorld.hh"
00002 #include "G4LogicalVolume.hh"
00003 #include "G4VPhysicalVolume.hh"
00004 #include "G4Box.hh"
00005 #include "G4PVPlacement.hh"
00006 #include "G4PSCellFlux.hh"
00007 
00008 BDSParallelWorld::BDSParallelWorld(G4String worldName)
00009   :G4VUserParallelWorld(worldName)
00010 {;}
00011 
00012 BDSParallelWorld::~BDSParallelWorld(){
00013   delete _scoringMesh;
00014   delete _primitiveScorer;
00015 }
00016 
00017 void BDSParallelWorld::Construct() 
00018 {
00019   G4VPhysicalVolume* ghostWorld = GetWorld();
00020   G4LogicalVolume* worldLogical = ghostWorld->GetLogicalVolume();
00021 
00022   //Scoring mesh
00023   _scoringMesh = new G4ScoringBox("scoringMesh");
00024   _scoringMesh->Construct(ghostWorld);
00025   G4int nSegments[]={100, 100, 100};
00026   G4Box* worldBox = (G4Box*)worldLogical->GetSolid();
00027   G4double x =  worldBox->GetXHalfLength();
00028   G4double y =  worldBox->GetYHalfLength();
00029   G4double z =  worldBox->GetZHalfLength();
00030   G4double size[]={x,y,z};
00031   
00032   _scoringMesh->SetNumberOfSegments(nSegments);
00033   _scoringMesh->SetSize(size);
00034   _primitiveScorer=(new G4PSCellFlux("cellFluxScorer"));
00035   _scoringMesh->SetPrimitiveScorer(_primitiveScorer);
00036   _scoringMesh->Activate();
00037 }
00038 
00039 G4ScoringBox* BDSParallelWorld::GetScoringMesh(){
00040   return _scoringMesh;
00041 }

Generated on 27 Aug 2013 for BDSIM by  doxygen 1.4.7