Belle II Software  release-08-01-10
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 
14 namespace 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.