From b2269695669897c9bee3108c497633c2939d03ac Mon Sep 17 00:00:00 2001 From: Daniele Zanzi Date: Thu, 11 Jul 2019 22:00:09 +0200 Subject: [PATCH 1/5] fix phase1 menu max threshold --- .../TrigConfL1Data/Root/ThresholdConfig.cxx | 14 ++++++++++---- .../TrigConfL1Data/ThresholdConfig.h | 2 +- .../TrigConfStorage/src/MenuLoader.cxx | 2 +- .../TrigConfStorage/src/ThresholdConfigLoader.cxx | 6 +++--- .../TrigConfStorage/src/XMLMenuLoader.cxx | 6 ++++-- .../src/XMLThresholdConfigLoader.cxx | 8 ++++++-- .../TrigConfigSvc/src/LVL1ConfigSvc.cxx | 14 ++++++++------ 7 files changed, 33 insertions(+), 19 deletions(-) diff --git a/Trigger/TrigConfiguration/TrigConfL1Data/Root/ThresholdConfig.cxx b/Trigger/TrigConfiguration/TrigConfL1Data/Root/ThresholdConfig.cxx index 8052fc7fc1c..7ca8c4d3d95 100644 --- a/Trigger/TrigConfiguration/TrigConfL1Data/Root/ThresholdConfig.cxx +++ b/Trigger/TrigConfiguration/TrigConfL1Data/Root/ThresholdConfig.cxx @@ -73,7 +73,7 @@ TrigConf::ThresholdConfig::insertInPosition(std::vector& thrV bool -TrigConf::ThresholdConfig::addTriggerThreshold(TriggerThreshold* thr) { +TrigConf::ThresholdConfig::addTriggerThreshold(TriggerThreshold* thr, bool respectRun2Limits) { // put the threshold into the vector of all thresholds m_TriggerThresholdVector.push_back(thr); @@ -86,9 +86,15 @@ TrigConf::ThresholdConfig::addTriggerThreshold(TriggerThreshold* thr) { // check if maximum is exceeded unsigned int max_thr = L1DataDef::typeConfig(ttype).max; if(thr->mapping()>0 && (unsigned int)thr->mapping() >= max_thr) { - cerr << "ThresholdConfig::addTriggerThreshold: threshold mapping " << thr->mapping() - << " exceeds maximum for type '" << thr->type() << "' , abort!" << endl; - throw runtime_error( "ThresholdConfig::addTriggerThreshold: threshold mapping exceeds limit" ); + if ( respectRun2Limits ) { + cerr << "ThresholdConfig::addTriggerThreshold: threshold mapping " << thr->mapping() + << " exceeds maximum for type '" << thr->type() << "' , abort!" << endl; + throw runtime_error( "ThresholdConfig::addTriggerThreshold: threshold mapping exceeds limit" ); + } else { + // for studying run3 menu + cout << "ThresholdConfig::addTriggerThreshold: threshold mapping " << thr->mapping() + << " (" << thr->name() << ") exceeds Run-2 maximum for type '" << thr->type() << "'. This is just for information, Run-2 limits are set to be ignored." << endl; + } } thr->setThresholdNumber(thr->mapping()); diff --git a/Trigger/TrigConfiguration/TrigConfL1Data/TrigConfL1Data/ThresholdConfig.h b/Trigger/TrigConfiguration/TrigConfL1Data/TrigConfL1Data/ThresholdConfig.h index a2963c2f116..2a833a44075 100644 --- a/Trigger/TrigConfiguration/TrigConfL1Data/TrigConfL1Data/ThresholdConfig.h +++ b/Trigger/TrigConfiguration/TrigConfL1Data/TrigConfL1Data/ThresholdConfig.h @@ -61,7 +61,7 @@ namespace TrigConf { const CaloInfo& caloInfo() const { return m_CaloInfo; } void setCaloInfo (const CaloInfo& ci) { m_CaloInfo = ci; } - bool addTriggerThreshold(TriggerThreshold* value); // add according to type + bool addTriggerThreshold(TriggerThreshold* value, bool respectRun2Limits = true); // add according to type virtual void print(const std::string& indent="", unsigned int detail=1) const; diff --git a/Trigger/TrigConfiguration/TrigConfStorage/src/MenuLoader.cxx b/Trigger/TrigConfiguration/TrigConfStorage/src/MenuLoader.cxx index 86818c8031b..d6e6e550202 100755 --- a/Trigger/TrigConfiguration/TrigConfStorage/src/MenuLoader.cxx +++ b/Trigger/TrigConfiguration/TrigConfStorage/src/MenuLoader.cxx @@ -203,7 +203,7 @@ TrigConf::MenuLoader::loadItems(TrigConf::Menu& menu) { msg() << "MenuLoader: Error loading TriggerThreshold " << thr_info.thrId << endl; throw runtime_error( "MenuLoader::loadItems: error loading TriggerThreshold " ); } - menu.thresholdConfig().addTriggerThreshold(thr_info.thr); + menu.thresholdConfig().addTriggerThreshold(thr_info.thr, /*bool respectRun2Limits =*/ false); } item_thrInfo[ctpid].push_back(thr_info); } diff --git a/Trigger/TrigConfiguration/TrigConfStorage/src/ThresholdConfigLoader.cxx b/Trigger/TrigConfiguration/TrigConfStorage/src/ThresholdConfigLoader.cxx index 40d7d496d29..08899c695a5 100755 --- a/Trigger/TrigConfiguration/TrigConfStorage/src/ThresholdConfigLoader.cxx +++ b/Trigger/TrigConfiguration/TrigConfStorage/src/ThresholdConfigLoader.cxx @@ -175,7 +175,7 @@ bool TrigConf::ThresholdConfigLoader::load( ThresholdConfig& thrConfig ) { if (tt != 0) { // trigger thresholds sorted by type - thrConfig.addTriggerThreshold(tt); + thrConfig.addTriggerThreshold(tt, /*bool respectRun2Limits =*/ false); tt = new TriggerThreshold(); numberofvalues = 0; } else { @@ -290,7 +290,7 @@ bool TrigConf::ThresholdConfigLoader::load( ThresholdConfig& thrConfig ) { } // trigger thresholds sorted by type - thrConfig.addTriggerThreshold(tt); + thrConfig.addTriggerThreshold(tt, /*bool respectRun2Limits =*/ false); //=========================================== // now get the Thresholds WITHOUT trigger threshold values @@ -363,7 +363,7 @@ bool TrigConf::ThresholdConfigLoader::load( ThresholdConfig& thrConfig ) { if (tt != 0) { //tt->setNumberofValues(numberofvalues); // trigger thresholds sorted by type - thrConfig.addTriggerThreshold(tt); + thrConfig.addTriggerThreshold(tt, /*bool respectRun2Limits =*/ false); tt = new TriggerThreshold(); numberofvalues = 0; } else { diff --git a/Trigger/TrigConfiguration/TrigConfStorage/src/XMLMenuLoader.cxx b/Trigger/TrigConfiguration/TrigConfStorage/src/XMLMenuLoader.cxx index 3fd6b362df4..244c19c32e6 100755 --- a/Trigger/TrigConfiguration/TrigConfStorage/src/XMLMenuLoader.cxx +++ b/Trigger/TrigConfiguration/TrigConfStorage/src/XMLMenuLoader.cxx @@ -35,6 +35,8 @@ TrigConf::XMLMenuLoader::load(Menu& menu) { IThresholdConfigLoader& thrcfgloader = m_storageMgr.thresholdConfigLoader(); thrcfgloader.setLevel(outputLevel()); thrcfgloader.load( menu.thresholdConfig() ); + std::cerr << std::flush; + std::cout << std::flush; TRG_MSG_INFO("Number of thresholds in the menu: " << menu.thresholdConfig().size()); for(value_type v: pt()) { @@ -122,10 +124,10 @@ TrigConf::XMLMenuLoader::readNode(const ptree::value_type& pt, trig_node->setTriggerThreshold(trig_thr); trig_node->setMultiplicity(mult); } else { - msg() << "XMLMenuLoader: ERROR cannot find threshold " << thr_name << std::endl; + TRG_MSG_ERROR("cannot find threshold " << thr_name); } } else { - msg() << "XMLMenuLoader: ERROR TriggerCondition without threshold " << std::endl; + TRG_MSG_ERROR("TriggerCondition without threshold"); } } else if (node_name == "InternalTrigger") { std::string thr_name(""); diff --git a/Trigger/TrigConfiguration/TrigConfStorage/src/XMLThresholdConfigLoader.cxx b/Trigger/TrigConfiguration/TrigConfStorage/src/XMLThresholdConfigLoader.cxx index 7ce0d5be9b9..49d9b7c44fb 100755 --- a/Trigger/TrigConfiguration/TrigConfStorage/src/XMLThresholdConfigLoader.cxx +++ b/Trigger/TrigConfiguration/TrigConfStorage/src/XMLThresholdConfigLoader.cxx @@ -27,15 +27,19 @@ XMLThresholdConfigLoader::load( ThresholdConfig& thrcfg ) { TRG_MSG_DEBUG("Loading ThresholdConfig object") + bool respectRun2Limits = false; + // Get the thresholds XMLTriggerThresholdLoader* thr_ldr = new XMLTriggerThresholdLoader(m_storageMgr); thr_ldr->setLevel(outputLevel()); for(value_type v: pt() ) { + if(v.first == "") // ignore comments between the TriggerThresholds + continue; thr_ldr->setPtree(&v); TriggerThreshold* thr = new TriggerThreshold(); if (thr_ldr->load(*thr)) { - TRG_MSG_DEBUG("Adding trigger threshold " << *thr << "(type " << thr->ttype() << ", mapping " << thr->mapping() << ")") - thrcfg.addTriggerThreshold(thr); + TRG_MSG_DEBUG("Adding trigger threshold " << *thr << "(type " << thr->ttype() << ", mapping " << thr->mapping() << ")"); + thrcfg.addTriggerThreshold(thr, respectRun2Limits); } } delete thr_ldr; diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.cxx b/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.cxx index c782fd40a09..7a0da9e474f 100644 --- a/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.cxx +++ b/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.cxx @@ -134,12 +134,14 @@ LVL1ConfigSvc::initialize() { // // Check if we have a valid trigger menu: // - if( Verifyer::verify( m_ctpConfig->menu(), msg() ) ) { - ATH_MSG_ERROR("Loaded trigger menu fails verification"); - return StatusCode::FAILURE; - } else { - ATH_MSG_DEBUG("Loaded trigger menu passed verification"); - } + ATH_MSG_INFO("Disabled L1 menu verification for Run-3 studies"); +// if( Verifyer::verify( m_ctpConfig->menu(), msg() ) ) { +// ATH_MSG_ERROR("Loaded trigger menu fails verification"); +// return StatusCode::FAILURE; +// } else { +// ATH_MSG_DEBUG("Loaded trigger menu passed verification"); +// } +// ATH_MSG_DEBUG("Dumping LVL1 configuration"); -- GitLab From 874efccf94c2c3a0818d34f6183322ac89de64f4 Mon Sep 17 00:00:00 2001 From: Daniele Zanzi Date: Thu, 11 Jul 2019 23:53:22 +0200 Subject: [PATCH 2/5] including missing changes --- .../Root/JGTowerAuxContainer_v1.cxx | 28 +++ Event/xAOD/xAODTrigL1Calo/Root/JGTower_v1.cxx | 189 ++++++++++++++++++ .../Root/xAODTrigL1CaloCLIDs.cxx | 2 + .../xAODTrigL1Calo/xAODTrigL1Calo/JGTower.h | 21 ++ .../xAODTrigL1Calo/JGTowerAuxContainer.h | 19 ++ .../xAODTrigL1Calo/JGTowerContainer.h | 21 ++ .../xAODTrigL1Calo/selection.xml | 19 +- .../versions/JGTowerAuxContainer_v1.h | 48 +++++ .../versions/JGTowerContainer_v1.h | 23 +++ .../xAODTrigL1Calo/versions/JGTower_v1.h | 138 +++++++++++++ .../xAODTrigL1Calo/xAODTrigL1CaloDict.h | 16 +- .../xAODTrigL1CaloAthenaPool/CMakeLists.txt | 11 +- .../src/xAODJGTowerAuxContainerCnv.cxx | 51 +++++ .../src/xAODJGTowerAuxContainerCnv.h | 53 +++++ .../src/xAODJGTowerContainerCnv.cxx | 85 ++++++++ .../src/xAODJGTowerContainerCnv.h | 55 +++++ 16 files changed, 770 insertions(+), 9 deletions(-) create mode 100755 Event/xAOD/xAODTrigL1Calo/Root/JGTowerAuxContainer_v1.cxx create mode 100755 Event/xAOD/xAODTrigL1Calo/Root/JGTower_v1.cxx create mode 100755 Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTower.h create mode 100755 Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTowerAuxContainer.h create mode 100755 Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTowerContainer.h create mode 100755 Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/versions/JGTowerAuxContainer_v1.h create mode 100755 Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/versions/JGTowerContainer_v1.h create mode 100755 Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/versions/JGTower_v1.h create mode 100755 Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerAuxContainerCnv.cxx create mode 100755 Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerAuxContainerCnv.h create mode 100755 Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerContainerCnv.cxx create mode 100755 Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerContainerCnv.h diff --git a/Event/xAOD/xAODTrigL1Calo/Root/JGTowerAuxContainer_v1.cxx b/Event/xAOD/xAODTrigL1Calo/Root/JGTowerAuxContainer_v1.cxx new file mode 100755 index 00000000000..035033d90d8 --- /dev/null +++ b/Event/xAOD/xAODTrigL1Calo/Root/JGTowerAuxContainer_v1.cxx @@ -0,0 +1,28 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + + + +// Local include(s): +#include "xAODTrigL1Calo/versions/JGTowerAuxContainer_v1.h" + +namespace xAOD { + + JGTowerAuxContainer_v1::JGTowerAuxContainer_v1() : + AuxContainerBase() + { + + ///@name IParticle variables + AUX_VARIABLE( eta ); + AUX_VARIABLE( phi ); + AUX_VARIABLE( deta ); + AUX_VARIABLE( dphi ); + AUX_VARIABLE( Id ); + AUX_VARIABLE( et ); + AUX_VARIABLE( SCIndex ); + AUX_VARIABLE( TileIndex ); + AUX_VARIABLE( sampling); + } + +} // namespace xAOD diff --git a/Event/xAOD/xAODTrigL1Calo/Root/JGTower_v1.cxx b/Event/xAOD/xAODTrigL1Calo/Root/JGTower_v1.cxx new file mode 100755 index 00000000000..3f194d802e1 --- /dev/null +++ b/Event/xAOD/xAODTrigL1Calo/Root/JGTower_v1.cxx @@ -0,0 +1,189 @@ +/* + * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + + +// EDM includes(s): +#include "xAODCore/AuxStoreAccessorMacros.h" + +// Local include(s): +#include "xAODTrigL1Calo/versions/JGTower_v1.h" + +namespace xAOD{ + + JGTower_v1::JGTower_v1() : + IParticle(), + m_p4(), + m_p4Cached( false ) + { + } + + + + JGTower_v1::JGTower_v1(const JGTower_v1& other) : + IParticle( other ), + m_p4( other.m_p4 ), + m_p4Cached( other.m_p4Cached ) + { + } + + JGTower_v1& JGTower_v1::operator=(const JGTower_v1& other) + { + if( this != &other ){ + if( !container() && !hasStore() ){ + makePrivateStore(); + } + IParticle::operator=( other ); + m_p4 = other.m_p4; + m_p4Cached = other.m_p4Cached; + } + return *this; + } +//Objects stored in this way will be hidden information + AUXSTORE_OBJECT_SETTER_AND_GETTER( JGTower_v1 , std::vector , SCIndex , setSCIndex ) + AUXSTORE_OBJECT_SETTER_AND_GETTER( JGTower_v1 , std::vector , TileIndex , setTileIndex ) + + /// initialize + void JGTower_v1::initialize(const int Id, const float Eta,const float Phi) + { + setId (Id); + setEta( Eta ); + setPhi( Phi ); + } + + void JGTower_v1::initialize(const int Id, const float Eta,const float Phi, const float Et) + { + setId (Id); + setEt (Et); + setEta( Eta ); + setPhi( Phi ); + } + + // IParticle interface + +// AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( JGTower_v1, int , id , setId ) + + double JGTower_v1::eta() const + { + static Accessor< float > acc( "eta" ); + return acc( *this ); + } + + void JGTower_v1::setEta(float eta) + { + static Accessor< float > acc( "eta" ); + acc( *this ) = eta; + } + + + double JGTower_v1::phi() const + { + static Accessor< float > acc( "phi" ); + return acc( *this ); + } + + void JGTower_v1::setPhi(float phi) + { + static Accessor< float > acc( "phi" ); + acc( *this ) = phi; + } + + double JGTower_v1::deta() const + { + static Accessor< float > acc( "deta" ); + return acc( *this ); + } + + void JGTower_v1::setdEta(float deta) + { + static Accessor< float > acc( "deta" ); + acc( *this ) = deta; + } + + double JGTower_v1::dphi() const + { + static Accessor< float > acc( "dphi" ); + return acc( *this ); + } + + void JGTower_v1::setdPhi(float dphi) + { + static Accessor< float > acc( "dphi" ); + acc( *this ) = dphi; + } + + int JGTower_v1::Id() const + { + static Accessor< int > acc( "Id" ); + return acc( *this ); + } + + void JGTower_v1::setId(int Id) + { + static Accessor< int > acc( "Id" ); + acc( *this ) = Id; + } + + int JGTower_v1::sampling() const + { + static Accessor< int > acc( "sampling" ); + return acc( *this ); + } + + void JGTower_v1::setSampling(int sampling) + { + static Accessor< int > acc( "sampling" ); + acc( *this ) = sampling; + } + + + double JGTower_v1::et() const + { + static Accessor< float > acc( "et" ); + return acc( *this ); + } + + void JGTower_v1::setEt(float et) + { + static Accessor< float > acc( "et" ); + acc( *this ) = et; + } + + double JGTower_v1::pt() const + { + return static_cast< double >(pt() ); + } + + double JGTower_v1::m() const + { + return 0.; + } + + double JGTower_v1::e() const + { + return p4().E(); + } + + double JGTower_v1::rapidity() const + { + return p4().Rapidity(); + } + + const JGTower_v1::FourMom_t& JGTower_v1::p4() const + { + if( ! m_p4Cached ) { + + double PT = (pt() > 0) ? 1000. * static_cast< double >( pt() ) : 0.01; + + m_p4.SetPtEtaPhiM( PT , eta() , phi() , m() ); + m_p4Cached = true; + } + return m_p4; + } + + Type::ObjectType JGTower_v1::type() const + { + return Type::Jet; + } + +} // namespace xAOD diff --git a/Event/xAOD/xAODTrigL1Calo/Root/xAODTrigL1CaloCLIDs.cxx b/Event/xAOD/xAODTrigL1Calo/Root/xAODTrigL1CaloCLIDs.cxx index e5119c99f92..864e721c89e 100644 --- a/Event/xAOD/xAODTrigL1Calo/Root/xAODTrigL1CaloCLIDs.cxx +++ b/Event/xAOD/xAODTrigL1Calo/Root/xAODTrigL1CaloCLIDs.cxx @@ -44,5 +44,7 @@ #include "xAODTrigL1Calo/L1TopoRawDataContainer.h" #include "xAODTrigL1Calo/RODHeaderAuxContainer.h" #include "xAODTrigL1Calo/RODHeaderContainer.h" +#include "xAODTrigL1Calo/JGTowerAuxContainer.h" +#include "xAODTrigL1Calo/JGTowerContainer.h" #include "xAODTrigL1Calo/TriggerTowerAuxContainer.h" #include "xAODTrigL1Calo/TriggerTowerContainer.h" diff --git a/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTower.h b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTower.h new file mode 100755 index 00000000000..5e7d6c2c4b0 --- /dev/null +++ b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTower.h @@ -0,0 +1,21 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + + +#ifndef XAODTRIGL1CALO_JGTOWER_H +#define XAODTRIGL1CALO_JGTOWER_H + +// Local include(s): +#include "xAODTrigL1Calo/versions/JGTower_v1.h" + +/// Namespace holding all the xAOD EDM classes +namespace xAOD { + /// Define the latest version of the JGTower class + typedef JGTower_v1 JGTower; +} + +#include "xAODCore/CLASS_DEF.h" +CLASS_DEF( xAOD::JGTower, 264277037 , 1 ) + +#endif // XAODTRIGL1CALO_JGTOWER_H diff --git a/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTowerAuxContainer.h b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTowerAuxContainer.h new file mode 100755 index 00000000000..98f2cb8c525 --- /dev/null +++ b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTowerAuxContainer.h @@ -0,0 +1,19 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + + +#ifndef XAODTRIGL1CALO_JGTOWERAUXCONTAINER_H +#define XAODTRIGL1CALO_JGTOWERAUXCONTAINER_H + +// Local include(s): +#include "xAODTrigL1Calo/versions/JGTowerAuxContainer_v1.h" +namespace xAOD { + /// Define the latest version of the JGTower auxiliary container + typedef JGTowerAuxContainer_v1 JGTowerAuxContainer; +} + +#include "xAODCore/CLASS_DEF.h" +CLASS_DEF( xAOD::JGTowerAuxContainer, 1086692910 , 1 ) + +#endif // XAODTRIGL1CALO_JGTOWERAUXCONTAINER_H diff --git a/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTowerContainer.h b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTowerContainer.h new file mode 100755 index 00000000000..57aac60db51 --- /dev/null +++ b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JGTowerContainer.h @@ -0,0 +1,21 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + + +#ifndef XAODTRIGL1CALO_JGTOWERCONTAINER_H +#define XAODTRIGL1CALO_JGTOWERCONTAINER_H + +// Local include(s): +#include "xAODTrigL1Calo/JGTower.h" +#include "xAODTrigL1Calo/versions/JGTowerContainer_v1.h" + +namespace xAOD { + /// Define the latest version of the JGTower container + typedef JGTowerContainer_v1 JGTowerContainer; +} + +#include "xAODCore/CLASS_DEF.h" +CLASS_DEF( xAOD::JGTowerContainer, 1174216567 , 1 ) + +#endif // XAODTRIGL1CALO_JGTOWERCONTAINER_H diff --git a/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/selection.xml b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/selection.xml index 7341cff1110..1a6591b4e5a 100644 --- a/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/selection.xml +++ b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/selection.xml @@ -164,7 +164,24 @@ - + + + + + + + + + + + + + + +// System include(s): +#include + +// EDM include(s): +#include "xAODCore/AuxContainerBase.h" + +namespace xAOD{ + + /// AuxContainer for JGTower_v1 + /// + /// @author John Morris + /// + /// $Revision: 652807 $ + /// $Date: 2015-03-09 22:52:07 +0100 (Mon, 09 Mar 2015) $ + /// + class JGTowerAuxContainer_v1: public AuxContainerBase { + public: + // Default constructor + JGTowerAuxContainer_v1(); + + private: + + // Tower identifiers + std::vector eta; + std::vector phi; + std::vector deta; + std::vector dphi; + std::vector et; + std::vector Id; + std::vector sampling; + std::vector> SCIndex; + std::vector> TileIndex; + }; // class JGTowerAuxContainer +} // namespace xAOD + +#include "xAODCore/BaseInfo.h" +SG_BASE( xAOD::JGTowerAuxContainer_v1, xAOD::AuxContainerBase ); + +#endif // XAODTRIGL1CALO_VERSIONS_JGTOWERAUXCONTAINER_V1_H diff --git a/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/versions/JGTowerContainer_v1.h b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/versions/JGTowerContainer_v1.h new file mode 100755 index 00000000000..0fed03adeea --- /dev/null +++ b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/versions/JGTowerContainer_v1.h @@ -0,0 +1,23 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +// Dear emacs, this is -*- c++ -*- +#ifndef XAODTRIGL1CALO_VERSIONS_JGTOWERCONTAINER_V1_H +#define XAODTRIGL1CALO_VERSIONS_JGTOWERCONTAINER_V1_H + +// EDM include(s): +#include "AthContainers/DataVector.h" + +// Local include(s): +#include "JGTower_v1.h" + +// Declare IParticle as a base class of JGTower_v1: +DATAVECTOR_BASE( xAOD::JGTower_v1, xAOD::IParticle ); + +namespace xAOD { + /// Define the JGTower as a simple DataVector + typedef DataVector< xAOD::JGTower_v1 > JGTowerContainer_v1; +} + +#endif // XAODTRIGL1CALO_VERSIONS_JGTOWERCONTAINER_V1_H diff --git a/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/versions/JGTower_v1.h b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/versions/JGTower_v1.h new file mode 100755 index 00000000000..1d10f09f47b --- /dev/null +++ b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/versions/JGTower_v1.h @@ -0,0 +1,138 @@ +/* + * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +// Dear emacs, this is -*- c++ -*- +#ifndef XAODTRIGL1CALO_VERSIONS_JGTOWER_V1_H +#define XAODTRIGL1CALO_VERSIONS_JGTOWER_V1_H + +// EDM include(s): +#include "xAODBase/IParticle.h" +#include "AthLinks/ElementLink.h" +#include "AthContainers/AuxElement.h" + +//CxxUtils for override final +#include "CxxUtils/final.h" +#include "CxxUtils/override.h" + +// System include(s): +#include + +namespace xAOD { + + /// Description of JGTower_v1 + /// + /// @author John Morris + /// + /// $Revision: 652807 $ + /// $Date: 2015-03-09 22:52:07 +0100 (Mon, 09 Mar 2015) $ + /// + /// Trigger towers are the inputs to all other parts of the calorimeter trigger. + /// They are formed by analogue summation of cells (represented in simulation + /// by LArTTL1 and TileTTL1 objects). The L1Calo PreProcessor digitizes these, + /// performs Bunch-Crossing IDentification, final calibration and reduction + /// to 8 bit words. + /// + /// The TriggerTower class represents the output of the PreProcessor. + /// + /// For each tower, the TriggerTower contains the final ET (LUT output) + /// as well as a vector of ADC data (at 25ns intervals) from which it was + /// formed, plus error flags and raw BCID output. As the PreProcessor + /// readout can read variable numbers of slices of all of these data, the + /// internal storage is in std::vectors, and methods exist to return all + /// slices as well as just the data corresponding to the triggered crossing. + /// + /// The JGTower_v1 class inherits from IParticle in order to assist + /// The Level 1.5 jet HLT algorithm + /// + + class JGTower_v1 : public IParticle{ + public: + /// Default constructor + JGTower_v1(); + /// Copy constructor + JGTower_v1(const JGTower_v1& other); + /// Assignment operator + JGTower_v1& operator=(const JGTower_v1& other); + /// Default desturctor + virtual ~JGTower_v1(){} + + /// @name xAOD::IParticle functions + /// These are already virtual due to IParticle + /// @{ + + /// @brief The transverse momentum (\f$p_T\f$) of the particle + virtual double pt() const ATH_FINAL; + + /// @brief The pseudorapidity (\f$\eta\f$) of the particle + virtual double eta() const ATH_FINAL; + void setEta(float); + + /// @brief The azimuthal angle (\f$\phi\f$) of the particle + virtual double phi() const ATH_FINAL; + void setPhi(float); + + /// @brief The pseudorapidity (\f$\eta\f$) of the particle + virtual double deta() const ATH_FINAL; + void setdEta(float); + + /// @brief The azimuthal angle (\f$\phi\f$) of the particle + virtual double dphi() const ATH_FINAL; + void setdPhi(float); + + + virtual double et() const ATH_FINAL; + void setEt(float); + + /// get coolId + virtual int Id() const ATH_FINAL; + void setId(int); + virtual int sampling() const ATH_FINAL; + void setSampling(int); + + + + + ///get SCIndex + const std::vector& SCIndex() const; + ///set SCIndex + void setSCIndex(const std::vector&); + + ///get TileIndex + const std::vector& TileIndex() const; + ///set TileIndex + void setTileIndex(const std::vector&); + + + /// @brief The invariant mass of the particle + virtual double m() const ATH_FINAL; + + /// The total energy of the particle + virtual double e() const ATH_FINAL; + + /// @brief The true rapidity (y) of the particle + virtual double rapidity() const ATH_FINAL; + + /// @brief Definition of the 4-momentum type + typedef IParticle::FourMom_t FourMom_t; + + /// @brief The full 4-momentum of the particle as a TLoretzVector + virtual const FourMom_t& p4() const ATH_FINAL; + + /// @brief The type of the object as a simple enumeration, remains pure virtual in e/gamma. + virtual Type::ObjectType type() const ATH_FINAL; + + + virtual void initialize(const int Id, const float Et, const float Eta,const float Phi); + virtual void initialize(const int Id, const float Eta,const float Phi); + private: + + /// Cached 4-momentum object + mutable FourMom_t m_p4; + /// Cache state of the internal 4-momentum (reset from the streamer) + mutable bool m_p4Cached; + + }; // class JGTower_v1 +} // namespace xAOD + +#endif // XAODTRIGL1CALO_VERSIONS_JGTOWER_V1_H diff --git a/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/xAODTrigL1CaloDict.h b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/xAODTrigL1CaloDict.h index 242fa341853..4d67bdc7216 100644 --- a/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/xAODTrigL1CaloDict.h +++ b/Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/xAODTrigL1CaloDict.h @@ -1,10 +1,10 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -// $Id: xAODTrigL1CaloDict.h 694350 2015-09-11 12:02:19Z krasznaa $ +// $Id: xAODTrigL1CaloDict.h 804221 2017-05-03 16:06:15Z cylin $ #ifndef XAODTRIGL1CALO_XAODTRIGL1CALOCALOEVENTDICT_H #define XAODTRIGL1CALO_XAODTRIGL1CALOCALOEVENTDICT_H @@ -76,6 +76,7 @@ #include "xAODTrigL1Calo/versions/TriggerTowerAuxContainer_v1.h" // Run 2 + #include "xAODTrigL1Calo/versions/TriggerTower_v2.h" #include "xAODTrigL1Calo/versions/TriggerTowerContainer_v2.h" #include "xAODTrigL1Calo/versions/TriggerTowerAuxContainer_v2.h" @@ -129,6 +130,11 @@ #include "xAODTrigL1Calo/versions/L1TopoRawDataContainer_v1.h" #include "xAODTrigL1Calo/versions/L1TopoRawDataAuxContainer_v1.h" +// Run 3 + +#include "xAODTrigL1Calo/versions/JGTower_v1.h" +#include "xAODTrigL1Calo/versions/JGTowerContainer_v1.h" +#include "xAODTrigL1Calo/versions/JGTowerAuxContainer_v1.h" // Versionless AuxContainers #include "xAODTrigL1Calo/CMMCPHitsAuxContainer.h" @@ -152,6 +158,7 @@ #include "xAODTrigL1Calo/JetElementAuxContainer.h" #include "xAODTrigL1Calo/RODHeaderAuxContainer.h" #include "xAODTrigL1Calo/TriggerTowerAuxContainer.h" +#include "xAODTrigL1Calo/JGTowerAuxContainer.h" #include "xAODTrigL1Calo/L1TopoRawDataAuxContainer.h" @@ -295,6 +302,7 @@ namespace { // Run 2 // TriggerTower + xAOD::TriggerTowerContainer_v2 TriggerTower_v2_c1; /* DataLink< xAOD::TriggerTowerContainer_v2 > TriggerTower_v2_l1; @@ -305,6 +313,10 @@ namespace { std::vector< ElementLinkVector< xAOD::TriggerTowerContainer_v2 > > TriggerTower_v2_l6; */ + //Run 3 + xAOD::JGTowerContainer_v1 JGTower_v1_c1; + + // RODHeader xAOD::RODHeaderContainer_v2 RODHeader_v2_c1; /* diff --git a/Event/xAOD/xAODTrigL1CaloAthenaPool/CMakeLists.txt b/Event/xAOD/xAODTrigL1CaloAthenaPool/CMakeLists.txt index 985dafe7460..c13663c7b7d 100644 --- a/Event/xAOD/xAODTrigL1CaloAthenaPool/CMakeLists.txt +++ b/Event/xAOD/xAODTrigL1CaloAthenaPool/CMakeLists.txt @@ -12,16 +12,15 @@ atlas_depends_on_subdirs( PRIVATE Database/AthenaPOOL/AthenaPoolCnvSvc Database/AthenaPOOL/AthenaPoolUtilities Event/xAOD/xAODTrigL1Calo ) - + # External dependencies: find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - + # Component(s) in the package: atlas_add_poolcnv_library( xAODTrigL1CaloAthenaPoolPoolCnv src/*.cxx - FILES xAODTrigL1Calo/JEMHitsContainer.h xAODTrigL1Calo/JEMHitsAuxContainer.h xAODTrigL1Calo/JEMEtSumsContainer.h xAODTrigL1Calo/JEMEtSumsAuxContainer.h xAODTrigL1Calo/JEMRoIContainer.h xAODTrigL1Calo/JEMRoIAuxContainer.h xAODTrigL1Calo/CPMHitsContainer.h xAODTrigL1Calo/CPMHitsAuxContainer.h xAODTrigL1Calo/CPMTowerContainer.h xAODTrigL1Calo/CPMTowerAuxContainer.h xAODTrigL1Calo/CPMRoIContainer.h xAODTrigL1Calo/CPMRoIAuxContainer.h xAODTrigL1Calo/CMMCPHitsContainer.h xAODTrigL1Calo/CMMCPHitsAuxContainer.h xAODTrigL1Calo/CMMEtSumsContainer.h xAODTrigL1Calo/CMMEtSumsAuxContainer.h xAODTrigL1Calo/CMMJetHitsContainer.h xAODTrigL1Calo/CMMJetHitsAuxContainer.h xAODTrigL1Calo/CMMRoI.h xAODTrigL1Calo/CMMRoIAuxInfo.h xAODTrigL1Calo/JetElementContainer.h xAODTrigL1Calo/JetElementAuxContainer.h xAODTrigL1Calo/RODHeaderContainer.h xAODTrigL1Calo/RODHeaderAuxContainer.h xAODTrigL1Calo/TriggerTowerContainer.h xAODTrigL1Calo/TriggerTowerAuxContainer.h xAODTrigL1Calo/CMXCPHitsContainer.h xAODTrigL1Calo/CMXCPHitsAuxContainer.h xAODTrigL1Calo/CMXCPTobContainer.h xAODTrigL1Calo/CMXCPTobAuxContainer.h xAODTrigL1Calo/CMXJetHitsContainer.h xAODTrigL1Calo/CMXJetHitsAuxContainer.h xAODTrigL1Calo/CMXJetTobContainer.h xAODTrigL1Calo/CMXJetTobAuxContainer.h xAODTrigL1Calo/CMXEtSumsContainer.h xAODTrigL1Calo/CMXEtSumsAuxContainer.h xAODTrigL1Calo/CMXRoIContainer.h xAODTrigL1Calo/CMXRoIAuxContainer.h xAODTrigL1Calo/CPMTobRoIContainer.h xAODTrigL1Calo/CPMTobRoIAuxContainer.h xAODTrigL1Calo/JEMTobRoIContainer.h xAODTrigL1Calo/JEMTobRoIAuxContainer.h xAODTrigL1Calo/L1TopoRawDataContainer.h xAODTrigL1Calo/L1TopoRawDataAuxContainer.h - TYPES_WITH_NAMESPACE xAOD::JEMHitsContainer xAOD::JEMHitsAuxContainer xAOD::JEMEtSumsContainer xAOD::JEMEtSumsAuxContainer xAOD::JEMRoIContainer xAOD::JEMRoIAuxContainer xAOD::CPMHitsContainer xAOD::CPMHitsAuxContainer xAOD::CPMTowerContainer xAOD::CPMTowerAuxContainer xAOD::CPMRoIContainer xAOD::CPMRoIAuxContainer xAOD::CMMCPHitsContainer xAOD::CMMCPHitsAuxContainer xAOD::CMMEtSumsContainer xAOD::CMMEtSumsAuxContainer xAOD::CMMJetHitsContainer xAOD::CMMJetHitsAuxContainer xAOD::CMMRoI xAOD::CMMRoIAuxInfo xAOD::JetElementContainer xAOD::JetElementAuxContainer xAOD::RODHeaderContainer xAOD::RODHeaderAuxContainer xAOD::TriggerTowerContainer xAOD::TriggerTowerAuxContainer xAOD::CMXCPHitsContainer xAOD::CMXCPHitsAuxContainer xAOD::CMXCPTobContainer xAOD::CMXCPTobAuxContainer xAOD::CMXJetHitsContainer xAOD::CMXJetHitsAuxContainer xAOD::CMXJetTobContainer xAOD::CMXJetTobAuxContainer xAOD::CMXEtSumsContainer xAOD::CMXEtSumsAuxContainer xAOD::CMXRoIContainer xAOD::CMXRoIAuxContainer xAOD::CPMTobRoIContainer xAOD::CPMTobRoIAuxContainer xAOD::JEMTobRoIContainer xAOD::JEMTobRoIAuxContainer xAOD::L1TopoRawDataContainer xAOD::L1TopoRawDataAuxContainer + FILES xAODTrigL1Calo/JEMHitsContainer.h xAODTrigL1Calo/JEMHitsAuxContainer.h xAODTrigL1Calo/JEMEtSumsContainer.h xAODTrigL1Calo/JEMEtSumsAuxContainer.h xAODTrigL1Calo/JEMRoIContainer.h xAODTrigL1Calo/JEMRoIAuxContainer.h xAODTrigL1Calo/CPMHitsContainer.h xAODTrigL1Calo/CPMHitsAuxContainer.h xAODTrigL1Calo/CPMTowerContainer.h xAODTrigL1Calo/CPMTowerAuxContainer.h xAODTrigL1Calo/CPMRoIContainer.h xAODTrigL1Calo/CPMRoIAuxContainer.h xAODTrigL1Calo/CMMCPHitsContainer.h xAODTrigL1Calo/CMMCPHitsAuxContainer.h xAODTrigL1Calo/CMMEtSumsContainer.h xAODTrigL1Calo/CMMEtSumsAuxContainer.h xAODTrigL1Calo/CMMJetHitsContainer.h xAODTrigL1Calo/CMMJetHitsAuxContainer.h xAODTrigL1Calo/CMMRoI.h xAODTrigL1Calo/CMMRoIAuxInfo.h xAODTrigL1Calo/JetElementContainer.h xAODTrigL1Calo/JetElementAuxContainer.h xAODTrigL1Calo/RODHeaderContainer.h xAODTrigL1Calo/RODHeaderAuxContainer.h xAODTrigL1Calo/JGTowerContainer.h xAODTrigL1Calo/JGTowerAuxContainer.h xAODTrigL1Calo/TriggerTowerContainer.h xAODTrigL1Calo/TriggerTowerAuxContainer.h xAODTrigL1Calo/CMXCPHitsContainer.h xAODTrigL1Calo/CMXCPHitsAuxContainer.h xAODTrigL1Calo/CMXCPTobContainer.h xAODTrigL1Calo/CMXCPTobAuxContainer.h xAODTrigL1Calo/CMXJetHitsContainer.h xAODTrigL1Calo/CMXJetHitsAuxContainer.h xAODTrigL1Calo/CMXJetTobContainer.h xAODTrigL1Calo/CMXJetTobAuxContainer.h xAODTrigL1Calo/CMXEtSumsContainer.h xAODTrigL1Calo/CMXEtSumsAuxContainer.h xAODTrigL1Calo/CMXRoIContainer.h xAODTrigL1Calo/CMXRoIAuxContainer.h xAODTrigL1Calo/CPMTobRoIContainer.h xAODTrigL1Calo/CPMTobRoIAuxContainer.h xAODTrigL1Calo/JEMTobRoIContainer.h xAODTrigL1Calo/JEMTobRoIAuxContainer.h xAODTrigL1Calo/L1TopoRawDataContainer.h xAODTrigL1Calo/L1TopoRawDataAuxContainer.h + TYPES_WITH_NAMESPACE xAOD::JEMHitsContainer xAOD::JEMHitsAuxContainer xAOD::JEMEtSumsContainer xAOD::JEMEtSumsAuxContainer xAOD::JEMRoIContainer xAOD::JEMRoIAuxContainer xAOD::CPMHitsContainer xAOD::CPMHitsAuxContainer xAOD::CPMTowerContainer xAOD::CPMTowerAuxContainer xAOD::CPMRoIContainer xAOD::CPMRoIAuxContainer xAOD::CMMCPHitsContainer xAOD::CMMCPHitsAuxContainer xAOD::CMMEtSumsContainer xAOD::CMMEtSumsAuxContainer xAOD::CMMJetHitsContainer xAOD::CMMJetHitsAuxContainer xAOD::CMMRoI xAOD::CMMRoIAuxInfo xAOD::JetElementContainer xAOD::JetElementAuxContainer xAOD::RODHeaderContainer xAOD::RODHeaderAuxContainer xAOD::JGTowerContainer xAOD::JGTowerAuxContainer xAOD::TriggerTowerContainer xAOD::TriggerTowerAuxContainer xAOD::CMXCPHitsContainer xAOD::CMXCPHitsAuxContainer xAOD::CMXCPTobContainer xAOD::CMXCPTobAuxContainer xAOD::CMXJetHitsContainer xAOD::CMXJetHitsAuxContainer xAOD::CMXJetTobContainer xAOD::CMXJetTobAuxContainer xAOD::CMXEtSumsContainer xAOD::CMXEtSumsAuxContainer xAOD::CMXRoIContainer xAOD::CMXRoIAuxContainer xAOD::CPMTobRoIContainer xAOD::CPMTobRoIAuxContainer xAOD::JEMTobRoIContainer xAOD::JEMTobRoIAuxContainer xAOD::L1TopoRawDataContainer xAOD::L1TopoRawDataAuxContainer CNV_PFX xAOD INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthenaKernel AthenaPoolCnvSvcLib AthenaPoolUtilities xAODTrigL1Calo ) - +26 LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthenaKernel AthenaPoolCnvSvcLib AthenaPoolUtilities xAODTrigL1Calo ) diff --git a/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerAuxContainerCnv.cxx b/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerAuxContainerCnv.cxx new file mode 100755 index 00000000000..400c4d03cc5 --- /dev/null +++ b/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerAuxContainerCnv.cxx @@ -0,0 +1,51 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + + +// System include(s): +#include + +// Local include(s): +#include "xAODJGTowerAuxContainerCnv.h" + +xAODJGTowerAuxContainerCnv:: +xAODJGTowerAuxContainerCnv( ISvcLocator* svcLoc ) + : xAODJGTowerAuxContainerCnvBase( svcLoc ) { + +} + +xAOD::JGTowerAuxContainer* +xAODJGTowerAuxContainerCnv:: +createPersistent( xAOD::JGTowerAuxContainer* trans ) { + + // Create a copy of the container: + xAOD::JGTowerAuxContainer* result = + new xAOD::JGTowerAuxContainer( *trans ); + + return result; +} + + + +xAOD::JGTowerAuxContainer* +xAODJGTowerAuxContainerCnv::createTransient() { + // The known ID(s) for this container: + static const pool::Guid guid( "b12228ce-de5c-49dd-82ba-d2d5436f42c1" ); +// static const pool::Guid v2_guid( "07FF691A-A920-43B2-A4E7-637D335E6929" ); + + // Check which version of the container we're reading: + if( compareClassGuid( guid ) ) { + // It's the latest version, read it directly: + return poolReadObject< xAOD::JGTowerAuxContainer >(); + } +/* if( compareClassGuid( v1_guid ) ) { + throw std::runtime_error( "Version 1 of xAOD::JGTowerAuxContainer found - bail out for now" ); + return 0; + }*/ + + // If we didn't recognise the ID: + throw std::runtime_error( "Unsupported version of " + "xAOD::JGTowerAuxContainer found" ); + return 0; +} diff --git a/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerAuxContainerCnv.h b/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerAuxContainerCnv.h new file mode 100755 index 00000000000..b28a0c6dba5 --- /dev/null +++ b/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerAuxContainerCnv.h @@ -0,0 +1,53 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + + +#ifndef XAODTRIGL1CALOATHENAPOOL_XAODJGTOWERAUXCONTAINERCNV_H +#define XAODTRIGL1CALOATHENAPOOL_XAODJGTOWERAUXCONTAINERCNV_H + +// Gaudi/Athena include(s): +#include "AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.h" + +// EDM include(s): +#include "xAODTrigL1Calo/JGTowerAuxContainer.h" + +/// Base class for the converter +typedef T_AthenaPoolCustomCnv< xAOD::JGTowerAuxContainer, + xAOD::JGTowerAuxContainer > + xAODJGTowerAuxContainerCnvBase; + +/** + * @short POOL converter for the xAOD::JGTowerAuxContainer class + * + * This is the converter doing the actual schema evolution + * of the package... The converter for xAOD::JGTowerContainer + * doesn't do much, as the "interface classes" don't contain + * too much/any payload. Most of the payload is in the auxiliary + * containers like this one. + * + * @author Attila Krasznahorkay + * @author John Morris + * + * $Revision: 576323 $ + * $Date: 2013-12-19 17:07:14 +0100 (Thu, 19 Dec 2013) $ + */ +class xAODJGTowerAuxContainerCnv : + public xAODJGTowerAuxContainerCnvBase { + + // Declare the factory as our friend: + friend class CnvFactory< xAODJGTowerAuxContainerCnv >; + +protected: + /// Converter constructor + xAODJGTowerAuxContainerCnv( ISvcLocator* svcLoc ); + + /// Function preparing the container to be written out + virtual xAOD::JGTowerAuxContainer* + createPersistent( xAOD::JGTowerAuxContainer* trans ); + /// Function reading in the object from the input file + virtual xAOD::JGTowerAuxContainer* createTransient(); + +}; // class xAODJGTowerAuxContainerCnv + +#endif // XAODTRIGL1CALOATHENAPOOL_XAODJGTOWERAUXCONTAINERCNV_H diff --git a/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerContainerCnv.cxx b/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerContainerCnv.cxx new file mode 100755 index 00000000000..6acef775fbb --- /dev/null +++ b/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerContainerCnv.cxx @@ -0,0 +1,85 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + + +// System include(s): +#include + +// Local include(s): +#include "xAODJGTowerContainerCnv.h" + +namespace { + /// Helper function setting up the container's link to its auxiliary store + void setStoreLink( SG::AuxVectorBase* cont, const std::string& key ) { + + // The link to set up: + DataLink< SG::IConstAuxStore > link( key + "Aux." ); + + // Give it to the container: + cont->setStore( link ); + + return; + } +} // private namespace + +xAODJGTowerContainerCnv::xAODJGTowerContainerCnv( ISvcLocator* svcLoc ) + : xAODJGTowerContainerCnvBase( svcLoc ) { +} + +/** +* This function needs to be re-implemented in order to figure out the StoreGate +* key of the container that's being created. After that's done, it lets the +* base class do its normal task. +*/ + +StatusCode xAODJGTowerContainerCnv::createObj( IOpaqueAddress* pAddr, DataObject*& pObj ) { + + // Get the key of the container that we'll be creating: + m_key = *( pAddr->par() + 1 ); + + // Let the base class do its thing now: + return AthenaPoolConverter::createObj( pAddr, pObj ); +} + +xAOD::JGTowerContainer* +xAODJGTowerContainerCnv::createPersistent( xAOD::JGTowerContainer* trans ) { + + // Create a view copy of the container: + xAOD::JGTowerContainer* result = + new xAOD::JGTowerContainer( trans->begin(), trans->end(), + SG::VIEW_ELEMENTS ); + + // Prepare the objects to be written out: + xAOD::JGTowerContainer::iterator itr = result->begin(); + xAOD::JGTowerContainer::iterator end = result->end(); + for( ; itr != end; ++itr ) { + toPersistent( *itr ); + } + + // Return the new container: + return result; +} + +xAOD::JGTowerContainer* xAODJGTowerContainerCnv::createTransient() { + // The known ID(s) for this container: + static pool::Guid guid( "d8759707-7ad9-4567-af03-753b7eed4521" ); + + // Check if we're reading the most up to date type: + if( compareClassGuid( guid ) ) { + xAOD::JGTowerContainer* c = poolReadObject< xAOD::JGTowerContainer >(); + setStoreLink( c , m_key ); + return c; + } + + // If we didn't recognise the ID, let's complain: + throw std::runtime_error( "Unsupported version of " + "xAOD::JGTowerContainer found" ); + return 0; +} + +void xAODJGTowerContainerCnv:: +toPersistent( xAOD::JGTower* /*cluster*/ ) const { + + return; +} diff --git a/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerContainerCnv.h b/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerContainerCnv.h new file mode 100755 index 00000000000..338cd11a468 --- /dev/null +++ b/Event/xAOD/xAODTrigL1CaloAthenaPool/src/xAODJGTowerContainerCnv.h @@ -0,0 +1,55 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + + +#ifndef XAODTRIGL1CALOATHENAPOOL_XAODJGTOWERCONTAINERCNV_H +#define XAODTRIGL1CALOATHENAPOOL_XAODJGTOWERCONTAINERCNV_H + +// Gaudi/Athena include(s): +#include "AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.h" + +// EDM include(s): +#include "xAODTrigL1Calo/JGTowerContainer.h" + +/// Type definition for the converter's base +typedef T_AthenaPoolCustomCnv< xAOD::JGTowerContainer, + xAOD::JGTowerContainer > + xAODJGTowerContainerCnvBase; + +/** + * @short POOL converter for the xAOD::JGTowerContainer class + * + * Simple converter class making the xAOD::JGTowerContainer + * class known to POOL. + * + * @author Attila Krasznahorkay + * @author John Morris + * + */ +class xAODJGTowerContainerCnv : public xAODJGTowerContainerCnvBase { + + // Declare the factory as our friend: + friend class CnvFactory< xAODJGTowerContainerCnv >; + +public: + /// Converter constructor + xAODJGTowerContainerCnv( ISvcLocator* svcLoc ); + + /// Re-implemented function in order to get access to the SG key + virtual StatusCode createObj( IOpaqueAddress* pAddr, DataObject*& pObj ); + /// Function preparing the container to be written out + virtual xAOD::JGTowerContainer* createPersistent( xAOD::JGTowerContainer* trans ); + /// Function reading in the persistent object + virtual xAOD::JGTowerContainer* createTransient(); + +private: + /// Function preparing a vertex object for persistence + void toPersistent( xAOD::JGTower* cluster ) const; + + /// StoreGate key of the container just being created + std::string m_key; + +}; // class xAODJGTowerContainerCnv + +#endif -- GitLab From b63f7874ae12878cfcb5f2033d1ed762aaa9598a Mon Sep 17 00:00:00 2001 From: Daniele Zanzi Date: Fri, 12 Jul 2019 12:29:43 +0200 Subject: [PATCH 3/5] ported TriggerEDM from 21.3 to 21.2 --- .../TrigEDMConfig/python/TriggerEDM.py | 128 +++++++++++++++--- 1 file changed, 106 insertions(+), 22 deletions(-) diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py index a8c73f6497f..c7a42c4863a 100644 --- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py +++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py @@ -31,11 +31,10 @@ # Muon # Steer # Tau -# Calo <-- new -# Tracking <-- new -# Combined <-- new +# Calo +# Tracking +# Combined # Unknown <-- should be temporary until you figure out what to classify it as -# Other?...maybe inDet(ID?), Truth from TrigEDMConfig.TriggerEDMRun1 import TriggerL2List,TriggerEFList,TriggerResultsRun1List @@ -88,7 +87,9 @@ UnusedOldTau = ["ipZ0SinThetaSigLeadTrk", "trkWidth2", "numEffTopoClusters", "to UnusedProperties = ["Likelihood", "SafeLikelihood", "BDTEleScore", "BDTJetScoreSigTrans", "BDTJetScoreBkgTrans", "vetoFlags", "isTauFlags", "trackFlags", "trackFilterProngs", "trackFilterQuality", "trackEtaStrip", "trackPhiStrip", - "TauJetVtxFraction", "LeadClusterFrac", "UpsilonCluster" ] + "TauJetVtxFraction", "LeadClusterFrac", "UpsilonCluster", "ClustersMeanSecondLambda", "ClustersMeanEMProbability", + "ClustersMeanCenterLambda", "ClustersMeanPresamplerFrac", "mu", "nVtxPU", "ClustersMeanFirstEngDens", "nModifiedIsolationTracks", + "NUMWIDETRACK", "NUMTRACK", "MU", "absipSigLeadTrk" ] UnusedFourMom = ["ptIntermediateAxis", "etaIntermediateAxis", "phiIntermediateAxis", "mIntermediateAxis", "ptTauEtaCalib", "etaTauEtaCalib", "phiTauEtaCalib", "mTauEtaCalib", "EM_TES_scale"] @@ -218,6 +219,8 @@ TriggerHLTList = [ ('xAOD::TrigCompositeContainer#HLT_TrigEFDielectronMassFex', 'BS ESD AODFULL AODSLIM', 'Egamma'), ('xAOD::TrigCompositeAuxContainer#HLT_TrigEFDielectronMassFexAux.', 'BS ESD AODFULL AODSLIM', 'Egamma'), + ('xAOD::TrackParticleContainer#HLT_GSFTrigTrackParticles', 'BS ESD AODFULL AODSLIM', 'Egamma'), + ('xAOD::TrackParticleAuxContainer#HLT_GSFTrigTrackParticlesAux'+RemoveIDVariables, 'BS ESD AODFULL AODSLIM', 'Egamma'), #bphys ('xAOD::TrigBphysContainer#HLT_EFBMuMuFex', 'BS ESD AODFULL AODSLIM AODVERYSLIM AODBLSSLIM', 'Bphys'), @@ -352,6 +355,18 @@ TriggerHLTList = [ ('xAOD::TrigMissingETAuxContainer#HLT_EFMissingET_Fex_2sidednoiseSupp_PUCAux.', 'BS ESD AODFULL AODSLIM', 'MET'), ('xAOD::TrigMissingET#HLT_TrigEFMissingET_mht', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_mhtAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), + + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_topocltrk_PUC_nojcalib', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_topocltrk_PUC_nojcalibAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), + + + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_topocltrk_PUC_nojcalib', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_topocltrk_PUC_nojcalibAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_topocltrk_PUC_em_nojcalib', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_topocltrk_PUC_em_nojcalibAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), + + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_topocltrk_PUC_nojcalib', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_topocltrk_PUC_nojcalibAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trkmht', 'BS ESD AODFULL AODSLIM', 'MET'), ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trkmhtAux.', 'BS ESD AODFULL AODSLIM', 'MET'), @@ -360,6 +375,16 @@ TriggerHLTList = [ ('xAOD::TrigMissingET#HLT_TrigEFMissingET_mht_em', 'BS ESD AODFULL AODSLIM', 'MET'), ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_mht_emAux.', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trktc', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trktcAux.', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trktcFTK', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trktcFTKAux.', 'BS ESD AODFULL AODSLIM', 'MET'), + + + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trktc', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trktcAux.', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trktcFTK', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trktcFTKAux.', 'BS ESD AODFULL AODSLIM', 'MET'), @@ -488,8 +513,8 @@ TriggerHLTList = [ ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubFSAux.', 'BS ESD AODFULL', 'Jet'), - ('xAOD::JetContainer#HLT_a4tcemsubjesFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), - ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubjesFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), + ('xAOD::JetContainer#HLT_a4tcemsubjesFS', 'BS ESD AODFULL', 'Jet'), + ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubjesFSAux.', 'BS ESD AODFULL', 'Jet'), ('xAOD::JetContainer#HLT_a4tcemnojcalibFS', 'BS ESD AODFULL', 'Jet'), ('xAOD::JetTrigAuxContainer#HLT_a4tcemnojcalibFSAux.', 'BS ESD AODFULL', 'Jet'), @@ -565,8 +590,8 @@ TriggerHLTList = [ ('xAOD::JetTrigAuxContainer#HLT_a10TThadnojcalibFSAux.', 'BS ESD AODFULL', 'Jet'), # Reclustered jets - ('xAOD::JetContainer#HLT_a10r_tcemsubjesFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), - ('xAOD::JetTrigAuxContainer#HLT_a10r_tcemsubjesFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), + ('xAOD::JetContainer#HLT_a10r_tcemsubjesFS', 'BS ESD AODFULL', 'Jet'), + ('xAOD::JetTrigAuxContainer#HLT_a10r_tcemsubjesFSAux.', 'BS ESD AODFULL', 'Jet'), ('xAOD::JetContainer#HLT_a10r_tcemsubjesISFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetTrigAuxContainer#HLT_a10r_tcemsubjesISFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), @@ -580,13 +605,19 @@ TriggerHLTList = [ # R=0.3 HI jets ('xAOD::JetContainer#HLT_a3ionemsubjesFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetTrigAuxContainer#HLT_a3ionemsubjesFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), + # R=0.4 HI jets with insitu calibration + ('xAOD::JetContainer#HLT_a4ionemsubjesISFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), + ('xAOD::JetTrigAuxContainer#HLT_a4ionemsubjesISFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), + # R=0.3 HI jets with insitu calibration + ('xAOD::JetContainer#HLT_a3ionemsubjesISFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), + ('xAOD::JetTrigAuxContainer#HLT_a3ionemsubjesISFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), # 2016 EM Calibration ('xAOD::JetContainer#HLT_a4tcemsubjesISFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubjesISFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), # 2016 LCW Calibration - ('xAOD::JetContainer#HLT_a4tclcwsubjesISFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), - ('xAOD::JetTrigAuxContainer#HLT_a4tclcwsubjesISFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), + ('xAOD::JetContainer#HLT_a4tclcwsubjesISFS', 'BS ESD AODFULL', 'Jet'), + ('xAOD::JetTrigAuxContainer#HLT_a4tclcwsubjesISFSAux.', 'BS ESD AODFULL', 'Jet'), # Large R trimmed jets ('xAOD::JetContainer#HLT_a10t_tclcwjesFS', '', 'Jet'), @@ -604,8 +635,10 @@ TriggerHLTList = [ ('xAOD::JetTrigAuxContainer#HLT_a10ttclcwnojcalibFSAux.', 'BS ESD AODFULL', 'Jet'), # SoftKiller - ('xAOD::JetContainer#HLT_a4sktclcwnojcalibFS', 'BS ESD AODFULL', 'Jet'), - ('xAOD::JetTrigAuxContainer#HLT_a4sktclcwnojcalibFSAux.', 'BS ESD AODFULL', 'Jet'), + ('xAOD::JetContainer#HLT_a4sktclcwnojcalibFS', 'BS ESD AODFULL AODSLIM', 'Jet'), + ('xAOD::JetTrigAuxContainer#HLT_a4sktclcwnojcalibFSAux.', 'BS ESD AODFULL AODSLIM', 'Jet'), + ('xAOD::JetContainer#HLT_a4sktcemnojcalibFS', 'BS ESD AODFULL AODSLIM', 'Jet'), + ('xAOD::JetTrigAuxContainer#HLT_a4sktcemnojcalibFSAux.', 'BS ESD AODFULL AODSLIM', 'Jet'), #GSC ('xAOD::JetContainer#HLT_GSCJet', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'), @@ -616,6 +649,9 @@ TriggerHLTList = [ ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubjesISFSftkAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetContainer#HLT_a4tcemsubjesISFSftkrefit', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubjesISFSftkrefitAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), + + # 2018 HI Calo noise suppresion calibration + ('xAOD::CaloClusterContainer#HLT_CaloCalTopoCluster', 'BS ESD AODFULL', 'Calo'), #btagging ('xAOD::BTaggingContainer#HLT_HLTBjetFex', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'), @@ -912,6 +948,40 @@ TriggerLvl1List=[ ('xAOD::L1TopoRawDataContainer#L1TopoRawData' , 'ESD AODFULL AODBLSSLIM', 'L1'), ('xAOD::L1TopoRawDataAuxContainer#L1TopoRawDataAux.', 'ESD AODFULL AODBLSSLIM', 'L1'), +# Run 3 performance studies + # SuperCells + ("CaloCellContainer#SCell", 'ESD AODFULL', 'L1'), + ("CaloCellContainer#SimpleSCell", 'ESD AODFULL', 'L1'), + # JTowers and GTowers + ( 'xAOD::JGTowerContainer#JTower', 'ESD AODFULL', 'L1'), + ( 'xAOD::JGTowerAuxContainer#JTowerAux.', 'ESD AODFULL', 'L1'), + ( 'xAOD::JGTowerContainer#GTower', 'ESD AODFULL', 'L1'), + ( 'xAOD::JGTowerAuxContainer#GTowerAux.', 'ESD AODFULL', 'L1'), + # jFEX jets + ( 'xAOD::JetRoIContainer#jRoundJets', 'ESD AODFULL', 'L1'), + ( 'xAOD::JetRoIAuxContainer#jRoundJetsAux.', 'ESD AODFULL', 'L1'), + ( 'xAOD::JetRoIContainer#jRoundLargeRJets', 'ESD AODFULL', 'L1'), + ( 'xAOD::JetRoIAuxContainer#jRoundLargeRJetsAux.', 'ESD AODFULL', 'L1'), + # gFEX jets + ( 'xAOD::JetRoIContainer#gL1Jets', 'ESD AODFULL', 'L1'), + ( 'xAOD::JetRoIAuxContainer#gL1JetsAux.', 'ESD AODFULL', 'L1'), + # gFEX MET + ( 'xAOD::EnergySumRoI#gXEJWOJ_MET', 'ESD AODFULL', 'L1'), + ( 'xAOD::EnergySumRoIAuxInfo#gXEJWOJ_METAux.', 'ESD AODFULL', 'L1'), + ( 'xAOD::EnergySumRoI#gXEPUFIT_MET', 'ESD AODFULL', 'L1'), + ( 'xAOD::EnergySumRoIAuxInfo#gXEPUFIT_METAux.', 'ESD AODFULL', 'L1'), + ( 'xAOD::EnergySumRoI#gXERHO_MET', 'ESD AODFULL', 'L1'), + ( 'xAOD::EnergySumRoIAuxInfo#gXERHO_METAux.', 'ESD AODFULL', 'L1'), + # eFEX electrons + ("xAOD::TrigEMClusterContainer#SClusterCl" , 'ESD AODFULL', 'L1'), + ("xAOD::TrigEMClusterAuxContainer#SClusterClAux." , 'ESD AODFULL', 'L1'), + # eFEX taus + ('xAOD::EmTauRoIContainer#SClusterTau', 'ESD AODFULL', 'L1'), + ('xAOD::EmTauRoIAuxContainer#SClusterTauAux.', 'ESD AODFULL', 'L1'), + # CTP + ('CTP_RDO#CTP_RDO_L1Run3' , 'ESD', 'Steer'), + + ('DataVector#JetElements' , 'ESD', 'L1'), ('DataVector#JetElementsOverlap' , 'ESD', 'L1'), ('DataVector#CPMTowers' , 'ESD', 'L1'), @@ -992,7 +1062,7 @@ TriggerLvl1List=[ TriggerIDTruth= [ - ('TrigInDetTrackTruthMap#TrigInDetTrackTruthMap', 'ESD AODFULL AODSLIM', 'Unknown') + ('TrigInDetTrackTruthMap#TrigInDetTrackTruthMap', 'ESD AODFULL AODSLIM', 'Tracking') # changed from Unknown to Tracking (ATR-18320) ] @@ -1487,10 +1557,17 @@ EDMDetails['xAOD::RODHeaderAuxContainer'] = {'persistent': "", ' EDMDetails['xAOD::CMXRoIContainer'] = {'persistent': "", 'typealias':'' } EDMDetails['xAOD::CMXRoIAuxContainer'] = {'persistent': "", 'typealias':'', 'parent': 'xAOD::CMXRoIContainer' } + +# objects for Run 3 L1Calo +EDMDetails['xAOD::JGTowerContainer'] = {'persistent': "", 'typealias':'' } +EDMDetails['xAOD::JGTowerAuxContainer'] = {'persistent': "", 'typealias':'', 'parent': 'xAOD::JGTowerContainer' } + + + # ============================================================================= # -# Rustem Ospanov: move list of EDM libraries from HLTTriggerGetter.py to TriggerEDM.py +# Move list of EDM libraries from HLTTriggerGetter.py to TriggerEDM.py # EDMLibraries = [ 'TrigSteeringEvent', 'TrigMuonEvent', 'TrigBphysicsEvent', 'TrigCaloEvent', @@ -1540,7 +1617,7 @@ def getCategory(s): s = s.strip() # To-do - # seperate the first part of the string at the fisrt '_' + # seperate the first part of the string at the first '_' # search in EDMDetails for the key corresponding to the persistent value # if a key is found, use this as the first part of the original string # put the string back together @@ -1555,9 +1632,8 @@ def getCategory(s): if s.count('_'): s = s[s.index('_')+1:] if s.count('_'): s = s[s.index('_')+1:] s = "HLT_"+s - if s.count('.') : s = s[:s.index('.')] - + if s.count('.') : s = s[:s.index('.')] if s.count('::'): s = s[s.index(':')+2:] if s.count('<'): s = s[s.index('<')+1:] if s.count('>'): s = s[:s.index('>')] @@ -1567,7 +1643,7 @@ def getCategory(s): category = '' bestMatch = '' - + """ Loop over all objects already defined in lists (and hopefully categorized!!) """ for item in TriggerList: t,k = getTypeAndKey(item[0]) @@ -1585,7 +1661,7 @@ def getCategory(s): if (s == k): bestMatch = k category = item[2] - + if category == '': return 'NOTFOUND' return category @@ -1597,7 +1673,7 @@ def getTypeAndKey(s): return s[:s.index('#')], s[s.index('#')+1:] def keyToLabel(key): - """ The key is usually HLT_blablah, this function returns second part of it or empty string + """ The key is usually HLT_*, this function returns second part of it or empty string """ if '_' not in key: return '' @@ -1647,7 +1723,15 @@ def getLvl1AODList(): """ Gives back the Python dictionary with the lvl1 trigger result content of AOD which can be inserted in OKS. """ - return getTriggerObjList('AODFULL',[TriggerLvl1List]) + + l1list = TriggerLvl1List + + from TrigT1CaloFexSim.L1SimulationControlFlags import L1Phase1SimFlags as simflags + if simflags.Calo.StoreSuperCellsInAODFULL() == False: + #remove SuperCell containers + l1list = filter( lambda x : x[0] not in ["CaloCellContainer#SCell", "CaloCellContainer#SimpleSCell"], l1list ) + + return getTriggerObjList('AODFULL',[l1list]) def getTriggerEDMList(key, runVersion): -- GitLab From 92a7e3057587fca27758baf7c4d2a72ae7c7f1df Mon Sep 17 00:00:00 2001 From: Daniele Zanzi Date: Fri, 12 Jul 2019 13:15:06 +0200 Subject: [PATCH 4/5] fix in TriggerEDM 21.2 --- Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py index c7a42c4863a..3c849317fdd 100644 --- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py +++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py @@ -1726,10 +1726,11 @@ def getLvl1AODList(): l1list = TriggerLvl1List - from TrigT1CaloFexSim.L1SimulationControlFlags import L1Phase1SimFlags as simflags - if simflags.Calo.StoreSuperCellsInAODFULL() == False: - #remove SuperCell containers - l1list = filter( lambda x : x[0] not in ["CaloCellContainer#SCell", "CaloCellContainer#SimpleSCell"], l1list ) +# not working in 21.2 (missing TrigT1CaloFexSim) +# from TrigT1CaloFexSim.L1SimulationControlFlags import L1Phase1SimFlags as simflags +# if simflags.Calo.StoreSuperCellsInAODFULL() == False: +# #remove SuperCell containers +# l1list = filter( lambda x : x[0] not in ["CaloCellContainer#SCell", "CaloCellContainer#SimpleSCell"], l1list ) return getTriggerObjList('AODFULL',[l1list]) -- GitLab From e613a5d571d210e6da6205d33e1c018f92f357b7 Mon Sep 17 00:00:00 2001 From: Daniele Zanzi Date: Fri, 12 Jul 2019 14:13:51 +0200 Subject: [PATCH 5/5] reverting changes in TriggerEDM --- .../TrigEDMConfig/python/TriggerEDM.py | 129 +++--------------- 1 file changed, 22 insertions(+), 107 deletions(-) diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py index 3c849317fdd..a8c73f6497f 100644 --- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py +++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py @@ -31,10 +31,11 @@ # Muon # Steer # Tau -# Calo -# Tracking -# Combined +# Calo <-- new +# Tracking <-- new +# Combined <-- new # Unknown <-- should be temporary until you figure out what to classify it as +# Other?...maybe inDet(ID?), Truth from TrigEDMConfig.TriggerEDMRun1 import TriggerL2List,TriggerEFList,TriggerResultsRun1List @@ -87,9 +88,7 @@ UnusedOldTau = ["ipZ0SinThetaSigLeadTrk", "trkWidth2", "numEffTopoClusters", "to UnusedProperties = ["Likelihood", "SafeLikelihood", "BDTEleScore", "BDTJetScoreSigTrans", "BDTJetScoreBkgTrans", "vetoFlags", "isTauFlags", "trackFlags", "trackFilterProngs", "trackFilterQuality", "trackEtaStrip", "trackPhiStrip", - "TauJetVtxFraction", "LeadClusterFrac", "UpsilonCluster", "ClustersMeanSecondLambda", "ClustersMeanEMProbability", - "ClustersMeanCenterLambda", "ClustersMeanPresamplerFrac", "mu", "nVtxPU", "ClustersMeanFirstEngDens", "nModifiedIsolationTracks", - "NUMWIDETRACK", "NUMTRACK", "MU", "absipSigLeadTrk" ] + "TauJetVtxFraction", "LeadClusterFrac", "UpsilonCluster" ] UnusedFourMom = ["ptIntermediateAxis", "etaIntermediateAxis", "phiIntermediateAxis", "mIntermediateAxis", "ptTauEtaCalib", "etaTauEtaCalib", "phiTauEtaCalib", "mTauEtaCalib", "EM_TES_scale"] @@ -219,8 +218,6 @@ TriggerHLTList = [ ('xAOD::TrigCompositeContainer#HLT_TrigEFDielectronMassFex', 'BS ESD AODFULL AODSLIM', 'Egamma'), ('xAOD::TrigCompositeAuxContainer#HLT_TrigEFDielectronMassFexAux.', 'BS ESD AODFULL AODSLIM', 'Egamma'), - ('xAOD::TrackParticleContainer#HLT_GSFTrigTrackParticles', 'BS ESD AODFULL AODSLIM', 'Egamma'), - ('xAOD::TrackParticleAuxContainer#HLT_GSFTrigTrackParticlesAux'+RemoveIDVariables, 'BS ESD AODFULL AODSLIM', 'Egamma'), #bphys ('xAOD::TrigBphysContainer#HLT_EFBMuMuFex', 'BS ESD AODFULL AODSLIM AODVERYSLIM AODBLSSLIM', 'Bphys'), @@ -355,18 +352,6 @@ TriggerHLTList = [ ('xAOD::TrigMissingETAuxContainer#HLT_EFMissingET_Fex_2sidednoiseSupp_PUCAux.', 'BS ESD AODFULL AODSLIM', 'MET'), ('xAOD::TrigMissingET#HLT_TrigEFMissingET_mht', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_mhtAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), - - ('xAOD::TrigMissingET#HLT_TrigEFMissingET_topocltrk_PUC_nojcalib', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), - ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_topocltrk_PUC_nojcalibAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), - - - ('xAOD::TrigMissingET#HLT_TrigEFMissingET_topocltrk_PUC_nojcalib', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), - ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_topocltrk_PUC_nojcalibAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), - ('xAOD::TrigMissingET#HLT_TrigEFMissingET_topocltrk_PUC_em_nojcalib', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), - ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_topocltrk_PUC_em_nojcalibAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), - - ('xAOD::TrigMissingET#HLT_TrigEFMissingET_topocltrk_PUC_nojcalib', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), - ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_topocltrk_PUC_nojcalibAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trkmht', 'BS ESD AODFULL AODSLIM', 'MET'), ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trkmhtAux.', 'BS ESD AODFULL AODSLIM', 'MET'), @@ -375,16 +360,6 @@ TriggerHLTList = [ ('xAOD::TrigMissingET#HLT_TrigEFMissingET_mht_em', 'BS ESD AODFULL AODSLIM', 'MET'), ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_mht_emAux.', 'BS ESD AODFULL AODSLIM', 'MET'), - ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trktc', 'BS ESD AODFULL AODSLIM', 'MET'), - ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trktcAux.', 'BS ESD AODFULL AODSLIM', 'MET'), - ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trktcFTK', 'BS ESD AODFULL AODSLIM', 'MET'), - ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trktcFTKAux.', 'BS ESD AODFULL AODSLIM', 'MET'), - - - ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trktc', 'BS ESD AODFULL AODSLIM', 'MET'), - ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trktcAux.', 'BS ESD AODFULL AODSLIM', 'MET'), - ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trktcFTK', 'BS ESD AODFULL AODSLIM', 'MET'), - ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trktcFTKAux.', 'BS ESD AODFULL AODSLIM', 'MET'), @@ -513,8 +488,8 @@ TriggerHLTList = [ ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubFSAux.', 'BS ESD AODFULL', 'Jet'), - ('xAOD::JetContainer#HLT_a4tcemsubjesFS', 'BS ESD AODFULL', 'Jet'), - ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubjesFSAux.', 'BS ESD AODFULL', 'Jet'), + ('xAOD::JetContainer#HLT_a4tcemsubjesFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), + ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubjesFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetContainer#HLT_a4tcemnojcalibFS', 'BS ESD AODFULL', 'Jet'), ('xAOD::JetTrigAuxContainer#HLT_a4tcemnojcalibFSAux.', 'BS ESD AODFULL', 'Jet'), @@ -590,8 +565,8 @@ TriggerHLTList = [ ('xAOD::JetTrigAuxContainer#HLT_a10TThadnojcalibFSAux.', 'BS ESD AODFULL', 'Jet'), # Reclustered jets - ('xAOD::JetContainer#HLT_a10r_tcemsubjesFS', 'BS ESD AODFULL', 'Jet'), - ('xAOD::JetTrigAuxContainer#HLT_a10r_tcemsubjesFSAux.', 'BS ESD AODFULL', 'Jet'), + ('xAOD::JetContainer#HLT_a10r_tcemsubjesFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), + ('xAOD::JetTrigAuxContainer#HLT_a10r_tcemsubjesFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetContainer#HLT_a10r_tcemsubjesISFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetTrigAuxContainer#HLT_a10r_tcemsubjesISFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), @@ -605,19 +580,13 @@ TriggerHLTList = [ # R=0.3 HI jets ('xAOD::JetContainer#HLT_a3ionemsubjesFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetTrigAuxContainer#HLT_a3ionemsubjesFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), - # R=0.4 HI jets with insitu calibration - ('xAOD::JetContainer#HLT_a4ionemsubjesISFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), - ('xAOD::JetTrigAuxContainer#HLT_a4ionemsubjesISFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), - # R=0.3 HI jets with insitu calibration - ('xAOD::JetContainer#HLT_a3ionemsubjesISFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), - ('xAOD::JetTrigAuxContainer#HLT_a3ionemsubjesISFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), # 2016 EM Calibration ('xAOD::JetContainer#HLT_a4tcemsubjesISFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubjesISFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), # 2016 LCW Calibration - ('xAOD::JetContainer#HLT_a4tclcwsubjesISFS', 'BS ESD AODFULL', 'Jet'), - ('xAOD::JetTrigAuxContainer#HLT_a4tclcwsubjesISFSAux.', 'BS ESD AODFULL', 'Jet'), + ('xAOD::JetContainer#HLT_a4tclcwsubjesISFS', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), + ('xAOD::JetTrigAuxContainer#HLT_a4tclcwsubjesISFSAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), # Large R trimmed jets ('xAOD::JetContainer#HLT_a10t_tclcwjesFS', '', 'Jet'), @@ -635,10 +604,8 @@ TriggerHLTList = [ ('xAOD::JetTrigAuxContainer#HLT_a10ttclcwnojcalibFSAux.', 'BS ESD AODFULL', 'Jet'), # SoftKiller - ('xAOD::JetContainer#HLT_a4sktclcwnojcalibFS', 'BS ESD AODFULL AODSLIM', 'Jet'), - ('xAOD::JetTrigAuxContainer#HLT_a4sktclcwnojcalibFSAux.', 'BS ESD AODFULL AODSLIM', 'Jet'), - ('xAOD::JetContainer#HLT_a4sktcemnojcalibFS', 'BS ESD AODFULL AODSLIM', 'Jet'), - ('xAOD::JetTrigAuxContainer#HLT_a4sktcemnojcalibFSAux.', 'BS ESD AODFULL AODSLIM', 'Jet'), + ('xAOD::JetContainer#HLT_a4sktclcwnojcalibFS', 'BS ESD AODFULL', 'Jet'), + ('xAOD::JetTrigAuxContainer#HLT_a4sktclcwnojcalibFSAux.', 'BS ESD AODFULL', 'Jet'), #GSC ('xAOD::JetContainer#HLT_GSCJet', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'), @@ -649,9 +616,6 @@ TriggerHLTList = [ ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubjesISFSftkAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetContainer#HLT_a4tcemsubjesISFSftkrefit', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), ('xAOD::JetTrigAuxContainer#HLT_a4tcemsubjesISFSftkrefitAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'), - - # 2018 HI Calo noise suppresion calibration - ('xAOD::CaloClusterContainer#HLT_CaloCalTopoCluster', 'BS ESD AODFULL', 'Calo'), #btagging ('xAOD::BTaggingContainer#HLT_HLTBjetFex', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'), @@ -948,40 +912,6 @@ TriggerLvl1List=[ ('xAOD::L1TopoRawDataContainer#L1TopoRawData' , 'ESD AODFULL AODBLSSLIM', 'L1'), ('xAOD::L1TopoRawDataAuxContainer#L1TopoRawDataAux.', 'ESD AODFULL AODBLSSLIM', 'L1'), -# Run 3 performance studies - # SuperCells - ("CaloCellContainer#SCell", 'ESD AODFULL', 'L1'), - ("CaloCellContainer#SimpleSCell", 'ESD AODFULL', 'L1'), - # JTowers and GTowers - ( 'xAOD::JGTowerContainer#JTower', 'ESD AODFULL', 'L1'), - ( 'xAOD::JGTowerAuxContainer#JTowerAux.', 'ESD AODFULL', 'L1'), - ( 'xAOD::JGTowerContainer#GTower', 'ESD AODFULL', 'L1'), - ( 'xAOD::JGTowerAuxContainer#GTowerAux.', 'ESD AODFULL', 'L1'), - # jFEX jets - ( 'xAOD::JetRoIContainer#jRoundJets', 'ESD AODFULL', 'L1'), - ( 'xAOD::JetRoIAuxContainer#jRoundJetsAux.', 'ESD AODFULL', 'L1'), - ( 'xAOD::JetRoIContainer#jRoundLargeRJets', 'ESD AODFULL', 'L1'), - ( 'xAOD::JetRoIAuxContainer#jRoundLargeRJetsAux.', 'ESD AODFULL', 'L1'), - # gFEX jets - ( 'xAOD::JetRoIContainer#gL1Jets', 'ESD AODFULL', 'L1'), - ( 'xAOD::JetRoIAuxContainer#gL1JetsAux.', 'ESD AODFULL', 'L1'), - # gFEX MET - ( 'xAOD::EnergySumRoI#gXEJWOJ_MET', 'ESD AODFULL', 'L1'), - ( 'xAOD::EnergySumRoIAuxInfo#gXEJWOJ_METAux.', 'ESD AODFULL', 'L1'), - ( 'xAOD::EnergySumRoI#gXEPUFIT_MET', 'ESD AODFULL', 'L1'), - ( 'xAOD::EnergySumRoIAuxInfo#gXEPUFIT_METAux.', 'ESD AODFULL', 'L1'), - ( 'xAOD::EnergySumRoI#gXERHO_MET', 'ESD AODFULL', 'L1'), - ( 'xAOD::EnergySumRoIAuxInfo#gXERHO_METAux.', 'ESD AODFULL', 'L1'), - # eFEX electrons - ("xAOD::TrigEMClusterContainer#SClusterCl" , 'ESD AODFULL', 'L1'), - ("xAOD::TrigEMClusterAuxContainer#SClusterClAux." , 'ESD AODFULL', 'L1'), - # eFEX taus - ('xAOD::EmTauRoIContainer#SClusterTau', 'ESD AODFULL', 'L1'), - ('xAOD::EmTauRoIAuxContainer#SClusterTauAux.', 'ESD AODFULL', 'L1'), - # CTP - ('CTP_RDO#CTP_RDO_L1Run3' , 'ESD', 'Steer'), - - ('DataVector#JetElements' , 'ESD', 'L1'), ('DataVector#JetElementsOverlap' , 'ESD', 'L1'), ('DataVector#CPMTowers' , 'ESD', 'L1'), @@ -1062,7 +992,7 @@ TriggerLvl1List=[ TriggerIDTruth= [ - ('TrigInDetTrackTruthMap#TrigInDetTrackTruthMap', 'ESD AODFULL AODSLIM', 'Tracking') # changed from Unknown to Tracking (ATR-18320) + ('TrigInDetTrackTruthMap#TrigInDetTrackTruthMap', 'ESD AODFULL AODSLIM', 'Unknown') ] @@ -1557,17 +1487,10 @@ EDMDetails['xAOD::RODHeaderAuxContainer'] = {'persistent': "", ' EDMDetails['xAOD::CMXRoIContainer'] = {'persistent': "", 'typealias':'' } EDMDetails['xAOD::CMXRoIAuxContainer'] = {'persistent': "", 'typealias':'', 'parent': 'xAOD::CMXRoIContainer' } - -# objects for Run 3 L1Calo -EDMDetails['xAOD::JGTowerContainer'] = {'persistent': "", 'typealias':'' } -EDMDetails['xAOD::JGTowerAuxContainer'] = {'persistent': "", 'typealias':'', 'parent': 'xAOD::JGTowerContainer' } - - - # ============================================================================= # -# Move list of EDM libraries from HLTTriggerGetter.py to TriggerEDM.py +# Rustem Ospanov: move list of EDM libraries from HLTTriggerGetter.py to TriggerEDM.py # EDMLibraries = [ 'TrigSteeringEvent', 'TrigMuonEvent', 'TrigBphysicsEvent', 'TrigCaloEvent', @@ -1617,7 +1540,7 @@ def getCategory(s): s = s.strip() # To-do - # seperate the first part of the string at the first '_' + # seperate the first part of the string at the fisrt '_' # search in EDMDetails for the key corresponding to the persistent value # if a key is found, use this as the first part of the original string # put the string back together @@ -1632,8 +1555,9 @@ def getCategory(s): if s.count('_'): s = s[s.index('_')+1:] if s.count('_'): s = s[s.index('_')+1:] s = "HLT_"+s + if s.count('.') : s = s[:s.index('.')] - if s.count('.') : s = s[:s.index('.')] + if s.count('::'): s = s[s.index(':')+2:] if s.count('<'): s = s[s.index('<')+1:] if s.count('>'): s = s[:s.index('>')] @@ -1643,7 +1567,7 @@ def getCategory(s): category = '' bestMatch = '' - + """ Loop over all objects already defined in lists (and hopefully categorized!!) """ for item in TriggerList: t,k = getTypeAndKey(item[0]) @@ -1661,7 +1585,7 @@ def getCategory(s): if (s == k): bestMatch = k category = item[2] - + if category == '': return 'NOTFOUND' return category @@ -1673,7 +1597,7 @@ def getTypeAndKey(s): return s[:s.index('#')], s[s.index('#')+1:] def keyToLabel(key): - """ The key is usually HLT_*, this function returns second part of it or empty string + """ The key is usually HLT_blablah, this function returns second part of it or empty string """ if '_' not in key: return '' @@ -1723,16 +1647,7 @@ def getLvl1AODList(): """ Gives back the Python dictionary with the lvl1 trigger result content of AOD which can be inserted in OKS. """ - - l1list = TriggerLvl1List - -# not working in 21.2 (missing TrigT1CaloFexSim) -# from TrigT1CaloFexSim.L1SimulationControlFlags import L1Phase1SimFlags as simflags -# if simflags.Calo.StoreSuperCellsInAODFULL() == False: -# #remove SuperCell containers -# l1list = filter( lambda x : x[0] not in ["CaloCellContainer#SCell", "CaloCellContainer#SimpleSCell"], l1list ) - - return getTriggerObjList('AODFULL',[l1list]) + return getTriggerObjList('AODFULL',[TriggerLvl1List]) def getTriggerEDMList(key, runVersion): -- GitLab