Belle II Software  release-08-01-10
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 
16 namespace 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.