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

133  btagcf = AthConfigFlags()
134 
135  btagcf.addFlag("BTagging.taggerList", getTaggerList)
136  btagcf.addFlag("BTagging.databaseScheme", '')
137  btagcf.addFlag("BTagging.calibrationChannelAliases",
138  calibrationChannelAliases)
139  btagcf.addFlag("BTagging.forcedCalibrationChannel", '')
140  btagcf.addFlag("BTagging.calibrationTag",
141  calibrationTag)
142 
143  # the track association minimum is set to 4 GeV because of track
144  # jets in offline reconstruction.
145  btagcf.addFlag("BTagging.minimumJetPtForTrackAssociation",
146  minimumJetPtForTrackAssociation)
147 
148  # these are only used for IPxD and SV1 likelihoods
149  btagcf.addFlag("BTagging.RunModus", "analysis") # reference mode used in FlavourTagPerformanceFramework (RetagFragment.py)
150  btagcf.addFlag("BTagging.ReferenceType", "ALL") # reference type for IP and SV taggers (B, UDSG, ALL)
151  btagcf.addFlag("BTagging.JetPtMinRef", 15e3) # in MeV for uncalibrated pt
152  btagcf.addFlag("BTagging.Grades", getGrades)
153 
154 
155  # Taggers for validation
156  btagcf.addFlag("BTagging.SaveSV1Probabilities", saveSv1)
157  # Run the flip taggers
158  btagcf.addFlag("BTagging.RunFlipTaggers", runFlipTag)
159 
160  # Trackless approach
161  btagcf.addFlag("BTagging.Trackless", False)
162  btagcf.addFlag("BTagging.Trackless_JetCollection", "AntiKt4EMPFlowJets")
163  btagcf.addFlag("BTagging.Trackless_JetPtMin", 250*Units.GeV)
164  btagcf.addFlag("BTagging.Trackless_dR", 0.4)
165 
166  # more aggressive trackless approach
167  btagcf.addFlag("BTagging.savePixelHits", False)
168  btagcf.addFlag("BTagging.saveSCTHits", False)
169 
170  # experimental flags
171  btagcf.addFlag("BTagging.Pseudotrack", False)
172 
173  #NewVrtSecInclusiveAlg
174  btagcf.addFlag("BTagging.RunNewVrtSecInclusive", runOldSecVrtSecIncl)
175 
176  # track classification tool flags
177  btagcf.addFlag("BTagging.TrkClassFiveBinMode",False)
178 
179  # a flag to add V0finder
180  btagcf.addFlag("BTagging.AddV0Finder", False)
181 
182  # GNN vertex fitter
183  btagcf.addFlag("BTagging.GNNVertexFitter", False)
184 
185  # a flag to enable legacy BTagging
186  btagcf.addFlag("BTagging.EnableLegacyBTagging", False)
187 
188  # (multifold) NN trainings, each jet collection maps to a list of
189  # dicts. The dict has several keys:
190  # - folds: list of NNs to run
191  # - remapping (optional): any variable remapping
192  btagcf.addFlag("BTagging.NNs", getNNs)
193 
194  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  # dummy for now
83  caldir = 'BTagging/20231205/GN2v01/antikt4empflow'
84  pf_nns = [f'{caldir}/network_fold{n}.onnx' for n in range(4)]
85 
86  # We can save our results to the jet container, rather than the b-tagging container
87  # but this functionality is not yet setup for non multi-fold taggers. The easiest (/hackiest)
88  # solution is to pass all the GN3 paths below as seperate single-fold-multi-fold-taggers
89  # But this *should* be cleaned up at some point
90  # Note also, reco tests failing due to leptonID missing, so for now don't run taggers unless derivation
91  # https://gitlab.cern.ch/atlas/athena/-/merge_requests/77764#note_9063625
92  gn3v00_paths = [
93  "BTagging/20250213/GN3V00/antikt4empflow/network.onnx", # Only tracks
94  "BTagging/20250213/GN3PflowV00/antikt4empflow/network.onnx", # Tracks+PFlow
95  "BTagging/20250213/GN3MuonsV00/antikt4empflow/network.onnx", # Tracks+Muons
96  "BTagging/20250213/GN3PflowMuonsV00/antikt4empflow/network.onnx", # Tracks+Muons+PFlow
97  ] if isRun3Derivation(flags) else []
98  gn3v01_paths = [
99  "BTagging/20250527/GN3PflowMuonsChargeV00/antikt4empflow/network.onnx", # Tracks+Muons+PFlow+Charge
100  "BTagging/20250527/GN3PflowMuonsElectronsHybridV00/antikt4empflow/network.onnx", # Tracks+Muons+PFlow+Electrons+Hybrid
101  "BTagging/20250527/GN3V01/antikt4empflow/network.onnx", # Tracks+PFlow+Muons+Charge+Electrons+Hybrid
102  ] if isRun3Derivation(flags) else []
103  # Combine the paths for GN3v00 and GN3v01 models
104  gn3_paths = gn3v00_paths + gn3v01_paths
105  return {
106  'AntiKt4EMPFlowJets': [
107  {
108  'folds': pf_nns,
109  'hash': 'jetFoldHash',
110  'cone_association': True,
111  },
112  *[{'folds' : [nn_path]} for nn_path in gn3_paths]
113  ],
114  'AntiKt4EMPFlowCustomVtxJets': [
115  {
116  'folds': pf_nns,
117  'hash': 'jetFoldHash',
118  'cone_association': True
119  },
120  *[{'folds' : [nn_path]} for nn_path in gn3_paths]
121  ],
122  'AntiKt4EMPFlowByVertexJets': [
123  {
124  'folds': pf_nns,
125  'hash': 'jetFoldHash',
126  'cone_association': True
127  }
128  ]
129  }
130 
131 

◆ 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:132
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