Loading src/modules/GenericPropagation/GenericPropagationModule.cpp +1 −5 Original line number Diff line number Diff line Loading @@ -562,11 +562,7 @@ void GenericPropagationModule::initialize() { mobility_ = Mobility(config_, detector->hasDopingProfile()); // Prepare recombination model try { recombination_ = Recombination(config_.get<std::string>("recombination_model"), detector->hasDopingProfile()); } catch(ModelError& e) { throw InvalidValueError(config_, "recombination_model", e.what()); } recombination_ = Recombination(config_, detector->hasDopingProfile()); } void GenericPropagationModule::run(Event* event) { Loading src/modules/ProjectionPropagation/ProjectionPropagationModule.cpp +1 −5 Original line number Diff line number Diff line Loading @@ -84,11 +84,7 @@ void ProjectionPropagationModule::initialize() { } // Prepare recombination model try { recombination_ = Recombination(config_.get<std::string>("recombination_model"), detector_->hasDopingProfile()); } catch(ModelError& e) { throw InvalidValueError(config_, "recombination_model", e.what()); } recombination_ = Recombination(config_, detector_->hasDopingProfile()); if(detector_->hasMagneticField() && !config_.get<bool>("ignore_magnetic_field")) { throw ModuleError("This module should not be used with magnetic fields. Add the option 'ignore_magnetic_field' to " Loading src/modules/TransientPropagation/TransientPropagationModule.cpp +1 −5 Original line number Diff line number Diff line Loading @@ -89,11 +89,7 @@ void TransientPropagationModule::initialize() { mobility_ = Mobility(config_, detector->hasDopingProfile()); // Prepare recombination model try { recombination_ = Recombination(config_.get<std::string>("recombination_model"), detector->hasDopingProfile()); } catch(ModelError& e) { throw InvalidValueError(config_, "recombination_model", e.what()); } recombination_ = Recombination(config_, detector->hasDopingProfile()); // Check for magnetic field has_magnetic_field_ = detector->hasMagneticField(); Loading src/physics/Recombination.hpp +19 −14 Original line number Diff line number Diff line Loading @@ -162,10 +162,12 @@ namespace allpix { /** * Recombination constructor * @param model Name of the recombination model * @param config Configuration of the calling module * @param doping Boolean to indicate presence of doping profile information */ Recombination(const std::string& model, bool doping = false) { Recombination(const Configuration& config, bool doping = false) { try { auto model = config.get<std::string>("recombination_model"); if(model == "srh") { model_ = std::make_unique<ShockleyReadHall>(doping); } else if(model == "auger") { Loading @@ -179,6 +181,9 @@ namespace allpix { throw InvalidModelError(model); } LOG(DEBUG) << "Selected recombination model \"" << model << "\""; } catch(const ModelError& e) { throw InvalidValueError(config, "recombination_model", e.what()); } } /** Loading Loading
src/modules/GenericPropagation/GenericPropagationModule.cpp +1 −5 Original line number Diff line number Diff line Loading @@ -562,11 +562,7 @@ void GenericPropagationModule::initialize() { mobility_ = Mobility(config_, detector->hasDopingProfile()); // Prepare recombination model try { recombination_ = Recombination(config_.get<std::string>("recombination_model"), detector->hasDopingProfile()); } catch(ModelError& e) { throw InvalidValueError(config_, "recombination_model", e.what()); } recombination_ = Recombination(config_, detector->hasDopingProfile()); } void GenericPropagationModule::run(Event* event) { Loading
src/modules/ProjectionPropagation/ProjectionPropagationModule.cpp +1 −5 Original line number Diff line number Diff line Loading @@ -84,11 +84,7 @@ void ProjectionPropagationModule::initialize() { } // Prepare recombination model try { recombination_ = Recombination(config_.get<std::string>("recombination_model"), detector_->hasDopingProfile()); } catch(ModelError& e) { throw InvalidValueError(config_, "recombination_model", e.what()); } recombination_ = Recombination(config_, detector_->hasDopingProfile()); if(detector_->hasMagneticField() && !config_.get<bool>("ignore_magnetic_field")) { throw ModuleError("This module should not be used with magnetic fields. Add the option 'ignore_magnetic_field' to " Loading
src/modules/TransientPropagation/TransientPropagationModule.cpp +1 −5 Original line number Diff line number Diff line Loading @@ -89,11 +89,7 @@ void TransientPropagationModule::initialize() { mobility_ = Mobility(config_, detector->hasDopingProfile()); // Prepare recombination model try { recombination_ = Recombination(config_.get<std::string>("recombination_model"), detector->hasDopingProfile()); } catch(ModelError& e) { throw InvalidValueError(config_, "recombination_model", e.what()); } recombination_ = Recombination(config_, detector->hasDopingProfile()); // Check for magnetic field has_magnetic_field_ = detector->hasMagneticField(); Loading
src/physics/Recombination.hpp +19 −14 Original line number Diff line number Diff line Loading @@ -162,10 +162,12 @@ namespace allpix { /** * Recombination constructor * @param model Name of the recombination model * @param config Configuration of the calling module * @param doping Boolean to indicate presence of doping profile information */ Recombination(const std::string& model, bool doping = false) { Recombination(const Configuration& config, bool doping = false) { try { auto model = config.get<std::string>("recombination_model"); if(model == "srh") { model_ = std::make_unique<ShockleyReadHall>(doping); } else if(model == "auger") { Loading @@ -179,6 +181,9 @@ namespace allpix { throw InvalidModelError(model); } LOG(DEBUG) << "Selected recombination model \"" << model << "\""; } catch(const ModelError& e) { throw InvalidValueError(config, "recombination_model", e.what()); } } /** Loading