Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-15 09:41:59

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 /// Stream operator for MaterialUpdateStage
0026 /// @param os Output stream
0027 /// @param matUpdate MaterialUpdateStage to output
0028 /// @return Reference to output stream
0029 std::ostream& operator<<(std::ostream& os, MaterialUpdateStage matUpdate);
0030 
0031 /// @enum NoiseUpdateMode to tell how to deal with noise term in covariance
0032 /// transport
0033 /// - removeNoise: subtract noise term
0034 /// - addNoise: add noise term
0035 enum NoiseUpdateMode : int { removeNoise = -1, addNoise = 1 };
0036 
0037 /// Components of coordinate vectors.
0038 ///
0039 /// To be used to access coordinate components by named indices instead of magic
0040 /// numbers. This must be a regular `enum` and not a scoped `enum class` to
0041 /// allow implicit conversion to an integer. The enum value are thus visible
0042 /// directly in `namespace Acts`.
0043 ///
0044 /// This index enum is not user-configurable (in contrast e.g. to the track
0045 /// parameter index enums) since it must be compatible with varying
0046 /// dimensionality (2d-4d) and other access methods (`.{x,y,z}()` accessors).
0047 enum CoordinateIndices : unsigned int {
0048   // generic position-like access
0049   ePos0 = 0,
0050   ePos1 = 1,
0051   ePos2 = 2,
0052   eTime = 3,
0053   // generic momentum-like access
0054   eMom0 = ePos0,
0055   eMom1 = ePos1,
0056   eMom2 = ePos2,
0057   eEnergy = eTime,
0058   // Cartesian spatial coordinates
0059   eX = ePos0,
0060   eY = ePos1,
0061   eZ = ePos2,
0062 };
0063 
0064 }  // namespace Acts