Print

Print


Commit in slic on MAIN
include/PhysicsListManager.hh+7-11.20 -> 1.21
src/PhysicsListManager.cc+22-61.25 -> 1.26
   /PhysicsMessenger.cc+3-31.24 -> 1.25
+32-10
3 modified files
change slic to use Geant4 built-in physics list factory

slic/include
PhysicsListManager.hh 1.20 -> 1.21
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
PhysicsListManager.cc 1.25 -> 1.26
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
PhysicsMessenger.cc 1.24 -> 1.25
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;
CVSspam 0.2.8