diff --git a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollower.h b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollower.h index 6630fa7250a4ce0ea89c69362edaf6001dfa7fd2..6ef3b1e3a5f2c9c6d22629ebbe6d34287b1b18e0 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollower.h +++ b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollower.h @@ -37,6 +37,7 @@ namespace G4UA struct Config { + /// FIXME: Public tool handle. See ATLASSIM-3561. ToolHandle<Trk::IGeantFollowerHelper> helper = ToolHandle<Trk::IGeantFollowerHelper>("Trk::GeantFollowerHelper/GeantFollowerHelper"); }; @@ -51,6 +52,7 @@ namespace G4UA Config m_config; + /// FIXME: mutable helper! See ATLASSIM-3561. mutable const Trk::IGeantFollowerHelper* m_helperPointer; }; // class GeantFollower diff --git a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerHelper.h b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerHelper.h index b5577267e255de7154b5d6d66f3dcba3edfe2b09..2850eb2dd85ebce93b4db341a3598a2fd80189d9 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerHelper.h +++ b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerHelper.h @@ -14,6 +14,7 @@ #include "TrkG4UserActions/IGeantFollowerHelper.h" #include "G4ThreeVector.hh" //typedef, can't fwd declare +// FIXME: header-global macro for an array size constant! #ifndef MAXPROBES #define MAXPROBES 50000 #endif diff --git a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMS.h b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMS.h index 63276d20d20a98b15798867e6bc06cb574d0ba94..725e87a475f16baaa8f8856928b4d24770ec8193 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMS.h +++ b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMS.h @@ -37,6 +37,8 @@ namespace G4UA struct Config { + // FIXME: public tool handle in thread-local action! + // See ATLASSIM-3561. ToolHandle<Trk::IGeantFollowerMSHelper> helper = ToolHandle<Trk::IGeantFollowerMSHelper>("Trk::GeantFollowerMSHelper/GeantFollowerMSHelper"); ServiceHandle<Trk::ITrackingGeometrySvc> trackingGeometrySvc = @@ -52,7 +54,10 @@ namespace G4UA private: Config m_config; - /** tracking geometry */ + + /** tracking geometry + FIXME: mutables in thread-local action! ATLASSIM-3561. + */ mutable const Trk::TrackingGeometry* m_trackingGeometry; mutable const Trk::IGeantFollowerMSHelper* m_helperPointer; diff --git a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMSHelper.h b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMSHelper.h index 5f18d7825405fab16b9ccb6c666e5271c507bc3a..2fa6f46aad0174c1929acff9356bde3f9625415a 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMSHelper.h +++ b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMSHelper.h @@ -16,6 +16,7 @@ #include "TrkG4UserActions/IGeantFollowerMSHelper.h" #include "G4ThreeVector.hh" +// FIXME: header-global macro for an array size constant! #ifndef MAXPROBES #define MAXPROBES 50000 #endif @@ -52,6 +53,7 @@ namespace Trk void trackParticle(const G4ThreeVector& pos, const G4ThreeVector& mom, int pdg, double charge, float t, float X0) const; /// modify TSOS vector + /// FIXME: const by-value vector argument! const std::vector<const Trk::TrackStateOnSurface*> modifyTSOSvector(const std::vector<const Trk::TrackStateOnSurface*> matvec, double scaleX0, double scaleEloss, bool reposition, diff --git a/Tracking/TrkG4Components/TrkG4UserActions/src/EnergyLossRecorder.cxx b/Tracking/TrkG4Components/TrkG4UserActions/src/EnergyLossRecorder.cxx index 5bee85fcb580a15a8c36be6e0e9f1841578ee923..dcdee9a9f0ed84c310bce251dd659efbd0d66ebc 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/src/EnergyLossRecorder.cxx +++ b/Tracking/TrkG4Components/TrkG4UserActions/src/EnergyLossRecorder.cxx @@ -28,6 +28,7 @@ namespace G4UA } + // FIXME: Why implement run action if empty? void EnergyLossRecorder::BeginOfRunAction(const G4Run*) { return; @@ -46,6 +47,8 @@ namespace G4UA void EnergyLossRecorder::EndOfEventAction(const G4Event*) { if (m_config.pmWriter) { + // FIXME: thread-unsafe usage of a component in a thread-local action? + // See ATLASSIM-3562. m_config.pmWriter->finalizeTrack(); } m_entries = 0; diff --git a/Tracking/TrkG4Components/TrkG4UserActions/src/EnergyLossRecorderTool.cxx b/Tracking/TrkG4Components/TrkG4UserActions/src/EnergyLossRecorderTool.cxx index be2dd522fc41eb9bd68ae4882b497e12eb939864..9864f3f7e15a8deced3c2123a3cfdbace138047f 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/src/EnergyLossRecorderTool.cxx +++ b/Tracking/TrkG4Components/TrkG4UserActions/src/EnergyLossRecorderTool.cxx @@ -23,6 +23,8 @@ namespace G4UA { if(!m_pmWriter.empty()) { ATH_CHECK(m_pmWriter.retrieve()); + // FIXME: thread-unsafe usage of a component in a thread-local action? + // See ATLASSIM-3562. m_config.pmWriter = &(*m_pmWriter); } return StatusCode::SUCCESS; diff --git a/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMS.cxx b/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMS.cxx index cdb883d857c63bec7ffb136baf73d9e8a4634b36..816d3a91572dc37ccb93bed68a4e8f6912344681 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMS.cxx +++ b/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMS.cxx @@ -31,11 +31,13 @@ namespace G4UA void GeantFollowerMS::BeginOfEventAction(const G4Event*) { + // FIXME: thread-unsafe tool usage in thread-local action? ATLASSIM-3562. m_helperPointer->beginEvent(); } void GeantFollowerMS::EndOfEventAction(const G4Event*) { + // FIXME: thread-unsafe tool usage in thread-local action? ATLASSIM-3562. m_helperPointer->endEvent(); }