From 1110e0d30e317694b8d24df2a7f8db7c3ce7e7d9 Mon Sep 17 00:00:00 2001 From: Raees Khan <rak177@pitt.edu> Date: Tue, 14 Jun 2022 10:45:19 -0400 Subject: [PATCH] Reading in Magnetic field plugin --- FullSimLight/fullSimLight.cc | 1 + FullSimLight/include/FSLDetectorConstruction.hh | 5 +++-- FullSimLight/src/FSLDetectorConstruction.cc | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/FullSimLight/fullSimLight.cc b/FullSimLight/fullSimLight.cc index 7e058deae..c6d785f1f 100644 --- a/FullSimLight/fullSimLight.cc +++ b/FullSimLight/fullSimLight.cc @@ -218,6 +218,7 @@ int main(int argc, char** argv) { if(isBatch){ + detector->SetMagFieldPluginPath(simConfig::fsl.magFieldPlugin); detector->SetGeometryFileName (geometryFileName); runManager->SetUserInitialization(detector); diff --git a/FullSimLight/include/FSLDetectorConstruction.hh b/FullSimLight/include/FSLDetectorConstruction.hh index ce05d528f..02c0fe092 100644 --- a/FullSimLight/include/FSLDetectorConstruction.hh +++ b/FullSimLight/include/FSLDetectorConstruction.hh @@ -65,7 +65,8 @@ public: } void AddSensitiveDetectorPlugin(const std::string & SDPluginName) { sensitiveDetectorPluginName.push_back(SDPluginName);} - + void SetMagFieldPluginPath(const std::string & MFPluginName) {mag_field_plugin_path = MFPluginName;} + static G4double GetFieldValue() { return gFieldValue; } G4double GetTolerance (){return fTolerance;} @@ -104,7 +105,7 @@ private: std::vector<std::string> sensitiveDetectorPluginName; - + std::string mag_field_plugin_path; }; diff --git a/FullSimLight/src/FSLDetectorConstruction.cc b/FullSimLight/src/FSLDetectorConstruction.cc index 04149594f..7ab08ea8e 100644 --- a/FullSimLight/src/FSLDetectorConstruction.cc +++ b/FullSimLight/src/FSLDetectorConstruction.cc @@ -69,7 +69,7 @@ #include "GeoModelKernel/GeoVGeometryPlugin.h" #include "GeoModelKernel/GeoGeometryPluginLoader.h" #include "GeoModelKernel/GeoVolumeCursor.h" - +#include "GeoModelKernel/GeoPluginLoader.h" // For Sensitive Detector plugins: #include "FSLSensitiveDetectorPlugin.h" #include "FSLSDPluginLoader.h" @@ -410,6 +410,11 @@ void FSLDetectorConstruction::ConstructSDandField() { StandardFieldSvc* FSLMagField = new StandardFieldSvc("StandardFieldSvc"); G4MagneticField* g4Field = FSLMagField->getField(); + + GeoPluginLoader<ConstMagneticFieldPlugin> loader; + ConstMagneticFieldPlugin *plugin=loader.load(mag_field_plugin_path) + G4MagneticField=plugin->getFieldValue(); + if(g4Field==nullptr) std::cout<<"Error, g4Field is null!"<<std::endl; fField.Put(g4Field); -- GitLab