Belle II Software  light-2212-foldex
TrackVariables.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 
9 #pragma once
10 
11 #include <framework/gearbox/Const.h>
12 #include <framework/geometry/B2Vector3.h>
13 
14 namespace Belle2 {
19  class Particle;
20 
21  namespace Variable {
22 
28  double trackNHits(const Particle* part, const Const::EDetector& det);
29 
33  double trackNCDCHits(const Particle* part);
34 
38  double trackNSVDHits(const Particle* part);
39 
43  double trackNPXDHits(const Particle* part);
44 
48  double trackNVXDHits(const Particle* part);
49 
53  double trackNDF(const Particle* part);
54 
58  double trackChi2(const Particle* part);
59 
63  double trackFirstSVDLayer(const Particle* part);
64 
68  double trackFirstPXDLayer(const Particle* part);
69 
73  double trackFirstCDCLayer(const Particle* part);
74 
78  double trackLastCDCLayer(const Particle* part);
79 
83  double trackD0(const Particle* part);
84 
88  double trackPhi0(const Particle* part);
89 
93  double trackOmega(const Particle* part);
94 
98  double trackZ0(const Particle* part);
99 
103  double trackTanLambda(const Particle* part);
104 
108  double trackD0Error(const Particle* part);
109 
113  double trackPhi0Error(const Particle* part);
114 
118  double trackOmegaError(const Particle* part);
119 
123  double trackZ0Error(const Particle* part);
124 
128  double trackTanLambdaError(const Particle* part);
129 
133  double trackFitCovariance(const Particle* particle, const std::vector<double>& indices);
134 
138  double trackPValue(const Particle* part);
139 
144  double trackNECLClusters(const Particle* part);
145 
149  double nExtraCDCHits(const Particle*);
150 
151  /*
152  * returns the number of CDC hits in the event not assigned to any track
153  * nor very likely beam background (i.e. hits that survive cleanup selection)
154  */
155  double nExtraCDCHitsPostCleaning(const Particle*);
156 
157  /*
158  * checks for the presence of a non-assigned hit in the specified CDC layer
159  */
160  double hasExtraCDCHitsInLayer(const Particle*, const std::vector<double>& layer);
161 
165  double hasExtraCDCHitsInSuperLayer(const Particle*, const std::vector<double>& layer);
166 
170  double nExtraCDCSegments(const Particle*);
171 
175  double nExtraVXDHitsInLayer(const Particle*, const std::vector<double>& layer);
176 
180  double nExtraVXDHits(const Particle*);
181 
185  double svdFirstSampleTime(const Particle*);
186 
191  double trackFindingFailureFlag(const Particle*);
192 
197  double trackHelixExtTheta(const Particle* part, const std::vector<double>& pars);
198 
203  double trackHelixExtPhi(const Particle* part, const std::vector<double>& pars);
204 
208  double trackFitHypothesisPDG(const Particle* part);
209 
211  double getHelixD0Pull(const Particle* part);
212 
214  double getHelixPhi0Pull(const Particle* part);
215 
217  double getHelixOmegaPull(const Particle* part);
218 
220  double getHelixZ0Pull(const Particle* part);
221 
223  double getHelixTanLambdaPull(const Particle* part);
224 
226  B2Vector3D getPositionOnHelix(const Particle* part, const std::vector<double>& pars);
227 
229  double isTrackFlippedAndRefitted(const Particle* part);
230 
232  double getTrackTime(const Particle* part);
233 
234  }
236 } // Belle2 namespace
237 
EDetector
Enum for identifying the detector components (detector and subdetector).
Definition: Const.h:42
B2Vector3< double > B2Vector3D
typedef for common usage with double
Definition: B2Vector3.h:516
Abstract base class for different kinds of events.
Definition: ClusterUtils.h:23