14from basf2
import create_path
19 """Test case for standard photon lists"""
21 def _check_list(self, listtype=None, std_function=stdPhotons.stdPhotons, expected_lists=["all"]):
22 """check that a given listtype function works"""
23 testpath = create_path()
24 if (std_function
is stdPhotons.stdPhotons)
and (listtype
is not None):
25 std_function(listtype, path=testpath)
27 std_function(path=testpath)
31 len(testpath.modules()), len(set(expected_lists)) + 1
if listtype ==
'all' else len(set(expected_lists)) + 3,
32 f
"List {listtype} doesn't work with function {std_function.__name__}")
33 self.assertTrue(all((module.type() ==
"ParticleLoader")
or (module.type() ==
"ParticleListManipulator")
34 or (module.type() ==
"ParticleSelector")
35 for module
in testpath.modules()))
39 for module
in testpath.modules():
40 for param
in module.available_params():
41 if param.name ==
'decayStrings':
42 name = param.values[0].split(
':')[1]
43 built_list.append(name)
44 if param.name ==
'outputListName':
45 name = str(param.values).split(
':')[1]
46 built_list.append(name)
49 for a, b
in zip(built_list, expected_lists):
50 self.assertEqual(a, b, f
"Loaded list \'{a}\' instead of \'{b}\' with function {std_function.__name__}")
53 """Check that the builder function raises a ValueError for a non-existing list name."""
54 self.assertRaises(ValueError, self.
_check_list,
"flibble")
58 Check that the default list type is one of the lists
in the cases that are checked
for in :func:`stdPhotons.stdPhotons`.
60 This test relies on ``ValueError`` being raised
for nonsense list types, which
is tested by
61 :func:`test_nonsense_list`. However, :func:`test_nonsense_list` doesn
't ensure that the default list works, so
62 for that this test
is needed.
64 test_path = create_path()
68 stdPhotons_signature = inspect.signature(stdPhotons.stdPhotons)
69 default_listtype = stdPhotons_signature.parameters[
"listtype"].default
70 self.fail(f
"stdPhotons default listtype {default_listtype} is not in set of allowed list names.")
73 """Check that the default list type (loose) works."""
75 self.
_check_list(expected_lists=[
"cdc",
"cdc",
"loose"])
78 """check that the builder function works with the all list"""
82 """check that the builder function works with the cdc list"""
86 """check that the builder function works with the loose list"""
87 self.
_check_list(
"loose", expected_lists=[
"cdc",
"cdc",
"loose"])
90 """check that the builder function works with the default (loose) list"""
91 self.
_check_list(expected_lists=[
"cdc",
"cdc",
"loose"])
94 """check that the builder function works with the tight list"""
95 self.
_check_list(
"tight", expected_lists=[
"cdc",
"cdc",
"loose",
"tight"])
98 """check that the builder function works with the pi0eff60_May2020 list"""
99 self.
_check_list(
"pi0eff60_May2020", expected_lists=[
"pi0eff60_May2020"])
102 """check that the builder function works with the pi0eff50_May2020 list"""
103 self.
_check_list(
"pi0eff50_May2020", expected_lists=[
"pi0eff50_May2020"])
106 """check that the builder function works with the pi0eff40_May2020 list"""
107 self.
_check_list(
"pi0eff40_May2020", expected_lists=[
"pi0eff40_May2020"])
110 """check that the builder function works with the pi0eff30_May2020 list"""
111 self.
_check_list(
"pi0eff30_May2020", expected_lists=[
"pi0eff30_May2020"])
114 """check that the builder function works with the pi0eff20_May2020 list"""
115 self.
_check_list(
"pi0eff20_May2020", expected_lists=[
"pi0eff20_May2020"])
118 """check that the builder function works with the pi0eff10_May2020 list"""
119 self.
_check_list(
"pi0eff10_May2020", expected_lists=[
"pi0eff10_May2020"])
122 """check that the builder function works with the skim list"""
123 self.
_check_list(
"skim", std_function=stdPhotons.loadStdSkimPhoton, expected_lists=[
"cdc",
"cdc",
"loose",
"skim"])
126 """check that the builder function works with the belle list"""
127 self.
_check_list(
"goodBelle", std_function=stdPhotons.loadStdGoodBellePhoton, expected_lists=[
"goodBelle"])
130if __name__ ==
'__main__':
def _check_list(self, listtype=None, std_function=stdPhotons.stdPhotons, expected_lists=["all"])
def test_default_list_works(self)
def test_default_list(self)
def test_loose_list(self)
def test_nonsense_list(self)
def test_pi0eff40_May2020_list(self)
def test_pi0eff20_May2020_list(self)
def test_pi0eff30_May2020_list(self)
def test_tight_list(self)
def test_pi0eff50_May2020_list(self)
def test_pi0eff60_May2020_list(self)
def test_pi0eff10_May2020_list(self)
def test_default_list_exists(self)
def stdPhotons(listtype='loose', path=None, beamBackgroundMVAWeight="", fakePhotonMVAWeight="", biasCorrectionTable="")