Belle II Software development
TimeDependentVariables.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#include <string>
13#include <analysis/VariableManager/Manager.h>
14#include <framework/geometry/B2Vector3.h>
15
16namespace Belle2 {
21 class Particle;
22
23 namespace Variable {
24
25
31 double particleTagVx(const Particle* particle);
32
38 double particleTagVy(const Particle* particle);
39
45 double particleTagVz(const Particle* particle);
46
52 double getY4Sx(const Particle* part);
53
59 double getY4Sy(const Particle* part);
60
66 double getY4Sz(const Particle* part);
67
73 double getSigBdecayTime(const Particle* part);
74
80 double getTagBdecayTime(const Particle* part);
81
87 double getDeltaT3D(const Particle* part);
88
94 double particleTruthTagVx(const Particle* particle);
95
101 double particleTruthTagVy(const Particle* particle);
102
108 double particleTruthTagVz(const Particle* particle);
109
115 double particleTagVpVal(const Particle* particle);
116
122 double particleTagVNTracks(const Particle* particle);
123
129 double particleTagVNTracks(const Particle* particle);
130
136 double particleTagVNDF(const Particle* particle);
137
143 double particleTagVChi2(const Particle* particle);
144
150 double particleTagVChi2IP(const Particle* particle);
151
152
158 double particleTagVxErr(const Particle* particle);
159
165 double particleTagVyErr(const Particle* particle);
166
172 double particleTagVzErr(const Particle* particle);
173
179 double particleDeltaT(const Particle* particle);
180
186 double particleDeltaTBelle(const Particle* particle);
187
188
194 double particleDeltaTErr(const Particle* particle);
195
201 double particleDeltaTRes(const Particle* particle);
202
208 double particleMCDeltaTau(const Particle* particle);
209
215 double particleMCDeltaT(const Particle* particle);
216
222 double particleMCDeltaL(const Particle* particle);
223
224
230 double particleDeltaZ(const Particle* particle);
231
237 double particleDeltaZErr(const Particle* particle);
238
244 double particleDeltaB(const Particle* particle);
245
251 double particleDeltaBErr(const Particle* particle);
252
257 double vertexBoostDirection(const Particle* particle);
258
263 double vertexOrthogonalBoostDirection(const Particle* particle);
264
269 double vertexTruthBoostDirection(const Particle* particle);
270
275 double vertexTruthOrthogonalBoostDirection(const Particle* particle);
276
281 double vertexErrBoostDirection(const Particle* particle);
282
287 double vertexErrOrthBoostDirection(const Particle* particle);
288
289
290
295 double tagVBoostDirection(const Particle* particle);
296
301 double tagVOrthogonalBoostDirection(const Particle* particle);
302
307 double tagVTruthBoostDirection(const Particle* particle);
308
313 double tagVTruthOrthogonalBoostDirection(const Particle* particle);
314
319 double tagVErrBoostDirection(const Particle* particle);
320
325 double tagVErrOrthogonalBoostDirection(const Particle* particle);
326
330 double particleCosThetaBoostDirection(const Particle* part);
331
336 double particleInternalTagVMCFlavor(const Particle* particle);
337
342 double tagTrackMomentum(const Particle* part, const std::vector<double>& trackIndex);
343
348 double tagTrackMomentumX(const Particle* part, const std::vector<double>& trackIndex);
349
354 double tagTrackMomentumY(const Particle* part, const std::vector<double>& trackIndex);
355
360 double tagTrackMomentumZ(const Particle* part, const std::vector<double>& trackIndex);
361
366 double tagTrackD0(const Particle* part, const std::vector<double>& trackIndex);
367
372 double tagTrackZ0(const Particle* part, const std::vector<double>& trackIndex);
373
378 double particleTagVNFitTracks(const Particle* particle);
379
384 double tagTrackRaveWeight(const Particle* part, const std::vector<double>& trackIndex);
385
390 double tagTrackDistanceToConstraint(const Particle* part, const std::vector<double>& trackIndex);
391
392
398 double tagTrackDistanceToConstraintErr(const Particle* part, const std::vector<double>& trackIndex);
399
405 double tagTrackDistanceToConstraintSignificance(const Particle* part, const std::vector<double>& trackIndex);
406
407
412 double tagVDistanceToConstraint(const Particle* part);
413
419 double tagVDistanceToConstraintErr(const Particle* part);
420
425 double tagVDistanceToConstraintSignificance(const Particle* part);
426
427
432 double tagTrackDistanceToTagV(const Particle* part, const std::vector<double>& trackIndex);
433
439 double tagTrackDistanceToTagVErr(const Particle* part, const std::vector<double>& trackIndex);
440
446 double tagTrackDistanceToTagVSignificance(const Particle* part, const std::vector<double>& trackIndex);
447
453 double tagTrackTrueDistanceToTagV(const Particle* part, const std::vector<double>& trackIndex);
454
460 B2Vector3D tagTrackTrueVecToTagV(const Particle* part, const std::vector<double>& trackIndex);
461
467 double tagTrackTrueVecToTagVX(const Particle* part, const std::vector<double>& trackIndex);
468
474 double tagTrackTrueVecToTagVY(const Particle* part, const std::vector<double>& trackIndex);
475
481 double tagTrackTrueVecToTagVZ(const Particle* part, const std::vector<double>& trackIndex);
482
487 B2Vector3D tagTrackTrueMomentum(const Particle* part, const std::vector<double>& trackIndex);
488
493 double tagTrackTrueMomentumX(const Particle* part, const std::vector<double>& trackIndex);
494
499 double tagTrackTrueMomentumY(const Particle* part, const std::vector<double>& trackIndex);
500
505 double tagTrackTrueMomentumZ(const Particle* part, const std::vector<double>& trackIndex);
506
511 B2Vector3D tagTrackTrueOrigin(const Particle* part, const std::vector<double>& trackIndex);
512
517 double tagTrackTrueOriginX(const Particle* part, const std::vector<double>& trackIndex);
518
523 double tagTrackTrueOriginY(const Particle* part, const std::vector<double>& trackIndex);
524
529 double tagTrackTrueOriginZ(const Particle* part, const std::vector<double>& trackIndex);
530
538 int fitTruthStatus(const Particle* part);
539
547 int rollbackStatus(const Particle* part);
548
549 //**********************************
550 //Meta variables
551 //**********************************
552
557 typedef double (*TagTrFPtr)(const Particle*, const std::vector<double>&);
558
565 Manager::FunctionPtr tagTrackAverage(const std::vector<std::string>& variable);
566
573 Manager::FunctionPtr tagTrackMax(const std::vector<std::string>& variable);
574
581 Manager::FunctionPtr tagTrackMin(const std::vector<std::string>& variable);
582
589 Manager::FunctionPtr tagTrackSum(const std::vector<std::string>& variable);
590
597 Manager::FunctionPtr tagTrackAverageSquares(const std::vector<std::string>& variable);
598
605 Manager::FunctionPtr tagTrackWeightedAverage(const std::vector<std::string>& variable);
606
613 Manager::FunctionPtr tagTrackWeightedAverageSquares(const std::vector<std::string>& variable);
614
615 }
617}
618
std::function< VarVariant(const Particle *)> FunctionPtr
functions stored take a const Particle* and return VarVariant.
Definition: Manager.h:112
B2Vector3< double > B2Vector3D
typedef for common usage with double
Definition: B2Vector3.h:516
Abstract base class for different kinds of events.