Belle II Software light-2406-ragdoll
Bundle Class Reference

class to contain particles identified to come from the same actual/mc particle More...

#include <Bundle.h>

Collaboration diagram for Bundle:

Public Member Functions

 Bundle (bool isTruthBundle)
 Constructor.
 
 ~Bundle ()
 Destructor.
 
void addParticle (Particle *particle)
 adds Particle to Bundle
 
ParticlegetParticle (unsigned int i)
 gets Particle from Bundle
 
unsigned int size ()
 gets Bundle size
 
void tagCurlInfo ()
 sets curl extra info for particles in Bundle
 
void tagSizeInfo ()
 sets extraInfo with size of Bundle for particles in Bundle
 

Private Member Functions

float scaledImpactParam (Particle *particle)
 scaled impact parameter for selecting best track
 
bool compareParticles (Particle *iPart, Particle *jPart)
 used to rank particles by scaledImpactParam - currently unused
 

Private Attributes

double m_Gamma
 dr scale factor
 
bool m_IsTruthBundle
 flag for if the bundle is based on truth info, changes which labels are used
 
std::string m_CurlLabel
 label used to tag particles with curl info
 
std::string m_SizeLabel
 label used to tag particles with Bundle size
 
std::vector< Particle * > m_Particles
 particles in bundle
 

Detailed Description

class to contain particles identified to come from the same actual/mc particle

Definition at line 25 of file Bundle.h.

Constructor & Destructor Documentation

◆ Bundle()

Bundle ( bool  isTruthBundle)
explicit

Constructor.

Definition at line 17 of file Bundle.cc.

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}
std::string m_CurlLabel
label used to tag particles with curl info
Definition: Bundle.h:64
bool m_IsTruthBundle
flag for if the bundle is based on truth info, changes which labels are used
Definition: Bundle.h:61
std::string m_SizeLabel
label used to tag particles with Bundle size
Definition: Bundle.h:67
double m_Gamma
dr scale factor
Definition: Bundle.h:55

Member Function Documentation

◆ addParticle()

void addParticle ( Particle particle)

adds Particle to Bundle

Definition at line 33 of file Bundle.cc.

34{
35 m_Particles.push_back(particle);
36}
std::vector< Particle * > m_Particles
particles in bundle
Definition: Bundle.h:70

◆ compareParticles()

bool compareParticles ( Particle iPart,
Particle jPart 
)
private

used to rank particles by scaledImpactParam - currently unused

Definition at line 53 of file Bundle.cc.

54{
55 return scaledImpactParam(iPart) < scaledImpactParam(jPart);
56}
float scaledImpactParam(Particle *particle)
scaled impact parameter for selecting best track
Definition: Bundle.cc:48

◆ getParticle()

Particle * getParticle ( unsigned int  i)

gets Particle from Bundle

Definition at line 38 of file Bundle.cc.

39{
40 return m_Particles[i];
41}

◆ scaledImpactParam()

float scaledImpactParam ( Particle particle)
private

scaled impact parameter for selecting best track

Definition at line 48 of file Bundle.cc.

49{
50 return TMath::Power(m_Gamma * Variable::particleDRho(particle), 2) + TMath::Power(Variable::particleDZ(particle), 2);
51}

◆ size()

unsigned int size ( )

gets Bundle size

Definition at line 43 of file Bundle.cc.

44{
45 return m_Particles.size();
46}

◆ tagCurlInfo()

void tagCurlInfo ( )

sets curl extra info for particles in Bundle

Definition at line 58 of file Bundle.cc.

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}
unsigned int size()
gets Bundle size
Definition: Bundle.cc:43
Class to store reconstructed particles.
Definition: Particle.h:75
void setExtraInfo(const std::string &name, double value)
Sets the user-defined data of given name to the given value.
Definition: Particle.cc:1317

◆ tagSizeInfo()

void tagSizeInfo ( )

sets extraInfo with size of Bundle for particles in Bundle

Definition at line 80 of file Bundle.cc.

81{
82 unsigned int bundleSize = size();
83 for (Particle* particle : m_Particles) {
84 particle -> setExtraInfo(m_SizeLabel, bundleSize);
85 }
86}

Member Data Documentation

◆ m_CurlLabel

std::string m_CurlLabel
private

label used to tag particles with curl info

Definition at line 64 of file Bundle.h.

◆ m_Gamma

double m_Gamma
private

dr scale factor

Definition at line 55 of file Bundle.h.

◆ m_IsTruthBundle

bool m_IsTruthBundle
private

flag for if the bundle is based on truth info, changes which labels are used

Definition at line 61 of file Bundle.h.

◆ m_Particles

std::vector<Particle*> m_Particles
private

particles in bundle

Definition at line 70 of file Bundle.h.

◆ m_SizeLabel

std::string m_SizeLabel
private

label used to tag particles with Bundle size

Definition at line 67 of file Bundle.h.


The documentation for this class was generated from the following files: