Belle II Software development
V0DaughterTrackVariables.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 <framework/gearbox/Const.h>
12
13#include <Math/Vector2D.h>
14#include <Math/Vector3D.h>
15
16namespace Belle2 {
21 class Particle;
22
23 namespace Variable {
24
28 double v0DaughterTrackNCDCHits(const Particle* part, const std::vector<double>& daughterID);
29
33 double v0DaughterTrackNSVDHits(const Particle* part, const std::vector<double>& daughterID);
34
38 double v0DaughterTrackNPXDHits(const Particle* part, const std::vector<double>& daughterID);
39
43 double v0DaughterTrackNVXDHits(const Particle* part, const std::vector<double>& daughterID);
44
48 double v0DaughterTrackNRemovedHits(const Particle* part, const std::vector<double>& daughterID);
49
53 double v0DaughterTrackFirstSVDLayer(const Particle* part, const std::vector<double>& daughterID);
54
58 double v0DaughterTrackFirstPXDLayer(const Particle* part, const std::vector<double>& daughterID);
59
63 double v0DaughterTrackFirstCDCLayer(const Particle* part, const std::vector<double>& daughterID);
64
68 double v0DaughterTrackLastCDCLayer(const Particle* part, const std::vector<double>& daughterID);
69
73 double v0DaughterTrackPValue(const Particle* part, const std::vector<double>& daughterID);
74
78 double v0DaughterTrackD0(const Particle* part, const std::vector<double>& daughterID);
79
83 double v0DaughterTrackPhi0(const Particle* part, const std::vector<double>& daughterID);
84
88 double v0DaughterTrackOmega(const Particle* part, const std::vector<double>& daughterID);
89
93 double v0DaughterTrackZ0(const Particle* part, const std::vector<double>& daughterID);
94
98 double v0DaughterTrackTanLambda(const Particle* part, const std::vector<double>& daughterID);
99
103 double v0DaughterTrackD0Error(const Particle* part, const std::vector<double>& daughterID);
104
108 double v0DaughterTrackPhi0Error(const Particle* part, const std::vector<double>& daughterID);
109
113 double v0DaughterTrackOmegaError(const Particle* part, const std::vector<double>& daughterID);
114
118 double v0DaughterTrackZ0Error(const Particle* part, const std::vector<double>& daughterID);
119
123 double v0DaughterTrackTanLambdaError(const Particle* part, const std::vector<double>& daughterID);
124
128 double v0DaughterD0(const Particle* particle, const std::vector<double>& daughterID);
129
133 double v0DaughterD0Diff(const Particle* particle);
134
138 double v0DaughterZ0(const Particle* particle, const std::vector<double>& daughterID);
139
143 double v0DaughterZ0Diff(const Particle* particle);
144
148 double v0DaughterHelixWithTrueVertexAsPivotD0Pull(const Particle* part, const std::vector<double>& daughterID);
149
153 double v0DaughterHelixWithTrueVertexAsPivotPhi0Pull(const Particle* part, const std::vector<double>& daughterID);
154
158 double v0DaughterHelixWithTrueVertexAsPivotOmegaPull(const Particle* part, const std::vector<double>& daughterID);
159
163 double v0DaughterHelixWithTrueVertexAsPivotZ0Pull(const Particle* part, const std::vector<double>& daughterID);
164
168 double v0DaughterHelixWithTrueVertexAsPivotTanLambdaPull(const Particle* part, const std::vector<double>& daughterID);
169
173 double v0DaughterHelixWithOriginAsPivotD0Pull(const Particle* part, const std::vector<double>& daughterID);
174
178 double v0DaughterHelixWithOriginAsPivotPhi0Pull(const Particle* part, const std::vector<double>& daughterID);
179
183 double v0DaughterHelixWithOriginAsPivotOmegaPull(const Particle* part, const std::vector<double>& daughterID);
184
188 double v0DaughterHelixWithOriginAsPivotZ0Pull(const Particle* part, const std::vector<double>& daughterID);
189
193 double v0DaughterHelixWithOriginAsPivotTanLambdaPull(const Particle* part, const std::vector<double>& daughterID);
194
198 double v0DaughterTrackParam5AtIPPerigee(const Particle* part, const std::vector<double>& params);
199
204 double v0DaughterTrackParamCov5x5AtIPPerigee(const Particle* part, const std::vector<double>& params);
205
210 int v0DaughtersShareInnermostHit(const Particle* part);
211
215 bool v0DaughtersShareInnermostUHit(const Particle* part);
216
220 bool v0DaughtersShareInnermostVHit(const Particle* part);
221
227 double getV0DaughterTrackDetNHits(const Particle* particle, const double daughterID, const Const::EDetector& det);
228
230 double getHelixParameterPullOfV0DaughterWithTrueVertexAsPivotAtIndex(const Particle* particle, const double daughterID,
231 const int tauIndex);
232
234 int convertedPhotonErrorChecks(const Particle* gamma, const std::vector<double>& daughterIndices);
235
237 int convertedPhotonLoadHelixParams(const Particle* gamma, int daughterIndex1, int daughterIndex2, double& Phi01, double& D01,
238 double& Omega1, double& Z01, double& TanLambda1, double& Phi02, double& D02, double& Omega2, double& Z02,
239 double& TanLambda2);
240
244 double convertedPhotonInvariantMass(const Particle* gamma, const std::vector<double>& daughterIndices);
245
249 double convertedPhotonDelTanLambda(const Particle* gamma, const std::vector<double>& daughterIndices);
250
254 double convertedPhotonDelR(const Particle* gamma, const std::vector<double>& daughterIndices);
255
257 std::pair<double, double> convertedPhotonZ1Z2(const Particle* gamma, const std::vector<double>& daughterIndices);
258
262 double convertedPhotonDelZ(const Particle* gamma, const std::vector<double>& daughterIndices);
263
267 double convertedPhotonZ(const Particle* gamma, const std::vector<double>& daughterIndices);
268
270 ROOT::Math::XYVector convertedPhotonXY(const Particle* gamma, const std::vector<double>& daughterIndices);
271
275 double convertedPhotonX(const Particle* gamma, const std::vector<double>& daughterIndices);
276
280 double convertedPhotonY(const Particle* gamma, const std::vector<double>& daughterIndices);
281
285 double convertedPhotonRho(const Particle* gamma, const std::vector<double>& daughterIndices);
286
290 ROOT::Math::XYZVector convertedPhoton3Momentum(const Particle* gamma, const std::vector<double>& daughterIndices);
291
295 double convertedPhotonPx(const Particle* gamma, const std::vector<double>& daughterIndices);
296
300 double convertedPhotonPy(const Particle* gamma, const std::vector<double>& daughterIndices);
301
305 double convertedPhotonPz(const Particle* gamma, const std::vector<double>& daughterIndices);
306
307
308 }
310} // 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
Abstract base class for different kinds of events.