ATLAS Offline Software
PixelSpacePointFormationTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "TrkSurfaces/Surface.h"
9 
11 
12 namespace ActsTrk {
13 
15  const std::string& name,
16  const IInterface* parent)
17  : base_class(type, name, parent)
18  {}
19 
21 
22  ATH_CHECK(detStore()->retrieve(m_pixelId,"PixelID"));
23 
24  return StatusCode::SUCCESS;
25  }
26 
29  xAOD::SpacePoint& sp,
30  const InDetDD::SiDetectorElement& element) const
31  {
32  // this is the width expressed in mm
33  float width = cluster.widthInEta();
34 
35  // using width to scale the cluster covariance for space points
36  float covTerm = width*width*s_oneOverTwelve;
37  auto localCov = cluster.localCovariance<2>();
38  if( covTerm < localCov(1, 1) )
39  covTerm = localCov(1, 1);
40 
41  // use xz, yz, zz terms of rotation matrix to scale the covariance term
42  const Amg::Transform3D &Tp = element.surface().transform();
43  float cov_z = 6.*covTerm*static_cast<float>(Tp(0, 2)*Tp(0, 2)+Tp(1, 2)*Tp(1, 2));
44  float cov_r = 6.*covTerm*static_cast<float>(Tp(2, 2)*Tp(2, 2));
45 
46  if (m_useMaxVariance) {
47  cov_z = std::min(cov_z, m_maxVarianceZ.value());
48  cov_r = std::min(cov_r, m_maxVarianceR.value());
49  }
50 
51  sp.setSpacePoint(cluster.identifierHash(),
52  cluster.globalPosition(),
53  cov_r,
54  cov_z,
55  std::vector< const xAOD::UncalibratedMeasurement* >({&cluster}));
56 
57  return StatusCode::SUCCESS;
58  }
59 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
PixelID.h
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
xAOD::UncalibratedMeasurement_v1::identifierHash
DetectorIDHashType identifierHash() const
Returns the IdentifierHash of the measurement (corresponds to the detector element IdentifierHash)
ActsTrk::PixelSpacePointFormationTool::s_oneOverTwelve
static constexpr double s_oneOverTwelve
Definition: PixelSpacePointFormationTool.h:65
ActsTrk::PixelSpacePointFormationTool::m_pixelId
const PixelID * m_pixelId
Definition: PixelSpacePointFormationTool.h:49
xAOD::PixelCluster_v1::widthInEta
float widthInEta() const
Returns the width of the cluster in phi (x) and eta (y) directions, respectively.
ActsTrk::PixelSpacePointFormationTool::initialize
virtual StatusCode initialize() override
Definition: PixelSpacePointFormationTool.cxx:20
Surface.h
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
InDetDD::SolidStateDetectorElementBase::surface
Trk::Surface & surface()
Element Surface.
xAOD::SpacePoint_v1
Definition: SpacePoint_v1.h:29
ActsTrk::PixelSpacePointFormationTool::producePixelSpacePoint
virtual StatusCode producePixelSpacePoint(const xAOD::PixelCluster &cluster, xAOD::SpacePoint &sp, const InDetDD::SiDetectorElement &element) const override
Definition: PixelSpacePointFormationTool.cxx:28
ActsTrk::PixelSpacePointFormationTool::PixelSpacePointFormationTool
PixelSpacePointFormationTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: PixelSpacePointFormationTool.cxx:14
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
ActsTrk::PixelSpacePointFormationTool::m_useMaxVariance
Gaudi::Property< bool > m_useMaxVariance
Whether to use maximum variance for space point covariance If true, the covariance terms will be capp...
Definition: PixelSpacePointFormationTool.h:55
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAOD::SpacePoint_v1::setSpacePoint
void setSpacePoint(DetectorIDHashType idHash, const Eigen::Matrix< float, 3, 1 > &globPos, float cov_r, float cov_z, std::vector< const xAOD::UncalibratedMeasurement * > &&measurementIndexes)
Definition: SpacePoint_v1.cxx:123
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
UncalibratedMeasurementContainer.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
xAOD::UncalibratedMeasurement_v1::localCovariance
ConstMatrixMap< N > localCovariance() const
Returns the local covariance of the measurement.
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
xAOD::PixelCluster_v1::globalPosition
ConstVectorMap< 3 > globalPosition() const
Returns the global position of the pixel cluster.
Definition: PixelCluster_v1.cxx:15
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
ActsTrk::PixelSpacePointFormationTool::m_maxVarianceR
Gaudi::Property< float > m_maxVarianceR
Maximum variance for the r component of the space point covariance.
Definition: PixelSpacePointFormationTool.h:61
xAOD::PixelCluster_v1
Definition: PixelCluster_v1.h:17
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
PixelModuleDesign.h
PixelSpacePointFormationTool.h
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MSTrackingVolumeBuilder.cxx:24
Trk::Surface::transform
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
ActsTrk::PixelSpacePointFormationTool::m_maxVarianceZ
Gaudi::Property< float > m_maxVarianceZ
Maximum variance for the z component of the space point covariance.
Definition: PixelSpacePointFormationTool.h:58