Commit e11ad432 authored by Frank Winklmeier's avatar Frank Winklmeier
Browse files

TrigBSExtraction: simplify configuration and code cleanup

Merge the `EFResultKey` and `HLTResultKey` properties as they serve the
same purpose (final result of EF/HLT processing).

Fix a bug in the `equalize` option. This should only be set to `true` if
reading data with an L2 and EF result (Run-1 data). In all other cases
this is not necessary (but also did not cause any harm as the L2
navigation would have been empty).

Also delete commented code and unused ResultKey properties in
`TrigBStoxAODTool`.
parent 7f818e8d
......@@ -38,9 +38,8 @@ private:
ToolHandle<HLT::Navigation> m_navTool{this, "Navigation", "HLT::Navigation/Navigation",
"Navigation tool for EF/HLT result"};
Gaudi::Property<std::string> m_l2ResultKey{this, "L2ResultKey", "HLTResult_L2", "key for L2 result (Run-1)"};
Gaudi::Property<std::string> m_efResultKey{this, "EFResultKey", "HLTResult_EF", "key for EF result (Run-1)"};
Gaudi::Property<std::string> m_hltResultKey{this, "HLTResultKey", "HLTResult_HLT", "key for HLT result"};
Gaudi::Property<std::string> m_l2ResultKey{this, "L2ResultKey", "", "key for L2 result (Run-1)"};
Gaudi::Property<std::string> m_hltResultKey{this, "HLTResultKey", "HLTResult_HLT", "key for EF/HLT result"};
StringArrayProperty m_dataScoutingKeys{this, "DSResultKeys", {}, "keys for DataScouting HLT results"};
};
......
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
#ifndef TRIGBSEXTRACTION_TRIGBSTOXAODTOOL_H
......@@ -21,9 +21,6 @@
#include "xAODJetCnv/IJetCnvTool.h"
// not configurable algtools
// #include "xAODTrigRingerCnv/ITrigRingerRingsCnvTool.h"
// #include "xAODTrigRingerCnv/ITrigRNNOutputCnvTool.h"
#include "xAODTrigCaloCnv/ITrigCaloClusterCnvTool.h"
#include "xAODTrigCaloCnv/ITrigEMClusterCnvTool.h"
......@@ -33,10 +30,6 @@
#include "xAODTrigBphysCnv/ITrigEFBphysContainerCnvTool.h"
#include "xAODTrigBphysCnv/ITrigL2BphysContainerCnvTool.h"
//not in devval yet
//#include "xAODTrigEgammaCnv/ITrigElectronCnvTool.h"
//#include "xAODTrigEgammaCnv/ITrigPhotonCnvTool.h"
#include "xAODTrigMissingETCnv/ITrigMissingETCnvTool.h"
#include "xAODTrigMinBiasCnv/ITrigSpacePointCountsCnvTool.h"
......@@ -88,9 +81,6 @@ public:
StatusCode findHelper( MM_CLID_IHELPER& helpers, CLID clid, std::string& label, MM_CLID_IHELPER::const_iterator& it );
std::string m_l2ResultKey; //!< key of HLTResult for L2
std::string m_efResultKey; //!< key of HLTResult for EF
std::string m_hltResultKey; //!< key of HLTResult for HLT
std::vector<std::string> m_containersToConvert;
std::vector<std::string> m_newContainers;
......@@ -107,10 +97,6 @@ public:
// xAODJetCnv
ToolHandle<xAODMaker::IJetCnvTool> m_jetCnvTool;
// xAODTrigRingerCnv (not configurable algtool)
// ToolHandle<xAODMaker::ITrigRingerRingsCnvTool> m_ringerRingsTool;
// ToolHandle<xAODMaker::ITrigRNNOutputCnvTool> m_trigRNNTool;
// xAODTrigCaloCnv
ToolHandle<xAODMaker::ITrigCaloClusterCnvTool> m_trigCaloClusterTool;
ToolHandle<xAODMaker::ITrigEMClusterCnvTool> m_emClusterTool;
......@@ -122,10 +108,6 @@ public:
ToolHandle<xAODMaker::ITrigEFBphysContainerCnvTool> m_efBphysTool;
ToolHandle<xAODMaker::ITrigL2BphysContainerCnvTool> m_l2BphysTool;
// xAODTrigEgammaCnv (not in devval yet)
// ToolHandle<xAODMaker::ITrigElectronCnvTool> m_trigElectronTool;
// ToolHandle<xAODMaker::ITrigPhotonCnvTool> m_trigPhotonTool;
// xAODTrigMissingETCnv
ToolHandle<xAODMaker::ITrigMissingETCnvTool> m_trigMetTool;
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
#ifndef TRIGBSEXTRACTION_TRIGHLTTOXAODCONVERSION_H
......@@ -26,10 +26,8 @@ namespace HLT {
class TrigHLTtoxAODConversion : public AthAlgorithm {
public:
TrigHLTtoxAODConversion(const std::string& name, ISvcLocator* pSvcLocator);
~TrigHLTtoxAODConversion();
StatusCode initialize();
StatusCode finalize();
StatusCode execute();
virtual StatusCode initialize() override;
virtual StatusCode execute() override;
private:
ToolHandle<HLT::Navigation> m_navigation; //!< handle to Navigation tools
......
......@@ -5,8 +5,9 @@
## 2009/09/09 Jiri.Masik@hep.manchester.ac.uk
################################################################################
run = 1 # set the run period to test
run = 2 # set the run period to test
edmCheck = False
doStream = False
theApp.EvtMax = 10
BSFileList = {
......@@ -44,13 +45,11 @@ extr = TrigBSExtraction(OutputLevel=DEBUG)
job += extr
if run==1:
extr.L2ResultKey = "HLTResult_L2"
extr.EFResultKey = "HLTResult_EF"
extr.HLTResultKey = ""
extr.HLTResultKey = "HLTResult_EF"
extr.NavigationForL2 = HLTNavigationOffline("NavigationForL2")
extr.NavigationForL2.ClassesFromPayloadIgnore = ["TrigPassBits#passbits"] # ATR-23411
elif run==2:
extr.L2ResultKey = ""
extr.EFResultKey = ""
extr.HLTResultKey = "HLTResult_HLT"
extr.Navigation = HLTNavigationOffline()
......@@ -81,7 +80,6 @@ if run==1: # for Run-1 we need the detector geometry and conditions
DetFlags.detdescr.ALFA_setOff()
include("RecExCond/AllDet_detDescr.py")
svcMgr.MessageSvc.verboseLimit = 0
svcMgr.MessageSvc.debugLimit = 0
svcMgr.MessageSvc.Format = "% F%40W%S%7W%R%T %0W%M"
......@@ -91,4 +89,11 @@ if edmCheck:
from TrigValAlgs.TrigValAlgsConfig import TrigEDMChecker
job += TrigEDMChecker()
if doStream:
from OutputStreamAthenaPool.CreateOutputStreams import createOutputStream
StreamESD = createOutputStream('StreamESD', 'ESD.pool.root', True)
# populate as needed for testing:
StreamESD.ItemList += ['TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection']
job += StreamESD
print(job)
......@@ -14,13 +14,16 @@ TrigBSExtraction::TrigBSExtraction(const std::string& name, ISvcLocator* pSvcLoc
StatusCode TrigBSExtraction::initialize() {
ATH_CHECK( m_navToolL2.retrieve() );
// L2 navigation tool is optional
if ( !m_l2ResultKey.empty() ) ATH_CHECK( m_navToolL2.retrieve() );
else m_navToolL2.disable();
ATH_CHECK( m_navTool.retrieve() );
// Initialize the TrigSerializeConcHelper here so that all the additional streamerinfos are read in.
// In case of DataScouting this may give problems if the DS ROBs contain containers which
// were not compiled with navigation (the container type information is then not known
// for a gigen CLID).
// for a given CLID).
ToolHandle<ITrigSerializeConvHelper> trigCnvHelper("TrigSerializeConvHelper",this);
ATH_CHECK( trigCnvHelper.retrieve() );
......@@ -30,73 +33,69 @@ StatusCode TrigBSExtraction::initialize() {
StatusCode TrigBSExtraction::execute() {
if ( !m_l2ResultKey.empty() ) {
if ( repackFeaturesToSG(*m_navToolL2, m_l2ResultKey, m_efResultKey.empty() ).isFailure() )
if ( m_navToolL2.isEnabled() ) {
if ( repackFeaturesToSG(*m_navToolL2, m_l2ResultKey, false).isFailure() )
ATH_MSG_WARNING( "failed unpacking features from BS to SG for: " << m_l2ResultKey );
}
if ( !m_efResultKey.empty() ) {
if ( repackFeaturesToSG(*m_navTool, m_efResultKey, true).isFailure() )
ATH_MSG_WARNING( "failed unpacking features from BS to SG for: " << m_efResultKey );
}
if ( !m_hltResultKey.empty() ) {
if ( repackFeaturesToSG(*m_navTool, m_hltResultKey, true).isFailure() )
// unpack and merge with L2 result in case there is one
if ( repackFeaturesToSG(*m_navTool, m_hltResultKey, m_navToolL2.isEnabled() ).isFailure() )
ATH_MSG_WARNING( "failed unpacking features from BS to SG for: " << m_hltResultKey );
}
for (const auto& ds_key : m_dataScoutingKeys.value()) {
if ( repackFeaturesToSG(*m_navTool, ds_key, true).isFailure() )
ATH_MSG_WARNING( "failed unpacking features from BS to SG for: " << ds_key );
if ( repackFeaturesToSG(*m_navTool, ds_key, false).isFailure() )
ATH_MSG_WARNING( "failed unpacking features from BS to SG for: " << ds_key );
}
m_navToolL2->reset();
if ( m_navToolL2.isEnabled() ) m_navToolL2->reset();
m_navTool->reset();
return StatusCode::SUCCESS;
}
StatusCode TrigBSExtraction::repackFeaturesToSG(HLT::Navigation& navTool,
const std::string& key, bool equalize ) {
StatusCode TrigBSExtraction::repackFeaturesToSG (HLT::Navigation& navTool,
const std::string& key, bool equalize ) {
const HLT::HLTResult * constresult(nullptr);
HLT::HLTResult * result(nullptr);
ATH_MSG_DEBUG( "Trying to deserialize content of " << key );
ATH_MSG_DEBUG( "Trying to deserialize content of '" << key << "'" );
if (evtStore()->contains<HLT::HLTResult>(key)) {
evtStore()->retrieve(constresult, key).ignore();
result = const_cast<HLT::HLTResult*>(constresult);
ATH_MSG_DEBUG("HLTResult is level="<<result->getHLTLevel() );
ATH_MSG_DEBUG("HLTResult is level=" << result->getHLTLevel() );
const std::vector<uint32_t>& navData = result->getNavigationResult();
if ( !navData.empty() ) {
ATH_MSG_DEBUG( "Navigation payload obtained from " << key << " has size " << navData.size() );
ATH_MSG_DEBUG( "Navigation payload obtained from '" << key << "' has size " << navData.size() );
navTool.deserialize( navData );
} else {
ATH_MSG_WARNING( "Navigation payload obtained from " << key << " has size 0" );
ATH_MSG_WARNING( "Navigation payload obtained from '" << key << "' has size 0" );
}
} else {
ATH_MSG_WARNING( "No HLTResult found with key " << key );
ATH_MSG_WARNING( "No HLTResult found with key '" << key << "'" );
}
if ( equalize ) {
ATH_MSG_DEBUG( "Merging navigation structures for " << key );
if ( equalize && m_navToolL2.isEnabled() ) {
ATH_MSG_DEBUG( "Merging L2 and EF navigation structures for " << key );
navTool.merge(*m_navToolL2);
navTool.prepare();
}
//change the clid and subtype index in the
//feature access helpers to the new xAOD containers (that will be converted after this call)
navTool.prepare();
// change the clid and subtype index in the feature access helpers
// to the new xAOD containers (that will be converted after this call)
std::vector< HLT::TriggerElement* > testvec;
navTool.getAll(testvec,false);
// pack navigation back to the result
// pack navigation back into the result
result->getNavigationResult().clear();
bool status = navTool.serialize(result->getNavigationResult(), result->getNavigationResultCuts());
ATH_MSG_DEBUG( "new serialized navigation has size " << result->getNavigationResult().size() );
ATH_MSG_DEBUG( "new serialized navigation has size " << result->getNavigationResult().size() );
return StatusCode(status);
}
......
// Dear emacs, this is -*- c++ -*-
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
#include "TrigBSExtraction/TrigBStoxAODTool.h"
......@@ -362,23 +362,16 @@ namespace BStoXAODHelper{
TrigBStoxAODTool::TrigBStoxAODTool(const std::string& type, const std::string& name, const IInterface* parent)
: AthAlgTool(type,name,parent),
// needs newer pkg tag
m_tauJetTool( "xAODMaker::TauJetCnvTool/TauJetCnvTool",this),
m_combMuonTool( "xAODMaker::CombinedMuonFeatureContainerCnvTool/CombinedMuonFeatureContainerCnvTool",this),
m_isoMuonTool( "xAODMaker::IsoMuonFeatureContainerCnvTool/IsoMuonFeatureContainerCnvTool",this),
m_trigMuonTool( "TrigMuonEFInfoToMuonCnvTool/TrigMuonEFInfoToMuonCnvTool",this),
m_jetCnvTool( "xAODMaker::JetCnvTool/JetCnvTool",this),
// not configurable algtool
// m_ringerRingsTool( "xAODMaker::TrigRingerRingsCnvTool/TrigRingerRingsCnvTool",this),
// m_trigRNNTool( "xAODMaker::TrigRNNOutputCnvTool/TrigRNNOutputCnvTool",this),
m_trigCaloClusterTool( "xAODMaker::TrigCaloClusterCnvTool/TrigCaloClusterCnvTool",this),
m_emClusterTool( "xAODMaker::TrigEMClusterCnvTool/TrigEMClusterCnvTool",this),
m_bjetTool( "xAODMaker::TrigBjetCnvTool/TrigBjetCnvTool",this),
m_efBphysTool( "xAODMaker::TrigEFBphysContainerCnvTool/TrigEFBphysContainerCnvTool",this),
m_l2BphysTool( "xAODMaker::TrigL2BphysContainerCnvTool/TrigL2BphysContainerCnvTool",this),
// not in devval yet
// m_trigElectronTool("xAODMaker::TrigElectronCnvTool/TrigElectronCnvTool",this),
// m_trigPhotonTool( "xAODMaker::TrigPhotonCnvTool/TrigPhotonCnvTool",this),
m_trigMetTool( "xAODMaker::TrigMissingETCnvTool/TrigMissingETCnvTool",this),
m_trigSpacePtsTool("xAODMaker::TrigSpacePointCountsCnvTool/TrigSpacePointCountsCnvTool",this),
m_trigMbtsBitsTool("xAODMaker::TrigT2MbtsBitsCnvTool/TrigT2MbtsBitsCnvTool",this),
......@@ -392,9 +385,6 @@ TrigBStoxAODTool::TrigBStoxAODTool(const std::string& type, const std::string& n
m_trigPassBitsTool( "xAODMaker::TrigPassBitsCnvTool/TrigPassBitsCnvTool", this )
{
declareInterface<ITrigBStoxAODTool>( this );
declareProperty("L2ResultKey", m_l2ResultKey = "HLTResult_L2");
declareProperty("EFResultKey", m_efResultKey = "HLTResult_EF");
declareProperty("HLTResultKey", m_hltResultKey = "HLTResult_HLT");
declareProperty("ContainersToConvert",m_containersToConvert);
declareProperty("NewContainers", m_newContainers);
......@@ -404,18 +394,12 @@ TrigBStoxAODTool::TrigBStoxAODTool(const std::string& type, const std::string& n
declareProperty("trigMuonTool", m_trigMuonTool);
declareProperty("jetCnvTool", m_jetCnvTool);
// not configurable algtools
// declareProperty("ringerRingsTool", m_ringerRingsTool);
// declareProperty("trigRNNTool", m_trigRNNTool);
declareProperty("trigCaloClusterTool", m_trigCaloClusterTool);
declareProperty("emClusterTool", m_emClusterTool);
declareProperty("bjetTool", m_bjetTool);
declareProperty("efBphysTool", m_efBphysTool);
declareProperty("l2BphysTool", m_l2BphysTool);
// not in devval yet
// declareProperty("trigElectronTool", m_trigElectronTool);
// declareProperty("trigPhotonTool", m_trigPhotonTool);
declareProperty("trigMetTool", m_trigMetTool);
declareProperty("trigSpacePtsTool", m_trigSpacePtsTool);
declareProperty("trigMbtsBitsTool", m_trigMbtsBitsTool);
......@@ -440,87 +424,6 @@ TrigBStoxAODTool::~TrigBStoxAODTool() {
}
StatusCode TrigBStoxAODTool::initialize(){
// m_helpers[ClassID_traits<IsoMuonFeatureContainer>::ID()] =
// new BStoXAODHelper::DefaultHelper<
// IsoMuonFeatureContainer,xAOD::L2IsoMuonContainer,xAODMaker::IIsoMuonFeatureContainerCnvTool>(m_isoMuonTool);
/*
m_helpers[ClassID_traits<CombinedMuonFeatureContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
CombinedMuonFeatureContainer,xAOD::L2CombinedMuonContainer,xAODMaker::ICombinedMuonFeatureContainerCnvTool>(m_combMuonTool);
m_helpers[ClassID_traits<TrigMuonEFInfoContainer>::ID()] = new BStoXAODHelper::MuonHelper(m_trigMuonTool);
m_helpers[ClassID_traits<TrigCaloClusterContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrigCaloClusterContainer,xAOD::TrigCaloClusterContainer,xAODMaker::ITrigCaloClusterCnvTool>(m_trigCaloClusterTool);
m_helpers[ClassID_traits<TrigEMClusterContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrigEMClusterContainer,xAOD::TrigEMClusterContainer,xAODMaker::ITrigEMClusterCnvTool>(m_emClusterTool);
m_helpers[ClassID_traits<TrigEFBphysContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrigEFBphysContainer,xAOD::TrigBphysContainer,xAODMaker::ITrigEFBphysContainerCnvTool>(m_efBphysTool);
m_helpers[ClassID_traits<TrigL2BphysContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrigL2BphysContainer,xAOD::TrigBphysContainer,xAODMaker::ITrigL2BphysContainerCnvTool>(m_l2BphysTool);
m_helpers[ClassID_traits<JetCollection>::ID()] =
new BStoXAODHelper::DefaultHelper<JetCollection,xAOD::JetContainer,xAODMaker::IJetCnvTool>(m_jetCnvTool);
m_helpers[ClassID_traits<TrigMissingETContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrigMissingETContainer,xAOD::TrigMissingETContainer,xAODMaker::ITrigMissingETCnvTool>(m_trigMetTool);
m_helpers[ClassID_traits<TrigSpacePointCountsCollection>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrigSpacePointCountsCollection,xAOD::TrigSpacePointCountsContainer,xAODMaker::ITrigSpacePointCountsCnvTool>(m_trigSpacePtsTool);
m_helpers[ClassID_traits<TrigT2MbtsBitsContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrigT2MbtsBitsContainer,xAOD::TrigT2MbtsBitsContainer,xAODMaker::ITrigT2MbtsBitsCnvTool>(m_trigMbtsBitsTool);
m_helpers[getCLID<TrigTrackCountsCollection>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrigTrackCountsCollection,xAOD::TrigTrackCountsContainer,xAODMaker::ITrigTrackCountsCnvTool>(m_trigTrackCtsTool);
m_helpers[ClassID_traits<TrigVertexCountsCollection>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrigVertexCountsCollection,xAOD::TrigVertexCountsContainer,xAODMaker::ITrigVertexCountsCnvTool>(m_trigVtxCtsTool);
m_helpers[ClassID_traits<TrackCollection>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrackCollection,xAOD::TrackParticleContainer,xAODMaker::ITrackCollectionCnvTool>(m_trackCollectionTool);
m_helpers[ClassID_traits<Rec::TrackParticleContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
Rec::TrackParticleContainer,xAOD::TrackParticleContainer,xAODMaker::IRecTrackParticleContainerCnvTool>(m_recTrackParticleContTool);
m_helpers[ClassID_traits<Analysis::TauJetContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
Analysis::TauJetContainer,xAOD::TauJetContainer,xAODMaker::ITauJetCnvTool>(m_tauJetTool);
m_helpers[ClassID_traits<CaloClusterContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
CaloClusterContainer,xAOD::CaloClusterContainer,xAODMaker::ICaloClusterCnvTool>(m_caloClusterTool);
m_helpers[ClassID_traits<egammaContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
egammaContainer,xAOD::ElectronContainer,xAODMaker::IElectronCnvTool>(m_electronTool);
m_helpers[ClassID_traits<egammaContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
egammaContainer,xAOD::PhotonContainer,xAODMaker::IPhotonCnvTool>(m_photonTool);
m_helpers[ClassID_traits<TrigPassBitsCollection>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrigPassBitsCollection,xAOD::TrigPassBitsContainer,xAODMaker::ITrigPassBitsCnvTool>(m_trigPassBitsTool);
m_helpers[ClassID_traits<TrigEFBjetContainer>::ID()] =
new BStoXAODHelper::DefaultHelper<
TrigEFBjetContainer,xAOD::BTaggingContainer,xAODMaker::ITrigBjetCnvTool>(m_bjetTool);
*/
m_helpers.insert( std::pair<CLID,BStoXAODHelper::DefaultHelper<
CombinedMuonFeatureContainer,
......
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
#include "TrigBSExtraction/TrigHLTtoxAODConversion.h"
......@@ -17,7 +17,6 @@ TrigHLTtoxAODConversion::TrigHLTtoxAODConversion(const std::string& name, ISvcLo
declareProperty("BStoxAOD",m_xAODTool);
}
TrigHLTtoxAODConversion::~TrigHLTtoxAODConversion() {}
StatusCode TrigHLTtoxAODConversion::initialize() {
......@@ -27,9 +26,6 @@ StatusCode TrigHLTtoxAODConversion::initialize() {
return StatusCode::SUCCESS;
}
StatusCode TrigHLTtoxAODConversion::finalize() {
return StatusCode::SUCCESS;
}
StatusCode TrigHLTtoxAODConversion::execute() {
//convert all of the present AOD containers to xAOD
......
......@@ -113,13 +113,11 @@ class ByteStreamUnpackGetterRun1or2(Configured):
"HLT::HLTResult/HLTResult_L2",
"HLT::HLTResult/HLTResult_EF" ]
extr.L2ResultKey = "HLTResult_L2"
extr.EFResultKey = "HLTResult_EF"
extr.HLTResultKey = ""
extr.HLTResultKey = "HLTResult_EF"
else:
ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [
"HLT::HLTResult/HLTResult_HLT" ]
extr.L2ResultKey = ""
extr.EFResultKey = ""
extr.HLTResultKey = "HLTResult_HLT"
#
......@@ -137,7 +135,6 @@ class ByteStreamUnpackGetterRun1or2(Configured):
# if data doesn't have HLT info set HLTResult keys as empty strings to avoid warnings
# but the extraction algorithm must run
extr.L2ResultKey = ""
extr.EFResultKey = ""
extr.HLTResultKey = ""
extr.DSResultKeys = []
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment