|
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="") |
|
| 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 = "" |
|
) |
| |
◆ FlavourUncertaintyComponent() [2/3]
Definition at line 83 of file FlavourUncertaintyComponent.cxx.
108 if (toCopy.m_secondUncHist)
111 for (
size_t iHist = 0; iHist < toCopy.m_gluonFractionHists.size(); ++iHist)
112 if (toCopy.m_gluonFractionHists.at(iHist))
113 m_gluonFractionHists.push_back(
new UncertaintyHistogram(*toCopy.m_gluonFractionHists.at(iHist)));
115 for (
size_t iHist = 0; iHist < toCopy.m_gluonFractionErrorHists.size(); ++iHist)
116 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 456 of file FlavourUncertaintyComponent.cxx.
480 ATH_MSG_ERROR(
"Specified Njets treatment, but did not decorate EventInfo object");
498 const double Rsample = gluonFrac * Rg + (1-gluonFrac) * Rq;
509 const double flavorCompUnc = gluonFracError*fabs(Rq-Rg)/Rsample;
511 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 669 of file FlavourUncertaintyComponent.cxx.
671 TList*
keys = analysisFile->GetListOfKeys();
677 while (TKey*
key =
dynamic_cast<TKey*
>(nextkey()))
685 if (
keyName.Contains(
"gluonFractionError"))
686 gluonFractionErrorKeys.push_back(
keyName);
687 else if (
keyName.Contains(
"gluonFraction"))
688 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 613 of file FlavourUncertaintyComponent.cxx.
615 std::vector<TString>
tokens = utils::vectorize<TString>(
key,
"_");
616 if (
tokens.size() > 2 &&
tokens.at(
tokens.size()-1).Contains(
"nJet",TString::kIgnoreCase))
618 TString nJetStr =
tokens.at(
tokens.size()-1).ReplaceAll(
"nJet",
"");
619 nJetStr = nJetStr.ReplaceAll(
"njet",
"");
620 nJetStr = nJetStr.ReplaceAll(
"Njet",
"");
621 if (!utils::getTypeObjFromString<int>(nJetStr,nJets))
623 ATH_MSG_ERROR(
"Found nJets histogram, but failed to parse the index: " <<
key.Data());
624 return StatusCode::FAILURE;
627 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 140 of file FlavourUncertaintyComponent.cxx.
144 return StatusCode::FAILURE;
152 return StatusCode::FAILURE;
158 return StatusCode::FAILURE;
163 return StatusCode::FAILURE;
182 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());
183 return StatusCode::FAILURE;
195 return StatusCode::FAILURE;
204 if (!analysisFile || analysisFile->IsZombie())
207 return StatusCode::FAILURE;
213 std::vector<TString> gluonFractionKeys;
214 std::vector<TString> gluonFractionErrorKeys;
215 getGluonKeys(analysisFile,gluonFractionKeys,gluonFractionErrorKeys);
219 if (gluonFractionKeys.empty() || gluonFractionErrorKeys.empty())
221 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()));
222 return StatusCode::FAILURE;
227 for (
size_t iKey = 0; iKey < gluonFractionKeys.size(); ++iKey)
231 return StatusCode::FAILURE;
232 if (nJets > nJetsMax)
237 if (nJetsMax < 0 && gluonFractionKeys.size() == 1 && gluonFractionErrorKeys.size() == 1)
243 else if (nJetsMax < 0 && gluonFractionKeys.size() > 1)
245 ATH_MSG_ERROR(Form(
"Found %zu gluon fraction histograms, but they do not appear to be binned by nJets:",gluonFractionKeys.size()));
246 for (
size_t iKey = 0; iKey < gluonFractionKeys.size(); ++iKey)
247 ATH_MSG_ERROR(Form(
"\tKey %zu: %s",iKey,gluonFractionKeys.at(iKey).Data()));
248 return StatusCode::FAILURE;
253 for (
int nJets = 0; nJets <= nJetsMax; ++nJets)
259 return StatusCode::FAILURE;
261 return StatusCode::FAILURE;
269 ATH_MSG_ERROR(Form(
"nJets = %zu was specified for the gluon fraction, but not the error",iJet));
270 return StatusCode::FAILURE;
274 ATH_MSG_ERROR(Form(
"nJets = %zu was specified for the error, but not the gluon fraction",iJet));
275 return StatusCode::FAILURE;
284 return StatusCode::FAILURE;
286 return StatusCode::FAILURE;
290 analysisFile->Close();
299 if (!defAnaFile || defAnaFile->IsZombie())
302 return StatusCode::FAILURE;
308 std::vector<TString> gluonFractionDefaultKeys;
309 std::vector<TString> gluonFractionErrorDefaultKeys;
310 getGluonKeys(defAnaFile,gluonFractionDefaultKeys,gluonFractionErrorDefaultKeys);
313 if (gluonFractionDefaultKeys.size() != 1 || gluonFractionErrorDefaultKeys.size() != 1)
315 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()));
316 return StatusCode::FAILURE;
325 return StatusCode::FAILURE;
327 return StatusCode::FAILURE;
335 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 590 of file FlavourUncertaintyComponent.cxx.
592 for (
size_t iKey = 0; iKey < histKeys.size(); ++iKey)
594 const TString&
histName = histKeys.at(iKey);
597 return StatusCode::FAILURE;
598 if (nJets < 0 || nJets >=
static_cast<int>(
hists.size()))
600 ATH_MSG_ERROR(Form(
"Unexpected gluon fraction nJet %d of index %zu: %s",nJets,iKey,
histName.Data()));
601 return StatusCode::FAILURE;
605 ATH_MSG_ERROR(Form(
"A histo for nJets of %d was already found, blocking double-creation of %s",nJets,
histName.Data()));
606 return StatusCode::FAILURE;
610 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
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
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
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="")
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
TypeEnum intToEnum(const int type)
double getQuarkResponseBaseline(const double pT, const double eta) const
StatusCode getNjetFromKey(const TString &key, int &nJets) const
bool absEta(const xAOD::TauJet &tau, double &out)
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