Belle II Software  release-08-01-10
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 
12 namespace Belle2 {
18  namespace TrackFindingCDC {
19  class CDCTrack;
20 
26  public:
28  TrackQualityTools() = delete;
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").
TrackQualityTools & operator=(const TrackQualityTools &)=delete
Static class only.
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()=delete
Static class only.
Abstract base class for different kinds of events.