Skip to content
Snippets Groups Projects
geant4_particle_handler.patch 1.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • diff --git a/DDG4/src/Geant4ParticleHandler.cpp b/DDG4/src/Geant4ParticleHandler.cpp
    index 82a4b702..779dd044 100644
    --- a/DDG4/src/Geant4ParticleHandler.cpp
    +++ b/DDG4/src/Geant4ParticleHandler.cpp
    @@ -436,11 +436,8 @@ void Geant4ParticleHandler::rebaseSimulatedTracks(int )   {
       for(count = 0, iend=pm.end(), i=pm.begin(); i!=iend; ++i)  {
         Particle* p = (*i).second;
         orgParticles[p->id] = p->id;
    -    finalParticles[p->id] = p;
    +    finalParticles[p->id] = p->addRef();
         if ( p->id > count ) count = p->id;
    -    if ( (p->reason&G4PARTICLE_PRIMARY) != G4PARTICLE_PRIMARY )  {
    -      p->addRef();
    -    }
       }
       // (1.1) Define the new particle mapping for the simulated tracks
       for(++count, iend=m_particleMap.end(), i=m_particleMap.begin(); i!=iend; ++i)  {
    @@ -448,7 +445,8 @@ void Geant4ParticleHandler::rebaseSimulatedTracks(int )   {
         if ( (p->reason&G4PARTICLE_PRIMARY) != G4PARTICLE_PRIMARY )  {
           //if ( orgParticles.find(p->id) == orgParticles.end() )  {
           orgParticles[p->id] = count;
    -      finalParticles[count] = p;
    +      finalParticles[count]->release();
    +      finalParticles[count] = p->addRef();
           p->id = count;
           ++count;
         }