Commit da2aefc4 authored by Attila Krasznahorkay's avatar Attila Krasznahorkay
Browse files

Merge branch 'MV_SUSYTools_PRW_Prescaled' into '21.2'

Adding PRW weights for prescaled triggers in SUSYTools

See merge request atlas/athena!16251

Former-commit-id: 7f28aa4eb281057dfbab4142210737f4caea9d67
parents 062d7610 f92c2359
......@@ -127,6 +127,7 @@ SUSYObjDef_xAOD::SUSYObjDef_xAOD( const std::string& name )
m_prwDataSF(-99.),
m_prwDataSF_UP(-99.),
m_prwDataSF_DW(-99.),
m_runDepPrescaleWeightPRW(false),
m_electronTriggerSFStringSingle(""),
m_eleId(""),
m_eleIdBaseline(""),
......@@ -242,7 +243,7 @@ SUSYObjDef_xAOD::SUSYObjDef_xAOD( const std::string& name )
m_doElIsoSignal(true),
m_doPhIsoSignal(true),
m_doMuIsoSignal(true),
m_useSigLepForIsoCloseByOR(false),
m_IsoCloseByORpassLabel(""),
......@@ -353,7 +354,7 @@ SUSYObjDef_xAOD::SUSYObjDef_xAOD( const std::string& name )
//
m_pmgSHnjetWeighter(""),
m_pmgSHnjetWeighterWZ(""),
//
//
m_acc_eleIdBaseline(""),
m_acc_eleId(""),
m_acc_photonIdBaseline(""),
......@@ -508,7 +509,7 @@ SUSYObjDef_xAOD::SUSYObjDef_xAOD( const std::string& name )
//Isolation correction for leptons and photons
declareProperty( "UseSigLepForIsoCloseByOR", m_useSigLepForIsoCloseByOR );
declareProperty( "IsoCloseByORpassLabel", m_IsoCloseByORpassLabel );
//--- Tools configuration
//PRW
declareProperty( "AutoconfigurePRWTool", m_autoconfigPRW );
......@@ -521,6 +522,7 @@ SUSYObjDef_xAOD::SUSYObjDef_xAOD( const std::string& name )
declareProperty( "PRWDataScaleFactor", m_prwDataSF);
declareProperty( "PRWDataScaleFactorUP", m_prwDataSF_UP);
declareProperty( "PRWDataScaleFactorDOWN", m_prwDataSF_DW);
declareProperty( "PRWUseRunDependentPrescaleWeight", m_runDepPrescaleWeightPRW);
//LargeR uncertainties config, as from https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/JetUncertainties2016PrerecLargeR#Understanding_which_configuratio
declareProperty( "JetLargeRuncConfig", m_fatJetUncConfig );
declareProperty( "JetLargeRuncVars", m_fatJetUncVars );
......@@ -784,7 +786,7 @@ StatusCode SUSYObjDef_xAOD::initialize() {
m_eleIdDFName = "DFCommonElectronsLH";
m_eleIdDFName += TString(m_eleId).ReplaceAll("LooseAndBLayer","LooseBL").ReplaceAll("LLH","").Data();
m_acc_eleId = m_eleIdDFName;
m_photonIdBaselineDFName = "DFCommonPhotonsIsEM";
m_photonIdBaselineDFName += TString(m_photonIdBaseline).Data();
m_acc_photonIdBaseline = m_photonIdBaselineDFName;
......@@ -796,10 +798,10 @@ StatusCode SUSYObjDef_xAOD::initialize() {
// autoconfigure PRW tool if m_autoconfigPRW==true
if (m_autoconfigPRWPath == "dev/PileupReweighting/share/")
ATH_CHECK( autoconfigurePileupRWTool() );
else
else
// need to set a full path if you don't use the one in CVMFS
ATH_CHECK( autoconfigurePileupRWTool(m_autoconfigPRWPath, false) );
ATH_CHECK( this->SUSYToolsInit() );
ATH_MSG_VERBOSE("Done with tool retrieval");
......@@ -846,7 +848,7 @@ StatusCode SUSYObjDef_xAOD::autoconfigurePileupRWTool(const std::string& PRWfile
ATH_CHECK( evtStore()->retrieve( evtInfo, "EventInfo" ) );
dsid = evtInfo->mcChannelNumber();
if ( m_mcCampaign == "mc16a" || m_mcCampaign == "mc16c" || m_mcCampaign == "mc16d" || m_mcCampaign == "mc16e") {
if ( m_mcCampaign == "mc16a" || m_mcCampaign == "mc16c" || m_mcCampaign == "mc16d" || m_mcCampaign == "mc16e") {
std::string NoMetadataButPropertyOK("");
NoMetadataButPropertyOK += "autoconfigurePileupRWTool(): 'mcCampaign' is used and passed to SUSYTools as '";
NoMetadataButPropertyOK += m_mcCampaign;
......@@ -881,12 +883,12 @@ StatusCode SUSYObjDef_xAOD::autoconfigurePileupRWTool(const std::string& PRWfile
}
m_prwConfFiles.clear();
m_prwConfFiles.push_back( prwConfigFile );
if ( mcCampaignMD == "mc16c" || mcCampaignMD == "mc16d") {
if ( mcCampaignMD == "mc16c" || mcCampaignMD == "mc16d") {
m_prwConfFiles.push_back( PathResolverFindCalibFile(m_prwActualMu2017File) );
} else if (mcCampaignMD == "mc16e") {
m_prwConfFiles.push_back( PathResolverFindCalibFile(m_prwActualMu2018File) );
}
ATH_MSG_INFO( "autoconfigurePileupRWTool(): configuring PRW tool using " << prwConfigFile.data() );
}
// Return gracefully
......@@ -1258,7 +1260,7 @@ StatusCode SUSYObjDef_xAOD::readConfig()
configFromFile(m_orBtagWP, "OR.BtagWP", rEnv, "FixedCutBEff_85");
configFromFile(m_orInputLabel, "OR.InputLabel", rEnv, "selected"); //"baseline"
configFromFile(m_orBJetPtUpperThres, "OR.BJetPtUpperThres", rEnv, -1.); // upper pt threshold of b-jet in OR in unit of MeV, -1 means no pt threshold
configFromFile(m_orLinkOverlapObjects, "OR.LinkOverlapObjects", rEnv, false);
configFromFile(m_orLinkOverlapObjects, "OR.LinkOverlapObjects", rEnv, false);
//
configFromFile(m_orDoFatjets, "OR.DoFatJets", rEnv, false);
configFromFile(m_EleFatJetDR, "OR.EleFatJetDR", rEnv, -999.);
......@@ -1270,7 +1272,7 @@ StatusCode SUSYObjDef_xAOD::readConfig()
configFromFile(m_doPhIsoSignal, "SigPh.RequireIso", rEnv, m_doIsoSignal);
configFromFile(m_useSigLepForIsoCloseByOR, "SigLepPh.UseSigLepForIsoCloseByOR", rEnv, false);
configFromFile(m_IsoCloseByORpassLabel, "SigLepPh.IsoCloseByORpassLabel", rEnv, "None");
//
configFromFile(m_eleTerm, "MET.EleTerm", rEnv, "RefEle");
configFromFile(m_gammaTerm, "MET.GammaTerm", rEnv, "RefGamma");
......@@ -1300,7 +1302,8 @@ StatusCode SUSYObjDef_xAOD::readConfig()
configFromFile(m_prwDataSF, "PRW.DataSF", rEnv, 1./1.03); // default for mc16, see: https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/ExtendedPileupReweighting#Tool_Properties
configFromFile(m_prwDataSF_UP, "PRW.DataSF_UP", rEnv, 1./0.99); // mc16 uncertainty? defaulting to the value in PRWtool
configFromFile(m_prwDataSF_DW, "PRW.DataSF_DW", rEnv, 1./1.07); // mc16 uncertainty? defaulting to the value in PRWtool
configFromFile(m_autoconfigPRWPath, "PRW.autoconfigPRWPath", rEnv, "dev/PileupReweighting/share/");
configFromFile(m_runDepPrescaleWeightPRW, "PRW.UseRunDependentPrescaleWeight", rEnv, false); // If set to true, the prescale weight is the luminosity-average prescale over the lumiblocks in the unprescaled lumicalc file in the PRW tool.
configFromFile(m_autoconfigPRWPath, "PRW.autoconfigPRWPath", rEnv, "dev/PileupReweighting/share/");
//
configFromFile(m_strictConfigCheck, "StrictConfigCheck", rEnv, false);
......@@ -1916,7 +1919,7 @@ CP::SystematicCode SUSYObjDef_xAOD::applySystematicVariation( const CP::Systemat
} else {
ATH_MSG_VERBOSE("Configured xAODBTaggingEfficiency (track jets) for systematic var. " << systConfig.name() );
}
}
}
if (!m_tauSmearingTool.empty()) {
CP::SystematicCode ret = m_tauSmearingTool->applySystematicVariation(systConfig);
if ( ret != CP::SystematicCode::Ok) {
......@@ -2418,7 +2421,7 @@ StatusCode SUSYObjDef_xAOD::OverlapRemoval(const xAOD::ElectronContainer *electr
}
StatusCode SUSYObjDef_xAOD::NearbyLeptonCorrections(xAOD::ElectronContainer *electrons, xAOD::MuonContainer *muons) const {
StatusCode SUSYObjDef_xAOD::NearbyLeptonCorrections(xAOD::ElectronContainer *electrons, xAOD::MuonContainer *muons) const {
// This getCloseByIsoCorrection is computationally less expensive and actually corrects the isoaltion
// variables from the contribution of the close by leptons
if (m_isoCloseByTool->getCloseByIsoCorrection(electrons,muons) != CP::CorrectionCode::Ok) {
......@@ -2442,6 +2445,23 @@ float SUSYObjDef_xAOD::GetPileupWeight() {
return pu_weight;
}
float SUSYObjDef_xAOD::GetPileupWeightPrescaledTrigger(const std::string & trigger_expr) {
/* This requires the setup of the PRW tool using your own prescaled lumicalc
files with syntax "HLT_PrescaledTriggerA.lumicalc.root:HLT_PrescaledTriggerA".
For further informations, please refer to:
https://twiki.cern.ch/twiki/bin/view/AtlasProtected/ExtendedPileupReweighting#Prescaling%20MC
*/
const xAOD::EventInfo* evtInfo = 0;
ATH_CHECK( evtStore()->retrieve( evtInfo, "EventInfo" ) );
float pu_weight = m_prwTool->getCombinedWeight(*evtInfo,trigger_expr);
if(!isfinite(pu_weight)) pu_weight = 1.;
return pu_weight;
}
ULong64_t SUSYObjDef_xAOD::GetPileupWeightHash() {
const xAOD::EventInfo* evtInfo = 0;
ATH_CHECK( evtStore()->retrieve( evtInfo, "EventInfo" ) );
......
......@@ -125,13 +125,13 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
ATH_MSG_DEBUG("Will now init the PRW tool");
std::vector<std::string> file_conf;
for (UInt_t i = 0; i < m_prwConfFiles.size(); i++) {
file_conf.push_back(PathResolverFindCalibFile(m_prwConfFiles.at(i)));
file_conf.push_back(m_prwConfFiles.at(i));
}
std::vector<std::string> file_ilumi;
for (UInt_t i = 0; i < m_prwLcalcFiles.size(); i++) {
ATH_MSG_INFO("Adding ilumicalc file: " << m_prwLcalcFiles.at(i));
file_ilumi.push_back(PathResolverFindCalibFile(m_prwLcalcFiles.at(i)));
file_ilumi.push_back(m_prwLcalcFiles.at(i));
}
m_prwTool.setTypeAndName("CP::PileupReweightingTool/PrwTool");
......@@ -140,6 +140,8 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
ATH_CHECK( m_prwTool.setProperty("DataScaleFactor", m_prwDataSF) ); // 1./1.03 -> default for mc16, see: https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/ExtendedPileupReweighting#Tool_Properties
ATH_CHECK( m_prwTool.setProperty("DataScaleFactorUP", m_prwDataSF_UP) ); // 1. -> old value (mc15), as the one for mc16 is still missing
ATH_CHECK( m_prwTool.setProperty("DataScaleFactorDOWN", m_prwDataSF_DW) ); // 1./1.18 -> old value (mc15), as the one for mc16 is still missing
ATH_CHECK( m_prwTool.setProperty("TrigDecisionTool", m_trigDecTool.getHandle()) );
ATH_CHECK( m_prwTool.setProperty("UseRunDependentPrescaleWeight", m_runDepPrescaleWeightPRW) );
ATH_CHECK( m_prwTool.setProperty("OutputLevel", MSG::WARNING) );
ATH_CHECK( m_prwTool.retrieve() );
} else {
......@@ -158,7 +160,7 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
if (!m_jetCalibTool.isUserConfigured()) {
toolName = "JetCalibTool_" + jetname;
m_jetCalibTool.setTypeAndName("JetCalibrationTool/"+toolName);
std::string JES_config_file, calibseq;
std::string JES_config_file, calibseq;
if (m_jetInputType == xAOD::JetInput::EMTopo) {
JES_config_file = m_jesConfig;
......@@ -279,7 +281,7 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
ATH_CHECK( m_jetUncertaintiesTool.setProperty("MCType", isAtlfast() ? "AFII" : "MC16") );
ATH_CHECK( m_jetUncertaintiesTool.setProperty("IsData", JERUncPDsmearing) );
// https://twiki.cern.ch/twiki/bin/view/AtlasProtected/JetUncertaintiesRel21Summer2018SmallR
ATH_CHECK( m_jetUncertaintiesTool.setProperty("ConfigFile", m_jetUncertaintiesConfig) );
ATH_CHECK( m_jetUncertaintiesTool.setProperty("ConfigFile", m_jetUncertaintiesConfig) );
if (m_jetUncertaintiesCalibArea != "default") ATH_CHECK( m_jetUncertaintiesTool.setProperty("CalibArea", m_jetUncertaintiesCalibArea) );
ATH_CHECK( m_jetUncertaintiesTool.retrieve() );
}
......@@ -293,7 +295,7 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
ATH_CHECK( m_fatjetUncertaintiesTool.setProperty("MCType", "MC16a") );
ATH_CHECK( m_fatjetUncertaintiesTool.setProperty("IsData", isData()) );
// https://twiki.cern.ch/twiki/bin/view/AtlasProtected/JetUncertaintiesRel21Moriond2018LargeR
ATH_CHECK( m_fatjetUncertaintiesTool.setProperty("ConfigFile", m_fatJetUncConfig) );
ATH_CHECK( m_fatjetUncertaintiesTool.setProperty("ConfigFile", m_fatJetUncConfig) );
if (m_jetUncertaintiesCalibArea != "default") ATH_CHECK( m_fatjetUncertaintiesTool.setProperty("CalibArea", m_jetUncertaintiesCalibArea) );
//Restrict variables to be shifted if (required)
......@@ -877,8 +879,8 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
if (!m_photonEfficiencySFTool.isUserConfigured() && !isData()) {
m_photonEfficiencySFTool.setTypeAndName("AsgPhotonEfficiencyCorrectionTool/AsgPhotonEfficiencyCorrectionTool_" + m_photonId);
if (m_photonId != "Tight" ) {
ATH_MSG_WARNING( "No Photon efficiency available for " << m_photonId << ", using Tight instead..." );
if (m_photonId != "Tight" ) {
ATH_MSG_WARNING( "No Photon efficiency available for " << m_photonId << ", using Tight instead..." );
}
ATH_CHECK( m_photonEfficiencySFTool.setProperty("ForceDataType", 1) ); // Set data type: 1 for FULLSIM, 3 for AF2
......@@ -892,7 +894,7 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
ATH_MSG_WARNING( "No Photon efficiency available for " << m_photonIso_WP);
}
ATH_CHECK( m_photonIsolationSFTool.setProperty("IsoKey", m_photonIso_WP.substr(8) )); // Set isolation WP: Loose,Tight,TightCaloOnly
ATH_CHECK( m_photonIsolationSFTool.setProperty("IsoKey", m_photonIso_WP.substr(8) )); // Set isolation WP: Loose,Tight,TightCaloOnly
ATH_CHECK( m_photonIsolationSFTool.setProperty("ForceDataType", 1) ); // Set data type: 1 for FULLSIM, 3 for AF2
ATH_CHECK( m_photonIsolationSFTool.retrieve() );
}
......@@ -1278,7 +1280,7 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
ATH_CHECK( m_metSystTool.setProperty("JetConstitScaleMom","JetLCScaleMomentum") );
}
}
if (m_trkJetsyst) {
ATH_CHECK( m_metSystTool.setProperty("ConfigJetTrkFile", "JetTrackSyst.config") );
}
......@@ -1417,7 +1419,7 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
ATH_CHECK(m_isoCloseByTool.setProperty("BackupPrefix", "ORIG"));
// The isolation selection decorator is updated as well by the tool
ATH_CHECK(m_isoCloseByTool.setProperty("IsolationSelectionDecorator", "isol"));
ATH_CHECK( m_isoCloseByTool.retrieve() );
}
......
......@@ -82,23 +82,23 @@ namespace ST {
// Define types of weights
// This doesn't work with enums: class enums can't be assigned to an std::int8_t easily
// Normal enums means redefinitions of e.g. "Trigger" and "Isolation"
namespace Weights {
namespace Weights {
static const unsigned int Unknown = 0;
namespace Jet {
static const unsigned int Btag = 1001;
static const unsigned int JVT = 1002;
static const unsigned int Btag_Track = 1003;
static const unsigned int FJVT = 1004;
}
namespace Muon {
static const unsigned int Reconstruction = 1101;
static const unsigned int Isolation = 1102;
static const unsigned int ID = 1103;
static const unsigned int Trigger = 1104;
}
namespace Electron {
static const unsigned int Reconstruction = 1201;
static const unsigned int Isolation = 1202;
......@@ -106,12 +106,12 @@ namespace ST {
static const unsigned int Trigger = 1204;
static const unsigned int ChargeID = 1205;
}
namespace Tau {
static const unsigned int Reconstruction = 1301;
static const unsigned int Trigger = 1302;
}
namespace Photon {
static const unsigned int Reconstruction = 1401;
static const unsigned int Isolation = 1402;
......@@ -119,7 +119,7 @@ namespace ST {
static const unsigned int Trigger = 1404;
}
}
static const double DUMMYDEF = -999.;
// Helper method for affected objects
......@@ -195,10 +195,10 @@ namespace ST {
//
//
class ISUSYObjDef_xAODTool : public virtual asg::IAsgTool {
// Declare the interface that the class provides
ASG_TOOL_INTERFACE( ST::ISUSYObjDef_xAODTool )
public:
virtual StatusCode readConfig() = 0;
......@@ -220,7 +220,7 @@ namespace ST {
virtual StatusCode FillPhoton(xAOD::Photon& input, const float ptcut, const float etacut) = 0;
virtual const xAOD::Vertex* GetPrimVtx() const = 0;
virtual StatusCode GetJets(xAOD::JetContainer*& copy,xAOD::ShallowAuxContainer*& copyaux,const bool recordSG=true, const std::string& jetkey="", const xAOD::JetContainer* containerToBeCopied = 0) = 0;
virtual StatusCode GetTrackJets(xAOD::JetContainer*& copy,xAOD::ShallowAuxContainer*& copyaux,const bool recordSG=true, const std::string& jetkey="", const xAOD::JetContainer* containerToBeCopied = 0) = 0;
virtual StatusCode GetJetsSyst(const xAOD::JetContainer& calibjets,xAOD::JetContainer*& copy,xAOD::ShallowAuxContainer*& copyaux, const bool recordSG=true, const std::string& jetkey="") = 0;
......@@ -255,7 +255,7 @@ namespace ST {
virtual bool IsBadJet(const xAOD::Jet& input) const = 0;
virtual bool IsBJetLoose(const xAOD::Jet& input) const = 0;
virtual bool IsBJetLoose(const xAOD::Jet& input) const = 0;
virtual bool JetPassJVT(xAOD::Jet& input, bool update_jvt) = 0;
virtual bool IsHighPtMuon(const xAOD::Muon& input) const = 0;
......@@ -263,7 +263,7 @@ namespace ST {
virtual bool IsSignalMuon(const xAOD::Muon& input, const float ptcut, const float d0sigcut, const float z0cut, const float etacut = DUMMYDEF) const = 0;
virtual bool IsSignalElectron(const xAOD::Electron& input, const float etcut, const float d0sigcut, const float z0cut, const float etacut = DUMMYDEF) const = 0;
virtual bool IsCosmicMuon(const xAOD::Muon& input,const float z0cut, const float d0cut) const = 0;
virtual bool IsSignalTau(const xAOD::TauJet& input, const float ptcut, const float etacut) const = 0;
......@@ -319,6 +319,7 @@ namespace ST {
virtual double GetTriggerGlobalEfficiencySFsys(const xAOD::PhotonContainer& photons, const CP::SystematicSet& systConfig, const std::string& trigExpr = "diPhoton") = 0;
virtual double GetMuonTriggerEfficiency(const xAOD::Muon& mu, const std::string& trigExpr = "HLT_mu20_iloose_L1MU15_OR_HLT_mu50", const bool isdata = false) = 0;
virtual double GetTotalMuonTriggerSF(const xAOD::MuonContainer& sfmuons, const std::string& trigExpr) = 0;
virtual double GetTotalMuonSF(const xAOD::MuonContainer& muons, const bool recoSF = true, const bool isoSF = true, const std::string& trigExpr = "HLT_mu20_iloose_L1MU15_OR_HLT_mu50", const bool bmhptSF = true) = 0;
......@@ -330,7 +331,7 @@ namespace ST {
virtual float GetTotalElectronSFsys(const xAOD::ElectronContainer& electrons, const CP::SystematicSet& systConfig, const bool recoSF = true, const bool idSF = true, const bool triggerSF = true, const bool isoSF = true, const std::string& trigExpr = "singleLepton", const bool chfSF = false) = 0; // singleLepton == Ele.TriggerSFStringSingle value
virtual double GetSignalTauSF(const xAOD::TauJet& tau, const bool idSF = true, const bool triggerSF = true, const std::string& trigExpr = "tau25_medium1_tracktwo") = 0;
virtual double GetSignalTauSFsys(const xAOD::TauJet& tau, const CP::SystematicSet& systConfig, const bool idSF = true, const bool triggerSF = true, const std::string& trigExpr = "tau25_medium1_tracktwo") = 0;
virtual double GetTauTriggerEfficiencySF(const xAOD::TauJet& tau, const std::string& trigExpr = "tau25_medium1_tracktwo") = 0;
......@@ -360,7 +361,7 @@ namespace ST {
virtual bool IsTrigMatched(const xAOD::IParticle *part1, const xAOD::IParticle *part2, const std::string& tr_item) = 0;
virtual bool IsTrigMatched(const std::vector<const xAOD::IParticle*>& v, const std::string& tr_item) = 0;
virtual bool IsTrigMatched(const std::initializer_list<const xAOD::IParticle*> &v, const std::string& tr_item) = 0;
virtual void TrigMatch(const xAOD::IParticle* p, std::initializer_list<std::string>::iterator, std::initializer_list<std::string>::iterator) = 0;
virtual void TrigMatch(const xAOD::IParticle* p, const std::vector<std::string>& items) = 0;
virtual void TrigMatch(const xAOD::IParticle* p, const std::initializer_list<std::string>& items) = 0;
......@@ -378,25 +379,27 @@ namespace ST {
virtual const Trig::ChainGroup* GetTrigChainGroup(const std::string&) const = 0;
virtual float GetPileupWeight() = 0;
virtual float GetPileupWeightPrescaledTrigger(const std::string & trigger_expr) = 0;
virtual ULong64_t GetPileupWeightHash( ) = 0;
virtual float GetDataWeight(const std::string&) = 0;
virtual float GetCorrectedAverageInteractionsPerCrossing(bool includeDataSF=false) = 0;
virtual float GetCorrectedActualInteractionsPerCrossing(bool includeDataSF=false) = 0;
virtual double GetSumOfWeights(int channel) = 0;
virtual unsigned int GetRandomRunNumber(bool muDependentRRN = true) = 0;
virtual StatusCode ApplyPRWTool(bool muDependentRRN = true) = 0;
virtual unsigned int GetRunNumber() const = 0;
virtual int treatAsYear(const int runNumber=-1) const = 0;
virtual StatusCode OverlapRemoval(const xAOD::ElectronContainer *electrons, const xAOD::MuonContainer *muons, const xAOD::JetContainer *jets,
const xAOD::PhotonContainer* gamma = 0, const xAOD::TauJetContainer* taujet = 0, const xAOD::JetContainer *fatjets = 0) = 0;
......@@ -416,7 +419,7 @@ namespace ST {
virtual std::string TrigSingleLep() const = 0;
// Temporary function for Sherpa 2.2 V+jets n-jets reweighting
// Temporary function for Sherpa 2.2 V+jets n-jets reweighting
// (see https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/CentralMC15ProductionList#NEW_Sherpa_v2_2_V_jets_NJet_rewe)
virtual float getSherpaVjetsNjetsWeight() const = 0;
virtual float getSherpaVjetsNjetsWeight(const std::string& jetContainer) const = 0;
......@@ -429,7 +432,7 @@ namespace ST {
};
}; // class ISUSYObjDef_xAODTool
} // namespace ST
#endif // SUSYTOOLS_SUSYOBJDEF_XAODTOOL_H
......@@ -319,6 +319,8 @@ namespace ST {
float GetPileupWeight() override final;
float GetPileupWeightPrescaledTrigger(const std::string & trigger_expr) override final;
ULong64_t GetPileupWeightHash() override final;
float GetDataWeight(const std::string&) override final;
......@@ -516,6 +518,7 @@ namespace ST {
double m_prwDataSF;
double m_prwDataSF_UP;
double m_prwDataSF_DW;
bool m_runDepPrescaleWeightPRW;
// bookkeep supported configurations (in increasing order of tightness)
std::vector<std::string> m_el_id_support;
......@@ -560,7 +563,7 @@ namespace ST {
std::string m_BtagSystStrategy;
std::string m_BtagWP_trkJet;
std::string m_BtagTagger_trkJet;
double m_BtagMinPt_trkJet;
double m_BtagMinPt_trkJet;
//configurable cuts here
double m_eleBaselinePt;
......@@ -656,11 +659,11 @@ namespace ST {
bool m_doElIsoSignal;
bool m_doPhIsoSignal;
bool m_doMuIsoSignal;
bool m_useSigLepForIsoCloseByOR;
std::string m_IsoCloseByORpassLabel;
std::string m_metJetSelection;
int m_showerType;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment