3#ifndef EDM4EIC_MutableTrack_H 
    4#define EDM4EIC_MutableTrack_H 
   12#include "edm4hep/Vector3f.h" 
   13#include "podio/RelationRange.h" 
   17#include "podio/utilities/MaybeSharedPtr.h" 
   21#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__) 
   22#include "nlohmann/json_fwd.hpp" 
   98  std::uint32_t 
getNdf() 
const;
 
  101  std::int32_t 
getPdg() 
const;
 
  112  [[deprecated(
"use getType instead")]]
 
  113  std::int32_t& 
type();
 
  120  [[deprecated(
"use getPosition instead")]]
 
  128  [[deprecated(
"use getMomentum instead")]]
 
  136  [[deprecated(
"use getPositionMomentumCovariance instead")]]
 
  144  [[deprecated(
"use getTime instead")]]
 
  152  [[deprecated(
"use getTimeError instead")]]
 
  160  [[deprecated(
"use getCharge instead")]]
 
  168  [[deprecated(
"use getChi2 instead")]]
 
  176  [[deprecated(
"use getNdf instead")]]
 
  177  std::uint32_t& 
ndf();
 
  184  [[deprecated(
"use getPdg instead")]]
 
  195  std::vector<edm4eic::Measurement2D>::const_iterator 
measurements_end() 
const;
 
  200  std::vector<edm4eic::Track>::const_iterator 
tracks_begin() 
const;
 
  201  std::vector<edm4eic::Track>::const_iterator 
tracks_end() 
const;
 
  202  podio::RelationRange<edm4eic::Track> 
getTracks() 
const;
 
  209  void unlink() { m_obj = podio::utils::MaybeSharedPtr<TrackObj>{
nullptr}; }
 
  224  friend std::hash<MutableTrack>;
 
  228    swap(a.m_obj, b.m_obj); 
 
 
  233  explicit MutableTrack(podio::utils::MaybeSharedPtr<TrackObj> obj);
 
  235  podio::utils::MaybeSharedPtr<TrackObj> m_obj{
nullptr};
 
 
  238#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__) 
  239void to_json(nlohmann::json& j, 
const MutableTrack& value);
 
  250    return std::hash<edm4eic::TrackObj*>{}(obj.m_obj.get());
 
 
 
Definition Measurement2D.h:46
Definition MutableTrack.h:40
void setTimeError(const float timeError)
Set the Error on the track vertex time.
Definition MutableTrack.cc:91
void setNdf(const std::uint32_t ndf)
Set the Number of degrees of freedom.
Definition MutableTrack.cc:100
void setTrajectory(const edm4eic::Trajectory &value)
Set the Trajectory of this track.
Definition MutableTrack.cc:107
~MutableTrack()=default
destructor
friend class TrackMutableCollectionIterator
Definition MutableTrack.h:43
podio::ObjectID id() const
Definition MutableTrack.h:220
std::int32_t & pdg()
Get reference to PDG particle ID hypothesis.
Definition MutableTrack.cc:105
std::int32_t getPdg() const
Access the PDG particle ID hypothesis.
Definition MutableTrack.cc:66
float & charge()
Get reference to Particle charge.
Definition MutableTrack.cc:96
friend void swap(MutableTrack &a, MutableTrack &b)
Definition MutableTrack.h:226
const edm4eic::Trajectory getTrajectory() const
Access the Trajectory of this track.
Definition MutableTrack.cc:68
const podio::ObjectID getObjectID() const
Definition MutableTrack.cc:193
std::int32_t & type()
Get reference to Flag that defines the type of track.
Definition MutableTrack.cc:78
void setPdg(const std::int32_t pdg)
Set the PDG particle ID hypothesis.
Definition MutableTrack.cc:103
Track object_type
Definition MutableTrack.h:47
float & chi2()
Get reference to Total chi2.
Definition MutableTrack.cc:99
bool operator<(const MutableTrack &other) const
Definition MutableTrack.h:218
bool operator!=(const Track &other) const
Definition MutableTrack.h:215
void setCharge(const float charge)
Set the Particle charge.
Definition MutableTrack.cc:94
std::int32_t getType() const
Access the Flag that defines the type of track.
Definition MutableTrack.cc:57
void setTime(const float time)
Set the Track time at the vertex [ns].
Definition MutableTrack.cc:88
float getChi2() const
Access the Total chi2.
Definition MutableTrack.cc:64
std::size_t measurements_size() const
Definition MutableTrack.cc:129
std::vector< edm4eic::Track >::const_iterator tracks_end() const
Definition MutableTrack.cc:159
podio::RelationRange< edm4eic::Measurement2D > getMeasurements() const
Definition MutableTrack.cc:140
MutableTrack()
default constructor
Definition MutableTrack.cc:19
MutableTrack & operator=(MutableTrack other) &&=delete
MutableTrack clone(bool cloneRelations=true) const
Definition MutableTrack.cc:41
edm4hep::Vector3f & position()
Get reference to Track 3-position at the vertex.
Definition MutableTrack.cc:81
const edm4hep::Vector3f & getMomentum() const
Access the Track 3-momentum at the vertex [GeV].
Definition MutableTrack.cc:59
bool operator!=(const MutableTrack &other) const
Definition MutableTrack.h:214
void setPosition(const edm4hep::Vector3f &position)
Set the Track 3-position at the vertex.
Definition MutableTrack.cc:79
podio::RelationRange< edm4eic::Track > getTracks() const
Definition MutableTrack.cc:176
float getTimeError() const
Access the Error on the track vertex time.
Definition MutableTrack.cc:62
void addToTracks(const edm4eic::Track &)
Definition MutableTrack.cc:148
void unlink()
disconnect from TrackObj instance
Definition MutableTrack.h:209
edm4eic::Cov6f & positionMomentumCovariance()
Get reference to Covariance matrix in basis [x,y,z,px,py,pz].
Definition MutableTrack.cc:87
std::vector< edm4eic::Track >::const_iterator tracks_begin() const
Definition MutableTrack.cc:153
TrackCollection collection_type
Definition MutableTrack.h:48
edm4hep::Vector3f & momentum()
Get reference to Track 3-momentum at the vertex [GeV].
Definition MutableTrack.cc:84
void setType(const std::int32_t type)
Set the Flag that defines the type of track.
Definition MutableTrack.cc:76
std::size_t tracks_size() const
Definition MutableTrack.cc:165
MutableTrack(const MutableTrack &other)=default
copy constructor
void setMomentum(const edm4hep::Vector3f &momentum)
Set the Track 3-momentum at the vertex [GeV].
Definition MutableTrack.cc:82
float getCharge() const
Access the Particle charge.
Definition MutableTrack.cc:63
const edm4eic::Cov6f & getPositionMomentumCovariance() const
Access the Covariance matrix in basis [x,y,z,px,py,pz].
Definition MutableTrack.cc:60
std::uint32_t & ndf()
Get reference to Number of degrees of freedom.
Definition MutableTrack.cc:102
bool isAvailable() const
check whether the object is actually available
Definition MutableTrack.cc:189
void addToMeasurements(const edm4eic::Measurement2D &)
Definition MutableTrack.cc:112
void setChi2(const float chi2)
Set the Total chi2.
Definition MutableTrack.cc:97
friend class Track
Definition MutableTrack.h:44
float & timeError()
Get reference to Error on the track vertex time.
Definition MutableTrack.cc:93
std::uint32_t getNdf() const
Access the Number of degrees of freedom.
Definition MutableTrack.cc:65
const edm4hep::Vector3f & getPosition() const
Access the Track 3-position at the vertex.
Definition MutableTrack.cc:58
bool operator==(const MutableTrack &other) const
Definition MutableTrack.h:211
float & time()
Get reference to Track time at the vertex [ns].
Definition MutableTrack.cc:90
float getTime() const
Access the Track time at the vertex [ns].
Definition MutableTrack.cc:61
friend class TrackCollection
Definition MutableTrack.h:42
std::vector< edm4eic::Measurement2D >::const_iterator measurements_end() const
Definition MutableTrack.cc:123
MutableTrack & operator=(MutableTrack other) &
copy-assignment operator
Definition MutableTrack.cc:36
std::vector< edm4eic::Measurement2D >::const_iterator measurements_begin() const
Definition MutableTrack.cc:117
void setPositionMomentumCovariance(const edm4eic::Cov6f &positionMomentumCovariance)
Set the Covariance matrix in basis [x,y,z,px,py,pz].
Definition MutableTrack.cc:85
Definition MutableTrajectory.h:39
Definition TrackCollection.h:137
Definition Trajectory.h:47
Definition CalorimeterHit.cc:17
OrderKey getOrderKey(const edm4eic::CalorimeterHit &obj)
Definition CalorimeterHit.cc:150
std::size_t operator()(const edm4eic::MutableTrack &obj) const
Definition MutableTrack.h:249