Belle II Software  light-2403-persian
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 
16 namespace 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.
Definition: ClusterUtils.h:24