EICd
EIC data model
Trajectory.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EICD_Trajectory_H
4#define EICD_Trajectory_H
5
7
8#include "eicd/TrackerHit.h"
9#include "podio/RelationRange.h"
10#include <cstdint>
11#include <vector>
12#include "podio/ObjectID.h"
13#include <ostream>
14
15#ifdef PODIO_JSON_OUTPUT
16#include "nlohmann/json.hpp"
17#endif
18
19// forward declarations
20namespace eicd {
21class TrackParameters;
22class MutableTrackParameters;
23}
24
25
26namespace eicd {
27
28class MutableTrajectory;
29
30/** @class Trajectory
31 * Raw trajectory from the tracking algorithm
32 * @author: S. Joosten, S. Li
33 */
35
36 friend class MutableTrajectory;
39
40public:
41 /// default constructor
42 Trajectory();
43 Trajectory(std::uint32_t type, std::uint32_t nStates, std::uint32_t nMeasurements, std::uint32_t nOutliers, std::uint32_t nHoles, float chi2, std::uint32_t ndf, std::uint32_t nSharedHits);
44
45 /// constructor from existing TrajectoryObj
47
48 /// copy constructor
49 Trajectory(const Trajectory& other);
50
51 /// copy-assignment operator
53
54 /// create a mutable deep-copy of the object with identical relations
56
57 /// destructor
59
60
61public:
62
63 /// Access the 0 (does not have good track fit), 1 (has good track fit)
64 const std::uint32_t& getType() const;
65
66 /// Access the Number of tracking steps
67 const std::uint32_t& getNStates() const;
68
69 /// Access the Number of hits used
70 const std::uint32_t& getNMeasurements() const;
71
72 /// Access the Number of hits not considered
73 const std::uint32_t& getNOutliers() const;
74
75 /// Access the Number of missing hits
76 const std::uint32_t& getNHoles() const;
77
78 /// Access the Total chi2
79 const float& getChi2() const;
80
81 /// Access the Number of degrees of freedom
82 const std::uint32_t& getNdf() const;
83
84 /// Access the Number of shared hits with other trajectories
85 const std::uint32_t& getNSharedHits() const;
86
87
88 /// Access the Associated track parameters, if any
90
91 unsigned int measurementHits_size() const;
92 eicd::TrackerHit getMeasurementHits(unsigned int) const;
93 std::vector<eicd::TrackerHit>::const_iterator measurementHits_begin() const;
94 std::vector<eicd::TrackerHit>::const_iterator measurementHits_end() const;
95 podio::RelationRange<eicd::TrackerHit> getMeasurementHits() const;
96 unsigned int outlierHits_size() const;
97 eicd::TrackerHit getOutlierHits(unsigned int) const;
98 std::vector<eicd::TrackerHit>::const_iterator outlierHits_begin() const;
99 std::vector<eicd::TrackerHit>::const_iterator outlierHits_end() const;
100 podio::RelationRange<eicd::TrackerHit> getOutlierHits() const;
101 unsigned int measurementChi2_size() const;
102 float getMeasurementChi2(unsigned int) const;
103 std::vector<float>::const_iterator measurementChi2_begin() const;
104 std::vector<float>::const_iterator measurementChi2_end() const;
105 podio::RelationRange<float> getMeasurementChi2() const;
106 unsigned int outlierChi2_size() const;
107 float getOutlierChi2(unsigned int) const;
108 std::vector<float>::const_iterator outlierChi2_begin() const;
109 std::vector<float>::const_iterator outlierChi2_end() const;
110 podio::RelationRange<float> getOutlierChi2() const;
111
112
113 /// check whether the object is actually available
114 bool isAvailable() const;
115 /// disconnect from TrajectoryObj instance
116 void unlink() { m_obj = nullptr; }
117
118 bool operator==(const Trajectory& other) const { return m_obj == other.m_obj; }
119 bool operator==(const MutableTrajectory& other) const;
120
121 // less comparison operator, so that objects can be e.g. stored in sets.
122 bool operator<(const Trajectory& other) const { return m_obj < other.m_obj; }
123
124 unsigned int id() const { return getObjectID().collectionID * 10000000 + getObjectID().index; }
125
126 const podio::ObjectID getObjectID() const;
127
128 friend void swap(Trajectory& a, Trajectory& b) {
129 using std::swap;
130 swap(a.m_obj, b.m_obj); // swap out the internal pointers
131 }
132
133private:
134 TrajectoryObj* m_obj;
135};
136
137std::ostream& operator<<(std::ostream& o, const Trajectory& value);
138
139#ifdef PODIO_JSON_OUTPUT
140void to_json(nlohmann::json& j, const Trajectory& value);
141#endif
142
143
144} // namespace eicd
145
146
147#endif
Definition: MutableTrajectory.h:35
Definition: TrackParameters.h:34
Definition: TrackerHit.h:28
Definition: TrajectoryCollection.h:82
Definition: TrajectoryCollection.h:35
Definition: Trajectory.h:34
const std::uint32_t & getType() const
Access the 0 (does not have good track fit), 1 (has good track fit)
Definition: Trajectory.cc:58
std::vector< float >::const_iterator outlierChi2_begin() const
Definition: Trajectory.cc:172
const podio::ObjectID getObjectID() const
Definition: Trajectory.cc:214
std::vector< float >::const_iterator measurementChi2_begin() const
Definition: Trajectory.cc:140
podio::RelationRange< float > getMeasurementChi2() const
Definition: Trajectory.cc:163
const std::uint32_t & getNStates() const
Access the Number of tracking steps.
Definition: Trajectory.cc:59
bool isAvailable() const
check whether the object is actually available
Definition: Trajectory.cc:207
bool operator<(const Trajectory &other) const
Definition: Trajectory.h:122
std::vector< eicd::TrackerHit >::const_iterator measurementHits_end() const
Definition: Trajectory.cc:82
~Trajectory()
destructor
Definition: Trajectory.cc:52
podio::RelationRange< float > getOutlierChi2() const
Definition: Trajectory.cc:195
std::vector< eicd::TrackerHit >::const_iterator outlierHits_begin() const
Definition: Trajectory.cc:108
friend void swap(Trajectory &a, Trajectory &b)
Definition: Trajectory.h:128
unsigned int id() const
Definition: Trajectory.h:124
const eicd::TrackParameters getTrackParameters() const
Access the Associated track parameters, if any.
Definition: Trajectory.cc:67
Trajectory()
default constructor
Definition: Trajectory.cc:17
std::vector< float >::const_iterator outlierChi2_end() const
Definition: Trajectory.cc:178
unsigned int outlierHits_size() const
Definition: Trajectory.cc:120
std::vector< float >::const_iterator measurementChi2_end() const
Definition: Trajectory.cc:146
unsigned int outlierChi2_size() const
Definition: Trajectory.cc:184
unsigned int measurementChi2_size() const
Definition: Trajectory.cc:152
bool operator==(const Trajectory &other) const
Definition: Trajectory.h:118
podio::RelationRange< eicd::TrackerHit > getOutlierHits() const
Definition: Trajectory.cc:131
std::vector< eicd::TrackerHit >::const_iterator measurementHits_begin() const
Definition: Trajectory.cc:76
podio::RelationRange< eicd::TrackerHit > getMeasurementHits() const
Definition: Trajectory.cc:99
Trajectory & operator=(Trajectory other)
copy-assignment operator
Definition: Trajectory.cc:37
unsigned int measurementHits_size() const
Definition: Trajectory.cc:88
const std::uint32_t & getNdf() const
Access the Number of degrees of freedom.
Definition: Trajectory.cc:64
void unlink()
disconnect from TrajectoryObj instance
Definition: Trajectory.h:116
const std::uint32_t & getNMeasurements() const
Access the Number of hits used.
Definition: Trajectory.cc:60
const std::uint32_t & getNHoles() const
Access the Number of missing hits.
Definition: Trajectory.cc:62
const float & getChi2() const
Access the Total chi2.
Definition: Trajectory.cc:63
std::vector< eicd::TrackerHit >::const_iterator outlierHits_end() const
Definition: Trajectory.cc:114
const std::uint32_t & getNOutliers() const
Access the Number of hits not considered.
Definition: Trajectory.cc:61
MutableTrajectory clone() const
create a mutable deep-copy of the object with identical relations
Definition: Trajectory.cc:48
const std::uint32_t & getNSharedHits() const
Access the Number of shared hits with other trajectories.
Definition: Trajectory.cc:65
Definition: TrajectoryObj.h:23
Definition: CalorimeterHit.cc:13
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition: CalorimeterHit.cc:93