EDM4eic
EIC data model
Loading...
Searching...
No Matches
TrackParameters.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EDM4EIC_TrackParameters_H
4#define EDM4EIC_TrackParameters_H
5
7
8#include "edm4eic/Cov6f.h"
9#include "edm4hep/Vector2f.h"
10#include <cstdint>
11
12#include "podio/utilities/MaybeSharedPtr.h"
13
14#include <ostream>
15#include <cstddef>
16
17#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
18#include "nlohmann/json_fwd.hpp"
19#endif
20
21
22
23namespace edm4eic {
24
25class MutableTrackParameters;
26class TrackParametersCollection;
27class TrackParametersCollectionData;
28
29/** @class TrackParameters
30 * ACTS Bound Track parameters
31 * @author: W. Armstrong, S. Joosten, J. Osborn
32 */
34
39
40public:
43
44 /// default constructor
46
47 /// Constructor initializing all members
48 TrackParameters(std::int32_t type, std::uint64_t surface, edm4hep::Vector2f loc, float theta, float phi, float qOverP, float time, std::int32_t pdg, edm4eic::Cov6f covariance);
49
50 /// copy constructor
51 TrackParameters(const TrackParameters& other) = default;
52
53 /// copy-assignment operator
55
56 /// create a mutable deep-copy of the object with identical relations
58
59 /// destructor
60 ~TrackParameters() = default;
61
62
64
65public:
66
67 /// Access the Type of track parameters (-1/seed, 0/head, ...)
68 std::int32_t getType() const;
69
70 /// Access the Surface for bound parameters (geometryID)
71 std::uint64_t getSurface() const;
72
73 /// Access the 2D location on surface
74 const edm4hep::Vector2f& getLoc() const;
75
76 /// Access the Track polar angle [rad]
77 float getTheta() const;
78
79 /// Access the Track azimuthal angle [rad]
80 float getPhi() const;
81
82 /// Access the [e/GeV]
83 float getQOverP() const;
84
85 /// Access the Track time [ns]
86 float getTime() const;
87
88 /// Access the pdg pid for these parameters
89 std::int32_t getPdg() const;
90
91 /// Access the Full covariance in basis [l0,l1,theta,phi,q/p,t]
92 const edm4eic::Cov6f& getCovariance() const;
93
94
95
96
97
98 /// check whether the object is actually available
99 bool isAvailable() const;
100 /// disconnect from TrackParametersObj instance
101 void unlink() { m_obj = podio::utils::MaybeSharedPtr<TrackParametersObj>{nullptr}; }
102
103 bool operator==(const TrackParameters& other) const { return m_obj == other.m_obj; }
104 bool operator==(const MutableTrackParameters& other) const;
105
106 // less comparison operator, so that objects can be e.g. stored in sets.
107 bool operator<(const TrackParameters& other) const { return m_obj < other.m_obj; }
108
109 podio::ObjectID id() const { return getObjectID(); }
110
111 const podio::ObjectID getObjectID() const;
112
114 using std::swap;
115 swap(a.m_obj, b.m_obj); // swap out the internal pointers
116 }
117
118private:
119 /// constructor from existing TrackParametersObj
120 explicit TrackParameters(podio::utils::MaybeSharedPtr<TrackParametersObj> obj);
122
123 podio::utils::MaybeSharedPtr<TrackParametersObj> m_obj{nullptr};
124};
125
126std::ostream& operator<<(std::ostream& o, const TrackParameters& value);
127
128#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
129void to_json(nlohmann::json& j, const TrackParameters& value);
130#endif
131
132
133} // namespace edm4eic
134
135
136#endif
Definition Cov6f.h:19
Definition MutableTrackParameters.h:32
Definition TrackParametersCollectionData.h:30
Definition TrackParametersCollection.h:95
Definition TrackParametersCollection.h:40
Definition TrackParameters.h:33
friend void swap(TrackParameters &a, TrackParameters &b)
Definition TrackParameters.h:113
float getPhi() const
Access the Track azimuthal angle [rad].
Definition TrackParameters.cc:58
std::int32_t getPdg() const
Access the pdg pid for these parameters.
Definition TrackParameters.cc:61
bool operator==(const TrackParameters &other) const
Definition TrackParameters.h:103
bool operator<(const TrackParameters &other) const
Definition TrackParameters.h:107
static TrackParameters makeEmpty()
Definition TrackParameters.cc:50
float getQOverP() const
Access the [e/GeV].
Definition TrackParameters.cc:59
const edm4hep::Vector2f & getLoc() const
Access the 2D location on surface.
Definition TrackParameters.cc:56
TrackParameters & operator=(TrackParameters other)
copy-assignment operator
Definition TrackParameters.cc:37
TrackParameters()
default constructor
Definition TrackParameters.cc:21
const podio::ObjectID getObjectID() const
Definition TrackParameters.cc:76
const edm4eic::Cov6f & getCovariance() const
Access the Full covariance in basis [l0,l1,theta,phi,q/p,t].
Definition TrackParameters.cc:62
~TrackParameters()=default
destructor
std::uint64_t getSurface() const
Access the Surface for bound parameters (geometryID)
Definition TrackParameters.cc:55
bool isAvailable() const
check whether the object is actually available
Definition TrackParameters.cc:69
TrackParameters(const TrackParameters &other)=default
copy constructor
float getTime() const
Access the Track time [ns].
Definition TrackParameters.cc:60
void unlink()
disconnect from TrackParametersObj instance
Definition TrackParameters.h:101
float getTheta() const
Access the Track polar angle [rad].
Definition TrackParameters.cc:57
podio::ObjectID id() const
Definition TrackParameters.h:109
std::int32_t getType() const
Access the Type of track parameters (-1/seed, 0/head, ...)
Definition TrackParameters.cc:54
friend class TrackParametersCollection
Definition TrackParameters.h:36
friend class MutableTrackParameters
Definition TrackParameters.h:35
MutableTrackParameters clone() const
create a mutable deep-copy of the object with identical relations
Definition TrackParameters.cc:42
Definition TrackParametersObj.h:17
Definition CalorimeterHit.cc:18
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:97