Belle II Software  release-05-02-19
TimeDependentVariables.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Luigi Li Gioi, Fernando Abudinen, Thibaud Humair *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <vector>
14 #include <string>
15 #include <analysis/VariableManager/Manager.h>
16 #include "TVector3.h"
17 
18 namespace Belle2 {
23  class Particle;
24 
25  namespace Variable {
26 
27 
33  double particleTagVx(const Particle* particle);
34 
40  double particleTagVy(const Particle* particle);
41 
47  double particleTagVz(const Particle* particle);
48 
49 
55  double particleTruthTagVx(const Particle* particle);
56 
62  double particleTruthTagVy(const Particle* particle);
63 
69  double particleTruthTagVz(const Particle* particle);
70 
76  double particleTagVpVal(const Particle* particle);
77 
83  double particleTagVNTracks(const Particle* particle);
84 
90  double particleTagVNTracks(const Particle* particle);
91 
97  double particleTagVNDF(const Particle* particle);
98 
104  double particleTagVChi2(const Particle* particle);
105 
111  double particleTagVChi2IP(const Particle* particle);
112 
113 
119  double particleTagVxErr(const Particle* particle);
120 
126  double particleTagVyErr(const Particle* particle);
127 
133  double particleTagVzErr(const Particle* particle);
134 
140  double particleDeltaT(const Particle* particle);
141 
147  double particleDeltaTBelle(const Particle* particle);
148 
149 
155  double particleDeltaTErr(const Particle* particle);
156 
162  double particleDeltaTRes(const Particle* particle);
163 
169  double particleMCDeltaTau(const Particle* particle);
170 
176  double particleMCDeltaT(const Particle* particle);
177 
183  double particleMCDeltaL(const Particle* particle);
184 
185 
191  double particleDeltaZ(const Particle* particle);
192 
198  double particleDeltaZErr(const Particle* particle);
199 
205  double particleDeltaB(const Particle* particle);
206 
212  double particleDeltaBErr(const Particle* particle);
213 
218  double vertexBoostDirection(const Particle* particle);
219 
224  double vertexOrthogonalBoostDirection(const Particle* particle);
225 
230  double vertexTruthBoostDirection(const Particle* particle);
231 
236  double vertexTruthOrthogonalBoostDirection(const Particle* particle);
237 
242  double vertexErrBoostDirection(const Particle* particle);
243 
248  double vertexErrOrthBoostDirection(const Particle* particle);
249 
250 
251 
256  double tagVBoostDirection(const Particle* particle);
257 
262  double tagVOrthogonalBoostDirection(const Particle* particle);
263 
268  double tagVTruthBoostDirection(const Particle* particle);
269 
274  double tagVTruthOrthogonalBoostDirection(const Particle* particle);
275 
280  double tagVErrBoostDirection(const Particle* particle);
281 
286  double tagVErrOrthogonalBoostDirection(const Particle* particle);
287 
292  double particleInternalTagVMCFlavor(const Particle* particle);
293 
298  double tagTrackMomentum(const Particle* part, const std::vector<double>& trackIndex);
299 
304  double tagTrackMomentumX(const Particle* part, const std::vector<double>& trackIndex);
305 
310  double tagTrackMomentumY(const Particle* part, const std::vector<double>& trackIndex);
311 
316  double tagTrackMomentumZ(const Particle* part, const std::vector<double>& trackIndex);
317 
322  double tagTrackD0(const Particle* part, const std::vector<double>& trackIndex);
323 
328  double tagTrackZ0(const Particle* part, const std::vector<double>& trackIndex);
329 
334  double particleTagVNFitTracks(const Particle* particle);
335 
340  double tagTrackRaveWeight(const Particle* part, const std::vector<double>& trackIndex);
341 
346  double tagTrackDistanceToConstraint(const Particle* part, const std::vector<double>& trackIndex);
347 
348 
354  double tagTrackDistanceToConstraintErr(const Particle* part, const std::vector<double>& trackIndex);
355 
361  double tagTrackDistanceToConstraintSignificance(const Particle* part, const std::vector<double>& trackIndex);
362 
363 
368  double tagVDistanceToConstraint(const Particle* part);
369 
375  double tagVDistanceToConstraintErr(const Particle* part);
376 
381  double tagVDistanceToConstraintSignificance(const Particle* part);
382 
383 
388  double tagTrackDistanceToTagV(const Particle* part, const std::vector<double>& trackIndex);
389 
395  double tagTrackDistanceToTagVErr(const Particle* part, const std::vector<double>& trackIndex);
396 
402  double tagTrackDistanceToTagVSignificance(const Particle* part, const std::vector<double>& trackIndex);
403 
409  double tagTrackTrueDistanceToTagV(const Particle* part, const std::vector<double>& trackIndex);
410 
416  TVector3 tagTrackTrueVecToTagV(const Particle* part, const std::vector<double>& trackIndex);
417 
423  double tagTrackTrueVecToTagVX(const Particle* part, const std::vector<double>& trackIndex);
424 
430  double tagTrackTrueVecToTagVY(const Particle* part, const std::vector<double>& trackIndex);
431 
437  double tagTrackTrueVecToTagVZ(const Particle* part, const std::vector<double>& trackIndex);
438 
443  TVector3 tagTrackTrueMomentum(const Particle* part, const std::vector<double>& trackIndex);
444 
449  double tagTrackTrueMomentumX(const Particle* part, const std::vector<double>& trackIndex);
450 
455  double tagTrackTrueMomentumY(const Particle* part, const std::vector<double>& trackIndex);
456 
461  double tagTrackTrueMomentumZ(const Particle* part, const std::vector<double>& trackIndex);
462 
467  TVector3 tagTrackTrueOrigin(const Particle* part, const std::vector<double>& trackIndex);
468 
473  double tagTrackTrueOriginX(const Particle* part, const std::vector<double>& trackIndex);
474 
479  double tagTrackTrueOriginY(const Particle* part, const std::vector<double>& trackIndex);
480 
485  double tagTrackTrueOriginZ(const Particle* part, const std::vector<double>& trackIndex);
486 
494  int fitTruthStatus(const Particle* part);
495 
503  int rollbackStatus(const Particle* part);
504 
505  //**********************************
506  //Meta variables
507  //**********************************
508 
513  typedef double (*TagTrFPtr)(const Particle*, const std::vector<double>&);
514 
521  Manager::FunctionPtr tagTrackAverage(const std::vector<std::string>& variable);
522 
529  Manager::FunctionPtr tagTrackMax(const std::vector<std::string>& variable);
530 
537  Manager::FunctionPtr tagTrackMin(const std::vector<std::string>& variable);
538 
545  Manager::FunctionPtr tagTrackSum(const std::vector<std::string>& variable);
546 
553  Manager::FunctionPtr tagTrackAverageSquares(const std::vector<std::string>& variable);
554 
561  Manager::FunctionPtr tagTrackWeightedAverage(const std::vector<std::string>& variable);
562 
569  Manager::FunctionPtr tagTrackWeightedAverageSquares(const std::vector<std::string>& variable);
570 
571  }
573 }
574 
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Variable::Manager::FunctionPtr
std::function< double(const Particle *)> FunctionPtr
NOTE: the python interface is documented manually in analysis/doc/Variables.rst (because we use ROOT ...
Definition: Manager.h:118