Belle II Software  light-2403-persian
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 trackD0Error(const Particle* part);
110 
114  double trackPhi0Error(const Particle* part);
115 
119  double trackOmegaError(const Particle* part);
120 
124  double trackZ0Error(const Particle* part);
125 
129  double trackTanLambdaError(const Particle* part);
130 
134  double trackFitCovariance(const Particle* particle, const std::vector<double>& indices);
135 
139  double trackPValue(const Particle* part);
140 
145  double trackNECLClusters(const Particle* part);
146 
150  double nExtraCDCHits(const Particle*);
151 
152  /*
153  * returns the number of CDC hits in the event not assigned to any track
154  * nor very likely beam background (i.e. hits that survive cleanup selection)
155  */
156  double nExtraCDCHitsPostCleaning(const Particle*);
157 
158  /*
159  * checks for the presence of a non-assigned hit in the specified CDC layer
160  */
161  double hasExtraCDCHitsInLayer(const Particle*, const std::vector<double>& layer);
162 
166  double hasExtraCDCHitsInSuperLayer(const Particle*, const std::vector<double>& layer);
167 
171  double nExtraCDCSegments(const Particle*);
172 
176  double nExtraVXDHitsInLayer(const Particle*, const std::vector<double>& layer);
177 
181  double nExtraVXDHits(const Particle*);
182 
186  double svdFirstSampleTime(const Particle*);
187 
192  double trackFindingFailureFlag(const Particle*);
193 
198  double trackHelixExtTheta(const Particle* part, const std::vector<double>& pars);
199 
204  double trackHelixExtPhi(const Particle* part, const std::vector<double>& pars);
205 
210  Manager::FunctionPtr trackHelixExtThetaOnDet(const std::vector<std::string>& arguments);
211 
216  Manager::FunctionPtr trackHelixExtPhiOnDet(const std::vector<std::string>& arguments);
217 
221  double trackFitHypothesisPDG(const Particle* part);
222 
224  double getHelixMCD0(const Particle* part);
225 
227  double getHelixMCPhi0(const Particle* part);
228 
230  double getHelixMCOmega(const Particle* part);
231 
233  double getHelixMCZ0(const Particle* part);
234 
236  double getHelixMCTanLambda(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
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.
Definition: ClusterUtils.h:24