Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-15 09:42:04

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 namespace Acts {
0014 
0015 inline float SpacePointData::x(const std::size_t idx) const {
0016   assert(idx < m_x.size());
0017   return m_x[idx];
0018 }
0019 
0020 inline float SpacePointData::y(const std::size_t idx) const {
0021   assert(idx < m_y.size());
0022   return m_y[idx];
0023 }
0024 
0025 inline float SpacePointData::z(const std::size_t idx) const {
0026   assert(idx < m_z.size());
0027   return m_z[idx];
0028 }
0029 
0030 inline float SpacePointData::radius(const std::size_t idx) const {
0031   assert(idx < m_radius.size());
0032   return m_radius[idx];
0033 }
0034 
0035 inline float SpacePointData::phi(const std::size_t idx) const {
0036   assert(idx < m_phi.size());
0037   return m_phi[idx];
0038 }
0039 
0040 inline float SpacePointData::varianceZ(const std::size_t idx) const {
0041   assert(idx < m_varianceZ.size());
0042   return m_varianceZ[idx];
0043 }
0044 
0045 inline float SpacePointData::varianceR(const std::size_t idx) const {
0046   assert(idx < m_varianceR.size());
0047   return m_varianceR[idx];
0048 }
0049 
0050 inline void SpacePointData::setX(const std::size_t idx, const float value) {
0051   assert(idx < m_x.size());
0052   m_x[idx] = value;
0053 }
0054 
0055 inline void SpacePointData::setY(const std::size_t idx, const float value) {
0056   assert(idx < m_y.size());
0057   m_y[idx] = value;
0058 }
0059 
0060 inline void SpacePointData::setZ(const std::size_t idx, const float value) {
0061   assert(idx < m_z.size());
0062   m_z[idx] = value;
0063 }
0064 
0065 inline void SpacePointData::setRadius(const std::size_t idx,
0066                                       const float value) {
0067   assert(idx < m_radius.size());
0068   m_radius[idx] = value;
0069 }
0070 
0071 inline void SpacePointData::setPhi(const std::size_t idx, const float value) {
0072   assert(idx < m_phi.size());
0073   m_phi[idx] = value;
0074 }
0075 
0076 inline void SpacePointData::setVarianceZ(const std::size_t idx,
0077                                          const float value) {
0078   assert(idx < m_varianceZ.size());
0079   m_varianceZ[idx] = value;
0080 }
0081 
0082 inline void SpacePointData::setVarianceR(const std::size_t idx,
0083                                          const float value) {
0084   assert(idx < m_varianceR.size());
0085   m_varianceR[idx] = value;
0086 }
0087 
0088 inline bool SpacePointData::hasDynamicVariable() const {
0089   return !m_topStripVector.empty();
0090 }
0091 
0092 inline const Acts::Vector3& SpacePointData::topStripVector(
0093     const std::size_t idx) const {
0094   assert(idx < m_topStripVector.size());
0095   return m_topStripVector[idx];
0096 }
0097 
0098 inline const Acts::Vector3& SpacePointData::bottomStripVector(
0099     const std::size_t idx) const {
0100   assert(idx < m_bottomStripVector.size());
0101   return m_bottomStripVector[idx];
0102 }
0103 
0104 inline const Acts::Vector3& SpacePointData::stripCenterDistance(
0105     const std::size_t idx) const {
0106   assert(idx < m_stripCenterDistance.size());
0107   return m_stripCenterDistance[idx];
0108 }
0109 
0110 inline const Acts::Vector3& SpacePointData::topStripCenterPosition(
0111     const std::size_t idx) const {
0112   assert(idx < m_topStripCenterPosition.size());
0113   return m_topStripCenterPosition[idx];
0114 }
0115 
0116 inline void SpacePointData::setTopStripVector(const std::size_t idx,
0117                                               const Acts::Vector3& value) {
0118   assert(idx < m_topStripVector.size());
0119   m_topStripVector[idx] = value;
0120 }
0121 
0122 inline void SpacePointData::setBottomStripVector(const std::size_t idx,
0123                                                  const Acts::Vector3& value) {
0124   assert(idx < m_bottomStripVector.size());
0125   m_bottomStripVector[idx] = value;
0126 }
0127 
0128 inline void SpacePointData::setStripCenterDistance(const std::size_t idx,
0129                                                    const Acts::Vector3& value) {
0130   assert(idx < m_stripCenterDistance.size());
0131   m_stripCenterDistance[idx] = value;
0132 }
0133 
0134 inline void SpacePointData::setTopStripCenterPosition(
0135     const std::size_t idx, const Acts::Vector3& value) {
0136   assert(idx < m_topStripCenterPosition.size());
0137   m_topStripCenterPosition[idx] = value;
0138 }
0139 
0140 inline void SpacePointData::resize(const std::size_t n, bool resizeDynamic) {
0141   clear();
0142 
0143   m_x.resize(n, 0.f);
0144   m_y.resize(n, 0.f);
0145   m_z.resize(n, 0.f);
0146   m_radius.resize(n, 0.f);
0147   m_phi.resize(n, 0.f);
0148   m_varianceZ.resize(n, 0.f);
0149   m_varianceR.resize(n, 0.f);
0150 
0151   if (resizeDynamic) {
0152     m_topStripVector.resize(n, {0, 0, 0});
0153     m_bottomStripVector.resize(n, {0, 0, 0});
0154     m_stripCenterDistance.resize(n, {0, 0, 0});
0155     m_topStripCenterPosition.resize(n, {0, 0, 0});
0156   }
0157 }
0158 
0159 inline void SpacePointData::clear() {
0160   m_x.clear();
0161   m_y.clear();
0162   m_z.clear();
0163   m_radius.clear();
0164   m_phi.clear();
0165   m_varianceZ.clear();
0166   m_varianceR.clear();
0167   // dynamic variables
0168   m_topStripVector.clear();
0169   m_bottomStripVector.clear();
0170   m_stripCenterDistance.clear();
0171   m_topStripCenterPosition.clear();
0172 }
0173 
0174 }  // namespace Acts