slic/include
diff -u -r1.20 -r1.21
--- PhysicsListManager.hh 6 Aug 2009 20:03:25 -0000 1.20
+++ PhysicsListManager.hh 8 Jan 2010 23:58:12 -0000 1.21
@@ -1,4 +1,4 @@
-// $Header: /cvs/lcd/slic/include/PhysicsListManager.hh,v 1.20 2009/08/06 20:03:25 jeremy Exp $
+// $Header: /cvs/lcd/slic/include/PhysicsListManager.hh,v 1.21 2010/01/08 23:58:12 jeremy Exp $
#ifndef SLIC_PHYSICSLISTMANAGER_HH
#define SLIC_PHYSICSLISTMANAGER_HH 1
@@ -19,6 +19,8 @@
// std
#include <string>
+class G4PhysListFactory;
+
namespace slic
{
@@ -77,6 +79,8 @@
// Needs to be public for the RunManager to call it.
void setupUserLimitsProcesses();
+ void printAvailablePhysicsLists();
+
private:
void setupOpticalProcesses();
@@ -98,6 +102,8 @@
std::string m_currentListName;
static const std::string m_defaultListName;
+
+ G4PhysListFactory *m_factory;
};
}
slic/src
diff -u -r1.25 -r1.26
--- PhysicsListManager.cc 8 Jan 2010 23:18:56 -0000 1.25
+++ PhysicsListManager.cc 8 Jan 2010 23:58:12 -0000 1.26
@@ -1,17 +1,18 @@
-// $Header: /cvs/lcd/slic/src/PhysicsListManager.cc,v 1.25 2010/01/08 23:18:56 jeremy Exp $
+// $Header: /cvs/lcd/slic/src/PhysicsListManager.cc,v 1.26 2010/01/08 23:58:12 jeremy Exp $
#include "PhysicsListManager.hh"
// geant4
-#include "G4UserSpecialCuts.hh"
-#include "G4StepLimiter.hh"
#include "G4RunManager.hh"
#include "G4VModularPhysicsList.hh"
+#include "G4UserSpecialCuts.hh"
+#include "G4StepLimiter.hh"
+#include "G4PhysListFactory.hh"
// slic
#include "LCOpticalPhysics.hh"
#include "HepPDTManager.hh"
#include "LCExtendedParticles.hh"
-
+
namespace slic
{
// QGSP_BERT is the default physics list.
@@ -31,6 +32,9 @@
// Create the messenger class for the manager.
m_messenger = new PhysicsMessenger();
+
+ // Create the list factory.
+ m_factory = new G4PhysListFactory();
}
PhysicsListManager::~PhysicsListManager()
@@ -41,7 +45,7 @@
m_currentListName = n;
m_isFromDefault = false;
}
-
+
void PhysicsListManager::initializePhysicsList()
{
if ( !m_isInitialized )
@@ -54,7 +58,8 @@
#endif
// Create the physics list from the name argument.
- m_currentList = PhysicsListFactory::instance()->create(m_currentListName);
+ //m_currentList = PhysicsListFactory::instance()->create(m_currentListName);
+ m_currentList = m_factory->GetReferencePhysList(m_currentListName);
// Enable optical processes.
if ( enableOptical() )
@@ -145,4 +150,15 @@
}
#endif
}
+
+ void PhysicsListManager::printAvailablePhysicsLists()
+ {
+ const std::vector<G4String>& lists = m_factory->AvailablePhysLists();
+ for (std::vector<G4String>::const_iterator it = lists.begin();
+ it != lists.end();
+ it++)
+ {
+ log().always(*it);
+ }
+ }
}
slic/src
diff -u -r1.24 -r1.25
--- PhysicsMessenger.cc 8 Jan 2010 23:18:56 -0000 1.24
+++ PhysicsMessenger.cc 8 Jan 2010 23:58:12 -0000 1.25
@@ -1,4 +1,4 @@
-// $Header: /cvs/lcd/slic/src/PhysicsMessenger.cc,v 1.24 2010/01/08 23:18:56 jeremy Exp $
+// $Header: /cvs/lcd/slic/src/PhysicsMessenger.cc,v 1.25 2010/01/08 23:58:12 jeremy Exp $
#include "PhysicsMessenger.hh"
// slic
@@ -43,9 +43,9 @@
// print available lists
else if ( cmd == m_printListsCmd )
{
- PhysicsListFactory::instance()->printAvailableLists();
+ PhysicsListManager::instance()->printAvailablePhysicsLists();
}
- // print current list and whether initialized
+ // Print current list and whether initialized.
else if ( cmd == m_printCurrentCmd )
{
mgr->log() << LOG::okay << "Current physics list <" << mgr->getCurrentListName() << ">." << LOG::done;