 |
ATLAS Offline Software
|
#include <FlavourUncertaintyComponent.h>
|
| | FlavourUncertaintyComponent (const ComponentHelper &component, const TString &jetType, const TString &analysisRootFileName, const TString &defaultAnalysisRootFileName, const TString &path, const TString &calibArea, const bool absEtaGluonFraction, const TString &analysisHistPattern="", const TString &NjetAccessorName="Njet") |
| |
| | FlavourUncertaintyComponent (const FlavourUncertaintyComponent &toCopy) |
| |
| virtual FlavourUncertaintyComponent * | clone () const |
| |
| virtual | ~FlavourUncertaintyComponent () |
| |
| virtual StatusCode | initialize (TFile *histFile) |
| |
| virtual FlavourComp::TypeEnum | getFlavourType () const |
| |
| virtual TString | getName () const |
| |
| virtual TString | getValidName () const |
| |
| virtual CompScaleVar::TypeEnum | getScaleVar () const |
| |
| virtual JetTopology::TypeEnum | getTopology () const |
| |
| virtual bool | isAlwaysZero () const |
| |
| virtual bool | getValidity (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const |
| |
| virtual double | getUncertainty (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const |
| |
| virtual bool | getValidUncertainty (double &unc, const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const |
| |
| void | setLevel (MSG::Level lvl) |
| | Change the current logging level. More...
|
| |
|
| | FlavourUncertaintyComponent (const std::string &name="") |
| |
| double | getFlavourResponseUncertainty (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const |
| |
| double | getFlavourCompositionUncertainty (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const |
| |
| double | getBJESUncertainty (const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const |
| |
| double | getGluonFraction (const double pT, const double eta, const int nJets) const |
| |
| double | getGluonFractionError (const double pT, const double eta, const int nJets) const |
| |
| double | getGluonResponseDifference (const double pT, const double eta) const |
| |
| double | getGluonResponseBaseline (const double pT, const double eta) const |
| |
| double | getQuarkResponseBaseline (const double pT, const double eta) const |
| |
| StatusCode | readNjetsHistograms (std::vector< UncertaintyHistogram * > &hists, const std::vector< TString > &histKeys) |
| |
| StatusCode | getNjetFromKey (const TString &key, int &nJets) const |
| |
| StatusCode | checkNjetsInput (int &nJets) const |
| |
| bool | isBjet (const xAOD::Jet &jet) const |
| |
| void | getGluonKeys (TFile *analysisFile, std::vector< TString > &gluonFractionKeys, std::vector< TString > &gluonFractionErrorKeys) const |
| |
| void | initMessaging () const |
| | Initialize our message level and MessageSvc. More...
|
| |
◆ FlavourRespType
◆ FlavourUncertaintyComponent() [1/3]
| jet::FlavourUncertaintyComponent::FlavourUncertaintyComponent |
( |
const ComponentHelper & |
component, |
|
|
const TString & |
jetType, |
|
|
const TString & |
analysisRootFileName, |
|
|
const TString & |
defaultAnalysisRootFileName, |
|
|
const TString & |
path, |
|
|
const TString & |
calibArea, |
|
|
const bool |
absEtaGluonFraction, |
|
|
const TString & |
analysisHistPattern = "", |
|
|
const TString & |
NjetAccessorName = "Njet" |
|
) |
| |
◆ FlavourUncertaintyComponent() [2/3]
Definition at line 84 of file FlavourUncertaintyComponent.cxx.
109 if (toCopy.m_secondUncHist)
112 for (
size_t iHist = 0; iHist < toCopy.m_gluonFractionHists.size(); ++iHist)
113 if (toCopy.m_gluonFractionHists.at(iHist))
114 m_gluonFractionHists.push_back(
new UncertaintyHistogram(*toCopy.m_gluonFractionHists.at(iHist)));
116 for (
size_t iHist = 0; iHist < toCopy.m_gluonFractionErrorHists.size(); ++iHist)
117 if (toCopy.m_gluonFractionErrorHists.at(iHist))
◆ ~FlavourUncertaintyComponent()
| jet::FlavourUncertaintyComponent::~FlavourUncertaintyComponent |
( |
| ) |
|
|
virtual |
◆ FlavourUncertaintyComponent() [3/3]
| jet::FlavourUncertaintyComponent::FlavourUncertaintyComponent |
( |
const std::string & |
name = "" | ) |
|
|
private |
◆ checkNjetsInput()
| StatusCode jet::FlavourUncertaintyComponent::checkNjetsInput |
( |
int & |
nJets | ) |
const |
|
private |
◆ clone()
◆ getAbsMass()
|
|
protectedvirtualinherited |
◆ getBJESUncertainty()
◆ getFlavourCompositionUncertainty()
Definition at line 457 of file FlavourUncertaintyComponent.cxx.
481 ATH_MSG_ERROR(
"Specified Njets treatment, but did not decorate EventInfo object");
499 const double Rsample = gluonFrac * Rg + (1-gluonFrac) * Rq;
511 const double flavorCompUnc = gluonFracError*fabs(Rq-Rg)/Rsample;
513 return flavorCompUnc;
◆ getFlavourResponseUncertainty()
◆ getFlavourType()
◆ getGluonFraction()
| double jet::FlavourUncertaintyComponent::getGluonFraction |
( |
const double |
pT, |
|
|
const double |
eta, |
|
|
const int |
nJets |
|
) |
| const |
|
private |
◆ getGluonFractionError()
| double jet::FlavourUncertaintyComponent::getGluonFractionError |
( |
const double |
pT, |
|
|
const double |
eta, |
|
|
const int |
nJets |
|
) |
| const |
|
private |
◆ getGluonKeys()
| void jet::FlavourUncertaintyComponent::getGluonKeys |
( |
TFile * |
analysisFile, |
|
|
std::vector< TString > & |
gluonFractionKeys, |
|
|
std::vector< TString > & |
gluonFractionErrorKeys |
|
) |
| const |
|
private |
Definition at line 671 of file FlavourUncertaintyComponent.cxx.
673 TList*
keys = analysisFile->GetListOfKeys();
679 while (TKey*
key =
dynamic_cast<TKey*
>(nextkey()))
686 if (
keyName.Contains(
"gluonFractionError"))
687 gluonFractionErrorKeys.push_back(
keyName);
688 else if (
keyName.Contains(
"gluonFraction"))
689 gluonFractionKeys.push_back(
keyName);
◆ getGluonResponseBaseline()
| double jet::FlavourUncertaintyComponent::getGluonResponseBaseline |
( |
const double |
pT, |
|
|
const double |
eta |
|
) |
| const |
|
private |
◆ getGluonResponseDifference()
| double jet::FlavourUncertaintyComponent::getGluonResponseDifference |
( |
const double |
pT, |
|
|
const double |
eta |
|
) |
| const |
|
private |
◆ getMassOverE()
|
|
protectedvirtualinherited |
◆ getMassOverPt()
|
|
protectedvirtualinherited |
◆ getName()
| virtual TString jet::UncertaintyComponent::getName |
( |
| ) |
const |
|
inlinevirtualinherited |
◆ getNjetFromKey()
| StatusCode jet::FlavourUncertaintyComponent::getNjetFromKey |
( |
const TString & |
key, |
|
|
int & |
nJets |
|
) |
| const |
|
private |
Definition at line 615 of file FlavourUncertaintyComponent.cxx.
617 std::vector<TString>
tokens = utils::vectorize<TString>(
key,
"_");
618 if (
tokens.size() > 2 &&
tokens.at(
tokens.size()-1).Contains(
"nJet",TString::kIgnoreCase))
620 TString nJetStr =
tokens.at(
tokens.size()-1).ReplaceAll(
"nJet",
"");
621 nJetStr = nJetStr.ReplaceAll(
"njet",
"");
622 nJetStr = nJetStr.ReplaceAll(
"Njet",
"");
623 if (!utils::getTypeObjFromString<int>(nJetStr,nJets))
625 ATH_MSG_ERROR(
"Found nJets histogram, but failed to parse the index: " <<
key.Data());
626 return StatusCode::FAILURE;
629 return StatusCode::SUCCESS;
◆ getQuarkResponseBaseline()
| double jet::FlavourUncertaintyComponent::getQuarkResponseBaseline |
( |
const double |
pT, |
|
|
const double |
eta |
|
) |
| const |
|
private |
◆ getScaleVar()
◆ getSplitFactor()
| double jet::UncertaintyComponent::getSplitFactor |
( |
const xAOD::Jet & |
jet | ) |
const |
|
protectedvirtualinherited |
Definition at line 196 of file UncertaintyComponent.cxx.
203 double splitFactor = 1;
213 const double minPt =
histo->GetXaxis()->GetBinLowEdge(1);
214 const double maxPt =
histo->GetXaxis()->GetBinLowEdge(
histo->GetNbinsX()+1);
217 const double slope = 1./(
log(maxPt)-
log(minPt));
218 const double intercept = -slope*
log(minPt);
220 splitFactor = slope*
log(valPt <= minPt ? minPt+1.e-3 : valPt >= maxPt ? maxPt-1.
e-3 : valPt)+intercept;
228 const double minEta = 0;
229 const double maxEta = 4.5;
232 const double slope = 1./(
maxEta - minEta);
233 const double intercept = -slope*minEta;
248 const double minPt =
histo->GetXaxis()->GetBinLowEdge(1);
249 const double maxPt =
histo->GetXaxis()->GetBinLowEdge(
histo->GetNbinsX()+1);
252 const double minEta = 0;
253 const double maxEta = 4.5;
256 const double slopePt = 1./(
log(maxPt)-
log(minPt));
257 const double slopeEta = 1./(
maxEta-minEta);
259 const double fixedPt = valPt <= minPt ? minPt+1.e-3 : valPt >= maxPt ? maxPt - 1.e-3 : valPt;
262 splitFactor = (slopePt*(
log(fixedPt)-
log(minPt)) + slopeEta*(fixedEta-minEta))/2.;
269 const double minPt =
histo->GetXaxis()->GetBinLowEdge(1);
270 const double maxPt =
histo->GetXaxis()->GetBinLowEdge(
histo->GetNbinsX()+1);
273 const double minEta = 0;
274 const double maxEta = 4.5;
277 const double slopePt = 1./(
log(maxPt)-
log(minPt));
278 const double slopeEta = 1./(
maxEta-minEta);
280 const double fixedPt = valPt <= minPt ? minPt+1.e-3 : valPt >= maxPt ? maxPt - 1.e-3 : valPt;
283 splitFactor = (slopePt*(
log(fixedPt)-
log(minPt)) + slopeEta*(
maxEta-fixedEta))/2.;
289 splitFactor = sqrt(1-splitFactor*splitFactor);
◆ getTopology()
◆ getUncertainty()
◆ getUncertaintyImpl()
◆ getValidBool()
| bool jet::UncertaintyComponent::getValidBool |
( |
const double |
validity | ) |
const |
|
protectedvirtualinherited |
Definition at line 301 of file UncertaintyComponent.cxx.
303 if (validity < 1.e-5 && validity > -1.
e-5)
return false;
304 if (validity < 1+1.e-5 && validity > 1-1.
e-5)
return true;
◆ getValidity()
◆ getValidityImpl()
◆ getValidName()
| virtual TString jet::UncertaintyComponent::getValidName |
( |
| ) |
const |
|
inlinevirtualinherited |
◆ getValidUncertainty()
◆ initialize()
| StatusCode jet::FlavourUncertaintyComponent::initialize |
( |
TFile * |
histFile | ) |
|
|
virtual |
Reimplemented from jet::UncertaintyComponent.
Definition at line 141 of file FlavourUncertaintyComponent.cxx.
145 return StatusCode::FAILURE;
153 return StatusCode::FAILURE;
159 return StatusCode::FAILURE;
164 return StatusCode::FAILURE;
183 ATH_MSG_ERROR(
"Component is FlavourComposition, but histogram names are unexpected (need to discriminate gluon vs quark response histograms): " <<
m_uncHistName.Data() <<
" and " <<
m_secondUncName.Data());
184 return StatusCode::FAILURE;
196 return StatusCode::FAILURE;
205 if (!analysisFile || analysisFile->IsZombie())
208 return StatusCode::FAILURE;
214 std::vector<TString> gluonFractionKeys;
215 std::vector<TString> gluonFractionErrorKeys;
216 getGluonKeys(analysisFile,gluonFractionKeys,gluonFractionErrorKeys);
220 if (gluonFractionKeys.empty() || gluonFractionErrorKeys.empty())
222 ATH_MSG_ERROR(Form(
"Failed to find gluon fraction histogram(s), found %zu nominal and %zu error hists in file %s",gluonFractionKeys.size(),gluonFractionErrorKeys.size(),
m_analysisFileName.Data()));
223 return StatusCode::FAILURE;
228 for (
size_t iKey = 0; iKey < gluonFractionKeys.size(); ++iKey)
232 return StatusCode::FAILURE;
233 if (nJets > nJetsMax && nJets < 1000)
238 if (nJetsMax < 0 && gluonFractionKeys.size() == 1 && gluonFractionErrorKeys.size() == 1)
244 else if (nJetsMax < 0 && gluonFractionKeys.size() > 1)
246 ATH_MSG_ERROR(Form(
"Found %zu gluon fraction histograms, but they do not appear to be binned by nJets:",gluonFractionKeys.size()));
247 for (
size_t iKey = 0; iKey < gluonFractionKeys.size(); ++iKey)
248 ATH_MSG_ERROR(Form(
"\tKey %zu: %s",iKey,gluonFractionKeys.at(iKey).Data()));
249 return StatusCode::FAILURE;
254 for (
int nJets = 0; nJets <= nJetsMax; ++nJets)
260 return StatusCode::FAILURE;
262 return StatusCode::FAILURE;
270 ATH_MSG_ERROR(Form(
"nJets = %zu was specified for the gluon fraction, but not the error",iJet));
271 return StatusCode::FAILURE;
275 ATH_MSG_ERROR(Form(
"nJets = %zu was specified for the error, but not the gluon fraction",iJet));
276 return StatusCode::FAILURE;
285 return StatusCode::FAILURE;
287 return StatusCode::FAILURE;
291 analysisFile->Close();
300 if (!defAnaFile || defAnaFile->IsZombie())
303 return StatusCode::FAILURE;
309 std::vector<TString> gluonFractionDefaultKeys;
310 std::vector<TString> gluonFractionErrorDefaultKeys;
311 getGluonKeys(defAnaFile,gluonFractionDefaultKeys,gluonFractionErrorDefaultKeys);
314 if (gluonFractionDefaultKeys.size() != 1 || gluonFractionErrorDefaultKeys.size() != 1)
316 ATH_MSG_ERROR(Form(
"When using the default file to fill unspecified nJets histograms, exactly one gluon fraction and one gluon fraction uncertainty histogram are required. Instead, we found %zu and %zu respectively in the file %s",gluonFractionDefaultKeys.size(),gluonFractionErrorDefaultKeys.size(),
m_defAnaFileName.Data()));
317 return StatusCode::FAILURE;
326 return StatusCode::FAILURE;
328 return StatusCode::FAILURE;
336 return StatusCode::SUCCESS;
◆ initMessaging()
| void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ isAlwaysZero()
| bool jet::UncertaintyComponent::isAlwaysZero |
( |
| ) |
const |
|
virtualinherited |
◆ isBjet()
| bool jet::FlavourUncertaintyComponent::isBjet |
( |
const xAOD::Jet & |
jet | ) |
const |
|
private |
◆ msg() [1/2]
| MsgStream & asg::AsgMessaging::msg |
( |
| ) |
const |
|
inherited |
The standard message stream.
- Returns
- A reference to the default message stream of this object.
Definition at line 49 of file AsgMessaging.cxx.
50 #ifndef XAOD_STANDALONE
52 #else // not XAOD_STANDALONE
54 #endif // not XAOD_STANDALONE
◆ msg() [2/2]
| MsgStream & asg::AsgMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
inherited |
The standard message stream.
- Parameters
-
| lvl | The message level to set the stream to |
- Returns
- A reference to the default message stream, set to level "lvl"
Definition at line 57 of file AsgMessaging.cxx.
58 #ifndef XAOD_STANDALONE
60 #else // not XAOD_STANDALONE
63 #endif // not XAOD_STANDALONE
◆ msgLvl()
| bool asg::AsgMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inherited |
Test the output level of the object.
- Parameters
-
| lvl | The message level to test against |
- Returns
- boolean Indicting if messages at given level will be printed
-
true If messages at level "lvl" will be printed
Definition at line 41 of file AsgMessaging.cxx.
42 #ifndef XAOD_STANDALONE
43 return ::AthMessaging::msgLvl( lvl );
44 #else // not XAOD_STANDALONE
45 return m_msg.msgLevel( lvl );
46 #endif // not XAOD_STANDALONE
◆ readNjetsHistograms()
| StatusCode jet::FlavourUncertaintyComponent::readNjetsHistograms |
( |
std::vector< UncertaintyHistogram * > & |
hists, |
|
|
const std::vector< TString > & |
histKeys |
|
) |
| |
|
private |
Definition at line 592 of file FlavourUncertaintyComponent.cxx.
594 for (
size_t iKey = 0; iKey < histKeys.size(); ++iKey)
596 const TString&
histName = histKeys.at(iKey);
599 return StatusCode::FAILURE;
600 if (nJets < 0 || nJets >=
static_cast<int>(
hists.size()))
602 ATH_MSG_ERROR(Form(
"Unexpected gluon fraction nJet %d of index %zu: %s",nJets,iKey,
histName.Data()));
603 return StatusCode::FAILURE;
607 ATH_MSG_ERROR(Form(
"A histo for nJets of %d was already found, blocking double-creation of %s",nJets,
histName.Data()));
608 return StatusCode::FAILURE;
612 return StatusCode::SUCCESS;
◆ setLevel()
| void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ ATLAS_THREAD_SAFE
| std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_absEta
| const bool jet::FlavourUncertaintyComponent::m_absEta |
|
private |
◆ m_absEtaGluonFraction
| const bool jet::FlavourUncertaintyComponent::m_absEtaGluonFraction |
|
private |
◆ m_analysisFileName
| const TString jet::FlavourUncertaintyComponent::m_analysisFileName |
|
private |
◆ m_analysisHistPattern
| const TString jet::FlavourUncertaintyComponent::m_analysisHistPattern |
|
private |
◆ m_BjetAccessor
◆ m_calibArea
| const TString jet::FlavourUncertaintyComponent::m_calibArea |
|
private |
◆ m_defAnaFileName
| const TString jet::FlavourUncertaintyComponent::m_defAnaFileName |
|
private |
◆ m_energyScale
| const float jet::UncertaintyComponent::m_energyScale {} |
|
protectedinherited |
◆ m_flavourType
◆ m_gluonFractionErrorHists
◆ m_gluonFractionHists
◆ m_imsg
| std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_interpolate
◆ m_isInit
| bool jet::UncertaintyComponent::m_isInit {} |
|
protectedinherited |
◆ m_jetType
| const TString jet::FlavourUncertaintyComponent::m_jetType |
|
private |
◆ m_largeRJetTruthLabelAccessor
◆ m_largeRJetTruthLabelName
| std::string jet::FlavourUncertaintyComponent::m_largeRJetTruthLabelName |
|
private |
◆ m_largeRJetTruthLabels
◆ m_lvl
| std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_msg_tls
| boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_NjetAccessor
◆ m_nm
| std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_numExpectedHist
| int jet::UncertaintyComponent::m_numExpectedHist {} |
|
protectedinherited |
◆ m_path
| const TString jet::FlavourUncertaintyComponent::m_path |
|
private |
◆ m_respType
◆ m_scaleVar
◆ m_secondRespType
◆ m_secondUncHist
◆ m_secondUncName
| const TString jet::FlavourUncertaintyComponent::m_secondUncName |
|
private |
◆ m_splitNumber
| const int jet::UncertaintyComponent::m_splitNumber {} |
|
protectedinherited |
◆ m_topology
◆ m_uncHist
◆ m_uncHistName
| const TString jet::UncertaintyComponent::m_uncHistName |
|
protectedinherited |
◆ m_validHist
◆ m_validHistName
| const TString jet::UncertaintyComponent::m_validHistName |
|
protectedinherited |
The documentation for this class was generated from the following files:
std::atomic< MSG::Level > m_lvl
Current logging level.
virtual bool getValidityImpl(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const =0
const float m_energyScale
path
python interpreter configuration --------------------------------------—
virtual double getSplitFactor(const xAOD::Jet &jet) const
const Interpolate::TypeEnum m_interpolate
const TString m_calibArea
Scalar eta() const
pseudorapidity method
const FlavourComp::TypeEnum m_flavourType
const TH1 * getHisto() const
double getBJESUncertainty(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
const TString m_uncHistName
SG::AuxElement::Accessor< int > m_NjetAccessor
bool isAbsEta(const TypeEnum type)
Helper class to provide constant type-safe access to aux data.
virtual StatusCode initialize(TFile *histFile)
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
IMessageSvc * getMessageSvc(bool quiet=false)
virtual bool getValidBool(const double validity) const
double getValue(const double var1) const
SG::AuxElement::Accessor< int > m_largeRJetTruthLabelAccessor
double getGluonFraction(const double pT, const double eta, const int nJets) const
virtual StatusCode initialize(TFile *histFile)
std::vector< UncertaintyHistogram * > m_gluonFractionErrorHists
#define JESUNC_ERROR_CODE
const TString m_validHistName
FlavourRespType m_respType
std::vector< UncertaintyHistogram * > m_gluonFractionHists
#define JESUNC_SAFE_DELETE(T)
bool isBjet(const xAOD::Jet &jet) const
TString getJetScaleString(const TypeEnum type)
const TString m_analysisFileName
UncertaintyHistogram * m_validHist
double getFlavourCompositionUncertainty(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual TString getName() const
std::vector< LargeRJetTruthLabel::TypeEnum > m_largeRJetTruthLabels
UncertaintyHistogram * m_secondUncHist
StatusCode readNjetsHistograms(std::vector< UncertaintyHistogram * > &hists, const std::vector< TString > &histKeys)
const TString m_secondUncName
FlavourUncertaintyComponent(const ComponentHelper &component, const TString &jetType, const TString &analysisRootFileName, const TString &defaultAnalysisRootFileName, const TString &path, const TString &calibArea, const bool absEtaGluonFraction, const TString &analysisHistPattern="", const TString &NjetAccessorName="Njet")
std::string m_largeRJetTruthLabelName
double getGluonResponseBaseline(const double pT, const double eta) const
double getGluonResponseDifference(const double pT, const double eta) const
double getFlavourResponseUncertainty(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
virtual double getUncertaintyImpl(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const =0
#define JESUNC_NO_DEFAULT_CONSTRUCTOR
virtual TString getValidName() const
const TString m_analysisHistPattern
void getGluonKeys(TFile *analysisFile, std::vector< TString > &gluonFractionKeys, std::vector< TString > &gluonFractionErrorKeys) const
double getGluonFractionError(const double pT, const double eta, const int nJets) const
FlavourRespType m_secondRespType
const CompScaleVar::TypeEnum m_scaleVar
std::string m_nm
Message source name.
virtual double getUncertainty(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
bool absEta(const xAOD::TauJet &tau, float &out)
TypeEnum intToEnum(const int type)
double getQuarkResponseBaseline(const double pT, const double eta) const
StatusCode getNjetFromKey(const TString &key, int &nJets) const
UncertaintyComponent(const ComponentHelper &component, const size_t numHist=1)
UncertaintyHistogram * m_uncHist
TFile * readRootFile(const TString &fileName, const TString &path="", const TString &calibArea="")
const TString m_defAnaFileName
StatusCode checkNjetsInput(int &nJets) const
TString enumToString(const TypeEnum type)
SG::AuxElement::Accessor< char > m_BjetAccessor
virtual bool getValidity(const xAOD::Jet &jet, const xAOD::EventInfo &eInfo) const
const bool m_absEtaGluonFraction
const JetTopology::TypeEnum m_topology