ATLAS Offline Software
Loading...
Searching...
No Matches
SpacePoint_v1.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef XAODINDETMEASUREMENT_VERSION_SPACEPOINT_V1_H
6#define XAODINDETMEASUREMENT_VERSION_SPACEPOINT_V1_H
7
9#include "Identifier/Identifier.h"
13
14#include <array>
15
16namespace xAOD {
23 struct ArrayFloat3 {
24 float* data() { return &values[0]; }
25 const float* data() const { return &values[0]; }
26 float values[3];
27 };
28
30 public:
31 using ConstVectorMap = Eigen::Map<const Eigen::Matrix<float, 3, 1>>;
32 using VectorMap = Eigen::Map<Eigen::Matrix<float, 3, 1>>;
33
36
38 const std::vector<DetectorIDHashType>& elementIdList() const;
39
43
44 // radius
45 float radius() const;
46
48 float varianceR() const;
49 float varianceZ() const;
50
52 const std::vector< const xAOD::UncalibratedMeasurement* >& measurements() const;
53
55 float topHalfStripLength() const;
56 float bottomHalfStripLength() const;
57
62
67
68 float x() const;
69 float y() const;
70 float z() const;
71
72 // Needed for compliance with the external spacepoint contract
73 // See https://github.com/acts-project/acts/pull/2829
74 std::optional<float> t() const { return std::nullopt; }
75
77
80
82 void setElementIdList(std::vector<DetectorIDHashType>&& idHash);
83
85 void setRadius(float);
86
88 void setVarianceR(float);
89 void setVarianceZ(float);
90
92 void setMeasurements(std::vector< const xAOD::UncalibratedMeasurement* > && value );
93
96
98
100 const Eigen::Matrix<float,3,1>& globPos,
101 float cov_r, float cov_z,
102 std::vector< const xAOD::UncalibratedMeasurement* >&& measurementIndexes);
103
104 void setSpacePoint(std::vector<DetectorIDHashType>&& idHashes,
105 const Eigen::Matrix<float,3,1>& globPos,
106 float cov_r, float cov_z,
107 std::vector< const xAOD::UncalibratedMeasurement* >&& measurementIndexes,
108 float topHalfStripLength,
110 const Eigen::Matrix<float,3,1>& topStripDirection,
111 const Eigen::Matrix<float,3,1>& bottomStripDirection,
112 const Eigen::Matrix<float,3,1>& stripCenterDistance,
113 const Eigen::Matrix<float,3,1>& topStripCenter);
114 };
115
116}
117
118#endif
Base class for elements of a container that can have aux data.
Base class for elements of a container that can have aux data.
Definition AuxElement.h:483
void setTopHalfStripLength(float)
ConstVectorMap stripCenterDistance() const
void setMeasurements(std::vector< const xAOD::UncalibratedMeasurement * > &&value)
Sets the index of the measurements.
float varianceZ() const
float bottomHalfStripLength() const
const std::vector< DetectorIDHashType > & elementIdList() const
Returns the IdentifierHash of the spacepoint (corresponds to the detector element IdentifierHash)
float varianceR() const
Returns the variances.
float z() const
void setVarianceZ(float)
void setSpacePoint(DetectorIDHashType idHash, const Eigen::Matrix< float, 3, 1 > &globPos, float cov_r, float cov_z, std::vector< const xAOD::UncalibratedMeasurement * > &&measurementIndexes)
ConstVectorMap bottomStripDirection() const
std::optional< float > t() const
ConstVectorMap topStripCenter() const
const std::vector< const xAOD::UncalibratedMeasurement * > & measurements() const
Returns the index of the measurements.
void setBottomHalfStripLength(float)
Eigen::Map< Eigen::Matrix< float, 3, 1 > > VectorMap
Eigen::Map< const Eigen::Matrix< float, 3, 1 > > ConstVectorMap
void setRadius(float)
Set the radius.
float y() const
void setElementIdList(std::vector< DetectorIDHashType > &&idHash)
Sets the IdentifierHash of the measurement (corresponds to the detector element IdentifierHash)
void setVarianceR(float)
Sets the variances.
ConstVectorMap globalPosition() const
Returns the global position of the pixel cluster.
float topHalfStripLength() const
Return details.
float x() const
ConstVectorMap topStripDirection() const
float radius() const
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
unsigned int DetectorIDHashType
@ detector ID element hash
A struct mimicking std::array<float ,3> this structure is a temporary solution for our dynamic variab...
const float * data() const