Belle II Software
light-2406-ragdoll
Bundle.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
#include <analysis/modules/CurlTagger/Bundle.h>
9
10
#include <analysis/variables/VertexVariables.h>
11
12
#include <TMath.h>
13
14
using namespace
Belle2
;
15
using namespace
CurlTagger;
16
17
Bundle::Bundle
(
bool
isTruthBundle)
18
{
19
m_IsTruthBundle
= isTruthBundle;
20
m_Gamma
= 5;
//From BN1079 - TODO check this gives best selection (what defines best?)
21
22
if
(
m_IsTruthBundle
) {
23
m_CurlLabel
=
"isTruthCurl"
;
24
m_SizeLabel
=
"truthBundleSize"
;
25
}
else
{
26
m_CurlLabel
=
"isCurl"
;
27
m_SizeLabel
=
"bundleSize"
;
28
}
29
}
30
31
Bundle::~Bundle
() =
default
;
32
33
void
Bundle::addParticle
(
Particle
* particle)
34
{
35
m_Particles
.push_back(particle);
36
}
37
38
Particle
*
Bundle::getParticle
(
unsigned
int
i)
39
{
40
return
m_Particles
[i];
41
}
42
43
unsigned
int
Bundle::size
()
44
{
45
return
m_Particles
.size();
46
}
47
48
float
Bundle::scaledImpactParam
(
Particle
* particle)
49
{
50
return
TMath::Power(
m_Gamma
* Variable::particleDRho(particle), 2) + TMath::Power(Variable::particleDZ(particle), 2);
51
}
52
53
bool
Bundle::compareParticles
(
Particle
* iPart,
Particle
* jPart)
54
{
55
return
scaledImpactParam
(iPart) <
scaledImpactParam
(jPart);
56
}
57
58
void
Bundle::tagCurlInfo
()
59
{
60
//somewhat slow but should only be comparing 2-3 particles so shouldn't be a problem.
61
//std::sort (m_Particles.begin(), m_Particles.end(), compareParticles);
62
unsigned
int
bundleSize =
size
();
63
float
lowestVal = 1e10;
64
unsigned
int
posLowestVal = 0;
65
for
(
unsigned
int
i = 0; i < bundleSize; i++) {
66
if
(
scaledImpactParam
(
m_Particles
[i]) < lowestVal) {
67
lowestVal =
scaledImpactParam
(
m_Particles
[i]);
68
posLowestVal = i;
69
}
70
}
71
72
for
(
unsigned
int
i = 0; i < bundleSize; i++) {
73
Particle
* particle =
m_Particles
[i];
74
//std::cout << trackDist(particle) << std::endl;
75
if
(i == posLowestVal) {
continue
;}
76
particle ->
setExtraInfo
(
m_CurlLabel
, 1);
77
}
78
}
79
80
void
Bundle::tagSizeInfo
()
81
{
82
unsigned
int
bundleSize =
size
();
83
for
(
Particle
* particle :
m_Particles
) {
84
particle -> setExtraInfo(
m_SizeLabel
, bundleSize);
85
}
86
}
87
Belle2::CurlTagger::Bundle::Bundle
Bundle(bool isTruthBundle)
Constructor.
Definition:
Bundle.cc:17
Belle2::CurlTagger::Bundle::scaledImpactParam
float scaledImpactParam(Particle *particle)
scaled impact parameter for selecting best track
Definition:
Bundle.cc:48
Belle2::CurlTagger::Bundle::tagSizeInfo
void tagSizeInfo()
sets extraInfo with size of Bundle for particles in Bundle
Definition:
Bundle.cc:80
Belle2::CurlTagger::Bundle::~Bundle
~Bundle()
Destructor.
Belle2::CurlTagger::Bundle::m_CurlLabel
std::string m_CurlLabel
label used to tag particles with curl info
Definition:
Bundle.h:64
Belle2::CurlTagger::Bundle::size
unsigned int size()
gets Bundle size
Definition:
Bundle.cc:43
Belle2::CurlTagger::Bundle::m_IsTruthBundle
bool m_IsTruthBundle
flag for if the bundle is based on truth info, changes which labels are used
Definition:
Bundle.h:61
Belle2::CurlTagger::Bundle::compareParticles
bool compareParticles(Particle *iPart, Particle *jPart)
used to rank particles by scaledImpactParam - currently unused
Definition:
Bundle.cc:53
Belle2::CurlTagger::Bundle::getParticle
Particle * getParticle(unsigned int i)
gets Particle from Bundle
Definition:
Bundle.cc:38
Belle2::CurlTagger::Bundle::m_Particles
std::vector< Particle * > m_Particles
particles in bundle
Definition:
Bundle.h:70
Belle2::CurlTagger::Bundle::m_SizeLabel
std::string m_SizeLabel
label used to tag particles with Bundle size
Definition:
Bundle.h:67
Belle2::CurlTagger::Bundle::addParticle
void addParticle(Particle *particle)
adds Particle to Bundle
Definition:
Bundle.cc:33
Belle2::CurlTagger::Bundle::m_Gamma
double m_Gamma
dr scale factor
Definition:
Bundle.h:55
Belle2::CurlTagger::Bundle::tagCurlInfo
void tagCurlInfo()
sets curl extra info for particles in Bundle
Definition:
Bundle.cc:58
Belle2::Particle
Class to store reconstructed particles.
Definition:
Particle.h:75
Belle2::Particle::setExtraInfo
void setExtraInfo(const std::string &name, double value)
Sets the user-defined data of given name to the given value.
Definition:
Particle.cc:1317
Belle2
Abstract base class for different kinds of events.
Definition:
ClusterUtils.h:24
analysis
modules
CurlTagger
src
Bundle.cc
Generated on Tue Jul 9 2024 23:26:35 for Belle II Software by
1.9.6