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 166 of file BTaggingConfigFlags.py.

166def createBTaggingConfigFlags():
167 btagcf = AthConfigFlags()
168
169 btagcf.addFlag("BTagging.taggerList", getTaggerList)
170 btagcf.addFlag("BTagging.databaseScheme", '')
171 btagcf.addFlag("BTagging.calibrationChannelAliases",
172 calibrationChannelAliases)
173 btagcf.addFlag("BTagging.forcedCalibrationChannel", '')
174 btagcf.addFlag("BTagging.calibrationTag",
175 calibrationTag)
176
177 # the track association minimum is set to 4 GeV because of track
178 # jets in offline reconstruction.
179 btagcf.addFlag("BTagging.minimumJetPtForTrackAssociation",
180 minimumJetPtForTrackAssociation)
181
182 # these are only used for IPxD and SV1 likelihoods
183 btagcf.addFlag("BTagging.RunModus", "analysis") # reference mode used in FlavourTagPerformanceFramework (RetagFragment.py)
184 btagcf.addFlag("BTagging.ReferenceType", "ALL") # reference type for IP and SV taggers (B, UDSG, ALL)
185 btagcf.addFlag("BTagging.JetPtMinRef", 15e3) # in MeV for uncalibrated pt
186 btagcf.addFlag("BTagging.Grades", getGrades)
187
188
189 # Taggers for validation
190 btagcf.addFlag("BTagging.SaveSV1Probabilities", saveSv1)
191 # Run the flip taggers
192 btagcf.addFlag("BTagging.RunFlipTaggers", runFlipTag)
193
194 # Trackless approach
195 btagcf.addFlag("BTagging.Trackless", False)
196 btagcf.addFlag("BTagging.Trackless_JetCollection", "AntiKt4EMPFlowJets")
197 btagcf.addFlag("BTagging.Trackless_JetPtMin", 250*Units.GeV)
198 btagcf.addFlag("BTagging.Trackless_dR", 0.4)
199
200 # more aggressive trackless approach
201 btagcf.addFlag("BTagging.savePixelHits", False)
202 btagcf.addFlag("BTagging.saveSCTHits", False)
203
204 # experimental flags
205 btagcf.addFlag("BTagging.Pseudotrack", False)
206
207 #NewVrtSecInclusiveAlg
208 btagcf.addFlag("BTagging.RunNewVrtSecInclusive", runOldSecVrtSecIncl)
209
210 # track classification tool flags
211 btagcf.addFlag("BTagging.TrkClassFiveBinMode",False)
212
213 # a flag to add V0finder
214 btagcf.addFlag("BTagging.AddV0Finder", False)
215
216 # GNN vertex fitter
217 btagcf.addFlag("BTagging.GNNVertexFitter", False)
218
219 # (multifold) NN trainings, each jet collection maps to a list of
220 # dicts. The dict has several keys:
221 # - folds: list of NNs to run
222 # - remapping (optional): any variable remapping
223 btagcf.addFlag("BTagging.NNs", getNNs)
224 btagcf.addFlag("BTagging.AK4TaggerName", lambda pcf: (
225 "GN2HLv01" if pcf.GeoModel.Run>=LHCPeriod.Run4 else "GN2v01"))
226
227 # master switch for using Triton for NN inference.
228 # see athena/PhysicsAnalysis/JetTagging/FlavorTagInference/python/FlavorTagNNConfig.py
229 btagcf.addFlag("BTagging.UseTriton", False)
230
231 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 ak4_nns = []
85 if flags.GeoModel.Run >= LHCPeriod.Run4:
86 ak4_nns = ["BTagging/20260308/GN2HL/antikt4emtopo/network.onnx"]
87 else:
88 caldir = 'BTagging/20231205/GN2v01/antikt4empflow'
89 ak4_nns = [f'{caldir}/network_fold{n}.onnx' for n in range(4)]
90
91 # We can save our results to the jet container, rather than the b-tagging container
92 # but this functionality is not yet setup for non multi-fold taggers. The easiest (/hackiest)
93 # solution is to pass all the GN3 paths below as seperate single-fold-multi-fold-taggers
94 # But this *should* be cleaned up at some point
95 # Note also, reco tests failing due to leptonID missing, so for now don't run taggers unless derivation
96 # https://gitlab.cern.ch/atlas/athena/-/merge_requests/77764#note_9063625
97 gn3v00_paths = [
98 "BTagging/20250213/GN3V00/antikt4empflow/network.onnx", # Only tracks
99 "BTagging/20250213/GN3PflowMuonsV00/antikt4empflow/network.onnx", # Tracks+Muons+PFlow
100 ] if isRun3Derivation(flags) else []
101 gn3v01_paths = [
102 "BTagging/20250912/GN3EPCLV01/antikt4empflow/network.onnx", # Electrons+Pflow+Charge+Muons
103 ] if isRun3Derivation(flags) else []
104 # Combine the paths for GN3v00 and GN3v01 models
105 gn3_paths = gn3v00_paths + gn3v01_paths
106
107 bjr4_paths = [
108 "JetCalibTools/CalibArea-00-04-83/CalibrationFactors/bJES_calibFactors_R22_MC20MC23_AntiKt4EMPflow_bJR4v01_20260319.onnx" # bJR4v01
109 ] if isRun3Derivation(flags) else []
110
111 lrj_paths = [
112 "BTagging/20230705/gn2xv01/antikt10ufo/network.onnx",
113 "BTagging/20240925/GN2Xv02/antikt10ufo/network.onnx",
114 "BTagging/20250310/GN2XTauV00/antikt10ufo/network.onnx",
115 "BTagging/20250912/GN3XPV01/antikt10ufo/network.onnx",
116 "JetCalibTools/CalibArea-00-04-83/CalibrationFactors/bbJESJMS_calibFactors_R22_MC20_CSSKUFO_bJR10v00Ext_20250212.onnx", # bJR10v00Ext
117 "JetCalibTools/CalibArea-00-04-83/CalibrationFactors/bbJESJMS_calibFactors_R22_MC20MC23_CSSKUFO_bJR10v01_20250212.onnx" # bJR10v01
118 ]
119 # we can't flip large-R taggers
120 noflip = dict(flip=False)
121
122 return {
123 'AntiKt4EMPFlowJets': [
124 {
125 'folds': ak4_nns,
126 'hash': 'jetFoldHash',
127 'cone_association': True,
128 },
129 *[{'folds' : [nn_path]} for nn_path in gn3_paths+bjr4_paths]
130 ],
131 'AntiKt4EMTopoJets': [
132 {
133 'folds': ak4_nns,
134 'hash': 'jetFoldHash',
135 'cone_association': True,
136 },
137 ],
138 'AntiKt4EMPFlowCustomVtxJets': [
139 {
140 'folds': ak4_nns,
141 'hash': 'jetFoldHash',
142 'cone_association': True
143 },
144 *[{'folds' : [nn_path]} for nn_path in gn3_paths+bjr4_paths]
145 ],
146 'AntiKt4EMPFlowByVertexJets': [
147 {
148 'folds': ak4_nns,
149 'hash': 'jetFoldHash',
150 'cone_association': True
151 }
152 ],
153 'AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets': [
154 {'folds' : [nn_path], **noflip} for nn_path in lrj_paths
155 ],
156 'DFAntiKt4HIJets': [
157 {
158 'folds': ak4_nns,
159 'hash': 'jetFoldHash',
160 'cone_association': True
161 }
162 ]
163 }
164
165

◆ 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.