LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
A module to check the results from the Monte Carlo generator. More...
Public Types | |
using | ModuleType = EDProducer |
template<typename UserConfig , typename KeysToIgnore = void> | |
using | Table = Modifier::Table< UserConfig, KeysToIgnore > |
Public Member Functions | |
GENIEGen (fhicl::ParameterSet const &pset) | |
virtual | ~GENIEGen () |
void | produce (art::Event &evt) |
void | beginJob () |
void | beginRun (art::Run &run) |
void | beginSubRun (art::SubRun &sr) |
void | endSubRun (art::SubRun &sr) |
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) |
void | fillProductDescriptions () |
void | registerProducts (ProductDescriptions &productsToRegister) |
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) |
Protected Member Functions | |
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 Member Functions | |
std::string | ParticleStatus (int StatusCode) |
std::string | ReactionChannel (int ccnc, int mode) |
void | FillHistograms (simb::MCTruth mc) |
Private Attributes | |
evgb::GENIEHelper * | fGENIEHelp |
GENIEHelper object. More... | |
bool | fDefinedVtxHistRange |
std::vector< double > | fVtxPosHistRange |
use defined hist range; it is useful to have for asymmetric ranges like in DP FD. More... | |
int | fPassEmptySpills |
whether or not to kill evnets with no interactions More... | |
TStopwatch | fStopwatch |
double | fGlobalTimeOffset |
keep track of how long it takes to run the job More... | |
double | fRandomTimeOffset |
The start of a simulated "beam gate". More... | |
::sim::BeamType_t | fBeamType |
The width of a simulated "beam gate". More... | |
double | fPrevTotPOT |
The type of beam. More... | |
double | fPrevTotGoodPOT |
Total good POT from subruns previous to current subrun. More... | |
TH1F * | fGenerated [6] |
Spectra as generated. More... | |
TH1F * | fVertexX |
vertex location of generated events in x More... | |
TH1F * | fVertexY |
vertex location of generated events in y More... | |
TH1F * | fVertexZ |
vertex location of generated events in z More... | |
TH2F * | fVertexXY |
vertex location in xy More... | |
TH2F * | fVertexXZ |
vertex location in xz More... | |
TH2F * | fVertexYZ |
vertex location in yz More... | |
TH1F * | fDCosX |
direction cosine in x More... | |
TH1F * | fDCosY |
direction cosine in y More... | |
TH1F * | fDCosZ |
direction cosine in z More... | |
TH1F * | fMuMomentum |
momentum of outgoing muons More... | |
TH1F * | fMuDCosX |
direction cosine of outgoing mu in x More... | |
TH1F * | fMuDCosY |
direction cosine of outgoing mu in y More... | |
TH1F * | fMuDCosZ |
direction cosine of outgoing mu in z More... | |
TH1F * | fEMomentum |
momentum of outgoing electrons More... | |
TH1F * | fEDCosX |
direction cosine of outgoing e in x More... | |
TH1F * | fEDCosY |
direction cosine of outgoing e in y More... | |
TH1F * | fEDCosZ |
direction cosine of outgoing e in z More... | |
TH1F * | fCCMode |
CC interaction mode. More... | |
TH1F * | fNCMode |
CC interaction mode. More... | |
TH1F * | fDeltaE |
difference in neutrino energy from MCTruth::Enu() vs TParticle More... | |
TH1F * | fECons |
histogram to determine if energy is conserved in the event More... | |
A module to check the results from the Monte Carlo generator.
GENIE uses a TRandom generator for its purposes. Since art's RandomNumberGenerator service only provides CLHEP::HepRandomEngine
, the standard LArSoft/art mechanism for handling the random stream can't be used. GENIEHelper, interface to GENIE provided by nugen, creates a TRandom that GENIE can use. It initializes it with a random seed read from RandomSeed configuration parameter. This and all the other parameters are inherited from the art module (that is, GENIEGen
) configuration. LArSoft meddles with this mechanism to provide support for the standard "Seed" parameter and NuRandomService service.
As custom, if the random seed is not provided by the configuration, one is fetched from NuRandomService
(if available), with the behaviour in lar::util::FetchRandomSeed().
Definition at line 91 of file GENIEGen_module.cc.
|
inherited |
Definition at line 17 of file EDProducer.h.
|
inherited |
Definition at line 26 of file Producer.h.
|
explicit |
Definition at line 158 of file GENIEGen_module.cc.
References fBeamType, fDefinedVtxHistRange, fGENIEHelp, fGlobalTimeOffset, fPassEmptySpills, fRandomTimeOffset, fStopwatch, fVtxPosHistRange, fhicl::ParameterSet::get_if_present(), sim::kBNB, sim::kNuMI, geo::kUnknown, fhicl::ParameterSet::put(), geo::GeometryCore::ROOTFile(), geo::GeometryCore::ROOTGeoManager(), seed, and geo::GeometryCore::TotalMass().
|
virtual |
Definition at line 238 of file GENIEGen_module.cc.
References fGENIEHelp, and fStopwatch.
|
virtual |
Reimplemented from art::EDProducer.
Definition at line 246 of file GENIEGen_module.cc.
References geo::GeometryCore::DetHalfHeight(), geo::GeometryCore::DetHalfWidth(), geo::GeometryCore::DetLength(), fCCMode, fDCosX, fDCosY, fDCosZ, fDefinedVtxHistRange, fDeltaE, fECons, fEDCosX, fEDCosY, fEDCosZ, fEMomentum, fGenerated, fGENIEHelp, fMuDCosX, fMuDCosY, fMuDCosZ, fMuMomentum, fNCMode, fPrevTotGoodPOT, fPrevTotPOT, fVertexX, fVertexXY, fVertexXZ, fVertexY, fVertexYZ, fVertexZ, fVtxPosHistRange, evgb::GENIEHelper::Initialize(), x, y, and z.
|
virtual |
Reimplemented from art::EDProducer.
Definition at line 352 of file GENIEGen_module.cc.
References geo::GeometryCore::DetectorName(), art::fullRun(), and art::Run::put().
|
virtual |
Reimplemented from art::EDProducer.
Definition at line 359 of file GENIEGen_module.cc.
References fGENIEHelp, fPrevTotGoodPOT, fPrevTotPOT, and evgb::GENIEHelper::TotalExposure().
|
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 22 of file Producer.cc.
References art::detail::Producer::beginJobWithFrame(), and art::detail::Producer::setupQueues().
|
inherited |
Definition at line 65 of file Producer.cc.
References art::detail::Producer::beginRunWithFrame(), art::RangeSet::forRun(), art::RunPrincipal::makeRun(), r, art::RunPrincipal::runID(), and art::ModuleContext::scheduleID().
|
inherited |
Definition at line 85 of file Producer.cc.
References art::detail::Producer::beginSubRunWithFrame(), art::RangeSet::forSubRun(), art::SubRunPrincipal::makeSubRun(), art::ModuleContext::scheduleID(), and art::SubRunPrincipal::subRunID().
|
inherited |
Definition at line 30 of file Producer.cc.
References art::detail::Producer::endJobWithFrame().
|
inherited |
Definition at line 75 of file Producer.cc.
References art::detail::Producer::endRunWithFrame(), art::RunPrincipal::makeRun(), r, art::ModuleContext::scheduleID(), and art::Principal::seenRanges().
|
inherited |
Definition at line 95 of file Producer.cc.
References art::detail::Producer::endSubRunWithFrame(), art::SubRunPrincipal::makeSubRun(), art::ModuleContext::scheduleID(), and art::Principal::seenRanges().
|
inherited |
Definition at line 105 of file Producer.cc.
References art::detail::Producer::checkPutProducts_, e, art::EventPrincipal::makeEvent(), art::detail::Producer::produceWithFrame(), and art::ModuleContext::scheduleID().
|
inherited |
Definition at line 44 of file Producer.cc.
References art::detail::Producer::respondToCloseInputFileWithFrame().
|
inherited |
Definition at line 58 of file Producer.cc.
References art::detail::Producer::respondToCloseOutputFilesWithFrame().
|
inherited |
Definition at line 37 of file Producer.cc.
References art::detail::Producer::respondToOpenInputFileWithFrame().
|
inherited |
Definition at line 51 of file Producer.cc.
References art::detail::Producer::respondToOpenOutputFilesWithFrame().
|
virtual |
Reimplemented from art::EDProducer.
Definition at line 369 of file GENIEGen_module.cc.
References fGENIEHelp, fPrevTotGoodPOT, fPrevTotPOT, art::SubRun::put(), art::subRunFragment(), and evgb::GENIEHelper::TotalExposure().
|
private |
< fill the vertex histograms from the neutrino - that is always particle 0 in the list
look for the outgoing lepton in the particle stack just interested in the first one
Definition at line 545 of file GENIEGen_module.cc.
References util::abs(), simb::MCNeutrino::CCNC(), DEFINE_ART_MODULE, simb::MCParticle::E(), energy, fCCMode, fDCosX, fDCosY, fDCosZ, fECons, fEDCosX, fEDCosY, fEDCosZ, fEMomentum, fGenerated, fMuDCosX, fMuDCosY, fMuDCosZ, fMuMomentum, fNCMode, fVertexX, fVertexXY, fVertexXZ, fVertexY, fVertexYZ, fVertexZ, simb::MCTruth::GetNeutrino(), simb::MCTruth::GetParticle(), simb::kCC, art::left(), MF_LOG_DEBUG, simb::MCNeutrino::Mode(), simb::MCTruth::NParticles(), simb::MCNeutrino::Nu(), simb::MCParticle::P(), part, ParticleStatus(), simb::MCParticle::PdgCode(), simb::MCParticle::Px(), simb::MCParticle::Py(), simb::MCParticle::Pz(), ReactionChannel(), simb::MCParticle::Vx(), simb::MCParticle::Vy(), and simb::MCParticle::Vz().
Referenced by produce().
|
inherited |
Definition at line 10 of file Modifier.cc.
References art::ProductRegistryHelper::fillDescriptions(), and art::ModuleBase::moduleDescription().
|
inherited |
Definition at line 43 of file ModuleBase.cc.
References art::ModuleBase::collector_, and art::ConsumesCollector::getConsumables().
|
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().
|
private |
Definition at line 496 of file GENIEGen_module.cc.
References sim::ParticleStatusName().
Referenced by FillHistograms().
|
virtual |
Implements art::EDProducer.
Definition at line 383 of file GENIEGen_module.cc.
References util::CreateAssn(), sim::dump::DumpGTruth(), sim::dump::DumpMCTruth(), fBeamType, fGENIEHelp, fGlobalTimeOffset, FillHistograms(), fPassEmptySpills, fRandomTimeOffset, evgb::GENIEHelper::GetFluxDriver(), simb::MCTruth::GetNeutrino(), simb::MCNeutrino::InteractionType(), simb::kNuanceOffset, MF_LOG_DEBUG, simb::MCTruth::NeutrinoSet(), art::Event::put(), evgb::GENIEHelper::Sample(), and evgb::GENIEHelper::Stop().
|
private |
|
inherited |
Definition at line 16 of file Modifier.cc.
References art::ModuleBase::moduleDescription(), and art::ProductRegistryHelper::registerProducts().
|
inherited |
|
inherited |
Definition at line 49 of file ModuleBase.cc.
References art::ModuleBase::collector_, and art::ConsumesCollector::sortConsumables().
|
private |
The width of a simulated "beam gate".
Definition at line 118 of file GENIEGen_module.cc.
Referenced by GENIEGen(), and produce().
|
private |
CC interaction mode.
Definition at line 147 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
direction cosine in x
Definition at line 133 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
direction cosine in y
Definition at line 134 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
direction cosine in z
Definition at line 135 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
Definition at line 110 of file GENIEGen_module.cc.
Referenced by beginJob(), and GENIEGen().
|
private |
difference in neutrino energy from MCTruth::Enu() vs TParticle
Definition at line 150 of file GENIEGen_module.cc.
Referenced by beginJob().
|
private |
histogram to determine if energy is conserved in the event
Definition at line 151 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
direction cosine of outgoing e in x
Definition at line 143 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
direction cosine of outgoing e in y
Definition at line 144 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
direction cosine of outgoing e in z
Definition at line 145 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
momentum of outgoing electrons
Definition at line 142 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
Spectra as generated.
Definition at line 123 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
GENIEHelper object.
Definition at line 108 of file GENIEGen_module.cc.
Referenced by beginJob(), beginSubRun(), endSubRun(), GENIEGen(), produce(), and ~GENIEGen().
|
private |
keep track of how long it takes to run the job
Definition at line 116 of file GENIEGen_module.cc.
Referenced by GENIEGen(), and produce().
|
private |
direction cosine of outgoing mu in x
Definition at line 138 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
direction cosine of outgoing mu in y
Definition at line 139 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
direction cosine of outgoing mu in z
Definition at line 140 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
momentum of outgoing muons
Definition at line 137 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
CC interaction mode.
Definition at line 148 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
whether or not to kill evnets with no interactions
Definition at line 113 of file GENIEGen_module.cc.
Referenced by GENIEGen(), and produce().
|
private |
Total good POT from subruns previous to current subrun.
Definition at line 121 of file GENIEGen_module.cc.
Referenced by beginJob(), beginSubRun(), and endSubRun().
|
private |
The type of beam.
Total POT from subruns previous to current subrun
Definition at line 120 of file GENIEGen_module.cc.
Referenced by beginJob(), beginSubRun(), and endSubRun().
|
private |
The start of a simulated "beam gate".
Definition at line 117 of file GENIEGen_module.cc.
Referenced by GENIEGen(), and produce().
|
private |
Definition at line 114 of file GENIEGen_module.cc.
Referenced by GENIEGen(), and ~GENIEGen().
|
private |
vertex location of generated events in x
Definition at line 125 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
vertex location in xy
Definition at line 129 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
vertex location in xz
Definition at line 130 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
vertex location of generated events in y
Definition at line 126 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
vertex location in yz
Definition at line 131 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
vertex location of generated events in z
Definition at line 127 of file GENIEGen_module.cc.
Referenced by beginJob(), and FillHistograms().
|
private |
use defined hist range; it is useful to have for asymmetric ranges like in DP FD.
Definition at line 111 of file GENIEGen_module.cc.
Referenced by beginJob(), and GENIEGen().