Belle II Software development
stdKlongs.py
1#!/usr/bin/env python3
2
3
10
11from basf2 import B2FATAL, B2WARNING
12from modularAnalysis import fillParticleList
13
14
15def stdKlongs(listtype='allklm', path=None):
16 """
17 Warning:
18 This function is a placeholder for Klong selections. Currently
19 everything but the 'allklm' list is disabled pending study.
20
21 Prepares the 'K_L0:allklm' list with no cuts (all KLM clusters are loaded).
22
23 Parameters:
24 listtype (str): name of standard list options (currently only
25 'all' is supported/recommended)
26 path (basf2.Path): modules are added to this path
27 """
28
29 # all KLM clusters
30 if listtype == 'allklm':
31 B2WARNING('The Klong particles in the list "allklm" are exclusively built from KLMClusters!')
32 fillParticleList('K_L0:allklm', '[isFromKLM > 0] and [klmClusterKlId >= 0] and [klmClusterKlId <= 1]', True, path)
33 elif listtype == 'allecl':
34 B2WARNING('The Klong particles in the list "allecl" are exclusively built from ECLClusters!')
35 fillParticleList('K_L0:allecl', 'isFromECL > 0', True, path)
36 else:
37 B2FATAL("""
38
39 Only the particle lists 'allklm' (Klongs built from KLM clusters) and 'allecl' (Klongs built from neutral ECLCluster) are
40 currently supported. Please use:
41
42 stdKlongs('allklm', path=mypath)
43 """)
44# # loose KLs, removes buggy KLM clusters
45# elif listtype == 'veryLoose':
46# stdKlongs('all', path)
47# selection = 'E > 0.5 and E < 10. and klmClusterTiming > -10 and klmClusterTiming < 100.'
48# B2WARNING("The standard Klong lists are not studied or optimised yet. ")
49# B2WARNING("Beware that anything more complex than the 'all' list may not work as desired (or at all).")
50# B2WARNING("You will have the following cuts applied: %s" % selection)
51# cutAndCopyList(
52# 'K_L0:veryLoose',
53# 'K_L0:all',
54# selection,
55# True,
56# path)
57#
58# # additional cuts on KL_ID
59# elif listtype == 'loose':
60# stdKlongs('all', path)
61# selection = 'E > 0.5 and E < 10. and klmClusterTiming > -10 and klmClusterTiming < 100. and klmClusterKlId > 0.04'
62# B2WARNING("The standard Klong lists are not studied or optimised yet. ")
63# B2WARNING("Beware that anything more complex than the 'all' list may not work as desired (or at all).")
64# B2WARNING("You will have the following cuts applied: %s" % selection)
65# cutAndCopyList(
66# 'K_L0:loose',
67# 'K_L0:all',
68# selection,
69# True,
70# path)
71#
72# # additional cuts on KL_ID
73# elif listtype == 'tight':
74# stdKlongs('loose', path)
75# tight_selection = 'klmClusterKlId > 0.2'
76# B2WARNING("With the following additional tight selection: %s" % tight_selection)
77# cutAndCopyList(
78# 'K_L0:tight',
79# 'K_L0:loose',
80# tight_selection,
81# True,
82# path)