3#ifndef EDM4EIC_MutableTrackSegment_H
4#define EDM4EIC_MutableTrackSegment_H
11#include "podio/RelationRange.h"
14#include "podio/utilities/MaybeSharedPtr.h"
18#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
19#include "nlohmann/json_fwd.hpp"
97 std::vector<edm4eic::TrackPoint>::const_iterator
points_begin()
const;
98 std::vector<edm4eic::TrackPoint>::const_iterator
points_end()
const;
99 podio::RelationRange<edm4eic::TrackPoint>
getPoints()
const;
106 void unlink() { m_obj = podio::utils::MaybeSharedPtr<TrackSegmentObj>{
nullptr}; }
121 friend std::hash<MutableTrackSegment>;
125 swap(a.m_obj, b.m_obj);
132 podio::utils::MaybeSharedPtr<TrackSegmentObj> m_obj{
new TrackSegmentObj{}, podio::utils::MarkOwned};
135#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
145struct std::hash<
edm4eic::MutableTrackSegment> {
147 return std::hash<edm4eic::TrackSegmentObj*>{}(obj.m_obj.get());
Definition MutableTrack.h:40
Definition MutableTrackSegment.h:37
friend class TrackSegmentCollection
Definition MutableTrackSegment.h:39
podio::RelationRange< edm4eic::TrackPoint > getPoints() const
Definition MutableTrackSegment.cc:91
MutableTrackSegment & operator=(MutableTrackSegment other) &&=delete
MutableTrackSegment clone(bool cloneRelations=true) const
Definition MutableTrackSegment.cc:29
std::vector< edm4eic::TrackPoint >::const_iterator points_begin() const
Definition MutableTrackSegment.cc:68
bool operator<(const MutableTrackSegment &other) const
Definition MutableTrackSegment.h:115
std::vector< edm4eic::TrackPoint >::const_iterator points_end() const
Definition MutableTrackSegment.cc:74
MutableTrackSegment & operator=(MutableTrackSegment other) &
copy-assignment operator
Definition MutableTrackSegment.cc:24
MutableTrackSegment()=default
default constructor
void setLength(const float length)
Set the Pathlength from the first to the last point.
Definition MutableTrackSegment.cc:53
bool isAvailable() const
check whether the object is actually available
Definition MutableTrackSegment.cc:104
MutableTrackSegment(const MutableTrackSegment &other)=default
copy constructor
friend class TrackSegment
Definition MutableTrackSegment.h:41
friend void swap(MutableTrackSegment &a, MutableTrackSegment &b)
Definition MutableTrackSegment.h:123
friend class TrackSegmentMutableCollectionIterator
Definition MutableTrackSegment.h:40
constexpr bool operator!=(const MutableTrackSegment &other) const
Definition MutableTrackSegment.h:111
bool operator!=(const TrackSegment &other) const
Definition MutableTrackSegment.h:112
~MutableTrackSegment()=default
destructor
void unlink()
disconnect from TrackSegmentObj instance
Definition MutableTrackSegment.h:106
void setLengthError(const float lengthError)
Set the Error on the segment length.
Definition MutableTrackSegment.cc:55
TrackSegmentCollection collection_type
Definition MutableTrackSegment.h:45
std::size_t points_size() const
Definition MutableTrackSegment.cc:80
const edm4eic::Track getTrack() const
Access the Track used for this projection.
Definition MutableTrackSegment.cc:45
TrackSegment object_type
Definition MutableTrackSegment.h:44
void setTrack(const edm4eic::Track &value)
Set the Track used for this projection.
Definition MutableTrackSegment.cc:58
const podio::ObjectID getObjectID() const
Definition MutableTrackSegment.cc:108
podio::ObjectID id() const
Definition MutableTrackSegment.h:117
float getLengthError() const
Access the Error on the segment length.
Definition MutableTrackSegment.cc:43
float getLength() const
Access the Pathlength from the first to the last point.
Definition MutableTrackSegment.cc:42
void addToPoints(const edm4eic::TrackPoint &)
Definition MutableTrackSegment.cc:63
constexpr bool operator==(const MutableTrackSegment &other) const
Definition MutableTrackSegment.h:108
Definition TrackPoint.h:23
Definition TrackSegmentCollection.h:139
Definition TrackSegment.h:45
Definition TrackSegmentObj.h:24
Definition ArrowMapper.cc:61
OrderKey getOrderKey(const edm4eic::CalorimeterHit &obj)
Definition CalorimeterHit.cc:146
std::size_t operator()(const edm4eic::MutableTrackSegment &obj) const
Definition MutableTrackSegment.h:146