ATLAS Offline Software
TrigdEdxTrackHypoConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaCommon.Logging import logging
4 from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool
5 
6 from AthenaConfiguration.ComponentFactory import CompFactory
7 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8 from AthenaConfiguration.AthConfigFlags import AthConfigFlags
9 
10 def TrigdEdxTrackHypoAlgCfg(flags : AthConfigFlags, name : str) -> ComponentAccumulator:
11 
12  acc = ComponentAccumulator()
13 
14  # Setup the hypothesis algorithm
15  thedEdxTrackHypo = CompFactory.TrigdEdxTrackHypoAlg(name)
16 
17  from TrigEDMConfig.TriggerEDM import recordable
18  thedEdxTrackHypo.HPtdEdxTrk = recordable("HLT_HPtdEdxTrk")
19 
20  # monitoring
21  monTool = GenericMonitoringTool(flags, "IM_MonTool"+name)
22  monTool.defineHistogram('trackPtGeV', type='TH1F', path='EXPERT', title="Hypo p_{T}^{track};p_{T}^{track} [GeV];Nevents", xbins=50, xmin=0, xmax=100)
23  monTool.defineHistogram('trackEta', type='TH1F', path='EXPERT', title="Hypo p_{T}^{track} (after p_{T} cut);eta;Nevents", xbins=60, xmin=-3.0, xmax=3.0)
24  monTool.defineHistogram('tracka0beam',type='TH1F', path='EXPERT', title="Hypo a0beam (after eta cut);a0beam [mm];Nevents", xbins=50, xmin=-5.0, xmax=5.0)
25  monTool.defineHistogram('trackdEdx', type='TH1F', path='EXPERT', title="Hypo dE/dx (after a0beam cut);dE/dx;Nevents", xbins=50, xmin=0, xmax=10)
26  monTool.defineHistogram('trackNhighdEdxHits', type='TH1F', path='EXPERT', title="Hypo Nr high dE/dx hits (after dEdx cut);N high dE/dx hits;Nevents", xbins=10, xmin=0, xmax=10)
27 
28  monTool.HistPath = 'dEdxTrackHypoAlg'
29  thedEdxTrackHypo.MonTool = monTool
30 
31  acc.addEventAlgo(thedEdxTrackHypo)
32  return acc
33 
34 
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  # set thresholds
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
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
python.TrigdEdxTrackHypoConfig.TrigdEdxTrackHypoAlgCfg
ComponentAccumulator TrigdEdxTrackHypoAlgCfg(AthConfigFlags flags, str name)
Definition: TrigdEdxTrackHypoConfig.py:10
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
GenericMonitoringTool
Definition: GenericMonitoringTool.py:1
python.TrigdEdxTrackHypoConfig.TrigdEdxTrackHypoToolFromDict
def TrigdEdxTrackHypoToolFromDict(chainDict)
Definition: TrigdEdxTrackHypoConfig.py:35
python.TriggerEDM.recordable
def recordable(arg, runVersion=3)
Definition: TriggerEDM.py:30
str
Definition: BTagTrackIpAccessor.cxx:11
readCCLHist.float
float
Definition: readCCLHist.py:83