Belle II Software  release-08-01-10
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 
15 namespace Belle2 {
20  class MCParticle;
21  class Particle;
22 
23  namespace Variable {
24 
28  double particleMCInitialParticle(const Particle* particle);
29 
33  double particleMCVirtualParticle(const Particle* particle);
34 
38  double particleMCFSRParticle(const Particle* particle);
39 
43  double particleMCPhotosParticle(const Particle* particle);
44 
48  double particleMCISRParticle(const Particle* particle);
49 
54  double isSignal(const Particle* part);
55 
60  double isSignalAcceptWrongFSPs(const Particle* part);
61 
65  double isSignalAcceptMissingNeutrino(const Particle* part);
66 
70  double isSignalAcceptMissingMassive(const Particle* part);
71 
75  double isSignalAcceptMissingGamma(const Particle* part);
76 
80  double isSignalAcceptBremsPhotons(const Particle* part);
81 
85  double isSignalAcceptMissing(const Particle* part);
86 
91  double isWrongCharge(const Particle* particle);
92 
99  double isCloneTrack(const Particle* particle);
100 
105  double isOrHasCloneTrack(const Particle* particle);
106 
111  double isMisidentified(const Particle* particle);
112 
116  double genNthMotherPDG(const Particle* part, const std::vector<double>& daughterIDs);
117 
121  double genNthMotherIndex(const Particle* part, const std::vector<double>& daughterIDs);
122 
126  double genMotherPDG(const Particle* particle);
127 
131  double genMotherIndex(const Particle* particle);
132 
136  double genMotherP(const Particle* particle);
137 
141  double genParticleIndex(const Particle* particle);
142 
146  double particleMCMatchPDGCode(const Particle* particle);
147 
151  double particleMCErrors(const Particle* particle);
152 
156  double particleMCMatchWeight(const Particle* particle);
157 
161  double particleNumberOfMCMatch(const Particle* particle);
162 
166  double particleMCPrimaryParticle(const Particle* particle);
167 
168  /*
169  * return the true momentum transfer to lepton pair in a B (semi-) leptonic B meson decay
170  */
171  double particleMCMomentumTransfer2(const Particle* part);
172 
177  double particleMCMatchDecayTime(const Particle* particle);
178 
179 
181  double particleMCMatchLifeTime(const Particle* particle);
182 
186  double particleMCMatchPX(const Particle* particle);
187 
191  double particleMCMatchPY(const Particle* particle);
192 
196  double particleMCMatchPZ(const Particle* particle);
197 
201  double particleMCMatchPT(const Particle* particle);
202 
206  double particleMCMatchE(const Particle* particle);
207 
211  double particleMCMatchP(const Particle* particle);
212 
216  ROOT::Math::PxPyPzEVector MCInvisibleP4(const MCParticle* mcparticle);
217 
221  double particleMCCosThetaBetweenParticleAndNominalB(const Particle* particle);
222 
227  double particleMCRecoilMass(const Particle* particle);
228 
232  double generatorEventWeight(const Particle*);
233 
237  int tauPlusMcMode(const Particle*);
238 
242  int tauMinusMcMode(const Particle*);
243 
247  int tauPlusMcProng(const Particle*);
248 
252  int tauMinusMcProng(const Particle*);
253 
255  double isReconstructible(const Particle*);
256 
258  double isTrackFound(const Particle*);
259 
261  double seenInPXD(const Particle*);
262 
264  double seenInSVD(const Particle*);
265 
267  double seenInCDC(const Particle*);
268 
270  double seenInTOP(const Particle*);
271 
273  double seenInECL(const Particle*);
274 
276  double seenInARICH(const Particle*);
277 
279  double seenInKLM(const Particle*);
280 
286  int genNStepsToDaughter(const Particle* particle, const std::vector<double>& arguments);
287 
292  int genNMissingDaughter(const Particle* particle, const std::vector<double>& arguments);
293 
297  double getHEREnergy(const Particle*);
298 
302  double getLEREnergy(const Particle*);
303 
307  double getCrossingAngleX(const Particle*);
308 
312  double getCrossingAngleY(const Particle*);
313 
318  double particleClusterMatchWeight(const Particle* particle);
319 
324  double particleClusterBestMCMatchWeight(const Particle*);
325 
333  double particleClusterBestMCPDGCode(const Particle*);
334 
341  double particleClusterTotalMCMatchWeight(const Particle*);
342 
348  double isBBCrossfeed(const Particle*);
349  }
351 }
352 
Abstract base class for different kinds of events.