ATLAS Offline Software
Loading...
Searching...
No Matches
BTaggingConfigFlags Namespace Reference

Functions

 getGrades (flags)
 getTaggerList (flags)
 minimumJetPtForTrackAssociation (flags)
 calibrationTag (flags)
 saveSv1 (prevFlags)
 runOldSecVrtSecIncl (prevFlags)
 isRun3Derivation (flags)
 runFlipTag (flags)
 getNNs (flags)
 createBTaggingConfigFlags ()

Variables

list Run1Grades = [ "Good", "BlaShared", "PixShared", "SctShared", "0HitBLayer" ]
list Run2Grades
list Run4Grades
list calibrationChannelAliases

Function Documentation

◆ calibrationTag()

BTaggingConfigFlags.calibrationTag ( flags)

Definition at line 55 of file BTaggingConfigFlags.py.

55def calibrationTag(flags):
56 if flags.GeoModel.Run >= LHCPeriod.Run4:
57 return "BTagCalibITk-23-00-03-v1"
58 return ""
59
60

◆ createBTaggingConfigFlags()

BTaggingConfigFlags.createBTaggingConfigFlags ( )

Definition at line 158 of file BTaggingConfigFlags.py.

158def createBTaggingConfigFlags():
159 btagcf = AthConfigFlags()
160
161 btagcf.addFlag("BTagging.taggerList", getTaggerList)
162 btagcf.addFlag("BTagging.databaseScheme", '')
163 btagcf.addFlag("BTagging.calibrationChannelAliases",
164 calibrationChannelAliases)
165 btagcf.addFlag("BTagging.forcedCalibrationChannel", '')
166 btagcf.addFlag("BTagging.calibrationTag",
167 calibrationTag)
168
169 # the track association minimum is set to 4 GeV because of track
170 # jets in offline reconstruction.
171 btagcf.addFlag("BTagging.minimumJetPtForTrackAssociation",
172 minimumJetPtForTrackAssociation)
173
174 # these are only used for IPxD and SV1 likelihoods
175 btagcf.addFlag("BTagging.RunModus", "analysis") # reference mode used in FlavourTagPerformanceFramework (RetagFragment.py)
176 btagcf.addFlag("BTagging.ReferenceType", "ALL") # reference type for IP and SV taggers (B, UDSG, ALL)
177 btagcf.addFlag("BTagging.JetPtMinRef", 15e3) # in MeV for uncalibrated pt
178 btagcf.addFlag("BTagging.Grades", getGrades)
179
180
181 # Taggers for validation
182 btagcf.addFlag("BTagging.SaveSV1Probabilities", saveSv1)
183 # Run the flip taggers
184 btagcf.addFlag("BTagging.RunFlipTaggers", runFlipTag)
185
186 # Trackless approach
187 btagcf.addFlag("BTagging.Trackless", False)
188 btagcf.addFlag("BTagging.Trackless_JetCollection", "AntiKt4EMPFlowJets")
189 btagcf.addFlag("BTagging.Trackless_JetPtMin", 250*Units.GeV)
190 btagcf.addFlag("BTagging.Trackless_dR", 0.4)
191
192 # more aggressive trackless approach
193 btagcf.addFlag("BTagging.savePixelHits", False)
194 btagcf.addFlag("BTagging.saveSCTHits", False)
195
196 # experimental flags
197 btagcf.addFlag("BTagging.Pseudotrack", False)
198
199 #NewVrtSecInclusiveAlg
200 btagcf.addFlag("BTagging.RunNewVrtSecInclusive", runOldSecVrtSecIncl)
201
202 # track classification tool flags
203 btagcf.addFlag("BTagging.TrkClassFiveBinMode",False)
204
205 # a flag to add V0finder
206 btagcf.addFlag("BTagging.AddV0Finder", False)
207
208 # GNN vertex fitter
209 btagcf.addFlag("BTagging.GNNVertexFitter", False)
210
211 # (multifold) NN trainings, each jet collection maps to a list of
212 # dicts. The dict has several keys:
213 # - folds: list of NNs to run
214 # - remapping (optional): any variable remapping
215 btagcf.addFlag("BTagging.NNs", getNNs)
216
217 return btagcf

◆ getGrades()

BTaggingConfigFlags.getGrades ( flags)

Definition at line 28 of file BTaggingConfigFlags.py.

28def getGrades(flags):
29 if flags.GeoModel.Run is LHCPeriod.Run1:
30 return Run1Grades
31 elif flags.GeoModel.Run in [LHCPeriod.Run2, LHCPeriod.Run3]:
32 return Run2Grades
33 else:
34 return Run4Grades
35
36

◆ getNNs()

BTaggingConfigFlags.getNNs ( flags)
Gets the paths of models to run via MultiFoldTagger.

Definition at line 78 of file BTaggingConfigFlags.py.

78def getNNs(flags):
79 '''
80 Gets the paths of models to run via MultiFoldTagger.
81 '''
82
83 # dummy for now
84 caldir = 'BTagging/20231205/GN2v01/antikt4empflow'
85 pf_nns = [f'{caldir}/network_fold{n}.onnx' for n in range(4)]
86
87 # We can save our results to the jet container, rather than the b-tagging container
88 # but this functionality is not yet setup for non multi-fold taggers. The easiest (/hackiest)
89 # solution is to pass all the GN3 paths below as seperate single-fold-multi-fold-taggers
90 # But this *should* be cleaned up at some point
91 # Note also, reco tests failing due to leptonID missing, so for now don't run taggers unless derivation
92 # https://gitlab.cern.ch/atlas/athena/-/merge_requests/77764#note_9063625
93 gn3v00_paths = [
94 "BTagging/20250213/GN3V00/antikt4empflow/network.onnx", # Only tracks
95 "BTagging/20250213/GN3PflowMuonsV00/antikt4empflow/network.onnx", # Tracks+Muons+PFlow
96 ] if isRun3Derivation(flags) else []
97 gn3v01_paths = [
98 "BTagging/20250912/GN3EPCLV01/antikt4empflow/network.onnx", # Electrons+Pflow+Charge+Muons
99 ] if isRun3Derivation(flags) else []
100 # Combine the paths for GN3v00 and GN3v01 models
101 gn3_paths = gn3v00_paths + gn3v01_paths
102
103 lrj_paths = [
104 "BTagging/20230705/gn2xv01/antikt10ufo/network.onnx",
105 "BTagging/20240925/GN2Xv02/antikt10ufo/network.onnx",
106 "BTagging/20250310/GN2XTauV00/antikt10ufo/network.onnx",
107 "BTagging/20250912/GN3XPV01/antikt10ufo/network.onnx",
108 "JetCalibTools/CalibArea-00-04-83/CalibrationFactors/bbJESJMS_calibFactors_R22_MC20_CSSKUFO_bJR10v00Ext_20250212.onnx", # bJR10v00Ext
109 "JetCalibTools/CalibArea-00-04-83/CalibrationFactors/bbJESJMS_calibFactors_R22_MC20MC23_CSSKUFO_bJR10v01_20250212.onnx" # bJR10v01
110 ]
111 # we can't flip large-R taggers
112 noflip = dict(flip=False)
113
114 return {
115 'AntiKt4EMPFlowJets': [
116 {
117 'folds': pf_nns,
118 'hash': 'jetFoldHash',
119 'cone_association': True,
120 },
121 *[{'folds' : [nn_path]} for nn_path in gn3_paths]
122 ],
123 'AntiKt4EMTopoJets': [
124 {
125 'folds': pf_nns,
126 'hash': 'jetFoldHash',
127 'cone_association': True,
128 },
129 ],
130 'AntiKt4EMPFlowCustomVtxJets': [
131 {
132 'folds': pf_nns,
133 'hash': 'jetFoldHash',
134 'cone_association': True
135 },
136 *[{'folds' : [nn_path]} for nn_path in gn3_paths]
137 ],
138 'AntiKt4EMPFlowByVertexJets': [
139 {
140 'folds': pf_nns,
141 'hash': 'jetFoldHash',
142 'cone_association': True
143 }
144 ],
145 'AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets': [
146 {'folds' : [nn_path], **noflip} for nn_path in lrj_paths
147 ],
148 'DFAntiKt4HIJets': [
149 {
150 'folds': pf_nns,
151 'hash': 'jetFoldHash',
152 'cone_association': True
153 }
154 ]
155 }
156
157

◆ getTaggerList()

BTaggingConfigFlags.getTaggerList ( flags)

Definition at line 37 of file BTaggingConfigFlags.py.

37def getTaggerList(flags):
38 base = ['IP2D','IP3D','SV1','JetFitterNN']
39 if flags.Trigger.doHLT:
40 base = []
41 elif flags.GeoModel.Run >= LHCPeriod.Run4:
42 base += ['MV2c10']
43 flip = ['IP2DNeg', 'IP3DNeg','IP2DFlip', 'IP3DFlip','SV1Flip']
44 if flags.BTagging.RunFlipTaggers:
45 return base + flip
46 return base
47
48

◆ isRun3Derivation()

BTaggingConfigFlags.isRun3Derivation ( flags)

Definition at line 69 of file BTaggingConfigFlags.py.

69def isRun3Derivation(flags):
70 derivation = flags.Common.ProductionStep is ProductionStep.Derivation
71 before_the_future = flags.GeoModel.Run < LHCPeriod.Run4
72 return derivation and before_the_future
73
74

◆ minimumJetPtForTrackAssociation()

BTaggingConfigFlags.minimumJetPtForTrackAssociation ( flags)

Definition at line 49 of file BTaggingConfigFlags.py.

49def minimumJetPtForTrackAssociation(flags):
50 if flags.Trigger.doHLT:
51 return 5e3
52 return 4e3
53
54

◆ runFlipTag()

BTaggingConfigFlags.runFlipTag ( flags)

Definition at line 75 of file BTaggingConfigFlags.py.

75def runFlipTag(flags):
76 return isRun3Derivation(flags)
77

◆ runOldSecVrtSecIncl()

BTaggingConfigFlags.runOldSecVrtSecIncl ( prevFlags)

Definition at line 65 of file BTaggingConfigFlags.py.

65def runOldSecVrtSecIncl(prevFlags):
66 return prevFlags.Common.ProductionStep is ProductionStep.Derivation
67
68

◆ saveSv1()

BTaggingConfigFlags.saveSv1 ( prevFlags)

Definition at line 61 of file BTaggingConfigFlags.py.

61def saveSv1(prevFlags):
62 return prevFlags.GeoModel.Run >= LHCPeriod.Run4
63
64

Variable Documentation

◆ calibrationChannelAliases

list BTaggingConfigFlags.calibrationChannelAliases
Initial value:
1= [
2 "AntiKt4EMTopo->AntiKt4EMTopo,AntiKt4EMPFlow",
3 "AntiKt4EMPFlow->AntiKt4EMPFlow,AntiKt4EMTopo",
4 "AntiKt4HI->AntiKt4HI,AntiKt4EMPFlow,AntiKt4EMTopo,AntiKt4LCTopo",
5 "AntiKtVR30Rmax4Rmin02PV0Track->AntiKtVR30Rmax4Rmin02PV0Track,AntiKt4EMPFlow,AntiKt4EMTopo",
6 "AntiKt4PFlowCustomVtx->AntiKt4EMPFlow,AntiKt4EMTopo",
7 "AntiKtVR30Rmax4Rmin02Track->AntiKtVR30Rmax4Rmin02PV0Track,AntiKt4EMPFlow,AntiKt4EMTopo",
8
9]

Definition at line 18 of file BTaggingConfigFlags.py.

◆ Run1Grades

list BTaggingConfigFlags.Run1Grades = [ "Good", "BlaShared", "PixShared", "SctShared", "0HitBLayer" ]

Definition at line 8 of file BTaggingConfigFlags.py.

◆ Run2Grades

list BTaggingConfigFlags.Run2Grades
Initial value:
1= [ "0HitIn0HitNInExp2","0HitIn0HitNInExpIn","0HitIn0HitNInExpNIn","0HitIn0HitNIn",
2 "0HitInExp", "0HitIn",
3 "0HitNInExp", "0HitNIn",
4 "InANDNInShared", "PixShared", "SctShared",
5 "InANDNInSplit", "PixSplit",
6 "Good" ]

Definition at line 9 of file BTaggingConfigFlags.py.

◆ Run4Grades

list BTaggingConfigFlags.Run4Grades
Initial value:
1= [ "A01","A02","A03","A04","A05","A06","A07","A08","A14_1","A14_2","A14_3","A14_4",
2 "B01","B02","B03","B04","B05","B06","B07","B08","B14_1","B14_2","B14_3","B14_4",
3 "C01","C02030405","C06","C07","C08","C14_1","C14_2","C14_3","C14_4" ]

Definition at line 15 of file BTaggingConfigFlags.py.