Belle II Software development
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
15namespace 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 getHelixMCD0(const Particle* part);
240
242 double getHelixMCPhi0(const Particle* part);
243
245 double getHelixMCOmega(const Particle* part);
246
248 double getHelixMCZ0(const Particle* part);
249
251 double getHelixMCTanLambda(const Particle* part);
252
254 double getHelixD0Pull(const Particle* part);
255
257 double getHelixPhi0Pull(const Particle* part);
258
260 double getHelixOmegaPull(const Particle* part);
261
263 double getHelixZ0Pull(const Particle* part);
264
266 double getHelixTanLambdaPull(const Particle* part);
267
269 B2Vector3D getPositionOnHelix(const Particle* part, const std::vector<double>& pars);
270
272 double isTrackFlippedAndRefitted(const Particle* part);
273
275 double getTrackTime(const Particle* part);
276
277 }
279} // Belle2 namespace
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.