diff --git a/Simulation/DetSimSD/CMakeLists.txt b/Simulation/DetSimSD/CMakeLists.txt index 10b1a15a3f0d9ed6cf91a635ea6d53eca49daba3..10ac679389177d78b6c7ffd92cc16c84028939fd 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 0000000000000000000000000000000000000000..e3c2e98a03f145628d6a65e61a4897235dc39fed --- /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 0000000000000000000000000000000000000000..83e75aa77a0b2b449f56df096f54593f3d7a8213 --- /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