From 327aea1390fec0d13b0c5d92e0377bde908ff5b5 Mon Sep 17 00:00:00 2001 From: lintao <lintao51@gmail.com> Date: Mon, 24 Aug 2020 23:57:52 +0800 Subject: [PATCH] WIP: integrate DDG4's magnetic field. --- .../DetCEPCv4/compact/CepC_v4-onlyTracker.xml | 9 +++++++++ .../DetSimGeom/src/AnExampleDetElemTool.cpp | 15 ++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Detector/DetCEPCv4/compact/CepC_v4-onlyTracker.xml b/Detector/DetCEPCv4/compact/CepC_v4-onlyTracker.xml index 4c6e2d61..9d004268 100644 --- a/Detector/DetCEPCv4/compact/CepC_v4-onlyTracker.xml +++ b/Detector/DetCEPCv4/compact/CepC_v4-onlyTracker.xml @@ -74,4 +74,13 @@ <!--include ref="Field_Solenoid_Map_s_4.0T.xml"/> <include ref="Field_AntiDID_Map_s.xml"/> <include ref="Field_FwdMagnets_Ideal_1000GeV.xml"/--> + + + <fields> + + <field name="MagnetFields_Constant" type="ConstantField" field="magnetic"> + <strength x="0" y="0" z="3.0*tesla"/> + </field> + + </fields> </lccdd> diff --git a/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp b/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp index decac3e9..87ad61b3 100644 --- a/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp +++ b/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp @@ -28,7 +28,7 @@ #include "DD4hep/Plugins.h" #include "DDG4/Geant4Converter.h" #include "DDG4/Geant4Mapping.h" - +#include "DDG4/Geant4Field.h" DECLARE_COMPONENT(AnExampleDetElemTool) @@ -162,11 +162,16 @@ AnExampleDetElemTool::ConstructSDandField() { G4FieldManager* fieldManager = G4TransportationManager::GetTransportationManager()->GetFieldManager(); - G4ThreeVector value(0,0,3.*tesla); - G4UniformMagField* aMagField = new G4UniformMagField(value); + // // Below is a uniform B-field + // G4ThreeVector value(0,0,3.*tesla); + // G4UniformMagField* mag_field = new G4UniformMagField(value); + + // DDG4 based B-field + dd4hep::OverlayedField fld = lcdd->field(); + G4MagneticField* mag_field = new dd4hep::sim::Geant4Field(fld); - fieldManager->SetDetectorField(aMagField); - fieldManager->CreateChordFinder(aMagField); + fieldManager->SetDetectorField(mag_field); + fieldManager->CreateChordFinder(mag_field); } -- GitLab