ATLAS Offline Software
AuxiliaryMeasurementHandler.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
10 
11 
12 #include <format>
13 #include <functional>
15 
16 #define RECORD_CONTAINER(HANDLE, AUXCONTAINER) \
17  if (!HANDLE.record(std::make_unique<ContType_t>(), \
18  std::make_unique<AUXCONTAINER>()).isSuccess()){ \
19  m_parent->m_msg<<MSG::FATAL<<"Failed to record " \
20  <<HANDLE.fullKey()<<endmsg; \
21  return StatusCode::FAILURE; \
22  }
23 
24 
25 namespace ActsTrk{
27  unsigned counter{1};
28  for (auto& initMe : {&m_writeKey1D, &m_writeKey2D, &m_writeKey3D}){
29  (*initMe) = std::format("{:}AuxiliaryMeasContainer{:}D", preFix, counter++);
30  if (!initMe->initialize()) {
31  m_msg<<MSG::FATAL<<"Failed to initialize "<<(*initMe).fullKey()<<endmsg;
32  return StatusCode::FAILURE;
33  }
34  }
35  return StatusCode::SUCCESS;
36  }
37 
40  xAOD::TrackSurfaceContainer& surfaceBackend):
41  m_ctx{ctx},
42  m_parent{parent},
43  m_surfaceContainer{surfaceBackend}{}
48  return StatusCode::SUCCESS;
49  }
51  AuxiliaryMeasurementHandler::makeHandle(const EventContext& ctx,
52  xAOD::TrackSurfaceContainer& surfaceBackend) const {
53  MeasurementProvider newHandle{ctx, this, surfaceBackend};
54  if (!newHandle.setupContainers()) {
55  THROW_EXCEPTION("Failed to setup the auxillary handle");
56  }
57  return newHandle;
58  }
59 }
60 #undef RECORD_CONTAINER
ActsTrk::AuxiliaryMeasurementHandler::makeHandle
MeasurementProvider makeHandle(const EventContext &ctx, xAOD::TrackSurfaceContainer &surfaceBackend) const
Creates a new MeasurementProvider and triggers the write of the container backend to StoreGate.
Definition: AuxiliaryMeasurementHandler.cxx:51
vtune_athena.format
format
Definition: vtune_athena.py:14
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:18
ActsTrk::AuxiliaryMeasurementHandler::m_writeKey2D
Key_t m_writeKey2D
Definition: AuxiliaryMeasurementHandler.h:98
RECORD_CONTAINER
#define RECORD_CONTAINER(HANDLE, AUXCONTAINER)
Definition: AuxiliaryMeasurementHandler.cxx:16
ActsTrk::AuxiliaryMeasurementHandler::initialize
StatusCode initialize(const std::string &preFix)
Initialize the write handle keys.
Definition: AuxiliaryMeasurementHandler.cxx:26
ActsTrk::AuxiliaryMeasurementHandler::m_writeKey1D
Key_t m_writeKey1D
Definition: AuxiliaryMeasurementHandler.h:97
ActsTrk::AuxiliaryMeasurementHandler
Utility class to handle the creation of the Auxiliary measurement used in an Acts track fit This clas...
Definition: AuxiliaryMeasurementHandler.h:21
xAOD::AuxiliaryMeasurementAuxContainer2D_v1
Definition: AuxiliaryMeasurementAuxContainer2D_v1.h:22
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ActsTrk::AuxiliaryMeasurementHandler::MeasurementProvider::setupContainers
StatusCode setupContainers()
Setup method to record the Auxiliary measurement containers into StoreGate.
Definition: AuxiliaryMeasurementHandler.cxx:44
ActsTrk::AuxiliaryMeasurementHandler::MeasurementProvider::MeasurementProvider
MeasurementProvider(MeasurementProvider &&other)=default
Default move constructor.
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AuxiliaryMeasurementAuxContainer2D.h
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
THROW_EXCEPTION
#define THROW_EXCEPTION(MESSAGE)
Definition: throwExcept.h:10
ActsTrk::AuxiliaryMeasurementHandler::m_writeKey3D
Key_t m_writeKey3D
Definition: AuxiliaryMeasurementHandler.h:99
AuxiliaryMeasurementAuxContainer1D.h
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MSTrackingVolumeBuilder.cxx:25
xAOD::AuxiliaryMeasurementAuxContainer3D_v1
Definition: AuxiliaryMeasurementAuxContainer3D_v1.h:22
test_pyathena.counter
counter
Definition: test_pyathena.py:15
ActsTrk::AuxiliaryMeasurementHandler::m_msg
MsgStream & m_msg
Definition: AuxiliaryMeasurementHandler.h:96
AuxiliaryMeasurementAuxContainer3D.h
ActsTrk::AuxiliaryMeasurementHandler::MeasurementProvider
Helper struct to create a new pseudo measurement.
Definition: AuxiliaryMeasurementHandler.h:34
xAOD::AuxiliaryMeasurementAuxContainer1D_v1
Definition: AuxiliaryMeasurementAuxContainer1D_v1.h:22
AuxiliaryMeasurementHandler.h
xAOD::AuxiliaryMeasurementContainer
AuxiliaryMeasurementContainer_v1 AuxiliaryMeasurementContainer
Definition: AuxiliaryMeasurementContainer.h:12