ATLAS Offline Software
TrigHitDVHypoConfig.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 from AthenaConfiguration.ComponentFactory import CompFactory
6 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7 from AthenaConfiguration.AthConfigFlags import AthConfigFlags
8 
9 # Default name of HitDV output
10 hitDVName = "HLT_HitDV"
11 
12 def TrigHitDVHypoAlgCfg(flags : AthConfigFlags, name : str) -> ComponentAccumulator:
13  acc = ComponentAccumulator()
14 
15  # Setup the hypothesis algorithm
16  theHitDVHypo = CompFactory.TrigHitDVHypoAlg(name)
17 
18  from TrigEDMConfig.TriggerEDM import recordable
19  theHitDVHypo.HitDV = recordable(hitDVName)
20 
21  theHitDVHypo.isMC = flags.Input.isMC
22 
23  # monitoring
24  monTool = GenericMonitoringTool(flags, "IM_MonTool"+name)
25  monTool.defineHistogram('jet_pt', type='TH1F', path='EXPERT', title="p_{T}^{jet} [GeV];p_{T}^{jet} [GeV];Nevents", xbins=50, xmin=0, xmax=200)
26  monTool.defineHistogram('jet_eta', type='TH1F', path='EXPERT', title="#eta^{jet};#eta^{jet};Nevents", xbins=50, xmin=-5.0, xmax=5.0)
27  #
28  monTool.defineHistogram('n_dvtrks', type='TH1F', path='EXPERT', title="Nr of HitDVTrks;N HitDVTrks size;Nevents", xbins=50, xmin=0, xmax=1000)
29  monTool.defineHistogram('n_dvsps', type='TH1F', path='EXPERT', title="Nr of HitDVSPs;N HitDVSPs size;Nevents", xbins=50, xmin=0, xmax=100000)
30  monTool.defineHistogram('n_jetseeds', type='TH1F', path='EXPERT', title="Nr of Jet Seeds;N jet seeds;Nevents", xbins=25, xmin=0, xmax=25)
31  monTool.defineHistogram('n_jetseedsdel', type='TH1F', path='EXPERT', title="Nr of deleted jet seeds;N jet seeds;Nevents", xbins=25, xmin=0, xmax=25)
32  monTool.defineHistogram('n_spseeds', type='TH1F', path='EXPERT', title="Nr of Ly6/Ly7 SP-doublet Seeds;N SP seeds;Nevents", xbins=25, xmin=0, xmax=25)
33  monTool.defineHistogram('n_spseedsdel', type='TH1F', path='EXPERT', title="Nr of deleted Ly6/Ly7 SP-doublet seeds;N SP seeds;Nevents", xbins=25, xmin=0, xmax=25)
34  monTool.defineHistogram('average_mu', type='TH1F', path='EXPERT', title="Average mu;Average mu;Nevents", xbins=50, xmin=0, xmax=100)
35  #
36  monTool.defineHistogram('eta1_ly0_spfr', type='TH1F', path='EXPERT', title="Layer#0 hit fraction (|#eta|<1);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
37  monTool.defineHistogram('eta1_ly1_spfr', type='TH1F', path='EXPERT', title="Layer#1 hit fraction (|#eta|<1);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
38  monTool.defineHistogram('eta1_ly2_spfr', type='TH1F', path='EXPERT', title="Layer#2 hit fraction (|#eta|<1);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
39  monTool.defineHistogram('eta1_ly3_spfr', type='TH1F', path='EXPERT', title="Layer#3 hit fraction (|#eta|<1);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
40  monTool.defineHistogram('eta1_ly4_spfr', type='TH1F', path='EXPERT', title="Layer#4 hit fraction (|#eta|<1);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
41  monTool.defineHistogram('eta1_ly5_spfr', type='TH1F', path='EXPERT', title="Layer#5 hit fraction (|#eta|<1);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
42  monTool.defineHistogram('eta1_ly6_spfr', type='TH1F', path='EXPERT', title="Layer#6 hit fraction (|#eta|<1);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
43  monTool.defineHistogram('eta1_ly7_spfr', type='TH1F', path='EXPERT', title="Layer#7 hit fraction (|#eta|<1);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
44  monTool.defineHistogram('eta1_n_qtrk', type='TH1F', path='EXPERT', title="Nr of quality tracks (|#eta|<1);Nr of quality tracks;Nevents", xbins=20, xmin=0, xmax=20)
45  monTool.defineHistogram('eta1_bdtscore', type='TH1F', path='EXPERT', title="BDT score (|#eta|<1);BDT score;Nevents", xbins=50, xmin=-1.0, xmax=1.0)
46  monTool.defineHistogram('1eta2_ly0_spfr', type='TH1F', path='EXPERT', title="Layer#0 hit fraction (1<|#eta|<2);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
47  monTool.defineHistogram('1eta2_ly1_spfr', type='TH1F', path='EXPERT', title="Layer#1 hit fraction (1<|#eta|<2);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
48  monTool.defineHistogram('1eta2_ly2_spfr', type='TH1F', path='EXPERT', title="Layer#2 hit fraction (1<|#eta|<2);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
49  monTool.defineHistogram('1eta2_ly3_spfr', type='TH1F', path='EXPERT', title="Layer#3 hit fraction (1<|#eta|<2);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
50  monTool.defineHistogram('1eta2_ly4_spfr', type='TH1F', path='EXPERT', title="Layer#4 hit fraction (1<|#eta|<2);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
51  monTool.defineHistogram('1eta2_ly5_spfr', type='TH1F', path='EXPERT', title="Layer#5 hit fraction (1<|#eta|<2);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
52  monTool.defineHistogram('1eta2_ly6_spfr', type='TH1F', path='EXPERT', title="Layer#6 hit fraction (1<|#eta|<2);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
53  monTool.defineHistogram('1eta2_ly7_spfr', type='TH1F', path='EXPERT', title="Layer#7 hit fraction (1<|#eta|<2);Hit fraction;Nevents", xbins=50, xmin=0.0, xmax=1.0)
54  monTool.defineHistogram('1eta2_n_qtrk', type='TH1F', path='EXPERT', title="Nr of quality tracks (1<|#eta|<2);Nr of quality tracks;Nevents", xbins=20, xmin=0, xmax=20)
55  monTool.defineHistogram('1eta2_bdtscore', type='TH1F', path='EXPERT', title="BDT score (1<|#eta|<2);BDT score;Nevents", xbins=50, xmin=-1.0, xmax=1.0)
56 
57  monTool.HistPath = 'HitDVHypoAlg'
58  theHitDVHypo.MonTool = monTool
59  theHitDVHypo.RecJetRoI = "HLT_RecJETRoIs"
60 
61  useNewLayerNumberScheme = False
62  from TrigFastTrackFinder.TrigFastTrackFinderConfig import TrigSpacePointConversionToolCfg
63  spTool = acc.popToolsAndMerge(TrigSpacePointConversionToolCfg(flags,
64  UseNewLayerScheme=useNewLayerNumberScheme,
65  DoPhiFiltering = False,
66  UseBeamTilt = False, ))
67 
68  theHitDVHypo.SpacePointProviderTool = spTool
69 
70  acc.addEventAlgo(theHitDVHypo)
71  return acc
72 
73 
74 def TrigHitDVHypoToolFromDict( chainDict ):
75 
76  log = logging.getLogger('TrigHitDVHypoTool')
77 
78  """ Use menu decoded chain dictionary to configure the tool """
79  cparts = [i for i in chainDict['chainParts'] if i['signature']=='UnconventionalTracking']
80  thresholds = sum([ [cpart['threshold']]*int(cpart['multiplicity']) for cpart in cparts], [])
81 
82  name = chainDict['chainName']
83  from AthenaConfiguration.ComponentFactory import CompFactory
84  tool = CompFactory.TrigHitDVHypoTool(name)
85 
86  # set thresholds
87 
88  strThr = ""
89 
90  thresholds = [ float(THR) for THR in thresholds]
91 
92  for THR in thresholds:
93  strThr += str(THR)+", "
94 
95  log.debug("Threshold Values are: %s",strThr)
96 
97  tool.cutJetPtGeV = thresholds
98 
99  jetEta=[]
100  doSPseed=[]
101  effBDT=[]
102 
103  for cpart in cparts:
104  if cpart['IDinfo'] =="loose":
105  log.debug("Loose ID working point is set")
106  jetEta.append(2.0)
107  doSPseed.append(True)
108  effBDT.append(0.9)
109  elif cpart['IDinfo'] =="tight":
110  log.debug("Tight ID working point is set")
111  jetEta.append(1.0)
112  doSPseed.append(False)
113  effBDT.append(0.75)
114  else:
115  if cpart['IDinfo'] =="medium":
116  log.debug("Medium ID working point is set")
117  else:
118  log.info("no working point specificed. setting medium working point")
119  jetEta.append(2.0)
120  doSPseed.append(False)
121  effBDT.append(0.75)
122 
123  tool.cutJetEta = jetEta
124  tool.doSPseed = doSPseed
125  tool.effBDT = effBDT
126 
127  return tool
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
python.TrigHitDVHypoConfig.TrigHitDVHypoToolFromDict
def TrigHitDVHypoToolFromDict(chainDict)
Definition: TrigHitDVHypoConfig.py:74
python.TrigHitDVHypoConfig.TrigHitDVHypoAlgCfg
ComponentAccumulator TrigHitDVHypoAlgCfg(AthConfigFlags flags, str name)
Definition: TrigHitDVHypoConfig.py:12
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
GenericMonitoringTool
Definition: GenericMonitoringTool.py:1
TrigFastTrackFinderConfig.TrigSpacePointConversionToolCfg
ComponentAccumulator TrigSpacePointConversionToolCfg(AthConfigFlags flags, **kwargs)
Definition: TrigFastTrackFinderConfig.py:264
python.TriggerEDM.recordable
def recordable(arg, runVersion=3)
Definition: TriggerEDM.py:30
str
Definition: BTagTrackIpAccessor.cxx:11
readCCLHist.float
float
Definition: readCCLHist.py:83