Belle II Software
prerelease-10-00-00a
DedxVariables.cc
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
// needed to build variables here
10
#include <reconstruction/variables/DedxVariables.h>
11
#include <analysis/VariableManager/Manager.h>
12
13
// framework - DataStore
14
#include <framework/gearbox/Const.h>
15
#include <framework/logging/Logger.h>
16
#include <framework/utilities/Conversion.h>
17
18
// dataobjects
19
#include <analysis/dataobjects/Particle.h>
20
#include <mdst/dataobjects/Track.h>
21
#include <reconstruction/dataobjects/VXDDedxTrack.h>
22
23
#include <TString.h>
24
25
#include <cmath>
26
27
namespace
Belle2
{
32
36
VXDDedxTrack
const
*
getSVDDedxFromParticle
(
Particle
const
* particle)
37
{
38
const
Track
* track = particle->getTrack();
39
if
(!track) {
40
return
nullptr
;
41
}
42
43
const
VXDDedxTrack
* dedxTrack = track->getRelatedTo<
VXDDedxTrack
>();
44
if
(!dedxTrack) {
45
return
nullptr
;
46
}
47
return
dedxTrack;
48
}
49
50
51
namespace
Variable {
52
53
//Variables for SVD dedx
54
double
SVD_p(
const
Particle* part)
55
{
56
const
VXDDedxTrack* dedxTrack =
getSVDDedxFromParticle
(part);
57
if
(!dedxTrack) {
58
return
-999.0;
59
}
else
{
60
return
dedxTrack->getMomentum();
61
}
62
}
63
64
double
SVD_pTrue(
const
Particle* part)
65
{
66
const
VXDDedxTrack* dedxTrack =
getSVDDedxFromParticle
(part);
67
if
(!dedxTrack) {
68
return
-999.0;
69
}
else
{
70
return
dedxTrack->getTrueMomentum();
71
}
72
}
73
74
double
SVDdedx(
const
Particle* part)
75
{
76
const
VXDDedxTrack* dedxTrack =
getSVDDedxFromParticle
(part);
77
if
(!dedxTrack) {
78
return
-999.0;
79
}
else
{
80
return
dedxTrack->getDedx(Const::EDetector::SVD);
81
}
82
}
83
84
double
SVD_CosTheta(
const
Particle* part)
85
{
86
const
VXDDedxTrack* dedxTrack =
getSVDDedxFromParticle
(part);
87
if
(!dedxTrack) {
88
return
-999.0;
89
}
else
{
90
return
dedxTrack->getCosTheta();
91
}
92
}
93
double
SVD_nHits(
const
Particle* part)
94
{
95
const
VXDDedxTrack* dedxTrack =
getSVDDedxFromParticle
(part);
96
if
(!dedxTrack) {
97
return
-999.0;
98
}
else
{
99
return
dedxTrack->size();
100
}
101
}
102
103
VARIABLE_GROUP(
"SVD dEdx"
);
104
//SVD variables
105
REGISTER_VARIABLE(
"SVDdEdx"
, SVDdedx,
"SVD dE/dx truncated mean"
);
106
REGISTER_VARIABLE(
"pSVD"
, SVD_p,
"momentum valid in the SVD"
);
107
REGISTER_VARIABLE(
"SVD_pTrue"
, SVD_pTrue,
"true MC momentum valid in the SVD"
);
108
REGISTER_VARIABLE(
"SVD_CosTheta"
, SVD_CosTheta,
"cos(theta) of the track valid in the SVD"
);
109
REGISTER_VARIABLE(
"SVD_nHits"
, SVD_nHits,
"number of hits of the track valid in the SVD"
);
110
111
}
113
}
Belle2::Particle
Class to store reconstructed particles.
Definition
Particle.h:76
Belle2::Track
Class that bundles various TrackFitResults.
Definition
Track.h:25
Belle2::VXDDedxTrack
Debug output for VXDDedxPID module.
Definition
VXDDedxTrack.h:29
Belle2::getSVDDedxFromParticle
VXDDedxTrack const * getSVDDedxFromParticle(Particle const *particle)
SVD dEdx value from particle.
Definition
DedxVariables.cc:36
Belle2
Abstract base class for different kinds of events.
Definition
MillepedeAlgorithm.h:17
reconstruction
variables
DedxVariables.cc
Generated on Wed Jul 2 2025 03:32:11 for Belle II Software by
1.13.2