Commit da6012f3 authored by Daniele Zanzi's avatar Daniele Zanzi Committed by Vakhtang Tsulaia
Browse files
parent 63ff3490
......@@ -133,19 +133,21 @@ namespace TrigConf {
WorkingPoints_eEM() = default;
WorkingPoints_eEM( const boost::property_tree::ptree & );
bool isDefined() const { return m_isDefined; }
int reta() const { return m_reta; }
int wstot() const { return m_wstot; }
int rhad() const { return m_rhad; }
int had() const { return m_rhad; }
int reta_fw() const { return m_reta_fw; }
int wstot_fw() const { return m_wstot_fw; }
int rhad_fw() const { return m_rhad_fw; }
unsigned int maxEt() const { return m_maxEt; }
double reta_d() const { return m_reta/100.; }
double wstot_d() const { return m_wstot/100.; }
double rhad_d() const { return m_rhad/100.; }
double reta_d() const { return m_reta_d; }
double wstot_d() const { return m_wstot_d; }
double rhad_d() const { return m_rhad_d; }
private:
bool m_isDefined { false };
int m_reta { 0 };
int m_wstot { 0 };
int m_rhad { 0 };
double m_reta_d { 0 };
double m_wstot_d { 0 };
double m_rhad_d { 0 };
int m_reta_fw { 0 };
int m_wstot_fw { 0 };
int m_rhad_fw { 0 };
unsigned int m_maxEt { 0 };
};
L1ThrExtraInfo_eEM(const std::string & thrTypeName, const ptree & data) :
......
......@@ -212,15 +212,18 @@ TrigConf::L1ThrExtraInfo_JETLegacy::load()
*******/
TrigConf::L1ThrExtraInfo_eEM::WorkingPoints_eEM::WorkingPoints_eEM( const boost::property_tree::ptree & pt ) {
m_isDefined = true;
m_reta = lround(100 * pt.get_optional<float>("reta").get_value_or(0));
m_wstot = lround(100 * pt.get_optional<float>("wstot").get_value_or(0));
m_rhad = lround(100 * pt.get_optional<float>("rhad").get_value_or(0));
m_reta_d = pt.get_optional<float>("reta").get_value_or(0);
m_wstot_d = pt.get_optional<float>("wstot").get_value_or(0);
m_rhad_d = pt.get_optional<float>("rhad").get_value_or(0);
m_reta_fw = pt.get_optional<int>("reta_fw").get_value_or(0);
m_wstot_fw = pt.get_optional<int>("wstot_fw").get_value_or(0);
m_rhad_fw = pt.get_optional<int>("rhad_fw").get_value_or(0);
m_maxEt = pt.get_optional<unsigned int>("maxEt").get_value_or(0);
}
std::ostream &
TrigConf::operator<<(std::ostream & os, const TrigConf::L1ThrExtraInfo_eEM::WorkingPoints_eEM & iso) {
os << "reta=" << iso.reta() << ", wstot=" << iso.wstot() << ", rhad=" << iso.rhad();
os << "reta_fw=" << iso.reta_fw() << ", wstot_fw=" << iso.wstot_fw() << ", rhad_fw=" << iso.rhad_fw();
return os;
}
......
......@@ -295,8 +295,14 @@ TrigConf::JsonFileWriterL1::writeJsonFile(const std::string & filename, const L1
for(auto & iso : eeminfo.isolation(wp)) {
json jWPIso({});
jWPIso["reta"] = iso.value().reta_d();
jWPIso["reta_fw"] = iso.value().reta_fw();
jWPIso["rhad"] = iso.value().rhad_d();
jWPIso["rhad_fw"] = iso.value().rhad_fw();
jWPIso["wstot"] = iso.value().wstot_d();
jWPIso["wstot_fw"] = iso.value().wstot_fw();
jWPIso["etamin"] = iso.etaMin();
jWPIso["etamax"] = iso.etaMax();
jWPIso["priority"] = iso.priority();
jWPIso["maxEt"] = iso.value().maxEt();
jThrType["workingPoints"][wpstr] += jWPIso;
}
......
......@@ -49,18 +49,30 @@ exampleL1Calo(const string & filename) {
auto iso_loose = ei_eEM.isolation(TrigConf::Selection::WP::LOOSE, ieta);
auto iso_medium = ei_eEM.isolation(TrigConf::Selection::WP::MEDIUM, ieta);
auto iso_tight = ei_eEM.isolation(TrigConf::Selection::WP::TIGHT, ieta);
int reta_loose = iso_loose.reta();
int had_loose = iso_loose.had();
int wstot_loose = iso_loose.wstot();
cout << "ieta=" << ieta << " loose => reta=" << reta_loose << ", had=" << had_loose << ", wstot=" << wstot_loose << endl;
int reta_medium = iso_medium.reta();
int had_medium = iso_medium.had();
int wstot_medium = iso_medium.wstot();
cout << "ieta=" << ieta << " medium => reta=" << reta_medium << ", had=" << had_medium << ", wstot=" << wstot_medium << endl;
int reta_tight = iso_tight.reta();
int had_tight = iso_tight.had();
int wstot_tight = iso_tight.wstot();
cout << "ieta=" << ieta << " tight => reta=" << reta_tight << ", had=" << had_tight << ", wstot=" << wstot_tight << endl;
int reta_loose_fw = iso_loose.reta_fw();
int rhad_loose_fw = iso_loose.rhad_fw();
int wstot_loose_fw = iso_loose.wstot_fw();
int reta_loose_d = iso_loose.reta_d();
int rhad_loose_d = iso_loose.rhad_d();
int wstot_loose_d = iso_loose.wstot_d();
cout << "ieta=" << ieta << " loose => reta_fw=" << reta_loose_fw << ", rhad_fw=" << rhad_loose_fw << ", wstot_fw=" << wstot_loose_fw << endl;
cout << "ieta=" << ieta << " loose => reta_d=" << reta_loose_d << ", rhad_d=" << rhad_loose_d << ", wstot_d=" << wstot_loose_d << endl;
int reta_medium_fw = iso_medium.reta_fw();
int rhad_medium_fw = iso_medium.rhad_fw();
int wstot_medium_fw = iso_medium.wstot_fw();
int reta_medium_d = iso_medium.reta_d();
int rhad_medium_d = iso_medium.rhad_d();
int wstot_medium_d = iso_medium.wstot_d();
cout << "ieta=" << ieta << " medium => reta_fw=" << reta_medium_fw << ", rhad_fw=" << rhad_medium_fw << ", wstot_fw=" << wstot_medium_fw << endl;
cout << "ieta=" << ieta << " medium => reta_d=" << reta_medium_d << ", rhad_d=" << rhad_medium_d << ", wstot_d=" << wstot_medium_d << endl;
int reta_tight_fw = iso_tight.reta_fw();
int rhad_tight_fw = iso_tight.rhad_fw();
int wstot_tight_fw = iso_tight.wstot_fw();
int reta_tight_d = iso_tight.reta_d();
int rhad_tight_d = iso_tight.rhad_d();
int wstot_tight_d = iso_tight.wstot_d();
cout << "ieta=" << ieta << " tight => reta_fw=" << reta_tight_fw << ", rhad_fw=" << rhad_tight_fw << ", wstot_fw=" << wstot_tight_fw << endl;
cout << "ieta=" << ieta << " tight => reta_d=" << reta_tight_d << ", rhad_d=" << rhad_tight_d << ", wstot_d=" << wstot_tight_d << endl;
}
}
......@@ -350,7 +362,7 @@ testL1Menu_Extrainfo(const TrigConf::L1Menu & l1menu)
<< ", isolation=" << iso.value() << endl;
}
//cout << " working point Medium at eta = -20:" << ex.isolation(TrigConf::Selection::WP::MEDIUM,-20) << endl;
cout << " working point Medium at eta = 20:" << ex.isolation(TrigConf::Selection::WP::MEDIUM,20) << endl;
cout << " working point Medium at eta = 20:" << ex.isolation(TrigConf::Selection::WP::LOOSE,20) << endl;
}
{
auto & ex = l1menu.thrExtraInfo().jJ();
......
......@@ -147,23 +147,23 @@ StatusCode eFEXFPGA::execute(){
auto iso_tight = thr_eEM.isolation(TrigConf::Selection::WP::TIGHT, ieta);
std::vector<unsigned int> threshReta;
threshReta.push_back(iso_loose.reta());
threshReta.push_back(iso_medium.reta());
threshReta.push_back(iso_tight.reta());
threshReta.push_back(iso_loose.reta_fw());
threshReta.push_back(iso_medium.reta_fw());
threshReta.push_back(iso_tight.reta_fw());
std::vector<unsigned int> threshRhad;
threshRhad.push_back(iso_loose.rhad());
threshRhad.push_back(iso_medium.rhad());
threshRhad.push_back(iso_tight.rhad());
threshRhad.push_back(iso_loose.rhad_fw());
threshRhad.push_back(iso_medium.rhad_fw());
threshRhad.push_back(iso_tight.rhad_fw());
std::vector<unsigned int> threshWstot;
threshWstot.push_back(iso_loose.wstot());
threshWstot.push_back(iso_medium.wstot());
threshWstot.push_back(iso_tight.wstot());
threshWstot.push_back(iso_loose.wstot_fw());
threshWstot.push_back(iso_medium.wstot_fw());
threshWstot.push_back(iso_tight.wstot_fw());
ATH_MSG_DEBUG("ieta=" << ieta << " loose => reta=" << threshReta[0] << ", had=" << threshRhad[0] << ", wstot=" << threshWstot[0]);
ATH_MSG_DEBUG("ieta=" << ieta << " medium => reta=" << threshReta[1] << ", had=" << threshRhad[1] << ", wstot=" << threshWstot[1]);
ATH_MSG_DEBUG("ieta=" << ieta << " tight => reta=" << threshReta[2] << ", had=" << threshRhad[2] << ", wstot=" << threshWstot[2]);
ATH_MSG_DEBUG("ieta=" << ieta << " loose => reta_fw=" << threshReta[0] << ", rhad_fw=" << threshRhad[0] << ", wstot_fw=" << threshWstot[0]);
ATH_MSG_DEBUG("ieta=" << ieta << " medium => reta_fw=" << threshReta[1] << ", rhad_fw=" << threshRhad[1] << ", wstot_fw=" << threshWstot[1]);
ATH_MSG_DEBUG("ieta=" << ieta << " tight => reta_fw=" << threshReta[2] << ", rhad_fw=" << threshRhad[2] << ", wstot_fw=" << threshWstot[2]);
// Get Reta and Rhad outputs
std::vector<unsigned int> RetaCoreEnv;
......
......@@ -1418,6 +1418,8 @@ HLT_e12_lhvloose_L1EM10VH:
4: 5
HLT_e140_lhloose_L1EM22VHI:
eventCount: 0
HLT_e140_lhloose_L1eEM22M:
eventCount: 0
HLT_e140_lhloose_noringer_L1EM22VHI:
eventCount: 0
HLT_e14_etcut_L1EM7:
......@@ -2123,6 +2125,10 @@ HLT_e26_lhtight_ivarloose_L1EM22VHI:
2: 4
3: 4
4: 3
HLT_e26_lhtight_ivarloose_L1eEM22M:
eventCount: 0
HLT_e26_lhtight_ivarloose_L1eEM22T:
eventCount: 0
HLT_e26_lhtight_ivarloose_e26_lhloose_nopix_lrttight_probe_L1EM22VHI:
eventCount: 0
stepCounts:
......@@ -2596,6 +2602,8 @@ HLT_e28_lhmedium_mu8noL1_L1EM24VHI:
6: 2
HLT_e300_etcut_L1EM22VHI:
eventCount: 0
HLT_e300_etcut_L1eEM22M:
eventCount: 0
HLT_e30_lhvloose_L1EM22VHI:
eventCount: 4
stepCounts:
......@@ -2922,6 +2930,8 @@ HLT_e60_lhmedium_L1EM22VHI:
2: 2
3: 2
4: 2
HLT_e60_lhmedium_L1eEM22M:
eventCount: 0
HLT_e60_lhmedium_noringer_L1EM22VHI:
eventCount: 2
stepCounts:
......@@ -7839,6 +7849,38 @@ HLT_noalg_L1XE55:
eventCount: 9
HLT_noalg_L1XE60:
eventCount: 8
HLT_noalg_L1eEM10:
eventCount: 0
HLT_noalg_L1eEM10L:
eventCount: 0
HLT_noalg_L1eEM15:
eventCount: 0
HLT_noalg_L1eEM15L:
eventCount: 0
HLT_noalg_L1eEM15M:
eventCount: 0
HLT_noalg_L1eEM18M:
eventCount: 0
HLT_noalg_L1eEM20:
eventCount: 0
HLT_noalg_L1eEM20L:
eventCount: 0
HLT_noalg_L1eEM20M:
eventCount: 0
HLT_noalg_L1eEM22:
eventCount: 0
HLT_noalg_L1eEM22M:
eventCount: 0
HLT_noalg_L1eEM22T:
eventCount: 0
HLT_noalg_L1eEM3:
eventCount: 0
HLT_noalg_L1eEM7:
eventCount: 0
HLT_noalg_L1eEM8:
eventCount: 0
HLT_noalg_L1eEM8L:
eventCount: 0
HLT_noalg_LArPEBCalib_L1RD0_BGRP11:
eventCount: 0
HLT_noalg_LArPEBCalib_L1RD0_EMPTY:
......
......@@ -570,6 +570,8 @@ HLT_e12_lhvloose_L1EM10VH:
1: 6
HLT_e140_lhloose_L1EM22VHI:
eventCount: 0
HLT_e140_lhloose_L1eEM22M:
eventCount: 0
HLT_e140_lhloose_noringer_L1EM22VHI:
eventCount: 0
HLT_e14_etcut_L1EM7:
......@@ -720,6 +722,10 @@ HLT_e26_lhtight_ivarloose_2j20_0eta290_020jvt_pf_ftf_boffperf_L1EM22VHI:
eventCount: 0
HLT_e26_lhtight_ivarloose_L1EM22VHI:
eventCount: 0
HLT_e26_lhtight_ivarloose_L1eEM22M:
eventCount: 0
HLT_e26_lhtight_ivarloose_L1eEM22T:
eventCount: 0
HLT_e26_lhtight_ivarloose_e26_lhloose_nopix_lrttight_probe_L1EM22VHI:
eventCount: 0
HLT_e26_lhtight_ivarloose_e5_lhvloose_idperf_probe_L1EM22VHI:
......@@ -770,6 +776,8 @@ HLT_e28_lhmedium_mu8noL1_L1EM24VHI:
eventCount: 0
HLT_e300_etcut_L1EM22VHI:
eventCount: 0
HLT_e300_etcut_L1eEM22M:
eventCount: 0
HLT_e30_lhvloose_L1EM22VHI:
eventCount: 0
HLT_e40_lhvloose_L1EM22VHI:
......@@ -956,6 +964,8 @@ HLT_e60_idperf_medium_L1EM22VHI:
eventCount: 0
HLT_e60_lhmedium_L1EM22VHI:
eventCount: 0
HLT_e60_lhmedium_L1eEM22M:
eventCount: 0
HLT_e60_lhmedium_noringer_L1EM22VHI:
eventCount: 0
HLT_e60_lhvloose_L1EM22VHI:
......@@ -3239,6 +3249,38 @@ HLT_noalg_L1XE55:
eventCount: 1
HLT_noalg_L1XE60:
eventCount: 1
HLT_noalg_L1eEM10:
eventCount: 4
HLT_noalg_L1eEM10L:
eventCount: 0
HLT_noalg_L1eEM15:
eventCount: 4
HLT_noalg_L1eEM15L:
eventCount: 0
HLT_noalg_L1eEM15M:
eventCount: 0
HLT_noalg_L1eEM18M:
eventCount: 0
HLT_noalg_L1eEM20:
eventCount: 2
HLT_noalg_L1eEM20L:
eventCount: 0
HLT_noalg_L1eEM20M:
eventCount: 0
HLT_noalg_L1eEM22:
eventCount: 2
HLT_noalg_L1eEM22M:
eventCount: 0
HLT_noalg_L1eEM22T:
eventCount: 0
HLT_noalg_L1eEM3:
eventCount: 20
HLT_noalg_L1eEM7:
eventCount: 7
HLT_noalg_L1eEM8:
eventCount: 6
HLT_noalg_L1eEM8L:
eventCount: 0
HLT_noalg_LArPEBCalib_L1RD0_BGRP11:
eventCount: 0
HLT_noalg_LArPEBCalib_L1RD0_EMPTY:
......
......@@ -48,7 +48,8 @@ from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import (PhysicsStream,
LowMuGroup,
EOFBPhysL1MuGroup,
EOFTLALegGroup,
UnconvTrkGroup
UnconvTrkGroup,
EgammaPhaseIStreamersGroup
)
def setupMenu():
......@@ -153,6 +154,11 @@ def setupMenu():
# ElectronChains----------
# Phase1 eEM chains
ChainProp(name='HLT_e5_etcut_L1eEM3', groups=SingleElectronGroup),
ChainProp(name='HLT_e26_lhtight_ivarloose_L1eEM22M', groups=PrimaryPhIGroup+SingleElectronGroup),
ChainProp(name='HLT_e26_lhtight_ivarloose_L1eEM22T', groups=PrimaryPhIGroup+SingleElectronGroup),
ChainProp(name='HLT_e60_lhmedium_L1eEM22M', groups=PrimaryPhIGroup+SingleElectronGroup),
ChainProp(name='HLT_e140_lhloose_L1eEM22M', groups=PrimaryPhIGroup+SingleElectronGroup),
ChainProp(name='HLT_e300_etcut_L1eEM22M', groups=PrimaryPhIGroup+SingleElectronGroup),
# lrt chains
ChainProp(name='HLT_e5_idperf_loose_lrtloose_L1EM3', groups=SingleElectronGroup),
......@@ -1082,6 +1088,23 @@ def setupMenu():
ChainProp(name='HLT_noalg_L1All', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=['Primary:CostAndRate', 'RATE:SeededStreamers', 'BW:Other']), # ATR-22072, for rates in MC. To move to MC menu once good nightly in LS2_v1.
#Phase-I streamers:
ChainProp(name='HLT_noalg_L1eEM3', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM7', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM8', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM8L', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM10', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM10L', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM15', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM15L', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM15M', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM18M', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM20', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM20L', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM20M', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM22', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM22M', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
ChainProp(name='HLT_noalg_L1eEM22T', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=EgammaPhaseIStreamersGroup),
]
TriggerFlags.MonitorSlice.signatures = TriggerFlags.MonitorSlice.signatures() + [
......
......@@ -42,6 +42,7 @@ JetMETGroup = ['RATE:JetMET', 'BW:Jet']
MinBiasGroup = ['RATE:MinBias', 'BW:MinBias']
ZeroBiasGroup = ['RATE:ZeroBias', 'BW:ZeroBias']
EgammaStreamersGroup = ['RATE:SeededStreamers', 'BW:Egamma']
EgammaPhaseIStreamersGroup = ['RATE:PhaseISeededStreamers', 'BW:Egamma']
TauStreamersGroup = ['RATE:SeededStreamers', 'BW:Tau']
JetStreamersGroup = ['RATE:SeededStreamers', 'BW:Jet']
METStreamersGroup = ['RATE:SeededStreamers', 'BW:MET']
......
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
import re
from copy import deepcopy
......@@ -283,7 +283,7 @@ class EMThreshold (Threshold):
def __init__(self, name, ttype = 'eEM', mapping = -1):
super(EMThreshold,self).__init__(name = name, ttype = ttype, mapping = mapping, run = 3 if ttype=='eEM' else 2)
mres = re.match("(?P<type>[A-z]*)[0-9]*(?P<suffix>[VHI]*)",name).groupdict()
mres = re.match("(?P<type>[A-z]*)[0-9]*(?P<suffix>[VHILMT]*)",name).groupdict()
self.suffix = mres["suffix"]
self.rhad = "None"
self.reta = "None"
......@@ -295,10 +295,20 @@ class EMThreshold (Threshold):
def isI(self):
return 'I' in self.suffix
def isL(self):
return 'L' in self.suffix
def isM(self):
return 'M' in self.suffix
def setIsolation(self, rhad = "None", reta = "None", wstot = "None"):
allowed = [ "None", "Loose", "Medium", "Tight" ]
if rhad not in allowed:
raise RuntimeError("Threshold %s of type %s: isolation wp %s not allowed for rhad, must be one of %s", self.name, self.ttype, rhad, ', '.join(allowed) )
if reta not in allowed:
raise RuntimeError("Threshold %s of type %s: isolation wp %s not allowed for reta, must be one of %s", self.name, self.ttype, reta, ', '.join(allowed) )
if wstot not in allowed:
raise RuntimeError("Threshold %s of type %s: isolation wp %s not allowed for wstot, must be one of %s", self.name, self.ttype, wstot, ', '.join(allowed) )
self.rhad = rhad
self.reta = reta
self.wstot = wstot
......@@ -307,7 +317,7 @@ class EMThreshold (Threshold):
def addThrValue(self, value, *args, **kwargs):
# supporting both EM and TAU
defargs = ThresholdValue.getDefaults(self.ttype.name)
posargs = dict(zip(['etamin', 'etamax', 'phimin', 'phimax', 'em_isolation', 'had_isolation', 'had_veto', 'priority', 'isobits', 'use_relIso'], args))
posargs = dict(zip(['etamin', 'etamax', 'phimin', 'phimax', 'priority'], args))
# then we evaluate the arguments: first defaults, then positional arguments, then named arguments
p = deepcopy(defargs)
......@@ -318,11 +328,6 @@ class EMThreshold (Threshold):
etamin = p['etamin'], etamax=p['etamax'], phimin=p['phimin'], phimax=p['phimax'],
priority = p['priority'], name = self.name+'full')
thrv.setIsolation( em_isolation = p['em_isolation'],
had_isolation = p['had_isolation'],
had_veto = p['had_veto'],
isobits = p['isobits'],
use_relIso = p['use_relIso'])
self.thresholdValues.append(thrv)
return self
......
......@@ -111,29 +111,32 @@ class ItemDef:
MenuItem('L1_EM24VHIM' ).setLogic( d.EM24VHIM & physcond).setTriggerType( TT.calo )
MenuItem('L1_EM20A' ).setLogic( d.EM20A & physcond).setTriggerType( TT.calo )
MenuItem('L1_EM20C' ).setLogic( d.EM20C & physcond).setTriggerType( TT.calo )
MenuItem('L1_EM15VHI' ).setLogic( d.EM15VHI & physcond).setTriggerType( TT.calo )
MenuItem('L1_EM22VH' ).setLogic( d.EM22VH & physcond).setTriggerType( TT.calo )
# Phase-I
MenuItem('L1_eEM3' ).setLogic( d.eEM3 & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM7' ).setLogic( d.eEM7 & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM8' ).setLogic( d.eEM8 & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM8L' ).setLogic( d.eEM8L & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM10' ).setLogic( d.eEM10 & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM10L' ).setLogic( d.eEM10L & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM15' ).setLogic( d.eEM15 & physcond).setTriggerType( TT.calo )
MenuItem('L1_EM15VHI' ).setLogic( d.EM15VHI & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM15L' ).setLogic( d.eEM15L & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM15M' ).setLogic( d.eEM15M & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM18M' ).setLogic( d.eEM18M & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM20' ).setLogic( d.eEM20 & physcond).setTriggerType( TT.calo )
MenuItem('L1_EM22VH' ).setLogic( d.EM22VH & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM20L' ).setLogic( d.eEM20L & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM20M' ).setLogic( d.eEM20M & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM22' ).setLogic( d.eEM22 & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM22VHI' ).setLogic( d.eEM22VHI & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM20VH' ).setLogic( d.eEM20VH & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM20VHI' ).setLogic( d.eEM20VHI & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM22M' ).setLogic( d.eEM22M & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM22T' ).setLogic( d.eEM22T & physcond).setTriggerType( TT.calo )
# 2xEM, 3xEM
MenuItem('L1_2EM3' ).setLogic( d.EM3.x(2) & physcond).setTriggerType( TT.calo )
MenuItem('L1_2EM7' ).setLogic( d.EM7.x(2) & physcond).setTriggerType( TT.calo )
MenuItem('L1_2EM10VH' ).setLogic( d.EM10VH.x(2) & physcond).setTriggerType( TT.calo )
MenuItem('L1_2eEM15VHI' ).setLogic( d.eEM15VHI.x(2) & physcond).setTriggerType( TT.calo )
MenuItem('L1_2eEM20VH' ).setLogic( d.eEM20VH.x(2) & physcond).setTriggerType( TT.calo )
MenuItem('L1_2eEM8' ).setLogic( d.eEM8.x(2) & physcond).setTriggerType( TT.calo )
MenuItem('L1_2eEM10' ).setLogic( d.eEM10.x(2) & physcond).setTriggerType( TT.calo )
MenuItem('L1_2EM8I' ).setLogic( d.EM8I.x(2) & physcond).setTriggerType(TT.calo)
MenuItem('L1_2EM8I' ).setLogic( d.EM8I.x(2) & physcond).setTriggerType( TT.calo )
MenuItem('L1_2EM13VH' ).setLogic( d.EM13VH.x(2) & physcond).setTriggerType( TT.calo )
MenuItem('L1_2EM18VH' ).setLogic( d.EM18VH.x(2) & physcond).setTriggerType( TT.calo )
MenuItem('L1_2EM12' ).setLogic( d.EM12.x(2) & physcond).setTriggerType( TT.calo )
......@@ -152,25 +155,10 @@ class ItemDef:
MenuItem('L1_EM15VH_3EM8VH' ).setLogic( d.EM15VH & d.EM8VH.x(3) & physcond).setTriggerType( TT.calo )
MenuItem('L1_EM15VH_3EM10VH' ).setLogic( d.EM15VH & d.EM10VH.x(3) & physcond).setTriggerType( TT.calo )
MenuItem('L1_EM15VH_2EM10VH_3EM7' ).setLogic( d.EM15VH & d.EM10VH.x(2) & d.EM7.x(3) & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM20VH_3eEM10VH' ).setLogic( d.eEM20VH & d.eEM10VH.x(3) & physcond).setTriggerType( TT.calo )
MenuItem('L1_EM18VH_3EM8VH' ).setLogic( d.EM18VH & d.EM8VH.x(3) & physcond).setTriggerType( TT.calo )
MenuItem('L1_EM18VH_2EM10VH_3EM7' ).setLogic( d.EM18VH & d.EM10VH.x(2) & d.EM7.x(3) & physcond).setTriggerType( TT.calo )
# EM and MU
MenuItem('L1_2eEM8VH_MU10' ).setLogic( d.eEM8VH.x(2) & d.MU10 & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM15VH_MU10' ).setLogic( d.EM15VH & d.MU10 & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM7_MU20' ).setLogic( d.eEM7 & d.MU20 & physcond).setTriggerType( TT.calo )
# EM, tau and jet
MenuItem('L1_eEM15VHI_2eTAU12IM_4jJ12' ).setLogic( d.eEM15VHI & d.eTAU12IM.x(2) & d.jJ12.x(4) & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM15VHI_2eTAU12IM_jJ25_3jJ12' ).setLogic( d.eEM15VHI & d.eTAU12IM.x(2) & d.jJ25 & d.jJ12.x(3) & physcond).setTriggerType( TT.calo )
MenuItem('L1_eEM20VHI_eTAU20IM_2eTAU20_jJ25_3jJ20').setLogic( d.eEM20VHI & d.eTAU20IM & d.eTAU20.x(2) & d.jJ25 & d.jJ20.x(3) & physcond).setTriggerType( TT.calo )
# EM, tau and XE
MenuItem('L1_eEM15VHI_2eTAU12IM_gXERHO35' ).setLogic( d.eEM15VHI & d.eTAU12IM.x(2) & d.gXERHO35 & physcond).setTriggerType( TT.calo )
# EM and jet
MenuItem('L1_eEM18VHI_3jJ20').setLogic( d.eEM18VHI & d.jJ20.x(3) & physcond).setTriggerType( TT.calo )
MenuItem('L1_J15p23ETA49' ).setLogic( d.J1523ETA49 & physcond).setTriggerType(TT.calo)
MenuItem('L1_J15p24ETA49' ).setLogic( d.J1524ETA49 & physcond).setTriggerType(TT.calo)
MenuItem('L1_J15p31ETA49' ).setLogic( d.J1531ETA49 & physcond).setTriggerType(TT.calo)
......@@ -1523,7 +1511,7 @@ class ItemDef:
#ATR-18824
MenuItem('L1_ZAFB-04DPHI-eEM15I' ).setLogic( d.TOPO_60INVM_04DPHI32_eEM15abhi_FJj15s623ETA49 & physcond)
MenuItem('L1_ZAFB-25DPHI-eEM15I' ).setLogic( d.TOPO_60INVM_25DPHI32_eEM15abhi_FJj15s623ETA49 & physcond)
MenuItem('L1_ZAFB-25DPHI-eEM18I' ).setLogic( d.TOPO_60INVM_25DPHI32_eEM15abhi_FJj15s623ETA49 & d.eEM18VHI & physcond)
MenuItem('L1_ZAFB-25DPHI-eEM18I' ).setLogic( d.TOPO_60INVM_25DPHI32_eEM15abhi_FJj15s623ETA49 & d.eEM18M & physcond)
#ATR-19302:
MenuItem('L1_DPHI-M70-2eEM10I' ).setLogic( d.TOPO_0INVM70_27DPHI32_eEM10his1_eEM10his6 & physcond)
MenuItem('L1_DPHI-M70-2eEM12I' ).setLogic( d.TOPO_0INVM70_27DPHI32_eEM12his1_eEM12his6 & physcond)
......@@ -1562,7 +1550,7 @@ class ItemDef:
MenuItem('L1_jMJJ-500-NFF').setLogic( d.TOPO_500INVM_jJ30s6_AjJ20s6 & physcond)
MenuItem('L1_jMJJ-700-NFF').setLogic( d.TOPO_700INVM_jJ30s6_AjJ20s6 & physcond)
MenuItem('L1_MU6_jMJJ-300-NFF').setLogic( d.MU6 & d.TOPO_300INVM_jJ30s6_AjJ20s6 & physcond)
MenuItem('L1_eEM18VHI_jMJJ-300-NFF').setLogic( d.eEM18VHI & d.TOPO_300INVM_jJ30s6_AjJ20s6 & physcond) # modified from ATR-15062
MenuItem('L1_eEM18M_jMJJ-300-NFF').setLogic( d.eEM18M & d.TOPO_300INVM_jJ30s6_AjJ20s6 & physcond) # modified from ATR-15062
MenuItem('L1_jHT150-jJ20s5pETA31_jMJJ-400-CF').setLogic( d.TOPO_HT150_jJ20s5pETA31 & d.TOPO_400INVM_AjJ30s6pETA31_AjJ20s6p31ETA49 & physcond)
MenuItem('L1_jMJJ-400-CF').setLogic( d.TOPO_400INVM_AjJ30s6pETA31_AjJ20s6p31ETA49 & physcond)
......
......@@ -8,8 +8,8 @@ class ThresholdDef:
eEMVar = {
1 : {
"eta_bin_boundaries": [0, 0.7, 0.8, 1.1, 1.3, 1.4, 1.5, 1.7, 2.5], # 8 bins => 9 boundaries
"shift": [ 2, 1, 0, 0, -1, -3, -1, 1]
"eta_bin_boundaries": [0, 0.7, 0.8, 1.1, 1.3, 1.4, 1.5, 1.8, 2.5], # 8 bins => 9 boundaries
"shift": [ 1, 1, -1, -2, -2, -3, -1, 0]
}
}
......@@ -85,93 +85,20 @@ class ThresholdDef:
for thrV in [3, 7, 8, 10, 15, 20, 22]:
EMThreshold('eEM%i' % thrV, 'eEM').addThrValue(thrV)
# VH section
# L section (used to be VH in Run2)
ThresholdDef.addVaryingThrValues( EMThreshold( 'eEM8L', 'eEM').setIsolation( reta = "Loose", wstot = "Loose", rhad = "Loose" ), pt=8, shift_set = 1 )
ThresholdDef.addVaryingThrValues( EMThreshold( 'eEM10L', 'eEM').setIsolation( reta = "Loose", wstot = "Loose", rhad = "Loose" ), pt=10, shift_set = 1 )
ThresholdDef.addVaryingThrValues( EMThreshold( 'eEM15L', 'eEM').setIsolation( reta = "Loose", wstot = "Loose", rhad = "Loose" ), pt=15, shift_set = 1 )
ThresholdDef.addVaryingThrValues( EMThreshold( 'eEM20L', 'eEM').setIsolation( reta = "Loose", wstot = "Loose", rhad = "Loose" ), pt=20, shift_set = 1 )
EMThreshold( 'eEM8VH', 'eEM').setIsolation( rhad = "Tight" )\
.addThrValue(9, priority=1)\
.addThrValue(9, -8, 8, priority=2)\
.addThrValue(7, -11, -9, priority=2).addThrValue(7, 9, 11, priority=2)\
.addThrValue(6, -14, -12, priority=2).addThrValue(6, 12, 14, priority=2)\
.addThrValue(5, -15, -15, priority=2).addThrValue(5, 15, 15, priority=2)\
.addThrValue(7, -18, -16, priority=2).addThrValue(7, 16, 18, priority=2)\
.addThrValue(8, -25, -19, priority=2).addThrValue(8, 19, 25, priority=2)
EMThreshold( 'eEM10VH', 'eEM' ).setIsolation( rhad = "Medium" )\
.addThrValue(11, priority=1)\
.addThrValue(11, -8, 8, priority=2)\