3#ifndef EDM4EIC_TrackParameters_H
4#define EDM4EIC_TrackParameters_H
9#include "edm4hep/Vector2f.h"
12#include "podio/utilities/MaybeSharedPtr.h"
17#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
18#include "nlohmann/json_fwd.hpp"
25class MutableTrackParameters;
26class TrackParametersCollection;
27class TrackParametersCollectionData;
48 TrackParameters(std::int32_t type, std::uint64_t surface, edm4hep::Vector2f loc,
float theta,
float phi,
float qOverP,
float time, std::int32_t pdg,
edm4eic::Cov6f covariance);
77 const edm4hep::Vector2f&
getLoc()
const;
92 std::int32_t
getPdg()
const;
104 void unlink() { m_obj = podio::utils::MaybeSharedPtr<TrackParametersObj>{
nullptr}; }
121 swap(a.m_obj, b.m_obj);
126 explicit TrackParameters(podio::utils::MaybeSharedPtr<TrackParametersObj> obj);
129 podio::utils::MaybeSharedPtr<TrackParametersObj> m_obj{
nullptr};
132std::ostream&
operator<<(std::ostream& o,
const TrackParameters& value);
134#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
135void to_json(nlohmann::json& j,
const TrackParameters& value);
Definition MutableTrackParameters.h:31
Definition TrackParametersCollectionData.h:30
Definition TrackParametersCollection.h:92
Definition TrackParametersCollection.h:37
Definition TrackParameters.h:33
friend void swap(TrackParameters &a, TrackParameters &b)
Definition TrackParameters.h:119
float getPhi() const
Access the Track azimuthal angle [rad].
Definition TrackParameters.cc:64
std::int32_t getPdg() const
Access the pdg pid for these parameters.
Definition TrackParameters.cc:67
bool operator==(const TrackParameters &other) const
Definition TrackParameters.h:106
bool operator<(const TrackParameters &other) const
Definition TrackParameters.h:113
static TrackParameters makeEmpty()
Definition TrackParameters.cc:56
float getQOverP() const
Access the [e/GeV].
Definition TrackParameters.cc:65
const edm4hep::Vector2f & getLoc() const
Access the 2D location on surface.
Definition TrackParameters.cc:62
TrackParameters & operator=(TrackParameters other)
copy-assignment operator
Definition TrackParameters.cc:36
bool operator!=(const MutableTrackParameters &other) const
Definition TrackParameters.h:110
TrackParameters()
default constructor
Definition TrackParameters.cc:20
const podio::ObjectID getObjectID() const
Definition TrackParameters.cc:79
const edm4eic::Cov6f & getCovariance() const
Access the Full covariance in basis [l0,l1,theta,phi,q/p,t].
Definition TrackParameters.cc:68
~TrackParameters()=default
destructor
std::uint64_t getSurface() const
Access the Surface for bound parameters (geometryID)
Definition TrackParameters.cc:61
bool isAvailable() const
check whether the object is actually available
Definition TrackParameters.cc:75
TrackParameters(const TrackParameters &other)=default
copy constructor
float getTime() const
Access the Track time [ns].
Definition TrackParameters.cc:66
void unlink()
disconnect from TrackParametersObj instance
Definition TrackParameters.h:104
float getTheta() const
Access the Track polar angle [rad].
Definition TrackParameters.cc:63
podio::ObjectID id() const
Definition TrackParameters.h:115
MutableTrackParameters clone(bool cloneRelations=true) const
Definition TrackParameters.cc:41
std::int32_t getType() const
Access the Type of track parameters (-1/seed, 0/head, ...)
Definition TrackParameters.cc:60
friend class TrackParametersCollection
Definition TrackParameters.h:36
bool operator!=(const TrackParameters &other) const
Definition TrackParameters.h:109
friend class MutableTrackParameters
Definition TrackParameters.h:35
Definition TrackParametersObj.h:17
Definition CalorimeterHit.cc:17
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition CalorimeterHit.cc:103