11 #include <framework/datastore/StoreArray.h>
12 #include <framework/datastore/RelationsObject.h>
13 #include <framework/core/FrameworkExceptions.h>
15 #include <genfit/Track.h>
17 #include <tracking/dataobjects/RecoHitInformation.h>
19 #include <boost/optional.hpp>
35 class RecoTrackGenfitAccess;
37 BELLE2_DEFINE_EXCEPTION(NoTrackFitResult,
"No track fit result available for this hit (e.g. DAF has removed it).")
125 static void registerRequiredRelations(
127 std::string
const& pxdHitsStoreArrayName =
"",
128 std::string
const& svdHitsStoreArrayName =
"",
129 std::string
const& cdcHitsStoreArrayName =
"",
130 std::string
const& bklmHitsStoreArrayName =
"",
131 std::string
const& eklmHitsStoreArrayName =
"",
132 std::string
const& recoHitInformationStoreArrayName =
"");
150 RecoTrack(
const TVector3& seedPosition,
const TVector3& seedMomentum,
const short int seedCharge,
151 const std::string& storeArrayNameOfCDCHits =
"",
152 const std::string& storeArrayNameOfSVDHits =
"",
153 const std::string& storeArrayNameOfPXDHits =
"",
154 const std::string& storeArrayNameOfBKLMHits =
"",
155 const std::string& storeArrayNameOfEKLMHits =
"",
156 const std::string& storeArrayNameOfRecoHitInformation =
"");
179 const std::string& storeArrayNameOfRecoTracks =
"",
180 const std::string& storeArrayNameOfCDCHits =
"",
181 const std::string& storeArrayNameOfSVDHits =
"",
182 const std::string& storeArrayNameOfPXDHits =
"",
183 const std::string& storeArrayNameOfBKLMHits =
"",
184 const std::string& storeArrayNameOfEKLMHits =
"",
185 const std::string& storeArrayNameOfRecoHitInformation =
"",
186 const bool recreateSortingParameters =
false
199 const TVector3& momentum,
short charge,
200 const TMatrixDSym& covariance,
double timeSeed)
const;
226 size_t addHitsFromRecoTrack(
const RecoTrack* recoTrack,
unsigned int sortingParameterOffset = 0,
227 bool reversed =
false, boost::optional<double> optionalMinimalWeight = boost::none);
239 RightLeftInformation rightLeftInformation = RightLeftInformation::c_undefinedRightLeftInformation,
240 OriginTrackFinder foundByTrackFinder = OriginTrackFinder::c_undefinedTrackFinder)
242 return addHit(cdcHit, rightLeftInformation, foundByTrackFinder, sortingParameter);
254 OriginTrackFinder foundByTrackFinder = OriginTrackFinder::c_undefinedTrackFinder)
256 return addHit(pxdHit, foundByTrackFinder, sortingParameter);
268 OriginTrackFinder foundByTrackFinder = OriginTrackFinder::c_undefinedTrackFinder)
270 return addHit(svdHit, foundByTrackFinder, sortingParameter);
282 OriginTrackFinder foundByTrackFinder = OriginTrackFinder::c_undefinedTrackFinder)
284 return addHit(bklmHit, foundByTrackFinder, sortingParameter);
296 OriginTrackFinder foundByTrackFinder = OriginTrackFinder::c_undefinedTrackFinder)
298 return addHit(eklmHit, foundByTrackFinder, sortingParameter);
306 template<
class HitType>
310 (m_storeArrayNameOfRecoHitInformation);
314 if (recoHitInformation.getRelatedFrom<
RecoTrack>(this->getArrayName()) ==
this) {
316 return &recoHitInformation;
325 template <
class HitType>
333 template <
class HitType>
341 template <
class HitType>
349 template <
class HitType>
357 template <
class HitType>
366 template <
class HitType>
374 template <
class HitType>
390 bool hasCDCHits()
const {
return getRelatedFrom<UsedCDCHit>(m_storeArrayNameOfCDCHits) !=
nullptr; }
393 bool hasSVDHits()
const {
return getRelatedFrom<UsedSVDHit>(m_storeArrayNameOfSVDHits) !=
nullptr; }
396 bool hasPXDHits()
const {
return getRelatedFrom<UsedPXDHit>(m_storeArrayNameOfPXDHits) !=
nullptr; }
399 bool hasBKLMHits()
const {
return getRelatedFrom<UsedBKLMHit>(m_storeArrayNameOfBKLMHits) !=
nullptr; }
402 bool hasEKLMHits()
const {
return getRelatedFrom<UsedEKLMHit>(m_storeArrayNameOfEKLMHits) !=
nullptr; }
405 template <
class HitType>
409 return std::find_if(relatedTracksToHit.
begin(), relatedTracksToHit.
end(), [
this](
const RecoTrack & recoTrack) {
410 return &recoTrack == this;
411 }) != relatedTracksToHit.
end();
416 unsigned int getNumberOfCDCHits()
const {
return getNumberOfHitsOfGivenType<UsedCDCHit>(m_storeArrayNameOfCDCHits); }
419 unsigned int getNumberOfSVDHits()
const {
return getNumberOfHitsOfGivenType<UsedSVDHit>(m_storeArrayNameOfSVDHits); }
422 unsigned int getNumberOfPXDHits()
const {
return getNumberOfHitsOfGivenType<UsedPXDHit>(m_storeArrayNameOfPXDHits); }
425 unsigned int getNumberOfBKLMHits()
const {
return getNumberOfHitsOfGivenType<UsedBKLMHit>(m_storeArrayNameOfBKLMHits); }
428 unsigned int getNumberOfEKLMHits()
const {
return getNumberOfHitsOfGivenType<UsedEKLMHit>(m_storeArrayNameOfEKLMHits); }
433 return getNumberOfCDCHits() + getNumberOfPXDHits() +
434 getNumberOfSVDHits() + getNumberOfBKLMHits() + getNumberOfEKLMHits();
440 return getNumberOfCDCHits() + getNumberOfPXDHits() +
441 getNumberOfSVDHits();
445 std::vector<Belle2::RecoTrack::UsedCDCHit*>
getCDCHitList()
const {
return getHitList<UsedCDCHit>(m_storeArrayNameOfCDCHits); }
448 std::vector<Belle2::RecoTrack::UsedSVDHit*>
getSVDHitList()
const {
return getHitList<UsedSVDHit>(m_storeArrayNameOfSVDHits); }
451 std::vector<Belle2::RecoTrack::UsedPXDHit*>
getPXDHitList()
const {
return getHitList<UsedPXDHit>(m_storeArrayNameOfPXDHits); }
454 std::vector<Belle2::RecoTrack::UsedBKLMHit*>
getBKLMHitList()
const {
return getHitList<UsedBKLMHit>(m_storeArrayNameOfBKLMHits); }
457 std::vector<Belle2::RecoTrack::UsedEKLMHit*>
getEKLMHitList()
const {
return getHitList<UsedEKLMHit>(m_storeArrayNameOfEKLMHits); }
460 std::vector<Belle2::RecoTrack::UsedCDCHit*>
getSortedCDCHitList()
const {
return getSortedHitList<UsedCDCHit>(m_storeArrayNameOfCDCHits); }
463 std::vector<Belle2::RecoTrack::UsedSVDHit*>
getSortedSVDHitList()
const {
return getSortedHitList<UsedSVDHit>(m_storeArrayNameOfSVDHits); }
466 std::vector<Belle2::RecoTrack::UsedPXDHit*>
getSortedPXDHitList()
const {
return getSortedHitList<UsedPXDHit>(m_storeArrayNameOfPXDHits); }
469 std::vector<Belle2::RecoTrack::UsedBKLMHit*>
getSortedBKLMHitList()
const {
return getSortedHitList<UsedBKLMHit>(m_storeArrayNameOfBKLMHits); }
472 std::vector<Belle2::RecoTrack::UsedEKLMHit*>
getSortedEKLMHitList()
const {
return getSortedHitList<UsedEKLMHit>(m_storeArrayNameOfEKLMHits); }
478 const TVectorD& seed = m_genfitTrack.getStateSeed();
479 return TVector3(seed(0), seed(1), seed(2));
485 const TVectorD& seed = m_genfitTrack.getStateSeed();
486 return TVector3(seed(3), seed(4), seed(5));
492 return m_genfitTrack.getStateSeed();
499 double getTimeSeed()
const {
return m_genfitTrack.getTimeSeed(); }
502 std::tuple<TVector3, TVector3, short> extractTrackState()
const;
507 m_genfitTrack.setStateSeed(positionSeed, momentumSeed);
508 deleteFittedInformation();
514 m_charge = chargeSeed;
515 deleteFittedInformation();
521 m_genfitTrack.setTimeSeed(timeSeed);
522 deleteFittedInformation();
529 void setSeedCovariance(
const TMatrixDSym& seedCovariance) { m_genfitTrack.setCovSeed(seedCovariance); }
539 return m_genfitTrack.getFitStatus(representation);
549 return m_genfitTrack.getCardinalRep();
556 return m_genfitTrack.getTrackReps();
573 std::vector<RecoHitInformation*> getRecoHitInformations(
bool getSorted =
false)
const;
609 return m_genfitTrack.getPointsWithMeasurement();
622 m_dirtyFlag = dirtyFlag;
624 deleteFittedInformation();
653 template<
class HitType>
659 (m_storeArrayNameOfRecoHitInformation);
662 HitType*
const hit = hitInformation.getRelatedTo<HitType>(storeArrayNameOfHits);
663 if (hit !=
nullptr && pickFunction(hitInformation, hit)) {
664 mapFunction(hitInformation, hit);
675 template<
class HitType>
678 std::function<
bool(
const RecoHitInformation&,
const HitType*)>
const& pickFunction)
const
681 (m_storeArrayNameOfRecoHitInformation);
684 const HitType*
const hit = hitInformation.getRelatedTo<HitType>(storeArrayNameOfHits);
685 if (hit !=
nullptr && pickFunction(hitInformation, hit)) {
686 mapFunction(hitInformation, hit);
696 template<
class HitType>
700 mapOnHits<HitType>(storeArrayNameOfHits, mapFunction, [](
const RecoHitInformation&,
const HitType*) ->
bool {
return true; });
708 template<
class HitType>
710 std::function<
void(
const RecoHitInformation&,
const HitType*)>
const& mapFunction)
const
712 mapOnHits<HitType>(storeArrayNameOfHits, mapFunction, [](
const RecoHitInformation&,
const HitType*) ->
bool {
return true; });
719 return m_matchingStatus;
725 m_matchingStatus = matchingStatus;
731 return m_qualityIndicator;
737 m_qualityIndicator = qualityIndicator;
747 void deleteFittedInformation();
759 std::string getInfoHTML()
const override;
765 short int m_charge = 1;
767 std::string m_storeArrayNameOfCDCHits =
"";
769 std::string m_storeArrayNameOfSVDHits =
"";
771 std::string m_storeArrayNameOfPXDHits =
"";
773 std::string m_storeArrayNameOfBKLMHits =
"";
775 std::string m_storeArrayNameOfEKLMHits =
"";
777 std::string m_storeArrayNameOfRecoHitInformation =
"";
780 bool m_dirtyFlag =
true;
784 float m_qualityIndicator = NAN;
792 template<
class HitType,
class ...Args>
793 bool addHit(
const HitType* hit, Args&& ... params)
802 addHitWithHitInformation(hit, newRecoHitInformation);
812 template <
class HitType>
815 hit->addRelationTo(
this);
816 addRelationTo(recoHitInformation);
822 template <
class HitType>
826 if (recoHitInformation ==
nullptr) {
827 B2FATAL(
"Queried hit is not in the reco track! Did you prune it?");
829 return recoHitInformation;
837 template <
class HitType>
840 return getRelationsFrom<HitType>(storeArrayNameOfHits).size();
847 template<
class HitType>
851 (m_storeArrayNameOfRecoHitInformation);
853 std::vector<const RecoHitInformation*> relatedHitInformationAsVector;
854 relatedHitInformationAsVector.reserve(relatedHitInformation.
size());
857 relatedHitInformationAsVector.push_back(&hitInformation);
859 std::sort(relatedHitInformationAsVector.begin(), relatedHitInformationAsVector.end(), [](
const RecoHitInformation * a,
861 return a->getSortingParameter() < b->getSortingParameter();
864 std::vector<HitType*> hitList;
865 hitList.reserve(relatedHitInformationAsVector.size());
867 HitType* relatedHit = hitInformation->getRelatedTo<HitType>(storeArrayNameOfHits);
868 if (relatedHit !=
nullptr) {
869 hitList.push_back(relatedHit);
879 template<
class HitType>
880 std::vector<HitType*>
getHitList(
const std::string& storeArrayNameOfHits)
const
883 std::vector<HitType*> hitList;
884 hitList.reserve(relatedHits.
size());
885 for (HitType& hit : relatedHits) {
887 hitList.push_back(&hit);
897 B2DEBUG(100,
"Dirty flag is set. The result may not be in sync with the latest changes. Refit the track to be sure.");
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.
The PXD Cluster class This class stores all information about reconstructed PXD clusters The position...
This class allows access to the genfit::Track of the RecoTrack.
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...
ClassDefOverride(RecoTrack, 9)
Making this class a ROOT class.
void setChargeSeed(const short int chargeSeed)
Set the charge seed stored in the reco track. ATTENTION: This is not the fitted charge.
TrackingDetector getTrackingDetector(const HitType *hit) const
Return the tracking detector of a given hit (every type) or throws an exception of the hit is not rel...
RecoHitInformation::UsedCDCHit UsedCDCHit
Copy the definitions from the RecoHitInformation to this class.
void mapOnHits(const std::string &storeArrayNameOfHits, std::function< void(RecoHitInformation &, HitType *)> const &mapFunction, std::function< bool(const RecoHitInformation &, const HitType *)> const &pickFunction)
Call a function on all hits of the given type in the store array, that are related to this track.
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.
void mapOnHits(const std::string &storeArrayNameOfHits, std::function< void(RecoHitInformation &, HitType *)> const &mapFunction)
Call a function on all hits of the given type in the store array, that are related to this track.
void mapOnHits(const std::string &storeArrayNameOfHits, std::function< void(const RecoHitInformation &, const HitType *)> const &mapFunction) const
Call a function on all hits of the given type in the store array, that are related to this 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.
bool hasCDCHits() const
Returns true if the track has cdc hits.
unsigned int getNumberOfBKLMHits() const
Return the number of bklm hits.
void mapOnHits(const std::string &storeArrayNameOfHits, std::function< void(const RecoHitInformation &, const HitType *)> const &mapFunction, std::function< bool(const RecoHitInformation &, const HitType *)> const &pickFunction) const
Call a function on all hits of the given type in the store array, that are related to this track.
RecoHitInformation::RecoHitDetector TrackingDetector
Copy the definitions from the RecoHitInformation to this class.
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.
void setPositionAndMomentum(const TVector3 &positionSeed, const TVector3 &momentumSeed)
Set the position and momentum seed of the reco track. ATTENTION: This is not the fitted position or m...
void setSortingParameter(const HitType *hit, unsigned int sortingParameter)
Set the sorting parameter or throws an exception of the hit is not related to the track....
std::vector< Belle2::RecoTrack::UsedPXDHit * > getSortedPXDHitList() const
Return a sorted list of pxd hits. Sorted by the sortingParameter.
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.
RecoTrack & operator=(RecoTrack const &)=delete
Delete the copy construtr.
std::vector< Belle2::RecoTrack::UsedBKLMHit * > getBKLMHitList() const
Return an unsorted list of bklm hits.
RecoHitInformation * getRecoHitInformationSafely(HitType *hit) const
Returns the reco hit information for a given hit or throws an exception if the hit is not related to ...
RecoHitInformation::UsedEKLMHit UsedEKLMHit
Copy the definitions from the RecoHitInformation to this class.
MatchingStatus
Enum for the matching status of this reco track (set by the matching modules in the tracking package)...
const std::vector< genfit::TrackPoint * > & getHitPointsWithMeasurement() const
Return a list of measurements and track points, which can be used e.g. to extrapolate....
void setRightLeftInformation(const HitType *hit, RightLeftInformation rightLeftInformation)
Set the right left information or throws an exception of the hit is not related to the track....
void setDirtyFlag(const bool &dirtyFlag=true)
Set to true, if you want to rebuild the measurements and do the fit independent on changes of the hit...
const std::vector< genfit::AbsTrackRep * > & getRepresentations() const
Return a list of track representations. You are not allowed to modify or delete them!
unsigned int getNumberOfEKLMHits() const
Return the number of eklm hits.
RightLeftInformation getRightLeftInformation(const HitType *hit) const
Return the right left information of a given hit (every type) or throws an exception of the hit is no...
unsigned int getNumberOfSVDHits() const
Return the number of svd hits.
OriginTrackFinder getFoundByTrackFinder(const HitType *hit) const
Return the found by track finder flag for the given hit (every type) or throws an exception of the hi...
const std::string & getStoreArrayNameOfCDCHits() const
Name of the store array of the cdc hits.
unsigned int getNumberOfCDCHits() const
Return the number of cdc hits.
bool addHit(const HitType *hit, Args &&... params)
Add a generic hit with the given parameters for the reco hit information.
unsigned int getNumberOfTrackingHits() const
Return the number of cdc + svd + pxd hits.
RecoHitInformation::UsedBKLMHit UsedBKLMHit
Copy the definitions from the RecoHitInformation to this class.
bool hasHit(const HitType *hit) const
Returns true if the given hit is in the track.
std::vector< Belle2::RecoTrack::UsedPXDHit * > getPXDHitList() const
Return an unsorted list of pxd hits.
void setMatchingStatus(MatchingStatus matchingStatus)
Set the matching status (used by the TrackMatcher module)
RecoTrack(const RecoTrack &)=delete
Delete the copy construtr.
unsigned int getSortingParameter(const HitType *hit) const
Return the sorting parameter for a given hit (every type) or throws an exception of the hit is not re...
const std::string & getStoreArrayNameOfBKLMHits() const
Name of the store array of the bklm hits.
bool hasPXDHits() const
Returns true if the track has pxd hits.
const std::string & getStoreArrayNameOfSVDHits() const
Name of the store array of the svd hits.
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.
unsigned int getNumberOfHitsOfGivenType(const std::string &storeArrayNameOfHits) const
Get the number of hits for the given hit type in the store array that are related to this track.
void setFoundByTrackFinder(const HitType *hit, OriginTrackFinder originTrackFinder)
Set the found by track finder flag or throws an exception of the hit is not related to the track.
TVector3 getMomentumSeed() const
Return the momentum seed stored in the reco track. ATTENTION: This is not the fitted momentum.
bool hasEKLMHits() const
Returns true if the track has eklm hits.
void setSeedCovariance(const TMatrixDSym &seedCovariance)
Set the covariance of the seed. ATTENTION: This is not the fitted covariance.
float getQualityIndicator() const
Get the quality index attached to this RecoTrack given by one of the reconstruction algorithms....
void addHitWithHitInformation(const HitType *hit, RecoHitInformation *recoHitInformation)
Add the needed relations for adding a generic hit with the given hit information.
void setQualityIndicator(const float qualityIndicator)
Set the quality index attached to this RecoTrack. 0 means likely fake.
MatchingStatus getMatchingStatus() const
Return the matching status set by the TrackMatcher module.
std::vector< Belle2::RecoTrack::UsedBKLMHit * > getSortedBKLMHitList() const
Return a sorted list of bklm hits. Sorted by the sortingParameter.
genfit::AbsTrackRep * getCardinalRepresentation() const
Get a pointer to the cardinal track representation. You are not allowed to modify or delete it!
std::vector< Belle2::RecoTrack::UsedEKLMHit * > getSortedEKLMHitList() const
Return a sorted list of eklm hits. Sorted by the sortingParameter.
bool getDirtyFlag() const
This returns true, if a hit was added after the last fit and measurement creation and a refit should ...
TVector3 getPositionSeed() const
Return the position seed stored in the reco track. ATTENTION: This is not the fitted position.
const TVectorD & getStateSeed() const
Return the state seed in the form posX, posY, posZ, momX, momY, momZ. ATTENTION: This is not the fitt...
const std::string & getStoreArrayNameOfRecoHitInformation() const
Name of the store array of the reco hit informations.
std::vector< HitType * > getHitList(const std::string &storeArrayNameOfHits) const
Return an unsorted list of hits of the given type in the store array that are related to this track.
std::vector< Belle2::RecoTrack::UsedSVDHit * > getSortedSVDHitList() const
Return a sorted list of svd hits. Sorted by the sortingParameter.
const TMatrixDSym & getSeedCovariance() const
Return the covariance matrix of the seed. ATTENTION: This is not the fitted covariance.
bool hasBKLMHits() const
Returns true if the track has bklm hits.
const std::string & getStoreArrayNameOfPXDHits() const
Name of the store array of the pxd hits.
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.
RecoHitInformation::RightLeftInformation RightLeftInformation
Copy the definitions from the RecoHitInformation to this class.
RecoHitInformation::OriginTrackFinder OriginTrackFinder
Copy the definitions from the RecoHitInformation to this class.
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.
RecoHitInformation::UsedSVDHit UsedSVDHit
Copy the definitions from the RecoHitInformation to this class.
RecoTrack()
Empty constructor for ROOT. Do not use!
unsigned int getNumberOfPXDHits() const
Return the number of pxd hits.
std::vector< Belle2::RecoTrack::UsedEKLMHit * > getEKLMHitList() const
Return an unsorted list of eklm hits.
std::vector< HitType * > getSortedHitList(const std::string &storeArrayNameOfHits) const
Return a sorted list of hits of the given type in the store array that are related to this track.
std::vector< Belle2::RecoTrack::UsedCDCHit * > getSortedCDCHitList() const
Return a sorted list of cdc hits. Sorted by the sortingParameter.
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.
RecoHitInformation::UsedPXDHit UsedPXDHit
Copy the definitions from the RecoHitInformation to this class.
double getTimeSeed() const
Return the time seed stored in the reco track. ATTENTION: This is not the fitted time.
bool hasSVDHits() const
Returns true if the track has svd hits.
unsigned int getNumberOfTotalHits() const
Return the number of cdc + svd + pxd + bklm + eklm hits.
Class for type safe access to objects that are referred to in relations.
size_t size() const
Get number of relations.
iterator end()
Return iterator to last entry +1.
iterator begin()
Return iterator to first entry.
Defines interface for accessing relations of objects in StoreArray.
The SVD Cluster class This class stores all information about reconstructed SVD clusters.
Accessor to arrays stored in the data store.
T * appendNew()
Construct a new T object at the end of the array.
Abstract base class for a track representation.
Class where important numbers and properties of a fit can be stored.
#StateOnPlane with additional covariance matrix.
Track candidate – seed values and indices.
Object containing AbsMeasurement and AbsFitterInfo objects.
Collection of TrackPoint objects, AbsTrackRep objects and FitStatus objects.
#define BELLE2_DEFINE_EXCEPTION(ClassName, Message)
Macro that defines an exception with the given message template.
Abstract base class for different kinds of events.
Defines for I/O streams used for error and debug printing.