From 872029dc2614a2d973731b9257dd2583892fd30d Mon Sep 17 00:00:00 2001
From: lintao <lintao51@gmail.com>
Date: Mon, 12 Aug 2019 15:52:02 +0800
Subject: [PATCH] WIP: add an example tool.

---
 Simulation/DetSimAna/CMakeLists.txt           | 18 +++++++
 .../DetSimAna/src/ExampleAnaElemTool.cpp      | 54 +++++++++++++++++++
 Simulation/DetSimAna/src/ExampleAnaElemTool.h | 36 +++++++++++++
 3 files changed, 108 insertions(+)
 create mode 100644 Simulation/DetSimAna/CMakeLists.txt
 create mode 100644 Simulation/DetSimAna/src/ExampleAnaElemTool.cpp
 create mode 100644 Simulation/DetSimAna/src/ExampleAnaElemTool.h

diff --git a/Simulation/DetSimAna/CMakeLists.txt b/Simulation/DetSimAna/CMakeLists.txt
new file mode 100644
index 00000000..ba4ee82a
--- /dev/null
+++ b/Simulation/DetSimAna/CMakeLists.txt
@@ -0,0 +1,18 @@
+
+gaudi_subdir(DetSimAna v0r0)
+
+gaudi_depends_on_subdirs(
+    Simulation/DetSimInterface
+)
+
+find_package(Geant4 REQUIRED ui_all vis_all)
+include(${Geant4_USE_FILE})
+
+set(DetSimAna_srcs
+    src/ExampleAnaElemTool.cpp
+)
+
+gaudi_add_module(DetSimAna ${DetSimAna_srcs}
+    INCLUDE_DIRS DetSimInterface GaudiKernel Geant4
+    LINK_LIBRARIES DetSimInterface GaudiKernel Geant4
+)
diff --git a/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp b/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp
new file mode 100644
index 00000000..adf41ea9
--- /dev/null
+++ b/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp
@@ -0,0 +1,54 @@
+#include "ExampleAnaElemTool.h"
+
+DECLARE_COMPONENT(ExampleAnaElemTool)
+
+void
+ExampleAnaElemTool::BeginOfRunAction(const G4Run*) {
+
+}
+
+void
+ExampleAnaElemTool::EndOfRunAction(const G4Run*) {
+
+}
+
+void
+ExampleAnaElemTool::BeginOfEventAction(const G4Event*) {
+
+}
+
+void
+ExampleAnaElemTool::EndOfEventAction(const G4Event*) {
+
+}
+
+void
+ExampleAnaElemTool::PreUserTrackingAction(const G4Track*) {
+
+}
+
+void
+ExampleAnaElemTool::PostUserTrackingAction(const G4Track*) {
+
+}
+
+void
+ExampleAnaElemTool::UserSteppingAction(const G4Step*) {
+
+}
+
+StatusCode
+ExampleAnaElemTool::initialize() {
+    StatusCode sc;
+
+    return sc;
+}
+
+StatusCode
+ExampleAnaElemTool::finalize() {
+    StatusCode sc;
+
+    return sc;
+}
+
+
diff --git a/Simulation/DetSimAna/src/ExampleAnaElemTool.h b/Simulation/DetSimAna/src/ExampleAnaElemTool.h
new file mode 100644
index 00000000..01e6275e
--- /dev/null
+++ b/Simulation/DetSimAna/src/ExampleAnaElemTool.h
@@ -0,0 +1,36 @@
+#ifndef ExampleAnaElemTool_h
+#define ExampleAnaElemTool_h
+
+#include "GaudiKernel/AlgTool.h"
+#include "DetSimInterface/IAnaElemTool.h"
+
+class ExampleAnaElemTool: public extends<AlgTool, IAnaElemTool> {
+
+public:
+
+    using extends::extends;
+
+    /// IAnaElemTool interface
+    // Run
+    virtual void BeginOfRunAction(const G4Run*) override;
+    virtual void EndOfRunAction(const G4Run*) override;
+
+    // Event
+    virtual void BeginOfEventAction(const G4Event*) override;
+    virtual void EndOfEventAction(const G4Event*) override;
+
+    // Tracking
+    virtual void PreUserTrackingAction(const G4Track*) override;
+    virtual void PostUserTrackingAction(const G4Track*) override;
+
+    // Stepping
+    virtual void UserSteppingAction(const G4Step*) override;
+
+
+    /// Overriding initialize and finalize
+    StatusCode initialize() override;
+    StatusCode finalize() override;
+
+};
+
+#endif
-- 
GitLab