Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-03 08:21:05

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/Geometry/NavigationPolicyFactory.hpp"
0012 
0013 #include <memory>
0014 
0015 namespace Acts {
0016 
0017 /// Options controlling blueprint navigation policies.
0018 struct BlueprintOptions {
0019   /// Default navigation policy factory
0020   std::shared_ptr<NavigationPolicyFactory> defaultNavigationPolicyFactory{
0021       makeDefaultNavigationPolicyFactory()};
0022 
0023   /// If set, material designated on a portal face that must be merged during
0024   /// container stacking does not abort construction. Instead the offending
0025   /// material is discarded, the merged surface is tagged with a
0026   /// @ref MergedMaterialMarker, and a warning is emitted. This is lossy and
0027   /// intended as a debugging aid: the material designation should be moved to a
0028   /// face that is not merged (e.g. the enclosing container's face).
0029   bool keepGoingOnMaterialMergeFailure = false;
0030 
0031   /// Validates the blueprint options
0032   void validate() const;
0033 
0034  private:
0035   static std::unique_ptr<NavigationPolicyFactory>
0036   makeDefaultNavigationPolicyFactory();
0037 };
0038 
0039 namespace Experimental {
0040 /// @deprecated The blueprint geometry moved out of the `Acts::Experimental`
0041 ///             namespace. Use @ref Acts::BlueprintOptions instead. This alias
0042 ///             is provided for backward compatibility and will be removed.
0043 using BlueprintOptions [[deprecated(
0044     "Acts::Experimental::BlueprintOptions moved to Acts::BlueprintOptions")]] =
0045     Acts::BlueprintOptions;
0046 }  // namespace Experimental
0047 
0048 }  // namespace Acts