diff --git a/larsim/PhotonPropagation/OpticalPropagation.fcl b/larsim/PhotonPropagation/OpticalPropagation.fcl index 94c2a778f..64b198e44 100644 --- a/larsim/PhotonPropagation/OpticalPropagation.fcl +++ b/larsim/PhotonPropagation/OpticalPropagation.fcl @@ -3,25 +3,12 @@ //---------------------------------------------------------------------------// #include "OpticalPropPDFastSimPAR_tool.fcl" -process_name: OpticalPropagationProducer +BEGIN_PROLOG -services: +OpticalPropagation: { - TimeTracker: {} - MemoryTracker: {} + module_type : OpticalPropagation + OpticalPropagationTool: @local::OpticalPropPDFastSimPAR } -// Available tools are -// @local::OpticalPropPDFastSimPAR : Semi-analytical model -// @local::Celeritas : Optical photon propagation on CPU and GPU -// @local::Opticks : Optical photon propagation on Nvidia GPUs -physics: -{ - producers: - { - OpticalPropagation: - { - OpticalPropagationTool: @local::OpticalPropPDFastSimPAR - } - } -} +END_PROLOG diff --git a/larsim/PhotonPropagation/OpticalPropagationTools/CMakeLists.txt b/larsim/PhotonPropagation/OpticalPropagationTools/CMakeLists.txt index 87afeeee3..f3ce027b9 100644 --- a/larsim/PhotonPropagation/OpticalPropagationTools/CMakeLists.txt +++ b/larsim/PhotonPropagation/OpticalPropagationTools/CMakeLists.txt @@ -1,10 +1,10 @@ -cet_make_library(LIBRARY_NAME OpticalPropagationTools INTERFACE +cet_make_library(LIBRARY_NAME OpticalPropagationTool INTERFACE SOURCE IOpticalPropagation.h LIBRARIES INTERFACE lardataobj::Simulation ) -cet_write_plugin_builder(phot::OpticalPropagationTools art::tool Modules +cet_write_plugin_builder(phot::OpticalPropagationTool art::tool Modules INSTALL_BUILDER LIBRARIES CONDITIONAL lardataobj::Simulation @@ -13,9 +13,9 @@ cet_write_plugin_builder(phot::OpticalPropagationTools art::tool Modules nurandom::RandomUtils_NuRandomService_service ) -include(phot::OpticalPropagationTools) +include(phot::OpticalPropagationTool) -cet_build_plugin(OpticalPropPDFastSimPAR phot::OpticalPropagationTools +cet_build_plugin(OpticalPropPDFastSimPAR phot::OpticalPropagationTool IMPL_SOURCE OpticalPropPDFastSimPAR.cc LIBRARIES PRIVATE larsim::PhotonPropagation diff --git a/larsim/PhotonPropagation/OpticalPropagationTools/OpticalPropPDFastSimPAR_tool.fcl b/larsim/PhotonPropagation/OpticalPropagationTools/OpticalPropPDFastSimPAR_tool.fcl index 4bc1defed..a8102e1d8 100644 --- a/larsim/PhotonPropagation/OpticalPropagationTools/OpticalPropPDFastSimPAR_tool.fcl +++ b/larsim/PhotonPropagation/OpticalPropagationTools/OpticalPropPDFastSimPAR_tool.fcl @@ -27,9 +27,9 @@ OpticalPropPDFastSimPAR: VUVTiming: @local::common_vuv_timing_parameterization // Required detector-specific parameters: - VISTiming: - VUVHits: - VISHits: + // VISTiming: + // VUVHits: + // VISHits: } END_PROLOG diff --git a/larsim/PhotonPropagation/OpticalPropagation_job.fcl b/larsim/PhotonPropagation/OpticalPropagation_job.fcl new file mode 100644 index 000000000..e7b1568e5 --- /dev/null +++ b/larsim/PhotonPropagation/OpticalPropagation_job.fcl @@ -0,0 +1,25 @@ +//---------------------------------------------------------------------------// +// Job execution file for the OpticalPropagation module +//---------------------------------------------------------------------------// +#include "OpticalPropPDFastSimPAR_tool.fcl" + +process_name: opticalpropagation + +services: +{ + TimeTracker: {} + MemoryTracker: {} +} + +physics: +{ + producers: + { + OpticalPropagation: + { + OpticalPropagationTool: @local::OpticalPropPDFastSimPAR + } + } + + end_path: [ OpticalPropagation ] +} diff --git a/larsim/PhotonPropagation/OpticalPropagation_module.cc b/larsim/PhotonPropagation/OpticalPropagation_module.cc index 4282c823b..70b35db6a 100644 --- a/larsim/PhotonPropagation/OpticalPropagation_module.cc +++ b/larsim/PhotonPropagation/OpticalPropagation_module.cc @@ -19,6 +19,7 @@ #include "art/Framework/Principal/Handle.h" #include "art/Utilities/make_tool.h" #include "fhiclcpp/ParameterSet.h" +#include "fhiclcpp/types/DelegatedParameter.h" #include "messagefacility/MessageLogger/MessageLogger.h" #include "larsim/PhotonPropagation/OpticalPropagationTools/IOpticalPropagation.h" @@ -33,8 +34,9 @@ class phot::OpticalPropagation : public art::EDProducer { public: //! FHiCL configuration parameter struct Config { - fhicl::Table OpticalPropagationTools{ - fhicl::Name("OpticalPropagationTools")}; + fhicl::DelegatedParameter OpticalPropagationTool{ + fhicl::Name("OpticalPropagationTool"), + fhicl::Comment("Tool configuration block with tool_type and parameters")}; }; //!@{ @@ -75,8 +77,9 @@ phot::OpticalPropagation::OpticalPropagation(Parameters const& config) : EDProdu { using IOP = phot::IOpticalPropagation; + auto const& ps = config().OpticalPropagationTool.get(); fOpticalPropagationTool = - std::unique_ptr(art::make_tool(config().OpticalPropagationTools())); + std::unique_ptr(art::make_tool(ps)); fOpticalPropagationTool->InitializeTools( art::ServiceHandle()->registerAndSeedEngine(