LArHV: Thread-safety cleanups.
The HV manager classes here mix together two kinds of information. There is information about the structure of the cells, which is static, and information about the actual HV settings, which derives from conditions data and can change. The managers are stored in the detector store. As originally intended, the manager classes get updated in place when conditions change. The actual update of the HV data is done lazily through const methods called by the accessors. This is not thread-friendly. Though earlier changes ameliorated the worst of the issues, it's still difficult to ensure that there can't be problems (and it is problematic to get the thread-safety checker to accept the code). Here, we rework these classes to put these issues to rest. The conditions information is firmly separated from the geometry information. The geometry information remains part of the manager classes, while the HV information is computed on request and returned in a separate structure. The inputs for this are the required conditions data objects. For compatibility with previous usage, we also continue to support constructing HV information with no explicit inputs. This will use the obsolete LArCablingTool rather than the HV mapping conditions object, so these methods are tagged as not thread-safe. The clients for this at this time are the G4 initialization classes, which don't have the conditions objects available.
parent
825882a5
No related branches found
No related tags found
Showing
- LArCalorimeter/LArGeoModel/LArHV/LArHV/ATLAS_CHECK_THREAD_SAFETY 1 addition, 0 deletions...rimeter/LArGeoModel/LArHV/LArHV/ATLAS_CHECK_THREAD_SAFETY
- LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBHVElectrode.h 1 addition, 12 deletionsLArCalorimeter/LArGeoModel/LArHV/LArHV/EMBHVElectrode.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBHVManager.h 31 additions, 10 deletionsLArCalorimeter/LArGeoModel/LArHV/LArHV/EMBHVManager.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVManager.h 32 additions, 10 deletions...orimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVManager.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVModule.h 1 addition, 12 deletions...lorimeter/LArGeoModel/LArHV/LArHV/EMBPresamplerHVModule.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECHVElectrode.h 1 addition, 15 deletionsLArCalorimeter/LArGeoModel/LArHV/LArHV/EMECHVElectrode.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECHVManager.h 31 additions, 10 deletionsLArCalorimeter/LArGeoModel/LArHV/LArHV/EMECHVManager.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVManager.h 31 additions, 10 deletions...rimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVManager.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVModule.h 1 addition, 12 deletions...orimeter/LArGeoModel/LArHV/LArHV/EMECPresamplerHVModule.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/FCALHVLine.h 1 addition, 10 deletionsLArCalorimeter/LArGeoModel/LArHV/LArHV/FCALHVLine.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/FCALHVManager.h 32 additions, 11 deletionsLArCalorimeter/LArGeoModel/LArHV/LArHV/FCALHVManager.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/HECHVManager.h 31 additions, 10 deletionsLArCalorimeter/LArGeoModel/LArHV/LArHV/HECHVManager.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/HECHVSubgap.h 1 addition, 10 deletionsLArCalorimeter/LArGeoModel/LArHV/LArHV/HECHVSubgap.h
- LArCalorimeter/LArGeoModel/LArHV/LArHV/LArHVManager.h 1 addition, 2 deletionsLArCalorimeter/LArGeoModel/LArHV/LArHV/LArHVManager.h
- LArCalorimeter/LArGeoModel/LArHV/src/EMBHVElectrode.cxx 2 additions, 30 deletionsLArCalorimeter/LArGeoModel/LArHV/src/EMBHVElectrode.cxx
- LArCalorimeter/LArGeoModel/LArHV/src/EMBHVManager.cxx 187 additions, 124 deletionsLArCalorimeter/LArGeoModel/LArHV/src/EMBHVManager.cxx
- LArCalorimeter/LArGeoModel/LArHV/src/EMBHVPayload.h 3 additions, 4 deletionsLArCalorimeter/LArGeoModel/LArHV/src/EMBHVPayload.h
- LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVManager.cxx 176 additions, 110 deletions...orimeter/LArGeoModel/LArHV/src/EMBPresamplerHVManager.cxx
- LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVModule.cxx 2 additions, 30 deletions...lorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVModule.cxx
- LArCalorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVPayload.h 3 additions, 4 deletions...alorimeter/LArGeoModel/LArHV/src/EMBPresamplerHVPayload.h
Loading
Please register or sign in to comment