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
15#include <Math/Vector3D.h>
16
17namespace Belle2 {
22 class Particle;
23
24 namespace Variable {
25
26
32 double particleTagVx(const Particle* particle);
33
39 double particleTagVy(const Particle* particle);
40
46 double particleTagVz(const Particle* particle);
47
53 double getY4Sx(const Particle* part);
54
60 double getY4Sy(const Particle* part);
61
67 double getY4Sz(const Particle* part);
68
74 double getSigBdecayTime(const Particle* part);
75
81 double getTagBdecayTime(const Particle* part);
82
88 double getDeltaT3D(const Particle* part);
89
95 double particleTruthTagVx(const Particle* particle);
96
102 double particleTruthTagVy(const Particle* particle);
103
109 double particleTruthTagVz(const Particle* particle);
110
116 double particleTagVpVal(const Particle* particle);
117
123 double particleTagVNTracks(const Particle* particle);
124
130 double particleTagVNTracks(const Particle* particle);
131
137 double particleTagVNDF(const Particle* particle);
138
144 double particleTagVChi2(const Particle* particle);
145
151 double particleTagVChi2IP(const Particle* particle);
152
153
159 double particleTagVxErr(const Particle* particle);
160
166 double particleTagVyErr(const Particle* particle);
167
173 double particleTagVzErr(const Particle* particle);
174
180 double particleDeltaT(const Particle* particle);
181
187 double particleDeltaTBelle(const Particle* particle);
188
189
195 double particleDeltaTErr(const Particle* particle);
196
202 double particleDeltaTRes(const Particle* particle);
203
209 double particleMCDeltaTau(const Particle* particle);
210
216 double particleMCDeltaT(const Particle* particle);
217
223 double particleMCDeltaL(const Particle* particle);
224
225
231 double particleDeltaZ(const Particle* particle);
232
238 double particleDeltaZErr(const Particle* particle);
239
245 double particleDeltaB(const Particle* particle);
246
252 double particleDeltaBErr(const Particle* particle);
253
258 double vertexBoostDirection(const Particle* particle);
259
264 double vertexOrthogonalBoostDirection(const Particle* particle);
265
270 double vertexTruthBoostDirection(const Particle* particle);
271
276 double vertexTruthOrthogonalBoostDirection(const Particle* particle);
277
282 double vertexErrBoostDirection(const Particle* particle);
283
288 double vertexErrOrthBoostDirection(const Particle* particle);
289
290
291
296 double tagVBoostDirection(const Particle* particle);
297
302 double tagVOrthogonalBoostDirection(const Particle* particle);
303
308 double tagVTruthBoostDirection(const Particle* particle);
309
314 double tagVTruthOrthogonalBoostDirection(const Particle* particle);
315
320 double tagVErrBoostDirection(const Particle* particle);
321
326 double tagVErrOrthogonalBoostDirection(const Particle* particle);
327
331 double particleCosThetaBoostDirection(const Particle* part);
332
337 double particleInternalTagVMCFlavor(const Particle* particle);
338
343 double tagTrackMomentum(const Particle* part, const std::vector<double>& trackIndex);
344
349 double tagTrackMomentumX(const Particle* part, const std::vector<double>& trackIndex);
350
355 double tagTrackMomentumY(const Particle* part, const std::vector<double>& trackIndex);
356
361 double tagTrackMomentumZ(const Particle* part, const std::vector<double>& trackIndex);
362
367 double tagTrackD0(const Particle* part, const std::vector<double>& trackIndex);
368
373 double tagTrackZ0(const Particle* part, const std::vector<double>& trackIndex);
374
379 double particleTagVNFitTracks(const Particle* particle);
380
385 double tagTrackRaveWeight(const Particle* part, const std::vector<double>& trackIndex);
386
391 double tagTrackDistanceToConstraint(const Particle* part, const std::vector<double>& trackIndex);
392
393
399 double tagTrackDistanceToConstraintErr(const Particle* part, const std::vector<double>& trackIndex);
400
406 double tagTrackDistanceToConstraintSignificance(const Particle* part, const std::vector<double>& trackIndex);
407
408
413 double tagVDistanceToConstraint(const Particle* part);
414
420 double tagVDistanceToConstraintErr(const Particle* part);
421
426 double tagVDistanceToConstraintSignificance(const Particle* part);
427
428
433 double tagTrackDistanceToTagV(const Particle* part, const std::vector<double>& trackIndex);
434
440 double tagTrackDistanceToTagVErr(const Particle* part, const std::vector<double>& trackIndex);
441
447 double tagTrackDistanceToTagVSignificance(const Particle* part, const std::vector<double>& trackIndex);
448
454 double tagTrackTrueDistanceToTagV(const Particle* part, const std::vector<double>& trackIndex);
455
461 ROOT::Math::XYZVector tagTrackTrueVecToTagV(const Particle* part, const std::vector<double>& trackIndex);
462
468 double tagTrackTrueVecToTagVX(const Particle* part, const std::vector<double>& trackIndex);
469
475 double tagTrackTrueVecToTagVY(const Particle* part, const std::vector<double>& trackIndex);
476
482 double tagTrackTrueVecToTagVZ(const Particle* part, const std::vector<double>& trackIndex);
483
488 ROOT::Math::XYZVector tagTrackTrueMomentum(const Particle* part, const std::vector<double>& trackIndex);
489
494 double tagTrackTrueMomentumX(const Particle* part, const std::vector<double>& trackIndex);
495
500 double tagTrackTrueMomentumY(const Particle* part, const std::vector<double>& trackIndex);
501
506 double tagTrackTrueMomentumZ(const Particle* part, const std::vector<double>& trackIndex);
507
512 ROOT::Math::XYZVector tagTrackTrueOrigin(const Particle* part, const std::vector<double>& trackIndex);
513
518 double tagTrackTrueOriginX(const Particle* part, const std::vector<double>& trackIndex);
519
524 double tagTrackTrueOriginY(const Particle* part, const std::vector<double>& trackIndex);
525
530 double tagTrackTrueOriginZ(const Particle* part, const std::vector<double>& trackIndex);
531
539 int fitTruthStatus(const Particle* part);
540
548 int rollbackStatus(const Particle* part);
549
550 //**********************************
551 //Meta variables
552 //**********************************
553
558 typedef double (*TagTrFPtr)(const Particle*, const std::vector<double>&);
559
566 Manager::FunctionPtr tagTrackAverage(const std::vector<std::string>& variable);
567
574 Manager::FunctionPtr tagTrackMax(const std::vector<std::string>& variable);
575
582 Manager::FunctionPtr tagTrackMin(const std::vector<std::string>& variable);
583
590 Manager::FunctionPtr tagTrackSum(const std::vector<std::string>& variable);
591
598 Manager::FunctionPtr tagTrackAverageSquares(const std::vector<std::string>& variable);
599
606 Manager::FunctionPtr tagTrackWeightedAverage(const std::vector<std::string>& variable);
607
614 Manager::FunctionPtr tagTrackWeightedAverageSquares(const std::vector<std::string>& variable);
615
616 }
618}
619
Class to store reconstructed particles.
Definition Particle.h:76
std::function< VarVariant(const Particle *)> FunctionPtr
functions stored take a const Particle* and return VarVariant.
Definition Manager.h:112
Abstract base class for different kinds of events.