Belle II Software development
Variables.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <vector>
12
13namespace Belle2 {
18 class MCParticle;
19 class Particle;
20
21 namespace Variable {
22
26 double particleP(const Particle* part);
27
31 double particleE(const Particle* part);
32
33
37 double particlePx(const Particle* part);
38
42 double particlePy(const Particle* part);
43
47 double particlePz(const Particle* part);
48
52 double particlePt(const Particle* part);
53
57 double particlePErr(const Particle* part);
58
62 double particlePxErr(const Particle* part);
63
67 double particlePyErr(const Particle* part);
68
72 double particlePzErr(const Particle* part);
73
77 double particlePtErr(const Particle* part);
78
82 double particleTheta(const Particle* part);
83
87 double particleThetaErr(const Particle* part);
88
92 double particleCosTheta(const Particle* part);
93
97 double particleCosThetaErr(const Particle* part);
98
102 double particlePhi(const Particle* part);
103
107 double particlePhiErr(const Particle* part);
108
113 double particleXp(const Particle* part);
114
118 int particlePDGCode(const Particle* part);
119
123 double cosAngleBetweenMomentumAndVertexVectorInXYPlane(const Particle* part);
124
128 double cosAngleBetweenMomentumAndVertexVector(const Particle* part);
129
134 double cosThetaBetweenParticleAndNominalB(const Particle* part);
135
140 double cosToThrustOfEvent(const Particle* part);
141
146 double covMatrixElement(const Particle*, const std::vector<double>& element);
147
153 double momentumDeviationChi2(const Particle*);
154
158 double particleMass(const Particle* part);
159
163 double particleDMass(const Particle* part);
164
168 double particleInvariantMassFromDaughters(const Particle* part);
169
173 double particleInvariantMassLambda(const Particle* part);
174
178 double particleInvariantMassError(const Particle* part);
179
183 double particleInvariantMassSignificance(const Particle* part);
184
188 double particleMassSquared(const Particle* part);
189
193 double particleQ(const Particle* part);
194
198 double particleDQ(const Particle* part);
199
203 double particleMbc(const Particle* part);
204
208 double particleDeltaE(const Particle* part);
209
213 double recoilPx(const Particle* particle);
214
218 double recoilPy(const Particle* particle);
219
223 double recoilPz(const Particle* particle);
224
228 double recoilMomentum(const Particle* particle);
229
233 double recoilMomentumTheta(const Particle* part);
234
238 double recoilMomentumPhi(const Particle* part);
239
245 double m2RecoilSignalSide(const Particle* part);
246
250 double ImpactXY(const Particle* particle);
251
255 double recoilEnergy(const Particle* particle);
256
260 double recoilMass(const Particle* particle);
261
266 double recoilMassSquared(const Particle* particle);
267
276 double recoilMCDecayType(const Particle* particle);
277
281 void checkMCParticleDecay(MCParticle* mcp, int& decayType, bool recursive);
282
286 bool False(const Particle*);
287
291 bool True(const Particle*);
295 double infinity(const Particle*);
296
300 double random(const Particle*);
301
305 double eventRandom(const Particle*);
306
310 double b2bTheta(const Particle* particle);
311
315 double b2bPhi(const Particle* particle);
316
320 double b2bClusterTheta(const Particle* particle);
321
325 double b2bClusterPhi(const Particle* particle);
326
336 double ArmenterosLongitudinalMomentumAsymmetry(const Particle* part);
337
342 double ArmenterosDaughter1Qt(const Particle* part);
343
348 double ArmenterosDaughter2Qt(const Particle* part);
349 }
351} // Belle2 namespace
Abstract base class for different kinds of events.