From fd445cb2b0cc8095745d3960da951f4e1d6c4bcf Mon Sep 17 00:00:00 2001 From: Tatiana Ovsiannikova <tatiana.ovsiannikova@cern.ch> Date: Wed, 29 May 2024 14:03:20 +0200 Subject: [PATCH] separate pileup removal algo from calratiovar ATR-28412,ATR-22696 separate pileup removal algo from calratiovar ATR-28412,ATR-22696 --- .../python/ConditionDefaults.py | 2 + .../python/FastReductionAlgToolFactory.py | 1 + .../TrigHLTJetHypo/python/scenario_simple.py | 13 ++- .../src/PileupRemovalCondition.cxx | 110 ++++++++++++++++++ .../src/PileupRemovalCondition.h | 47 ++++++++ .../TrigHLTJetHypo/src/TrigJetCRHypoTool.cxx | 2 +- .../src/TrigJetCRVARHypoTool.cxx | 2 +- .../src/TrigJetConditionConfig_pileuprm.cxx | 43 +++++++ .../src/TrigJetConditionConfig_pileuprm.h | 35 ++++++ .../src/components/TrigHLTJetHypo_entries.cxx | 2 + .../share/ref_RDOtoRDOTrig_v1Dev_build.ref | 6 + .../share/ref_v1Dev_decodeBS_build.ref | 2 + .../python/HLT/Menu/Dev_pp_run3_v1.py | 4 +- .../python/HLT/Menu/SignatureDicts.py | 5 +- 14 files changed, 266 insertions(+), 8 deletions(-) create mode 100644 Trigger/TrigHypothesis/TrigHLTJetHypo/src/PileupRemovalCondition.cxx create mode 100644 Trigger/TrigHypothesis/TrigHLTJetHypo/src/PileupRemovalCondition.h create mode 100644 Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetConditionConfig_pileuprm.cxx create mode 100644 Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetConditionConfig_pileuprm.h diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/ConditionDefaults.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/ConditionDefaults.py index 2449df970403..a1a0dc8e1296 100644 --- a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/ConditionDefaults.py +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/ConditionDefaults.py @@ -37,6 +37,7 @@ class ConditionDefaults: 'bsel': {'min': '-inf', 'max': 'inf'}, 'tausel': {'min': '-inf', 'max': 'inf'}, 'clrsel': {'min': '-inf', 'max': 'inf'}, + 'pileuprm': {'min': '-inf', 'max': 'inf'}, 'momCuts': {'min': '-inf', 'max': 'inf'}, 'timing': {'min': '0', 'max': 'inf'}, 'timeSig': {'min': '0', 'max': 'inf'}, @@ -61,6 +62,7 @@ class ConditionDefaults: 'smc': 1000., 'jvt': 0.01, 'clrsel': 0.01, + 'pileuprm': 0.01, 'momCuts': 0.01, 'timing': 1.0, 'timeSig': 1.0, diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/FastReductionAlgToolFactory.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/FastReductionAlgToolFactory.py index 76c486d244b7..b7c287d22f00 100644 --- a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/FastReductionAlgToolFactory.py +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/FastReductionAlgToolFactory.py @@ -55,6 +55,7 @@ class FastReductionAlgToolFactory: 'bsel': [CompFactory.TrigJetConditionConfig_bdips, 0], 'tausel': [CompFactory.TrigJetConditionConfig_gntau, 0], 'clrsel': [CompFactory.TrigJetConditionConfig_emf, 0], + 'pileuprm': [CompFactory.TrigJetConditionConfig_pileuprm, 0], 'clean': [CompFactory.TrigJetConditionConfig_clean, 0], 'all': [CompFactory.TrigJetConditionConfig_acceptAll, 0], 'timing': [CompFactory.TrigJetConditionConfig_timing, 0], diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/scenario_simple.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/scenario_simple.py index a3b7bb3a8440..c54a114e8a0d 100644 --- a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/scenario_simple.py +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/scenario_simple.py @@ -9,7 +9,7 @@ from TrigHLTJetHypo.make_treevec import make_treevec # make a list of all possible cut items for the simple scenario all_elemental_keys = ('etaRange', 'jvt', 'smc', 'threshold', 'momCuts', 'bsel', 'tausel', - 'clrsel', 'timing', 'timeSig') + 'clrsel','pileuprm', 'timing', 'timeSig') # Extract moment cuts def _cuts_from_momCuts(momCuts): @@ -83,7 +83,6 @@ def get_condition_args_from_chainpart(cp): lo = values[0] vals = defaults(key, lo=lo) condargs.append((key, vals)) - if k == 'bsel': if 'bgnone' in v: key = 'bgnone' @@ -260,7 +259,15 @@ def get_condition_args_from_chainpart(cp): vals = defaults(k, lo=lo, hi=hi) vals["moment"] = jetMoments[moment] condargs.append((key, vals)) - + if k =='pileuprm': + key = 'pileuprm' + values = v.split(key) + if "n" in values[0]: + lo=values[0].replace("n","-",1) + if "n" in values[1]: + hi=values[1].replace("n","-",1) + vals = defaults(key, lo=lo, hi=hi) + condargs.append((key, vals)) return condargs diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/PileupRemovalCondition.cxx b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/PileupRemovalCondition.cxx new file mode 100644 index 000000000000..0591ed12961c --- /dev/null +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/PileupRemovalCondition.cxx @@ -0,0 +1,110 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ +# +#include "./PileupRemovalCondition.h" +#include "./ITrigJetHypoInfoCollector.h" +#include "TrigHLTJetHypo/TrigHLTJetHypoUtils/IJet.h" +#include "xAODCaloEvent/CaloCluster.h" +#include "CaloEvent/CaloClusterContainer.h" +#include <sstream> +#include <cmath> +#include <TLorentzVector.h> +#include "CxxUtils/fpcompare.h" +#include "CxxUtils/phihelper.h" +#include "FourMomUtils/xAODP4Helpers.h" + +PileupRemovalCondition::PileupRemovalCondition(double mMin,double mMax) : +m_min(mMin), m_max(mMax) { +} + +bool PileupRemovalCondition::isSatisfied(const pHypoJet& ip, + const std::unique_ptr<ITrigJetHypoInfoCollector>& collector) const { + float jetEMF = -999; + double LR=-1; + ip->getAttribute("EMFrac",jetEMF); + if (CxxUtils::fpcompare::less_equal (double(jetEMF),0))LR=-999; + if(CxxUtils::fpcompare::greater_equal(double(jetEMF),1.)) LR=-999; + else LR= log10(double(1./jetEMF - 1.)); + bool pass = LR > m_max; + // Recalculating the LR only if it's not satisfied the LR>m_max criteria + if (!pass){ + auto jetPhi= ip->phi(); + auto jetEta= ip->eta(); + // Recaulculate LR removing pileup clusters contribution if LR passes the m_min cut + if( LR > m_min ) { + size_t nClusters = (*ip->xAODJet())->numConstituents(); + double clusterPU_sumEEM = 0; double clusterPU_sumE = 0; + for (size_t clust = 0; clust < nClusters; clust++) { + const xAOD::CaloCluster * aCluster = dynamic_cast<const xAOD::CaloCluster*> ((*ip->xAODJet())->rawConstituent(clust)); + double clusEEM = 0; + clusEEM+=(aCluster)->eSample(CaloSampling::EMB1); + clusEEM+=(aCluster)->eSample(CaloSampling::EMB2); + clusEEM+=(aCluster)->eSample(CaloSampling::EMB3); + clusEEM+=(aCluster)->eSample(CaloSampling::EME1); + clusEEM+=(aCluster)->eSample(CaloSampling::EME2); + clusEEM+=(aCluster)->eSample(CaloSampling::EME3); + clusEEM+=(aCluster)->eSample(CaloSampling::FCAL1); + double lambda = aCluster->getMomentValue(xAOD::CaloCluster::CENTER_LAMBDA); + + if (lambda > 500) continue; + double d_eta = aCluster->rawEta() - jetEta; + double d_phi = xAOD::P4Helpers::deltaPhi(aCluster->rawPhi(),jetPhi); + double d_R2 = d_eta*d_eta + d_phi*d_phi; + + if (d_R2 < 0.15*0.15) continue; + clusterPU_sumEEM+=clusEEM/1000.; + clusterPU_sumE+=aCluster->rawE()/1000.; + } + double jetEEM_EMscale = 0; double jetE_EMscale = 0; //Working on EM scale because calE() doesn't always return correct EEM and cluster moment EMF not accessable during testing + std::vector<double> samplingEnergy = (*ip->xAODJet())->getAttribute<std::vector<double> >("EnergyPerSampling"); + + for(size_t s=0; s<samplingEnergy.size(); s++) { + double samplingE = 0.001*(samplingEnergy.at(s)); + if ( s < 8 || (s > 20 && s < 28) ) jetEEM_EMscale+=samplingE; // EM layers 0-7 and 21-27 + jetE_EMscale+=samplingE; + } + jetEMF = (jetEEM_EMscale - clusterPU_sumEEM)/(jetE_EMscale - clusterPU_sumE); + if (CxxUtils::fpcompare::less_equal (double(jetEMF),0)) LR = -999.; + if(CxxUtils::fpcompare::greater_equal(double(jetEMF),1.0)) LR = -999.; + else LR = log10(double(1./jetEMF - 1.)); + pass=LR>m_max; + } + } + if(collector){ + const void* address = static_cast<const void*>(this); + + std::stringstream ss0; + ss0 << "PileupRemovalCondition: (" << address << ") " + << " LR desired cut, LR necessary cut to start pileup removal algo " <<m_max<<","<<m_min + << " pass: " << std::boolalpha << pass << '\n'; + + auto j_addr = static_cast<const void*>(ip.get()); + std::stringstream ss1; + ss1 << " jet : ("<< j_addr << ")" + " LR desired cut, LR necessary cut to start pileup removal algo " <<m_max<<","<<m_min<< '\n'; + + collector->collect(ss0.str(), ss1.str()); + + } + return pass; +} + + +bool +PileupRemovalCondition::isSatisfied(const HypoJetVector& ips, + const std::unique_ptr<ITrigJetHypoInfoCollector>& c) const { + auto result = isSatisfied(ips[0], c); + return result; +} + + +std::string PileupRemovalCondition::toString() const { + std::stringstream ss; + ss << "PileupRemovalCondition (" << this << ") " + << " LR thresh, LRcorr thresh " + <<m_max<<","<<m_min + <<'\n'; + + return ss.str(); +} diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/PileupRemovalCondition.h b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/PileupRemovalCondition.h new file mode 100644 index 000000000000..ed597c401ce6 --- /dev/null +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/PileupRemovalCondition.h @@ -0,0 +1,47 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef TRIGHLTJETHYPO_PILEUPREMOVALCONDITION_H +#define TRIGHLTJETHYPO_PILEUPREMOVALCONDITION_H + +/******************************************************************** + * + * NAME: PileupRemovalCondition.h + * PACKAGE: Trigger/TrigHypothesis/TrigHLTJetHypo + * + * AUTHOR: Rachel Christine Rosten + *********************************************************************/ + +#include <string> +#include "./ICondition.h" + +namespace HypoJet{ + class IJet; +} + +class ITrigJetHypoInfoCollector; + +class PileupRemovalCondition: public ICondition{ + public: + PileupRemovalCondition(double mMin, double mMax); + + bool isSatisfied(const HypoJetVector&, + const std::unique_ptr<ITrigJetHypoInfoCollector>&) const override; + + virtual unsigned int capacity() const override{return s_capacity;} + + + std::string toString() const override; + private: + + double m_min; + double m_max; + bool isSatisfied(const pHypoJet&, + const std::unique_ptr<ITrigJetHypoInfoCollector>&) const; + + const static unsigned int s_capacity{1}; + +}; + +#endif diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetCRHypoTool.cxx b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetCRHypoTool.cxx index cc023715c4b4..e4aab4f51de0 100644 --- a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetCRHypoTool.cxx +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetCRHypoTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ // ******************************************************************** diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetCRVARHypoTool.cxx b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetCRVARHypoTool.cxx index ce87865b6a76..58590aa100a2 100644 --- a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetCRVARHypoTool.cxx +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetCRVARHypoTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ // ******************************************************************** diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetConditionConfig_pileuprm.cxx b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetConditionConfig_pileuprm.cxx new file mode 100644 index 000000000000..c9261a776e85 --- /dev/null +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetConditionConfig_pileuprm.cxx @@ -0,0 +1,43 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +/* + Instantiator for PT Condition + */ +#include "TrigJetConditionConfig_pileuprm.h" +#include "GaudiKernel/StatusCode.h" +#include "./PileupRemovalCondition.h" +#include "./ArgStrToDouble.h" + + +TrigJetConditionConfig_pileuprm::TrigJetConditionConfig_pileuprm(const std::string& type, + const std::string& name, + const IInterface* parent) : + base_class(type, name, parent){ + +} + + +StatusCode TrigJetConditionConfig_pileuprm::initialize() { + return StatusCode::SUCCESS; +} + + +Condition TrigJetConditionConfig_pileuprm::getCondition() const { + auto a2d = ArgStrToDouble(); + + return std::make_unique<PileupRemovalCondition>(a2d(m_min), + a2d(m_max)); +} + + +StatusCode TrigJetConditionConfig_pileuprm::checkVals() const { + auto a2d = ArgStrToDouble(); + if (a2d(m_min) > a2d(m_max)){ + ATH_MSG_ERROR(" min LogR cut > max LogR cut"); + return StatusCode::FAILURE; + } + + return StatusCode::SUCCESS; +} diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetConditionConfig_pileuprm.h b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetConditionConfig_pileuprm.h new file mode 100644 index 000000000000..2941680da063 --- /dev/null +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetConditionConfig_pileuprm.h @@ -0,0 +1,35 @@ +/* + Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef TRIGJETCONDITIONCONFIG_PILEUPRM_H +#define TRIGJETCONDITIONCONFIG_PILEUPRM_H + +#include "ITrigJetConditionConfig.h" +#include "AthenaBaseComps/AthAlgTool.h" +#include "./ConditionsDefs.h" + +class TrigJetConditionConfig_pileuprm: +public extends<AthAlgTool, ITrigJetConditionConfig> { + + public: + + TrigJetConditionConfig_pileuprm(const std::string& type, + const std::string& name, + const IInterface* parent); + + virtual StatusCode initialize() override; + virtual Condition getCondition() const override; + + private: + + Gaudi::Property<std::string> + m_min{this, "min", {}, "single jet max EMF"}; + + Gaudi::Property<std::string> + m_max{this, "max", {}, "single jet max EMF before pileupremoval"}; + + StatusCode checkVals() const; + +}; +#endif diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/components/TrigHLTJetHypo_entries.cxx b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/components/TrigHLTJetHypo_entries.cxx index cf79a979436f..0b03896a1b3e 100644 --- a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/components/TrigHLTJetHypo_entries.cxx +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/components/TrigHLTJetHypo_entries.cxx @@ -31,6 +31,7 @@ #include "../TrigJetConditionConfig_repeated.h" #include "../TrigJetConditionConfig_timing.h" #include "../TrigJetConditionConfig_timesig.h" +#include "../TrigJetConditionConfig_pileuprm.h" // #include "../TrigJetHypoTool.h" @@ -72,6 +73,7 @@ DECLARE_COMPONENT(TrigJetConditionConfig_acceptAll) DECLARE_COMPONENT(TrigJetConditionConfig_moment) DECLARE_COMPONENT(TrigJetConditionConfig_repeated) DECLARE_COMPONENT(TrigJetConditionConfig_qjet_mass) +DECLARE_COMPONENT(TrigJetConditionConfig_pileuprm) DECLARE_COMPONENT(TrigJetHypoAlg) DECLARE_COMPONENT(TrigJetHypoTool) diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref index eb6012597e40..3fbd03f5ecff 100644 --- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref @@ -14888,6 +14888,12 @@ HLT_j20_calratiovar_roiftf_preselj20emf24_L1LLPDPHI-jXE40-jJ40: stepFeatures: 0: 3 1: 21 +HLT_j20_n041pileuprmn015_j70_j50a_j0_DJMASS900j50dphi260x200deta_L1MJJ-500-NFF: + eventCount: 1 + stepCounts: + 0: 1 + stepFeatures: + 0: 24 HLT_j20_pf_ftf_presel4j85_PhysicsTLA_L13J50: eventCount: 1 stepCounts: diff --git a/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref b/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref index 6b166b450ea5..3e6a52f6cf8e 100644 --- a/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref +++ b/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref @@ -8885,6 +8885,8 @@ HLT_j20_calratiovar_j70_j50a_j0_DJMASS900j50dphi260x200deta_roiftf_preselj20emf7 eventCount: 0 HLT_j20_calratiovar_roiftf_preselj20emf24_L1LLPDPHI-jXE40-jJ40: eventCount: 0 +HLT_j20_n041pileuprmn015_j70_j50a_j0_DJMASS900j50dphi260x200deta_L1MJJ-500-NFF: + eventCount: 0 HLT_j20_pf_ftf_presel4j85_PhysicsTLA_L13J50: eventCount: 0 HLT_j20_pf_ftf_presel5j50_PhysicsTLA_L14J15: diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py index 7efb131f69c9..6f5032e17dba 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py @@ -268,12 +268,12 @@ def getDevSignatures(): ChainProp(name='HLT_j70_j50a_j0_DJMASS900j50x200deta_L1MJJ-500-NFF', l1SeedThresholds=['FSNOSEED']*3,stream=['VBFDelayed'],groups=PrimaryLegGroup+MultiJetGroup+LegacyTopoGroup), # previously HLT_j70_j50_0eta490_invm1000j70_deta20_L1MJJ-500-NFF ChainProp(name='HLT_j50_j30a_j0_DJMASS1000j30dphi260x200deta_L1MJJ-500-NFF', l1SeedThresholds=['FSNOSEED']*3,stream=['VBFDelayed'],groups=PrimaryLegGroup+MultiJetGroup+LegacyTopoGroup), # previously HLT_j50_j30_0eta490_invm1000j70_dphi26_deta20_L1MJJ-500-NFF ChainProp(name='HLT_j50_j30a_j0_DJMASS900j30dphi260x200deta_L1MJJ-500-NFF', l1SeedThresholds=['FSNOSEED']*3,stream=['VBFDelayed'],groups=PrimaryLegGroup+MultiJetGroup+LegacyTopoGroup), # previously HLT_j50_j30_0eta490_invm1000j70_dphi26_deta20_L1MJJ-500-NFF - + # ATR-28412 test caloratio with VBF ChainProp(name='HLT_j20_calratiovar_j70_j50a_j0_DJMASS900j50dphi260x200deta_roiftf_preselj20emf48_L1MJJ-500-NFF', l1SeedThresholds=['FSNOSEED']*4,stream=['VBFDelayed'],groups=PrimaryLegGroup+MultiJetGroup+LegacyTopoGroup), ChainProp(name='HLT_j20_calratiovar82_j70_j50a_j0_DJMASS900j50dphi260x200deta_roiftf_preselj20emf60_L1MJJ-500-NFF', l1SeedThresholds=['FSNOSEED']*4,stream=['VBFDelayed'],groups=PrimaryLegGroup+MultiJetGroup+LegacyTopoGroup), ChainProp(name='HLT_j20_calratiovar103_j70_j50a_j0_DJMASS900j50dphi260x200deta_roiftf_preselj20emf48_L1MJJ-500-NFF', l1SeedThresholds=['FSNOSEED']*4,stream=['VBFDelayed'],groups=PrimaryLegGroup+MultiJetGroup+LegacyTopoGroup), - + ChainProp(name='HLT_j20_n041pileuprmn015_j70_j50a_j0_DJMASS900j50dphi260x200deta_L1MJJ-500-NFF', l1SeedThresholds=['FSNOSEED']*4,stream=['VBFDelayed'],groups=PrimaryLegGroup+MultiJetGroup+LegacyTopoGroup), ChainProp(name='HLT_j20_calratiovar_j70_j50a_j0_DJMASS900j50dphi260x200deta_roiftf_preselj20emf72_L1MJJ-500-NFF', l1SeedThresholds=['FSNOSEED']*4,stream=['VBFDelayed'],groups=PrimaryLegGroup+MultiJetGroup+LegacyTopoGroup), ChainProp(name='HLT_j20_calratiovar59_j70_j50a_j0_DJMASS900j50dphi260x200deta_roiftf_preselj20emf72_L1MJJ-500-NFF', l1SeedThresholds=['FSNOSEED']*4,stream=['VBFDelayed'],groups=PrimaryLegGroup+MultiJetGroup+LegacyTopoGroup), ChainProp(name='HLT_j0_DJMASS900j50dphi260x200deta_calratiovar59_roiftf_preselj20emf72_L1MJJ-500-NFF',l1SeedThresholds=['FSNOSEED'],stream=['Main'],groups=PrimaryLegGroup+MultiJetGroup+LegacyTopoGroup), diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/SignatureDicts.py index 4a4e2f311f26..db02a2968039 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/SignatureDicts.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/SignatureDicts.py @@ -418,6 +418,8 @@ JetChainParts = { # beamspot 'beamspotChain' : ['beamspotVtx'], + 'pileuprm' : # scedule pileup removal algo for single jet, the m_min LogR value is minimul criteria to for jet LogR to start removal algorithm, the m_max LogR is the desired logR cut to pass for jetschedule pileup removal algo for single jet, the m_min LogR value is minimal criteria for jet LogR to start the removal algorithm, the n_max LogR is the desired logR cut to pass for jet + ['n041pileuprmn015' ],# left value is min LogR,right is max LogR, n stands for negative (for example n041 means -0.41 ) } # ---- Jet Dictionary of default Values ---- @@ -465,7 +467,8 @@ JetChainParts_Default = { 'tboundary' : '', 'beamspotChain' : '', -} + 'pileuprm' : '', + } # ---- bJet Dictionary of default Values that are different to the ones for normal jet chains ---- bJetChainParts_Default = { -- GitLab