ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetRecTools
TRT_DriftCircleOnTrackTool
src
TRT_DriftCircleOnTrackNoDriftTimeTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// Implementation file for class TRT_DriftCircleOnTrackNoDriftTimeTool
8
// (c) ATLAS Detector software
10
// AlgTool used for TRT_DriftCircleOnTrack object production
12
// Version 1.0 21/04/2004 I.Gavrilenko
14
15
#include "
TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackNoDriftTimeTool.h
"
16
#include "
TrkEventPrimitives/LocalParameters.h
"
17
18
19
21
// Constructor
23
24
InDet::TRT_DriftCircleOnTrackNoDriftTimeTool::TRT_DriftCircleOnTrackNoDriftTimeTool
25
(
const
std::string& ty,
const
std::string& na,
const
IInterface* pa)
26
:
AthAlgTool
(ty,na,pa)
27
{
28
declareInterface<IRIO_OnTrackCreator>(
this
);
29
}
30
32
// Destructor
34
35
InDet::TRT_DriftCircleOnTrackNoDriftTimeTool::~TRT_DriftCircleOnTrackNoDriftTimeTool
()=
default
;
36
38
// Initialisation
40
41
StatusCode
InDet::TRT_DriftCircleOnTrackNoDriftTimeTool::initialize
()
42
{
43
StatusCode
sc
= AlgTool::initialize();
return
sc
;
44
}
45
47
// Finalize
49
50
StatusCode
InDet::TRT_DriftCircleOnTrackNoDriftTimeTool::finalize
()
51
{
52
StatusCode
sc
= AlgTool::finalize();
return
sc
;
53
}
54
56
// Trk::TRT_DriftCircleOnTrack production
58
59
InDet::TRT_DriftCircleOnTrack
*
InDet::TRT_DriftCircleOnTrackNoDriftTimeTool::correct
60
(
const
Trk::PrepRawData
& rio,
const
Trk::TrackParameters
& TP,
const
EventContext&
/*ctx*/
)
const
61
{
62
const
InDet::TRT_DriftCircle
* DC =
dynamic_cast<
const
InDet::TRT_DriftCircle
*
>
(&rio);
63
if
(!DC)
return
nullptr
;
64
65
// Straw identification
66
//
67
const
InDetDD::TRT_BaseElement
* pE = DC->
detectorElement
();
if
(!pE)
return
nullptr
;
68
69
// Identifier iD = DC->identify();
70
// IdentifierHash iH = trt_id->straw_layer_hash(trt_id->layer_id(iD));
71
IdentifierHash
iH = pE->
identifyHash
();
72
73
74
// Global direction of the track parameters
75
//
76
const
Amg::VectorX
&
P
= TP.parameters();
77
double
se = sin(
P
[3]);
78
Amg::Vector3D
dir(cos(
P
[2])*se,sin(
P
[2])*se,cos(
P
[3]));
79
80
double
predictedLocZ=
P
[1];
81
82
83
// only create objects within the active area
84
//
85
double
sl = pE->
strawLength
()*.5;
86
87
if
(predictedLocZ > sl) predictedLocZ = sl;
88
else
if
(predictedLocZ <-sl) predictedLocZ =-sl;
89
90
// TRT_DriftCircleOnTrack production
91
//
92
Trk::DefinedParameter
radius(0.,
Trk::locX
);
93
Trk::LocalParameters
lp(radius);
94
Amg::MatrixX
cov(1,1);
95
cov(0,0)=1.33333;
96
return
new
InDet::TRT_DriftCircleOnTrack
(DC, std::move(lp), std::move(cov),
97
iH, predictedLocZ, dir,
98
Trk::NODRIFTTIME
);
99
}
100
P
static Double_t P(Double_t *tt, Double_t *par)
Definition
LArPhysWaveHECTool.cxx:280
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
LocalParameters.h
TRT_DriftCircleOnTrackNoDriftTimeTool.h
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
IdentifierHash
This is a "hash" representation of an Identifier.
Definition
IdentifierHash.h:25
InDetDD::TRT_BaseElement
Virtual base class of TRT readout elements.
Definition
TRT_BaseElement.h:56
InDetDD::TRT_BaseElement::strawLength
virtual const double & strawLength() const =0
Active straw length.
InDetDD::TRT_BaseElement::identifyHash
virtual IdentifierHash identifyHash() const override final
identifier hash
InDet::TRT_DriftCircleOnTrackNoDriftTimeTool::correct
virtual InDet::TRT_DriftCircleOnTrack * correct(const Trk::PrepRawData &, const Trk::TrackParameters &, const EventContext &) const override
abstract base method for the creation of RIO_OnTrack it takes a RIO (PrepRawData) and the given Track...
Definition
TRT_DriftCircleOnTrackNoDriftTimeTool.cxx:60
InDet::TRT_DriftCircleOnTrackNoDriftTimeTool::finalize
virtual StatusCode finalize() override
Definition
TRT_DriftCircleOnTrackNoDriftTimeTool.cxx:50
InDet::TRT_DriftCircleOnTrackNoDriftTimeTool::TRT_DriftCircleOnTrackNoDriftTimeTool
TRT_DriftCircleOnTrackNoDriftTimeTool(const std::string &, const std::string &, const IInterface *)
Definition
TRT_DriftCircleOnTrackNoDriftTimeTool.cxx:25
InDet::TRT_DriftCircleOnTrackNoDriftTimeTool::initialize
virtual StatusCode initialize() override
Definition
TRT_DriftCircleOnTrackNoDriftTimeTool.cxx:41
InDet::TRT_DriftCircleOnTrackNoDriftTimeTool::~TRT_DriftCircleOnTrackNoDriftTimeTool
virtual ~TRT_DriftCircleOnTrackNoDriftTimeTool()
InDet::TRT_DriftCircleOnTrack
Represents 'corrected' measurements from the TRT (for example, corrected for wire sag).
Definition
TRT_DriftCircleOnTrack.h:53
InDet::TRT_DriftCircle
Definition
TRT_DriftCircle.h:32
InDet::TRT_DriftCircle::detectorElement
virtual const InDetDD::TRT_BaseElement * detectorElement() const override final
return the detector element corresponding to this PRD
Trk::LocalParameters
Definition
LocalParameters.h:100
Trk::PrepRawData
Definition
PrepRawData.h:62
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition
EventPrimitives.h:27
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Amg::VectorX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Definition
EventPrimitives.h:30
Trk::NODRIFTTIME
@ NODRIFTTIME
drift time was not used - drift radius is 0.
Definition
DriftCircleStatus.h:24
Trk::locX
@ locX
Definition
ParamDefs.h:37
Trk::DefinedParameter
std::pair< double, ParamDefs > DefinedParameter
Typedef to of a std::pair<double, ParamDefs> to identify a passed-through double as a specific type o...
Definition
DefinedParameter.h:27
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition
Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
Generated on
for ATLAS Offline Software by
1.17.0