CMS 3D CMS Logo

PhysicsList.cc

Go to the documentation of this file.
00001 #include "SimG4Core/Physics/interface/PhysicsList.h"
00002 #include "SimG4Core/Physics/interface/DDG4ProductionCuts.h"
00003 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00004 
00005 #include "G4LossTableManager.hh"
00006 
00007 PhysicsList::PhysicsList(G4LogicalVolumeToDDLogicalPartMap & map,
00008                          const edm::ParameterSet & p) 
00009   : G4VModularPhysicsList(), m_pPhysics(p),  prodCuts(0) {
00010   m_Verbosity = m_pPhysics.getUntrackedParameter<int>("Verbosity",0);
00011   prodCuts = new DDG4ProductionCuts(map, m_Verbosity);  
00012 }
00013  
00014 PhysicsList::~PhysicsList() {
00015   if (m_Verbosity > 1)
00016     LogDebug("Physics") << " G4BremsstrahlungThreshold was " 
00017                         << G4LossTableManager::Instance()->BremsstrahlungTh()/GeV 
00018                         << " GeV ";
00019   if (prodCuts!=0) delete prodCuts;
00020 }
00021 
00022 void PhysicsList::SetCuts() { 
00023 
00024   SetDefaultCutValue(m_pPhysics.getParameter<double>("DefaultCutValue")*cm);
00025   SetCutsWithDefault();
00026 
00027   G4LossTableManager::Instance()->SetBremsstrahlungTh
00028     (m_pPhysics.getParameter<double>("G4BremsstrahlungThreshold")*GeV);
00029 
00030   if ( m_pPhysics.getParameter<bool>("CutsPerRegion") ) {
00031     prodCuts->update();
00032   }
00033 
00034   if ( m_Verbosity > 1) {
00035     G4LossTableManager::Instance()->SetVerbose(m_Verbosity-1);
00036     G4VUserPhysicsList::DumpCutValuesTable();
00037   }
00038 
00039   return ;
00040 
00041 }
00042 

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