Skip to content
Snippets Groups Projects
Commit aa93522d authored by lintao@ihep.ac.cn's avatar lintao@ihep.ac.cn
Browse files

WIP: use the DriftChamberSensDetTool to create the Sensitive Detector.

parent f5835b8b
No related branches found
No related tags found
No related merge requests found
......@@ -121,6 +121,11 @@ detsimalg.RootDetElem = "WorldDetElemTool"
from Configurables import AnExampleDetElemTool
example_dettool = AnExampleDetElemTool("AnExampleDetElemTool")
from Configurables import CalorimeterSensDetTool
from Configurables import DriftChamberSensDetTool
calo_sensdettool = CalorimeterSensDetTool("CalorimeterSensDetTool")
driftchamber_sensdettool = DriftChamberSensDetTool("DriftChamberSensDetTool")
##############################################################################
# POD I/O
......
......@@ -110,6 +110,17 @@ AnExampleDetElemTool::ConstructSDandField() {
}
} else if (typ=="tracker") {
// if drift chamber
if (nam == "DriftChamber") {
m_driftchamber_sdtool = ToolHandle<ISensDetTool>("DriftChamberSensDetTool");
if (m_driftchamber_sdtool) {
info() << "Find the DriftChamberSensDetTool" << endmsg;
g4sd = m_calo_sdtool->createSD(nam);
} else {
warning() << "DriftChamberSensDetTool is not found. " << endmsg;
}
}
}
}
......@@ -186,6 +197,9 @@ AnExampleDetElemTool::initialize() {
return StatusCode::FAILURE;
}
m_calo_sdtool = ToolHandle<ISensDetTool>("CalorimeterSensDetTool");
m_driftchamber_sdtool = ToolHandle<ISensDetTool>("DriftChamberSensDetTool");
return sc;
}
......
......@@ -33,6 +33,7 @@ private:
SmartIF<IGeoSvc> m_geosvc;
ToolHandle<ISensDetTool> m_calo_sdtool;
ToolHandle<ISensDetTool> m_driftchamber_sdtool;
};
#endif
......@@ -4,6 +4,8 @@
#include "DD4hep/Detector.h"
#include "DriftChamberSensitiveDetector.h"
DECLARE_COMPONENT(DriftChamberSensDetTool);
StatusCode DriftChamberSensDetTool::initialize() {
......@@ -28,7 +30,7 @@ G4VSensitiveDetector*
DriftChamberSensDetTool::createSD(const std::string& name) {
dd4hep::Detector* dd4hep_geo = m_geosvc->lcdd();
G4VSensitiveDetector* sd = nullptr;
G4VSensitiveDetector* sd = new DriftChamberSensitiveDetector(name, *dd4hep_geo);
return sd;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment