Belle II Software development
TrackIsoScoreCalculatorTest Class Reference

Test the calculation of the track helix-based isolation score per particle. More...

Inheritance diagram for TrackIsoScoreCalculatorTest:

Public Attributes

Const::ChargedStable m_testHypo = Const::electron
 The charged particle hypothesis to test.
 
Const::EDetector m_detector = Const::ECL
 The detector to test.
 
int m_layer = 0
 The detector layer to test.
 
std::string m_dummyFile = "dummyFile.root"
 Dummy ROOT file name.
 

Protected Member Functions

void createDummyTTree ()
 Create a ROOT::TTree for the detector weights w/ a few entries.
 
void createDummyBrokenTTree ()
 Create a ROOT::TTree with a "broken" bin edges structure, i.e.
 
void SetUp () override
 Prepare resources for the tests.
 
void TearDown () override
 Release all resources.
 

Detailed Description

Test the calculation of the track helix-based isolation score per particle.

Definition at line 24 of file trackIsoScoreCalculator.cc.

Member Function Documentation

◆ createDummyBrokenTTree()

void createDummyBrokenTTree ( )
inlineprotected

Create a ROOT::TTree with a "broken" bin edges structure, i.e.

non-contiguous bin edges. This will throw a FATAL error, and indicate the CSV weights file has problems.

Definition at line 102 of file trackIsoScoreCalculator.cc.

103 {
104
105 unsigned int nEntries(6);
106
107 ROOT::RDataFrame rdf(nEntries);
108
109 std::vector<double> pdgIds(nEntries, static_cast<double>(m_testHypo.getPDGCode()));
110 std::vector<double> pMinEdges = {1.0, 1.0, 1.0, 1.5, 1.5, 1.5};
111 std::vector<double> pMaxEdges = {1.8, 1.8, 1.8, 3.0, 3.0, 3.0}; // note the non-contiguous edges wrt. pMinEdges
112 std::vector<double> thetaMinEdges = {0.22, 0.56, 2.23, 0.22, 0.56, 2.23};
113 std::vector<double> thetaMaxEdges = {0.56, 2.23, 2.71, 0.56, 2.23, 2.71};
114 std::vector<double> pBinIdxs = {1.0, 1.0, 1.0, 2.0, 2.0, 2.0};
115 std::vector<double> thetaBinIdxs = {1.0, 2.0, 3.0, 1.0, 2.0, 3.0};
116
117 // Tell snapshot to update file.
118 ROOT::RDF::RSnapshotOptions opt;
119 opt.fMode = "UPDATE";
120
121 unsigned int iEntry(0);
122 rdf.Define("pdgId", [&]() { auto x = pdgIds[iEntry]; return x; })
123 .Define("p_min", [&]() { auto x = pMinEdges[iEntry]; return x; })
124 .Define("p_max", [&]() { auto x = pMaxEdges[iEntry]; return x; })
125 .Define("theta_min", [&]() { auto x = thetaMinEdges[iEntry]; return x; })
126 .Define("theta_max", [&]() { auto x = thetaMaxEdges[iEntry]; return x; })
127 .Define("p_bin_idx", [&]() { auto x = pBinIdxs[iEntry]; return x; })
128 .Define("theta_bin_idx", [&]() { auto x = thetaBinIdxs[iEntry]; ++iEntry; return x; })
129 .Snapshot("tree_broken", m_dummyFile, "", opt);
130
131 };
int getPDGCode() const
PDG code.
Definition: Const.h:473
Const::ChargedStable m_testHypo
The charged particle hypothesis to test.
std::string m_dummyFile
Dummy ROOT file name.

◆ createDummyTTree()

void createDummyTTree ( )
inlineprotected

Create a ROOT::TTree for the detector weights w/ a few entries.

This replicates the structure of the CSV weights file that are serialised in the payload.

Definition at line 57 of file trackIsoScoreCalculator.cc.

58 {
59
60 unsigned int nEntries(6);
61
62 ROOT::RDataFrame rdf(nEntries);
63
64 std::vector<double> pdgIds(nEntries, static_cast<double>(m_testHypo.getPDGCode()));
65 std::vector<double> pMinEdges = {1.0, 1.0, 1.0, 1.5, 1.5, 1.5};
66 std::vector<double> pMaxEdges = {1.5, 1.5, 1.5, 3.0, 3.0, 3.0};
67 std::vector<double> thetaMinEdges = {0.22, 0.56, 2.23, 0.22, 0.56, 2.23};
68 std::vector<double> thetaMaxEdges = {0.56, 2.23, 2.71, 0.56, 2.23, 2.71};
69 std::vector<double> pBinIdxs = {1.0, 1.0, 1.0, 2.0, 2.0, 2.0};
70 std::vector<double> thetaBinIdxs = {1.0, 2.0, 3.0, 1.0, 2.0, 3.0};
71 std::vector<std::string> regLabels = {"FWD", "Barrel", "BWD", "FWD", "Barrel", "BWD"};
72 std::vector<double> weights_SVD = {0., 0., -0.003, 0.031, 0.017, 0.077};
73 std::vector<double> weights_CDC = {-0.061, -0.084, -0.162, -0.073, -0.073, -0.05, -0.121};
74 std::vector<double> weights_TOP = {0., 0., 0., 0., 0., 0.};
75 std::vector<double> weights_ARICH = {0., 0., 0., -0.004, 0., 0.};
76 std::vector<double> weights_ECL = {-0.062, -0.118, -0.136, -0.22, -0.255, -0.377};
77 std::vector<double> weights_KLM = {0., 0., 0.006, -0.003, 0.003, 0.002};
78
79 unsigned int iEntry(0);
80 rdf.Define("pdgId", [&]() { auto x = pdgIds[iEntry]; return x; })
81 .Define("p_min", [&]() { auto x = pMinEdges[iEntry]; return x; })
82 .Define("p_max", [&]() { auto x = pMaxEdges[iEntry]; return x; })
83 .Define("theta_min", [&]() { auto x = thetaMinEdges[iEntry]; return x; })
84 .Define("theta_max", [&]() { auto x = thetaMaxEdges[iEntry]; return x; })
85 .Define("p_bin_idx", [&]() { auto x = pBinIdxs[iEntry]; return x; })
86 .Define("theta_bin_idx", [&]() { auto x = thetaBinIdxs[iEntry]; return x; })
87 .Define("reg_label", [&]() { auto x = regLabels[iEntry]; return x; })
88 .Define("ablat_s_SVD", [&]() { auto x = weights_SVD[iEntry]; return x; })
89 .Define("ablat_s_CDC", [&]() { auto x = weights_CDC[iEntry]; return x; })
90 .Define("ablat_s_TOP", [&]() { auto x = weights_TOP[iEntry]; return x; })
91 .Define("ablat_s_ARICH", [&]() { auto x = weights_ARICH[iEntry]; return x; })
92 .Define("ablat_s_ECL", [&]() { auto x = weights_ECL[iEntry]; return x; })
93 .Define("ablat_s_KLM", [&]() { auto x = weights_KLM[iEntry]; ++iEntry; return x; }) // Only the last call in the chain must increment the entry counter!
94 .Snapshot("tree", m_dummyFile);
95
96 };

◆ SetUp()

void SetUp ( )
inlineoverrideprotected

Prepare resources for the tests.

Definition at line 136 of file trackIsoScoreCalculator.cc.

137 {
140 }
void createDummyBrokenTTree()
Create a ROOT::TTree with a "broken" bin edges structure, i.e.
void createDummyTTree()
Create a ROOT::TTree for the detector weights w/ a few entries.

◆ TearDown()

void TearDown ( )
inlineoverrideprotected

Release all resources.

Definition at line 145 of file trackIsoScoreCalculator.cc.

146 {
147 // Delete all dummy files.
148 if (remove(m_dummyFile.c_str())) {
149 B2ERROR("Couldn't remove file: " << m_dummyFile);
150 }
151 }

Member Data Documentation

◆ m_detector

Const::EDetector m_detector = Const::ECL

The detector to test.

Definition at line 36 of file trackIsoScoreCalculator.cc.

◆ m_dummyFile

std::string m_dummyFile = "dummyFile.root"

Dummy ROOT file name.

Files are created at the start of the test, and deleted at the end.

Definition at line 48 of file trackIsoScoreCalculator.cc.

◆ m_layer

int m_layer = 0

The detector layer to test.

Definition at line 41 of file trackIsoScoreCalculator.cc.

◆ m_testHypo

The charged particle hypothesis to test.

Definition at line 31 of file trackIsoScoreCalculator.cc.


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