diff --git a/Simulation/BeamEffects/src/BeamEffectsAlg.cxx b/Simulation/BeamEffects/src/BeamEffectsAlg.cxx
index 6f583965b5a95ee902778e79790f9fe5aea6b23b..20cbfadca832d5bfe0b1f8bcb1df0d537ba35280 100644
--- a/Simulation/BeamEffects/src/BeamEffectsAlg.cxx
+++ b/Simulation/BeamEffects/src/BeamEffectsAlg.cxx
@@ -85,7 +85,7 @@ namespace Simulation
     if( !ge.signal_process_vertex() ) {
       if(m_ISFRun) {
         ATH_MSG_DEBUG("No signal_process_vertex found - creating a dummy GenVertex.");
-        CLHEP::HepLorentzVector signalPos( 0.0, 0.0, 0.0, 0.0);
+        HepMC::FourVector signalPos( 0.0, 0.0, 0.0, 0.0);
         HepMC::GenVertex *signalVertex = new HepMC::GenVertex( signalPos );
         // ge will now take ownership of the signal process vertex
         ge.set_signal_process_vertex( signalVertex );
diff --git a/Simulation/BeamEffects/src/GenEventBeamEffectBooster.cxx b/Simulation/BeamEffects/src/GenEventBeamEffectBooster.cxx
index 3bf5e81861c3e8d6f697d209371faefe8c39a7e5..58978e8435a6dae06ffd708b8a02126d9127111b 100644
--- a/Simulation/BeamEffects/src/GenEventBeamEffectBooster.cxx
+++ b/Simulation/BeamEffects/src/GenEventBeamEffectBooster.cxx
@@ -203,7 +203,7 @@ namespace Simulation
     ATH_MSG_VERBOSE("BEAMBOOST initial momentum " << hv );
     hv.transform(transform);
     ATH_MSG_VERBOSE("BEAMBOOST transformed momentum " << hv);
-    p->set_momentum(hv); //TODO check units
+    p->set_momentum(HepMC::FourVector(hv.px(),hv.py(),hv.pz(),hv.e())); //TODO check units
   }
 
 }
diff --git a/Simulation/BeamEffects/src/GenEventRotator.cxx b/Simulation/BeamEffects/src/GenEventRotator.cxx
index 2d2050e969de4b53b7a8864f3dd2a7ea9021fe1c..94732e8f2c118adba03e6f28bb722fa358e176fb 100644
--- a/Simulation/BeamEffects/src/GenEventRotator.cxx
+++ b/Simulation/BeamEffects/src/GenEventRotator.cxx
@@ -100,7 +100,7 @@ namespace Simulation
     ATH_MSG_VERBOSE("initial momentum " << hv );
     hv.transform(transform);
     ATH_MSG_VERBOSE("transformed momentum " << hv);
-    p->set_momentum(hv); //TODO check units
+    p->set_momentum(HepMC::FourVector(hv.px(),hv.py(),hv.pz(),hv.e())); //TODO check units
   }
 
 }
diff --git a/Simulation/BeamEffects/src/GenEventVertexPositioner.cxx b/Simulation/BeamEffects/src/GenEventVertexPositioner.cxx
index 589f99cbc1930c1119e7f65b3cf4885ff04244a5..8a80e311bd3bc3c24d30b78260b4c6ac046a0f46 100644
--- a/Simulation/BeamEffects/src/GenEventVertexPositioner.cxx
+++ b/Simulation/BeamEffects/src/GenEventVertexPositioner.cxx
@@ -98,7 +98,7 @@ namespace Simulation
         ATH_MSG_VERBOSE( "Updated  vtx  position = " << newPos );
 
         // store the updated position in the vertex
-        curVtx->set_position( newPos);
+        curVtx->set_position( HepMC::FourVector(newPos.x(),newPos.y(),newPos.z(),newPos.t()));
         if(modifySigVtx && signalProcVtx==curVtx) {
           modifySigVtx=false;
         }
diff --git a/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx b/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx
index c4965904212d5a6e05efb570a4f65cac28c72278..e3b5065e0dd107b3562e87fa5486a2eebcb42988 100755
--- a/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx
+++ b/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx
@@ -85,7 +85,7 @@ typedef std::vector<const HepMC::GenParticle*>  MCparticleCollection ;
 //This is a copy of the previous isGenSimulStable which depended on TruthHelper
 bool FastCaloSimIsGenSimulStable(const HepMC::GenParticle* p) {
   int status=p->status();
-  HepMC::GenVertex* vertex = p->end_vertex();
+  auto vertex = p->end_vertex();
   // we want to keep primary particle with status==2 but without vertex in HepMC
   int vertex_barcode=-999999;
   if (vertex) vertex_barcode=vertex->barcode();
diff --git a/Simulation/FastShower/FastCaloSim/src/obsolete/CBNTAA_DetailedCellInfo.cxx b/Simulation/FastShower/FastCaloSim/src/obsolete/CBNTAA_DetailedCellInfo.cxx
index 28a94ffac22d3898be609d1f61ae3d73b5a17818..9230faa21c8962a459a188cbf983e646256a77b2 100644
--- a/Simulation/FastShower/FastCaloSim/src/obsolete/CBNTAA_DetailedCellInfo.cxx
+++ b/Simulation/FastShower/FastCaloSim/src/obsolete/CBNTAA_DetailedCellInfo.cxx
@@ -473,10 +473,9 @@ StatusCode CBNTAA_DetailedCellInfo::CBNT_execute()
 
   MCparticleCollectionCIter ip;
 
- for(ip=particles.begin();ip<particles.end();++ip){
+ for(auto par: particles){
 
 	log << MSG::INFO << "entering the for loop" << endmsg;
-	const HepMC::GenParticle* par=*ip;
 	double charge = 0;
 
 	HepPDT::ParticleData* ap = m_particleDataTable->particle( abs( par->pdg_id() ) );
@@ -491,15 +490,11 @@ StatusCode CBNTAA_DetailedCellInfo::CBNT_execute()
 
  	log << MSG::INFO <<" id="<<par->pdg_id()<<" stat="<<par->status()<<" pt="<<par->momentum().perp()<<" eta="<<par->momentum().eta()<<" phi="<<par->momentum().phi()<<" charge="<<charge<< endmsg;
 
-  HepMC::GenVertex* pvtx = par->production_vertex();
-//    double eta=(*par)->particle()->momentum().eta();
-//    double phi=(*par)->particle()->momentum().phi();
+  auto pvtx = par->production_vertex();
 
 
   Trk::GlobalPosition pos(HepLorentzVector(pvtx->position().x(),pvtx->position().y(),pvtx->position().z(),pvtx->position().t()));
   Trk::GlobalMomentum mom(HepLorentzVector(par->momentum().px(),par->momentum().py(),par->momentum().pz(),par->momentum().e()));
-//  Trk::GlobalPosition pos(pvtx->position());
-//  Trk::GlobalMomentum mom(par->momentum());
   Trk::Perigee candidatePerigee(pos,mom,charge,pos);
   FastShowerCellBuilderTool* the_FastShowerCellBuilderTool=dynamic_cast<FastShowerCellBuilderTool*>(&(*m_FastShowerCellBuilderTool));
 
@@ -531,26 +526,12 @@ StatusCode CBNTAA_DetailedCellInfo::CBNT_execute()
   break;  
  }
 
-//return StatusCode::SUCCESS;
-//    int* test=0; // Durch diese Zeile bricht die Reconstrucktion nach demn 1. Event ab
-//    *test=0; 	
 
 return StatusCode::SUCCESS; 
 
 
 }
 
-
-
-
-
-
-
-
-
-
-
-
 StatusCode CBNTAA_DetailedCellInfo::CBNT_clear()
 {
   MsgStream log( messageService(), name() );
@@ -594,11 +575,6 @@ StatusCode CBNTAA_DetailedCellInfo::CBNT_clear()
   if (m_saveId) m_offId->clear();
   if (m_saveQInfo) m_qCells->clear() ;
 
-  
-
-  
-
-
 
  return StatusCode::SUCCESS;
 }
diff --git a/Simulation/G4Utilities/G4UserActions/src/AthenaStackingAction.cxx b/Simulation/G4Utilities/G4UserActions/src/AthenaStackingAction.cxx
index 49c400a79fadba69cecc80ed11517e8f3a8d8095..8850f23d6a1b458e79fb394e4f70379c33268fbb 100644
--- a/Simulation/G4Utilities/G4UserActions/src/AthenaStackingAction.cxx
+++ b/Simulation/G4Utilities/G4UserActions/src/AthenaStackingAction.cxx
@@ -111,7 +111,7 @@ namespace G4UA
       if(ppi) {
         if (!m_config.isISFJob) {
           // don't do anything
-          const HepMC::GenParticle* part = ppi->GetHepMCParticle();
+          auto  part = ppi->GetHepMCParticle();
           if(part) {
             // OK, we got back to HepMC
             std::unique_ptr<TrackInformation> ti = std::make_unique<TrackInformation>(part);
diff --git a/Simulation/TruthJiveXML/src/TruthTrackRetriever.cxx b/Simulation/TruthJiveXML/src/TruthTrackRetriever.cxx
index da3d4e7fa6ec5565554de9831db32457659cddb3..c73ae7f145a72b1731453e51dd26bd7a0ec61920 100755
--- a/Simulation/TruthJiveXML/src/TruthTrackRetriever.cxx
+++ b/Simulation/TruthJiveXML/src/TruthTrackRetriever.cxx
@@ -92,7 +92,7 @@ namespace JiveXML {
       for ( ; ParticleItr!=(*McEvtCollItr)->particles_end(); ++ParticleItr ) {
 
         //Get the particle
-        HepMC::GenParticle* particle = (*ParticleItr);
+        auto particle = (*ParticleItr);
         
         //Additional cuts for decaying particles
         if ( particle->end_vertex() ) {
@@ -111,7 +111,7 @@ namespace JiveXML {
         id.push_back(DataType( particle->barcode() ));
 
         // Get the vertex information
-        HepMC::GenVertex* vertex =  particle->production_vertex();
+        auto vertex =  particle->production_vertex();
         if (vertex) {
           auto pos=vertex->position();
           rhoVertex.push_back(DataType( std::sqrt(pos.x()*pos.x()+pos.y()*pos.y()+pos.z()*pos.z())*Gaudi::Units::mm/Gaudi::Units::cm ));