8 #include <tracking/dataobjects/RecoTrack.h>
9 #include <mdst/dataobjects/MCParticle.h>
11 #include <genfit/TrackCand.h>
12 #include <genfit/AbsTrackRep.h>
13 #include <genfit/KalmanFitterInfo.h>
14 #include <genfit/KalmanFitStatus.h>
15 #include <genfit/WireTrackCandHit.h>
16 #include <genfit/RKTrackRep.h>
17 #include <genfit/MplTrackRep.h>
18 #include <simulation/monopoles/MonopoleConstants.h>
22 RecoTrack::RecoTrack(
const TVector3& seedPosition,
const TVector3& seedMomentum,
const short int seedCharge,
23 const std::string& storeArrayNameOfCDCHits,
24 const std::string& storeArrayNameOfSVDHits,
25 const std::string& storeArrayNameOfPXDHits,
26 const std::string& storeArrayNameOfBKLMHits,
27 const std::string& storeArrayNameOfEKLMHits,
28 const std::string& storeArrayNameOfRecoHitInformation) :
30 m_storeArrayNameOfCDCHits(storeArrayNameOfCDCHits),
31 m_storeArrayNameOfSVDHits(storeArrayNameOfSVDHits),
32 m_storeArrayNameOfPXDHits(storeArrayNameOfPXDHits),
33 m_storeArrayNameOfBKLMHits(storeArrayNameOfBKLMHits),
34 m_storeArrayNameOfEKLMHits(storeArrayNameOfEKLMHits),
35 m_storeArrayNameOfRecoHitInformation(storeArrayNameOfRecoHitInformation)
39 TMatrixDSym covSeed(6);
43 covSeed(3, 3) = 0.01e-3;
44 covSeed(4, 4) = 0.01e-3;
45 covSeed(5, 5) = 0.04e-3;
51 std::string
const& pxdHitsStoreArrayName,
52 std::string
const& svdHitsStoreArrayName,
53 std::string
const& cdcHitsStoreArrayName,
54 std::string
const& bklmHitsStoreArrayName,
55 std::string
const& eklmHitsStoreArrayName,
56 std::string
const& recoHitInformationStoreArrayName)
94 const std::string& storeArrayNameOfRecoTracks,
95 const std::string& storeArrayNameOfCDCHits,
96 const std::string& storeArrayNameOfSVDHits,
97 const std::string& storeArrayNameOfPXDHits,
98 const std::string& storeArrayNameOfBKLMHits,
99 const std::string& storeArrayNameOfEKLMHits,
100 const std::string& storeArrayNameOfRecoHitInformation,
101 const bool recreateSortingParameters
114 const TVector3& position = trackCand.
getPosSeed();
115 const TVector3& momentum = trackCand.
getMomSeed();
116 const short int charge = trackCand.getChargeSeed();
123 recoHitInformations.
getName());
127 TMatrixDSym covSeed(6);
128 covSeed(0, 0) = 1e-3;
129 covSeed(1, 1) = 1e-3;
130 covSeed(2, 2) = 4e-3;
131 covSeed(3, 3) = 0.01e-3;
132 covSeed(4, 4) = 0.01e-3;
133 covSeed(5, 5) = 0.04e-3;
136 for (
unsigned int hitIndex = 0; hitIndex < trackCand.getNHits(); hitIndex++) {
138 const int detID = trackCandHit->getDetId();
139 const int hitID = trackCandHit->getHitId();
140 const unsigned int sortingParameter = recreateSortingParameters ? hitIndex :
static_cast<unsigned int>
141 (trackCandHit->getSortingParameter());
142 if (detID == Const::CDC) {
147 B2FATAL(
"CDC hit is not a wire hit. The RecoTrack can not handle such a case.");
149 if (wireHit->getLeftRightResolution() > 0) {
150 newRecoTrack->
addCDCHit(cdcHit, sortingParameter, RecoHitInformation::RightLeftInformation::c_right);
151 }
else if (wireHit->getLeftRightResolution() < 0) {
152 newRecoTrack->
addCDCHit(cdcHit, sortingParameter, RecoHitInformation::RightLeftInformation::c_left);
154 newRecoTrack->
addCDCHit(cdcHit, sortingParameter, RecoHitInformation::RightLeftInformation::c_undefinedRightLeftInformation);
157 }
else if (detID == Const::SVD) {
159 newRecoTrack->
addSVDHit(svdHit, sortingParameter);
160 }
else if (detID == Const::PXD) {
162 newRecoTrack->
addPXDHit(pxdHit, sortingParameter);
163 }
else if (detID == Const::BKLM) {
165 newRecoTrack->
addBKLMHit(bklmHit, sortingParameter);
166 }
else if (detID == Const::EKLM) {
168 newRecoTrack->
addEKLMHit(eklmHit, sortingParameter);
188 createdTrackCand.addHit(new genfit::WireTrackCandHit(Const::CDC, hit->getArrayIndex(), -1,
189 hitInformation.getSortingParameter(), -1));
191 createdTrackCand.addHit(new genfit::WireTrackCandHit(Const::CDC, hit->getArrayIndex(), -1,
192 hitInformation.getSortingParameter(), 1));
194 createdTrackCand.addHit(new genfit::WireTrackCandHit(Const::CDC, hit->getArrayIndex(), -1,
195 hitInformation.getSortingParameter(), 0));
200 createdTrackCand.addHit(Const::SVD, hit->getArrayIndex(), -1, hitInformation.
getSortingParameter());
204 createdTrackCand.addHit(Const::PXD, hit->getArrayIndex(), -1, hitInformation.
getSortingParameter());
208 createdTrackCand.addHit(Const::BKLM, hit->getArrayIndex(), -1, hitInformation.
getSortingParameter());
212 createdTrackCand.addHit(Const::EKLM, hit->getArrayIndex(), -1, hitInformation.
getSortingParameter());
218 const MCParticle* relatedMCParticle = getRelatedTo<MCParticle>();
219 if (relatedMCParticle) {
224 return createdTrackCand;
230 if (createdTrackPointID == -1) {
238 boost::optional<double> optionalMinimalWeight)
240 size_t hitsCopied = 0;
242 unsigned int maximalSortingParameter = 0;
249 const auto& maximalElement = std::max_element(recoHitInformations.begin(), recoHitInformations.end(), sortBySP);
250 if (maximalElement != recoHitInformations.end()) {
251 maximalSortingParameter = (*maximalElement)->getSortingParameter();
256 const auto calculateSortingParameter = [maximalSortingParameter, sortingParameterOffset](
unsigned int sortingParameters) {
257 if (maximalSortingParameter > 0) {
258 return maximalSortingParameter - sortingParameters + sortingParameterOffset;
260 return sortingParameters + sortingParameterOffset;
263 const auto testHitWeight = [recoTrack, optionalMinimalWeight](
const RecoHitInformation * recoHitInformation) {
264 if (not optionalMinimalWeight) {
267 double minimalWeight = *optionalMinimalWeight;
271 if (not kalmanFitterInfo) {
274 const std::vector<double>& weights = kalmanFitterInfo->
getWeights();
275 const auto checkWeight = [minimalWeight](
const double weight) {
276 return weight >= minimalWeight;
278 return std::any_of(weights.begin(), weights.end(), checkWeight);
286 if (testHitWeight(recoHitInfo)) {
287 hitsCopied +=
addPXDHit(pxdHit, calculateSortingParameter(recoHitInfo->getSortingParameter()),
288 recoHitInfo->getFoundByTrackFinder());
295 if (testHitWeight(recoHitInfo)) {
296 hitsCopied +=
addSVDHit(svdHit, calculateSortingParameter(recoHitInfo->getSortingParameter()),
297 recoHitInfo->getFoundByTrackFinder());
304 if (testHitWeight(recoHitInfo)) {
305 hitsCopied +=
addCDCHit(cdcHit, calculateSortingParameter(recoHitInfo->getSortingParameter()),
306 recoHitInfo->getRightLeftInformation(),
307 recoHitInfo->getFoundByTrackFinder());
314 if (testHitWeight(recoHitInfo)) {
315 hitsCopied +=
addBKLMHit(bklmHit, calculateSortingParameter(recoHitInfo->getSortingParameter()),
316 recoHitInfo->getFoundByTrackFinder());
323 if (testHitWeight(recoHitInfo)) {
324 hitsCopied +=
addEKLMHit(eklmHit, calculateSortingParameter(recoHitInfo->getSortingParameter()),
325 recoHitInfo->getFoundByTrackFinder());
360 for (
unsigned int i = 0; i < trackSize; i++) {
365 B2DEBUG(100,
"Can not get mSoP because of: " << exception.
what());
376 std::vector<RelationEntry> relatedRecoHitInformations = getRelationsWith<RecoHitInformation>
378 std::sort(relatedRecoHitInformations.begin(), relatedRecoHitInformations.end() , [](
const RelationEntry & lhs,
380 return dynamic_cast<RecoHitInformation*>(lhs.object)->getSortingParameter() > dynamic_cast<RecoHitInformation*>
381 (rhs.object)->getSortingParameter();
385 for (
unsigned int i = 1; i < relatedRecoHitInformations.size() - 1; ++i) {
386 dynamic_cast<RecoHitInformation*
>(relatedRecoHitInformations[i].object)->setFlag(RecoHitInformation::RecoHitFlag::c_pruned);
387 dynamic_cast<RecoHitInformation*
>(relatedRecoHitInformations[i].object)->setCreatedTrackPointID(-1);
407 if (trackRepresentation ==
nullptr) {
408 if (PDGcode == Monopoles::c_monopolePDGCode) {
415 return trackRepresentation;
422 const unsigned int numberOfPoints =
m_genfitTrack.getNumPointsWithMeasurement();
424 assert(numberOfPoints > 0);
427 double minimalDistance2 = 0;
428 for (
unsigned int hitIndex = 0; hitIndex < numberOfPoints; hitIndex++) {
432 const double currentDistance2 = (measuredStateOnPlane.getPos() - closestPoint).Mag2();
434 if (not nearestStateOnPlane or currentDistance2 < minimalDistance2) {
435 nearestStateOnPlane = &measuredStateOnPlane;
436 minimalDistance2 = currentDistance2;
439 B2DEBUG(50,
"Can not get mSoP because of: " << exception.
what());
443 return *nearestStateOnPlane;
463 B2FATAL(
"Only positive pdgCode is possible when calling getTrackRepresentationForPDG, got " << pdgCode);
471 if (rkTrackRepresenation !=
nullptr) {
473 if (std::abs(rkTrackRepresenation->
getPDG()) == pdgCode) {
474 return trackRepresentation;
490 return std::make_tuple(measuredStateOnPlane.getPos(), measuredStateOnPlane.getMom(), measuredStateOnPlane.getCharge());
495 const TVector3& position,
const TVector3& momentum,
short charge,
496 const TMatrixDSym& covariance,
double timeSeed)
const
517 return copyToStoreArrayUsing(storeArray, mSoP.getPos(), mSoP.getMom(),
static_cast<short>(mSoP.getCharge()),
518 mSoP.get6DCov(), mSoP.getTime());
540 std::vector<RecoHitInformation*> hitList;
544 hitList.reserve(recoHitInformations.
size());
545 for (
auto& recoHit : recoHitInformations) {
546 hitList.push_back(&recoHit);
553 return a->getSortingParameter() < b->getSortingParameter();
566 B2FATAL(
"MeasuredStateOnPlane can not be retrieved for RecoTracks where no fit has been attempted.");
570 B2FATAL(
"MeasuredStateOnPlane cannot be provided for RecoHit which was not used in the fit.");
574 if (not hitTrackPoint) {
575 B2FATAL(
"TrackPoint was requested which has not been created");
578 const auto* fittedResult = hitTrackPoint->getFitterInfo(representation);
579 if (not fittedResult) {
580 throw NoTrackFitResult();
583 return fittedResult->getFittedState();
589 for (
unsigned int i = 0; i < trackSize; i++) {
593 B2DEBUG(50,
"Can not get mSoP because of: " << exception.
what());
597 B2FATAL(
"There is no single hit with a valid mSoP in this track! Check if the fit failed with wasFitSuccessful before");
603 for (
int i = -1; i >= -trackSize; i--) {
607 B2DEBUG(50,
"Can not get mSoP because of: " << exception.
what());
611 B2FATAL(
"There is no single hit with a valid mSoP in this track!");
616 std::stringstream out;
627 out <<
"<b>was fitted with " << rep->getPDG() <<
"</b>=" <<
wasFitSuccessful() <<
", ";
Store one BKLM strip hit as a ROOT object.
Class containing the result of the unpacker in raw data and the result of the digitizer in simulation...
This dataobject is used only for EKLM alignment.
A Class to store the Monte Carlo particle information.
int getArrayIndex() const
Get 0-based index of the particle in the corresponding MCParticle list.
The PXD Cluster class This class stores all information about reconstructed PXD clusters The position...
static genfit::Track & getGenfitTrack(RecoTrack &recoTrack)
Give access to the RecoTrack's genfit::Track.
static genfit::AbsTrackRep * createOrReturnRKTrackRep(RecoTrack &recoTrack, int PDGcode)
Checks if a TrackRap for the PDG id of the RecoTrack (and its charge conjugate) does already exit and...
This is the Reconstruction Event-Data Model Track.
const genfit::FitStatus * getTrackFitStatus(const genfit::AbsTrackRep *representation=nullptr) const
Return the track fit status for the given representation or for the cardinal one. You are not allowed...
bool addBKLMHit(const UsedBKLMHit *bklmHit, const unsigned int sortingParameter, OriginTrackFinder foundByTrackFinder=OriginTrackFinder::c_undefinedTrackFinder)
Adds a bklm hit with the given information to the reco track.
bool addCDCHit(const UsedCDCHit *cdcHit, const unsigned int sortingParameter, RightLeftInformation rightLeftInformation=RightLeftInformation::c_undefinedRightLeftInformation, OriginTrackFinder foundByTrackFinder=OriginTrackFinder::c_undefinedTrackFinder)
Adds a cdc hit with the given information to the reco track.
void deleteFittedInformation()
Delete all fitted information for all representations.
std::tuple< TVector3, TVector3, short > extractTrackState() const
Return the position, the momentum and the charge of the first measured state on plane or - if unfitte...
bool wasFitSuccessful(const genfit::AbsTrackRep *representation=nullptr) const
Returns true if the last fit with the given representation was successful.
std::string m_storeArrayNameOfCDCHits
Store array name of added CDC hits.
std::vector< Belle2::RecoTrack::UsedSVDHit * > getSVDHitList() const
Return an unsorted list of svd hits.
bool addEKLMHit(const UsedEKLMHit *eklmHit, const unsigned int sortingParameter, OriginTrackFinder foundByTrackFinder=OriginTrackFinder::c_undefinedTrackFinder)
Adds an eklm hit with the given information to the reco track.
bool addPXDHit(const UsedPXDHit *pxdHit, const unsigned int sortingParameter, OriginTrackFinder foundByTrackFinder=OriginTrackFinder::c_undefinedTrackFinder)
Adds a pxd hit with the given information to the reco track.
std::vector< Belle2::RecoTrack::UsedBKLMHit * > getBKLMHitList() const
Return an unsorted list of bklm hits.
genfit::AbsTrackRep * getTrackRepresentationForPDG(int pdgCode)
Return an already created track representation of the given reco track for the PDG.
const std::vector< genfit::TrackPoint * > & getHitPointsWithMeasurement() const
Return a list of measurements and track points, which can be used e.g. to extrapolate....
const std::vector< genfit::AbsTrackRep * > & getRepresentations() const
Return a list of track representations. You are not allowed to modify or delete them!
std::string m_storeArrayNameOfBKLMHits
Store array name of added BKLM hits.
std::string getInfoHTML() const override
Get useful information on EventDisplay.
const std::string & getStoreArrayNameOfCDCHits() const
Name of the store array of the cdc hits.
void prune()
Prune the genfit track, e.g.
size_t addHitsFromRecoTrack(const RecoTrack *recoTrack, unsigned int sortingParameterOffset=0, bool reversed=false, boost::optional< double > optionalMinimalWeight=boost::none)
Add all hits from another RecoTrack to this RecoTrack.
std::vector< Belle2::RecoTrack::UsedPXDHit * > getPXDHitList() const
Return an unsorted list of pxd hits.
const std::string & getStoreArrayNameOfBKLMHits() const
Name of the store array of the bklm hits.
RecoTrack * copyToStoreArrayUsing(StoreArray< RecoTrack > &storeArray, const TVector3 &position, const TVector3 &momentum, short charge, const TMatrixDSym &covariance, double timeSeed) const
Append a new RecoTrack to the given store array and copy its general properties, but not the hits the...
const std::string & getStoreArrayNameOfSVDHits() const
Name of the store array of the svd hits.
RecoTrack * copyToStoreArrayUsingSeeds(StoreArray< RecoTrack > &storeArray) const
Append a new RecoTrack to the given store array and copy its general properties, but not the hits the...
std::vector< Belle2::RecoTrack::UsedCDCHit * > getCDCHitList() const
Return an unsorted list of cdc hits.
void setTimeSeed(const double timeSeed)
Set the time seed. ATTENTION: This is not the fitted time.
TVector3 getMomentumSeed() const
Return the momentum seed stored in the reco track. ATTENTION: This is not the fitted momentum.
genfit::TrackCand createGenfitTrackCand() const
Create a genfit::TrackCand out of this reco track and copy all information to the track candidate.
const genfit::MeasuredStateOnPlane & getMeasuredStateOnPlaneFromLastHit(const genfit::AbsTrackRep *representation=nullptr) const
Return genfit's MeasuredStateOnPlane for the last hit in a fit useful for extrapolation of measuremen...
void setSeedCovariance(const TMatrixDSym &seedCovariance)
Set the covariance of the seed. ATTENTION: This is not the fitted covariance.
bool hasTrackFitStatus(const genfit::AbsTrackRep *representation=nullptr) const
Check, if there is a fit status for the given representation or for the cardinal one.
RecoTrack * copyToStoreArray(StoreArray< RecoTrack > &storeArray) const
Append a new RecoTrack to the given store array and copy its general properties, but not the hits the...
const genfit::TrackPoint * getCreatedTrackPoint(const RecoHitInformation *recoHitInformation) const
Get a pointer to the TrackPoint that was created from this hit.
const genfit::MeasuredStateOnPlane & getMeasuredStateOnPlaneClosestTo(const TVector3 &closestPoint, const genfit::AbsTrackRep *representation=nullptr)
Return genfit's MasuredStateOnPlane, that is closest to the given point useful for extrapolation of m...
std::vector< RecoHitInformation * > getRecoHitInformations(bool getSorted=false) const
Return a list of all RecoHitInformations associated with the RecoTrack.
static void registerRequiredRelations(StoreArray< RecoTrack > &recoTracks, std::string const &pxdHitsStoreArrayName="", std::string const &svdHitsStoreArrayName="", std::string const &cdcHitsStoreArrayName="", std::string const &bklmHitsStoreArrayName="", std::string const &eklmHitsStoreArrayName="", std::string const &recoHitInformationStoreArrayName="")
Convenience method which registers all relations required to fully use a RecoTrack.
std::string m_storeArrayNameOfSVDHits
Store array name of added SVD hits.
TVector3 getPositionSeed() const
Return the position seed stored in the reco track. ATTENTION: This is not the fitted position.
const std::string & getStoreArrayNameOfRecoHitInformation() const
Name of the store array of the reco hit informations.
const TMatrixDSym & getSeedCovariance() const
Return the covariance matrix of the seed. ATTENTION: This is not the fitted covariance.
const std::string & getStoreArrayNameOfPXDHits() const
Name of the store array of the pxd hits.
void deleteFittedInformationForRepresentation(const genfit::AbsTrackRep *rep)
Delete all fitted information for the given representations.
short int getChargeSeed() const
Return the charge seed stored in the reco track. ATTENTION: This is not the fitted charge.
const std::string & getStoreArrayNameOfEKLMHits() const
Name of the store array of the eklm hits.
const genfit::MeasuredStateOnPlane & getMeasuredStateOnPlaneFromFirstHit(const genfit::AbsTrackRep *representation=nullptr) const
Return genfit's MeasuredStateOnPlane for the first hit in a fit useful for extrapolation of measureme...
genfit::Track m_genfitTrack
Internal storage for the genfit track.
RecoHitInformation * getRecoHitInformation(HitType *hit) const
Return the reco hit information for a generic hit from the storeArray.
const genfit::MeasuredStateOnPlane & getMeasuredStateOnPlaneFromRecoHit(const RecoHitInformation *recoHitInfo, const genfit::AbsTrackRep *representation=nullptr) const
Return genfit's MeasuredStateOnPlane on plane for associated with one RecoHitInformation.
std::string m_storeArrayNameOfEKLMHits
Store array name of added EKLM hits.
RecoTrack()
Empty constructor for ROOT. Do not use!
std::vector< Belle2::RecoTrack::UsedEKLMHit * > getEKLMHitList() const
Return an unsorted list of eklm hits.
std::string m_storeArrayNameOfPXDHits
Store array name of added PXD hits.
bool addSVDHit(const UsedSVDHit *svdHit, const unsigned int sortingParameter, OriginTrackFinder foundByTrackFinder=OriginTrackFinder::c_undefinedTrackFinder)
Adds a svd hit with the given information to the reco track.
void checkDirtyFlag() const
Helper: Check the dirty flag and produce a warning, whenever a fit result is accessed.
double getTimeSeed() const
Return the time seed stored in the reco track. ATTENTION: This is not the fitted time.
static RecoTrack * createFromTrackCand(const genfit::TrackCand &trackCand, const std::string &storeArrayNameOfRecoTracks="", const std::string &storeArrayNameOfCDCHits="", const std::string &storeArrayNameOfSVDHits="", const std::string &storeArrayNameOfPXDHits="", const std::string &storeArrayNameOfBKLMHits="", const std::string &storeArrayNameOfEKLMHits="", const std::string &storeArrayNameOfRecoHitInformation="", const bool recreateSortingParameters=false)
Create a reco track from a genfit::TrackCand and save it to the given store array.
std::string m_storeArrayNameOfRecoHitInformation
Store array of added RecoHitInformation.
Class for type safe access to objects that are referred to in relations.
size_t size() const
Get number of relations.
The SVD Cluster class This class stores all information about reconstructed SVD clusters.
bool isOptional(const std::string &name="")
Tell the DataStore about an optional input.
const std::string & getName() const
Return name under which the object is saved in the DataStore.
bool registerInDataStore(DataStore::EStoreFlags storeFlags=DataStore::c_WriteOut)
Register the object/array in the DataStore.
Accessor to arrays stored in the data store.
T * appendNew()
Construct a new T object at the end of the array.
bool registerRelationTo(const StoreArray< TO > &toArray, DataStore::EDurability durability=DataStore::c_Event, DataStore::EStoreFlags storeFlags=DataStore::c_WriteOut, const std::string &namedRelation="") const
Register a relation to the given StoreArray.
Abstract base class for a track representation.
int getPDG() const
Get the pdg code.
Exception class for error handling in GENFIT (provides storage for diagnostic information)
virtual const char * what() const noexcept
Standard error message handling for exceptions. use like "std::cerr << e.what();".
Class where important numbers and properties of a fit can be stored.
bool isFitConverged(bool inAllPoints=true) const
Did the fit converge (in all Points or only partially)?
FitStatus for use with AbsKalmanFitter implementations.
Collects information needed and produced by a AbsKalmanFitter implementations and is specific to one ...
std::vector< double > getWeights() const
Get weights of measurements.
#StateOnPlane with additional covariance matrix.
Monopole track representation.
AbsTrackRep with 5D track parameterization in plane coordinates: (q/p, u', v', u, v)
Hit object for use in TrackCand.
Track candidate – seed values and indices.
void setTimeSeed(double time)
Set the time at which the seed is defined.
TVector3 getMomSeed() const
get the seed value for track: mom.
void setPosMomSeed(const TVector3 &pos, const TVector3 &mom, const double charge)
sets the state to seed the track fitting.
TVector3 getPosSeed() const
get the seed value for track: pos.
void setCovSeed(const TMatrixDSym &cov6D)
set the covariance matrix seed (6D).
void setMcTrackId(int i)
Set the MCT track id, for MC simulations.
void sortHits()
Sort the hits that were already added to the trackCand using the sorting parameters.
double getTimeSeed() const
Get the time at which the seed state is defined.
Object containing AbsMeasurement and AbsFitterInfo objects.
KalmanFitterInfo * getKalmanFitterInfo(const AbsTrackRep *rep=nullptr) const
Helper to avoid casting.
Collection of TrackPoint objects, AbsTrackRep objects and FitStatus objects.
void deleteFittedState(const genfit::AbsTrackRep *rep)
Delete the fit status and all the FitStates of the TrackPoints for the given hypothesis.
bool hasFitStatus(const AbsTrackRep *rep=nullptr) const
Check if track has a FitStatus for given AbsTrackRep. Per default, check for cardinal rep.
const MeasuredStateOnPlane & getFittedState(int id=0, const AbsTrackRep *rep=nullptr, bool biased=true) const
Shortcut to get FittedStates.
void prune(const Option_t *="CFLWRMIU")
Delete unneeded information from the Track.
Hit object for use in TrackCand.
Abstract base class for different kinds of events.