Belle II Software  release-08-01-10
EventLevelTrackingInfo Class Reference

Tracking-related info on event-level, for example number of unassigned measurements. More...

#include <EventLevelTrackingInfo.h>

Inheritance diagram for EventLevelTrackingInfo:
Collaboration diagram for EventLevelTrackingInfo:

Public Member Functions

 EventLevelTrackingInfo ()=default
 default constructor
 
uint16_t getNCDCHitsNotAssigned () const
 Getter for number of CDC measurements, that are not assigned to any Track.
 
void setNCDCHitsNotAssigned (uint16_t const nCDCHitsNotAssigned)
 Setter for number of CDC measurements, that are not assigned to any Track.
 
uint16_t getNCDCHitsNotAssignedPostCleaning () const
 Getter for number of CDC measurements, that are not assigned to any Track nor very likely beam-background. More...
 
void setNCDCHitsNotAssignedPostCleaning (uint16_t const nCDCHitsNotAssignedPostCleaning)
 Setter for number of CDC measurements, that are not assigned to any Track nor very likely beam-background.
 
bool hasCDCLayer (uint16_t const cdcLayer) const
 Getter for presence of hit in specific CDC Layer. More...
 
void setCDCLayer (uint16_t const cdcLayer)
 Setter for presence of hit in specific CDC Layer.
 
bool hasCDCSLayer (uint16_t const cdcSLayer) const
 Getter for the presence of hit in a SuperLayer.
 
uint16_t getNCDCSegments () const
 Getter for number of segments not used in Tracks. More...
 
void setNCDCSegments (uint16_t nHits)
 Setter for number of Segments not used in Tracks.
 
uint16_t getNVXDClustersInLayer (uint16_t const layer, bool const isU)
 Getter for number of clusters in a specific VXD layer, SVD separated by direction. More...
 
uint16_t getNVXDClustersInLayer (uint16_t const layer)
 Getter for number of clusters in specific VXD layer, SVD directions are accumulated. More...
 
void setNVXDClustersInLayer (uint16_t const layer, bool const isU, uint16_t const nClusters)
 Setter for number of clusters in specific VXD layer, SVD directions are separated.
 
int8_t getSVDFirstSampleTime () const
 Getter for time of first SVD sample relative to event T0. More...
 
void setSVDFirstSampleTime (int8_t const sampleTime)
 Setter for time of first SVD sample relatvie to event T0.
 
bool hasAnErrorFlag () const
 Check if any flag was set in the event.
 
bool hasUnspecifiedTrackFindingFailure () const
 Getter for unspecified hint of track finding failure.
 
void setUnspecifiedTrackFindingFailure ()
 Setter for unspecified hint of track finding failure.
 
bool hasVXDTF2AbortionFlag () const
 Getter for flag indicating that the VXDTF2 was aborted due to high combinatorics in the event.
 
void setVXDTF2AbortionFlag ()
 Setter for flag indicating that the VXDTF2 was aborted due to high combinatorics in the event.
 
bool hasSVDCKFAbortionFlag () const
 Getter for flag indicating that the SVD CKF was aborted due to high combinatorics in the event.
 
void setSVDCKFAbortionFlag ()
 Setter for flag indicating that the SVD CKF was aborted due to high combinatorics in the event.
 
bool hasPXDCKFAbortionFlag () const
 Getter for flag indicating that the PXD CKF was aborted due to high combinatorics in the event.
 
void setPXDCKFAbortionFlag ()
 Setter for flag indicating that the PXD CKF was aborted due to high combinatorics in the event.
 
bool hasSVDSpacePointCreatorAbortionFlag () const
 Getter for flag indicating that the SVD Space Point Creator was aborted due to very busy event.
 
void setSVDSpacePointCreatorAbortionFlag ()
 Setter for flag indicating that the SVD Space Point Creator was aborted due to very busy event.
 

Private Types

enum  ETrackingErrorFlags {
  c_unspecifiedError = 0 ,
  c_vxdtf2Abortion = 1 ,
  c_svdckfAbortion = 2 ,
  c_pxdckfAbortion = 3 ,
  c_svdSpacePointAbortion = 4
}
 Enum to specify meaning of bits in m_flagBlock bitset. More...
 

Private Member Functions

 ClassDef (EventLevelTrackingInfo, 2)
 ROOTification.
 

Private Attributes

uint16_t m_nCDCHitsNotAssigned {0}
 Number of hits in the CDC, that were not assigned to any Track. More...
 
uint16_t m_nCDCHitsNotAssignedPostCleaning {0}
 Number of unassigned hits in the CDC, that survived the background filter. More...
 
uint64_t m_hitPatternCDCInitializer {0}
 Efficient way of storing, which layers in the CDC have at least a single hit. More...
 
uint16_t m_nPXDClusters [2] {0, 0}
 Storage for number of clusters in the PXD. More...
 
uint8_t m_nSVDClusters [8] {0, 0, 0, 0, 0, 0, 0, 0}
 Storage for number of clusters in the SVD. More...
 
int8_t m_sampleTime {0}
 storage for time of first SVD sample.
 
std::bitset< 16 > m_flagBlock
 Set of further flags useful in the context of tracking reconstruction.
 

Detailed Description

Tracking-related info on event-level, for example number of unassigned measurements.

This kind of information has various use-cases, e.g.

  • a large number of unassigned measurements can be a hint for unreconstructed charged particles;
  • a check, if background conditions are similar to e.g. off-resonance data etc. is possible;
  • possibly further merging, clone-removal, resolution estimation depending on this info may make sense;

Additionally, setters and getters for hints of track finding failure during an event are included in this object. If we have a reason to assume, that there was a track in the event, that we didn't find or the track finding process was affected in any way we set a flag, respectively, that might be useful for veto purposes. The covered causes for a failure coded in the member bitset m_flagBlock can be identified via the TrackingErrorFlags enum.

Definition at line 37 of file EventLevelTrackingInfo.h.

Member Enumeration Documentation

◆ ETrackingErrorFlags

enum ETrackingErrorFlags
private

Enum to specify meaning of bits in m_flagBlock bitset.

Enumerator
c_unspecifiedError 

Indicating a unspecified failure during track finding.

c_vxdtf2Abortion 

Indicating abortion of the VXDTF2 due to high combinatorics in the event.

c_svdckfAbortion 

Indicating abortion of the SVD CKF due to high combinatorics in the event.

c_pxdckfAbortion 

Indicating abortion of the PXD CKF due to high combinatorics in the event.

c_svdSpacePointAbortion 

Indicating abortion of the SVD Space Point Creator due to very busy event.

Definition at line 255 of file EventLevelTrackingInfo.h.

255  {
256  c_unspecifiedError = 0,
257  c_vxdtf2Abortion = 1,
258  c_svdckfAbortion = 2,
259  c_pxdckfAbortion = 3,
261  };
@ c_vxdtf2Abortion
Indicating abortion of the VXDTF2 due to high combinatorics in the event.
@ c_pxdckfAbortion
Indicating abortion of the PXD CKF due to high combinatorics in the event.
@ c_svdckfAbortion
Indicating abortion of the SVD CKF due to high combinatorics in the event.
@ c_unspecifiedError
Indicating a unspecified failure during track finding.
@ c_svdSpacePointAbortion
Indicating abortion of the SVD Space Point Creator due to very busy event.

Member Function Documentation

◆ getNCDCHitsNotAssignedPostCleaning()

uint16_t getNCDCHitsNotAssignedPostCleaning ( ) const
inline

Getter for number of CDC measurements, that are not assigned to any Track nor very likely beam-background.

CDC hits, that are close to each other are combined in clusters during the reconstruction, which are evaluated with respect to the likelihood to stem from beam-background and the like rather than from an interesting physics object. Before any real attempt to actually combine CDC hits into a track, a cut on the output of such a classifier is performed. Here we want to get only the number of those CDC hits, that survive that cut, but are then not used for an actual Track.

Definition at line 64 of file EventLevelTrackingInfo.h.

◆ getNCDCSegments()

uint16_t getNCDCSegments ( ) const
inline

Getter for number of segments not used in Tracks.

During the CDC track finding, we search for segments within one superlayer. We want to store the number of segments, that we couldn't attach to any Track. The maximum number of unstored segments is 255.

Definition at line 106 of file EventLevelTrackingInfo.h.

◆ getNVXDClustersInLayer() [1/2]

uint16_t getNVXDClustersInLayer ( uint16_t const  layer)
inline

Getter for number of clusters in specific VXD layer, SVD directions are accumulated.

Parameters
layer1 to 6 for respective VXD layer, for which you want to have the remaining clusters.

Definition at line 144 of file EventLevelTrackingInfo.h.

◆ getNVXDClustersInLayer() [2/2]

uint16_t getNVXDClustersInLayer ( uint16_t const  layer,
bool const  isU 
)
inline

Getter for number of clusters in a specific VXD layer, SVD separated by direction.

All clusters, that have been part of a RecoTrack, that was converted into a Track, are removed. Only clusters, that in principle are considered valid, e.g. that are compatible with the event T0 are counted. The maximum number of clusters per layer and direction, that are considered in the SVD is 255.

Parameters
layer1 to 6 for respective VXD layer for which you want to have the remaining clusters.
isUonly used for layers 3 to 6, set true for u direction, false for v direction.

Definition at line 129 of file EventLevelTrackingInfo.h.

◆ getSVDFirstSampleTime()

int8_t getSVDFirstSampleTime ( ) const
inline

Getter for time of first SVD sample relative to event T0.

An additional hint on the quality of the SVD reconstruction can be the time, at which the first sample point for the shape estimation was taken relative to the true T0 of the event. We assume, that the event type etc. that ultimately determines the total number of samples, that were taken, can be gotten from elsewhere. The minimum and maximum are -128 ns and 127 ns.

Definition at line 175 of file EventLevelTrackingInfo.h.

◆ hasCDCLayer()

bool hasCDCLayer ( uint16_t const  cdcLayer) const
inline

Getter for presence of hit in specific CDC Layer.

This information refers as well to the cleaned hits.

Parameters
cdcLayerSpecification, which layer in the CDC shall be tested for a hit.
Returns
true, if a non-assigned hit exists in the specified layer.

Definition at line 81 of file EventLevelTrackingInfo.h.

Member Data Documentation

◆ m_hitPatternCDCInitializer

uint64_t m_hitPatternCDCInitializer {0}
private

Efficient way of storing, which layers in the CDC have at least a single hit.

Using indirectly the HitPatternCDC. However, as that object has internal data, that isn't supposed to be written out, we only store an initalizer integer. As we are expecting a larger number of hits, some functionality can't be used and the corresponding information is handled with speparate members. Instead we store the number of segments into the bits reserved for number of hits in the Track.

See also
HitPatternCDC

Definition at line 288 of file EventLevelTrackingInfo.h.

◆ m_nCDCHitsNotAssigned

uint16_t m_nCDCHitsNotAssigned {0}
private

Number of hits in the CDC, that were not assigned to any Track.

HitPatternCDC saves only up to 255 hits, as its primary use-case is the Track, but we we can easily have a larger number of hits, that are not assigned. Therefore, we save this as a separate number.

Definition at line 269 of file EventLevelTrackingInfo.h.

◆ m_nCDCHitsNotAssignedPostCleaning

uint16_t m_nCDCHitsNotAssignedPostCleaning {0}
private

Number of unassigned hits in the CDC, that survived the background filter.

During the pattern recognition, a cleaning of hits, that are very likely due to background is performed. Here we save only the number of unassinged hits, that survive that cut.

Definition at line 276 of file EventLevelTrackingInfo.h.

◆ m_nPXDClusters

uint16_t m_nPXDClusters[2] {0, 0}
private

Storage for number of clusters in the PXD.

We can store up to 65'535 cluster per layer here. This is slightly above the hardware readout limit, and therefore sufficient.

Definition at line 295 of file EventLevelTrackingInfo.h.

◆ m_nSVDClusters

uint8_t m_nSVDClusters[8] {0, 0, 0, 0, 0, 0, 0, 0}
private

Storage for number of clusters in the SVD.

We can store up to 255 clusters per layer and direction. Typically events are much below that, if not, the event is a noisy one. The first 4 numbers refer to u-direction strips, the second 4 to the v-direction.

Definition at line 303 of file EventLevelTrackingInfo.h.


The documentation for this class was generated from the following file: