LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Computes pi (but it does not make it available) More...
Public Types | |
using | Counter_t = unsigned long long |
type used for integral counters More... | |
using | Seed_t = std::default_random_engine::result_type |
type for seed and random numbers More... | |
using | ModuleType = EDAnalyzer |
Public Member Functions | |
ComputePi (fhicl::ParameterSet const &p) | |
virtual | ~ComputePi ()=default |
virtual void | analyze (const art::Event &) override |
double | best_pi () const |
Returns the current best estimation of pi. More... | |
Counter_t | best_pi_tries () const |
Returns the current best estimation of pi. More... | |
void | doBeginJob (SharedResources const &resources) |
void | doEndJob () |
void | doRespondToOpenInputFile (FileBlock const &fb) |
void | doRespondToCloseInputFile (FileBlock const &fb) |
void | doRespondToOpenOutputFiles (FileBlock const &fb) |
void | doRespondToCloseOutputFiles (FileBlock const &fb) |
bool | doBeginRun (RunPrincipal &rp, ModuleContext const &mc) |
bool | doEndRun (RunPrincipal &rp, ModuleContext const &mc) |
bool | doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc) |
bool | doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc) |
bool | doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed) |
ModuleDescription const & | moduleDescription () const |
void | setModuleDescription (ModuleDescription const &) |
std::array< std::vector< ProductInfo >, NumBranchTypes > const & | getConsumables () const |
void | sortConsumables (std::string const ¤t_process_name) |
std::unique_ptr< Worker > | makeWorker (WorkerParams const &wp) |
template<typename T , BranchType BT> | |
ViewToken< T > | consumesView (InputTag const &tag) |
template<typename T , BranchType BT> | |
ViewToken< T > | mayConsumeView (InputTag const &tag) |
Static Public Attributes | |
static const char * | VersionString = "1.0" |
version of the algorithm More... | |
Protected Member Functions | |
std::string const & | processName () const |
bool | wantAllEvents () const noexcept |
bool | wantEvent (ScheduleID id, Event const &e) const |
Handle< TriggerResults > | getTriggerResults (Event const &e) const |
ConsumesCollector & | consumesCollector () |
template<typename T , BranchType = InEvent> | |
ProductToken< T > | consumes (InputTag const &) |
template<typename Element , BranchType = InEvent> | |
ViewToken< Element > | consumesView (InputTag const &) |
template<typename T , BranchType = InEvent> | |
void | consumesMany () |
template<typename T , BranchType = InEvent> | |
ProductToken< T > | mayConsume (InputTag const &) |
template<typename Element , BranchType = InEvent> | |
ViewToken< Element > | mayConsumeView (InputTag const &) |
template<typename T , BranchType = InEvent> | |
void | mayConsumeMany () |
Private Attributes | |
Counter_t | samples |
number of samples to try on each event More... | |
Seed_t | seed |
number of digits to compute More... | |
bool | bFixed |
whether the random sequence is always the same More... | |
bool | bVerbose |
whether to put stuff on screen More... | |
std::default_random_engine | generator |
random generator More... | |
Counter_t | hits = 0 |
total number of hits More... | |
Counter_t | tries = 0 |
total number of tries (samples) More... | |
Computes pi (but it does not make it available)
This module performs a extensive computation whose duration can be indirectly controlled by a parameter. The time taken is supposed to be independent from the framework. This is meant to help establish an absolute time scale.
The module performs some Monte Carlo integration to compute pi. The same number of cycles is used regardless the result. We use a simple pseudo-random generator (std::linear_congruential_engine
) with a constant extraction time (and poor randomness quality, and a period so small that in about 20 events the sequence might repeat itself). The fluctuations of the result don't reflect a fluctuation in time.
A test performed on uboonegpvm06,fnal.gov on August 19th, 2014 on 1000 events with Ksamples=50000 (i.e., 50M samples per event), default seed and verbosity on took 0.9179 +/- 0.0009 s, with an RMS of ~3%. It was observed that processing time asymptotically decreased.
Parameters
Definition at line 51 of file ComputePi_module.cc.
using lar::ComputePi::Counter_t = unsigned long long |
type used for integral counters
Definition at line 53 of file ComputePi_module.cc.
|
inherited |
Definition at line 22 of file EDAnalyzer.h.
using lar::ComputePi::Seed_t = std::default_random_engine::result_type |
type for seed and random numbers
Definition at line 55 of file ComputePi_module.cc.
|
explicit |
Definition at line 97 of file ComputePi_module.cc.
References samples, seed, and VersionString.
|
virtualdefault |
|
overridevirtual |
Definition at line 109 of file ComputePi_module.cc.
References best_pi(), best_pi_tries(), bFixed, bVerbose, generator, hits, samples, seed, sqr(), tries, x, and y.
|
inline |
Returns the current best estimation of pi.
Definition at line 64 of file ComputePi_module.cc.
Referenced by analyze().
|
inline |
Returns the current best estimation of pi.
Definition at line 67 of file ComputePi_module.cc.
References tries.
Referenced by analyze().
|
protectedinherited |
Definition at line 61 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::consumes().
|
protectedinherited |
|
protectedinherited |
Definition at line 75 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::consumesMany().
|
protectedinherited |
|
inherited |
Definition at line 68 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::consumesView().
|
inherited |
Definition at line 25 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 68 of file Analyzer.cc.
References art::ModuleContext::scheduleID().
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 84 of file Analyzer.cc.
References art::ModuleContext::scheduleID().
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 33 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 76 of file Analyzer.cc.
References art::ModuleContext::scheduleID().
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 92 of file Analyzer.cc.
References art::ModuleContext::scheduleID().
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 100 of file Analyzer.cc.
References e, and art::ModuleContext::scheduleID().
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 47 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 61 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 40 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 54 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 43 of file ModuleBase.cc.
References art::ModuleBase::collector_, and art::ConsumesCollector::getConsumables().
|
protectedinherited |
Definition at line 75 of file Observer.cc.
References art::ProductRetriever::get(), and art::Observer::selectors_.
Referenced by art::OutputModule::doWriteEvent(), and art::Observer::wantAllEvents().
|
inherited |
Definition at line 37 of file ModuleBase.cc.
References art::ModuleBase::doMakeWorker(), and art::NumBranchTypes.
|
protectedinherited |
Definition at line 82 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsume().
|
protectedinherited |
Definition at line 96 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeMany().
|
protectedinherited |
|
inherited |
Definition at line 89 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeView().
|
inherited |
Definition at line 13 of file ModuleBase.cc.
References art::errors::LogicError.
Referenced by art::OutputModule::doRespondToOpenInputFile(), art::OutputModule::doWriteEvent(), art::Modifier::fillProductDescriptions(), art::OutputModule::makePlugins_(), art::OutputWorker::OutputWorker(), reco::shower::LArPandoraModularShowerCreation::produce(), art::Modifier::registerProducts(), and art::OutputModule::registerProducts().
|
protectedinherited |
Definition at line 57 of file Observer.cc.
References art::Observer::process_name_.
Referenced by art::FileDumperOutput::printPrincipal().
|
inherited |
|
inherited |
Definition at line 49 of file ModuleBase.cc.
References art::ModuleBase::collector_, and art::ConsumesCollector::sortConsumables().
|
inlineprotectednoexceptinherited |
Definition at line 31 of file Observer.h.
References e, art::Observer::getTriggerResults(), art::Observer::wantAllEvents_, and art::Observer::wantEvent().
|
protectedinherited |
Definition at line 63 of file Observer.cc.
References art::Observer::rejectors_, art::Observer::selectors_, and art::Observer::wantAllEvents_.
Referenced by art::OutputModule::doEvent(), art::OutputModule::doWriteEvent(), and art::Observer::wantAllEvents().
|
private |
whether the random sequence is always the same
Definition at line 74 of file ComputePi_module.cc.
Referenced by analyze().
|
private |
whether to put stuff on screen
Definition at line 75 of file ComputePi_module.cc.
Referenced by analyze().
|
private |
|
private |
total number of hits
Definition at line 78 of file ComputePi_module.cc.
|
private |
number of samples to try on each event
Definition at line 72 of file ComputePi_module.cc.
Referenced by analyze(), and ComputePi().
|
private |
number of digits to compute
Definition at line 73 of file ComputePi_module.cc.
Referenced by analyze(), and ComputePi().
|
private |
total number of tries (samples)
Definition at line 79 of file ComputePi_module.cc.
Referenced by analyze(), best_pi(), and best_pi_tries().
|
static |
version of the algorithm
Definition at line 69 of file ComputePi_module.cc.
Referenced by ComputePi().