LArSoft
v07_13_02
Liquid Argon Software toolkit - http://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 | WorkerType = WorkerT< EDAnalyzer > |
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... | |
std::string | workerType () const |
bool | modifiesEvent () const |
void | registerProducts (MasterProductRegistry &, ProductDescriptions &, ModuleDescription const &) |
std::string const & | processName () const |
bool | wantAllEvents () const |
bool | wantEvent (Event const &e) |
fhicl::ParameterSetID | selectorConfig () const |
art::Handle< art::TriggerResults > | getTriggerResults (Event const &e) const |
template<typename T , BranchType = InEvent> | |
ProductToken< T > | consumes (InputTag const &) |
template<typename T , art::BranchType BT> | |
art::ProductToken< T > | consumes (InputTag const &it) |
template<typename T , BranchType = InEvent> | |
void | consumesMany () |
template<typename Element , BranchType = InEvent> | |
ViewToken< Element > | consumesView (InputTag const &) |
template<typename T , art::BranchType BT> | |
art::ViewToken< T > | consumesView (InputTag const &it) |
template<typename T , BranchType = InEvent> | |
ProductToken< T > | mayConsume (InputTag const &) |
template<typename T , art::BranchType BT> | |
art::ProductToken< T > | mayConsume (InputTag const &it) |
template<typename T , BranchType = InEvent> | |
void | mayConsumeMany () |
template<typename Element , BranchType = InEvent> | |
ViewToken< Element > | mayConsumeView (InputTag const &) |
template<typename T , art::BranchType BT> | |
art::ViewToken< T > | mayConsumeView (InputTag const &it) |
base_engine_t & | createEngine (seed_t seed) |
base_engine_t & | createEngine (seed_t seed, std::string const &kind_of_engine_to_make) |
base_engine_t & | createEngine (seed_t seed, std::string const &kind_of_engine_to_make, label_t const &engine_label) |
seed_t | get_seed_value (fhicl::ParameterSet const &pset, char const key[]="seed", seed_t const implicit_seed=-1) |
Static Public Member Functions | |
static cet::exempt_ptr< Consumer > | non_module_context () |
Static Public Attributes | |
static const char * | VersionString = "1.0" |
version of the algorithm More... | |
Protected Member Functions | |
CurrentProcessingContext const * | currentContext () const |
detail::CachedProducts & | cachedProducts () |
void | validateConsumedProduct (BranchType const bt, ProductInfo const &pi) |
void | prepareForJob (fhicl::ParameterSet const &pset) |
void | showMissingConsumes () const |
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 39 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.
|
inherited |
Definition at line 38 of file EDAnalyzer.h.
|
explicit |
Definition at line 99 of file ComputePi_module.cc.
References samples, seed, and VersionString.
|
virtualdefault |
|
overridevirtual |
Definition at line 113 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 68 of file ComputePi_module.cc.
References tries.
Referenced by analyze().
|
inlineprotectedinherited |
Definition at line 79 of file EventObserverBase.h.
References art::EventObserverBase::selectors_.
Referenced by art::EDAnalyzer::doEvent(), and art::OutputModule::doWriteEvent().
|
inherited |
|
inherited |
Definition at line 147 of file Consumer.h.
References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().
|
inherited |
Definition at line 162 of file Consumer.h.
|
inherited |
|
inherited |
Definition at line 172 of file Consumer.h.
References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().
|
inherited |
Definition at line 26 of file EngineCreator.cc.
References art::EngineCreator::rng().
Referenced by evgen::CosmicsGen::CosmicsGen(), rndm::NuRandomService::createEngine(), cluster::fuzzyCluster::fuzzyCluster(), cluster::HoughLineFinder::HoughLineFinder(), art::MixFilter< T >::initEngine_(), larg4::LArG4::LArG4(), evgen::LightSource::LightSource(), evgen::NeutronOsc::NeutronOsc(), evgen::NucleonDecay::NucleonDecay(), opdet::OpMCDigi::OpMCDigi(), opdet::OptDetDigitizer::OptDetDigitizer(), phot::PhotonLibraryPropagation::PhotonLibraryPropagation(), detsim::SimDriftElectrons::SimDriftElectrons(), evgen::SingleGen::SingleGen(), evgen::SNNueAr40CCGen::SNNueAr40CCGen(), ToyOneShowerGen::ToyOneShowerGen(), and trkf::Track3DKalman::Track3DKalman().
|
inherited |
Definition at line 32 of file EngineCreator.cc.
References art::EngineCreator::rng().
|
inherited |
Definition at line 40 of file EngineCreator.cc.
References art::EngineCreator::rng().
|
protectedinherited |
Definition at line 114 of file EDAnalyzer.cc.
References art::EDAnalyzer::current_context_.
Referenced by art::EDAnalyzer::workerType().
|
inherited |
Definition at line 49 of file EngineCreator.cc.
References fhicl::ParameterSet::get().
Referenced by art::MixFilter< T >::initEngine_().
|
inlineinherited |
Definition at line 61 of file EventObserverBase.h.
References art::detail::CachedProducts::getOneTriggerResults(), and art::EventObserverBase::selectors_.
Referenced by art::OutputModule::doWriteEvent().
|
inherited |
|
inherited |
Definition at line 190 of file Consumer.h.
References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().
|
inherited |
Definition at line 205 of file Consumer.h.
|
inherited |
|
inherited |
Definition at line 215 of file Consumer.h.
References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().
|
inlineinherited |
Definition at line 25 of file EventObserverBase.h.
|
staticinherited |
Definition at line 76 of file Consumer.cc.
Referenced by art::RootOutput::beginSubRun(), art::OutputModule::doBeginRun(), art::OutputModule::doBeginSubRun(), art::OutputModule::doEndRun(), art::OutputModule::doEndSubRun(), art::ProducingService::doPostReadEvent(), art::ProducingService::doPostReadRun(), art::ProducingService::doPostReadSubRun(), art::OutputModule::doWriteEvent(), art::ProcessPackage< L >::postScheduleSignal(), art::BeginEndPackage< Level::Run >::Begin::postScheduleSignal(), art::BeginEndPackage< Level::Run >::End::postScheduleSignal(), art::BeginEndPackage< Level::SubRun >::Begin::postScheduleSignal(), art::BeginEndPackage< Level::SubRun >::End::postScheduleSignal(), art::ProcessPackage< L >::preScheduleSignal(), art::BeginEndPackage< Level::Run >::Begin::preScheduleSignal(), art::BeginEndPackage< Level::SubRun >::Begin::preScheduleSignal(), art::EventProcessor::readEvent(), art::EventProcessor::readRun(), art::EmptyEvent::readRun_(), art::EventProcessor::readSubRun(), and art::EmptyEvent::readSubRun_().
|
protectedinherited |
Definition at line 89 of file Consumer.cc.
References fhicl::ParameterSet::get_if_present().
Referenced by art::EDProducer::doBeginJob(), art::EDFilter::doBeginJob(), and art::EDAnalyzer::doBeginJob().
|
inlineinherited |
Definition at line 41 of file EventObserverBase.h.
References art::EventObserverBase::process_name_.
Referenced by art::FileDumperOutput::printPrincipal(), and art::RootOutput::RootOutput().
|
inlineinherited |
Definition at line 33 of file EventObserverBase.h.
|
inlineinherited |
Definition at line 56 of file EventObserverBase.h.
References art::EventObserverBase::selector_config_id_.
Referenced by art::RootOutputFile::writeOne().
|
protectedinherited |
Definition at line 125 of file Consumer.cc.
Referenced by art::EDProducer::doEndJob(), art::EDFilter::doEndJob(), art::EDAnalyzer::doEndJob(), and art::RootOutput::endJob().
|
protectedinherited |
Definition at line 101 of file Consumer.cc.
References art::errors::ProductRegistrationFailure.
|
inlineinherited |
Definition at line 46 of file EventObserverBase.h.
References art::EventObserverBase::wantAllEvents_.
Referenced by art::EDAnalyzer::doEvent(), art::OutputModule::doEvent(), art::OutputModule::doWriteEvent(), art::RootOutput::RootOutput(), and art::OutputWorker::wantAllEvents().
|
inlineinherited |
Definition at line 51 of file EventObserverBase.h.
References art::EventObserverBase::selectors_, and art::detail::CachedProducts::wantEvent().
Referenced by art::EDAnalyzer::doEvent(), art::OutputModule::doEvent(), and art::OutputModule::doWriteEvent().
|
inlineinherited |
Definition at line 109 of file EDAnalyzer.h.
References art::EDAnalyzer::currentContext().
|
private |
whether the random sequence is always the same
Definition at line 76 of file ComputePi_module.cc.
Referenced by analyze().
|
private |
whether to put stuff on screen
Definition at line 77 of file ComputePi_module.cc.
Referenced by analyze().
|
private |
|
private |
total number of hits
Definition at line 80 of file ComputePi_module.cc.
|
private |
number of samples to try on each event
Definition at line 74 of file ComputePi_module.cc.
Referenced by analyze(), and ComputePi().
|
private |
number of digits to compute
Definition at line 75 of file ComputePi_module.cc.
Referenced by analyze(), and ComputePi().
|
private |
total number of tries (samples)
Definition at line 81 of file ComputePi_module.cc.
Referenced by analyze(), best_pi(), and best_pi_tries().
|
static |
version of the algorithm
Definition at line 71 of file ComputePi_module.cc.
Referenced by ComputePi().