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