Belle II Software prerelease-11-00-00a
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
14#include <Math/Vector3D.h>
15
16namespace Belle2 {
21 class Particle;
22
23 namespace Variable {
24
30 double trackNHits(const Particle* part, const Const::EDetector& det);
31
35 double trackNCDCHits(const Particle* part);
36
40 double trackNSVDHits(const Particle* part);
41
45 double trackNPXDHits(const Particle* part);
46
50 double trackNVXDHits(const Particle* part);
51
55 double trackNDF(const Particle* part);
56
60 double trackChi2(const Particle* part);
61
65 double trackFirstSVDLayer(const Particle* part);
66
70 double trackFirstPXDLayer(const Particle* part);
71
75 double trackFirstCDCLayer(const Particle* part);
76
80 double trackLastCDCLayer(const Particle* part);
81
85 double trackD0(const Particle* part);
86
90 double trackPhi0(const Particle* part);
91
95 double trackOmega(const Particle* part);
96
100 double trackZ0(const Particle* part);
101
105 double trackTanLambda(const Particle* part);
106
110 double trackD0FromIP(const Particle* part);
111
115 double trackZ0FromIP(const Particle* part);
116
120 double trackPhi0FromIP(const Particle* part);
121
125 double trackD0Error(const Particle* part);
126
130 double trackPhi0Error(const Particle* part);
131
135 double trackOmegaError(const Particle* part);
136
140 double trackZ0Error(const Particle* part);
141
145 double trackTanLambdaError(const Particle* part);
146
150 double trackFitCovariance(const Particle* particle, const std::vector<double>& indices);
151
155 double trackPValue(const Particle* part);
156
161 double trackNECLClusters(const Particle* part);
162
166 double trackQualityIndicator(const Particle* part);
167
171 double nExtraCDCHits(const Particle*);
172
173 /*
174 * returns the number of CDC hits in the event not assigned to any track
175 * nor very likely beam background (i.e. hits that survive cleanup selection)
176 */
177 double nExtraCDCHitsPostCleaning(const Particle*);
178
179 /*
180 * checks for the presence of a non-assigned hit in the specified CDC layer
181 */
182 double hasExtraCDCHitsInLayer(const Particle*, const std::vector<double>& layer);
183
187 double hasExtraCDCHitsInSuperLayer(const Particle*, const std::vector<double>& layer);
188
192 double nExtraCDCSegments(const Particle*);
193
197 double nExtraVXDHitsInLayer(const Particle*, const std::vector<double>& layer);
198
202 double nExtraVXDHits(const Particle*);
203
207 double nExtraPXDHits(const Particle*);
208
212 double svdFirstSampleTime(const Particle*);
213
218 double trackFindingFailureFlag(const Particle*);
219
224 double trackHelixExtTheta(const Particle* part, const std::vector<double>& pars);
225
230 double trackHelixExtPhi(const Particle* part, const std::vector<double>& pars);
231
236 Manager::FunctionPtr trackHelixExtThetaOnDet(const std::vector<std::string>& arguments);
237
242 Manager::FunctionPtr trackHelixExtPhiOnDet(const std::vector<std::string>& arguments);
243
247 double trackFitHypothesisPDG(const Particle* part);
248
250 double getHelixMCD0(const Particle* part);
251
253 double getHelixMCPhi0(const Particle* part);
254
256 double getHelixMCOmega(const Particle* part);
257
259 double getHelixMCZ0(const Particle* part);
260
262 double getHelixMCTanLambda(const Particle* part);
263
265 double getHelixD0Pull(const Particle* part);
266
268 double getHelixPhi0Pull(const Particle* part);
269
271 double getHelixOmegaPull(const Particle* part);
272
274 double getHelixZ0Pull(const Particle* part);
275
277 double getHelixTanLambdaPull(const Particle* part);
278
280 ROOT::Math::XYZVector getPositionOnHelix(const Particle* part, const std::vector<double>& pars);
281
283 double isTrackFlippedAndRefitted(const Particle* part);
284
286 double getTrackTime(const Particle* part);
287
288 }
290} // Belle2 namespace
EDetector
Enum for identifying the detector components (detector and subdetector).
Definition Const.h:42
Class to store reconstructed particles.
Definition Particle.h:76
std::function< VarVariant(const Particle *)> FunctionPtr
functions stored take a const Particle* and return VarVariant.
Definition Manager.h:112
Abstract base class for different kinds of events.