Belle II Software  release-08-01-10
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 <analysis/VariableManager/Manager.h>
12 #include <framework/gearbox/Const.h>
13 #include <framework/geometry/B2Vector3.h>
14 
15 namespace Belle2 {
20  class Particle;
21 
22  namespace Variable {
23 
29  double trackNHits(const Particle* part, const Const::EDetector& det);
30 
34  double trackNCDCHits(const Particle* part);
35 
39  double trackNSVDHits(const Particle* part);
40 
44  double trackNPXDHits(const Particle* part);
45 
49  double trackNVXDHits(const Particle* part);
50 
54  double trackNDF(const Particle* part);
55 
59  double trackChi2(const Particle* part);
60 
64  double trackFirstSVDLayer(const Particle* part);
65 
69  double trackFirstPXDLayer(const Particle* part);
70 
74  double trackFirstCDCLayer(const Particle* part);
75 
79  double trackLastCDCLayer(const Particle* part);
80 
84  double trackD0(const Particle* part);
85 
89  double trackPhi0(const Particle* part);
90 
94  double trackOmega(const Particle* part);
95 
99  double trackZ0(const Particle* part);
100 
104  double trackTanLambda(const Particle* part);
105 
109  double trackD0FromIP(const Particle* part);
110 
114  double trackZ0FromIP(const Particle* part);
115 
119  double trackPhi0FromIP(const Particle* part);
120 
124  double trackD0Error(const Particle* part);
125 
129  double trackPhi0Error(const Particle* part);
130 
134  double trackOmegaError(const Particle* part);
135 
139  double trackZ0Error(const Particle* part);
140 
144  double trackTanLambdaError(const Particle* part);
145 
149  double trackFitCovariance(const Particle* particle, const std::vector<double>& indices);
150 
154  double trackPValue(const Particle* part);
155 
160  double trackNECLClusters(const Particle* part);
161 
165  double nExtraCDCHits(const Particle*);
166 
167  /*
168  * returns the number of CDC hits in the event not assigned to any track
169  * nor very likely beam background (i.e. hits that survive cleanup selection)
170  */
171  double nExtraCDCHitsPostCleaning(const Particle*);
172 
173  /*
174  * checks for the presence of a non-assigned hit in the specified CDC layer
175  */
176  double hasExtraCDCHitsInLayer(const Particle*, const std::vector<double>& layer);
177 
181  double hasExtraCDCHitsInSuperLayer(const Particle*, const std::vector<double>& layer);
182 
186  double nExtraCDCSegments(const Particle*);
187 
191  double nExtraVXDHitsInLayer(const Particle*, const std::vector<double>& layer);
192 
196  double nExtraVXDHits(const Particle*);
197 
201  double svdFirstSampleTime(const Particle*);
202 
207  double trackFindingFailureFlag(const Particle*);
208 
213  double trackHelixExtTheta(const Particle* part, const std::vector<double>& pars);
214 
219  double trackHelixExtPhi(const Particle* part, const std::vector<double>& pars);
220 
225  Manager::FunctionPtr trackHelixExtThetaOnDet(const std::vector<std::string>& arguments);
226 
231  Manager::FunctionPtr trackHelixExtPhiOnDet(const std::vector<std::string>& arguments);
232 
236  double trackFitHypothesisPDG(const Particle* part);
237 
239  double getHelixD0Pull(const Particle* part);
240 
242  double getHelixPhi0Pull(const Particle* part);
243 
245  double getHelixOmegaPull(const Particle* part);
246 
248  double getHelixZ0Pull(const Particle* part);
249 
251  double getHelixTanLambdaPull(const Particle* part);
252 
254  B2Vector3D getPositionOnHelix(const Particle* part, const std::vector<double>& pars);
255 
257  double isTrackFlippedAndRefitted(const Particle* part);
258 
260  double getTrackTime(const Particle* part);
261 
262  }
264 } // Belle2 namespace
265 
EDetector
Enum for identifying the detector components (detector and subdetector).
Definition: Const.h:42
std::function< VarVariant(const Particle *)> FunctionPtr
functions stored take a const Particle* and return VarVariant.
Definition: Manager.h:113
B2Vector3< double > B2Vector3D
typedef for common usage with double
Definition: B2Vector3.h:516
Abstract base class for different kinds of events.