22#ifndef genfit_TrackCand_h
23#define genfit_TrackCand_h
35#include <TMatrixDSym.h>
36#include <TDatabasePDG.h>
95 void getHit(
int i,
int& detId,
int& hitId)
const;
98 void getHit(
int i,
int& detId,
int& hitId,
double& sortingParameter)
const;
101 void getHitWithPlane(
int i,
int& detId,
int& hitId,
int& planeId)
const;
110 std::vector<int>
getHitIDs(
int detId = -2)
const;
146 void addHit(
int detId,
int hitId,
int planeId = -1,
double sortingParameter = 0);
162 void sortHits(
const std::vector<unsigned int>& indices);
169 void Print(
const Option_t* =
"")
const ;
174 void set6DSeed(
const TVectorD& state6D,
const double charge);
183 void setPosMomSeed(
const TVector3& pos,
const TVector3& mom,
const double charge);
Hit object for use in TrackCand. Provides IDs and sorting parameters.
Track candidate – seed values and indices.
void append(const TrackCand &)
Clone the TrackCandHit objects from the other TrackCand and append them to this TrackCand.
std::vector< double > getSortingParameters() const
Get sorting parameterts of all hits.
bool hitInTrack(int detId, int hitId) const
Is there a hit with detId and hitId in the TrackCand?
std::vector< int > getDetIDs() const
Get detector IDs of all hits.
void addHit(int detId, int hitId, int planeId=-1, double sortingParameter=0)
void setPosMomSeed(const TVector3 &pos, const TVector3 &mom, const double charge)
sets the state to seed the track fitting. State has to be a TVector3 for position and a TVector3 for ...
friend bool operator==(const TrackCand &lhs, const TrackCand &rhs)
== operator checks equality of TrackCandHits. Does not check for sorting parameters.
static bool compareTrackCandHits(const TrackCandHit *lhs, const TrackCandHit *rhs)
const TVectorD & getStateSeed() const
Returns the 6D seed state; should be in global coordinates.
void swap(TrackCand &other)
void sortHits()
Sort the hits that were already added to the trackCand using the sorting parameters.
std::set< int > getUniqueDetIDs() const
friend bool operator!=(const TrackCand &lhs, const TrackCand &rhs)
void setCovSeed(const TMatrixDSym &cov6D)
set the covariance matrix seed (6D).
void set6DSeed(const TVectorD &state6D, const double charge)
sets the state to seed the track fitting. State has to be a TVectorD(6). First 3 elements are the sta...
void Print(const Option_t *="") const
Write the content of all private attributes to the terminal.
int getMcTrackId() const
Get the MCT track id, for MC simulations - default value = -1.
std::vector< int > getHitIDs(int detId=-2) const
Get hit ids of from a specific detector.
TVector3 getMomSeed() const
get the seed value for track: mom. Identical to the last 3 components of getStateSeed
void getHitWithPlane(int i, int &detId, int &hitId, int &planeId) const
Get detector Id, hit Id and plane id for hit number i.
int getPdgCode() const
Get the PDG code.
std::vector< TrackCandHit * > hits_
void set6DSeedAndPdgCode(const TVectorD &state6D, const int pdgCode)
This function works the same as set6DSeed but instead of a charge hypothesis you can set a pdg code w...
unsigned int getNHits() const
TrackCand & operator=(TrackCand other)
assignment operator
void addHit(TrackCandHit *hit)
void setPosMomSeedAndPdgCode(const TVector3 &pos, const TVector3 &mom, const int pdgCode)
This function works the same as setPosMomSeed but instead of a charge hypothesis you can set a pdg co...
void setPdgCode(int pdgCode)
Set a particle hypothesis in form of a PDG code. This will also set the charge attribute.
void reset()
Delete and clear the TrackCandHits.
const TMatrixDSym & getCovSeed() const
get the covariance matrix seed (6D).
double getChargeSeed() const
TVector3 getPosSeed() const
get the seed value for track: pos. Identical to the first 3 components of getStateSeed
void setMcTrackId(int i)
Set the MCT track id, for MC simulations.
TrackCandHit * getHit(int i) const