Belle II Software  release-06-02-00
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 "TVector3.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 
290  double particleInternalTagVMCFlavor(const Particle* particle);
291 
296  double tagTrackMomentum(const Particle* part, const std::vector<double>& trackIndex);
297 
302  double tagTrackMomentumX(const Particle* part, const std::vector<double>& trackIndex);
303 
308  double tagTrackMomentumY(const Particle* part, const std::vector<double>& trackIndex);
309 
314  double tagTrackMomentumZ(const Particle* part, const std::vector<double>& trackIndex);
315 
320  double tagTrackD0(const Particle* part, const std::vector<double>& trackIndex);
321 
326  double tagTrackZ0(const Particle* part, const std::vector<double>& trackIndex);
327 
332  double particleTagVNFitTracks(const Particle* particle);
333 
338  double tagTrackRaveWeight(const Particle* part, const std::vector<double>& trackIndex);
339 
344  double tagTrackDistanceToConstraint(const Particle* part, const std::vector<double>& trackIndex);
345 
346 
352  double tagTrackDistanceToConstraintErr(const Particle* part, const std::vector<double>& trackIndex);
353 
359  double tagTrackDistanceToConstraintSignificance(const Particle* part, const std::vector<double>& trackIndex);
360 
361 
366  double tagVDistanceToConstraint(const Particle* part);
367 
373  double tagVDistanceToConstraintErr(const Particle* part);
374 
379  double tagVDistanceToConstraintSignificance(const Particle* part);
380 
381 
386  double tagTrackDistanceToTagV(const Particle* part, const std::vector<double>& trackIndex);
387 
393  double tagTrackDistanceToTagVErr(const Particle* part, const std::vector<double>& trackIndex);
394 
400  double tagTrackDistanceToTagVSignificance(const Particle* part, const std::vector<double>& trackIndex);
401 
407  double tagTrackTrueDistanceToTagV(const Particle* part, const std::vector<double>& trackIndex);
408 
414  TVector3 tagTrackTrueVecToTagV(const Particle* part, const std::vector<double>& trackIndex);
415 
421  double tagTrackTrueVecToTagVX(const Particle* part, const std::vector<double>& trackIndex);
422 
428  double tagTrackTrueVecToTagVY(const Particle* part, const std::vector<double>& trackIndex);
429 
435  double tagTrackTrueVecToTagVZ(const Particle* part, const std::vector<double>& trackIndex);
436 
441  TVector3 tagTrackTrueMomentum(const Particle* part, const std::vector<double>& trackIndex);
442 
447  double tagTrackTrueMomentumX(const Particle* part, const std::vector<double>& trackIndex);
448 
453  double tagTrackTrueMomentumY(const Particle* part, const std::vector<double>& trackIndex);
454 
459  double tagTrackTrueMomentumZ(const Particle* part, const std::vector<double>& trackIndex);
460 
465  TVector3 tagTrackTrueOrigin(const Particle* part, const std::vector<double>& trackIndex);
466 
471  double tagTrackTrueOriginX(const Particle* part, const std::vector<double>& trackIndex);
472 
477  double tagTrackTrueOriginY(const Particle* part, const std::vector<double>& trackIndex);
478 
483  double tagTrackTrueOriginZ(const Particle* part, const std::vector<double>& trackIndex);
484 
492  int fitTruthStatus(const Particle* part);
493 
501  int rollbackStatus(const Particle* part);
502 
503  //**********************************
504  //Meta variables
505  //**********************************
506 
511  typedef double (*TagTrFPtr)(const Particle*, const std::vector<double>&);
512 
519  Manager::FunctionPtr tagTrackAverage(const std::vector<std::string>& variable);
520 
527  Manager::FunctionPtr tagTrackMax(const std::vector<std::string>& variable);
528 
535  Manager::FunctionPtr tagTrackMin(const std::vector<std::string>& variable);
536 
543  Manager::FunctionPtr tagTrackSum(const std::vector<std::string>& variable);
544 
551  Manager::FunctionPtr tagTrackAverageSquares(const std::vector<std::string>& variable);
552 
559  Manager::FunctionPtr tagTrackWeightedAverage(const std::vector<std::string>& variable);
560 
567  Manager::FunctionPtr tagTrackWeightedAverageSquares(const std::vector<std::string>& variable);
568 
569  }
571 }
572 
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:108
Abstract base class for different kinds of events.