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 ;
180 void set6DSeed(
const TVectorD& state6D,
const double charge);
189 void setPosMomSeed(
const TVector3& pos,
const TVector3& mom,
const double charge);
201 void setTime6DSeed(
double time,
const TVectorD& state6D,
const double charge);
215 const double charge);
222 const TVector3& mom,
const int pdgCode);
249 #endif // genfit_TrackCand_h
const TMatrixDSym & getCovSeed() const
get the covariance matrix seed (6D).
void append(const TrackCand &)
Clone the TrackCandHit objects from the other TrackCand and append them to this TrackCand.
bool hitInTrack(int detId, int hitId) const
Is there a hit with detId and hitId in the TrackCand?
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 ...
void reset()
Delete and clear the TrackCandHits.
Hit object for use in TrackCand. Provides IDs and sorting parameters.
friend bool operator!=(const TrackCand &lhs, const TrackCand &rhs)
static bool compareTrackCandHits(const TrackCandHit *lhs, const TrackCandHit *rhs)
TrackCand & operator=(TrackCand other)
assignment operator
void setTimePosMomSeed(double time, const TVector3 &pos, const TVector3 &mom, const double charge)
sets the state to seed the track fitting and its time. State has to be a TVector3 for position and a ...
Track candidate – seed values and indices.
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 Print(const Option_t *="") const
Write the content of all private attributes to the terminal.
unsigned int getNHits() const
void swap(TrackCand &other)
void setPdgCode(int pdgCode)
Set a particle hypothesis in form of a PDG code. This will also set the charge attribute.
std::vector< double > getSortingParameters() const
Get sorting parameterts of all hits.
int getMcTrackId() const
Get the MCT track id, for MC simulations - default value = -1.
int getPdgCode() const
Get the PDG code.
double getChargeSeed() const
const TVectorD & getStateSeed() const
Returns the 6D seed state; should be in global coordinates.
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...
void setTimePosMomSeedAndPdgCode(double time, 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...
std::set< int > getUniqueDetIDs() const
void addHit(TrackCandHit *hit)
void setCovSeed(const TMatrixDSym &cov6D)
set the covariance matrix seed (6D).
double getTimeSeed() const
Get the time at which the seed state is defined.
TrackCandHit * getHit(int i) const
std::vector< int > getHitIDs(int detId=-2) const
Get hit ids of from a specific detector.
void setMcTrackId(int i)
Set the MCT track id, for MC simulations.
void setTimeSeed(double time)
Set the time at which the seed is defined.
friend bool operator==(const TrackCand &lhs, const TrackCand &rhs)
== operator checks equality of TrackCandHits. Does not check for sorting parameters.
void setTime6DSeed(double time, const TVectorD &state6D, const double charge)
sets the state to seed the track fitting and its time. State has to be a TVectorD(6). First 3 elements are the staring postion second 3 elements the starting momentum. Everything in global coordinates charge is the charge hypotheses of the particle charge.
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...
std::vector< TrackCandHit * > hits_
void getHitWithPlane(int i, int &detId, int &hitId, int &planeId) const
Get detector Id, hit Id and plane id for hit number i.
TVector3 getMomSeed() const
get the seed value for track: mom. Identical to the last 3 components of getStateSeed ...
TVector3 getPosSeed() const
get the seed value for track: pos. Identical to the first 3 components of getStateSeed ...
void addHit(int detId, int hitId, int planeId=-1, double sortingParameter=0)
void setTime6DSeedAndPdgCode(double time, 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...
std::vector< int > getDetIDs() const
Get detector IDs of all hits.
Defines for I/O streams used for error and debug printing.
void sortHits()
Sort the hits that were already added to the trackCand using the sorting parameters.