Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 129 of file BTaggingConfigFlags.py.

130  btagcf = AthConfigFlags()
131 
132  btagcf.addFlag("BTagging.taggerList", getTaggerList)
133  btagcf.addFlag("BTagging.databaseScheme", '')
134  btagcf.addFlag("BTagging.calibrationChannelAliases",
135  calibrationChannelAliases)
136  btagcf.addFlag("BTagging.forcedCalibrationChannel", '')
137  btagcf.addFlag("BTagging.calibrationTag",
138  calibrationTag)
139 
140  # the track association minimum is set to 4 GeV because of track
141  # jets in offline reconstruction.
142  btagcf.addFlag("BTagging.minimumJetPtForTrackAssociation",
143  minimumJetPtForTrackAssociation)
144 
145  # these are only used for IPxD and SV1 likelihoods
146  btagcf.addFlag("BTagging.RunModus", "analysis") # reference mode used in FlavourTagPerformanceFramework (RetagFragment.py)
147  btagcf.addFlag("BTagging.ReferenceType", "ALL") # reference type for IP and SV taggers (B, UDSG, ALL)
148  btagcf.addFlag("BTagging.JetPtMinRef", 15e3) # in MeV for uncalibrated pt
149  btagcf.addFlag("BTagging.Grades", getGrades)
150 
151 
152  # Taggers for validation
153  btagcf.addFlag("BTagging.SaveSV1Probabilities", saveSv1)
154  # Run the flip taggers
155  btagcf.addFlag("BTagging.RunFlipTaggers", runFlipTag)
156 
157  # Trackless approach
158  btagcf.addFlag("BTagging.Trackless", False)
159  btagcf.addFlag("BTagging.Trackless_JetCollection", "AntiKt4EMPFlowJets")
160  btagcf.addFlag("BTagging.Trackless_JetPtMin", 250*Units.GeV)
161  btagcf.addFlag("BTagging.Trackless_dR", 0.4)
162 
163  # more aggressive trackless approach
164  btagcf.addFlag("BTagging.savePixelHits", False)
165  btagcf.addFlag("BTagging.saveSCTHits", False)
166 
167  # experimental flags
168  btagcf.addFlag("BTagging.Pseudotrack", False)
169 
170  #NewVrtSecInclusiveAlg
171  btagcf.addFlag("BTagging.RunNewVrtSecInclusive", runOldSecVrtSecIncl)
172 
173  # track classification tool flags
174  btagcf.addFlag("BTagging.TrkClassFiveBinMode",False)
175 
176  # a flag to add V0finder
177  btagcf.addFlag("BTagging.AddV0Finder", False)
178 
179  # GNN vertex fitter
180  btagcf.addFlag("BTagging.GNNVertexFitter", False)
181 
182  # a flag to enable legacy BTagging
183  btagcf.addFlag("BTagging.EnableLegacyBTagging", True)
184 
185  # (multifold) NN trainings, each jet collection maps to a list of
186  # dicts. The dict has several keys:
187  # - folds: list of NNs to run
188  # - remapping (optional): any variable remapping
189  btagcf.addFlag("BTagging.NNs", getNNs)
190 
191 
192  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  gn3_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  "BTagging/20250213/GN3V00/antikt4empflow/network.onnx", # Only tracks
99  "BTagging/20250213/GN3PflowV00/antikt4empflow/network.onnx", # Tracks+PFlow
100  ]
101 
102  return {
103  'AntiKt4EMPFlowJets': [
104  {
105  'folds': pf_nns,
106  'hash': 'jetFoldHash',
107  'cone_association': True,
108  },
109  *[{'folds' : [nn_path]} for nn_path in gn3_paths]
110  ],
111  'AntiKt4EMPFlowCustomVtxJets': [
112  {
113  'folds': pf_nns,
114  'hash': 'jetFoldHash',
115  'cone_association': True
116  },
117  *[{'folds' : [nn_path]} for nn_path in gn3_paths]
118  ],
119  'AntiKt4EMPFlowByVertexJets': [
120  {
121  'folds': pf_nns,
122  'hash': 'jetFoldHash',
123  'cone_association': True
124  }
125  ]
126  }
127 
128 

◆ 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.Common.ProductionStep is ProductionStep.Derivation or 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:129
BTaggingConfigFlags.saveSv1
def saveSv1(prevFlags)
Definition: BTaggingConfigFlags.py:61
BTaggingConfigFlags.calibrationTag
def calibrationTag(flags)
Definition: BTaggingConfigFlags.py:55
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
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