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