CMS 3D CMS Logo

DDDWorld.cc

Go to the documentation of this file.
00001 #include "FWCore/Framework/interface/EventSetupProvider.h"
00002 #include "FWCore/Framework/interface/recordGetImplementation.icc"
00003  
00004 #include "SimG4Core/Geometry/interface/DDDWorld.h"
00005 #include "SimG4Core/Geometry/interface/DDG4Builder.h"
00006 
00007 #include "DetectorDescription/Core/interface/DDCompactView.h"
00008 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00009 
00010 #include "G4RunManagerKernel.hh"
00011 #include "G4PVPlacement.hh"
00012  
00013 using namespace edm;
00014 
00015 DDDWorld::DDDWorld(const DDCompactView* cpv, 
00016                    G4LogicalVolumeToDDLogicalPartMap & map,
00017                    SensitiveDetectorCatalog & catalog,
00018                    bool check) {
00019 
00020   std::auto_ptr<DDG4Builder> theBuilder(new DDG4Builder(cpv, check));
00021 
00022   DDGeometryReturnType ret = theBuilder->BuildGeometry();
00023   G4LogicalVolume *    world = ret.logicalVolume();
00024   G4VPhysicalVolume *  pv = 
00025     new G4PVPlacement(0,G4ThreeVector(),world,"DDDWorld",0,false,0);
00026   SetAsWorld(pv);
00027   map     = ret.lvToDDLPMap();
00028   catalog = ret.sdCatalog();
00029 }
00030 
00031 DDDWorld::~DDDWorld() {}
00032 
00033 void DDDWorld::SetAsWorld(G4VPhysicalVolume * pv) {
00034   G4RunManagerKernel * kernel = G4RunManagerKernel::GetRunManagerKernel();
00035   if (kernel != 0) kernel->DefineWorldVolume(pv);
00036   edm::LogInfo("SimG4CoreGeometry") << " World volume defined ";
00037 }
00038 

Generated on Tue Jun 9 17:47:03 2009 for CMSSW by  doxygen 1.5.4