3 from AthenaConfiguration.ComponentFactory
import CompFactory
4 from TrigBphysHypo.TrigBmumuxComboHypoMonitoringConfig
import TrigBmumuxComboHypoMonitoring, TrigBmumuxComboHypoToolMonitoring
5 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
7 from AthenaCommon.Logging
import logging
8 log = logging.getLogger(
'TrigBmumuxComboHypoConfig')
11 log.debug(
'BmumuxComboHypoCfg.name = %s ', name)
14 from TrigBphysHypo.TrigBPhyCommonConfig
import TrigBPHY_TrkVKalVrtFitterCfg
15 from InDetConfig.InDetConversionFinderToolsConfig
import BPHY_VertexPointEstimatorCfg
16 from TrackToVertex.TrackToVertexConfig
import TrackToVertexCfg
18 hypo = CompFactory.TrigBmumuxComboHypo(
19 name =
'BmumuxComboHypo',
22 TrackToVertexTool = acc.popToolsAndMerge(
TrackToVertexCfg(flags,
'TrackToVertexTool_'+suffix)),
23 CheckMultiplicityMap =
False,
24 TrigBphysCollectionKey =
'HLT_Bmumux',
25 MuonCollectionKey =
'HLT_Muons_Bmumux',
26 TrackCollectionKey =
'HLT_IDTrack_Bmumux_IDTrig',
29 FitAttemptsWarningThreshold = 200,
30 FitAttemptsBreakThreshold = 1000,
31 FastFit_2trk_chi2 = 50.,
32 FastFit_2mu1trk_chi2 = 60.,
34 Dimuon_rejectSameChargeTracks =
True,
35 Dimuon_massRange = (100., 5500.),
38 BplusToMuMuKaon =
True,
39 BplusToMuMuKaon_minKaonPt = 100.,
40 BplusToMuMuKaon_massRange = (4500., 5900.),
41 BplusToMuMuKaon_chi2 = 50.,
42 BplusToMuMuKaon_useFastFit =
False,
45 BcToMuMuPion_minPionPt = 2000.,
46 BcToMuMuPion_dimuonMassRange = (2500., 4300.),
47 BcToMuMuPion_massRange = (5500., 7300.),
48 BcToMuMuPion_chi2 = 50.,
49 BcToMuMuPion_useFastFit =
False,
51 BsToMuMuPhi1020 =
True,
52 BsToMuMuPhi1020_rejectSameChargeTracks =
True,
53 BsToMuMuPhi1020_minKaonPt = 100.,
54 BsToMuMuPhi1020_massRange = (4800., 5800.),
55 BsToMuMuPhi1020_phiMassRange = (940., 1100.),
56 BsToMuMuPhi1020_chi2 = 60.,
57 BsToMuMuPhi1020_useFastFit =
False,
59 BdToMuMuKstar0 =
True,
60 BdToMuMuKstar0_rejectSameChargeTracks =
True,
61 BdToMuMuKstar0_minKaonPt = 100.,
62 BdToMuMuKstar0_minPionPt = 100.,
63 BdToMuMuKstar0_massRange = (4600., 5900.),
64 BdToMuMuKstar0_KstarMassRange = (700., 1100.),
65 BdToMuMuKstar0_chi2 = 60.,
66 BdToMuMuKstar0_useFastFit =
True,
68 LambdaBToMuMuProtonKaon =
True,
69 LambdaBToMuMuProtonKaon_rejectSameChargeTracks =
False,
70 LambdaBToMuMuProtonKaon_minProtonPt = 1000.,
71 LambdaBToMuMuProtonKaon_minKaonPt = 1000.,
72 LambdaBToMuMuProtonKaon_minKstarMass = 1300.,
73 LambdaBToMuMuProtonKaon_dimuonMassRange = (2500., 4300.),
74 LambdaBToMuMuProtonKaon_massRange = (4800., 6400.),
75 LambdaBToMuMuProtonKaon_chi2 = 60.,
76 LambdaBToMuMuProtonKaon_useFastFit =
True,
79 BcToDsMuMu_minKaonPt = 1000.,
80 BcToDsMuMu_minPionPt = 1000.,
81 BcToDsMuMu_massRange = (5500., 7300.),
82 BcToDsMuMu_dimuonMassRange = (2500., 4300.),
83 BcToDsMuMu_phiMassRange = (940., 1100.),
84 BcToDsMuMu_DsMassRange = (1750., 2100.),
85 BcToDsMuMu_chi2 = 60.,
86 BcToDsMuMu_useFastFit =
True,
89 BcToDplusMuMu_minKaonPt = 1000.,
90 BcToDplusMuMu_minPionPt = 1000.,
91 BcToDplusMuMu_massRange = (5500., 7300.),
92 BcToDplusMuMu_dimuonMassRange = (2500., 4300.),
93 BcToDplusMuMu_DplusMassRange = (1750., 2000.),
94 BcToDplusMuMu_chi2 = 60.,
95 BcToDplusMuMu_useFastFit =
True,
98 BcToDstarMuMu_makeDstar =
True,
99 BcToDstarMuMu_minD0KaonPt = 1000.,
100 BcToDstarMuMu_minD0PionPt = 1000.,
101 BcToDstarMuMu_minDstarPionPt = 500.,
102 BcToDstarMuMu_maxDstarPionZ0 = 5.,
103 BcToDstarMuMu_massRange = (5500., 7300.),
104 BcToDstarMuMu_dimuonMassRange = (2500., 4300.),
105 BcToDstarMuMu_D0MassRange = (1750., 2000.),
106 BcToDstarMuMu_DstarMassRange = (-1., 2110.),
107 BcToDstarMuMu_chi2 = 60.,
110 acc.addEventAlgo(hypo)
116 topoAlgs = chainDict[
'chainName']
117 log.debug(
"Set for algorithm %s", topoAlgs)
118 tool = CompFactory.TrigBmumuxComboHypoTool(topoAlgs)
119 decay = chainDict[
'topo'][-1]
127 'BcmumuDploose' : 13,
128 'BcmumuDsloose' : 11,
129 'BcmumuD0Xloose' : 19,
130 'BcmumuDstarloose' : 14,
137 tool.Decay = trigDecayDict[decay]
138 tool.isBmux =
True if 'bBmux' in chainDict[
'topo']
else False
139 monGroups = [
'bphysMon:online']
140 if any(group
in monGroups
for group
in chainDict[
'monGroups']):