Belle II Software  release-05-01-25
OrcaKinFitVariables.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Yu Hu *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #include <analysis/variables/OrcaKinFitVariables.h>
12 
13 #include <analysis/VariableManager/Manager.h>
14 #include <analysis/dataobjects/Particle.h>
15 
16 #include <framework/logging/Logger.h>
17 
18 using namespace std;
19 
20 namespace Belle2 {
25  namespace Variable {
26 
27 // Chi2 and Prob -------------------------------------------
28 
29  double OrcaKinFitChi2(const Particle* part)
30  {
31  if (part->hasExtraInfo("OrcaKinFitChi2")) return part->getExtraInfo("OrcaKinFitChi2");
32  else {
33  B2WARNING("The ExtraInfo 'OrcaKinFitChi2' not found!");
34  return std::numeric_limits<double>::quiet_NaN();
35  }
36  }
37 
38  double OrcaKinFitProb(const Particle* part)
39  {
40  if (part->hasExtraInfo("OrcaKinFitProb")) return part->getExtraInfo("OrcaKinFitProb");
41  else {
42  B2WARNING("The ExtraInfo 'OrcaKinFitProb' not found!");
43  return std::numeric_limits<double>::quiet_NaN();
44  }
45  }
46 
47  double ErrorCode(const Particle* part)
48  {
49  if (part->hasExtraInfo("OrcaKinFitErrorCode")) return part->getExtraInfo("OrcaKinFitErrorCode");
50  else {
51  B2WARNING("The ExtraInfo 'OrcaKinFitErrorCode' not found!");
52  return std::numeric_limits<double>::quiet_NaN();
53  }
54  }
55 
56 
57 // For 1C fit ------------------------------------------------------------
58 
59  double UnmeasuredTheta(const Particle* part)
60  {
61  if (part->hasExtraInfo("OrcaKinFitUnmeasuredTheta")) return part->getExtraInfo("OrcaKinFitUnmeasuredTheta");
62  else {
63  B2WARNING("The ExtraInfo 'OrcaKinFitUnmeasuredTheta' not found!");
64  return std::numeric_limits<double>::quiet_NaN();
65  }
66  }
67 
68  double UnmeasuredPhi(const Particle* part)
69  {
70  if (part->hasExtraInfo("OrcaKinFitUnmeasuredPhi")) return part->getExtraInfo("OrcaKinFitUnmeasuredPhi");
71  else {
72  B2WARNING("The ExtraInfo 'OrcaKinFitUnmeasuredPhi' not found!");
73  return std::numeric_limits<double>::quiet_NaN();
74  }
75  }
76 
77  double UnmeasuredE(const Particle* part)
78  {
79  if (part->hasExtraInfo("OrcaKinFitUnmeasuredE")) return part->getExtraInfo("OrcaKinFitUnmeasuredE");
80  else {
81  B2WARNING("The ExtraInfo 'OrcaKinFitUnmeasuredE' not found!");
82  return std::numeric_limits<double>::quiet_NaN();
83  }
84  }
85 
86  double UnmeasuredErrorTheta(const Particle* part)
87  {
88  if (part->hasExtraInfo("OrcaKinFitUnmeasuredErrorTheta")) return part->getExtraInfo("OrcaKinFitUnmeasuredErrorTheta");
89  else {
90  B2WARNING("The ExtraInfo 'OrcaKinFitUnmeasuredErrorTheta' not found!");
91  return std::numeric_limits<double>::quiet_NaN();
92  }
93  }
94 
95  double UnmeasuredErrorPhi(const Particle* part)
96  {
97  if (part->hasExtraInfo("OrcaKinFitUnmeasuredErrorPhi")) return part->getExtraInfo("OrcaKinFitUnmeasuredErrorPhi");
98  else {
99  B2WARNING("The ExtraInfo 'OrcaKinFitUnmeasuredErrorPhi' not found!");
100  return std::numeric_limits<double>::quiet_NaN();
101  }
102  }
103 
104  double UnmeasuredErrorE(const Particle* part)
105  {
106  if (part->hasExtraInfo("OrcaKinFitUnmeasuredErrorE")) return part->getExtraInfo("OrcaKinFitUnmeasuredErrorE");
107  else {
108  B2WARNING("The ExtraInfo 'OrcaKinFitUnmeasuredErrorE' not found!");
109  return std::numeric_limits<double>::quiet_NaN();
110  }
111  }
112 
113 
114  VARIABLE_GROUP("OrcaKinFit");
115  REGISTER_VARIABLE("OrcaKinFitChi2", OrcaKinFitChi2, "OrcaKinFit Chi2");
116  REGISTER_VARIABLE("OrcaKinFitProb", OrcaKinFitProb, "OrcaKinFit Prob");
117  REGISTER_VARIABLE("OrcaKinFitErrorCode", ErrorCode, "OrcaKinFit ErrorCode");
118  REGISTER_VARIABLE("OrcaKinFitUnmeasuredTheta", UnmeasuredTheta, "Theta of Unmeasured particle in OrcaKinFit 1C");
119  REGISTER_VARIABLE("OrcaKinFitUnmeasuredPhi", UnmeasuredPhi, "Phi of Unmeasured particle in OrcaKinFit 1C");
120  REGISTER_VARIABLE("OrcaKinFitUnmeasuredE", UnmeasuredE, "energy of Unmeasured particle in OrcaKinFit 1C");
121  REGISTER_VARIABLE("OrcaKinFitUnmeasuredErrorTheta", UnmeasuredErrorTheta, "Theta error of Unmeasured particle in OrcaKinFit 1C");
122  REGISTER_VARIABLE("OrcaKinFitUnmeasuredErrorPhi", UnmeasuredErrorPhi, "Phi error of Unmeasured particle in OrcaKinFit 1C");
123  REGISTER_VARIABLE("OrcaKinFitUnmeasuredErrorE", UnmeasuredErrorE, "energy error of Unmeasured particle in OrcaKinFit 1C");
124 
125 
126  }
128 }
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19