12 const std::string& name,
13 const IInterface* parent)
14 : base_class(
type, name, parent)
24 return StatusCode::SUCCESS;
32 const RawDataCollection& RDOs,
33 std::vector<ClusterCollection>& collection)
const
36 collection.emplace_back();
38 clusters.reserve(RDOs.size());
39 for (std::size_t i(0), n(RDOs.size()); i < n; ++i) {
40 const auto* rdo = RDOs[i];
42 clusters.emplace_back();
43 clusters.back().ids.push_back(rdo_id.
get_compact());
44 clusters.back().times.push_back(rdo->getTOA());
45 clusters.back().tots.push_back(rdo->getTOT());
47 return StatusCode::SUCCESS;
54 std::any& cache)
const
57 if (!auxDataCache)
throw std::bad_any_cast();
58 assert( icluster+clusters.size() <= container.size() );
59 for (std::size_t i(0); i<clusters.size(); ++i) {
61 assert(icluster+i == container[icluster+i]->
index());
65 return StatusCode::SUCCESS;
73 unsigned int icluster=xaodcluster.index();
77 assert( cluster.
tots.size() == cluster.
ids.size());
78 assert( cluster.
times.size() == cluster.
ids.size());
79 assert( cluster.
ids.size() == 1);
80 for (
size_t rdo_i = 0; rdo_i < cluster.
ids.size(); ++rdo_i) {
90 Eigen::Matrix<float, 3, 1> loc_pos(si_pos.
xPhi(), si_pos.
xEta(),cluster.
times[rdo_i]);
91 Eigen::Matrix<float, 3, 3> cov_matrix= Eigen::Matrix<float, 3, 3>::Zero();
95 cov_matrix(0,0) = xWidth * xWidth / 12;
96 cov_matrix(1,1) = yWidth * yWidth / 12;
97 float time_of_arrival_err = 0.035;
98 cov_matrix(2,2) = time_of_arrival_err * time_of_arrival_err;
114 return StatusCode::SUCCESS;
119 std::vector<ClusterCollection>& collection)
const
122 collection.emplace_back();
124 clusters.reserve(RDOs.
size());
126 for (std::size_t i(0), n(RDOs.
size()); i < n; ++i) {
127 const auto* rdo = RDOs[i];
129 clusters.emplace_back();
130 clusters.back().ids.push_back(rdo_id.
get_compact());
134 clusters.back().tots.push_back(rdo->getToT());
136 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
Define structures for fast filling of xAOD objects.
size_type size() const noexcept
Returns the number of elements in the collection.
This is a "hash" representation of an Identifier.
value_type get_compact() const
Get the compact id.
Class to hold geometrical description of an HGTD detector element.
SiCellId cellIdFromIdentifier(const Identifier &identifier) const override final
SiCellId from Identifier.
const HGTD_ModuleDesign & design() const override final
access to the local description:
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
readout or diode id -> position.
Identifier for the strip or pixel cell.
Class to represent a position in the natural frame of a silicon sensor, for Pixel and SCT For Pixel: ...
double xPhi() const
position along phi direction:
double xEta() const
position along eta direction:
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
void setMeasurement(const DetectorIDHashType idHash, MeasVector< N > locPos, MeasMatrix< N > locCov)
Sets IdentifierHash, local position and local covariance of the measurement.
void setIdentifier(const DetectorIdentType measId)
Sets the full Identifier of the measurement.
std::size_t nObjects() const
void updateEndIndex(unsigned int obj_i, unsigned int elm_i)
unsigned int getBeginIndex(unsigned int obj_i) const
void setValue(unsigned int elm_i, T &&value)
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
HGTDClusterContainer_v1 HGTDClusterContainer
Define the version of the HGTD cluster container.
HGTDCluster_v1 HGTDCluster
Define the version of the pixel cluster class.
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache< int > totList
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache< Identifier::value_type > rdoList