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#include <framework/geometry/B2Vector3.h>
13
14namespace Belle2 {
19 class Particle;
20
21 namespace Variable {
22
26 double v0DaughterTrackNCDCHits(const Particle* part, const std::vector<double>& daughterID);
27
31 double v0DaughterTrackNSVDHits(const Particle* part, const std::vector<double>& daughterID);
32
36 double v0DaughterTrackNPXDHits(const Particle* part, const std::vector<double>& daughterID);
37
41 double v0DaughterTrackNVXDHits(const Particle* part, const std::vector<double>& daughterID);
42
46 double v0DaughterTrackNRemovedHits(const Particle* part, const std::vector<double>& daughterID);
47
51 double v0DaughterTrackFirstSVDLayer(const Particle* part, const std::vector<double>& daughterID);
52
56 double v0DaughterTrackFirstPXDLayer(const Particle* part, const std::vector<double>& daughterID);
57
61 double v0DaughterTrackFirstCDCLayer(const Particle* part, const std::vector<double>& daughterID);
62
66 double v0DaughterTrackLastCDCLayer(const Particle* part, const std::vector<double>& daughterID);
67
71 double v0DaughterTrackPValue(const Particle* part, const std::vector<double>& daughterID);
72
76 double v0DaughterTrackD0(const Particle* part, const std::vector<double>& daughterID);
77
81 double v0DaughterTrackPhi0(const Particle* part, const std::vector<double>& daughterID);
82
86 double v0DaughterTrackOmega(const Particle* part, const std::vector<double>& daughterID);
87
91 double v0DaughterTrackZ0(const Particle* part, const std::vector<double>& daughterID);
92
96 double v0DaughterTrackTanLambda(const Particle* part, const std::vector<double>& daughterID);
97
101 double v0DaughterTrackD0Error(const Particle* part, const std::vector<double>& daughterID);
102
106 double v0DaughterTrackPhi0Error(const Particle* part, const std::vector<double>& daughterID);
107
111 double v0DaughterTrackOmegaError(const Particle* part, const std::vector<double>& daughterID);
112
116 double v0DaughterTrackZ0Error(const Particle* part, const std::vector<double>& daughterID);
117
121 double v0DaughterTrackTanLambdaError(const Particle* part, const std::vector<double>& daughterID);
122
126 double v0DaughterD0(const Particle* particle, const std::vector<double>& daughterID);
127
131 double v0DaughterD0Diff(const Particle* particle);
132
136 double v0DaughterZ0(const Particle* particle, const std::vector<double>& daughterID);
137
141 double v0DaughterZ0Diff(const Particle* particle);
142
146 double v0DaughterHelixWithTrueVertexAsPivotD0Pull(const Particle* part, const std::vector<double>& daughterID);
147
151 double v0DaughterHelixWithTrueVertexAsPivotPhi0Pull(const Particle* part, const std::vector<double>& daughterID);
152
156 double v0DaughterHelixWithTrueVertexAsPivotOmegaPull(const Particle* part, const std::vector<double>& daughterID);
157
161 double v0DaughterHelixWithTrueVertexAsPivotZ0Pull(const Particle* part, const std::vector<double>& daughterID);
162
166 double v0DaughterHelixWithTrueVertexAsPivotTanLambdaPull(const Particle* part, const std::vector<double>& daughterID);
167
171 double v0DaughterHelixWithOriginAsPivotD0Pull(const Particle* part, const std::vector<double>& daughterID);
172
176 double v0DaughterHelixWithOriginAsPivotPhi0Pull(const Particle* part, const std::vector<double>& daughterID);
177
181 double v0DaughterHelixWithOriginAsPivotOmegaPull(const Particle* part, const std::vector<double>& daughterID);
182
186 double v0DaughterHelixWithOriginAsPivotZ0Pull(const Particle* part, const std::vector<double>& daughterID);
187
191 double v0DaughterHelixWithOriginAsPivotTanLambdaPull(const Particle* part, const std::vector<double>& daughterID);
192
196 double v0DaughterTrackParam5AtIPPerigee(const Particle* part, const std::vector<double>& params);
197
202 double v0DaughterTrackParamCov5x5AtIPPerigee(const Particle* part, const std::vector<double>& params);
203
208 int v0DaughtersShareInnermostHit(const Particle* part);
209
213 bool v0DaughtersShareInnermostUHit(const Particle* part);
214
218 bool v0DaughtersShareInnermostVHit(const Particle* part);
219
225 double getV0DaughterTrackDetNHits(const Particle* particle, const double daughterID, const Const::EDetector& det);
226
228 double getHelixParameterPullOfV0DaughterWithTrueVertexAsPivotAtIndex(const Particle* particle, const double daughterID,
229 const int tauIndex);
230
232 int convertedPhotonErrorChecks(const Particle* gamma, const std::vector<double>& daughterIndices);
233
235 int convertedPhotonLoadHelixParams(const Particle* gamma, int daughterIndex1, int daughterIndex2, double& Phi01, double& D01,
236 double& Omega1, double& Z01, double& TanLambda1, double& Phi02, double& D02, double& Omega2, double& Z02,
237 double& TanLambda2);
238
242 double convertedPhotonInvariantMass(const Particle* gamma, const std::vector<double>& daughterIndices);
243
247 double convertedPhotonDelTanLambda(const Particle* gamma, const std::vector<double>& daughterIndices);
248
252 double convertedPhotonDelR(const Particle* gamma, const std::vector<double>& daughterIndices);
253
255 std::pair<double, double> convertedPhotonZ1Z2(const Particle* gamma, const std::vector<double>& daughterIndices);
256
260 double convertedPhotonDelZ(const Particle* gamma, const std::vector<double>& daughterIndices);
261
265 double convertedPhotonZ(const Particle* gamma, const std::vector<double>& daughterIndices);
266
268 TVector2 convertedPhotonXY(const Particle* gamma, const std::vector<double>& daughterIndices);
269
273 double convertedPhotonX(const Particle* gamma, const std::vector<double>& daughterIndices);
274
278 double convertedPhotonY(const Particle* gamma, const std::vector<double>& daughterIndices);
279
283 double convertedPhotonRho(const Particle* gamma, const std::vector<double>& daughterIndices);
284
288 B2Vector3D convertedPhoton3Momentum(const Particle* gamma, const std::vector<double>& daughterIndices);
289
293 double convertedPhotonPx(const Particle* gamma, const std::vector<double>& daughterIndices);
294
298 double convertedPhotonPy(const Particle* gamma, const std::vector<double>& daughterIndices);
299
303 double convertedPhotonPz(const Particle* gamma, const std::vector<double>& daughterIndices);
304
305
306 }
308} // Belle2 namespace
EDetector
Enum for identifying the detector components (detector and subdetector).
Definition: Const.h:42
B2Vector3< double > B2Vector3D
typedef for common usage with double
Definition: B2Vector3.h:516
Abstract base class for different kinds of events.