diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx index 3de56dd79279082f93331be473b71eb8fb74053f..1c0ac888ef8474501813ee17c3d0ba0a2b67fefd 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx @@ -12,6 +12,7 @@ #include "AthenaKernel/StorableConversions.h" #include "AthContainersInterfaces/IAuxStoreIO.h" #include "AthContainers/AuxTypeRegistry.h" +#include "AthContainers/debug.h" #include "xAODCore/AuxContainerBase.h" #include "TrigSerializeResult/StringSerializer.h" @@ -103,16 +104,18 @@ StatusCode TriggerEDMSerialiserTool::fillPayload( const void* data, size_t sz, s StatusCode TriggerEDMSerialiserTool::fillDynAux( const Address& address, DataObject* dObj, std::vector<uint32_t>& buffer ) const { // TODO, check if we can cache this informion after it is filled once - + ATH_MSG_DEBUG("About to start streaming aux data of " << address.key ); DataBucketBase* dObjAux = dynamic_cast<DataBucketBase*>(dObj); ATH_CHECK( dObjAux != nullptr ); const xAOD::AuxContainerBase* auxStore = dObjAux->template cast<xAOD::AuxContainerBase> (nullptr, true); if ( auxStore == nullptr ) { - ATH_MSG_DEBUG( "Can't obtain AuxStoreIO of " << address.key << " no dynamic variables presumably" ); + ATH_MSG_DEBUG( "Can't obtain AuxContainerBase of " << address.key << " no dynamic variables presumably" ); return StatusCode::SUCCESS; } - + ATH_MSG_DEBUG( "dump aux store" ); + SGdebug::dump_aux_vars( *auxStore ); + const SG::auxid_set_t& selected = address.sel.getSelectedAuxIDs( auxStore->getDynamicAuxIDs() ); if ( selected.empty() ) { @@ -136,7 +139,7 @@ StatusCode TriggerEDMSerialiserTool::fillDynAux( const Address& address, DataObj ATH_MSG_DEBUG( "CLID " << clid ); RootType classDesc = RootType::ByName( typeName ); - size_t sz=0; + const void* rawptr = auxStore->getData( auxVarID ); ATH_CHECK( rawptr != nullptr ); @@ -148,8 +151,11 @@ StatusCode TriggerEDMSerialiserTool::fillDynAux( const Address& address, DataObj ATH_MSG_DEBUG(" v: " << v ); } } - + + size_t sz=0; void* mem = m_serializerSvc->serialize( rawptr, classDesc, sz ); + + if ( mem == nullptr or sz == 0 ) { ATH_MSG_ERROR( "Serialisation of " << address.type <<"#" << address.key << "."<< name << " unsuccessful" ); diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py b/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py index 93abab10fc0216c3412e5d72298f47c184ce4c02..eb99c60b98f5d38a8a8a87038cb923624be6aa72 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py @@ -351,9 +351,9 @@ serialiser = TriggerEDMSerialiserTool(name="Serialiser", OutputLevel=VERBOSE) serialiser.CollectionsToSerialize = [ "xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions", "xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux.", "xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters", - "xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux.eta", + "xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux.RoIword.clusterQuality.e233.e237.e277.e2tsts1.ehad1.emaxs1.energy.energySample.et.eta.eta1.fracs1.nCells.phi.rawEnergy.rawEnergySample.rawEt.rawEta.rawPhi.viewIndex.weta2.wstot", "xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex", - "xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux.eta.phi.rawEnergy.rawEt.rawEta.nCells.energy.et.e237.e277.fracs1.weta2.ehad1.e232.wstot" ] + "xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux.pt.eta.phi.rawEnergy.rawEt.rawEta.nCells.energy.et.e237.e277.fracs1.weta2.ehad1.e232.wstot" ] #"xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux." ] stmaker = StreamTagMakerTool()