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
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 svdFirstSampleTime(const Particle*);
203
208 double trackFindingFailureFlag(const Particle*);
209
214 double trackHelixExtTheta(const Particle* part, const std::vector<double>& pars);
215
220 double trackHelixExtPhi(const Particle* part, const std::vector<double>& pars);
221
226 Manager::FunctionPtr trackHelixExtThetaOnDet(const std::vector<std::string>& arguments);
227
232 Manager::FunctionPtr trackHelixExtPhiOnDet(const std::vector<std::string>& arguments);
233
237 double trackFitHypothesisPDG(const Particle* part);
238
240 double getHelixMCD0(const Particle* part);
241
243 double getHelixMCPhi0(const Particle* part);
244
246 double getHelixMCOmega(const Particle* part);
247
249 double getHelixMCZ0(const Particle* part);
250
252 double getHelixMCTanLambda(const Particle* part);
253
255 double getHelixD0Pull(const Particle* part);
256
258 double getHelixPhi0Pull(const Particle* part);
259
261 double getHelixOmegaPull(const Particle* part);
262
264 double getHelixZ0Pull(const Particle* part);
265
267 double getHelixTanLambdaPull(const Particle* part);
268
270 ROOT::Math::XYZVector getPositionOnHelix(const Particle* part, const std::vector<double>& pars);
271
273 double isTrackFlippedAndRefitted(const Particle* part);
274
276 double getTrackTime(const Particle* part);
277
278 }
280} // 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.