Belle II Software  release-06-02-00
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 <analysis/dataobjects/Particle.h>
12 #include <framework/gearbox/Const.h>
13 
14 namespace Belle2 {
20  namespace Variable {
21 
25  double v0DaughterTrackNCDCHits(const Particle* part, const std::vector<double>& daughterID);
26 
30  double v0DaughterTrackNSVDHits(const Particle* part, const std::vector<double>& daughterID);
31 
35  double v0DaughterTrackNPXDHits(const Particle* part, const std::vector<double>& daughterID);
36 
40  double v0DaughterTrackNVXDHits(const Particle* part, const std::vector<double>& daughterID);
41 
45  double v0DaughterTrackFirstSVDLayer(const Particle* part, const std::vector<double>& daughterID);
46 
50  double v0DaughterTrackFirstPXDLayer(const Particle* part, const std::vector<double>& daughterID);
51 
55  double v0DaughterTrackFirstCDCLayer(const Particle* part, const std::vector<double>& daughterID);
56 
60  double v0DaughterTrackLastCDCLayer(const Particle* part, const std::vector<double>& daughterID);
61 
65  double v0DaughterTrackPValue(const Particle* part, const std::vector<double>& daughterID);
66 
70  double v0DaughterTrackD0(const Particle* part, const std::vector<double>& daughterID);
71 
75  double v0DaughterTrackPhi0(const Particle* part, const std::vector<double>& daughterID);
76 
80  double v0DaughterTrackOmega(const Particle* part, const std::vector<double>& daughterID);
81 
85  double v0DaughterTrackZ0(const Particle* part, const std::vector<double>& daughterID);
86 
90  double v0DaughterTrackTanLambda(const Particle* part, const std::vector<double>& daughterID);
91 
95  double v0DaughterTrackD0Error(const Particle* part, const std::vector<double>& daughterID);
96 
100  double v0DaughterTrackPhi0Error(const Particle* part, const std::vector<double>& daughterID);
101 
105  double v0DaughterTrackOmegaError(const Particle* part, const std::vector<double>& daughterID);
106 
110  double v0DaughterTrackZ0Error(const Particle* part, const std::vector<double>& daughterID);
111 
115  double v0DaughterTrackTanLambdaError(const Particle* part, const std::vector<double>& daughterID);
116 
120  double v0DaughterD0(const Particle* particle, const std::vector<double>& daughterID);
121 
125  double v0DaughterD0Diff(const Particle* particle);
126 
130  double v0DaughterZ0(const Particle* particle, const std::vector<double>& daughterID);
131 
135  double v0DaughterZ0Diff(const Particle* particle);
136 
140  double v0DaughterHelixWithTrueVertexAsPivotD0Pull(const Particle* part, const std::vector<double>& daughterID);
141 
145  double v0DaughterHelixWithTrueVertexAsPivotPhi0Pull(const Particle* part, const std::vector<double>& daughterID);
146 
150  double v0DaughterHelixWithTrueVertexAsPivotOmegaPull(const Particle* part, const std::vector<double>& daughterID);
151 
155  double v0DaughterHelixWithTrueVertexAsPivotZ0Pull(const Particle* part, const std::vector<double>& daughterID);
156 
160  double v0DaughterHelixWithTrueVertexAsPivotTanLambdaPull(const Particle* part, const std::vector<double>& daughterID);
161 
165  double v0DaughterHelixWithOriginAsPivotD0Pull(const Particle* part, const std::vector<double>& daughterID);
166 
170  double v0DaughterHelixWithOriginAsPivotPhi0Pull(const Particle* part, const std::vector<double>& daughterID);
171 
175  double v0DaughterHelixWithOriginAsPivotOmegaPull(const Particle* part, const std::vector<double>& daughterID);
176 
180  double v0DaughterHelixWithOriginAsPivotZ0Pull(const Particle* part, const std::vector<double>& daughterID);
181 
185  double v0DaughterHelixWithOriginAsPivotTanLambdaPull(const Particle* part, const std::vector<double>& daughterID);
186 
190  double v0DaughterTrackParam5AtIPPerigee(const Particle* part, const std::vector<double>& params);
191 
196  double v0DaughterTrackParamCov5x5AtIPPerigee(const Particle* part, const std::vector<double>& params);
197 
202  int v0DaughtersShareInnermostHit(const Particle* part);
203 
207  bool v0DaughtersShareInnermostUHit(const Particle* part);
208 
212  bool v0DaughtersShareInnermostVHit(const Particle* part);
213 
219  double getV0DaughterTrackDetNHits(const Particle* particle, const double daughterID, const Const::EDetector& det);
220 
222  double getHelixParameterPullOfV0DaughterWithTrueVertexAsPivotAtIndex(const Particle* particle, const double daughterID,
223  const int tauIndex);
224 
226  int convertedPhotonErrorChecks(const Particle* gamma, const std::vector<double>& daughterIndices);
227 
229  int convertedPhotonLoadHelixParams(const Particle* gamma, int daughterIndex1, int daughterIndex2, double& Phi01, double& D01,
230  double& Omega1, double& Z01, double& TanLambda1, double& Phi02, double& D02, double& Omega2, double& Z02,
231  double& TanLambda2);
232 
236  double convertedPhotonInvariantMass(const Particle* gamma, const std::vector<double>& daughterIndices);
237 
241  double convertedPhotonDelTanLambda(const Particle* gamma, const std::vector<double>& daughterIndices);
242 
246  double convertedPhotonDelR(const Particle* gamma, const std::vector<double>& daughterIndices);
247 
249  std::pair<double, double> convertedPhotonZ1Z2(const Particle* gamma, const std::vector<double>& daughterIndices);
250 
254  double convertedPhotonDelZ(const Particle* gamma, const std::vector<double>& daughterIndices);
255 
259  double convertedPhotonZ(const Particle* gamma, const std::vector<double>& daughterIndices);
260 
262  TVector2 convertedPhotonXY(const Particle* gamma, const std::vector<double>& daughterIndices);
263 
267  double convertedPhotonX(const Particle* gamma, const std::vector<double>& daughterIndices);
268 
272  double convertedPhotonY(const Particle* gamma, const std::vector<double>& daughterIndices);
273 
277  double convertedPhotonRho(const Particle* gamma, const std::vector<double>& daughterIndices);
278 
282  TVector3 convertedPhoton3Momentum(const Particle* gamma, const std::vector<double>& daughterIndices);
283 
287  double convertedPhotonPx(const Particle* gamma, const std::vector<double>& daughterIndices);
288 
292  double convertedPhotonPy(const Particle* gamma, const std::vector<double>& daughterIndices);
293 
297  double convertedPhotonPz(const Particle* gamma, const std::vector<double>& daughterIndices);
298 
299 
300  }
302 } // Belle2 namespace
EDetector
Enum for identifying the detector components (detector and subdetector).
Definition: Const.h:42
Abstract base class for different kinds of events.