Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-03-28 07:45:22

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/Definitions/Units.hpp"
0012 
0013 #include <functional>
0014 #include <limits>
0015 
0016 namespace Acts {
0017 
0018 class GeometryContext;
0019 class MagneticFieldContext;
0020 
0021 /// Common options shared by plain steppers.
0022 struct StepperPlainOptions {
0023   /// StepperPlainOptions with context
0024   /// @param gctx Geometry context
0025   /// @param mctx Magnetic field context
0026   StepperPlainOptions(const GeometryContext& gctx,
0027                       const MagneticFieldContext& mctx)
0028       : geoContext(gctx), magFieldContext(mctx) {}
0029 
0030   /// Context object for the geometry
0031   std::reference_wrapper<const GeometryContext> geoContext;
0032 
0033   /// Context object for the magnetic field
0034   std::reference_wrapper<const MagneticFieldContext> magFieldContext;
0035 
0036   /// Tolerance for the error of the integration
0037   double stepTolerance = 1e-4;
0038 
0039   /// Cut-off value for the step size
0040   double stepSizeCutOff = 0.;
0041 
0042   /// Initial step size
0043   double initialStepSize = 10 * Acts::UnitConstants::m;
0044 
0045   /// Absolute maximum step size
0046   double maxStepSize = std::numeric_limits<double>::max();
0047 
0048   /// Maximum number of Runge-Kutta steps for the stepper step call
0049   unsigned int maxRungeKuttaStepTrials = 10000;
0050 
0051   /// Options for dense material effects.
0052   struct Dense {
0053     /// Toggle between mean and mode evaluation of energy loss
0054     bool meanEnergyLoss = true;
0055 
0056     /// Boolean flag for inclusion of d(dEds)d(q/p) into energy loss
0057     bool includeGradient = true;
0058 
0059     /// Cut-off value for the momentum
0060     double momentumCutOff = 0.;
0061   };
0062 
0063   /// Options for dense material effects
0064   Dense dense;
0065 };
0066 
0067 }  // namespace Acts