ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkTools
TrkRIO_OnTrackCreator
src
RIO_OnTrackCreator.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
// RIO_OnTrackCreator.cxx
7
// AlgTool for adapting a RIO to a track candidate. It
8
// automatically selects the corresponding subdet correction.
10
// (c) ATLAS Detector software
12
// 2004 - now: Wolfgang Liebig <http://consult.cern.ch/xwho/people/54608>
14
15
// --- the base class
16
#include "
TrkRIO_OnTrackCreator/RIO_OnTrackCreator.h
"
17
#include "
GeoPrimitives/GeoPrimitivesToStringConverter.h
"
18
#include "
TrkPrepRawData/PrepRawData.h
"
19
#include "
TrkRIO_OnTrack/RIO_OnTrack.h
"
20
// --- Gaudi stuff
21
#include "GaudiKernel/TypeNameString.h"
22
#include "
AtlasDetDescr/AtlasDetectorID.h
"
23
#include "Identifier/Identifier.h"
24
25
// destructor
26
Trk::RIO_OnTrackCreator::~RIO_OnTrackCreator
() =
default
;
27
28
// initialise
29
StatusCode
Trk::RIO_OnTrackCreator::initialize
() {
30
31
if
(
m_mode
==
"all"
) {
32
m_enumMode
=
Mode::all
;
33
}
else
if
(
m_mode
==
"indet"
) {
34
m_enumMode
=
Mode::indet
;
35
}
else
if
(
m_mode
==
"muon"
) {
36
m_enumMode
=
Mode::muon
;
37
}
else
{
38
m_enumMode
=
Mode::invalid
;
39
}
40
41
if
(
m_enumMode
==
Mode::invalid
) {
42
ATH_MSG_FATAL
(
"Mode is set to unknown value "
<<
m_mode
);
43
return
StatusCode::FAILURE;
44
}
45
46
ATH_MSG_INFO
(
"Mode is set to :"
<<
m_mode
);
47
const
bool
doId =
m_enumMode
==
Mode::all
||
m_enumMode
==
Mode::indet
;
48
const
bool
doMuon =
m_enumMode
==
Mode::all
||
m_enumMode
==
Mode::muon
;
49
ATH_CHECK
(
m_pixClusCor
.retrieve(EnableTool{!m_pixClusCor.empty() && doId}));
50
ATH_CHECK
(
m_sctClusCor
.retrieve(EnableTool{!m_sctClusCor.empty() && doId}));
51
ATH_CHECK
(
m_trt_Cor
.retrieve(EnableTool{!m_trt_Cor.empty() && doId}));
52
53
ATH_CHECK
(
m_muonDriftCircleCor
.retrieve(EnableTool{!m_muonDriftCircleCor.empty() && doMuon}));
54
ATH_CHECK
(
m_muonClusterCor
.retrieve(EnableTool{!m_muonClusterCor.empty() && doMuon}));
55
return
StatusCode::SUCCESS;
56
}
57
58
// The sub-detector brancher algorithm
59
Trk::RIO_OnTrack
*
60
Trk::RIO_OnTrackCreator::correct
(
const
Trk::PrepRawData
& rio,
61
const
TrackParameters
& trk,
62
const
EventContext& ctx)
const
{
63
64
65
// --- print RIO
66
ATH_MSG_VERBOSE
(
"RIO ID prints as "
<<rio);
67
ATH_MSG_VERBOSE
(
"RIO.locP = "
<<
Amg::toString
(rio.
localPosition
()));
68
switch
(rio.
prdType
()) {
69
using
enum
Trk::PrepRawDataType
;
70
case
PixelCluster
:
71
if
(
m_pixClusCor
.isEnabled()) {
72
return
m_pixClusCor
->correct(rio, trk, ctx);
73
}
74
break
;
75
case
SCT_Cluster
:
76
if
(
m_sctClusCor
.isEnabled()) {
77
return
m_sctClusCor
->correct(rio, trk, ctx);
78
}
79
break
;
80
case
TRT_DriftCircle
:
81
if
(
m_trt_Cor
.isEnabled()){
82
return
m_trt_Cor
->correct(rio, trk, ctx);
83
}
84
break
;
85
case
MdtPrepData
:
86
if
(
m_muonDriftCircleCor
.isEnabled()) {
87
return
m_muonDriftCircleCor
->correct(rio, trk, ctx);
88
}
89
break
;
90
case
RpcPrepData
:
91
case
TgcPrepData
:
92
case
sTgcPrepData
:
93
case
MMPrepData
:
94
case
CscPrepData
:
95
if
(
m_muonClusterCor
.isEnabled()) {
96
return
m_muonClusterCor
->correct(rio, trk, ctx);
97
}
98
break
;
99
case
HGTD_Cluster
:
100
ATH_MSG_WARNING
(
"HGTD is not implemented yet"
);
101
break
;
102
case
CscStripPrepData
:
103
case
PlanarCluster
:
104
case
SiCluster
:
105
ATH_MSG_WARNING
(
"Cannot associate prd to a technology ROT creator "
<<rio);
106
break
;
107
}
108
ATH_MSG_WARNING
(
"No ROT creator active for PRD "
<<rio);
109
return
nullptr
;
110
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition
AthMsgStreamMacros.h:34
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition
AthMsgStreamMacros.h:28
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
AtlasDetectorID.h
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
GeoPrimitivesToStringConverter.h
PrepRawData.h
RIO_OnTrackCreator.h
RIO_OnTrack.h
CscPrepData
Class representing clusters from the CSC.
Definition
CscPrepData.h:39
CscStripPrepData
Class representing the raw data of one CSC strip (for clusters look at Muon::CscPrepData).
Definition
CscStripPrepData.h:40
HGTD_Cluster
Definition
HGTD_Cluster.h:35
Trk::PrepRawData
Definition
PrepRawData.h:62
Trk::PrepRawData::localPosition
const Amg::Vector2D & localPosition() const
return the local position reference
Trk::PrepRawData::prdType
virtual PrepRawDataType prdType() const =0
Interface method returning the prdType.
Trk::RIO_OnTrackCreator::m_enumMode
Mode m_enumMode
Definition
RIO_OnTrackCreator.h:95
Trk::RIO_OnTrackCreator::m_sctClusCor
ToolHandle< IRIO_OnTrackCreator > m_sctClusCor
Detector-specific helper tool, performing the actual calibration corrections for every InDet::SCT_Clu...
Definition
RIO_OnTrackCreator.h:75
Trk::RIO_OnTrackCreator::Mode::indet
@ indet
Definition
RIO_OnTrackCreator.h:91
Trk::RIO_OnTrackCreator::Mode::muon
@ muon
Definition
RIO_OnTrackCreator.h:92
Trk::RIO_OnTrackCreator::Mode::all
@ all
Definition
RIO_OnTrackCreator.h:90
Trk::RIO_OnTrackCreator::Mode::invalid
@ invalid
Definition
RIO_OnTrackCreator.h:93
Trk::RIO_OnTrackCreator::correct
RIO_OnTrack * correct(const PrepRawData &rio, const TrackParameters &pars, const EventContext &ctx) const override final
the master method for going from RIO to ROT.
Definition
RIO_OnTrackCreator.cxx:60
Trk::RIO_OnTrackCreator::m_trt_Cor
ToolHandle< IRIO_OnTrackCreator > m_trt_Cor
Detector-specific helper tool, performing the actual calibration corrections for every InDet::TRT::Dr...
Definition
RIO_OnTrackCreator.h:78
Trk::RIO_OnTrackCreator::m_muonClusterCor
ToolHandle< IRIO_OnTrackCreator > m_muonClusterCor
Detector-specific helper tool, performing the actual calibration corrections for the remaining muon d...
Definition
RIO_OnTrackCreator.h:85
Trk::RIO_OnTrackCreator::m_mode
Gaudi::Property< std::string > m_mode
flag: can be 'all', 'indet' or 'muon'
Definition
RIO_OnTrackCreator.h:87
Trk::RIO_OnTrackCreator::m_muonDriftCircleCor
ToolHandle< IRIO_OnTrackCreator > m_muonDriftCircleCor
Detector-specific helper tool, performing the actual calibration corrections for every Muon::MdtPrepD...
Definition
RIO_OnTrackCreator.h:81
Trk::RIO_OnTrackCreator::initialize
virtual StatusCode initialize() override
get specific ROT tools and the AtlasIdHelper
Definition
RIO_OnTrackCreator.cxx:29
Trk::RIO_OnTrackCreator::m_pixClusCor
ToolHandle< IRIO_OnTrackCreator > m_pixClusCor
Detector-specific helper tool, performing the actual calibration corrections for every InDet::PixelCl...
Definition
RIO_OnTrackCreator.h:72
Trk::RIO_OnTrackCreator::~RIO_OnTrackCreator
virtual ~RIO_OnTrackCreator()
virtual destructor
Trk::RIO_OnTrack
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition
RIO_OnTrack.h:70
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition
GeoPrimitivesToStringConverter.h:40
Trk::PrepRawDataType
PrepRawDataType
Definition
PrepRawData.h:39
Trk::PrepRawDataType::MMPrepData
@ MMPrepData
Definition
PrepRawData.h:49
Trk::PrepRawDataType::SiCluster
@ SiCluster
Definition
PrepRawData.h:40
Trk::PrepRawDataType::MdtPrepData
@ MdtPrepData
Definition
PrepRawData.h:46
Trk::PrepRawDataType::TgcPrepData
@ TgcPrepData
Definition
PrepRawData.h:51
Trk::PrepRawDataType::PixelCluster
@ PixelCluster
Definition
PrepRawData.h:41
Trk::PrepRawDataType::sTgcPrepData
@ sTgcPrepData
Definition
PrepRawData.h:52
Trk::PrepRawDataType::TRT_DriftCircle
@ TRT_DriftCircle
Definition
PrepRawData.h:43
Trk::PrepRawDataType::SCT_Cluster
@ SCT_Cluster
Definition
PrepRawData.h:42
Trk::PrepRawDataType::RpcPrepData
@ RpcPrepData
Definition
PrepRawData.h:50
Trk::PrepRawDataType::PlanarCluster
@ PlanarCluster
Definition
PrepRawData.h:45
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition
Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
Generated on
for ATLAS Offline Software by
1.17.0