35def TrigdEdxTrackHypoToolFromDict( flags, chainDict ):
36
37 log = logging.getLogger('TrigdEdxTrackHypoTool')
38
39 """ Use menu decoded chain dictionary to configure the tool """
40 cparts = [i for i in chainDict['chainParts'] if i['signature']=='UnconventionalTracking']
41 thresholds = sum([ [cpart['threshold']]*int(cpart['multiplicity']) for cpart in cparts], [])
42
43 name = chainDict['chainName']
44 from AthenaConfiguration.ComponentFactory import CompFactory
45 tool = CompFactory.TrigdEdxTrackHypoTool(name)
46
47
48
49 strThr = ""
50
51 thresholds = [ float(THR) for THR in thresholds]
52
53 for THR in thresholds:
54 strThr += str(THR)+", "
55
56 log.debug("Threshold Values are: %s",strThr)
57
58 tool.cutTrackPtGeV = thresholds
59
60 trackEta=[]
61 trackdEdx=[]
62 tracka0beam=[]
63 trackNhighdEdxHits=[]
64 trackHighdEdxDef=[]
65
66 for cpart in cparts:
67 if cpart['IDinfo'] =="loose":
68 log.debug("UTT: Loose ID working point is set")
69 trackEta.append(2.5)
70 trackdEdx.append(1.5)
71 tracka0beam.append(5.0)
72 trackNhighdEdxHits.append(1)
73 trackHighdEdxDef.append("1p50")
74 elif cpart['IDinfo'] =="tight":
75 log.debug("UTT: Tight ID working point is set")
76 trackEta.append(2.5)
77 trackdEdx.append(1.8)
78 tracka0beam.append(1.5)
79 trackNhighdEdxHits.append(2)
80 trackHighdEdxDef.append("1p80")
81 else:
82 log.debug("UTT: Medium ID working point is set")
83 trackEta.append(2.5)
84 trackdEdx.append(1.7)
85 tracka0beam.append(2.5)
86 trackNhighdEdxHits.append(2)
87 trackHighdEdxDef.append("1p70")
88
89 tool.cutTrackEta = trackEta
90 tool.cutTrackdEdx = trackdEdx
91 tool.cutTracka0beam = tracka0beam
92 tool.cutTrackNhighdEdxHits = trackNhighdEdxHits
93 tool.cutTrackHighdEdxDef = trackHighdEdxDef
94
95 return tool