Belle II Software development
EventVariables.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 Particle;
19
20 namespace Variable {
21
25 bool isMC(const Particle*);
26
30 bool isContinuumEvent(const Particle*);
34 bool isChargedBEvent(const Particle*);
38 double isUnmixedBEvent(const Particle*);
39
40
41 /*
42 * Variable used as target for Continuum Suppression Training
43 * Returns 1 if the Event is not a continuum event, else 0
44 */
45 bool isNotContinuumEvent(const Particle*);
46
50 int nTracks(const Particle*);
51
56 int nChargeZeroTrackFits(const Particle*);
57
61 double belleECLEnergy(const Particle*);
62
66 int nKLMClusters(const Particle*);
67
71 int nMCParticles(const Particle*);
72
76 int nPrimaryMCParticles(const Particle*);
77
81 int nInitialPrimaryMCParticles(const Particle*);
82
86 int nVirtualPrimaryMCParticles(const Particle*);
87
91 int nNeutralECLClusters(const Particle*, const std::vector<double>& hypothesis);
92
96 int nV0s(const Particle*);
97
101 int nValidV0s(const Particle*);
102
106 int expNum(const Particle*);
107
111 int evtNum(const Particle*);
112
116 int runNum(const Particle*);
117
121 int productionIdentifier(const Particle*);
122
126 double getCMSEnergy(const Particle*);
127
131 double getBeamPx(const Particle*);
132
136 double getBeamPy(const Particle*);
137
141 double getBeamPz(const Particle*);
142
146 double getBeamE(const Particle*);
147
148
150 double getMcPxHER(const Particle*);
151
153 double getMcPyHER(const Particle*);
154
156 double getMcPzHER(const Particle*);
157
159 double getMcPxLER(const Particle*);
160
162 double getMcPyLER(const Particle*);
163
165 double getMcPzLER(const Particle*);
166
167
169 double getPxHER(const Particle*);
170
172 double getPyHER(const Particle*);
173
175 double getPzHER(const Particle*);
176
178 double getPxLER(const Particle*);
179
181 double getPyLER(const Particle*);
182
184 double getPzLER(const Particle*);
185
186
187
191 double getCMSEnergyMC(const Particle*);
192
196 double getTotalEnergyMC(const Particle*);
197
201 double getGenIPX(const Particle*);
202
206 double getGenIPY(const Particle*);
207
211 double getGenIPZ(const Particle*);
212
216 double getIPX(const Particle*);
217
221 double getIPY(const Particle*);
222
226 double getIPZ(const Particle*);
227
231 double ipCovMatrixElement(const Particle*, const std::vector<double>& element);
232
236 double thrustOfEvent(const Particle*);
237
241 double thrustOfEvent_Px(const Particle*);
242
246 double thrustOfEvent_Py(const Particle*);
247
251 double thrustOfEvent_Pz(const Particle*);
252
256 double missingMomentumOfEvent(const Particle*);
257
261 double missingMomentumOfEvent_Px(const Particle*);
262
266 double missingMomentumOfEvent_Py(const Particle*);
267
271 double missingMomentumOfEvent_Pz(const Particle*);
272
276 double missingMomentumOfEvent_theta(const Particle*);
277
281 double missingMomentumOfEventCMS(const Particle*);
282
286 double genMissingMomentumOfEventCMS(const Particle*);
287
291 double missingMomentumOfEventCMS_Px(const Particle*);
292
296 double missingMomentumOfEventCMS_Py(const Particle*);
297
301 double missingMomentumOfEventCMS_Pz(const Particle*);
302
306 double missingMomentumOfEventCMS_theta(const Particle*);
307
311 double missingEnergyOfEventCMS(const Particle*);
312
317 double genMissingEnergyOfEventCMS(const Particle*);
318
322 double missingMass2OfEvent(const Particle*);
323
327 double genMissingMass2OfEvent(const Particle*);
328
332 double visibleEnergyOfEventCMS(const Particle*);
333
337 double genVisibleEnergyOfEventCMS(const Particle*);
338
342 double totalPhotonsEnergyOfEvent(const Particle*);
343
347 double genTotalPhotonsEnergyOfEvent(const Particle*);
348
352 double eventYearMonthDay(const Particle*);
353
357 double eventYear(const Particle*);
358
362 double eventTimeSeconds(const Particle*);
363
367 double eventTimeSecondsFractionRemainder(const Particle*);
368
372 double eventT0(const Particle*);
373
377 double timeSincePrevTriggerClockTicks(const Particle*);
378
382 double timeSincePrevTriggerMicroSeconds(const Particle*);
383
391 double triggeredBunchNumberTTD(const Particle*);
392
398 double triggeredBunchNumber(const Particle*);
399
403 double hasRecentInjection(const Particle*);
404
410 double timeSinceLastInjectionSignalClockTicks(const Particle*);
411
417 double timeSinceLastInjectionSignalMicroSeconds(const Particle*);
418
422 double timeSinceLastInjectionClockTicks(const Particle*);
423
427 double timeSinceLastInjectionMicroSeconds(const Particle*);
428
432 double injectionInHER(const Particle*);
433
438 double revolutionCounter2(const Particle*);
439
440 }
442} // Belle2 namespace
443
Abstract base class for different kinds of events.