11#include <framework/gearbox/Const.h>
12#include <framework/geometry/B2Vector3.h>
26 double v0DaughterTrackNCDCHits(
const Particle* part,
const std::vector<double>& daughterID);
31 double v0DaughterTrackNSVDHits(
const Particle* part,
const std::vector<double>& daughterID);
36 double v0DaughterTrackNPXDHits(
const Particle* part,
const std::vector<double>& daughterID);
41 double v0DaughterTrackNVXDHits(
const Particle* part,
const std::vector<double>& daughterID);
46 double v0DaughterTrackNRemovedHits(
const Particle* part,
const std::vector<double>& daughterID);
51 double v0DaughterTrackFirstSVDLayer(
const Particle* part,
const std::vector<double>& daughterID);
56 double v0DaughterTrackFirstPXDLayer(
const Particle* part,
const std::vector<double>& daughterID);
61 double v0DaughterTrackFirstCDCLayer(
const Particle* part,
const std::vector<double>& daughterID);
66 double v0DaughterTrackLastCDCLayer(
const Particle* part,
const std::vector<double>& daughterID);
71 double v0DaughterTrackPValue(
const Particle* part,
const std::vector<double>& daughterID);
76 double v0DaughterTrackD0(
const Particle* part,
const std::vector<double>& daughterID);
81 double v0DaughterTrackPhi0(
const Particle* part,
const std::vector<double>& daughterID);
86 double v0DaughterTrackOmega(
const Particle* part,
const std::vector<double>& daughterID);
91 double v0DaughterTrackZ0(
const Particle* part,
const std::vector<double>& daughterID);
96 double v0DaughterTrackTanLambda(
const Particle* part,
const std::vector<double>& daughterID);
101 double v0DaughterTrackD0Error(
const Particle* part,
const std::vector<double>& daughterID);
106 double v0DaughterTrackPhi0Error(
const Particle* part,
const std::vector<double>& daughterID);
111 double v0DaughterTrackOmegaError(
const Particle* part,
const std::vector<double>& daughterID);
116 double v0DaughterTrackZ0Error(
const Particle* part,
const std::vector<double>& daughterID);
121 double v0DaughterTrackTanLambdaError(
const Particle* part,
const std::vector<double>& daughterID);
126 double v0DaughterD0(
const Particle* particle,
const std::vector<double>& daughterID);
131 double v0DaughterD0Diff(
const Particle* particle);
136 double v0DaughterZ0(
const Particle* particle,
const std::vector<double>& daughterID);
141 double v0DaughterZ0Diff(
const Particle* particle);
146 double v0DaughterHelixWithTrueVertexAsPivotD0Pull(
const Particle* part,
const std::vector<double>& daughterID);
151 double v0DaughterHelixWithTrueVertexAsPivotPhi0Pull(
const Particle* part,
const std::vector<double>& daughterID);
156 double v0DaughterHelixWithTrueVertexAsPivotOmegaPull(
const Particle* part,
const std::vector<double>& daughterID);
161 double v0DaughterHelixWithTrueVertexAsPivotZ0Pull(
const Particle* part,
const std::vector<double>& daughterID);
166 double v0DaughterHelixWithTrueVertexAsPivotTanLambdaPull(
const Particle* part,
const std::vector<double>& daughterID);
171 double v0DaughterHelixWithOriginAsPivotD0Pull(
const Particle* part,
const std::vector<double>& daughterID);
176 double v0DaughterHelixWithOriginAsPivotPhi0Pull(
const Particle* part,
const std::vector<double>& daughterID);
181 double v0DaughterHelixWithOriginAsPivotOmegaPull(
const Particle* part,
const std::vector<double>& daughterID);
186 double v0DaughterHelixWithOriginAsPivotZ0Pull(
const Particle* part,
const std::vector<double>& daughterID);
191 double v0DaughterHelixWithOriginAsPivotTanLambdaPull(
const Particle* part,
const std::vector<double>& daughterID);
196 double v0DaughterTrackParam5AtIPPerigee(
const Particle* part,
const std::vector<double>& params);
202 double v0DaughterTrackParamCov5x5AtIPPerigee(
const Particle* part,
const std::vector<double>& params);
208 int v0DaughtersShareInnermostHit(
const Particle* part);
213 bool v0DaughtersShareInnermostUHit(
const Particle* part);
218 bool v0DaughtersShareInnermostVHit(
const Particle* part);
225 double getV0DaughterTrackDetNHits(
const Particle* particle,
const double daughterID,
const Const::EDetector& det);
228 double getHelixParameterPullOfV0DaughterWithTrueVertexAsPivotAtIndex(
const Particle* particle,
const double daughterID,
232 int convertedPhotonErrorChecks(
const Particle* gamma,
const std::vector<double>& daughterIndices);
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,
242 double convertedPhotonInvariantMass(
const Particle* gamma,
const std::vector<double>& daughterIndices);
247 double convertedPhotonDelTanLambda(
const Particle* gamma,
const std::vector<double>& daughterIndices);
252 double convertedPhotonDelR(
const Particle* gamma,
const std::vector<double>& daughterIndices);
255 std::pair<double, double> convertedPhotonZ1Z2(
const Particle* gamma,
const std::vector<double>& daughterIndices);
260 double convertedPhotonDelZ(
const Particle* gamma,
const std::vector<double>& daughterIndices);
265 double convertedPhotonZ(
const Particle* gamma,
const std::vector<double>& daughterIndices);
268 TVector2 convertedPhotonXY(
const Particle* gamma,
const std::vector<double>& daughterIndices);
273 double convertedPhotonX(
const Particle* gamma,
const std::vector<double>& daughterIndices);
278 double convertedPhotonY(
const Particle* gamma,
const std::vector<double>& daughterIndices);
283 double convertedPhotonRho(
const Particle* gamma,
const std::vector<double>& daughterIndices);
288 B2Vector3D convertedPhoton3Momentum(
const Particle* gamma,
const std::vector<double>& daughterIndices);
293 double convertedPhotonPx(
const Particle* gamma,
const std::vector<double>& daughterIndices);
298 double convertedPhotonPy(
const Particle* gamma,
const std::vector<double>& daughterIndices);
303 double convertedPhotonPz(
const Particle* gamma,
const std::vector<double>& daughterIndices);
EDetector
Enum for identifying the detector components (detector and subdetector).
B2Vector3< double > B2Vector3D
typedef for common usage with double
Abstract base class for different kinds of events.