ATLAS Offline Software
Functions | Variables
BTaggingConfigFlags Namespace Reference

Functions

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

Variables

 Run1Grades
 
 Run2Grades
 
 Run4Grades
 
 calibrationChannelAliases
 

Function Documentation

◆ calibrationTag()

def BTaggingConfigFlags.calibrationTag (   flags)

Definition at line 55 of file BTaggingConfigFlags.py.

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

◆ createBTaggingConfigFlags()

def BTaggingConfigFlags.createBTaggingConfigFlags ( )

Definition at line 149 of file BTaggingConfigFlags.py.

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

◆ getGrades()

def BTaggingConfigFlags.getGrades (   flags)

Definition at line 28 of file BTaggingConfigFlags.py.

28 def 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()

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

Definition at line 78 of file BTaggingConfigFlags.py.

78 def 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 
112  return {
113  'AntiKt4EMPFlowJets': [
114  {
115  'folds': pf_nns,
116  'hash': 'jetFoldHash',
117  'cone_association': True,
118  },
119  *[{'folds' : [nn_path]} for nn_path in gn3_paths]
120  ],
121  'AntiKt4EMTopoJets': [
122  {
123  'folds': pf_nns,
124  'hash': 'jetFoldHash',
125  'cone_association': True,
126  },
127  ],
128  'AntiKt4EMPFlowCustomVtxJets': [
129  {
130  'folds': pf_nns,
131  'hash': 'jetFoldHash',
132  'cone_association': True
133  },
134  *[{'folds' : [nn_path]} for nn_path in gn3_paths]
135  ],
136  'AntiKt4EMPFlowByVertexJets': [
137  {
138  'folds': pf_nns,
139  'hash': 'jetFoldHash',
140  'cone_association': True
141  }
142  ],
143  'AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets': [
144  {'folds' : [nn_path]} for nn_path in lrj_paths
145  ]
146  }
147 
148 

◆ getTaggerList()

def BTaggingConfigFlags.getTaggerList (   flags)

Definition at line 37 of file BTaggingConfigFlags.py.

37 def 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()

def BTaggingConfigFlags.isRun3Derivation (   flags)

Definition at line 69 of file BTaggingConfigFlags.py.

69 def 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()

def BTaggingConfigFlags.minimumJetPtForTrackAssociation (   flags)

Definition at line 49 of file BTaggingConfigFlags.py.

50  if flags.Trigger.doHLT:
51  return 5e3
52  return 4e3
53 
54 

◆ runFlipTag()

def BTaggingConfigFlags.runFlipTag (   flags)

Definition at line 75 of file BTaggingConfigFlags.py.

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

◆ runOldSecVrtSecIncl()

def BTaggingConfigFlags.runOldSecVrtSecIncl (   prevFlags)

Definition at line 65 of file BTaggingConfigFlags.py.

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

◆ saveSv1()

def BTaggingConfigFlags.saveSv1 (   prevFlags)

Definition at line 61 of file BTaggingConfigFlags.py.

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

Variable Documentation

◆ calibrationChannelAliases

BTaggingConfigFlags.calibrationChannelAliases

Definition at line 18 of file BTaggingConfigFlags.py.

◆ Run1Grades

BTaggingConfigFlags.Run1Grades

Definition at line 8 of file BTaggingConfigFlags.py.

◆ Run2Grades

BTaggingConfigFlags.Run2Grades

Definition at line 9 of file BTaggingConfigFlags.py.

◆ Run4Grades

BTaggingConfigFlags.Run4Grades

Definition at line 15 of file BTaggingConfigFlags.py.

BTaggingConfigFlags.isRun3Derivation
def isRun3Derivation(flags)
Definition: BTaggingConfigFlags.py:69
BTaggingConfigFlags.getNNs
def getNNs(flags)
Definition: BTaggingConfigFlags.py:78
BTaggingConfigFlags.createBTaggingConfigFlags
def createBTaggingConfigFlags()
Definition: BTaggingConfigFlags.py:149
BTaggingConfigFlags.saveSv1
def saveSv1(prevFlags)
Definition: BTaggingConfigFlags.py:61
BTaggingConfigFlags.calibrationTag
def calibrationTag(flags)
Definition: BTaggingConfigFlags.py:55
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
BTaggingConfigFlags.getGrades
def getGrades(flags)
Definition: BTaggingConfigFlags.py:28
BTaggingConfigFlags.minimumJetPtForTrackAssociation
def minimumJetPtForTrackAssociation(flags)
Definition: BTaggingConfigFlags.py:49
BTaggingConfigFlags.getTaggerList
def getTaggerList(flags)
Definition: BTaggingConfigFlags.py:37
BTaggingConfigFlags.runOldSecVrtSecIncl
def runOldSecVrtSecIncl(prevFlags)
Definition: BTaggingConfigFlags.py:65
BTaggingConfigFlags.runFlipTag
def runFlipTag(flags)
Definition: BTaggingConfigFlags.py:75