 |
ATLAS Offline Software
|
Go to the source code of this file.
|
bool | successful (bool arg) |
|
bool | successful (const StatusCode &arg) |
|
bool | allTests (Store_t &store) |
|
bool | minimalTest (const std::string &type, const std::vector< std::string > &config, Store_t &store, Result &result) |
|
bool | parallelJob (const std::string &type, const std::vector< std::string > &config, Store_t &store, const std::string &saveAs, int nEvents, int eventOffset) |
|
bool | readFromROOT (std::vector< std::string > &config) |
|
bool | readFromXML (std::vector< std::string > &config) |
|
template<class Interface = CP::IFakeBkgTool> |
bool | setup (asg::AnaToolHandle< Interface > &tool, const std::string &type, const std::vector< std::string > &config, const std::string &progressFile) |
| mostly useful for athena, which will otherwise re-use the previous tool More...
|
|
template<class Interface = CP::IFakeBkgTool> |
bool | eventLoop (asg::AnaToolHandle< Interface > &tool, Store_t &store, Result &result, int nEvents, int eventOffset=0) |
|
bool | addEventWeight (asg::AnaToolHandle< CP::ILinearFakeBkgTool > &tool, Result &result) |
|
bool | addEventWeight (asg::AnaToolHandle< CP::IFakeBkgTool > &tool, Result &result) |
|
template<class Interface = CP::IFakeBkgTool> |
bool | fillResult (asg::AnaToolHandle< Interface > &tool, Result &result) |
|
int | main (int argc, char *argv[]) |
|
◆ FBT_CHECK
◆ FBT_CHECK1
#define FBT_CHECK1 |
( |
|
x, |
|
|
|
FAIL |
|
) |
| |
Value: do { \
Error("fbtTestBasics", "failure encounted on l.%d", __LINE__); \
return FAIL; \
} \
} while(false)
Definition at line 41 of file fbtTestBasics.cxx.
◆ Store_t
◆ addEventWeight() [1/2]
◆ addEventWeight() [2/2]
◆ allTests()
Definition at line 110 of file fbtTestBasics.cxx.
112 std::vector<std::string>
config;
113 Result result0, result1, result2, result3, result4, result5;
115 if(
verbose) std::cout <<
"\nWill do minimal test with CP::ApplyFakeFactor\n";
119 if(
verbose) std::cout <<
"\nWill do minimal test with CP::AsymptMatrixTool\n";
122 if(
verbose) std::cout <<
"\nWill do minimal test with CP::LhoodMM_tools\n";
125 if(
verbose) std::cout <<
"\nWill test loading efficiencies from XML\n";
131 if(
verbose) std::cout <<
"\nWill test getEventWeight()\n";
140 if(
verbose) std::cout <<
"\nWill test parallel jobs and merging\n";
144 FBT_CHECK( gSystem->Exec(
"hadd -f fbt_merged.root fbt_job*.root") == 0 );
◆ eventLoop()
template<class Interface = CP::IFakeBkgTool>
Definition at line 205 of file fbtTestBasics.cxx.
207 auto eventInfo = std::make_unique<xAOD::EventInfo>();
208 auto eventAuxInfo = std::make_unique<xAOD::EventAuxInfo>();
209 eventInfo->setStore(eventAuxInfo.get());
211 flagAcc(*eventInfo) = 1;
216 auto e = std::make_unique<xAOD::Electron>();
217 e->makePrivateStore();
221 for(
int i=eventOffset;
i<
nEvents+eventOffset;++
i)
224 TightAcc(*
e) = (
i%4)? 0 : 1;
229 #ifdef XAOD_STANDALONE
◆ fillResult()
template<class Interface = CP::IFakeBkgTool>
◆ main()
int main |
( |
int |
argc, |
|
|
char * |
argv[] |
|
) |
| |
Definition at line 82 of file fbtTestBasics.cxx.
86 std::string option =
argv[
i];
87 if(option==
"-v" || option==
"--verbose")
verbose =
true;
90 #ifdef XAOD_STANDALONE
94 StatusCode::enableFailure();
104 #ifndef XAOD_STANDALONE
◆ minimalTest()
bool minimalTest |
( |
const std::string & |
type, |
|
|
const std::vector< std::string > & |
config, |
|
|
Store_t & |
store, |
|
|
Result & |
result |
|
) |
| |
◆ parallelJob()
bool parallelJob |
( |
const std::string & |
type, |
|
|
const std::vector< std::string > & |
config, |
|
|
Store_t & |
store, |
|
|
const std::string & |
saveAs, |
|
|
int |
nEvents, |
|
|
int |
eventOffset |
|
) |
| |
Definition at line 164 of file fbtTestBasics.cxx.
170 std::unique_ptr<TFile>
f(TFile::Open(saveAs.c_str(),
"RECREATE"));
178 std::cout <<
"Parallel job stored intermediate yield " <<
value <<
" +" <<
up <<
" -" << down << std::endl;
◆ readFromROOT()
bool readFromROOT |
( |
std::vector< std::string > & |
config | ) |
|
Definition at line 310 of file fbtTestBasics.cxx.
313 config.emplace_back(
"fbt_efficiencies.root");
314 TH1D hElFake(
"FakeEfficiency_el_pt",
"FakeEfficiency", 1, 10., 100.);
315 hElFake.SetBinContent(1, 0.05);
316 hElFake.SetBinError(1, 0.01);
317 TH1D hMuFake(
"FakeEfficiency_mu_pt",
"FakeEfficiency", 1, 10., 100.);
318 hMuFake.SetBinContent(1, 0.15);
319 hMuFake.SetBinError(1, 0.032);
320 TH1D hElReal(
"RealEfficiency_el_pt",
"RealEfficiency", 1, 10., 100.);
321 hElReal.SetBinContent(1, 0.90);
322 hElReal.SetBinError(1, 0.01);
323 TH1D hMuReal(
"RealEfficiency_mu_pt",
"RealEfficiency", 1, 10., 100.);
324 hMuReal.SetBinContent(1, 0.95);
325 hMuReal.SetBinError(1, 0.01);
326 std::unique_ptr<TFile>
f(TFile::Open(
config.back().c_str(),
"RECREATE"));
◆ readFromXML()
bool readFromXML |
( |
std::vector< std::string > & |
config | ) |
|
note: the declarations must be placed in the "good" order, otherwise the definitions of the SystematicVariations will be different than those obtained with readFromROOT()
Definition at line 337 of file fbtTestBasics.cxx.
340 config.emplace_back(
"fbt_efficiencies.xml");
345 out <<
"<efficiencies>\n";
346 out <<
"<param type=\"int\" level=\"event\"> flag </param>\n";
347 out <<
"<electron type=\"fake-efficiency\" input=\"central-value\" stat=\"per-bin\" >\n\t<bin flag=\"1\">\n 0.05 +- 0.01 (stat) </bin>\n</electron>\n";
348 out <<
"<electron type=\"real-efficiency\" input=\"central-value\" stat=\"global\" >\n\t<bin flag=\"1\">\n 0.90 +- 0.01 (stat) </bin>\n</electron>\n";
349 out <<
"<muon type=\"fake-efficiency\" input=\"central-value\" stat=\"per-bin\" >\n\t<bin flag=\"1\">\n 0.15 +- 0.032 (stat) </bin>\n</muon>\n";
350 out <<
"<muon type=\"real-efficiency\" input=\"central-value\" stat=\"global\" >\n\t<bin flag=\"1\">\n 0.95 +- 0.01 (stat) </bin>\n</muon>\n";
351 out <<
"</efficiencies>\n";
◆ setup()
template<class Interface = CP::IFakeBkgTool>
mostly useful for athena, which will otherwise re-use the previous tool
Definition at line 186 of file fbtTestBasics.cxx.
194 if(!progressFile.empty())
196 FBT_CHECK(
tool.setProperty(
"ProgressFileName", progressFile) );
197 FBT_CHECK(
tool.setProperty(
"ProgressFileDirectory",
"fakes") );
◆ successful() [1/2]
bool successful |
( |
bool |
arg | ) |
|
◆ successful() [2/2]
bool successful |
( |
const StatusCode & |
arg | ) |
|
◆ nEvents
◆ process
const std::string process = ">=1F[T]" |
◆ readCPVariations
const bool readCPVariations = true |
◆ selection
const std::string selection = ">=1T" |
◆ verbose
std::atomic<bool> verbose = false |
std::atomic< bool > verbose
const bool readCPVariations
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
bool setup(asg::AnaToolHandle< Interface > &tool, const std::string &type, const std::vector< std::string > &config, const std::string &progressFile="")
mostly useful for athena, which will otherwise re-use the previous tool
@ kClassAccess
Access auxiliary data using the aux containers.
Class providing the definition of the 4-vector interface.
bool eventLoop(asg::AnaToolHandle< Interface > &tool, Store_t &store, Result &result, int nEvents, int eventOffset=0)
bool minimalTest(const std::string &type, const std::vector< std::string > &config, Store_t &store, Result &result)
#define FBT_CHECK1(x, FAIL)
bool successful(bool arg)
IAppMgrUI * Init(const char *options="POOLRootAccess/basic.opts")
Bootstraps (creates and configures) the Gaudi Application with the provided options file.
The Athena Transient Store API.
bool allTests(Store_t &store)
POOL::TEvent event(POOL::TEvent::kClassAccess)
bool readFromXML(std::vector< std::string > &config)
bool fillResult(asg::AnaToolHandle< Interface > &tool, Result &result)
const std::string selection
std::string to_string(const DetectorType &type)
ServiceHandle< StoreGateSvc > & evtStore()
void record(const T *p, const std::string &key)
bool readFromROOT(std::vector< std::string > &config)
bool addEventWeight(asg::AnaToolHandle< CP::ILinearFakeBkgTool > &tool, Result &result)
const std::string process
bool parallelJob(const std::string &type, const std::vector< std::string > &config, Store_t &store, const std::string &saveAs, int nEvents, int eventOffset)
constexpr int pow(int base, int exp) noexcept
Tool for accessing xAOD files outside of Athena.
StatusCode Init(const char *appname)
Function initialising ROOT/PyROOT for using the ATLAS EDM.
constexpr double electronMassInMeV
the mass of the electron (in MeV)