Belle II Software development
TrackQualityTools.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8#pragma once
9
10#include <vector>
11
12namespace Belle2 {
18 namespace TrackFindingCDC {
19 class CDCTrack;
20
26 public:
29
31 TrackQualityTools(const TrackQualityTools& copy) = delete;
32
35
40 static void normalizeHitsAndResetTrajectory(CDCTrack& track);
41
48 static void removeHitsAfterCDCWall(CDCTrack& track, double outerCylindricalRFactor = 1.1);
49
51 static void removeHitsIfSmall(CDCTrack& track, unsigned int minimalHits = 7);
52
58 static void removeHitsAfterLayerBreak(CDCTrack& track, double m_maximumArcLength2DDistance = 10);
59
65 static void removeHitsAfterLayerBreak2(CDCTrack& track);
66
68 static void removeHitsInTheBeginningIfAngleLarge(CDCTrack& track, double maximalAngle = 0.7);
69
71 static void removeHitsIfOnlyOneSuperLayer(CDCTrack& track);
72
74 static void removeHitsOnTheWrongSide(CDCTrack& track);
75
77 static void removeArcLength2DHoles(CDCTrack& track, double m_maximumArcLength2DDistance = 10);
78
83 static void splitSecondHalfOfTrack(CDCTrack& track, std::vector<CDCTrack>& tracks);
84
86 static void moveToNextAxialLayer(CDCTrack& track);
87 };
88 }
90}
Class representing a sequence of three dimensional reconstructed hits.
Definition: CDCTrack.h:41
Tools to apply post corrections to a track after finding.
static void removeArcLength2DHoles(CDCTrack &track, double m_maximumArcLength2DDistance=10)
Remove all hits that come after a large hole in the two dimensional arc length.
static void moveToNextAxialLayer(CDCTrack &track)
Delete hits of the first superlayer if it is a stereo one (fitting does not work very well when start...
static void removeHitsIfOnlyOneSuperLayer(CDCTrack &track)
Remove the whole track if it only consists of one superlayer.
static void normalizeHitsAndResetTrajectory(CDCTrack &track)
Update all hits to have a positive perpS, a taken flag and no background flag Also set the trajectory...
TrackQualityTools(const TrackQualityTools &copy)=delete
Static class only.
static void removeHitsInTheBeginningIfAngleLarge(CDCTrack &track, double maximalAngle=0.7)
If the angle between two following hits is larger than maximalAngle, delete all hits before (!...
static void removeHitsAfterCDCWall(CDCTrack &track, double outerCylindricalRFactor=1.1)
Remove all hits which can not belong to the track, as the particle can not exit and enter the CDC aga...
static void removeHitsIfSmall(CDCTrack &track, unsigned int minimalHits=7)
Delete a track fully of the number of hits is below minimalHits.
static void removeHitsOnTheWrongSide(CDCTrack &track)
Remove all hits that are on the wrong side of the detector (so to say: "beyond the IP").
static void splitSecondHalfOfTrack(CDCTrack &track, std::vector< CDCTrack > &tracks)
Trasan did output curlers in split two halves - this method can be used to mimic this.
static void removeHitsAfterLayerBreak(CDCTrack &track, double m_maximumArcLength2DDistance=10)
Delete all hits after a large layer break.
static void removeHitsAfterLayerBreak2(CDCTrack &track)
Delete all hits after a large layer break.
TrackQualityTools & operator=(const TrackQualityTools &)=delete
Static class only.
TrackQualityTools()=delete
Static class only.
Abstract base class for different kinds of events.