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 {
17
18 namespace TrackingUtilities {
19 class CDCTrack;
20 }
21 namespace TrackFindingCDC {
22
28 public:
31
33 TrackQualityTools(const TrackQualityTools& copy) = delete;
34
37
43
50 static void removeHitsAfterCDCWall(TrackingUtilities::CDCTrack& track, double outerCylindricalRFactor = 1.1);
51
53 static void removeHitsIfSmall(TrackingUtilities::CDCTrack& track, unsigned int minimalHits = 7);
54
60 static void removeHitsAfterLayerBreak(TrackingUtilities::CDCTrack& track, double m_maximumArcLength2DDistance = 10);
61
68
70 static void removeHitsInTheBeginningIfAngleLarge(TrackingUtilities::CDCTrack& track, double maximalAngle = 0.7);
71
74
77
79 static void removeArcLength2DHoles(TrackingUtilities::CDCTrack& track, double m_maximumArcLength2DDistance = 10);
80
85 static void splitSecondHalfOfTrack(TrackingUtilities::CDCTrack& track, std::vector<TrackingUtilities::CDCTrack>& tracks);
86
89 };
90 }
92}
static void splitSecondHalfOfTrack(TrackingUtilities::CDCTrack &track, std::vector< TrackingUtilities::CDCTrack > &tracks)
Trasan did output curlers in split two halves - this method can be used to mimic this.
static void removeHitsIfSmall(TrackingUtilities::CDCTrack &track, unsigned int minimalHits=7)
Delete a track fully of the number of hits is below minimalHits.
TrackQualityTools(const TrackQualityTools &copy)=delete
Static class only.
static void removeHitsIfOnlyOneSuperLayer(TrackingUtilities::CDCTrack &track)
Remove the whole track if it only consists of one superlayer.
static void removeHitsAfterLayerBreak(TrackingUtilities::CDCTrack &track, double m_maximumArcLength2DDistance=10)
Delete all hits after a large layer break.
static void removeHitsInTheBeginningIfAngleLarge(TrackingUtilities::CDCTrack &track, double maximalAngle=0.7)
If the angle between two following hits is larger than maximalAngle, delete all hits before (!...
static void removeHitsOnTheWrongSide(TrackingUtilities::CDCTrack &track)
Remove all hits that are on the wrong side of the detector (so to say: "beyond the IP").
static void moveToNextAxialLayer(TrackingUtilities::CDCTrack &track)
Delete hits of the first superlayer if it is a stereo one (fitting does not work very well when start...
static void removeArcLength2DHoles(TrackingUtilities::CDCTrack &track, double m_maximumArcLength2DDistance=10)
Remove all hits that come after a large hole in the two dimensional arc length.
static void normalizeHitsAndResetTrajectory(TrackingUtilities::CDCTrack &track)
Update all hits to have a positive perpS, a taken flag and no background flag Also set the trajectory...
static void removeHitsAfterCDCWall(TrackingUtilities::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...
TrackQualityTools & operator=(const TrackQualityTools &)=delete
Static class only.
static void removeHitsAfterLayerBreak2(TrackingUtilities::CDCTrack &track)
Delete all hits after a large layer break.
TrackQualityTools()=delete
Static class only.
Class representing a sequence of three dimensional reconstructed hits.
Definition CDCTrack.h:39
Abstract base class for different kinds of events.