From fba931eb0dadfd7d993076927faaae3ab7a181cb Mon Sep 17 00:00:00 2001 From: lintao <lintao51@gmail.com> Date: Thu, 17 Sep 2020 16:26:44 +0800 Subject: [PATCH] WIP: add the DriftChamberSensDetTool. The SD is not created yet. --- Simulation/DetSimSD/CMakeLists.txt | 2 ++ .../DetSimSD/src/DriftChamberSensDetTool.cpp | 34 ++++++++++++++++++ .../DetSimSD/src/DriftChamberSensDetTool.h | 36 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp create mode 100644 Simulation/DetSimSD/src/DriftChamberSensDetTool.h diff --git a/Simulation/DetSimSD/CMakeLists.txt b/Simulation/DetSimSD/CMakeLists.txt index 10b1a15a..10ac6793 100644 --- a/Simulation/DetSimSD/CMakeLists.txt +++ b/Simulation/DetSimSD/CMakeLists.txt @@ -16,6 +16,8 @@ set(DetSimSD_srcs src/DDG4SensitiveDetector.cpp src/CaloSensitiveDetector.cpp + + src/DriftChamberSensDetTool.cpp ) gaudi_add_module(DetSimSD ${DetSimSD_srcs} diff --git a/Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp b/Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp new file mode 100644 index 00000000..e3c2e98a --- /dev/null +++ b/Simulation/DetSimSD/src/DriftChamberSensDetTool.cpp @@ -0,0 +1,34 @@ +#include "DriftChamberSensDetTool.h" + +#include "G4VSensitiveDetector.hh" + +#include "DD4hep/Detector.h" + +DECLARE_COMPONENT(DriftChamberSensDetTool); + +StatusCode DriftChamberSensDetTool::initialize() { + StatusCode sc; + + m_geosvc = service<IGeoSvc>("GeoSvc"); + if (!m_geosvc) { + error() << "Failed to find GeoSvc." << endmsg; + return StatusCode::FAILURE; + } + + return sc; +} + +StatusCode DriftChamberSensDetTool::finalize() { + StatusCode sc; + + return sc; +} + +G4VSensitiveDetector* +DriftChamberSensDetTool::createSD(const std::string& name) { + dd4hep::Detector* dd4hep_geo = m_geosvc->lcdd(); + + G4VSensitiveDetector* sd = nullptr; + + return sd; +} diff --git a/Simulation/DetSimSD/src/DriftChamberSensDetTool.h b/Simulation/DetSimSD/src/DriftChamberSensDetTool.h new file mode 100644 index 00000000..83e75aa7 --- /dev/null +++ b/Simulation/DetSimSD/src/DriftChamberSensDetTool.h @@ -0,0 +1,36 @@ +#ifndef DriftChamberSensDetTool_h +#define DriftChamberSensDetTool_h + +/* + * DriftChamberSensDetTool is used to create Drift Chamber SD. + * + * It will use DedxSimTool to give the dE/dx value. + * + * -- 17 Sept 2020, Tao Lin <lintao@ihep.ac.cn> + */ + +#include "GaudiKernel/AlgTool.h" +#include "DetSimInterface/ISensDetTool.h" +#include "DetInterface/IGeoSvc.h" + +class DriftChamberSensDetTool: public extends<AlgTool, ISensDetTool> { + +public: + + using extends::extends; + + /// Overriding initialize and finalize + StatusCode initialize() override; + StatusCode finalize() override; + + /// Override ISensDetTool + virtual G4VSensitiveDetector* createSD(const std::string& name) override; + +private: + + // in order to initialize SD, we need to get the lcdd() + SmartIF<IGeoSvc> m_geosvc; + +}; + +#endif -- GitLab