Add EnhancedBias Weight Computing Algorithm
The logic from TrigNtEBWeightTool was migrated to EnhancedBiasWeightCompAlg
offline algorithm. The online version is not possible due to the fact that L1Prescales
are not available online.
The algorithm was included in AthAlgSeq
.
First, during start, a list of all available EB chains is retrieved as well as their L1 items from HLTMenu
. During execution, HLTPrescales
are read via ReadHandleCondHandle
for chains that passed. The weight is calculated:
for chain in passedChains:
totalPrescale = HLTPrescale * L1Prescale
weight *= 1. - ( 1. / totalPrescale )
weight = 1. / (1. - weight)
If a chain has multiple L1 items L1Prescale
is a product of all items' prescales. If a chain was noPS
prescale value = 1.
If the event was triggered by a L1 random chain (HLT_noalg_eb_L1RD_*
) flag isUnbiased
is set to true.
The weight (float
) and flag (uint8_t
) are saved as EDM object as HLT_EBWeight.EBWeight.EBUnbiased
.
Example of EDM from test_trigAna_RDOtoAOD_v1Dev_build
:
AOD.pool.root.checkFile
================================================================================
Mem Size Disk Size Size/Evt MissZip/Mem items (X) Container Name (X=Tree|Branch)
================================================================================
0.990 kb 0.225 kb 0.011 kb 0.000 20 (B) HLT_EBWeight
AOD.pool.root.checkxAOD
Mem Size Disk Size Size/Evt Compression Items Container Name (Type)
--------------------------------------------------------------------------------
4.031 kb 0.504 kb 0.025 kb 8.000 20 HLT_EBWeight (DataVector<xAOD::TrigComposite_v1>) [Trig]
Related to: ATR-22175