Skip to content

DynVarFixerAlg Update, master branch (2022.06.01.)

Made it possible to use xAODMaker::DynVarFixerAlg with non-xAOD::AuxContainerBase types. Since as it was discovered in ATR-25424, previously the algorithm would only work with auxiliary store types deriving from xAOD::AuxContainerBase. But that's not the only auxiliary store type that may need fixing in some circumstances. In these latest validation samples shallow copied containers needed to be fixed.

While moving to using the auxiliary stores through their SG::IConstAuxStore and SG::IAuxStoreIO interfaces, also migrated the algorithm to using StoreGate handles. So that it could potentially be used in MT jobs as well. Note though that retrieving the same objects through 2 different interfaces is pretty awkward. I tried a few different methods for doing this before landing on this MR's setup. (Where I would set up two SG::ReadHandleKeyArray-s, and would iterate over them in a single for-loop.)

Finally, I also added a simple jobO to the package that I used for testing the algorithm. (Making sure that running the algorithm on the "HLT_AntiKt4EMTopoJets_subjesISAux." auxiliary store on dataset valid1.345949.PowhegPythia8EvtGen_NNPDF30_AZNLOCTEQ6L1_VBFH125_bb.recon.AOD.e7252_e5984_s3775_r13649 would fix the auxiliary variables as it should.)

Note that this algorithm is practically only used by the derivation framework. So it's only really needed in master. But it's probably a good idea to collect this update into 22.0 as well, hence the selected label.

Merge request reports