Belle II Software light-2601-hyperion
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 nExtraCDCHits(const Particle*);
167
168 /*
169 * returns the number of CDC hits in the event not assigned to any track
170 * nor very likely beam background (i.e. hits that survive cleanup selection)
171 */
172 double nExtraCDCHitsPostCleaning(const Particle*);
173
174 /*
175 * checks for the presence of a non-assigned hit in the specified CDC layer
176 */
177 double hasExtraCDCHitsInLayer(const Particle*, const std::vector<double>& layer);
178
182 double hasExtraCDCHitsInSuperLayer(const Particle*, const std::vector<double>& layer);
183
187 double nExtraCDCSegments(const Particle*);
188
192 double nExtraVXDHitsInLayer(const Particle*, const std::vector<double>& layer);
193
197 double nExtraVXDHits(const Particle*);
198
202 double nExtraPXDHits(const Particle*);
203
207 double svdFirstSampleTime(const Particle*);
208
213 double trackFindingFailureFlag(const Particle*);
214
219 double trackHelixExtTheta(const Particle* part, const std::vector<double>& pars);
220
225 double trackHelixExtPhi(const Particle* part, const std::vector<double>& pars);
226
231 Manager::FunctionPtr trackHelixExtThetaOnDet(const std::vector<std::string>& arguments);
232
237 Manager::FunctionPtr trackHelixExtPhiOnDet(const std::vector<std::string>& arguments);
238
242 double trackFitHypothesisPDG(const Particle* part);
243
245 double getHelixMCD0(const Particle* part);
246
248 double getHelixMCPhi0(const Particle* part);
249
251 double getHelixMCOmega(const Particle* part);
252
254 double getHelixMCZ0(const Particle* part);
255
257 double getHelixMCTanLambda(const Particle* part);
258
260 double getHelixD0Pull(const Particle* part);
261
263 double getHelixPhi0Pull(const Particle* part);
264
266 double getHelixOmegaPull(const Particle* part);
267
269 double getHelixZ0Pull(const Particle* part);
270
272 double getHelixTanLambdaPull(const Particle* part);
273
275 ROOT::Math::XYZVector getPositionOnHelix(const Particle* part, const std::vector<double>& pars);
276
278 double isTrackFlippedAndRefitted(const Particle* part);
279
281 double getTrackTime(const Particle* part);
282
283 }
285} // 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.