3#ifndef EDM4EIC_Trajectory_H
4#define EDM4EIC_Trajectory_H
10#include "podio/RelationRange.h"
14#include "podio/utilities/MaybeSharedPtr.h"
19#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
20#include "nlohmann/json_fwd.hpp"
26class MutableTrackSeed;
32class MutableTrajectory;
33class TrajectoryCollection;
34class TrajectoryCollectionData;
55 Trajectory(std::uint32_t type, std::uint32_t nStates, std::uint32_t nMeasurements, std::uint32_t nOutliers, std::uint32_t nHoles, std::uint32_t nSharedHits);
129 void unlink() { m_obj = podio::utils::MaybeSharedPtr<TrajectoryObj>{
nullptr}; }
146 swap(a.m_obj, b.m_obj);
151 explicit Trajectory(podio::utils::MaybeSharedPtr<TrajectoryObj> obj);
154 podio::utils::MaybeSharedPtr<TrajectoryObj> m_obj{
nullptr};
157std::ostream&
operator<<(std::ostream& o,
const Trajectory& value);
159#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
160void to_json(nlohmann::json& j,
const Trajectory& value);
Definition Measurement2D.h:36
Definition MutableTrajectory.h:38
Definition TrackParameters.h:33
Definition TrackSeed.h:39
Definition TrajectoryCollectionData.h:33
Definition TrajectoryCollection.h:92
Definition TrajectoryCollection.h:37
Definition Trajectory.h:40
MutableTrajectory clone(bool cloneRelations=true) const
Definition Trajectory.cc:39
Trajectory & operator=(Trajectory other)
copy-assignment operator
Definition Trajectory.cc:34
static Trajectory makeEmpty()
Definition Trajectory.cc:112
bool isAvailable() const
check whether the object is actually available
Definition Trajectory.cc:295
std::vector< edm4eic::Measurement2D >::const_iterator outliers_deprecated_end() const
Definition Trajectory.cc:202
podio::RelationRange< float > getMeasurementChi2() const
Definition Trajectory.cc:251
bool operator==(const Trajectory &other) const
Definition Trajectory.h:131
podio::RelationRange< edm4eic::TrackParameters > getTrackParameters() const
Definition Trajectory.cc:155
podio::RelationRange< float > getOutlierChi2() const
Definition Trajectory.cc:283
std::vector< float >::const_iterator outlierChi2_begin() const
Definition Trajectory.cc:260
std::vector< edm4eic::TrackParameters >::const_iterator trackParameters_end() const
Definition Trajectory.cc:138
std::vector< edm4eic::TrackParameters >::const_iterator trackParameters_begin() const
Definition Trajectory.cc:132
std::uint32_t getNHoles() const
Access the Number of missing hits.
Definition Trajectory.cc:120
Trajectory()
default constructor
Definition Trajectory.cc:21
~Trajectory()=default
destructor
bool operator!=(const MutableTrajectory &other) const
Definition Trajectory.h:135
friend void swap(Trajectory &a, Trajectory &b)
Definition Trajectory.h:144
std::uint32_t getNSharedHits() const
Access the Number of shared hits with other trajectories.
Definition Trajectory.cc:121
std::uint32_t getType() const
Access the 0 (does not have good track fit), 1 (has good track fit)
Definition Trajectory.cc:116
bool operator!=(const Trajectory &other) const
Definition Trajectory.h:134
friend class TrajectoryCollection
Definition Trajectory.h:43
std::uint32_t getNMeasurements() const
Access the Number of hits used.
Definition Trajectory.cc:118
std::vector< edm4eic::Measurement2D >::const_iterator outliers_deprecated_begin() const
Definition Trajectory.cc:196
std::vector< float >::const_iterator measurementChi2_begin() const
Definition Trajectory.cc:228
std::size_t measurementChi2_size() const
Definition Trajectory.cc:240
std::uint32_t getNOutliers() const
Access the Number of hits not considered.
Definition Trajectory.cc:119
const edm4eic::TrackSeed getSeed() const
Access the Corresponding track seed.
Definition Trajectory.cc:123
Trajectory(const Trajectory &other)=default
copy constructor
podio::RelationRange< edm4eic::Measurement2D > getMeasurements_deprecated() const
Definition Trajectory.cc:187
std::vector< float >::const_iterator outlierChi2_end() const
Definition Trajectory.cc:266
std::vector< edm4eic::Measurement2D >::const_iterator measurements_deprecated_end() const
Definition Trajectory.cc:170
std::uint32_t getNStates() const
Access the Number of tracking steps.
Definition Trajectory.cc:117
void unlink()
disconnect from TrajectoryObj instance
Definition Trajectory.h:129
podio::ObjectID id() const
Definition Trajectory.h:140
friend class MutableTrajectory
Definition Trajectory.h:42
const podio::ObjectID getObjectID() const
Definition Trajectory.cc:299
std::size_t outliers_deprecated_size() const
Definition Trajectory.cc:208
bool operator<(const Trajectory &other) const
Definition Trajectory.h:138
std::vector< float >::const_iterator measurementChi2_end() const
Definition Trajectory.cc:234
std::size_t trackParameters_size() const
Definition Trajectory.cc:144
podio::RelationRange< edm4eic::Measurement2D > getOutliers_deprecated() const
Definition Trajectory.cc:219
std::vector< edm4eic::Measurement2D >::const_iterator measurements_deprecated_begin() const
Definition Trajectory.cc:164
std::size_t outlierChi2_size() const
Definition Trajectory.cc:272
std::size_t measurements_deprecated_size() const
Definition Trajectory.cc:176
Definition TrajectoryObj.h:24
Definition CalorimeterHit.cc:17
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:103