3#ifndef EICD_MutableTrack_H
4#define EICD_MutableTrack_H
13#include "edm4hep/Vector3f.h"
14#include "podio/RelationRange.h"
17#include "podio/ObjectID.h"
20#ifdef PODIO_JSON_OUTPUT
21#include "nlohmann/json.hpp"
61 operator Track()
const;
66 const std::int32_t&
getType()
const;
72 const std::int32_t&
getNdf()
const;
92 void setType(std::int32_t value);
98 void setNdf(std::int32_t value);
124 std::vector<eicd::TrackParameters>::const_iterator
parameters_begin()
const;
125 std::vector<eicd::TrackParameters>::const_iterator
parameters_end()
const;
126 podio::RelationRange<eicd::TrackParameters>
getParameters()
const;
136 std::vector<eicd::Track>::const_iterator
tracks_begin()
const;
137 std::vector<eicd::Track>::const_iterator
tracks_end()
const;
138 podio::RelationRange<eicd::Track>
getTracks()
const;
159 swap(a.m_obj, b.m_obj);
166#ifdef PODIO_JSON_OUTPUT
167void to_json(nlohmann::json& j,
const MutableTrack& value);
Definition: MutableTrack.h:33
MutableTrack clone() const
create a mutable deep-copy of the object with identical relations
Definition: MutableTrack.cc:47
bool operator==(const MutableTrack &other) const
Definition: MutableTrack.h:147
void setNdf(std::int32_t value)
Set the Numbers of degrees of freedom of the track fit.
Definition: MutableTrack.cc:70
edm4hep::Vector3f & momentum()
Get reference to Track 3-momentum at the vertex [GeV].
Definition: MutableTrack.cc:72
void setTime(float value)
Set the Track time at the vertex [ns].
Definition: MutableTrack.cc:75
std::vector< eicd::TrackParameters >::const_iterator parameters_end() const
Definition: MutableTrack.cc:91
podio::RelationRange< eicd::Track > getTracks() const
Definition: MutableTrack.cc:180
podio::RelationRange< eicd::TrackerHit > getTrackerHits() const
Definition: MutableTrack.cc:144
~MutableTrack()
destructor
Definition: MutableTrack.cc:51
friend void swap(MutableTrack &a, MutableTrack &b)
Definition: MutableTrack.h:157
bool operator<(const MutableTrack &other) const
Definition: MutableTrack.h:151
const std::int32_t & getType() const
Access the Flag that defines the type of track.
Definition: MutableTrack.cc:58
MutableTrack & operator=(MutableTrack other)
copy-assignment operator
Definition: MutableTrack.cc:36
void addToTracks(eicd::Track)
Definition: MutableTrack.cc:152
const podio::ObjectID getObjectID() const
Definition: MutableTrack.cc:200
std::vector< eicd::TrackerHit >::const_iterator trackerHits_begin() const
Definition: MutableTrack.cc:121
std::vector< eicd::Track >::const_iterator tracks_end() const
Definition: MutableTrack.cc:163
void addToTrackerHits(eicd::TrackerHit)
Definition: MutableTrack.cc:116
const std::int32_t & getNdf() const
Access the Numbers of degrees of freedom of the track fit.
Definition: MutableTrack.cc:60
unsigned int trackerHits_size() const
Definition: MutableTrack.cc:133
bool isAvailable() const
check whether the object is actually available
Definition: MutableTrack.cc:193
const float & getChi2() const
Access the Total chi2 (sum) of the track fit.
Definition: MutableTrack.cc:59
MutableTrack()
default constructor
Definition: MutableTrack.cc:16
const edm4hep::Vector3f & getMomentum() const
Access the Track 3-momentum at the vertex [GeV].
Definition: MutableTrack.cc:61
std::vector< eicd::TrackerHit >::const_iterator trackerHits_end() const
Definition: MutableTrack.cc:127
std::vector< eicd::Track >::const_iterator tracks_begin() const
Definition: MutableTrack.cc:157
std::vector< eicd::TrackParameters >::const_iterator parameters_begin() const
Definition: MutableTrack.cc:85
void setType(std::int32_t value)
Set the Flag that defines the type of track.
Definition: MutableTrack.cc:68
void setChi2(float value)
Set the Total chi2 (sum) of the track fit.
Definition: MutableTrack.cc:69
const float & getTime() const
Access the Track time at the vertex [ns].
Definition: MutableTrack.cc:63
const eicd::Cov3f & getMomentumError() const
Access the Covariance matrix on the momentum.
Definition: MutableTrack.cc:62
const float & getCharge() const
Access the Particle charge.
Definition: MutableTrack.cc:65
void setMomentum(edm4hep::Vector3f value)
Set the Track 3-momentum at the vertex [GeV].
Definition: MutableTrack.cc:71
eicd::Cov3f & momentumError()
Get reference to Covariance matrix on the momentum.
Definition: MutableTrack.cc:74
friend class Track
Definition: MutableTrack.h:37
const float & getTimeError() const
Access the Error on the track vertex time.
Definition: MutableTrack.cc:64
void setMomentumError(eicd::Cov3f value)
Set the Covariance matrix on the momentum.
Definition: MutableTrack.cc:73
podio::RelationRange< eicd::TrackParameters > getParameters() const
Definition: MutableTrack.cc:108
void unlink()
disconnect from TrackObj instance
Definition: MutableTrack.h:145
unsigned int parameters_size() const
Definition: MutableTrack.cc:97
void setTimeError(float value)
Set the Error on the track vertex time.
Definition: MutableTrack.cc:76
unsigned int tracks_size() const
Definition: MutableTrack.cc:169
void addToParameters(eicd::TrackParameters)
Definition: MutableTrack.cc:80
void setCharge(float value)
Set the Particle charge.
Definition: MutableTrack.cc:77
unsigned int id() const
Definition: MutableTrack.h:153
Definition: TrackCollection.h:82
Definition: TrackCollection.h:57
Definition: TrackObj.h:20
Definition: TrackParameters.h:34
Definition: TrackerHit.h:28
Definition: CalorimeterHit.cc:13