ATLAS Offline Software
Loading...
Searching...
No Matches
python.RatesTrigger.RatesTrigger Class Reference
Collaboration diagram for python.RatesTrigger.RatesTrigger:

Public Member Functions

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

Public Attributes

 name = name
 chainName = self.name.removesuffix(suffix)
 passWeighted = data.GetBinContent(RatesBins.PASS_WEIGHTED_OR_BIN.value)
 passWeightedErr = data.GetBinError(RatesBins.PASS_WEIGHTED_OR_BIN.value)
 passRaw = data.GetBinContent(RatesBins.PASS_RAW_BIN.value)
 passExpressWeighted = data.GetBinContent(RatesBins.EXPRESS_BIN.value)
 passExpressWeightedErr = data.GetBinError(RatesBins.EXPRESS_BIN.value)
 passUniqueWeighted = data.GetBinContent(RatesBins.UNIQUE_BIN.value)
 passUniqueWeightedErr = data.GetBinError(RatesBins.UNIQUE_BIN.value)
 passMasterWeighted = masterGroup.GetBinContent(RatesBins.PASS_WEIGHTED_OR_BIN.value)
 activeRaw = data.GetBinContent(RatesBins.ACTIVE_RAW_BIN.value)
 activeWeighted = data.GetBinContent(RatesBins.ACTIVE_WEIGHTED_BIN.value)
 activeWeightedErr = data.GetBinError(RatesBins.ACTIVE_WEIGHTED_BIN.value)
 rateDenominator = metadata['normalisation'+suffix]
 rate = self.passWeighted / self.rateDenominator
 rateErr = self.passWeightedErr / self.rateDenominator
float efficiency = self.passWeighted / self.activeWeighted if self.activeWeighted > 0.0 else 0.0
int efficiencyErr = 0
 rateExpress = self.passExpressWeighted / self.rateDenominator
 rateExpressErr = self.passExpressWeightedErr / self.rateDenominator
 prescale = prescales.get(self.chainName,1)
 lower = lowers.get(self.chainName)
 expressPrescale = express.get(self.chainName)
int rateUnique = 0
int rateUniqueErr = 0
 masterRate = self.passMasterWeighted / self.rateDenominator
int uniqueFraction = 0 else self.rateUnique / self.masterRate

Detailed Description

Definition at line 24 of file RatesTrigger.py.

Constructor & Destructor Documentation

◆ __init__()

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()

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 = data.GetBinContent(RatesBins.ACTIVE_RAW_BIN.value)

Definition at line 47 of file RatesTrigger.py.

◆ activeWeighted

python.RatesTrigger.RatesTrigger.activeWeighted = data.GetBinContent(RatesBins.ACTIVE_WEIGHTED_BIN.value)

Definition at line 50 of file RatesTrigger.py.

◆ activeWeightedErr

python.RatesTrigger.RatesTrigger.activeWeightedErr = data.GetBinError(RatesBins.ACTIVE_WEIGHTED_BIN.value)

Definition at line 51 of file RatesTrigger.py.

◆ chainName

python.RatesTrigger.RatesTrigger.chainName = self.name.removesuffix(suffix)

Definition at line 27 of file RatesTrigger.py.

◆ efficiency

float python.RatesTrigger.RatesTrigger.efficiency = self.passWeighted / self.activeWeighted if self.activeWeighted > 0.0 else 0.0

Definition at line 64 of file RatesTrigger.py.

◆ efficiencyErr

int python.RatesTrigger.RatesTrigger.efficiencyErr = 0

Definition at line 65 of file RatesTrigger.py.

◆ expressPrescale

python.RatesTrigger.RatesTrigger.expressPrescale = express.get(self.chainName)

Definition at line 82 of file RatesTrigger.py.

◆ lower

python.RatesTrigger.RatesTrigger.lower = lowers.get(self.chainName)

Definition at line 81 of file RatesTrigger.py.

◆ masterRate

python.RatesTrigger.RatesTrigger.masterRate = self.passMasterWeighted / self.rateDenominator

Definition at line 97 of file RatesTrigger.py.

◆ name

python.RatesTrigger.RatesTrigger.name = name

Definition at line 26 of file RatesTrigger.py.

◆ passExpressWeighted

python.RatesTrigger.RatesTrigger.passExpressWeighted = data.GetBinContent(RatesBins.EXPRESS_BIN.value)

Definition at line 36 of file RatesTrigger.py.

◆ passExpressWeightedErr

python.RatesTrigger.RatesTrigger.passExpressWeightedErr = data.GetBinError(RatesBins.EXPRESS_BIN.value)

Definition at line 37 of file RatesTrigger.py.

◆ passMasterWeighted

python.RatesTrigger.RatesTrigger.passMasterWeighted = masterGroup.GetBinContent(RatesBins.PASS_WEIGHTED_OR_BIN.value)

Definition at line 44 of file RatesTrigger.py.

◆ passRaw

python.RatesTrigger.RatesTrigger.passRaw = data.GetBinContent(RatesBins.PASS_RAW_BIN.value)

Definition at line 33 of file RatesTrigger.py.

◆ passUniqueWeighted

python.RatesTrigger.RatesTrigger.passUniqueWeighted = data.GetBinContent(RatesBins.UNIQUE_BIN.value)

Definition at line 40 of file RatesTrigger.py.

◆ passUniqueWeightedErr

python.RatesTrigger.RatesTrigger.passUniqueWeightedErr = data.GetBinError(RatesBins.UNIQUE_BIN.value)

Definition at line 41 of file RatesTrigger.py.

◆ passWeighted

python.RatesTrigger.RatesTrigger.passWeighted = data.GetBinContent(RatesBins.PASS_WEIGHTED_OR_BIN.value)

Definition at line 29 of file RatesTrigger.py.

◆ passWeightedErr

python.RatesTrigger.RatesTrigger.passWeightedErr = data.GetBinError(RatesBins.PASS_WEIGHTED_OR_BIN.value)

Definition at line 30 of file RatesTrigger.py.

◆ prescale

python.RatesTrigger.RatesTrigger.prescale = prescales.get(self.chainName,1)

Definition at line 80 of file RatesTrigger.py.

◆ rate

python.RatesTrigger.RatesTrigger.rate = self.passWeighted / self.rateDenominator

Definition at line 60 of file RatesTrigger.py.

◆ rateDenominator

python.RatesTrigger.RatesTrigger.rateDenominator = metadata['normalisation'+suffix]

Definition at line 54 of file RatesTrigger.py.

◆ rateErr

python.RatesTrigger.RatesTrigger.rateErr = self.passWeightedErr / self.rateDenominator

Definition at line 61 of file RatesTrigger.py.

◆ rateExpress

python.RatesTrigger.RatesTrigger.rateExpress = self.passExpressWeighted / self.rateDenominator

Definition at line 71 of file RatesTrigger.py.

◆ rateExpressErr

python.RatesTrigger.RatesTrigger.rateExpressErr = self.passExpressWeightedErr / self.rateDenominator

Definition at line 72 of file RatesTrigger.py.

◆ rateUnique

int python.RatesTrigger.RatesTrigger.rateUnique = 0

Definition at line 88 of file RatesTrigger.py.

◆ rateUniqueErr

int python.RatesTrigger.RatesTrigger.rateUniqueErr = 0

Definition at line 89 of file RatesTrigger.py.

◆ uniqueFraction

int python.RatesTrigger.RatesTrigger.uniqueFraction = 0 else self.rateUnique / self.masterRate

Definition at line 100 of file RatesTrigger.py.


The documentation for this class was generated from the following file: