Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <TElectronEfficiencyCorrectionTool.h>
|
using | HistArray = std::vector< std::unique_ptr< TH1 > > |
|
|
int | getHistograms () |
| Load all histograms from the input file(s) More...
|
|
int | setupHistogramsInFolder (const TObjArray &dirNameArray, int lastIdx) |
|
bool | setupUncorrToySyst (std::vector< std::vector< TH1 * >> &objs, std::vector< std::vector< TH1 * >> &sysObjs, std::vector< std::vector< HistArray >> &uncorrToyMCSyst) |
|
std::vector< HistArray > | buildToyMCTable (const std::vector< TH1 * > &sf, const std::vector< TH1 * > &eig, const std::vector< TH1 * > &stat, const std::vector< TH1 * > &uncorr, const std::vector< std::vector< TH1 * >> &corr) |
|
std::vector< TH2 * > | buildSingleToyMC (const TH2 *sf, const TH2 *stat, const TH2 *uncorr, const std::vector< TH1 * > &corr, int &randomCounter) |
|
TH2 * | buildSingleCombToyMC (const TH2 *sf, const TH2 *stat, const TH2 *uncorr, const std::vector< TH1 * > &corr, const int nSys, int &randomCounter) |
|
void | setupTempMapsHelper (TH1 *obj, std::vector< std::vector< TH1 * >> &objs, std::vector< std::vector< TH1 * >> &sysObjs, int &seenSystematics) |
|
int | setup (const std::vector< TH1 * > &hists, std::vector< HistArray > &histList, std::vector< unsigned int > &beginRunNumberList, std::vector< unsigned int > &endRunNumberList, const int runNumBegin, const int runNumEnd) const |
| Fill and interpret the setup, depending on which histograms are found in the input file(s) More...
|
|
void | initMessaging () const |
| Initialize our message level and MessageSvc. More...
|
|
◆ HistArray
◆ TElectronEfficiencyCorrectionTool()
TElectronEfficiencyCorrectionTool::TElectronEfficiencyCorrectionTool |
( |
const char * |
name = "TElectronEfficiencyCorrectionTool" | ) |
|
◆ ~TElectronEfficiencyCorrectionTool()
Root::TElectronEfficiencyCorrectionTool::~TElectronEfficiencyCorrectionTool |
( |
| ) |
|
|
default |
◆ addFileName()
void Root::TElectronEfficiencyCorrectionTool::addFileName |
( |
const std::string & |
val | ) |
|
|
inline |
This is more of an utility so the initialize is different wrt to an athena component.
Add an input file with the auxiliary measurement needed before we call initialize
Definition at line 66 of file TElectronEfficiencyCorrectionTool.h.
◆ bookCombToyMCScaleFactors()
void Root::TElectronEfficiencyCorrectionTool::bookCombToyMCScaleFactors |
( |
const int |
nToyMC | ) |
|
|
inline |
◆ bookToyMCScaleFactors()
void Root::TElectronEfficiencyCorrectionTool::bookToyMCScaleFactors |
( |
const int |
nToyMC | ) |
|
|
inline |
◆ buildSingleCombToyMC()
TH2 * TElectronEfficiencyCorrectionTool::buildSingleCombToyMC |
( |
const TH2 * |
sf, |
|
|
const TH2 * |
stat, |
|
|
const TH2 * |
uncorr, |
|
|
const std::vector< TH1 * > & |
corr, |
|
|
const int |
nSys, |
|
|
int & |
randomCounter |
|
) |
| |
|
private |
Definition at line 437 of file TElectronEfficiencyCorrectionTool.cxx.
446 ATH_MSG_DEBUG(
" (file: " << __FILE__ <<
", line: " << __LINE__ <<
")\n"
447 <<
"Entering function buildSingleCombToyMC");
450 const int nBins = (
stat->GetNbinsX() + 2) * (
stat->GetNbinsY() + 2);
451 tmpHist = (TH2*)corr.at(0)->Clone();
453 std::vector<double> rnd(nSys, 0);
454 for (
int s = 0;
s < nSys; ++
s) {
464 double valAdd =
uncorr->GetBinContent(
bin);
470 for (
int s = 0;
s < nSys; ++
s) {
471 if (corr.at(
s) !=
nullptr) {
472 val +=
static_cast<TH2*
>(corr.at(
s))->GetBinContent(
bin) * rnd[
s];
477 tmpHist->SetDirectory(
nullptr);
◆ buildSingleToyMC()
std::vector< TH2 * > TElectronEfficiencyCorrectionTool::buildSingleToyMC |
( |
const TH2 * |
sf, |
|
|
const TH2 * |
stat, |
|
|
const TH2 * |
uncorr, |
|
|
const std::vector< TH1 * > & |
corr, |
|
|
int & |
randomCounter |
|
) |
| |
|
private |
Definition at line 397 of file TElectronEfficiencyCorrectionTool.cxx.
404 ATH_MSG_DEBUG(
" (file: " << __FILE__ <<
", line: " << __LINE__ <<
")! "
405 <<
"Entering function buildSingleToyMC");
406 std::vector<TH2*> tmpHists;
407 int nBins = (
stat->GetNbinsX() + 2) * (
stat->GetNbinsY() + 2);
409 for (
int toy = 0; toy <
m_nToyMC; toy++) {
410 tmpHists.push_back((TH2*)corr.at(0)->Clone());
418 double valAdd =
uncorr->GetBinContent(
bin);
421 for (
int toy = 0; toy <
m_nToyMC; toy++) {
422 tmpHists.at(toy)->SetBinContent(
425 tmpHists.at(toy)->SetDirectory(
nullptr);
◆ buildToyMCTable()
Definition at line 484 of file TElectronEfficiencyCorrectionTool.cxx.
492 ATH_MSG_DEBUG(
" (file: " << __FILE__ <<
", line: " << __LINE__ <<
")\n"
493 <<
"Entering function buildToyMCTable");
496 int randomCounter(0);
497 std::vector<HistArray> tmpVec;
498 const int stat_entries =
stat.size();
500 for (
int toyMC = 0; toyMC <
m_nToyMC; toyMC++) {
502 for (
int i = 0;
i < stat_entries; ++
i) {
504 nSys = ((TH1*)
eig.at(
i))->GetNbinsX() - 1;
520 tmpVec.emplace_back(std::move(tmpArray));
523 std::vector<std::vector<TH2*>> tmpVec2;
524 for (
int i = 0;
i < stat_entries; ++
i) {
525 nSys = ((TH1*)
eig.at(
i))->GetNbinsX() - 1;
532 for (
int toy = 0; toy <
m_nToyMC; toy++) {
534 for (
auto&
i : tmpVec2) {
535 tmpArray.emplace_back(
i.at(toy));
537 tmpVec.emplace_back(std::move(tmpArray));
◆ calculate()
The main calculate method: dataType
PATCore::ParticleDataType::DataType (e.g DATA,FULL etc) @ runnumber the run number.
1st dimension of the stored measurements @ cluster_eta the cluster eta. 2nd dimension of the stored measurements @ electron et. third dimension of the stored measurments @ result struct filled with SF, Total uncertainty, Stat uncertainty, Uncorr uncertainty @ onlyTotal do only the "total" systematic returns 0 in failure
Toy production is controlled by internal flags set by the Asg Tool. As toys are special.
Definition at line 160 of file TElectronEfficiencyCorrectionTool.cxx.
175 int runnumberIndex = -1;
193 if (runnumberIndex < 0) {
205 const std::vector<HistArray>& sfVector = currentmap.at(
mapkey::sf);
211 if (sfVector.empty() || runnumberIndex >=
static_cast<int>(sfVector.size())) {
218 const HistArray& sfObjectArray = sfVector[runnumberIndex];
221 const int entries = edges.size();
227 double yValue(cluster_eta);
231 bool invalid =
false;
232 bool changedEt =
false;
237 const HistEdge& histEdge = edges[
i];
239 if (
et < histEdge.etMin) {
244 if (std::abs(yValue) >= histEdge.etaMax) {
249 if (std::abs(yValue) < histEdge.etaMin) {
259 if (
et > histEdge.etMax) {
260 if (histEdge.isLowPt) {
263 xValue = histEdge.etMax - 1000 ;
287 << yValue <<
" , et = " <<
et <<
" , run number = "
288 <<
runnumber <<
". Please check your input files!");
297 const HistEdge& currentEdge = edges[
index];
301 constexpr
double epsilon = 1
e-6;
302 if (currentEdge.etaMin >= (0 - epsilon)) {
303 yValue = std::abs(yValue);
306 const TH2* currentHist =
static_cast<TH2*
>(sfObjectArray[
index].get()) ;
307 const int globalBinNumber = currentHist->FindFixBin(xValue, yValue);
308 const double scaleFactor = currentHist->GetBinContent(globalBinNumber);
309 const double scaleFactorErr = currentHist->GetBinError(globalBinNumber);
314 result.Total = scaleFactorErr;
316 result.histBinNum = globalBinNumber;
326 double statErr = -999;
327 const std::vector<HistArray>& statVector = currentmap.at(
mapkey::stat);
328 if (!statVector.empty()) {
329 if (!statVector[runnumberIndex].
empty()) {
330 statErr =
static_cast<TH1*
>(statVector[runnumberIndex][
index].get())
331 ->GetBinContent(globalBinNumber);
338 double val = statErr;
339 const std::vector<HistArray>& uncorrVector = currentmap.at(
mapkey::uncorr);
340 if (!uncorrVector.empty()) {
341 if (!uncorrVector.at(runnumberIndex).empty()) {
342 const double valAdd =
343 static_cast<TH1*
>(uncorrVector[runnumberIndex][
index].get())
344 ->GetBinContent(globalBinNumber);
358 const std::vector<std::vector<HistArray>>& sysList =
360 if (sysList.size() >
static_cast<unsigned int>(
index)) {
361 if (sysList.at(
index).size() >
static_cast<unsigned int>(runnumberIndex)) {
362 const int sys_entries = sysList.at(
index).at(runnumberIndex).size();
363 for (
int sys = 0;
sys < sys_entries; ++
sys) {
365 static_cast<TH2*
>(sysList[
index][runnumberIndex][
sys].get())
366 ->GetBinContent(globalBinNumber);
376 const std::vector<std::vector<HistArray>>& toyMCList =
378 if (toyMCList.size() > (
unsigned int)runnumberIndex) {
379 for (
int toy = 0; toy <
m_nToyMC; ++toy) {
380 if (toyMCList[runnumberIndex][toy].
size() >
381 static_cast<unsigned int>(
index)) {
383 static_cast<TH2*
>(toyMCList[runnumberIndex][toy][
index].get())
384 ->GetBinContent(globalBinNumber);
◆ fillHistEdges()
void TElectronEfficiencyCorrectionTool::fillHistEdges |
( |
const std::vector< HistArray > & |
sfPerPeriodHist, |
|
|
std::vector< std::vector< HistEdge >> & |
sfPerPeriodEdges |
|
) |
| |
|
staticprivate |
Definition at line 930 of file TElectronEfficiencyCorrectionTool.cxx.
934 for (
const auto&
vec : sfPerPeriodHist) {
935 const size_t vecSize =
vec.size();
936 std::vector<HistEdge> periodVec;
937 periodVec.reserve(vecSize);
938 for (
size_t i = 0;
i < vecSize; ++
i) {
939 const auto*
tmpHist =
static_cast<TH2*
>(
vec[
i].get());
940 const auto*
const xAxis =
tmpHist->GetXaxis();
941 const auto* yAxis =
tmpHist->GetYaxis();
943 histEdge.etaMax = yAxis->GetXmax();
944 histEdge.etaMin = yAxis->GetXmin();
945 histEdge.etMax = xAxis->GetXmax();
946 histEdge.etMin = xAxis->GetXmin();
948 (std::strstr(
tmpHist->GetName(), LowPt_string) !=
nullptr);
950 periodVec.emplace_back(histEdge);
952 sfPerPeriodEdges.emplace_back(std::move(periodVec));
◆ getHistograms()
int TElectronEfficiencyCorrectionTool::getHistograms |
( |
| ) |
|
|
private |
Load all histograms from the input file(s)
Definition at line 587 of file TElectronEfficiencyCorrectionTool.cxx.
590 ATH_MSG_DEBUG(
" (file: " << __FILE__ <<
", line: " << __LINE__ <<
")\n"
591 <<
"Entering function getHistograms");
601 std::unique_ptr<TObjArray> myStringList(firstFileNameAndPath.Tokenize(
"/"));
602 int lastIdx = myStringList->GetLast();
603 TString
fileName = ((TObjString*)myStringList->At(lastIdx))->GetString();
604 std::unique_ptr<TObjArray> myFileNameTokensList(
fileName.Tokenize(
"."));
606 if (myFileNameTokensList->GetLast() < 3) {
616 const std::unique_ptr<char[]>
fname(gSystem->ExpandPathName(
ifile.c_str()));
617 std::unique_ptr<TFile>
rootFile(TFile::Open(
fname.get(),
"READ"));
624 TIter nextdir(
rootFile->GetListOfKeys());
626 TObject*
obj =
nullptr;
627 while ((
dir = (TKey*)nextdir())) {
629 if (
obj->IsA()->InheritsFrom(
"TDirectory")) {
631 std::unique_ptr<TObjArray> dirNameArray(
632 TString(
obj->GetName()).Tokenize(
"_"));
635 int lastIdx = dirNameArray->GetLast();
638 "The folder name seems to have the wrong format! Directory name:"
645 <<
dir->GetName() <<
"in file " <<
ifile);
649 ATH_MSG_ERROR(
"Wrong file content! Expected only Directories "
◆ getNbins()
int TElectronEfficiencyCorrectionTool::getNbins |
( |
std::map< float, std::vector< float >> & |
ptEta | ) |
const |
Helpers to get the binning of the uncertainties in a std::map (pt, eta)
Definition at line 546 of file TElectronEfficiencyCorrectionTool.cxx.
556 std::vector<float>
eta1;
560 for (
const auto& ikey : tmpVec) {
562 for (
const auto&
entries : ikey) {
565 TH2* h_tmp = ((TH2*)
entries.get());
566 int nbinsX = h_tmp->GetNbinsX();
567 int nbinsY = h_tmp->GetNbinsY();
569 for (
int biny = 1; biny <= nbinsY; ++biny) {
570 eta1.push_back(h_tmp->GetYaxis()->GetBinLowEdge(biny));
573 for (
int binx = 1; binx <= nbinsX; ++binx) {
574 pt_eta1[h_tmp->GetXaxis()->GetBinLowEdge(binx)] =
eta1;
578 for (
auto&
i : pt_eta1) {
579 nbinsTotal +=
i.second.size();
◆ getNSyst()
int Root::TElectronEfficiencyCorrectionTool::getNSyst |
( |
| ) |
const |
|
inline |
◆ initialize()
int TElectronEfficiencyCorrectionTool::initialize |
( |
| ) |
|
Initialize this class.
Definition at line 87 of file TElectronEfficiencyCorrectionTool.cxx.
97 <<
" configuration file(s)");
101 <<
" Only use one!");
112 const std::unique_ptr<char[]>
fname(
114 std::unique_ptr<TMD5> tmd = std::make_unique<TMD5>();
115 const char* tmd_as_string = tmd->FileChecksum(
fname.get())->AsString();
116 m_seed = *(
reinterpret_cast<const unsigned long int*
>(tmd_as_string));
127 ATH_MSG_ERROR(
" (file: " << __FILE__ <<
", line: " << __LINE__ <<
")\n"
128 <<
"! Problem when calling getHistograms()");
134 ATH_MSG_DEBUG(
" (file: " << __FILE__ <<
", line: " << __LINE__ <<
")\n"
135 <<
"Found " << nRunNumbersFast
136 <<
" run number ranges for fast sim with a total of "
138 <<
" scale factor histograms.");
140 ATH_MSG_DEBUG(
" (file: " << __FILE__ <<
", line: " << __LINE__ <<
")\n"
141 <<
"Found " << nRunNumbersFull
142 <<
" run number ranges for full sim with a total of "
144 <<
" scale factor histograms.");
◆ 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.
◆ 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
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ setSeed()
void Root::TElectronEfficiencyCorrectionTool::setSeed |
( |
const unsigned long int |
seed | ) |
|
|
inline |
◆ setup()
int TElectronEfficiencyCorrectionTool::setup |
( |
const std::vector< TH1 * > & |
hists, |
|
|
std::vector< HistArray > & |
histList, |
|
|
std::vector< unsigned int > & |
beginRunNumberList, |
|
|
std::vector< unsigned int > & |
endRunNumberList, |
|
|
const int |
runNumBegin, |
|
|
const int |
runNumEnd |
|
) |
| const |
|
private |
Fill and interpret the setup, depending on which histograms are found in the input file(s)
Definition at line 891 of file TElectronEfficiencyCorrectionTool.cxx.
900 ATH_MSG_ERROR(
"! Could NOT find histogram with name *_sf in folder");
907 tmpHist->SetDirectory(
nullptr);
908 tmpArray.emplace_back(
tmpHist);
910 histList.emplace_back(std::move(tmpArray));
912 if (!beginRunNumberList.empty()) {
913 if (runNumBegin != (
int)beginRunNumberList.back()) {
914 beginRunNumberList.push_back(runNumBegin);
917 beginRunNumberList.push_back(runNumBegin);
919 if (!endRunNumberList.empty()) {
920 if (runNumEnd != (
int)endRunNumberList.back()) {
921 endRunNumberList.push_back(runNumEnd);
924 endRunNumberList.push_back(runNumEnd);
◆ setupHistogramsInFolder()
int TElectronEfficiencyCorrectionTool::setupHistogramsInFolder |
( |
const TObjArray & |
dirNameArray, |
|
|
int |
lastIdx |
|
) |
| |
|
private |
setup obj arrays at specific indices
Definition at line 663 of file TElectronEfficiencyCorrectionTool.cxx.
668 ATH_MSG_DEBUG(
" (file: " << __FILE__ <<
", line: " << __LINE__ <<
")\n"
669 <<
"Entering funtion setupHistogramsInFolder");
672 TString myBegRunNumString =
673 ((TObjString*)dirNameArray.At(lastIdx - 1))->GetString();
674 if (myBegRunNumString.IsDigit()) {
675 runNumBegin = myBegRunNumString.Atoi();
678 TString myEndRunNumString =
679 ((TObjString*)dirNameArray.At(lastIdx))->GetString();
680 if (myEndRunNumString.IsDigit()) {
681 runNumEnd = myEndRunNumString.Atoi();
683 if (runNumBegin < 0 || runNumEnd < 0 || runNumEnd < runNumBegin) {
684 ATH_MSG_ERROR(
" (file: " << __FILE__ <<
", line: " << __LINE__ <<
")\n"
685 <<
"Could NOT interpret the run number range: "
686 << runNumBegin <<
" - " << runNumEnd);
691 std::vector<std::vector<TH1*>> objsFull(
mapkey::end);
692 std::vector<std::vector<TH1*>> objsFast(
mapkey::end);
694 std::vector<std::vector<TH1*>> sysObjsFull;
695 std::vector<std::vector<TH1*>> sysObjsFast;
698 TObject*
obj =
nullptr;
699 int seenSystematics = 0;
701 while ((
key = (TKey*)nextkey())) {
703 if (
obj->IsA()->InheritsFrom(
"TH1")) {
706 if (std::strstr(
obj->GetName(),
"FullSim") !=
nullptr) {
708 static_cast<TH1*
>(
obj), objsFull, sysObjsFull, seenSystematics);
709 }
else if (std::strstr(
obj->GetName(),
"AtlFast") !=
nullptr) {
711 static_cast<TH1*
>(
obj), objsFast, sysObjsFast, seenSystematics);
714 <<
obj->GetName() <<
" is full or fast simulation!");
719 ATH_MSG_DEBUG(
" (file: " << __FILE__ <<
", line: " << __LINE__ <<
")\n"
720 <<
"Setting up histograms for Run range "
724 for (
int key : s_keys) {
725 if (!objsFull.at(
key).empty()) {
733 <<
" for full sim!");
737 if (!objsFast.at(
key).empty()) {
750 for (
unsigned int sys = 0;
sys < sysObjsFast.size();
sys++) {
757 ATH_MSG_ERROR(
"! Could NOT setup systematic histograms for fast sim");
762 for (
unsigned int sys = 0;
sys < sysObjsFull.size();
sys++) {
769 ATH_MSG_ERROR(
"! Could NOT setup systematic histograms for fast sim");
779 bool fullToysBooked =
781 bool fastToysBooked =
783 if (fullToysBooked || fastToysBooked) {
786 <<
" ToyMC systematics ");
790 <<
" combined ToyMC systematics ");
◆ setupTempMapsHelper()
void TElectronEfficiencyCorrectionTool::setupTempMapsHelper |
( |
TH1 * |
obj, |
|
|
std::vector< std::vector< TH1 * >> & |
objs, |
|
|
std::vector< std::vector< TH1 * >> & |
sysObjs, |
|
|
int & |
seenSystematics |
|
) |
| |
|
private |
Definition at line 801 of file TElectronEfficiencyCorrectionTool.cxx.
808 for (
int key : s_keys) {
809 if (TString(
obj->GetName())
815 const TString tmpName(
obj->GetName());
817 if (tmpName.EndsWith(
"_sys")) {
819 std::vector<TH1*> tmpArray;
821 tmpArray.emplace_back(
static_cast<TH1*
>(
obj->Clone()));
822 sysObjs.emplace_back(tmpArray);
826 if (tmpName.Contains(
"_corr")) {
834 if (tmpName.EndsWith(
"corr0")) {
836 std::vector<TH1*> tmpArray;
838 sysObjs.emplace_back(tmpArray);
846 sysObjs.back().emplace_back(
obj);
◆ setupUncorrToySyst()
bool TElectronEfficiencyCorrectionTool::setupUncorrToySyst |
( |
std::vector< std::vector< TH1 * >> & |
objs, |
|
|
std::vector< std::vector< TH1 * >> & |
sysObjs, |
|
|
std::vector< std::vector< HistArray >> & |
uncorrToyMCSyst |
|
) |
| |
|
private |
◆ uncorrEmpty()
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_begRunNumberList
std::vector<unsigned int> Root::TElectronEfficiencyCorrectionTool::m_begRunNumberList |
|
private |
◆ m_begRunNumberListFastSim
std::vector<unsigned int> Root::TElectronEfficiencyCorrectionTool::m_begRunNumberListFastSim |
|
private |
◆ m_corrFileNameList
std::vector<std::string> Root::TElectronEfficiencyCorrectionTool::m_corrFileNameList |
|
private |
◆ m_doCombToyMC
bool Root::TElectronEfficiencyCorrectionTool::m_doCombToyMC |
|
private |
◆ m_doToyMC
bool Root::TElectronEfficiencyCorrectionTool::m_doToyMC |
|
private |
◆ m_endRunNumberList
std::vector<unsigned int> Root::TElectronEfficiencyCorrectionTool::m_endRunNumberList |
|
private |
◆ m_endRunNumberListFastSim
std::vector<unsigned int> Root::TElectronEfficiencyCorrectionTool::m_endRunNumberListFastSim |
|
private |
◆ m_fastHistEdges
std::vector<std::vector<HistEdge> > Root::TElectronEfficiencyCorrectionTool::m_fastHistEdges |
|
private |
◆ m_fastHistList
std::vector<std::vector<HistArray> > Root::TElectronEfficiencyCorrectionTool::m_fastHistList |
|
private |
◆ m_fastSysList
std::vector<std::vector<HistArray> > Root::TElectronEfficiencyCorrectionTool::m_fastSysList |
|
private |
◆ m_histEdges
std::vector<std::vector<HistEdge> > Root::TElectronEfficiencyCorrectionTool::m_histEdges |
|
private |
◆ m_histList
std::vector<std::vector<HistArray> > Root::TElectronEfficiencyCorrectionTool::m_histList |
|
private |
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ 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_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_nSysMax
int Root::TElectronEfficiencyCorrectionTool::m_nSysMax |
|
private |
◆ m_nToyMC
int Root::TElectronEfficiencyCorrectionTool::m_nToyMC |
|
private |
◆ m_Rndm
TRandom3 Root::TElectronEfficiencyCorrectionTool::m_Rndm |
|
private |
◆ m_seed
unsigned long int Root::TElectronEfficiencyCorrectionTool::m_seed |
|
private |
◆ m_sysList
std::vector<std::vector<HistArray> > Root::TElectronEfficiencyCorrectionTool::m_sysList |
|
private |
◆ m_uncorrToyMCSystFast
std::vector<std::vector<HistArray> > Root::TElectronEfficiencyCorrectionTool::m_uncorrToyMCSystFast |
|
private |
◆ m_uncorrToyMCSystFull
std::vector<std::vector<HistArray> > Root::TElectronEfficiencyCorrectionTool::m_uncorrToyMCSystFull |
|
private |
The documentation for this class was generated from the following files:
std::atomic< MSG::Level > m_lvl
Current logging level.
Extra patterns decribing particle interation process.
const char * keytostring(int input)
setEt setPhi setE277 setWeta2 eta1
std::vector< size_t > vec
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
IMessageSvc * getMessageSvc(bool quiet=false)
def tmpHist(what, wmin=-1e10, wmax=+1e10)
Class mimicking the AthMessaging class from the offline software.
bool empty() const noexcept
#define ATH_MSG_WARNING(x)
std::string m_nm
Message source name.