Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:10:45

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 <iosfwd>
0012 
0013 namespace Acts {
0014 
0015 ///  This is a steering enum to tell which material update stage:
0016 /// - PreUpdate  : update on approach of a surface
0017 /// - FullUpdate : update when passing a surface
0018 /// - PostUpdate : update when leaving a surface
0019 enum class MaterialUpdateStage : int {
0020   PreUpdate = -1,
0021   FullUpdate = 0,
0022   PostUpdate = 1
0023 };
0024 
0025 std::ostream& operator<<(std::ostream& os, MaterialUpdateStage matUpdate);
0026 
0027 /// @enum NoiseUpdateMode to tell how to deal with noise term in covariance
0028 /// transport
0029 /// - removeNoise: subtract noise term
0030 /// - addNoise: add noise term
0031 enum NoiseUpdateMode : int { removeNoise = -1, addNoise = 1 };
0032 
0033 /// Components of coordinate vectors.
0034 ///
0035 /// To be used to access coordinate components by named indices instead of magic
0036 /// numbers. This must be a regular `enum` and not a scoped `enum class` to
0037 /// allow implicit conversion to an integer. The enum value are thus visible
0038 /// directly in `namespace Acts`.
0039 ///
0040 /// This index enum is not user-configurable (in contrast e.g. to the track
0041 /// parameter index enums) since it must be compatible with varying
0042 /// dimensionality (2d-4d) and other access methods (`.{x,y,z}()` accessors).
0043 enum CoordinateIndices : unsigned int {
0044   // generic position-like access
0045   ePos0 = 0,
0046   ePos1 = 1,
0047   ePos2 = 2,
0048   eTime = 3,
0049   // generic momentum-like access
0050   eMom0 = ePos0,
0051   eMom1 = ePos1,
0052   eMom2 = ePos2,
0053   eEnergy = eTime,
0054   // Cartesian spatial coordinates
0055   eX = ePos0,
0056   eY = ePos1,
0057   eZ = ePos2,
0058 };
0059 
0060 }  // namespace Acts