ATLAS Offline Software
ScaleFactorCalculator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #ifndef SCALEFACTORCALCULATOR_H_
6 #define SCALEFACTORCALCULATOR_H_
7 
19 // system include(s):
20 #include <vector>
21 #include <memory>
22 
23 // Framework include(s):
24 #include "AsgTools/AsgTool.h"
25 
26 // PMG Tools
29 
30 // Local include(s):
40 
41 namespace top {
42  class TopConfig;
43 
44  class ScaleFactorCalculator final: public asg::AsgTool {
45  public:
46  explicit ScaleFactorCalculator(const std::string& name);
48 
52 
54  StatusCode initialize_nominal_MC_weight(); // determine what MC weight to use as nominal
56 
58  float pileupWeight() const;
59  float mcEventWeight() const;
60  private:
61  std::shared_ptr<top::TopConfig> m_config;
62 
63  std::unique_ptr<top::PhotonScaleFactorCalculator> m_photonSF;
64  std::unique_ptr<top::ElectronScaleFactorCalculator> m_electronSF;
65  std::unique_ptr<top::FwdElectronScaleFactorCalculator> m_fwdElectronSF;
66  std::unique_ptr<top::MuonScaleFactorCalculator> m_muonSF;
67  std::unique_ptr<top::TauScaleFactorCalculator> m_tauSF;
68  std::unique_ptr<top::JetScaleFactorCalculator> m_jetSF;
69  std::unique_ptr<top::BTagScaleFactorCalculator> m_btagSF;
70  std::unique_ptr<top::PileupScaleFactorCalculator> m_pileupSF;
71  ToolHandle<PMGTools::PMGSherpa22VJetsWeightTool> m_sherpa_22_reweight_tool;
72  std::unique_ptr<top::GlobalLeptonTriggerCalculator> m_globalLeptonTriggerSF;
73  ToolHandle<PMGTools::IPMGTruthWeightTool> m_pmg_truth_weight_tool;
74 
75  std::string m_nominal_weight_name;
76  };
77 } // namespace top
78 
79 #endif
TauScaleFactorCalculator.h
PMGSherpa22VJetsWeightTool.h
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
top::ScaleFactorCalculator::m_pmg_truth_weight_tool
ToolHandle< PMGTools::IPMGTruthWeightTool > m_pmg_truth_weight_tool
Definition: ScaleFactorCalculator.h:73
FwdElectronScaleFactorCalculator.h
top
TopConfig A simple configuration that is NOT a singleton.
Definition: AnalysisTrackingHelper.cxx:58
top::ScaleFactorCalculator::m_electronSF
std::unique_ptr< top::ElectronScaleFactorCalculator > m_electronSF
Definition: ScaleFactorCalculator.h:64
top::ScaleFactorCalculator::mcEventWeight
float mcEventWeight() const
Definition: ScaleFactorCalculator.cxx:231
top::ScaleFactorCalculator::initialize_nominal_MC_weight
StatusCode initialize_nominal_MC_weight()
Definition: ScaleFactorCalculator.cxx:103
top::ScaleFactorCalculator::m_globalLeptonTriggerSF
std::unique_ptr< top::GlobalLeptonTriggerCalculator > m_globalLeptonTriggerSF
Definition: ScaleFactorCalculator.h:72
PileupScaleFactorCalculator.h
top::ScaleFactorCalculator::initialize
StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: ScaleFactorCalculator.cxx:36
JetScaleFactorCalculator.h
top::ScaleFactorCalculator::m_nominal_weight_name
std::string m_nominal_weight_name
Definition: ScaleFactorCalculator.h:75
ElectronScaleFactorCalculator.h
top::ScaleFactorCalculator::m_btagSF
std::unique_ptr< top::BTagScaleFactorCalculator > m_btagSF
Definition: ScaleFactorCalculator.h:69
top::ScaleFactorCalculator::m_sherpa_22_reweight_tool
ToolHandle< PMGTools::PMGSherpa22VJetsWeightTool > m_sherpa_22_reweight_tool
Definition: ScaleFactorCalculator.h:71
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
top::ScaleFactorCalculator::pileupWeight
float pileupWeight() const
Definition: ScaleFactorCalculator.cxx:215
top::ScaleFactorCalculator::ScaleFactorCalculator
ScaleFactorCalculator(ScaleFactorCalculator &&rhs)=delete
GlobalLeptonTriggerCalculator.h
top::ScaleFactorCalculator::ScaleFactorCalculator
ScaleFactorCalculator(const ScaleFactorCalculator &rhs)=delete
top::ScaleFactorCalculator::m_jetSF
std::unique_ptr< top::JetScaleFactorCalculator > m_jetSF
Definition: ScaleFactorCalculator.h:68
IPMGTruthWeightTool.h
top::ScaleFactorCalculator::execute
StatusCode execute()
Definition: ScaleFactorCalculator.cxx:182
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
top::ScaleFactorCalculator::m_tauSF
std::unique_ptr< top::TauScaleFactorCalculator > m_tauSF
Definition: ScaleFactorCalculator.h:67
PhotonScaleFactorCalculator.h
top::ScaleFactorCalculator::~ScaleFactorCalculator
virtual ~ScaleFactorCalculator()
Definition: ScaleFactorCalculator.h:47
top::ScaleFactorCalculator::m_muonSF
std::unique_ptr< top::MuonScaleFactorCalculator > m_muonSF
Definition: ScaleFactorCalculator.h:66
top::ScaleFactorCalculator::m_pileupSF
std::unique_ptr< top::PileupScaleFactorCalculator > m_pileupSF
Definition: ScaleFactorCalculator.h:70
MuonScaleFactorCalculator.h
top::ScaleFactorCalculator::executePileup
StatusCode executePileup()
Definition: ScaleFactorCalculator.cxx:210
top::ScaleFactorCalculator::ScaleFactorCalculator
ScaleFactorCalculator(const std::string &name)
Definition: ScaleFactorCalculator.cxx:17
top::ScaleFactorCalculator::operator=
ScaleFactorCalculator & operator=(const ScaleFactorCalculator &rhs)=delete
top::ScaleFactorCalculator::m_config
std::shared_ptr< top::TopConfig > m_config
Definition: ScaleFactorCalculator.h:61
AsgTool.h
top::ScaleFactorCalculator
Definition: ScaleFactorCalculator.h:44
top::ScaleFactorCalculator::m_fwdElectronSF
std::unique_ptr< top::FwdElectronScaleFactorCalculator > m_fwdElectronSF
Definition: ScaleFactorCalculator.h:65
top::ScaleFactorCalculator::m_photonSF
std::unique_ptr< top::PhotonScaleFactorCalculator > m_photonSF
Definition: ScaleFactorCalculator.h:63
BTagScaleFactorCalculator.h