ATLAS Offline Software
Public Member Functions | Public Attributes | Private Member Functions | List of all members
python.TriggerAPI.TriggerInfo.TriggerInfo Class Reference
Collaboration diagram for python.TriggerAPI.TriggerInfo.TriggerInfo:

Public Member Functions

def __init__ (self, period=0, customGRL=None, release=None, flags=None)
 
def setRunRange (self, start=0, end=999999)
 
def __str__ (self)
 
def toJSON (self)
 
def merge (cls, listofTI)
 
def testCustomGRL (cls, grl)
 
def reparse (self)
 

Public Attributes

 triggerChains
 
 period
 
 totalLB
 
 totalLBByRun
 

Private Member Functions

def _getUnprescaled (self, triggerType, additionalTriggerType, matchPattern, livefraction=1.0)
 
def _getLowestUnprescaled (self, triggerType, additionalTriggerType, matchPattern, livefraction=1.0)
 
def _getAllHLT (self, triggerType, additionalTriggerType, matchPattern, livefraction)
 
def _getActive (self, triggerType, additionalTriggerType, matchPattern, livefraction)
 
def _getInactive (self, triggerType, additionalTriggerType, matchPattern, livefraction)
 
def _checkPeriodConsistency (self, triggerType, additionalTriggerType, matchPattern)
 

Detailed Description

Object containing all the HLT information related to a given period.
    Stores a list of TriggerChain objects and the functions to skim them

Definition at line 13 of file TriggerInfo.py.

Constructor & Destructor Documentation

◆ __init__()

def python.TriggerAPI.TriggerInfo.TriggerInfo.__init__ (   self,
  period = 0,
  customGRL = None,
  release = None,
  flags = None 
)

Definition at line 17 of file TriggerInfo.py.

17  def __init__(self,period=0, customGRL=None, release=None, flags=None):
18  self.triggerChains = []
19  self.period = period
20  self.totalLB = 0
21  self.totalLBByRun = {}
22 
23  if not period and not customGRL: return
24  from .TriggerDataAccess import getHLTlist
25  HLTlist, self.totalLB, self.totalLBByRun = getHLTlist(period, customGRL, release, flags)
26  for hlt, l1, livefraction, activeLB, hasRerun, activeLBByRun in HLTlist:
27  self.triggerChains.append( TriggerChain(hlt, l1, livefraction, activeLB, hasRerun, activeLBByRun))
28 

Member Function Documentation

◆ __str__()

def python.TriggerAPI.TriggerInfo.TriggerInfo.__str__ (   self)

Definition at line 41 of file TriggerInfo.py.

41  def __str__(self):
42  return f"<TriggerMenuMT.TriggerAPI.TriggerInfo.TriggerInfo object with {len(self.triggerChains)} triggerChains, period={self.period}, totalLB={self.totalLB}>"
43 

◆ _checkPeriodConsistency()

def python.TriggerAPI.TriggerInfo.TriggerInfo._checkPeriodConsistency (   self,
  triggerType,
  additionalTriggerType,
  matchPattern 
)
private

Definition at line 110 of file TriggerInfo.py.

110  def _checkPeriodConsistency(self,triggerType, additionalTriggerType, matchPattern):
111  inconsistent = set()
112  for i in range(len(self.triggerChains)):
113  probe1 = self.triggerChains[i]
114  if not (probe1.passType(triggerType, additionalTriggerType) and re.search(matchPattern, probe1.name)): continue
115  for j in range(i+1,len(self.triggerChains)):
116  probe2 = self.triggerChains[j]
117  if not (probe2.passType(triggerType, additionalTriggerType) and re.search(matchPattern, probe2.name)): continue
118  if probe1.isUnprescaled() and not probe2.isUnprescaled() and probe1.isLowerThan(probe2,self.period)==1:
119  log.error(f"Found {probe2.name} that is tighter than Primary {probe1.name}")
120  inconsistent.add(probe2.name)
121  if probe2.isUnprescaled() and not probe1.isUnprescaled() and probe2.isLowerThan(probe1,self.period)==1:
122  log.error(f"Found {probe1.name} that is tighter than Primary {probe2.name}")
123  inconsistent.add(probe1.name)
124 
125  return inconsistent
126 
127 

◆ _getActive()

def python.TriggerAPI.TriggerInfo.TriggerInfo._getActive (   self,
  triggerType,
  additionalTriggerType,
  matchPattern,
  livefraction 
)
private

Definition at line 105 of file TriggerInfo.py.

105  def _getActive(self,triggerType, additionalTriggerType, matchPattern, livefraction):
106  return [x.name for x in self.triggerChains if x.isActive(livefraction) and x.passType(triggerType, additionalTriggerType) and re.search(matchPattern, x.name)]

◆ _getAllHLT()

def python.TriggerAPI.TriggerInfo.TriggerInfo._getAllHLT (   self,
  triggerType,
  additionalTriggerType,
  matchPattern,
  livefraction 
)
private

Definition at line 102 of file TriggerInfo.py.

102  def _getAllHLT(self,triggerType, additionalTriggerType, matchPattern, livefraction):
103  return {x.name: x.livefraction for x in self.triggerChains if x.passType(triggerType, additionalTriggerType) and re.search(matchPattern, x.name) and x.isUnprescaled(livefraction)}
104 

◆ _getInactive()

def python.TriggerAPI.TriggerInfo.TriggerInfo._getInactive (   self,
  triggerType,
  additionalTriggerType,
  matchPattern,
  livefraction 
)
private

Definition at line 107 of file TriggerInfo.py.

107  def _getInactive(self,triggerType, additionalTriggerType, matchPattern, livefraction):
108  return [x.name for x in self.triggerChains if x.isInactive(livefraction) and x.passType(triggerType, additionalTriggerType) and re.search(matchPattern, x.name)]
109 

◆ _getLowestUnprescaled()

def python.TriggerAPI.TriggerInfo.TriggerInfo._getLowestUnprescaled (   self,
  triggerType,
  additionalTriggerType,
  matchPattern,
  livefraction = 1.0 
)
private

Definition at line 82 of file TriggerInfo.py.

82  def _getLowestUnprescaled(self,triggerType, additionalTriggerType, matchPattern, livefraction=1.0):
83  chainList = [ x for x in self.triggerChains if x.isUnprescaled(livefraction) and x.passType(triggerType, additionalTriggerType) and re.search(matchPattern, x.name)]
84  typeMap = {}
85  for chain in chainList:
86  if chain.triggerType not in typeMap:
87  typeMap[chain.triggerType] = [chain]
88  continue
89  append = False
90  for other in typeMap[chain.triggerType][:]:
91  comp = chain.isLowerThan(other,self.period)
92  if comp == 0:
93  append = False
94  break
95  append = True
96  if comp == 1: typeMap[chain.triggerType].remove(other)
97  if append:
98  typeMap[chain.triggerType].append(chain)
99  return [x.name for t in typeMap.values() for x in t ]
100 
101 

◆ _getUnprescaled()

def python.TriggerAPI.TriggerInfo.TriggerInfo._getUnprescaled (   self,
  triggerType,
  additionalTriggerType,
  matchPattern,
  livefraction = 1.0 
)
private

Definition at line 79 of file TriggerInfo.py.

79  def _getUnprescaled(self,triggerType, additionalTriggerType, matchPattern, livefraction=1.0):
80  return [x.name for x in self.triggerChains if x.isUnprescaled(livefraction) and x.passType(triggerType, additionalTriggerType) and re.search(matchPattern, x.name)]
81 

◆ merge()

def python.TriggerAPI.TriggerInfo.TriggerInfo.merge (   cls,
  listofTI 
)

Definition at line 48 of file TriggerInfo.py.

48  def merge(cls,listofTI):
49  from copy import deepcopy
50  mergedTI = TriggerInfo()
51  mergedHLTmap = {}
52  for ti in listofTI:
53  mergedTI.period |= ti.period
54  mergedTI.totalLB += ti.totalLB
55  for run,lb in ti.totalLBByRun.items():
56  if run not in mergedTI.totalLBByRun: mergedTI.totalLBByRun[run] = 0
57  mergedTI.totalLBByRun[run] += lb
58  for tc in ti.triggerChains:
59  if tc.name not in mergedHLTmap: mergedHLTmap[tc.name] = deepcopy(tc)
60  else: mergedHLTmap[tc.name].activeLB += tc.activeLB
61  # copy activeLBByRun values too
62  for run,lb in tc.activeLBByRun.items():
63  if run not in mergedHLTmap[tc.name].activeLBByRun: mergedHLTmap[tc.name].activeLBByRun = 0
64  mergedHLTmap[tc.name].activeLBByRun += lb
65  for tc in mergedHLTmap.values():
66  tc.livefraction = tc.activeLB/float(mergedTI.totalLB)
67  mergedTI.triggerChains = list(mergedHLTmap.values())
68  return mergedTI
69 
70 

◆ reparse()

def python.TriggerAPI.TriggerInfo.TriggerInfo.reparse (   self)

Definition at line 76 of file TriggerInfo.py.

76  def reparse(self):
77  self.triggerChains = [ TriggerChain(t.name, t.l1seed, t.livefraction, t.activeLB) for t in self.triggerChains ]
78 

◆ setRunRange()

def python.TriggerAPI.TriggerInfo.TriggerInfo.setRunRange (   self,
  start = 0,
  end = 999999 
)

Definition at line 29 of file TriggerInfo.py.

29  def setRunRange(self,start=0,end=999999):
30  if not self.totalLBByRun:
31  # empty dict means either loaded from trigger menu or from old json
32  totalLB = self.totalLB
33  else:
34  totalLB = 0
35  for run,efflb in self.totalLBByRun.items():
36  if int(run)<int(start) or int(run)>int(end): continue
37  totalLB += efflb
38  for tc in self.triggerChains:
39  tc.setRunRange(start,end,totalLB)
40 

◆ testCustomGRL()

def python.TriggerAPI.TriggerInfo.TriggerInfo.testCustomGRL (   cls,
  grl 
)

Definition at line 72 of file TriggerInfo.py.

72  def testCustomGRL(cls, grl):
73  from TriggerMenuMT.TriggerAPI.TriggerPeriodData import TriggerPeriodData
74  return TriggerPeriodData.testCustomGRL(grl)
75 

◆ toJSON()

def python.TriggerAPI.TriggerInfo.TriggerInfo.toJSON (   self)

Definition at line 44 of file TriggerInfo.py.

44  def toJSON(self):
45  return dict(period= TriggerPeriod.toName(self.period), totalLB=self.totalLB,triggerChains=self.triggerChains,totalLBByRun=self.totalLBByRun)
46 

Member Data Documentation

◆ period

python.TriggerAPI.TriggerInfo.TriggerInfo.period

Definition at line 19 of file TriggerInfo.py.

◆ totalLB

python.TriggerAPI.TriggerInfo.TriggerInfo.totalLB

Definition at line 20 of file TriggerInfo.py.

◆ totalLBByRun

python.TriggerAPI.TriggerInfo.TriggerInfo.totalLBByRun

Definition at line 21 of file TriggerInfo.py.

◆ triggerChains

python.TriggerAPI.TriggerInfo.TriggerInfo.triggerChains

Definition at line 18 of file TriggerInfo.py.


The documentation for this class was generated from the following file:
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
PixelModuleFeMask_create_db.remove
string remove
Definition: PixelModuleFeMask_create_db.py:83
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
TriggerInfo
This class contains trigger related information.
Definition: TriggerInfo.h:77
TrigJetMonitorAlgorithm.items
items
Definition: TrigJetMonitorAlgorithm.py:71
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
python.utility.LHE.merge
def merge(input_file_pattern, output_file)
Merge many input LHE files into a single output file.
Definition: LHE.py:29
python.TriggerAPI.TriggerDataAccess.getHLTlist
def getHLTlist(period, customGRL, release, flags=None)
Definition: TriggerDataAccess.py:393
python.LArMinBiasAlgConfig.float
float
Definition: LArMinBiasAlgConfig.py:65