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

Public Member Functions

def __init__ (self, name, metadata, data, masterGroup, suffix)
 
def export (self, exportDict)
 

Public Attributes

 name
 
 chainName
 
 passWeighted
 
 passWeightedErr
 
 passRaw
 
 passExpressWeighted
 
 passExpressWeightedErr
 
 passUniqueWeighted
 
 passUniqueWeightedErr
 
 passMasterWeighted
 
 activeRaw
 
 activeWeighted
 
 activeWeightedErr
 
 rateDenominator
 
 rate
 
 rateErr
 
 efficiency
 
 efficiencyErr
 
 rateExpress
 
 rateExpressErr
 
 prescale
 
 lower
 
 expressPrescale
 
 rateUnique
 
 rateUniqueErr
 
 masterRate
 
 uniqueFraction
 

Detailed Description

Definition at line 24 of file RatesTrigger.py.

Constructor & Destructor Documentation

◆ __init__()

def python.RatesTrigger.RatesTrigger.__init__ (   self,
  name,
  metadata,
  data,
  masterGroup,
  suffix 
)

Definition at line 25 of file RatesTrigger.py.

25  def __init__(self, name, metadata, data, masterGroup, suffix):
26  self.name = name
27  self.chainName = self.name.removesuffix(suffix)
28  # Total weighted events passing the trigger
29  self.passWeighted = data.GetBinContent(RatesBins.PASS_WEIGHTED_OR_BIN.value)
30  self.passWeightedErr = data.GetBinError(RatesBins.PASS_WEIGHTED_OR_BIN.value)
31 
32  # Total un-weighted events passing the trigger
33  self.passRaw = data.GetBinContent(RatesBins.PASS_RAW_BIN.value)
34 
35  # Total weighted events passing the trigger, using the express prescale
36  self.passExpressWeighted = data.GetBinContent(RatesBins.EXPRESS_BIN.value)
37  self.passExpressWeightedErr = data.GetBinError(RatesBins.EXPRESS_BIN.value)
38 
39  # Total weighted events passing a full hypothetical menu which *excluded* this trigger
40  self.passUniqueWeighted = data.GetBinContent(RatesBins.UNIQUE_BIN.value)
41  self.passUniqueWeightedErr = data.GetBinError(RatesBins.UNIQUE_BIN.value)
42 
43  # Total weighted events passing the full menu (full L1 for L1 chains, full HLT for HLT chains)
44  self.passMasterWeighted = masterGroup.GetBinContent(RatesBins.PASS_WEIGHTED_OR_BIN.value)
45 
46  # Total un-weighted number of events in which the trigger was active (always active if L1)
47  self.activeRaw = data.GetBinContent(RatesBins.ACTIVE_RAW_BIN.value)
48 
49  # Total weighted number of events in which the trigger was active
50  self.activeWeighted = data.GetBinContent(RatesBins.ACTIVE_WEIGHTED_BIN.value)
51  self.activeWeightedErr = data.GetBinError(RatesBins.ACTIVE_WEIGHTED_BIN.value)
52 
53  # Wall-time in seconds. No error on this.
54  self.rateDenominator = metadata['normalisation'+suffix]
55  if not self.rateDenominator:
56  log.error("Normalisation factor not found in the input ntuple! Check if it's not corrupted")
57  raise ValueError
58 
59  # Trigger's rate is total weighted passing events normalised to wall-time
60  self.rate = self.passWeighted / self.rateDenominator
61  self.rateErr = self.passWeightedErr / self.rateDenominator
62 
63  # Trigger's efficiency is the fraction of active events which are passed. Error propagated.
64  self.efficiency = self.passWeighted / self.activeWeighted if self.activeWeighted > 0.0 else 0.0
65  self.efficiencyErr = 0
66  if self.passWeighted != 0 and self.activeWeighted != 0:
67  fracErr = math.sqrt( math.pow(self.passWeightedErr/self.passWeighted,2) + math.pow(self.activeWeightedErr/self.activeWeighted,2) )
68  self.efficiencyErr = self.efficiency * fracErr
69 
70  # Rate using express prescales
71  self.rateExpress = self.passExpressWeighted / self.rateDenominator
72  self.rateExpressErr = self.passExpressWeightedErr / self.rateDenominator
73 
74  # Some menu-derived metadata
75  prescales = metadata['prescales']
76 
77  lowers = metadata['lowers']
78  express = metadata['express']
79 
80  self.prescale = prescales.get(self.chainName,1)
81  self.lower = lowers.get(self.chainName)
82  self.expressPrescale = express.get(self.chainName)
83 
84  # Unique rate requires the subtraction of the (all minus this trigger) total from the (all triggers) total
85  # The error is taken as a fractional error on the main rate calc
86  # Disabled items should have unique rate = 0
87  if self.prescale != "Multiple" and float(self.prescale) <= 0:
88  self.rateUnique = 0
89  self.rateUniqueErr = 0
90  else:
91  self.rateUnique = (self.passMasterWeighted - self.passUniqueWeighted) / self.rateDenominator
92  self.rateUniqueErr = 0
93  if self.passWeighted != 0:
94  self.rateUniqueErr = (self.passWeightedErr / self.passWeighted) * self.rateUnique
95 
96  # The total rate of all triggers
97  self.masterRate = self.passMasterWeighted / self.rateDenominator
98 
99  # What fraction of the total rate is unique to this trigger
100  self.uniqueFraction = 0 if self.masterRate == 0 else self.rateUnique / self.masterRate
101 
102 

Member Function Documentation

◆ export()

def python.RatesTrigger.RatesTrigger.export (   self,
  exportDict 
)

Definition at line 103 of file RatesTrigger.py.

103  def export(self, exportDict):
104  myDict = {}
105  myDict['express_stream'] = self.rateExpress
106  myDict['chain_prescale'] = self.prescale
107  myDict['lower_chain_name'] = self.lower
108  myDict['evts_passed'] = self.passRaw
109  myDict['evts_passed_weighted'] = self.passWeighted
110  myDict['efficiency'] = self.efficiency
111  myDict['efficiency_err'] = self.efficiencyErr
112  myDict['rate'] = self.rate
113  myDict['rate_err'] = self.rateErr
114  myDict['unique_fraction'] = self.uniqueFraction
115  myDict['unique_rate'] = self.rateUnique
116  exportDict[self.name] = myDict

Member Data Documentation

◆ activeRaw

python.RatesTrigger.RatesTrigger.activeRaw

Definition at line 47 of file RatesTrigger.py.

◆ activeWeighted

python.RatesTrigger.RatesTrigger.activeWeighted

Definition at line 50 of file RatesTrigger.py.

◆ activeWeightedErr

python.RatesTrigger.RatesTrigger.activeWeightedErr

Definition at line 51 of file RatesTrigger.py.

◆ chainName

python.RatesTrigger.RatesTrigger.chainName

Definition at line 27 of file RatesTrigger.py.

◆ efficiency

python.RatesTrigger.RatesTrigger.efficiency

Definition at line 64 of file RatesTrigger.py.

◆ efficiencyErr

python.RatesTrigger.RatesTrigger.efficiencyErr

Definition at line 65 of file RatesTrigger.py.

◆ expressPrescale

python.RatesTrigger.RatesTrigger.expressPrescale

Definition at line 82 of file RatesTrigger.py.

◆ lower

python.RatesTrigger.RatesTrigger.lower

Definition at line 81 of file RatesTrigger.py.

◆ masterRate

python.RatesTrigger.RatesTrigger.masterRate

Definition at line 97 of file RatesTrigger.py.

◆ name

python.RatesTrigger.RatesTrigger.name

Definition at line 26 of file RatesTrigger.py.

◆ passExpressWeighted

python.RatesTrigger.RatesTrigger.passExpressWeighted

Definition at line 36 of file RatesTrigger.py.

◆ passExpressWeightedErr

python.RatesTrigger.RatesTrigger.passExpressWeightedErr

Definition at line 37 of file RatesTrigger.py.

◆ passMasterWeighted

python.RatesTrigger.RatesTrigger.passMasterWeighted

Definition at line 44 of file RatesTrigger.py.

◆ passRaw

python.RatesTrigger.RatesTrigger.passRaw

Definition at line 33 of file RatesTrigger.py.

◆ passUniqueWeighted

python.RatesTrigger.RatesTrigger.passUniqueWeighted

Definition at line 40 of file RatesTrigger.py.

◆ passUniqueWeightedErr

python.RatesTrigger.RatesTrigger.passUniqueWeightedErr

Definition at line 41 of file RatesTrigger.py.

◆ passWeighted

python.RatesTrigger.RatesTrigger.passWeighted

Definition at line 29 of file RatesTrigger.py.

◆ passWeightedErr

python.RatesTrigger.RatesTrigger.passWeightedErr

Definition at line 30 of file RatesTrigger.py.

◆ prescale

python.RatesTrigger.RatesTrigger.prescale

Definition at line 80 of file RatesTrigger.py.

◆ rate

python.RatesTrigger.RatesTrigger.rate

Definition at line 60 of file RatesTrigger.py.

◆ rateDenominator

python.RatesTrigger.RatesTrigger.rateDenominator

Definition at line 54 of file RatesTrigger.py.

◆ rateErr

python.RatesTrigger.RatesTrigger.rateErr

Definition at line 61 of file RatesTrigger.py.

◆ rateExpress

python.RatesTrigger.RatesTrigger.rateExpress

Definition at line 71 of file RatesTrigger.py.

◆ rateExpressErr

python.RatesTrigger.RatesTrigger.rateExpressErr

Definition at line 72 of file RatesTrigger.py.

◆ rateUnique

python.RatesTrigger.RatesTrigger.rateUnique

Definition at line 88 of file RatesTrigger.py.

◆ rateUniqueErr

python.RatesTrigger.RatesTrigger.rateUniqueErr

Definition at line 89 of file RatesTrigger.py.

◆ uniqueFraction

python.RatesTrigger.RatesTrigger.uniqueFraction

Definition at line 100 of file RatesTrigger.py.


The documentation for this class was generated from the following file:
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
python.LArMinBiasAlgConfig.float
float
Definition: LArMinBiasAlgConfig.py:65