diff --git a/CMakeLists.txt b/CMakeLists.txt index 9df4ea8..f17718a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,7 @@ find_package(Gaudi) find_package(ROOT COMPONENTS RIO Tree) find_package(EDM4HEP) find_package(k4FWCore) +find_package(DD4hep) include(cmake/Key4hepConfig.cmake) diff --git a/GaudiTutorial/MoliereRadiusFunctional/CMakeLists.txt b/GaudiTutorial/MoliereRadiusFunctional/CMakeLists.txt index 1f9acaf..ac8ef0b 100644 --- a/GaudiTutorial/MoliereRadiusFunctional/CMakeLists.txt +++ b/GaudiTutorial/MoliereRadiusFunctional/CMakeLists.txt @@ -22,6 +22,7 @@ gaudi_add_module(MoliereRadiusFunctionalPlugins LINK Gaudi::GaudiKernel k4FWCore::k4FWCore EDM4HEP::edm4hep + DD4hep::DDCore ) install(TARGETS MoliereRadiusFunctionalPlugins diff --git a/GaudiTutorial/RandomNoiseDigitizer/CMakeLists.txt b/GaudiTutorial/RandomNoiseDigitizer/CMakeLists.txt index d148741..7092008 100644 --- a/GaudiTutorial/RandomNoiseDigitizer/CMakeLists.txt +++ b/GaudiTutorial/RandomNoiseDigitizer/CMakeLists.txt @@ -22,6 +22,7 @@ gaudi_add_module(RandomNoiseDigitizerPlugins LINK Gaudi::GaudiKernel k4FWCore::k4FWCore EDM4HEP::edm4hep + DD4hep::DDCore ) install(TARGETS RandomNoiseDigitizerPlugins diff --git a/GaudiTutorial/RandomNoiseDigitizer/options/runRandomNoiseDigitizer.py b/GaudiTutorial/RandomNoiseDigitizer/options/runRandomNoiseDigitizer.py index dc86653..bc09985 100644 --- a/GaudiTutorial/RandomNoiseDigitizer/options/runRandomNoiseDigitizer.py +++ b/GaudiTutorial/RandomNoiseDigitizer/options/runRandomNoiseDigitizer.py @@ -44,8 +44,8 @@ InputCaloSimHitCollection=["simplecaloRO"], OutputCaloDigiHitCollection=["CaloDigiHits"], uidSvcName="uidSvc", - NoiseMean=1e-6, - NoiseWidth=1e-7, + NoiseMean=1e-3, + NoiseWidth=1e-4, OutputLevel=INFO ) diff --git a/GaudiTutorial/RandomNoiseDigitizer/src/components/RandomNoiseDigitizer.cpp b/GaudiTutorial/RandomNoiseDigitizer/src/components/RandomNoiseDigitizer.cpp index c194f5b..b30cb41 100644 --- a/GaudiTutorial/RandomNoiseDigitizer/src/components/RandomNoiseDigitizer.cpp +++ b/GaudiTutorial/RandomNoiseDigitizer/src/components/RandomNoiseDigitizer.cpp @@ -31,6 +31,9 @@ #include "edm4hep/CalorimeterHitCollection.h" #include "edm4hep/SimCalorimeterHitCollection.h" +// dd4hep +#include + // STL #include #include diff --git a/GaudiTutorial/RandomNoiseDigitizer/src/components/RandomNoiseDigitizerSolution.cpp b/GaudiTutorial/RandomNoiseDigitizer/src/components/RandomNoiseDigitizerSolution.cpp index 9f78cbe..2c7240f 100644 --- a/GaudiTutorial/RandomNoiseDigitizer/src/components/RandomNoiseDigitizerSolution.cpp +++ b/GaudiTutorial/RandomNoiseDigitizer/src/components/RandomNoiseDigitizerSolution.cpp @@ -31,6 +31,9 @@ #include "edm4hep/CalorimeterHitCollection.h" #include "edm4hep/SimCalorimeterHitCollection.h" +// dd4hep +#include + // STL #include #include @@ -75,17 +78,21 @@ struct RandomNoiseDigitizerSolution final random_engine.seed(engine_seed); // Create the random distributions for smearing the hit energy - std::normal_distribution gaussian_noise{m_noise_mean.value(), m_noise_width.value()}; + // By multiplying with dd4hep::MeV, we convert the input to dd4hep default units + std::normal_distribution gaussian_noise{m_noise_mean.value() * dd4hep::MeV, + m_noise_width.value() * dd4hep::MeV}; // Loop over the input hits for (const auto& hit : InputCaloSimHitCollection) { auto digihit = CaloDigiHits.create(); + // will be in dd4hep default units, since gaussian_noise is in default units double noise = gaussian_noise(random_engine); digihit.setCellID(hit.getCellID()); - digihit.setEnergy(hit.getEnergy() + noise); - digihit.setEnergyError(m_noise_width); + // hit.getEnergy() is already in GeV (see yaml file), so only cast noise to GeV + digihit.setEnergy(hit.getEnergy() + noise / dd4hep::GeV); + digihit.setEnergyError(m_noise_width / dd4hep::GeV); // set energy error to the width of the noise digihit.setPosition(hit.getPosition()); } @@ -99,8 +106,8 @@ struct RandomNoiseDigitizerSolution final this, "uidSvcName", "UniqueIDGenSvc", "The name of the service for generating unique, but reproducable random seeds"}; - Gaudi::Property m_noise_mean{this, "NoiseMean", 0.0, "Mean of the Gaussian noise to be added"}; - Gaudi::Property m_noise_width{this, "NoiseWidth", 0.1, "Width of the Gaussian noise to be added"}; + Gaudi::Property m_noise_mean{this, "NoiseMean", 1e-3, "Mean of the Gaussian noise to be added in MeV"}; + Gaudi::Property m_noise_width{this, "NoiseWidth", 1e-4, "Width of the Gaussian noise to be added in MeV"}; }; DECLARE_COMPONENT(RandomNoiseDigitizerSolution)