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

162def createBTaggingConfigFlags():
163 btagcf = AthConfigFlags()
164
165 btagcf.addFlag("BTagging.taggerList", getTaggerList)
166 btagcf.addFlag("BTagging.databaseScheme", '')
167 btagcf.addFlag("BTagging.calibrationChannelAliases",
168 calibrationChannelAliases)
169 btagcf.addFlag("BTagging.forcedCalibrationChannel", '')
170 btagcf.addFlag("BTagging.calibrationTag",
171 calibrationTag)
172
173 # the track association minimum is set to 4 GeV because of track
174 # jets in offline reconstruction.
175 btagcf.addFlag("BTagging.minimumJetPtForTrackAssociation",
176 minimumJetPtForTrackAssociation)
177
178 # these are only used for IPxD and SV1 likelihoods
179 btagcf.addFlag("BTagging.RunModus", "analysis") # reference mode used in FlavourTagPerformanceFramework (RetagFragment.py)
180 btagcf.addFlag("BTagging.ReferenceType", "ALL") # reference type for IP and SV taggers (B, UDSG, ALL)
181 btagcf.addFlag("BTagging.JetPtMinRef", 15e3) # in MeV for uncalibrated pt
182 btagcf.addFlag("BTagging.Grades", getGrades)
183
184
185 # Taggers for validation
186 btagcf.addFlag("BTagging.SaveSV1Probabilities", saveSv1)
187 # Run the flip taggers
188 btagcf.addFlag("BTagging.RunFlipTaggers", runFlipTag)
189
190 # Trackless approach
191 btagcf.addFlag("BTagging.Trackless", False)
192 btagcf.addFlag("BTagging.Trackless_JetCollection", "AntiKt4EMPFlowJets")
193 btagcf.addFlag("BTagging.Trackless_JetPtMin", 250*Units.GeV)
194 btagcf.addFlag("BTagging.Trackless_dR", 0.4)
195
196 # more aggressive trackless approach
197 btagcf.addFlag("BTagging.savePixelHits", False)
198 btagcf.addFlag("BTagging.saveSCTHits", False)
199
200 # experimental flags
201 btagcf.addFlag("BTagging.Pseudotrack", False)
202
203 #NewVrtSecInclusiveAlg
204 btagcf.addFlag("BTagging.RunNewVrtSecInclusive", runOldSecVrtSecIncl)
205
206 # track classification tool flags
207 btagcf.addFlag("BTagging.TrkClassFiveBinMode",False)
208
209 # a flag to add V0finder
210 btagcf.addFlag("BTagging.AddV0Finder", False)
211
212 # GNN vertex fitter
213 btagcf.addFlag("BTagging.GNNVertexFitter", False)
214
215 # (multifold) NN trainings, each jet collection maps to a list of
216 # dicts. The dict has several keys:
217 # - folds: list of NNs to run
218 # - remapping (optional): any variable remapping
219 btagcf.addFlag("BTagging.NNs", getNNs)
220 btagcf.addFlag("BTagging.AK4TaggerName", lambda pcf: (
221 "GN2HL" if pcf.GeoModel.Run>=LHCPeriod.Run4 else "GN2v01"))
222
223 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/20240918/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 lrj_paths = [
108 "BTagging/20230705/gn2xv01/antikt10ufo/network.onnx",
109 "BTagging/20240925/GN2Xv02/antikt10ufo/network.onnx",
110 "BTagging/20250310/GN2XTauV00/antikt10ufo/network.onnx",
111 "BTagging/20250912/GN3XPV01/antikt10ufo/network.onnx",
112 "JetCalibTools/CalibArea-00-04-83/CalibrationFactors/bbJESJMS_calibFactors_R22_MC20_CSSKUFO_bJR10v00Ext_20250212.onnx", # bJR10v00Ext
113 "JetCalibTools/CalibArea-00-04-83/CalibrationFactors/bbJESJMS_calibFactors_R22_MC20MC23_CSSKUFO_bJR10v01_20250212.onnx" # bJR10v01
114 ]
115 # we can't flip large-R taggers
116 noflip = dict(flip=False)
117
118 return {
119 'AntiKt4EMPFlowJets': [
120 {
121 'folds': ak4_nns,
122 'hash': 'jetFoldHash',
123 'cone_association': True,
124 },
125 *[{'folds' : [nn_path]} for nn_path in gn3_paths]
126 ],
127 'AntiKt4EMTopoJets': [
128 {
129 'folds': ak4_nns,
130 'hash': 'jetFoldHash',
131 'cone_association': True,
132 },
133 ],
134 'AntiKt4EMPFlowCustomVtxJets': [
135 {
136 'folds': ak4_nns,
137 'hash': 'jetFoldHash',
138 'cone_association': True
139 },
140 *[{'folds' : [nn_path]} for nn_path in gn3_paths]
141 ],
142 'AntiKt4EMPFlowByVertexJets': [
143 {
144 'folds': ak4_nns,
145 'hash': 'jetFoldHash',
146 'cone_association': True
147 }
148 ],
149 'AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets': [
150 {'folds' : [nn_path], **noflip} for nn_path in lrj_paths
151 ],
152 'DFAntiKt4HIJets': [
153 {
154 'folds': ak4_nns,
155 'hash': 'jetFoldHash',
156 'cone_association': True
157 }
158 ]
159 }
160
161

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