Belle II Software development
MCTruthVariables.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 <Math/Vector4D.h>
12
13#include <vector>
14#include <map>
15
16namespace Belle2 {
21 class MCParticle;
22 class Particle;
23
24 namespace Variable {
25
29 double particleMCInitialParticle(const Particle* particle);
30
34 double particleMCVirtualParticle(const Particle* particle);
35
39 double particleMCFSRParticle(const Particle* particle);
40
44 double particleMCPhotosParticle(const Particle* particle);
45
49 double particleMCISRParticle(const Particle* particle);
50
55 double isSignal(const Particle* part);
56
61 double isSignalAcceptWrongFSPs(const Particle* part);
62
66 double isSignalAcceptMissingNeutrino(const Particle* part);
67
71 double isSignalAcceptMissingMassive(const Particle* part);
72
76 double isSignalAcceptMissingGamma(const Particle* part);
77
81 double isSignalAcceptBremsPhotons(const Particle* part);
82
86 double isSignalAcceptMissing(const Particle* part);
87
92 double isWrongCharge(const Particle* particle);
93
100 double isCloneTrack(const Particle* particle);
101
106 double isOrHasCloneTrack(const Particle* particle);
107
112 double isMisidentified(const Particle* particle);
113
117 double genNthMotherPDG(const Particle* part, const std::vector<double>& daughterIDs);
118
122 double genNthMotherIndex(const Particle* part, const std::vector<double>& daughterIDs);
123
130 double genQ2PmPd(const Particle* part, const std::vector<double>& daughter_indices);
131
135 double genMotherPDG(const Particle* particle);
136
140 double genMotherIndex(const Particle* particle);
141
145 double genMotherP(const Particle* particle);
146
150 double genParticleIndex(const Particle* particle);
151
155 double particleMCMatchPDGCode(const Particle* particle);
156
160 double particleMCErrors(const Particle* particle);
161
165 double particleMCMatchWeight(const Particle* particle);
166
170 double particleNumberOfMCMatch(const Particle* particle);
171
175 double particleMCPrimaryParticle(const Particle* particle);
176
177 /*
178 * return the true momentum transfer to lepton pair in a B (semi-) leptonic B meson decay
179 */
180 double particleMCMomentumTransfer2(const Particle* part);
181
186 double particleMCMatchDecayTime(const Particle* particle);
187
188
190 double particleMCMatchLifeTime(const Particle* particle);
191
195 double particleMCMatchPX(const Particle* particle);
196
200 double particleMCMatchPY(const Particle* particle);
201
205 double particleMCMatchPZ(const Particle* particle);
206
210 double particleMCMatchPT(const Particle* particle);
211
215 double particleMCMatchE(const Particle* particle);
216
220 double particleMCMatchP(const Particle* particle);
221
225 ROOT::Math::PxPyPzEVector MCInvisibleP4(const MCParticle* mcparticle);
226
230 double particleMCCosThetaBetweenParticleAndNominalB(const Particle* particle);
231
236 double particleMCRecoilMass(const Particle* particle);
237
241 double generatorEventWeight(const Particle*);
242
246 int tauPlusMcMode(const Particle*);
247
251 int tauMinusMcMode(const Particle*);
252
256 int tauPlusMcProng(const Particle*);
257
261 int tauMinusMcProng(const Particle*);
262
264 double isReconstructible(const Particle*);
265
267 double isTrackFound(const Particle*);
268
270 double seenInPXD(const Particle*);
271
273 double seenInSVD(const Particle*);
274
276 double seenInCDC(const Particle*);
277
279 double seenInTOP(const Particle*);
280
282 double seenInECL(const Particle*);
283
285 double seenInARICH(const Particle*);
286
288 double seenInKLM(const Particle*);
289
295 int genNStepsToDaughter(const Particle* particle, const std::vector<double>& arguments);
296
301 int genNMissingDaughter(const Particle* particle, const std::vector<double>& arguments);
302
306 double getHEREnergy(const Particle*);
307
311 double getLEREnergy(const Particle*);
312
316 double getCrossingAngleX(const Particle*);
317
321 double getCrossingAngleY(const Particle*);
322
327 double particleClusterMatchWeight(const Particle* particle);
328
333 double particleClusterBestMCMatchWeight(const Particle*);
334
342 double particleClusterBestMCPDGCode(const Particle*);
343
350 double particleClusterTotalMCMatchWeight(const Particle*);
351
356 void getKlongWeightMap(const Particle* particle, std::map<int, double>& mapMCParticleIndxAndWeight);
357
364 double particleClusterTotalMCMatchWeightForKlong(const Particle*);
365
373 double particleClusterTotalMCMatchWeightForBestKlong(const Particle*);
374
380 double isBBCrossfeed(const Particle*);
381
385 int ancestorBIndex(const Particle*);
386 }
388}
389
Abstract base class for different kinds of events.