11#include <framework/gearbox/Const.h> 
   13#include <Math/Vector2D.h> 
   14#include <Math/Vector3D.h> 
   28    double v0DaughterTrackNCDCHits(
const Particle* part, 
const std::vector<double>& daughterID);
 
   33    double v0DaughterTrackNSVDHits(
const Particle* part, 
const std::vector<double>& daughterID);
 
   38    double v0DaughterTrackNPXDHits(
const Particle* part, 
const std::vector<double>& daughterID);
 
   43    double v0DaughterTrackNVXDHits(
const Particle* part, 
const std::vector<double>& daughterID);
 
   48    double v0DaughterTrackNRemovedHits(
const Particle* part, 
const std::vector<double>& daughterID);
 
   53    double v0DaughterTrackFirstSVDLayer(
const Particle* part, 
const std::vector<double>& daughterID);
 
   58    double v0DaughterTrackFirstPXDLayer(
const Particle* part, 
const std::vector<double>& daughterID);
 
   63    double v0DaughterTrackFirstCDCLayer(
const Particle* part, 
const std::vector<double>& daughterID);
 
   68    double v0DaughterTrackLastCDCLayer(
const Particle* part, 
const std::vector<double>& daughterID);
 
   73    double v0DaughterTrackPValue(
const Particle* part, 
const std::vector<double>& daughterID);
 
   78    double v0DaughterTrackD0(
const Particle* part, 
const std::vector<double>& daughterID);
 
   83    double v0DaughterTrackPhi0(
const Particle* part, 
const std::vector<double>& daughterID);
 
   88    double v0DaughterTrackOmega(
const Particle* part, 
const std::vector<double>& daughterID);
 
   93    double v0DaughterTrackZ0(
const Particle* part, 
const std::vector<double>& daughterID);
 
   98    double v0DaughterTrackTanLambda(
const Particle* part, 
const std::vector<double>& daughterID);
 
  103    double v0DaughterTrackD0Error(
const Particle* part, 
const std::vector<double>& daughterID);
 
  108    double v0DaughterTrackPhi0Error(
const Particle* part, 
const std::vector<double>& daughterID);
 
  113    double v0DaughterTrackOmegaError(
const Particle* part, 
const std::vector<double>& daughterID);
 
  118    double v0DaughterTrackZ0Error(
const Particle* part, 
const std::vector<double>& daughterID);
 
  123    double v0DaughterTrackTanLambdaError(
const Particle* part, 
const std::vector<double>& daughterID);
 
  128    double v0DaughterD0(
const Particle* particle, 
const std::vector<double>& daughterID);
 
  133    double v0DaughterD0Diff(
const Particle* particle);
 
  138    double v0DaughterZ0(
const Particle* particle, 
const std::vector<double>& daughterID);
 
  143    double v0DaughterZ0Diff(
const Particle* particle);
 
  148    double v0DaughterHelixWithTrueVertexAsPivotD0Pull(
const Particle* part, 
const std::vector<double>& daughterID);
 
  153    double v0DaughterHelixWithTrueVertexAsPivotPhi0Pull(
const Particle* part, 
const std::vector<double>& daughterID);
 
  158    double v0DaughterHelixWithTrueVertexAsPivotOmegaPull(
const Particle* part, 
const std::vector<double>& daughterID);
 
  163    double v0DaughterHelixWithTrueVertexAsPivotZ0Pull(
const Particle* part, 
const std::vector<double>& daughterID);
 
  168    double v0DaughterHelixWithTrueVertexAsPivotTanLambdaPull(
const Particle* part, 
const std::vector<double>& daughterID);
 
  173    double v0DaughterHelixWithOriginAsPivotD0Pull(
const Particle* part, 
const std::vector<double>& daughterID);
 
  178    double v0DaughterHelixWithOriginAsPivotPhi0Pull(
const Particle* part, 
const std::vector<double>& daughterID);
 
  183    double v0DaughterHelixWithOriginAsPivotOmegaPull(
const Particle* part, 
const std::vector<double>& daughterID);
 
  188    double v0DaughterHelixWithOriginAsPivotZ0Pull(
const Particle* part, 
const std::vector<double>& daughterID);
 
  193    double v0DaughterHelixWithOriginAsPivotTanLambdaPull(
const Particle* part, 
const std::vector<double>& daughterID);
 
  198    double v0DaughterTrackParam5AtIPPerigee(
const Particle* part, 
const std::vector<double>& params);
 
  204    double v0DaughterTrackParamCov5x5AtIPPerigee(
const Particle* part, 
const std::vector<double>& params);
 
  210    int v0DaughtersShareInnermostHit(
const Particle* part);
 
  215    bool v0DaughtersShareInnermostUHit(
const Particle* part);
 
  220    bool v0DaughtersShareInnermostVHit(
const Particle* part);
 
  227    double getV0DaughterTrackDetNHits(
const Particle* particle, 
const double daughterID, 
const Const::EDetector& det);
 
  230    double getHelixParameterPullOfV0DaughterWithTrueVertexAsPivotAtIndex(
const Particle* particle, 
const double daughterID,
 
  234    int convertedPhotonErrorChecks(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  237    int convertedPhotonLoadHelixParams(
const Particle* gamma, 
int daughterIndex1, 
int daughterIndex2, 
double& Phi01, 
double& D01,
 
  238                                       double& Omega1, 
double& Z01, 
double& TanLambda1, 
double& Phi02, 
double& D02, 
double& Omega2, 
double& Z02,
 
  244    double convertedPhotonInvariantMass(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  249    double convertedPhotonDelTanLambda(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  254    double convertedPhotonDelR(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  257    std::pair<double, double> convertedPhotonZ1Z2(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  262    double convertedPhotonDelZ(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  267    double convertedPhotonZ(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  270    ROOT::Math::XYVector convertedPhotonXY(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  275    double convertedPhotonX(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  280    double convertedPhotonY(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  285    double convertedPhotonRho(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  290    ROOT::Math::XYZVector convertedPhoton3Momentum(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  295    double convertedPhotonPx(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  300    double convertedPhotonPy(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
  305    double convertedPhotonPz(
const Particle* gamma, 
const std::vector<double>& daughterIndices);
 
EDetector
Enum for identifying the detector components (detector and subdetector).
Class to store reconstructed particles.
Abstract base class for different kinds of events.