Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:27:49

0001 // This file is part of the Acts project.
0002 //
0003 // Copyright (C) 2018 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 http://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 #include "Acts/Seeding/InternalSpacePoint.hpp"
0012 #include "Acts/Seeding/Seed.hpp"
0013 
0014 #include <memory>
0015 
0016 namespace Acts {
0017 template <typename SpacePoint>
0018 class InternalSeed {
0019   /////////////////////////////////////////////////////////////////////////////////
0020   // Public methods:
0021   /////////////////////////////////////////////////////////////////////////////////
0022 
0023  public:
0024   InternalSeed(InternalSpacePoint<SpacePoint>& s0,
0025                InternalSpacePoint<SpacePoint>& s1,
0026                InternalSpacePoint<SpacePoint>& s2, float z,
0027                bool qualitySeed = false);
0028   InternalSeed& operator=(const InternalSeed& seed);
0029 
0030   const std::array<InternalSpacePoint<SpacePoint>*, 3> sp;
0031   float z() const { return m_z; }
0032   bool qualitySeed() const { return m_qualitySeed; }
0033 
0034  protected:
0035   float m_z;
0036   bool m_qualitySeed;
0037 };
0038 
0039 /// @cond
0040 
0041 /////////////////////////////////////////////////////////////////////////////////
0042 // Inline methods
0043 /////////////////////////////////////////////////////////////////////////////////
0044 
0045 template <typename SpacePoint>
0046 inline InternalSeed<SpacePoint>& InternalSeed<SpacePoint>::operator=(
0047     const InternalSeed<SpacePoint>& seed) {
0048   m_z = seed.m_z;
0049   sp = seed.sp;
0050   m_qualitySeed = seed.m_qualitySeed;
0051   return (*this);
0052 }
0053 
0054 template <typename SpacePoint>
0055 inline InternalSeed<SpacePoint>::InternalSeed(
0056     InternalSpacePoint<SpacePoint>& s0, InternalSpacePoint<SpacePoint>& s1,
0057     InternalSpacePoint<SpacePoint>& s2, float z, bool qualitySeed)
0058     : sp({&s0, &s1, &s2}) {
0059   m_z = z;
0060   m_qualitySeed = qualitySeed;
0061 }
0062 
0063 /// @endcond
0064 
0065 }  // namespace Acts