Commit 3c61e991 authored by Paul Schütze's avatar Paul Schütze
Browse files

Merge branch 'nullptr_deref' into 'master'

DepositionGeant4: check for possible nullptr dereference

See merge request allpix-squared/allpix-squared!536
parents 7c225147 78fea805
Loading
Loading
Loading
Loading
+15 −9
Original line number Diff line number Diff line
@@ -238,6 +238,8 @@ GeneratorActionG4::GeneratorActionG4(const Configuration& config)
 * Called automatically for every event
 */
void GeneratorActionG4::GeneratePrimaries(G4Event* event) {

    // G4IonTable is only ready after initialization, so we need to pick the particle here and assign it to the source:
    if(initialize_ion_as_particle_) {
        auto* single_source = particle_source_->GetCurrentSource();
        G4ParticleDefinition* particle = nullptr;
@@ -283,6 +285,7 @@ void GeneratorActionG4::GeneratePrimaries(G4Event* event) {
            }
        }

        if(particle != nullptr) {
            // Set global parameters of the source
            single_source->SetNumberOfParticles(1);
            single_source->SetParticleDefinition(particle);
@@ -294,6 +297,9 @@ void GeneratorActionG4::GeneratePrimaries(G4Event* event) {

            LOG(DEBUG) << "Using ion " << particle->GetParticleName() << " (ID " << particle->GetPDGEncoding() << ") with "
                       << Units::display(particle->GetPDGLifeTime(), {"s", "ns"}) << " lifetime.";
        } else {
            throw InvalidValueError(config_, "particle_type", "failed to fetch or create ion.");
        }
    }

    particle_source_->GeneratePrimaryVertex(event);