9 #include <analysis/variables/OrcaKinFitVariables.h>
11 #include <analysis/VariableManager/Manager.h>
12 #include <analysis/dataobjects/Particle.h>
14 #include <framework/logging/Logger.h>
26 double OrcaKinFitChi2(
const Particle* part)
28 if (part->hasExtraInfo(
"OrcaKinFitChi2"))
return part->getExtraInfo(
"OrcaKinFitChi2");
30 B2WARNING(
"The ExtraInfo 'OrcaKinFitChi2' not found!");
31 return std::numeric_limits<double>::quiet_NaN();
35 double OrcaKinFitProb(
const Particle* part)
37 if (part->hasExtraInfo(
"OrcaKinFitProb"))
return part->getExtraInfo(
"OrcaKinFitProb");
39 B2WARNING(
"The ExtraInfo 'OrcaKinFitProb' not found!");
40 return std::numeric_limits<double>::quiet_NaN();
44 double ErrorCode(
const Particle* part)
46 if (part->hasExtraInfo(
"OrcaKinFitErrorCode"))
return part->getExtraInfo(
"OrcaKinFitErrorCode");
48 B2WARNING(
"The ExtraInfo 'OrcaKinFitErrorCode' not found!");
49 return std::numeric_limits<double>::quiet_NaN();
55 double UnmeasuredTheta(
const Particle* part)
57 if (part->hasExtraInfo(
"OrcaKinFitUnmeasuredTheta"))
return part->getExtraInfo(
"OrcaKinFitUnmeasuredTheta");
59 B2WARNING(
"The ExtraInfo 'OrcaKinFitUnmeasuredTheta' not found!");
60 return std::numeric_limits<double>::quiet_NaN();
64 double UnmeasuredPhi(
const Particle* part)
66 if (part->hasExtraInfo(
"OrcaKinFitUnmeasuredPhi"))
return part->getExtraInfo(
"OrcaKinFitUnmeasuredPhi");
68 B2WARNING(
"The ExtraInfo 'OrcaKinFitUnmeasuredPhi' not found!");
69 return std::numeric_limits<double>::quiet_NaN();
73 double UnmeasuredE(
const Particle* part)
75 if (part->hasExtraInfo(
"OrcaKinFitUnmeasuredE"))
return part->getExtraInfo(
"OrcaKinFitUnmeasuredE");
77 B2WARNING(
"The ExtraInfo 'OrcaKinFitUnmeasuredE' not found!");
78 return std::numeric_limits<double>::quiet_NaN();
82 double UnmeasuredErrorTheta(
const Particle* part)
84 if (part->hasExtraInfo(
"OrcaKinFitUnmeasuredErrorTheta"))
return part->getExtraInfo(
"OrcaKinFitUnmeasuredErrorTheta");
86 B2WARNING(
"The ExtraInfo 'OrcaKinFitUnmeasuredErrorTheta' not found!");
87 return std::numeric_limits<double>::quiet_NaN();
91 double UnmeasuredErrorPhi(
const Particle* part)
93 if (part->hasExtraInfo(
"OrcaKinFitUnmeasuredErrorPhi"))
return part->getExtraInfo(
"OrcaKinFitUnmeasuredErrorPhi");
95 B2WARNING(
"The ExtraInfo 'OrcaKinFitUnmeasuredErrorPhi' not found!");
96 return std::numeric_limits<double>::quiet_NaN();
100 double UnmeasuredErrorE(
const Particle* part)
102 if (part->hasExtraInfo(
"OrcaKinFitUnmeasuredErrorE"))
return part->getExtraInfo(
"OrcaKinFitUnmeasuredErrorE");
104 B2WARNING(
"The ExtraInfo 'OrcaKinFitUnmeasuredErrorE' not found!");
105 return std::numeric_limits<double>::quiet_NaN();
110 VARIABLE_GROUP(
"OrcaKinFit");
111 REGISTER_VARIABLE(
"OrcaKinFitChi2", OrcaKinFitChi2, R
"DOC(
112 The :math:`\chi^2` returned by the Orca kinematic fitter.
113 Returns NaN if Orca was not run.
115 .. warning:: this is the raw :math:`\chi^2`, not over ndf.
117 .. seealso:: :ref:`kinfit`
119 REGISTER_VARIABLE("OrcaKinFitProb", OrcaKinFitProb, R
"DOC(
120 The p-value returned by the Orca kinematic fitter.
121 Returns NaN if Orca was not run.
123 .. seealso:: :ref:`kinfit`
126 REGISTER_VARIABLE(
"OrcaKinFitErrorCode", ErrorCode, R
"DOC(
127 The error code returned by the Orca kinematic fitter.
128 Returns NaN if Orca was not run.
130 .. seealso:: :ref:`kinfit`
132 REGISTER_VARIABLE("OrcaKinFitUnmeasuredTheta", UnmeasuredTheta, R
"DOC(
133 The polar angle of the "unmeasured photon" returned by Orca kinematic fitter for specific 1C fits with the ``addUnmeasuredPhoton`` parameter set.
134 I.e. for fits with sufficient constraints remaining to constrain a missing 3-vector.
135 Returns NaN if Orca was not run or if the ``addUnmeasuredPhoton`` parameter was not set.
137 .. seealso:: :ref:`kinfit`
139 REGISTER_VARIABLE("OrcaKinFitUnmeasuredPhi", UnmeasuredPhi, R
"DOC(
140 The azimuthal angle of the "unmeasured photon" returned by Orca kinematic fitter for specific 1C fits with the ``addUnmeasuredPhoton`` parameter set.
141 I.e. for fits with sufficient constraints remaining to constrain a missing 3-vector.
142 Returns NaN if Orca was not run or if the ``addUnmeasuredPhoton`` parameter was not set.
144 .. seealso:: :ref:`kinfit`
146 REGISTER_VARIABLE("OrcaKinFitUnmeasuredE", UnmeasuredE, R
"DOC(
147 The energy of the "unmeasured photon" returned by Orca kinematic fitter for specific 1C fits with the ``addUnmeasuredPhoton`` parameter set.
148 I.e. for fits with sufficient constraints remaining to constrain a missing 3-vector.
149 Returns NaN if Orca was not run or if the ``addUnmeasuredPhoton`` parameter was not set.
151 .. seealso:: :ref:`kinfit`
153 REGISTER_VARIABLE("OrcaKinFitUnmeasuredErrorTheta", UnmeasuredErrorTheta,
154 "The uncertainty on :b2:var:`OrcaKinFitUnmeasuredTheta`.");
155 REGISTER_VARIABLE(
"OrcaKinFitUnmeasuredErrorPhi", UnmeasuredErrorPhi,
"The uncertainty on :b2:var:`OrcaKinFitUnmeasuredPhi`.");
156 REGISTER_VARIABLE(
"OrcaKinFitUnmeasuredErrorE", UnmeasuredErrorE,
"The uncertainty on :b2:var:`OrcaKinFitUnmeasuredE`.");
Abstract base class for different kinds of events.