Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-12 07:52:17

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 #include "ActsExamples/GenericDetector/GenericDetectorElement.hpp"
0010 
0011 #include "Acts/Surfaces/DiscSurface.hpp"
0012 #include "Acts/Surfaces/PlaneSurface.hpp"
0013 
0014 #include <utility>
0015 
0016 namespace ActsExamples {
0017 
0018 GenericDetectorElement::GenericDetectorElement(
0019     const Identifier identifier, const Acts::Transform3& transform,
0020     std::shared_ptr<const Acts::PlanarBounds> pBounds, double thickness,
0021     std::shared_ptr<const Acts::ISurfaceMaterial> material)
0022     : Acts::DetectorElementBase(),
0023       m_elementIdentifier(identifier),
0024       m_elementTransform(transform),
0025       m_elementSurface(
0026           Acts::Surface::makeShared<Acts::PlaneSurface>(pBounds, *this)),
0027       m_elementThickness(thickness),
0028       m_elementPlanarBounds(std::move(pBounds)),
0029       m_elementDiscBounds(nullptr) {
0030   m_elementSurface->assignSurfaceMaterial(std::move(material));
0031 }
0032 
0033 GenericDetectorElement::GenericDetectorElement(
0034     const Identifier identifier, const Acts::Transform3& transform,
0035     std::shared_ptr<const Acts::DiscBounds> dBounds, double thickness,
0036     std::shared_ptr<const Acts::ISurfaceMaterial> material)
0037     : Acts::DetectorElementBase(),
0038       m_elementIdentifier(identifier),
0039       m_elementTransform(transform),
0040       m_elementSurface(
0041           Acts::Surface::makeShared<Acts::DiscSurface>(dBounds, *this)),
0042       m_elementThickness(thickness),
0043       m_elementPlanarBounds(nullptr),
0044       m_elementDiscBounds(std::move(dBounds)) {
0045   m_elementSurface->assignSurfaceMaterial(std::move(material));
0046 }
0047 
0048 const Acts::Transform3& GenericDetectorElement::transform(
0049     const Acts::GeometryContext& /*gctx*/) const {
0050   return m_elementTransform;
0051 }
0052 
0053 const Acts::Transform3& GenericDetectorElement::nominalTransform() const {
0054   return m_elementTransform;
0055 }
0056 
0057 const Acts::Surface& GenericDetectorElement::surface() const {
0058   return *m_elementSurface;
0059 }
0060 
0061 Acts::Surface& GenericDetectorElement::surface() {
0062   return *m_elementSurface;
0063 }
0064 
0065 double GenericDetectorElement::thickness() const {
0066   return m_elementThickness;
0067 }
0068 
0069 GenericDetectorElement::Identifier GenericDetectorElement::identifier() const {
0070   return m_elementIdentifier;
0071 }
0072 
0073 }  // namespace ActsExamples