Skip to content

NSW Simulation - Moving to AthReentrantAlgorithm class for MT processing

Francesco Giuseppe Gravili requested to merge fgravili/athena:reentrant into master

And finally here it is the so long-awaited MR (please, forgive me as it is a quite big one, but there's a tight schedule! The other changes for MM algorithms done in !53093 (merged) ): as far as I understood, the deadline is at the end of this week, if we want to have it in the upcoming MC bulk production.

The NSWL1Simulation steering class is now moving to AthReentrantAlgorithm for athenaMT processing: as far as I know, it is ok to keep the other detector technology classes (the ones being called) as AthAlgTool.

Main changes listed below:

  • All function (and sub-functions from the derived classes!!!) called from NSWL1Simulation::execute method are declared as const. I commented some pieces of the NSWL1Simulation code: they're not used at the moment, but on the other side they're not yet ready for the integration in AthReentrantAlgorithm; I'll update them later on, if needed, otherwise I'll remove them
  • Removed forward declarations, redundant if the corresponding header file is available
  • PadTriggerLogicOfflineTool, L1TdrStgcTriggerLogic and PadTriggerValidationTree classes (with extra changes as never adapted to Rel22 standards):
    • declareProperty instances replaced by Gaudi::Property
    • Moved include declarations to header file and removed duplicates
    • Clean-up of variables/functions/comments not used or not useful to understand the code
    • Used std:: namespace for formulas and removed deprecated TVector3 instances
    • Improved code readability: fixed alignment and indentations, expanded tabs->spaces
    • For L1TdrStgcTriggerLogic class: removed private members for an easier integration within const functions
  • PadTdsValidationTree class: replaced m_nPadTriggers variable with a std::vector to avoid overriding here
  • StripSegmentTool class: moved LUT call function for each event, removing the 3 std::pair private members, to avoid issues with the const mother function
  • A few variables are defined as mutable: they're only there for debugging purposes, as related to the validation ntuple
  • MMT_Hit class: R position from global coordinates (one line change)
  • MMT_Road class: range based for-loop with variable passed by reference, avoiding copy (one line change)

./cc a few people who might be interested in:

Merge request reports