From e3caf16f1becaf07b6f862576fb9233ad9137c03 Mon Sep 17 00:00:00 2001
From: lintao <lintao51@gmail.com>
Date: Mon, 12 Aug 2019 14:19:29 +0800
Subject: [PATCH] WIP: add stepping and tracking action.

---
 Simulation/DetSimCore/CMakeLists.txt          |  2 ++
 .../DetSimCore/src/ActionInitialization.cpp   | 12 ++++++++++
 Simulation/DetSimCore/src/SteppingAction.cpp  | 15 +++++++++++++
 Simulation/DetSimCore/src/SteppingAction.h    | 18 +++++++++++++++
 Simulation/DetSimCore/src/TrackingAction.cpp  | 22 +++++++++++++++++++
 Simulation/DetSimCore/src/TrackingAction.h    | 20 +++++++++++++++++
 6 files changed, 89 insertions(+)
 create mode 100644 Simulation/DetSimCore/src/SteppingAction.cpp
 create mode 100644 Simulation/DetSimCore/src/SteppingAction.h
 create mode 100644 Simulation/DetSimCore/src/TrackingAction.cpp
 create mode 100644 Simulation/DetSimCore/src/TrackingAction.h

diff --git a/Simulation/DetSimCore/CMakeLists.txt b/Simulation/DetSimCore/CMakeLists.txt
index abda7f59..c222800f 100644
--- a/Simulation/DetSimCore/CMakeLists.txt
+++ b/Simulation/DetSimCore/CMakeLists.txt
@@ -16,6 +16,8 @@ set(DetSimCore_srcs
     src/ActionInitialization.cpp
     src/RunAction.cpp
     src/EventAction.cpp
+    src/TrackingAction.cpp
+    src/SteppingAction.cpp
 )
 
 gaudi_add_module(DetSimCore ${DetSimCore_srcs}
diff --git a/Simulation/DetSimCore/src/ActionInitialization.cpp b/Simulation/DetSimCore/src/ActionInitialization.cpp
index 7a16a831..515f975b 100644
--- a/Simulation/DetSimCore/src/ActionInitialization.cpp
+++ b/Simulation/DetSimCore/src/ActionInitialization.cpp
@@ -1,6 +1,9 @@
 #include "ActionInitialization.h"
 
 #include "RunAction.h"
+#include "EventAction.h"
+#include "TrackingAction.h"
+#include "SteppingAction.h"
 
 ActionInitialization::ActionInitialization()
     : G4VUserActionInitialization() {
@@ -23,4 +26,13 @@ ActionInitialization::Build() const {
     RunAction* runAction = new RunAction();
     SetUserAction(runAction);
 
+    EventAction* eventAction = new EventAction();
+    SetUserAction(eventAction);
+
+    TrackingAction* trackingAction = new TrackingAction();
+    SetUserAction(trackingAction);
+
+    SteppingAction* steppingAction = new SteppingAction();
+    SetUserAction(steppingAction);
+
 }
diff --git a/Simulation/DetSimCore/src/SteppingAction.cpp b/Simulation/DetSimCore/src/SteppingAction.cpp
new file mode 100644
index 00000000..3ad62235
--- /dev/null
+++ b/Simulation/DetSimCore/src/SteppingAction.cpp
@@ -0,0 +1,15 @@
+#include "SteppingAction.h"
+
+SteppingAction::SteppingAction() {
+
+}
+
+SteppingAction::~SteppingAction() {
+
+}
+
+void
+SteppingAction::UserSteppingAction(const G4Step* aStep) {
+
+}
+
diff --git a/Simulation/DetSimCore/src/SteppingAction.h b/Simulation/DetSimCore/src/SteppingAction.h
new file mode 100644
index 00000000..9c181753
--- /dev/null
+++ b/Simulation/DetSimCore/src/SteppingAction.h
@@ -0,0 +1,18 @@
+#ifndef SteppingAction_h
+#define SteppingAction_h
+
+#include "G4UserSteppingAction.hh"
+
+class G4Step;
+
+class SteppingAction: public G4UserSteppingAction {
+
+public:
+    SteppingAction();
+    ~SteppingAction();
+
+    void UserSteppingAction(const G4Step*) override;
+
+};
+
+#endif
diff --git a/Simulation/DetSimCore/src/TrackingAction.cpp b/Simulation/DetSimCore/src/TrackingAction.cpp
new file mode 100644
index 00000000..7672c7d6
--- /dev/null
+++ b/Simulation/DetSimCore/src/TrackingAction.cpp
@@ -0,0 +1,22 @@
+#include "TrackingAction.h"
+
+TrackingAction::TrackingAction()
+    : G4UserTrackingAction() {
+
+}
+
+TrackingAction::~TrackingAction() {
+
+}
+
+void
+TrackingAction::PreUserTrackingAction(const G4Track* aTrack) {
+
+}
+
+void
+TrackingAction::PostUserTrackingAction(const G4Track* aTrack) {
+
+}
+
+
diff --git a/Simulation/DetSimCore/src/TrackingAction.h b/Simulation/DetSimCore/src/TrackingAction.h
new file mode 100644
index 00000000..5b7ff885
--- /dev/null
+++ b/Simulation/DetSimCore/src/TrackingAction.h
@@ -0,0 +1,20 @@
+#ifndef TrackingAction_h
+#define TrackingAction_h
+
+#include "G4UserTrackingAction.hh"
+
+class TrackingAction: public G4UserTrackingAction {
+
+public:
+
+    TrackingAction();
+    ~TrackingAction();
+
+    void PreUserTrackingAction(const G4Track*);
+    void PostUserTrackingAction(const G4Track*);
+
+
+
+};
+
+#endif
-- 
GitLab