|
|
|||
File indexing completed on 2026-09-22 08:48:36
0001 // AUTOMATICALLY GENERATED FILE - DO NOT EDIT 0002 0003 #ifndef EDM4HEP_TrackState_H 0004 #define EDM4HEP_TrackState_H 0005 0006 #include "edm4hep/CovMatrix6f.h" 0007 #include "edm4hep/Vector3f.h" 0008 #include <cstdint> 0009 #include <edm4hep/Constants.h> 0010 #include <ostream> 0011 0012 #if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__) 0013 #include "nlohmann/json_fwd.hpp" 0014 #endif 0015 0016 namespace edm4hep { 0017 0018 /** @class TrackState 0019 * Parametrized description of a particle track 0020 * @author: 0021 */ 0022 class TrackState { 0023 public: 0024 std::int32_t 0025 location{}; ///< location of this track state, see edm4hep::TrackState::Location for the predefined values 0026 float D0{}; ///< transverse impact parameter 0027 float phi{}; ///< azimuthal angle of the track at this location (i.e. not phi0) [rad] 0028 float omega{}; 0029 float Z0{}; ///< longitudinal impact parameter 0030 float tanLambda{}; ///< lambda is the dip angle of the track in r-z 0031 float time{}; ///< time of the track at this trackstate [ns] 0032 ::edm4hep::Vector3f 0033 referencePoint{}; ///< Reference point of the track parameters, e.g. the origin at the IP, or the position of the 0034 ///< first/last hits or the entry point into the calorimeter [mm] 0035 ::edm4hep::CovMatrix6f covMatrix{}; ///< covariance matrix of the track parameters. 0036 0037 /// The predefined locations at which a TrackState can be defined 0038 /// 0039 /// NOTE: This is deliberately an *unscoped* enum with a fixed underlying type: 0040 /// - The implicit conversion to std::int32_t keeps all existing uses of 0041 /// edm4hep::TrackState::AtIP (and friends) valid, e.g. assigning to the 0042 /// location member or aggregate initialization of a TrackState. 0043 /// - cppyy picks up the enumerators of an unscoped enum directly, so 0044 /// edm4hep.TrackState.AtIP keeps working from python. 0045 /// 0046 /// It is nevertheless a distinct type, which is useful in certain cases to avoid 0047 /// confusion with plain ints. 0048 enum Location : std::int32_t { 0049 AtOther = 0, ///< any location other than the ones defined below 0050 AtIP = 1, ///< at the interaction point 0051 AtFirstHit = 2, ///< at the first hit of the track 0052 AtLastHit = 3, ///< at the last hit of the track 0053 AtCalorimeter = 4, ///< at the entry point into the calorimeter 0054 AtVertex = 5, ///< at the vertex 0055 LastLocation = AtVertex, ///< the last of the predefined locations 0056 }; 0057 0058 /// Get the covariance matrix value for the two passed parameters 0059 constexpr float getCovMatrix(edm4hep::TrackParams parI, edm4hep::TrackParams parJ) const { 0060 return covMatrix.getValue(parI, parJ); 0061 } 0062 /// Set the covariance matrix value for the two passed parameters 0063 constexpr void setCovMatrix(float value, edm4hep::TrackParams parI, edm4hep::TrackParams parJ) { 0064 covMatrix.setValue(value, parI, parJ); 0065 } 0066 }; 0067 0068 std::ostream& operator<<(std::ostream& o, const TrackState& value); 0069 0070 #if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__) 0071 void to_json(nlohmann::json& j, const TrackState& value); 0072 #endif 0073 0074 namespace v6 { 0075 using TrackState = edm4hep::TrackState; 0076 } // namespace v6 0077 0078 // Definitions for older versions 0079 namespace v5 { 0080 0081 class TrackState { 0082 public: 0083 std::int32_t location{}; ///< for use with At{Other|IP|FirstHit|LastHit|Calorimeter|Vertex}|LastLocation 0084 float D0{}; ///< transverse impact parameter 0085 float phi{}; ///< azimuthal angle of the track at this location (i.e. not phi0) [rad] 0086 float omega{}; 0087 float Z0{}; ///< longitudinal impact parameter 0088 float tanLambda{}; ///< lambda is the dip angle of the track in r-z 0089 float time{}; ///< time of the track at this trackstate [ns] 0090 ::edm4hep::Vector3f 0091 referencePoint{}; ///< Reference point of the track parameters, e.g. the origin at the IP, or the position of 0092 ///< the first/last hits or the entry point into the calorimeter [mm] 0093 ::edm4hep::CovMatrix6f covMatrix{}; ///< covariance matrix of the track parameters. 0094 }; 0095 0096 } // namespace v5 0097 namespace v4 { 0098 0099 class TrackState { 0100 public: 0101 std::int32_t location{}; ///< for use with At{Other|IP|FirstHit|LastHit|Calorimeter|Vertex}|LastLocation 0102 float D0{}; ///< transverse impact parameter 0103 float phi{}; ///< azimuthal angle of the track at this location (i.e. not phi0) [rad] 0104 float omega{}; 0105 float Z0{}; ///< longitudinal impact parameter 0106 float tanLambda{}; ///< lambda is the dip angle of the track in r-z 0107 float time{}; ///< time of the track at this trackstate [ns] 0108 ::edm4hep::Vector3f 0109 referencePoint{}; ///< Reference point of the track parameters, e.g. the origin at the IP, or the position of 0110 ///< the first/last hits or the entry point into the calorimeter [mm] 0111 ::edm4hep::CovMatrix6f covMatrix{}; ///< covariance matrix of the track parameters. 0112 }; 0113 0114 } // namespace v4 0115 namespace v3 { 0116 0117 class TrackState { 0118 public: 0119 std::int32_t location{}; ///< for use with At{Other|IP|FirstHit|LastHit|Calorimeter|Vertex}|LastLocation 0120 float D0{}; ///< transverse impact parameter 0121 float phi{}; ///< azimuthal angle of the track at this location (i.e. not phi0) [rad] 0122 float omega{}; 0123 float Z0{}; ///< longitudinal impact parameter 0124 float tanLambda{}; ///< lambda is the dip angle of the track in r-z 0125 float time{}; ///< time of the track at this trackstate [ns] 0126 ::edm4hep::Vector3f 0127 referencePoint{}; ///< Reference point of the track parameters, e.g. the origin at the IP, or the position of 0128 ///< the first/last hits or the entry point into the calorimeter [mm] 0129 ::edm4hep::CovMatrix6f covMatrix{}; ///< covariance matrix of the track parameters. 0130 }; 0131 0132 } // namespace v3 0133 namespace v2 { 0134 0135 class TrackState { 0136 public: 0137 std::int32_t location{}; ///< for use with At{Other|IP|FirstHit|LastHit|Calorimeter|Vertex}|LastLocation 0138 float D0{}; ///< transverse impact parameter 0139 float phi{}; ///< azimuthal angle 0140 float omega{}; 0141 float Z0{}; ///< longitudinal impact parameter 0142 float tanLambda{}; ///< lambda is the dip angle of the track in r-z 0143 float time{}; ///< time of the track at this trackstate [ns] 0144 ::edm4hep::Vector3f 0145 referencePoint{}; ///< Reference point of the track parameters, e.g. the origin at the IP, or the position of 0146 ///< the first/last hits or the entry point into the calorimeter [mm] 0147 ::edm4hep::CovMatrix6f covMatrix{}; ///< covariance matrix of the track parameters. 0148 }; 0149 0150 } // namespace v2 0151 0152 } // namespace edm4hep 0153 0154 #endif
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|