Belle II Software  release-06-00-14
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 <mdst/dataobjects/MCParticle.h>
12 
13 #include <TLorentzVector.h>
14 
15 #include <vector>
16 
17 namespace Belle2 {
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 
127  double genMotherPDG(const Particle* particle);
128 
132  double genMotherIndex(const Particle* particle);
133 
137  double genMotherP(const Particle* particle);
138 
142  double genParticleIndex(const Particle* particle);
143 
147  double particleMCMatchPDGCode(const Particle* particle);
148 
152  double particleMCErrors(const Particle* particle);
153 
157  double particleMCMatchWeight(const Particle* particle);
158 
162  double particleNumberOfMCMatch(const Particle* particle);
163 
167  double particleMCPrimaryParticle(const Particle* particle);
168 
169  /*
170  * return the true momentum transfer to lepton pair in a B (semi-) leptonic B meson decay
171  */
172  double particleMCMomentumTransfer2(const Particle* part);
173 
178  double particleMCMatchDecayTime(const Particle* particle);
179 
180 
182  double particleMCMatchLifeTime(const Particle* particle);
183 
187  double particleMCMatchPX(const Particle* particle);
188 
192  double particleMCMatchPY(const Particle* particle);
193 
197  double particleMCMatchPZ(const Particle* particle);
198 
202  double particleMCMatchPT(const Particle* particle);
203 
207  double particleMCMatchE(const Particle* particle);
208 
212  double particleMCMatchP(const Particle* particle);
213 
217  TLorentzVector MCInvisibleP4(const MCParticle* mcparticle);
218 
222  double particleMCCosThetaBetweenParticleAndNominalB(const Particle* particle);
223 
228  double particleMCRecoilMass(const Particle* particle);
229 
233  double generatorEventWeight(const Particle*);
234 
238  int tauPlusMcMode(const Particle*);
239 
243  int tauMinusMcMode(const Particle*);
244 
248  int tauPlusMcProng(const Particle*);
249 
253  int tauMinusMcProng(const Particle*);
254 
256  double isReconstructible(const Particle*);
257 
259  double seenInPXD(const Particle*);
260 
262  double seenInSVD(const Particle*);
263 
265  double seenInCDC(const Particle*);
266 
268  double seenInTOP(const Particle*);
269 
271  double seenInECL(const Particle*);
272 
274  double seenInARICH(const Particle*);
275 
277  double seenInKLM(const Particle*);
278 
284  int genNStepsToDaughter(const Particle* particle, const std::vector<double>& arguments);
285 
290  int genNMissingDaughter(const Particle* particle, const std::vector<double>& arguments);
291 
295  double getHEREnergy(const Particle*);
296 
300  double getLEREnergy(const Particle*);
301 
305  double getCrossingAngleX(const Particle*);
306 
310  double getCrossingAngleY(const Particle*);
311 
316  double particleClusterMatchWeight(const Particle* particle);
317 
322  double particleClusterBestMCMatchWeight(const Particle*);
323 
331  double particleClusterBestMCPDGCode(const Particle*);
332 
338  double isBBCrossfeed(const Particle*);
339  }
341 }
342 
Abstract base class for different kinds of events.