ATLAS Offline Software
TopEgammaCPTools.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #ifndef TOPCPTOOLS_TOPEGAMMACPTOOLS_H_
6 #define TOPCPTOOLS_TOPEGAMMACPTOOLS_H_
7 
8 // Include what you use
9 #include <vector>
10 #include <string>
11 
12 // Framework include(s):
13 #include "AsgTools/AsgTool.h"
14 #include "AsgTools/ToolHandle.h"
16 #include "AsgTools/AnaToolHandle.h"
17 
18 // Egamma include(s):
24 //#include "ElectronPhotonSelectorTools/AsgForwardElectronLikelihoodTool.h"
25 
27 
28 namespace top {
29  class TopConfig;
30 
31  class EgammaCPTools final: public asg::AsgTool {
32  public:
33  explicit EgammaCPTools(const std::string& name);
34  virtual ~EgammaCPTools() {}
35 
37  private:
38  std::shared_ptr<top::TopConfig> m_config;
39 
46  std::string m_electronEffSFIDFile;
54 
55 // std::string m_fwdElectronEffSFIDFile;
56 // std::string m_fwdElectronEffSFIDLooseFile;
57 
58  ToolHandle<CP::IEgammaCalibrationAndSmearingTool> m_egammaCalibrationAndSmearingTool;
59 
60  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFTrigger;
61  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFTriggerLoose;
62  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffTrigger;
63  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffTriggerLoose;
64  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFReco;
65  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFID;
66  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFIDLoose;
67  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFIso;
68  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFIsoLoose;
69  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFChargeID;
70  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFChargeIDLoose;
71 
72  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFTriggerCorrModel;
73  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFTriggerLooseCorrModel;
74  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffTriggerCorrModel;
75  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffTriggerLooseCorrModel;
76  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFRecoCorrModel;
77  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFIDCorrModel;
78  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFIDLooseCorrModel;
79  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFIsoCorrModel;
80  ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_electronEffSFIsoLooseCorrModel;
81 
83  ToolHandle<IAsgPhotonEfficiencyCorrectionTool> m_photonEffSF;
84  ToolHandleArray<IAsgPhotonEfficiencyCorrectionTool> m_photonIsoSFTools;
85 
86  ToolHandle<IAsgPhotonIsEMSelector> m_photonTightIsEMSelector;
87  ToolHandle<IAsgPhotonIsEMSelector> m_photonMediumIsEMSelector;
88  ToolHandle<IAsgPhotonIsEMSelector> m_photonLooseIsEMSelector;
89 
90 // ToolHandle<AsgForwardElectronLikelihoodTool> m_fwdElectronSelector;
91 // ToolHandle<AsgForwardElectronLikelihoodTool> m_fwdElectronSelectorLoose;
92 // ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_fwdElectronEffSFID;
93 // ToolHandle<IAsgElectronEfficiencyCorrectionTool> m_fwdElectronEffSFIDLoose;
94 
98 
100  const std::vector<std::string>& file_list,
101  const int& data_type,
102  const std::string& correlation_model="TOTAL",
103  const std::string& correlationModelEtaBinning="",
104  const std::string& correlationModelEtBinning="");
105 
106 
107 
108 
109  // Helper function to deal with path resolving the
110  // egamma groups very long file names for SFs and efficiencies.
111  std::string electronSFFilePath(const std::string& type, const std::string& ID, const std::string& ISO);
112 
113  // Helper for using maps from egamma groups
115  const std::string& map_path,
116  const std::string& reco_key,
117  const std::string& ID_key,
118  const std::string& iso_key,
119  const std::string& trigger_key,
120  const int& data_type,
121  const std::string& correlationModel,
122  const std::string& correlationModelEtaBinning,
123  const std::string& correlationModelEtBinning);
124 
125 
126 
127 
129  const std::string& map_path,
130  const std::string& reco_key,
131  const std::string& ID_key,
132  const std::string& iso_key,
133  const std::string& trigger_key,
134  const int& data_type,
135  const int& correlationModelNtoys,
136  const int& correlationToySeed,
137  const std::string& correlationModel,
138  const std::string& correlationModelEtaBinning,
139  const std::string& correlationModelEtBinning);
140 
141 
142 
143  std::string electronSFMapFilePath(const std::string& type);
144  void setCorrelationModelBinning(IAsgElectronEfficiencyCorrectionTool* tool, const std::string& binningName,
145  const std::string& binning);
146 
147 
148 
149  void setCorrelationModelToys(IAsgElectronEfficiencyCorrectionTool* tool, const std::string& ToysName,
150  const int& number);
151 
152 
153 
154  std::string mapWorkingPoints(const std::string& type);
155  };
156 } // namespace top
157 
158 #endif // TOPCPTOOLS_TOPEGAMMACPTOOLS_H_
159 
top::EgammaCPTools::m_electronEffSFTrigger
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFTrigger
Definition: TopEgammaCPTools.h:60
top::EgammaCPTools::m_electronEffSFChargeMisIDFile
std::string m_electronEffSFChargeMisIDFile
Definition: TopEgammaCPTools.h:52
top::EgammaCPTools::m_electronEffSFChargeMisIDLooseFile
std::string m_electronEffSFChargeMisIDLooseFile
Definition: TopEgammaCPTools.h:53
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
asg::AnaToolHandle< IElectronPhotonShowerShapeFudgeTool >
AddEmptyComponent.binning
binning
Definition: AddEmptyComponent.py:34
top::EgammaCPTools::m_electronEffSFIDLooseFile
std::string m_electronEffSFIDLooseFile
Definition: TopEgammaCPTools.h:47
top
TopConfig A simple configuration that is NOT a singleton.
Definition: AnalysisTrackingHelper.cxx:58
top::EgammaCPTools::m_electronEffSFTriggerLooseCorrModel
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFTriggerLooseCorrModel
Definition: TopEgammaCPTools.h:73
top::EgammaCPTools::electronSFFilePath
std::string electronSFFilePath(const std::string &type, const std::string &ID, const std::string &ISO)
Definition: TopEgammaCPTools.cxx:783
top::EgammaCPTools::m_electronEffSFChargeIDLooseFile
std::string m_electronEffSFChargeIDLooseFile
Definition: TopEgammaCPTools.h:51
ID
std::vector< Identifier > ID
Definition: CalibHitIDCheck.h:24
top::EgammaCPTools::m_photonIsoSFTools
ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > m_photonIsoSFTools
Definition: TopEgammaCPTools.h:84
IAsgPhotonIsEMSelector.h
IAsgElectronEfficiencyCorrectionTool.h
top::EgammaCPTools::electronSFMapFilePath
std::string electronSFMapFilePath(const std::string &type)
Definition: TopEgammaCPTools.cxx:858
top::EgammaCPTools::setCorrelationModelToys
void setCorrelationModelToys(IAsgElectronEfficiencyCorrectionTool *tool, const std::string &ToysName, const int &number)
Definition: TopEgammaCPTools.cxx:619
top::EgammaCPTools::m_photonFudgeTool
asg::AnaToolHandle< IElectronPhotonShowerShapeFudgeTool > m_photonFudgeTool
Definition: TopEgammaCPTools.h:82
top::EgammaCPTools::m_electronEffSFReco
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFReco
Definition: TopEgammaCPTools.h:64
top::EgammaCPTools::setupSelectors
StatusCode setupSelectors()
Definition: TopEgammaCPTools.cxx:112
top::EgammaCPTools::m_egammaCalibrationModel
std::string m_egammaCalibrationModel
Definition: TopEgammaCPTools.h:40
IAsgPhotonEfficiencyCorrectionTool.h
top::EgammaCPTools::m_electronEffSFIso
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFIso
Definition: TopEgammaCPTools.h:67
top::EgammaCPTools::~EgammaCPTools
virtual ~EgammaCPTools()
Definition: TopEgammaCPTools.h:34
top::EgammaCPTools
Definition: TopEgammaCPTools.h:31
top::EgammaCPTools::m_electronEffSFRecoCorrModel
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFRecoCorrModel
Definition: TopEgammaCPTools.h:76
top::EgammaCPTools::m_electronEffSFIsoFile
std::string m_electronEffSFIsoFile
Definition: TopEgammaCPTools.h:48
top::EgammaCPTools::m_electronEffSFIsoCorrModel
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFIsoCorrModel
Definition: TopEgammaCPTools.h:79
top::EgammaCPTools::m_photonEffSF
ToolHandle< IAsgPhotonEfficiencyCorrectionTool > m_photonEffSF
Definition: TopEgammaCPTools.h:83
top::EgammaCPTools::m_electronEffSFIDCorrModel
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFIDCorrModel
Definition: TopEgammaCPTools.h:77
top::EgammaCPTools::setCorrelationModelBinning
void setCorrelationModelBinning(IAsgElectronEfficiencyCorrectionTool *tool, const std::string &binningName, const std::string &binning)
Definition: TopEgammaCPTools.cxx:589
IElectronPhotonShowerShapeFudgeTool.h
top::EgammaCPTools::m_electronEffSFIsoLooseCorrModel
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFIsoLooseCorrModel
Definition: TopEgammaCPTools.h:80
IEgammaCalibrationAndSmearingTool.h
ToolHandleArray.h
top::EgammaCPTools::m_config
std::shared_ptr< top::TopConfig > m_config
Definition: TopEgammaCPTools.h:38
RpcMonitorAlgorithm.file_list
list file_list
Definition: RpcMonitorAlgorithm.py:383
top::EgammaCPTools::m_electronEffSFIDFile
std::string m_electronEffSFIDFile
Definition: TopEgammaCPTools.h:46
top::EgammaCPTools::setupElectronSFToolWithMap
IAsgElectronEfficiencyCorrectionTool * setupElectronSFToolWithMap(const std::string &name, const std::string &map_path, const std::string &reco_key, const std::string &ID_key, const std::string &iso_key, const std::string &trigger_key, const int &data_type, const std::string &correlationModel, const std::string &correlationModelEtaBinning, const std::string &correlationModelEtBinning)
Definition: TopEgammaCPTools.cxx:705
top::EgammaCPTools::m_egammaCalibrationAndSmearingTool
ToolHandle< CP::IEgammaCalibrationAndSmearingTool > m_egammaCalibrationAndSmearingTool
Definition: TopEgammaCPTools.h:58
top::EgammaCPTools::m_electronEffSFTriggerCorrModel
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFTriggerCorrModel
Definition: TopEgammaCPTools.h:72
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
top::EgammaCPTools::m_photonTightIsEMSelector
ToolHandle< IAsgPhotonIsEMSelector > m_photonTightIsEMSelector
Definition: TopEgammaCPTools.h:86
top::EgammaCPTools::m_electronEffTriggerLooseFile
std::string m_electronEffTriggerLooseFile
Definition: TopEgammaCPTools.h:42
top::EgammaCPTools::m_electronEffTriggerCorrModel
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffTriggerCorrModel
Definition: TopEgammaCPTools.h:74
top::EgammaCPTools::m_electronEffSFTriggerLoose
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFTriggerLoose
Definition: TopEgammaCPTools.h:61
top::EgammaCPTools::m_electronEffSFChargeID
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFChargeID
Definition: TopEgammaCPTools.h:69
AnaToolHandle.h
top::EgammaCPTools::m_electronEffSFIDLoose
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFIDLoose
Definition: TopEgammaCPTools.h:66
top::EgammaCPTools::m_electronEffSFIDLooseCorrModel
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFIDLooseCorrModel
Definition: TopEgammaCPTools.h:78
top::EgammaCPTools::m_electronEffTrigger
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffTrigger
Definition: TopEgammaCPTools.h:62
top::EgammaCPTools::m_electronEffSFChargeIDFile
std::string m_electronEffSFChargeIDFile
Definition: TopEgammaCPTools.h:50
python.selection.number
number
Definition: selection.py:20
top::EgammaCPTools::m_electronEffSFRecoFile
std::string m_electronEffSFRecoFile
Definition: TopEgammaCPTools.h:45
top::EgammaCPTools::m_electronEffSFTriggerFile
std::string m_electronEffSFTriggerFile
Definition: TopEgammaCPTools.h:43
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
top::EgammaCPTools::m_electronEffSFIsoLooseFile
std::string m_electronEffSFIsoLooseFile
Definition: TopEgammaCPTools.h:49
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
top::EgammaCPTools::m_electronEffSFIsoLoose
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFIsoLoose
Definition: TopEgammaCPTools.h:68
top::EgammaCPTools::setupElectronSFTool
IAsgElectronEfficiencyCorrectionTool * setupElectronSFTool(const std::string &name, const std::vector< std::string > &file_list, const int &data_type, const std::string &correlation_model="TOTAL", const std::string &correlationModelEtaBinning="", const std::string &correlationModelEtBinning="")
Definition: TopEgammaCPTools.cxx:561
correlationModel
Definition: AsgElectronEfficiencyCorrectionTool.cxx:44
top::EgammaCPTools::m_electronEffSFChargeIDLoose
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFChargeIDLoose
Definition: TopEgammaCPTools.h:70
top::EgammaCPTools::m_electronEffSFTriggerLooseFile
std::string m_electronEffSFTriggerLooseFile
Definition: TopEgammaCPTools.h:44
top::EgammaCPTools::initialize
StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: TopEgammaCPTools.cxx:82
top::EgammaCPTools::setupCalibration
StatusCode setupCalibration()
Definition: TopEgammaCPTools.cxx:133
Tokenize.h
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
top::EgammaCPTools::m_electronEffTriggerLoose
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffTriggerLoose
Definition: TopEgammaCPTools.h:63
top::EgammaCPTools::m_electronEffSFID
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffSFID
Definition: TopEgammaCPTools.h:65
top::EgammaCPTools::m_electronEffTriggerLooseCorrModel
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_electronEffTriggerLooseCorrModel
Definition: TopEgammaCPTools.h:75
top::EgammaCPTools::mapWorkingPoints
std::string mapWorkingPoints(const std::string &type)
Definition: TopEgammaCPTools.cxx:870
top::EgammaCPTools::setupScaleFactors
StatusCode setupScaleFactors()
Definition: TopEgammaCPTools.cxx:234
top::EgammaCPTools::m_photonLooseIsEMSelector
ToolHandle< IAsgPhotonIsEMSelector > m_photonLooseIsEMSelector
Definition: TopEgammaCPTools.h:88
IAsgElectronEfficiencyCorrectionTool
Definition: IAsgElectronEfficiencyCorrectionTool.h:18
ToolHandle.h
top::EgammaCPTools::m_photonMediumIsEMSelector
ToolHandle< IAsgPhotonIsEMSelector > m_photonMediumIsEMSelector
Definition: TopEgammaCPTools.h:87
AsgTool.h
top::EgammaCPTools::m_electronEffTriggerFile
std::string m_electronEffTriggerFile
Definition: TopEgammaCPTools.h:41
top::EgammaCPTools::EgammaCPTools
EgammaCPTools(const std::string &name)
Definition: TopEgammaCPTools.cxx:30