--- /dev/null
+// $Id$
+// Category: run
+//
+// See the class description in the header file.
+
+#include "AliRunConfiguration.h"
+#include "AliRunMessenger.h"
+#include "AliGlobals.h"
+
+#include "AliDetConstruction.h"
+#include "AliEmptyPhysicsList.h"
+#include "AliPrimaryGeneratorAction.h"
+#include "AliRunAction.h"
+#include "AliEventAction.h"
+#include "AliTrackingAction.h"
+#include "AliStackingAction.h"
+#include "AliSteppingAction.h"
+
+#include "TG4PhysicsList.h"
+
+AliRunConfiguration::AliRunConfiguration(){
+//
+ fRunMessenger = new AliRunMessenger();
+
+ CreateUserConfiguration();
+}
+
+AliRunConfiguration::AliRunConfiguration(const AliRunConfiguration& right)
+ : TG4VRunConfiguration(right)
+{
+ // TG4VRunConfiguration is protected from copying
+}
+
+AliRunConfiguration::~AliRunConfiguration() {
+//
+ delete fRunMessenger;
+
+ // all user action data members are deleted
+ // in G4RunManager::~G4RunManager()
+}
+
+// operators
+
+AliRunConfiguration&
+AliRunConfiguration::operator=(const AliRunConfiguration& right)
+{
+ // check assignement to self
+ if (this == &right) return *this;
+
+ // base class assignement
+ // TG4VRunConfiguration is protected from assigning
+ TG4VRunConfiguration::operator=(right);
+
+ return *this;
+}
+
+// protected methods
+
+void AliRunConfiguration::CreateUserConfiguration()
+{
+// Creates the mandatory Geant4 classes and
+// the other user action classes.
+// ---
+
+ // create mandatory Geant4 classes
+ fDetectorConstruction = new AliDetConstruction();
+#ifndef ALICE_EMPTY_PHYSICS_LIST
+ fPhysicsList = new TG4PhysicsList();
+#else
+ fPhysicsList = new AliEmptyPhysicsList();
+#endif
+ fPrimaryGenerator = new AliPrimaryGeneratorAction();
+
+ // create the other user action classes
+ fRunAction = new AliRunAction();
+ fEventAction = new AliEventAction();
+ fTrackingAction = new AliTrackingAction();
+ fSteppingAction = new AliSteppingAction();
+#ifdef ALICE_STACKING
+ fStackingAction = new AliStackingAction();
+#endif
+}