11 #include <analysis/dataobjects/Particle.h>
12 #include <framework/gearbox/Const.h>
25 double v0DaughterTrackNCDCHits(
const Particle* part,
const std::vector<double>& daughterID);
30 double v0DaughterTrackNSVDHits(
const Particle* part,
const std::vector<double>& daughterID);
35 double v0DaughterTrackNPXDHits(
const Particle* part,
const std::vector<double>& daughterID);
40 double v0DaughterTrackNVXDHits(
const Particle* part,
const std::vector<double>& daughterID);
45 double v0DaughterTrackFirstSVDLayer(
const Particle* part,
const std::vector<double>& daughterID);
50 double v0DaughterTrackFirstPXDLayer(
const Particle* part,
const std::vector<double>& daughterID);
55 double v0DaughterTrackFirstCDCLayer(
const Particle* part,
const std::vector<double>& daughterID);
60 double v0DaughterTrackLastCDCLayer(
const Particle* part,
const std::vector<double>& daughterID);
65 double v0DaughterTrackPValue(
const Particle* part,
const std::vector<double>& daughterID);
70 double v0DaughterTrackD0(
const Particle* part,
const std::vector<double>& daughterID);
75 double v0DaughterTrackPhi0(
const Particle* part,
const std::vector<double>& daughterID);
80 double v0DaughterTrackOmega(
const Particle* part,
const std::vector<double>& daughterID);
85 double v0DaughterTrackZ0(
const Particle* part,
const std::vector<double>& daughterID);
90 double v0DaughterTrackTanLambda(
const Particle* part,
const std::vector<double>& daughterID);
95 double v0DaughterTrackD0Error(
const Particle* part,
const std::vector<double>& daughterID);
100 double v0DaughterTrackPhi0Error(
const Particle* part,
const std::vector<double>& daughterID);
105 double v0DaughterTrackOmegaError(
const Particle* part,
const std::vector<double>& daughterID);
110 double v0DaughterTrackZ0Error(
const Particle* part,
const std::vector<double>& daughterID);
115 double v0DaughterTrackTanLambdaError(
const Particle* part,
const std::vector<double>& daughterID);
120 double v0DaughterD0(
const Particle* particle,
const std::vector<double>& daughterID);
125 double v0DaughterD0Diff(
const Particle* particle);
130 double v0DaughterZ0(
const Particle* particle,
const std::vector<double>& daughterID);
135 double v0DaughterZ0Diff(
const Particle* particle);
140 double v0DaughterHelixWithTrueVertexAsPivotD0Pull(
const Particle* part,
const std::vector<double>& daughterID);
145 double v0DaughterHelixWithTrueVertexAsPivotPhi0Pull(
const Particle* part,
const std::vector<double>& daughterID);
150 double v0DaughterHelixWithTrueVertexAsPivotOmegaPull(
const Particle* part,
const std::vector<double>& daughterID);
155 double v0DaughterHelixWithTrueVertexAsPivotZ0Pull(
const Particle* part,
const std::vector<double>& daughterID);
160 double v0DaughterHelixWithTrueVertexAsPivotTanLambdaPull(
const Particle* part,
const std::vector<double>& daughterID);
165 double v0DaughterHelixWithOriginAsPivotD0Pull(
const Particle* part,
const std::vector<double>& daughterID);
170 double v0DaughterHelixWithOriginAsPivotPhi0Pull(
const Particle* part,
const std::vector<double>& daughterID);
175 double v0DaughterHelixWithOriginAsPivotOmegaPull(
const Particle* part,
const std::vector<double>& daughterID);
180 double v0DaughterHelixWithOriginAsPivotZ0Pull(
const Particle* part,
const std::vector<double>& daughterID);
185 double v0DaughterHelixWithOriginAsPivotTanLambdaPull(
const Particle* part,
const std::vector<double>& daughterID);
190 double v0DaughterTrackParam5AtIPPerigee(
const Particle* part,
const std::vector<double>& params);
196 double v0DaughterTrackParamCov5x5AtIPPerigee(
const Particle* part,
const std::vector<double>& params);
202 int v0DaughtersShareInnermostHit(
const Particle* part);
207 bool v0DaughtersShareInnermostUHit(
const Particle* part);
212 bool v0DaughtersShareInnermostVHit(
const Particle* part);
219 double getV0DaughterTrackDetNHits(
const Particle* particle,
const double daughterID,
const Const::EDetector& det);
222 double getHelixParameterPullOfV0DaughterWithTrueVertexAsPivotAtIndex(
const Particle* particle,
const double daughterID,
226 int convertedPhotonErrorChecks(
const Particle* gamma,
const std::vector<double>& daughterIndices);
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,
236 double convertedPhotonInvariantMass(
const Particle* gamma,
const std::vector<double>& daughterIndices);
241 double convertedPhotonDelTanLambda(
const Particle* gamma,
const std::vector<double>& daughterIndices);
246 double convertedPhotonDelR(
const Particle* gamma,
const std::vector<double>& daughterIndices);
249 std::pair<double, double> convertedPhotonZ1Z2(
const Particle* gamma,
const std::vector<double>& daughterIndices);
254 double convertedPhotonDelZ(
const Particle* gamma,
const std::vector<double>& daughterIndices);
259 double convertedPhotonZ(
const Particle* gamma,
const std::vector<double>& daughterIndices);
262 TVector2 convertedPhotonXY(
const Particle* gamma,
const std::vector<double>& daughterIndices);
267 double convertedPhotonX(
const Particle* gamma,
const std::vector<double>& daughterIndices);
272 double convertedPhotonY(
const Particle* gamma,
const std::vector<double>& daughterIndices);
277 double convertedPhotonRho(
const Particle* gamma,
const std::vector<double>& daughterIndices);
282 TVector3 convertedPhoton3Momentum(
const Particle* gamma,
const std::vector<double>& daughterIndices);
287 double convertedPhotonPx(
const Particle* gamma,
const std::vector<double>& daughterIndices);
292 double convertedPhotonPy(
const Particle* gamma,
const std::vector<double>& daughterIndices);
297 double convertedPhotonPz(
const Particle* gamma,
const std::vector<double>& daughterIndices);
EDetector
Enum for identifying the detector components (detector and subdetector).
Abstract base class for different kinds of events.