3#ifndef EDM4EIC_Trajectory_H
4#define EDM4EIC_Trajectory_H
10#include "podio/RelationRange.h"
14#include "podio/utilities/MaybeSharedPtr.h"
15#include "podio/detail/OrderKey.h"
20#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
21#include "nlohmann/json_fwd.hpp"
34OrderKey
getOrderKey(
const edm4eic::Trajectory& obj);
63 Trajectory(
const std::uint32_t type,
const std::uint32_t nStates,
const std::uint32_t nMeasurements,
const std::uint32_t nOutliers,
const std::uint32_t nHoles,
const std::uint32_t nSharedHits);
86 static constexpr std::string_view
typeName =
"edm4eic::Trajectory";
140 void unlink() { m_obj = podio::utils::MaybeSharedPtr<TrajectoryObj>{
nullptr}; }
155 friend std::hash<Trajectory>;
159 swap(a.m_obj, b.m_obj);
164 explicit Trajectory(podio::utils::MaybeSharedPtr<TrajectoryObj> obj);
167 podio::utils::MaybeSharedPtr<TrajectoryObj> m_obj{
new TrajectoryObj{}, podio::utils::MarkOwned};
172#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
173void to_json(nlohmann::json& j,
const Trajectory& value);
184 return std::hash<edm4eic::TrajectoryObj*>{}(obj.m_obj.get());
192#if defined(__clang__)
193 #pragma clang diagnostic push
194 #pragma clang diagnostic ignored "-Wunknown-warning-option"
195 #pragma clang diagnostic ignored "-Wdeprecated-redundant-constexpr-static-def"
196 #pragma clang diagnostic ignored "-Wdeprecated"
198 #pragma clang diagnostic pop
199#elif defined(__GNUC__)
200 #pragma GCC diagnostic push
201 #pragma GCC diagnostic ignored "-Wdeprecated"
203 #pragma GCC diagnostic pop
Definition Measurement2D.h:46
Definition MutableTrackSeed.h:38
Definition MutableTrajectory.h:39
Definition TrackParameters.h:43
Definition TrackSeed.h:46
Definition TrajectoryCollectionData.h:34
Definition TrajectoryCollection.h:138
Definition Trajectory.h:47
MutableTrajectory clone(bool cloneRelations=true) const
Definition Trajectory.cc:35
static Trajectory makeEmpty()
Definition Trajectory.cc:108
bool isAvailable() const
check whether the object is actually available
Definition Trajectory.cc:291
std::vector< edm4eic::Measurement2D >::const_iterator outliers_deprecated_end() const
Definition Trajectory.cc:198
podio::RelationRange< float > getMeasurementChi2() const
Definition Trajectory.cc:247
Trajectory()=default
default constructor
bool operator==(const Trajectory &other) const
Definition Trajectory.h:142
podio::RelationRange< edm4eic::TrackParameters > getTrackParameters() const
Definition Trajectory.cc:151
podio::RelationRange< float > getOutlierChi2() const
Definition Trajectory.cc:279
std::vector< float >::const_iterator outlierChi2_begin() const
Definition Trajectory.cc:256
std::vector< edm4eic::TrackParameters >::const_iterator trackParameters_end() const
Definition Trajectory.cc:134
std::vector< edm4eic::TrackParameters >::const_iterator trackParameters_begin() const
Definition Trajectory.cc:128
std::uint32_t getNHoles() const
Access the Number of missing hits.
Definition Trajectory.cc:116
friend class TrajectoryCollectionIterator
Definition Trajectory.h:52
~Trajectory()=default
destructor
bool operator!=(const MutableTrajectory &other) const
Definition Trajectory.h:146
friend void swap(Trajectory &a, Trajectory &b)
Definition Trajectory.h:157
Trajectory & operator=(Trajectory other) &&=delete
std::uint32_t getNSharedHits() const
Access the Number of shared hits with other trajectories.
Definition Trajectory.cc:117
std::uint32_t getType() const
Access the 0 (does not have good track fit), 1 (has good track fit)
Definition Trajectory.cc:112
bool operator!=(const Trajectory &other) const
Definition Trajectory.h:145
friend class TrajectoryCollection
Definition Trajectory.h:50
std::uint32_t getNMeasurements() const
Access the Number of hits used.
Definition Trajectory.cc:114
std::vector< edm4eic::Measurement2D >::const_iterator outliers_deprecated_begin() const
Definition Trajectory.cc:192
std::vector< float >::const_iterator measurementChi2_begin() const
Definition Trajectory.cc:224
TrajectoryCollection collection_type
Definition Trajectory.h:57
std::size_t measurementChi2_size() const
Definition Trajectory.cc:236
std::uint32_t getNOutliers() const
Access the Number of hits not considered.
Definition Trajectory.cc:115
const edm4eic::TrackSeed getSeed() const
Access the Corresponding track seed.
Definition Trajectory.cc:119
Trajectory(const Trajectory &other)=default
copy constructor
podio::RelationRange< edm4eic::Measurement2D > getMeasurements_deprecated() const
Definition Trajectory.cc:183
std::vector< float >::const_iterator outlierChi2_end() const
Definition Trajectory.cc:262
static constexpr std::string_view typeName
Definition Trajectory.h:86
std::vector< edm4eic::Measurement2D >::const_iterator measurements_deprecated_end() const
Definition Trajectory.cc:166
std::uint32_t getNStates() const
Access the Number of tracking steps.
Definition Trajectory.cc:113
void unlink()
disconnect from TrajectoryObj instance
Definition Trajectory.h:140
podio::ObjectID id() const
Definition Trajectory.h:151
Trajectory & operator=(Trajectory other) &
copy-assignment operator
Definition Trajectory.cc:30
friend class MutableTrajectory
Definition Trajectory.h:49
const podio::ObjectID getObjectID() const
Definition Trajectory.cc:295
MutableTrajectory mutable_type
Definition Trajectory.h:56
std::size_t outliers_deprecated_size() const
Definition Trajectory.cc:204
bool operator<(const Trajectory &other) const
Definition Trajectory.h:149
std::vector< float >::const_iterator measurementChi2_end() const
Definition Trajectory.cc:230
std::size_t trackParameters_size() const
Definition Trajectory.cc:140
podio::RelationRange< edm4eic::Measurement2D > getOutliers_deprecated() const
Definition Trajectory.cc:215
std::vector< edm4eic::Measurement2D >::const_iterator measurements_deprecated_begin() const
Definition Trajectory.cc:160
std::size_t outlierChi2_size() const
Definition Trajectory.cc:268
std::size_t measurements_deprecated_size() const
Definition Trajectory.cc:172
Definition TrajectoryObj.h:25
Definition CalorimeterHit.cc:17
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:99
Definition CalorimeterHit.h:31
OrderKey getOrderKey(const edm4eic::CalorimeterHit &obj)
Definition CalorimeterHit.cc:146
std::size_t operator()(const edm4eic::Trajectory &obj) const
Definition Trajectory.h:183