3#ifndef EDM4EIC_MutableTrackParameters_H
4#define EDM4EIC_MutableTrackParameters_H
11#include "edm4hep/Vector2f.h"
14#include "podio/utilities/MaybeSharedPtr.h"
18#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
19#include "nlohmann/json_fwd.hpp"
75 const edm4hep::Vector2f&
getLoc()
const;
90 std::int32_t
getPdg()
const;
102 [[deprecated(
"use getType instead")]]
103 std::int32_t&
type();
110 [[deprecated(
"use getSurface instead")]]
114 void setLoc(
const edm4hep::Vector2f&
loc);
116 edm4hep::Vector2f&
getLoc();
118 [[deprecated(
"use getLoc instead")]]
119 edm4hep::Vector2f&
loc();
126 [[deprecated(
"use getTheta instead")]]
134 [[deprecated(
"use getPhi instead")]]
142 [[deprecated(
"use getQOverP instead")]]
150 [[deprecated(
"use getTime instead")]]
158 [[deprecated(
"use getPdg instead")]]
166 [[deprecated(
"use getCovariance instead")]]
177 void unlink() { m_obj = podio::utils::MaybeSharedPtr<TrackParametersObj>{
nullptr}; }
192 friend std::hash<MutableTrackParameters>;
196 swap(a.m_obj, b.m_obj);
203 podio::utils::MaybeSharedPtr<TrackParametersObj> m_obj{
nullptr};
206#if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
216struct std::hash<
edm4eic::MutableTrackParameters> {
218 return std::hash<edm4eic::TrackParametersObj*>{}(obj.m_obj.get());
Definition MutableTrackParameters.h:35
bool isAvailable() const
check whether the object is actually available
Definition MutableTrackParameters.cc:94
void setTheta(const float theta)
Set the Track polar angle [rad].
Definition MutableTrackParameters.cc:69
float getQOverP() const
Access the [e/GeV].
Definition MutableTrackParameters.cc:54
MutableTrackParameters & operator=(MutableTrackParameters other) &
copy-assignment operator
Definition MutableTrackParameters.cc:34
void setType(const std::int32_t type)
Set the Type of track parameters (-1/seed, 0/head, ...)
Definition MutableTrackParameters.cc:60
float & time()
Get reference to Track time [ns].
Definition MutableTrackParameters.cc:80
void unlink()
disconnect from TrackParametersObj instance
Definition MutableTrackParameters.h:177
void setTime(const float time)
Set the Track time [ns].
Definition MutableTrackParameters.cc:78
podio::ObjectID id() const
Definition MutableTrackParameters.h:188
void setSurface(const std::uint64_t surface)
Set the Surface for bound parameters (geometryID)
Definition MutableTrackParameters.cc:63
TrackParameters object_type
Definition MutableTrackParameters.h:42
void setPhi(const float phi)
Set the Track azimuthal angle [rad].
Definition MutableTrackParameters.cc:72
const podio::ObjectID getObjectID() const
Definition MutableTrackParameters.cc:98
edm4hep::Vector2f & loc()
Get reference to 2D location on surface.
Definition MutableTrackParameters.cc:68
bool operator!=(const TrackParameters &other) const
Definition MutableTrackParameters.h:183
void setQOverP(const float qOverP)
Set the [e/GeV].
Definition MutableTrackParameters.cc:75
MutableTrackParameters(const MutableTrackParameters &other)=default
copy constructor
bool operator<(const MutableTrackParameters &other) const
Definition MutableTrackParameters.h:186
MutableTrackParameters clone(bool cloneRelations=true) const
Definition MutableTrackParameters.cc:39
std::int32_t & pdg()
Get reference to pdg pid for these parameters.
Definition MutableTrackParameters.cc:83
bool operator!=(const MutableTrackParameters &other) const
Definition MutableTrackParameters.h:182
bool operator==(const MutableTrackParameters &other) const
Definition MutableTrackParameters.h:179
edm4eic::Cov6f & covariance()
Get reference to Full covariance in basis [l0,l1,theta,phi,q/p,t].
Definition MutableTrackParameters.cc:86
std::uint64_t & surface()
Get reference to Surface for bound parameters (geometryID)
Definition MutableTrackParameters.cc:65
std::int32_t getPdg() const
Access the pdg pid for these parameters.
Definition MutableTrackParameters.cc:56
void setPdg(const std::int32_t pdg)
Set the pdg pid for these parameters.
Definition MutableTrackParameters.cc:81
void setCovariance(const edm4eic::Cov6f &covariance)
Set the Full covariance in basis [l0,l1,theta,phi,q/p,t].
Definition MutableTrackParameters.cc:84
float & phi()
Get reference to Track azimuthal angle [rad].
Definition MutableTrackParameters.cc:74
std::uint64_t getSurface() const
Access the Surface for bound parameters (geometryID)
Definition MutableTrackParameters.cc:50
friend class TrackParameters
Definition MutableTrackParameters.h:39
const edm4hep::Vector2f & getLoc() const
Access the 2D location on surface.
Definition MutableTrackParameters.cc:51
std::int32_t & type()
Get reference to Type of track parameters (-1/seed, 0/head, ...)
Definition MutableTrackParameters.cc:62
float & qOverP()
Get reference to [e/GeV].
Definition MutableTrackParameters.cc:77
const edm4eic::Cov6f & getCovariance() const
Access the Full covariance in basis [l0,l1,theta,phi,q/p,t].
Definition MutableTrackParameters.cc:57
friend void swap(MutableTrackParameters &a, MutableTrackParameters &b)
Definition MutableTrackParameters.h:194
~MutableTrackParameters()=default
destructor
float getTheta() const
Access the Track polar angle [rad].
Definition MutableTrackParameters.cc:52
TrackParametersCollection collection_type
Definition MutableTrackParameters.h:43
float getPhi() const
Access the Track azimuthal angle [rad].
Definition MutableTrackParameters.cc:53
friend class TrackParametersMutableCollectionIterator
Definition MutableTrackParameters.h:38
void setLoc(const edm4hep::Vector2f &loc)
Set the 2D location on surface.
Definition MutableTrackParameters.cc:66
float getTime() const
Access the Track time [ns].
Definition MutableTrackParameters.cc:55
friend class TrackParametersCollection
Definition MutableTrackParameters.h:37
MutableTrackParameters()
default constructor
Definition MutableTrackParameters.cc:18
float & theta()
Get reference to Track polar angle [rad].
Definition MutableTrackParameters.cc:71
std::int32_t getType() const
Access the Type of track parameters (-1/seed, 0/head, ...)
Definition MutableTrackParameters.cc:49
MutableTrackParameters & operator=(MutableTrackParameters other) &&=delete
Definition TrackParametersCollection.h:137
Definition TrackParameters.h:43
Definition CalorimeterHit.cc:17
OrderKey getOrderKey(const edm4eic::CalorimeterHit &obj)
Definition CalorimeterHit.cc:150
std::size_t operator()(const edm4eic::MutableTrackParameters &obj) const
Definition MutableTrackParameters.h:217