Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:22:19

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 #include "Acts/EventData/SpacePointData.hpp"
0012 
0013 #include <cassert>
0014 
0015 namespace Acts {
0016 
0017 inline float SpacePointData::x(const std::size_t idx) const {
0018   assert(idx < m_x.size());
0019   return m_x[idx];
0020 }
0021 
0022 inline float SpacePointData::y(const std::size_t idx) const {
0023   assert(idx < m_y.size());
0024   return m_y[idx];
0025 }
0026 
0027 inline float SpacePointData::z(const std::size_t idx) const {
0028   assert(idx < m_z.size());
0029   return m_z[idx];
0030 }
0031 
0032 inline float SpacePointData::radius(const std::size_t idx) const {
0033   assert(idx < m_radius.size());
0034   return m_radius[idx];
0035 }
0036 
0037 inline float SpacePointData::phi(const std::size_t idx) const {
0038   assert(idx < m_phi.size());
0039   return m_phi[idx];
0040 }
0041 
0042 inline float SpacePointData::varianceZ(const std::size_t idx) const {
0043   assert(idx < m_varianceZ.size());
0044   return m_varianceZ[idx];
0045 }
0046 
0047 inline float SpacePointData::varianceR(const std::size_t idx) const {
0048   assert(idx < m_varianceR.size());
0049   return m_varianceR[idx];
0050 }
0051 
0052 inline void SpacePointData::setX(const std::size_t idx, const float value) {
0053   assert(idx < m_x.size());
0054   m_x[idx] = value;
0055 }
0056 
0057 inline void SpacePointData::setY(const std::size_t idx, const float value) {
0058   assert(idx < m_y.size());
0059   m_y[idx] = value;
0060 }
0061 
0062 inline void SpacePointData::setZ(const std::size_t idx, const float value) {
0063   assert(idx < m_z.size());
0064   m_z[idx] = value;
0065 }
0066 
0067 inline void SpacePointData::setRadius(const std::size_t idx,
0068                                       const float value) {
0069   assert(idx < m_radius.size());
0070   m_radius[idx] = value;
0071 }
0072 
0073 inline void SpacePointData::setPhi(const std::size_t idx, const float value) {
0074   assert(idx < m_phi.size());
0075   m_phi[idx] = value;
0076 }
0077 
0078 inline void SpacePointData::setVarianceZ(const std::size_t idx,
0079                                          const float value) {
0080   assert(idx < m_varianceZ.size());
0081   m_varianceZ[idx] = value;
0082 }
0083 
0084 inline void SpacePointData::setVarianceR(const std::size_t idx,
0085                                          const float value) {
0086   assert(idx < m_varianceR.size());
0087   m_varianceR[idx] = value;
0088 }
0089 
0090 inline bool SpacePointData::hasDynamicVariable() const {
0091   return !m_topStripVector.empty();
0092 }
0093 
0094 inline const Acts::Vector3& SpacePointData::topStripVector(
0095     const std::size_t idx) const {
0096   assert(idx < m_topStripVector.size());
0097   return m_topStripVector[idx];
0098 }
0099 
0100 inline const Acts::Vector3& SpacePointData::bottomStripVector(
0101     const std::size_t idx) const {
0102   assert(idx < m_bottomStripVector.size());
0103   return m_bottomStripVector[idx];
0104 }
0105 
0106 inline const Acts::Vector3& SpacePointData::stripCenterDistance(
0107     const std::size_t idx) const {
0108   assert(idx < m_stripCenterDistance.size());
0109   return m_stripCenterDistance[idx];
0110 }
0111 
0112 inline const Acts::Vector3& SpacePointData::topStripCenterPosition(
0113     const std::size_t idx) const {
0114   assert(idx < m_topStripCenterPosition.size());
0115   return m_topStripCenterPosition[idx];
0116 }
0117 
0118 inline void SpacePointData::setTopStripVector(const std::size_t idx,
0119                                               const Acts::Vector3& value) {
0120   assert(idx < m_topStripVector.size());
0121   m_topStripVector[idx] = value;
0122 }
0123 
0124 inline void SpacePointData::setBottomStripVector(const std::size_t idx,
0125                                                  const Acts::Vector3& value) {
0126   assert(idx < m_bottomStripVector.size());
0127   m_bottomStripVector[idx] = value;
0128 }
0129 
0130 inline void SpacePointData::setStripCenterDistance(const std::size_t idx,
0131                                                    const Acts::Vector3& value) {
0132   assert(idx < m_stripCenterDistance.size());
0133   m_stripCenterDistance[idx] = value;
0134 }
0135 
0136 inline void SpacePointData::setTopStripCenterPosition(
0137     const std::size_t idx, const Acts::Vector3& value) {
0138   assert(idx < m_topStripCenterPosition.size());
0139   m_topStripCenterPosition[idx] = value;
0140 }
0141 
0142 inline void SpacePointData::resize(const std::size_t n, bool resizeDynamic) {
0143   clear();
0144 
0145   m_x.resize(n, 0.f);
0146   m_y.resize(n, 0.f);
0147   m_z.resize(n, 0.f);
0148   m_radius.resize(n, 0.f);
0149   m_phi.resize(n, 0.f);
0150   m_varianceZ.resize(n, 0.f);
0151   m_varianceR.resize(n, 0.f);
0152 
0153   if (resizeDynamic) {
0154     m_topStripVector.resize(n, {0, 0, 0});
0155     m_bottomStripVector.resize(n, {0, 0, 0});
0156     m_stripCenterDistance.resize(n, {0, 0, 0});
0157     m_topStripCenterPosition.resize(n, {0, 0, 0});
0158   }
0159 }
0160 
0161 inline void SpacePointData::clear() {
0162   m_x.clear();
0163   m_y.clear();
0164   m_z.clear();
0165   m_radius.clear();
0166   m_phi.clear();
0167   m_varianceZ.clear();
0168   m_varianceR.clear();
0169   // dynamic variables
0170   m_topStripVector.clear();
0171   m_bottomStripVector.clear();
0172   m_stripCenterDistance.clear();
0173   m_topStripCenterPosition.clear();
0174 }
0175 
0176 }  // namespace Acts