Skip to content

Partially fix thread-safe issues of InDetTrackSelectionTool

Susumu Oda requested to merge oda/athena:master-InDetTrackSelectionTool into master

Partially fix thread-safe issues of InDetTrackSelectionTool

http://goetz.web.cern.ch/goetz/mutable_2019-05-11.html#InnerDetector_Other

 nightly/master/2019-05-11T2151:InnerDetector/InDetRecTools/InDetTrackSelectionTool/InDetTrackSelectionTool/InDetTrackSelectionTool.h +89


    89	  private:
    90	    bool m_isInitialized = false; // flag whether or not the tool has been initialized, to check erroneous use cases.
    91	    mutable bool m_warnInit = false; // flag to keep track of whether we have warned about a lack of initialization
    92	
    93	    // this is the setCutLevel function that actually does the work, so that it doesn't warn if called in athena.

nightly/master/2019-05-11T2151:InnerDetector/InDetRecTools/InDetTrackSelectionTool/InDetTrackSelectionTool/InDetTrackSelectionTool.h +99


    99	    std::map< std::string, std::vector< std::unique_ptr<TrackCut> > > m_trackCuts; //!< First element is the name of the cut family, second element is the set of cuts
   100	
   101	    mutable ULong64_t m_numTracksProcessed = 0; //!< a counter of the number of tracks proccessed
   102	    mutable ULong64_t m_numTracksPassed = 0; //!< a counter of the number of tracks that passed all cuts
   103	    mutable std::vector<ULong64_t> m_numTracksPassedCuts; //!< tracks the number of tracks that passed each cut family

nightly/master/2019-05-11T2151:InnerDetector/InDetRecTools/InDetTrackSelectionTool/InDetTrackSelectionTool/InDetTrackSelectionTool.h +100


   100	
   101	    mutable ULong64_t m_numTracksProcessed = 0; //!< a counter of the number of tracks proccessed
   102	    mutable ULong64_t m_numTracksPassed = 0; //!< a counter of the number of tracks that passed all cuts
   103	    mutable std::vector<ULong64_t> m_numTracksPassedCuts; //!< tracks the number of tracks that passed each cut family
   104	

nightly/master/2019-05-11T2151:InnerDetector/InDetRecTools/InDetTrackSelectionTool/Root/InDetTrackSelectionTool.cxx +845


   845	    // unfortunately the const must be cast away because the tool needs
   846	    // to update the track to make a summary (it is a friend of the track)
   847	    Trk::Track& nonConstTrack = const_cast<Trk::Track&>(track);
   848	    m_trackSumTool->updateTrack(nonConstTrack);
   849	    // now get the summary from the track (the track has ownership)

RunTier0Tests.py was fine. RunTier0Tests.log

Edited by Susumu Oda

Merge request reports