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
47
53 double particleTruthTagVx(const Particle* particle);
54
60 double particleTruthTagVy(const Particle* particle);
61
67 double particleTruthTagVz(const Particle* particle);
68
74 double particleTagVpVal(const Particle* particle);
75
81 double particleTagVNTracks(const Particle* particle);
82
88 double particleTagVNTracks(const Particle* particle);
89
95 double particleTagVNDF(const Particle* particle);
96
102 double particleTagVChi2(const Particle* particle);
103
109 double particleTagVChi2IP(const Particle* particle);
110
111
117 double particleTagVxErr(const Particle* particle);
118
124 double particleTagVyErr(const Particle* particle);
125
131 double particleTagVzErr(const Particle* particle);
132
138 double particleDeltaT(const Particle* particle);
139
145 double particleDeltaTBelle(const Particle* particle);
146
147
153 double particleDeltaTErr(const Particle* particle);
154
160 double particleDeltaTRes(const Particle* particle);
161
167 double particleMCDeltaTau(const Particle* particle);
168
174 double particleMCDeltaT(const Particle* particle);
175
181 double particleMCDeltaL(const Particle* particle);
182
183
189 double particleDeltaZ(const Particle* particle);
190
196 double particleDeltaZErr(const Particle* particle);
197
203 double particleDeltaB(const Particle* particle);
204
210 double particleDeltaBErr(const Particle* particle);
211
216 double vertexBoostDirection(const Particle* particle);
217
222 double vertexOrthogonalBoostDirection(const Particle* particle);
223
228 double vertexTruthBoostDirection(const Particle* particle);
229
234 double vertexTruthOrthogonalBoostDirection(const Particle* particle);
235
240 double vertexErrBoostDirection(const Particle* particle);
241
246 double vertexErrOrthBoostDirection(const Particle* particle);
247
248
249
254 double tagVBoostDirection(const Particle* particle);
255
260 double tagVOrthogonalBoostDirection(const Particle* particle);
261
266 double tagVTruthBoostDirection(const Particle* particle);
267
272 double tagVTruthOrthogonalBoostDirection(const Particle* particle);
273
278 double tagVErrBoostDirection(const Particle* particle);
279
284 double tagVErrOrthogonalBoostDirection(const Particle* particle);
285
289 double particleCosThetaBoostDirection(const Particle* part);
290
295 double particleInternalTagVMCFlavor(const Particle* particle);
296
301 double tagTrackMomentum(const Particle* part, const std::vector<double>& trackIndex);
302
307 double tagTrackMomentumX(const Particle* part, const std::vector<double>& trackIndex);
308
313 double tagTrackMomentumY(const Particle* part, const std::vector<double>& trackIndex);
314
319 double tagTrackMomentumZ(const Particle* part, const std::vector<double>& trackIndex);
320
325 double tagTrackD0(const Particle* part, const std::vector<double>& trackIndex);
326
331 double tagTrackZ0(const Particle* part, const std::vector<double>& trackIndex);
332
337 double particleTagVNFitTracks(const Particle* particle);
338
343 double tagTrackRaveWeight(const Particle* part, const std::vector<double>& trackIndex);
344
349 double tagTrackDistanceToConstraint(const Particle* part, const std::vector<double>& trackIndex);
350
351
357 double tagTrackDistanceToConstraintErr(const Particle* part, const std::vector<double>& trackIndex);
358
364 double tagTrackDistanceToConstraintSignificance(const Particle* part, const std::vector<double>& trackIndex);
365
366
371 double tagVDistanceToConstraint(const Particle* part);
372
378 double tagVDistanceToConstraintErr(const Particle* part);
379
384 double tagVDistanceToConstraintSignificance(const Particle* part);
385
386
391 double tagTrackDistanceToTagV(const Particle* part, const std::vector<double>& trackIndex);
392
398 double tagTrackDistanceToTagVErr(const Particle* part, const std::vector<double>& trackIndex);
399
405 double tagTrackDistanceToTagVSignificance(const Particle* part, const std::vector<double>& trackIndex);
406
412 double tagTrackTrueDistanceToTagV(const Particle* part, const std::vector<double>& trackIndex);
413
419 B2Vector3D tagTrackTrueVecToTagV(const Particle* part, const std::vector<double>& trackIndex);
420
426 double tagTrackTrueVecToTagVX(const Particle* part, const std::vector<double>& trackIndex);
427
433 double tagTrackTrueVecToTagVY(const Particle* part, const std::vector<double>& trackIndex);
434
440 double tagTrackTrueVecToTagVZ(const Particle* part, const std::vector<double>& trackIndex);
441
446 B2Vector3D tagTrackTrueMomentum(const Particle* part, const std::vector<double>& trackIndex);
447
452 double tagTrackTrueMomentumX(const Particle* part, const std::vector<double>& trackIndex);
453
458 double tagTrackTrueMomentumY(const Particle* part, const std::vector<double>& trackIndex);
459
464 double tagTrackTrueMomentumZ(const Particle* part, const std::vector<double>& trackIndex);
465
470 B2Vector3D tagTrackTrueOrigin(const Particle* part, const std::vector<double>& trackIndex);
471
476 double tagTrackTrueOriginX(const Particle* part, const std::vector<double>& trackIndex);
477
482 double tagTrackTrueOriginY(const Particle* part, const std::vector<double>& trackIndex);
483
488 double tagTrackTrueOriginZ(const Particle* part, const std::vector<double>& trackIndex);
489
497 int fitTruthStatus(const Particle* part);
498
506 int rollbackStatus(const Particle* part);
507
508 //**********************************
509 //Meta variables
510 //**********************************
511
516 typedef double (*TagTrFPtr)(const Particle*, const std::vector<double>&);
517
524 Manager::FunctionPtr tagTrackAverage(const std::vector<std::string>& variable);
525
532 Manager::FunctionPtr tagTrackMax(const std::vector<std::string>& variable);
533
540 Manager::FunctionPtr tagTrackMin(const std::vector<std::string>& variable);
541
548 Manager::FunctionPtr tagTrackSum(const std::vector<std::string>& variable);
549
556 Manager::FunctionPtr tagTrackAverageSquares(const std::vector<std::string>& variable);
557
564 Manager::FunctionPtr tagTrackWeightedAverage(const std::vector<std::string>& variable);
565
572 Manager::FunctionPtr tagTrackWeightedAverageSquares(const std::vector<std::string>& variable);
573
574 }
576}
577
std::function< VarVariant(const Particle *)> FunctionPtr
functions stored take a const Particle* and return VarVariant.
Definition: Manager.h:113
B2Vector3< double > B2Vector3D
typedef for common usage with double
Definition: B2Vector3.h:516
Abstract base class for different kinds of events.