20#ifndef _GENIE_MC_JOB_DRIVER_H_
21#define _GENIE_MC_JOB_DRIVER_H_
27#include <TLorentzVector.h>
70 void Configure (
bool calc_prob_scales =
true);
Generated Event Record. It is a GHepRecord object that can accept / be visited by EventRecordVisitorI...
A pool of GEVGDriver objects with an initial state key.
GENIE Interface for user-defined flux classes.
bool fUseLogE
[config] build splines = f(logE) (rather than f(E)) ?
bool fPmaxLogBinning
[config] maximum interaction probability is computed in logarithmic energy bins
PathLengthList fMaxPathLengths
[declared by the geom driver] maximum path length list
bool fPreSelect
[config] set whether to pre-select events using max interaction paths
bool LoadFluxProbabilities(string filename)
bool fForceInteraction
[config] force intearction?
double fPmaxSafetyFactor
[config] safety factor to compute the maximum interaction probability
double fEmax
[declared by the flux driver] maximum neutrino energy
void SetXSecSplineNbins(int nbins)
double GlobProbScale(void) const
bool fUseSplines
[config] compute all needed & not-loaded splines at init
string fMaxPlXmlFilename
[config] input file with max density-weighted path lengths for all materials
bool PreCalcFluxProbabilities(void)
void BootstrapXSecSplines(void)
void GenerateVertexPosition(void)
void InitEventGeneration(void)
void GenerateEventKinematics(void)
void ForceSingleProbScale(void)
int fBrFluxIndex
corresponding entry in flux input tree (set to address of branch:"FluxEntry")
void UseFluxDriver(GFluxI *flux)
double fNFluxNeutrinos
[current] number of flux nuetrinos fired by the flux driver so far
string fFluxIntFileName
whether to save pre-generated flux tree for use in later jobs
const GeomAnalyzerI & GeomAnalyzer(void) const
map< int, double > SumFluxIntProbs(void) const
void UseGeomAnalyzer(GeomAnalyzerI *geom)
string fEventGenList
[config] list of event generators loaded by this driver (what used to be the $GEVGL setting)
EventRecord * GenerateEvent1Try(void)
map< int, double > fCurCumulProbMap
[current] cummulative interaction probabilities
bool GenerateFluxNeutrino(void)
double fGlobPmax
[computed at init] global interaction probability scale for given flux & geometry
TBits * fUnphysEventMask
[config] controls whether unphysical events are returned (what used to be the $GUNPHYSMASK setting)
double ComputeInteractionProbabilities(bool use_max_path_length)
int fSelTgtPdg
[current] selected target material PDG code
TTree * fFluxIntTree
[computed-or-loaded] pre-computed flux interaction probabilities (expected tree name is "gFlxIntProbs...
GeomAnalyzerI * GeomAnalyzerPtr(void) const
void SetPmaxSafetyFactor(double sf)
void Configure(bool calc_prob_scales=true)
bool ComputePathLengths(void)
void GetMaxFluxEnergy(void)
GFluxI * fFluxDriver
[input] neutrino flux driver
map< int, double > fSumFluxIntProbs
map where the key is flux pdg code and the value is sum of fBrFluxWeight * fBrFluxIntProb for all the...
void GetParticleLists(void)
void ForceInteraction(void)
double fBrFluxIntProb
flux interaction probability (set to branch:"FluxIntProb")
void SaveFluxProbabilities(string outfilename)
bool UseMaxPathLengths(string xml_filename)
void PopulateEventGenDriverPool(void)
void UseSplines(bool useLogE=true)
GeomAnalyzerI * fGeomAnalyzer
[input] detector geometry analyzer
bool fGenerateUnweighted
[config] force single probability scale?
int fBrFluxPDG
corresponding flux pdg code (set to address of branch: "FluxPDG")
string fFluxIntTreeName
name for tree holding flux probabilities
int SelectTargetMaterial(double R)
GFluxI * FluxDriverPtr(void) const
TLorentzVector fCurVtx
[current] interaction vertex
PathLengthList fCurPathLengths
[current] path length list for current flux neutrino
map< int, TH1D * > fPmax
[computed at init] interaction probability scale /neutrino /energy for given geometry
long int NFluxNeutrinos(void) const
const GFluxI & FluxDriver(void) const
double fBrFluxWeight
corresponding flux weight (set to address of branch: "FluxWeight")
void ComputeEventProbability(void)
bool fUseExtMaxPl
[config] using external max path length estimate?
void PreSelectEvents(bool preselect=true)
void BootstrapXSecSplineSummation(void)
EventRecord * fCurEvt
[current] generated event
GEVGPool * fGPool
A pool of GEVGDrivers properly configured event generation drivers / one per init state.
void SetUnphysEventMask(const TBits &mask)
void SetEventGeneratorList(string listname)
bool fKeepThrowingFluxNu
[config] keep firing flux neutrinos till one of them interacts
PDGCodeList fNuList
[declared by the flux driver] list of neutrino codes
void SetPmaxNbins(int nbins)
PDGCodeList fTgtList
[declared by the geom driver] list of target codes
int fPmaxNbins
[config] number of bins in energy used in the maximum interaction probability
void ComputeProbScales(void)
int fXSecSplineNbins
[config] number of bins in energy used in the xsec splines
EventRecord * GenerateEvent(void)
double PreGenFluxInteractionProbability(void)
void GetMaxPathLengthList(void)
double fBrFluxEnu
corresponding flux P4 (set to address of branch:"FluxP4")
void SetPmaxLogBinning(void)
TFile * fFluxIntProbFile
[input] pre-generated flux interaction probability file
void KeepOnThrowingFluxNeutrinos(bool keep_on)
double InteractionProbability(double xsec, double pl, int A)
Defines the GENIE Geometry Analyzer Interface.
Object to be filled with the neutrino path-length, for all detector geometry materials,...
THE MAIN GENIE PROJECT NAMESPACE