ATLAS Offline Software
Functions | Variables
FPGATrackSimHelperFunctions Namespace Reference

Functions

def convertRegionsExpressionToArray (expression, min_value=0, max_value=1279)
 
def parse_range_or_wildcard (expr, min_value, max_value)
 

Variables

 test_cases
 
 result
 

Function Documentation

◆ convertRegionsExpressionToArray()

def FPGATrackSimHelperFunctions.convertRegionsExpressionToArray (   expression,
  min_value = 0,
  max_value = 1279 
)

Definition at line 6 of file FPGATrackSimHelperFunctions.py.

6 def convertRegionsExpressionToArray(expression, min_value=0, max_value=1279):
7  # Check if the expression is a single integer
8  if str(expression).isdigit():
9  num = int(expression)
10  if min_value <= num <= max_value:
11  return [num] # Return the single integer as a list
12  else:
13  raise ValueError(f"Invalid choise: {expression}. Number out of range [{min_value}-{max_value}].")
14 
15  # Start with all numbers within min_value to max_value
16  numbers = set(range(min_value, max_value + 1))
17 
18  include_set = set()
19  exclude_set = set()
20 
21  print(f"Initial expression: {str(expression)}")
22  if isinstance(expression, tuple) or isinstance(expression, list):
23  expression = ",".join(map(str, expression))
24 
25  parts = expression.split(",") # Handle single-element expressions
26  print(f"Parts after split: {parts}")
27  for part in parts:
28  part = part.strip()
29 
30 
31  # Exclude regions (e.g. "!5-30")
32  if part.startswith("!"):
33  exclude_set.update(parse_range_or_wildcard(part[1:], min_value, max_value))
34  else:
35  include_set.update(parse_range_or_wildcard(part, min_value, max_value))
36 
37  # Apply inclusion if non-empty; otherwise, use full range
38  result = include_set if include_set else numbers
39  result -= exclude_set # Remove exclusions
40 
41  # Ensure final result stays within valid bounds
42  result = {num for num in result if min_value <= num <= max_value}
43  return list(sorted(result)) # Always return a sorted list
44 

◆ parse_range_or_wildcard()

def FPGATrackSimHelperFunctions.parse_range_or_wildcard (   expr,
  min_value,
  max_value 
)

Definition at line 45 of file FPGATrackSimHelperFunctions.py.

45 def parse_range_or_wildcard(expr, min_value, max_value):
46  # Check for range (e.g., "5-30")
47  if "-" in expr and "*" not in expr:
48  start, end = map(int, expr.split("-"))
49  start, end = max(min_value, start), min(max_value, end) # Apply min/max limits
50  return set(range(start, end + 1))
51 
52  # Check for explicit number
53  if expr.isdigit():
54  num = int(expr)
55  return {num} if min_value <= num <= max_value else set() # Ignore if out of range
56 
57  if "eta" in expr:
58  etanum = int(expr.replace("eta",""))
59  # the lowest bits at the 32 phi regions
60  return parse_range_or_wildcard(f"{32*etanum}-{32*(etanum+1)-1}",min_value, max_value)
61 
62  # Handle wildcards
63  pattern = "^" + expr.replace("*", ".*") + "$"
64  regex = re.compile(pattern)
65 
66  return {num for num in range(min_value, max_value + 1) if regex.match(str(num))}
67 

Variable Documentation

◆ result

FPGATrackSimHelperFunctions.result

Definition at line 85 of file FPGATrackSimHelperFunctions.py.

◆ test_cases

FPGATrackSimHelperFunctions.test_cases

Definition at line 70 of file FPGATrackSimHelperFunctions.py.

DerivationFramework::TriggerMatchingUtils::sorted
std::vector< typename R::value_type > sorted(const R &r, PROJ proj={})
Helper function to create a sorted vector from an unsorted range.
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
FPGATrackSimHelperFunctions.convertRegionsExpressionToArray
def convertRegionsExpressionToArray(expression, min_value=0, max_value=1279)
Definition: FPGATrackSimHelperFunctions.py:6
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:26
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
str
Definition: BTagTrackIpAccessor.cxx:11
FPGATrackSimHelperFunctions.parse_range_or_wildcard
def parse_range_or_wildcard(expr, min_value, max_value)
Definition: FPGATrackSimHelperFunctions.py:45