1 #ifndef EVGB_GENIEHELPER_H 9 #define EVGB_GENIEHELPER_H 14 #include "TGeoManager.h" 16 #include "EVGDrivers/GFluxI.h" 17 #include "EVGDrivers/GeomAnalyzerI.h" 18 #include "EVGDrivers/GMCJDriver.h" 43 namespace genie {
class EventRecord; }
54 TGeoManager* rootGeom,
55 std::string
const& rootFile,
56 double const& detectorMass);
65 double TotalHistFlux();
71 std::string
FluxType()
const {
return fFluxType; }
77 double TotalMass()
const {
return fDetectorMass+fSurroundingMass; }
87 {
return ( (base) ? fFluxD : fFluxD2GMCJD ); }
91 void InitializeGeometry();
92 void InitializeFiducialSelection();
93 void InitializeRockBoxSelection();
94 void InitializeFluxDriver();
95 void ConfigGeomScan();
96 void SetMaxPathOutInfo();
101 void PackMCTruth(genie::EventRecord *record,
simb::MCTruth &truth);
102 void PackGTruth(genie::EventRecord *record,
simb::GTruth &truth);
104 void BuildFluxRotation();
105 void ExpandFluxPaths();
106 void ExpandFluxFilePatternsDirect();
107 void ExpandFluxFilePatternsIFDH();
108 bool StringToBool(std::string v);
111 void SetGMSGLAYOUT();
112 void StartGENIEMessenger(std::string prodmode);
113 void FindEventGeneratorList();
114 void ReadXSecTable();
172 double fGlobalTimeOffset;
181 std::vector<std::string> fEnvironment;
197 #endif //EVGB_GENIEHELPER_H genie::GFluxI * GetFluxDriver(bool base=true)
std::vector< std::string > fFluxFilePatterns
wildcard patterns files containing histograms or ntuples, or txt
std::string FluxType() const
bool fUseHelperRndGen4GENIE
use fHelperRandom for gRandom during Sample()
std::string fDetLocation
name of flux window location
double fAtmoEmax
atmo: Maximum energy of neutrinos in GeV
int fMaxFluxFileNumber
maximum # of flux files
double fMixerBaseline
baseline distance if genie flux can't calculate it
IFDH interface (data handling) ... if using bare interface.
GENIE neutrino interaction simulation objects.
double fTotalHistFlux
total flux of neutrinos from flux histograms for used flavors
ifdh_ns::ifdh * fIFDH
(optional) flux file handling
std::string fGXMLPATH
locations for GENIE XML files
std::string fFiducialCut
configuration for geometry selector
std::string DetectorLocation() const
genie::EventRecord * GetGenieEventRecord()
double fRandomTimeOffset
additional random time shift (ns) added to every particle time
TVector3 fBeamCenter
center of beam for histogram fluxes - must be in meters
std::string fSpillTimeConfig
alternative to flat spill distribution
std::string fEventGeneratorList
control over event topologies, was $GEVGL [Default]
TGeoManager * fGeoManager
pointer to ROOT TGeoManager
std::string fGENIEMsgThresholds
additional XML file setting Messager level thresholds (":" separated)
std::vector< int > fGenFlavors
pdg codes for flavors to generate
evgb::EvtTimeShiftI * fTimeShifter
generator for time offset within a spill
genie::GMCJDriver * fDriver
double fXSecMassPOT
product of cross section, mass and POT/spill for histogram fluxes
std::vector< std::string > fSelectedFluxFiles
flux files selected after wildcard expansion and subset selection
genie::EventRecord * fGenieEventRecord
last generated event
std::string fXSecTable
cross section file (was $GSPLOAD)
double fFluxUpstreamZ
z where flux starts from (if non-default, simple/ntuple only)
std::vector< TH1D * > fFluxHistograms
histograms for each nu species
interface for event time distribution
double SpillExposure() const
int fGHepPrintLevel
GHepRecord::SetPrintLevel(), -1=no-print.
std::string fFluxRotCfg
how to interpret fFluxRotValues
TVector3 fBeamDirection
direction of the beam for histogram fluxes
std::string fBeamName
name of the beam we are simulating
std::string fWorldVolume
name of the world volume in the ROOT geometry
double fTotalExposure
pot used from flux ntuple
TRandom3 * fHelperRandom
random # generator for GENIEHelper
std::string fTopVolume
top volume in the ROOT geometry in which to generate events
std::vector< TH1D * > FluxHistograms() const
genie::GeomAnalyzerI * fGeomD
std::string fFluxSearchPaths
colon separated set of path stems
std::string fGMSGLAYOUT
format for GENIE log message [BASIC]|SIMPLE (SIMPLE=no timestamps)
double fBeamRadius
radius of cylindar for histogram fluxes - must be in meters
std::string fMixerConfig
configuration string for genie GFlavorMixerI
genie::GFluxI * fFluxD
real flux driver
double fMonoEnergy
energy of monoenergetic neutrinos
double fDetectorMass
mass of the detector in kg
std::vector< double > fFluxRotValues
parameters for rotation
TRandom3 * GetHelperRandom()
double TotalExposure() const
std::string fMaxPathOutInfo
output info if writing PathLengthList from GeomScan
double fSpillExposure
total exposure (i.e. pot) for this spill
double fAtmoEmin
atmo: Minimum energy of neutrinos in GeV
std::string fGeoFile
name of file containing the Geometry description
double fAtmoRl
atmo: radius of the sphere on where the neutrinos are generated
unsigned int fDebugFlags
set bits to enable debug info
Physics generators for neutrinos, cosmic rays, and others.
std::string fFluxCopyMethod
"DIRECT" = old direct access method, otherwise = ifdh approach schema ("" okay)
std::string fFluxCleanup
"ALWAYS", "/var/tmp", "NEVER"
Event generator information.
double fHistEventsPerSpill
number of events per spill for histogram fluxes - changes each spill
TRotation * fFluxRotation
rotation for atmos / astro flux coord systems
std::string fGeomScan
configuration for geometry scan to determine max pathlengths
int fSpillEvents
total events for this spill
genie::GFluxI * fFluxD2GMCJD
flux driver passed to genie GMCJDriver, might be GFluxBlender
std::string fFunctionalFlux
int fMaxFluxFileMB
maximum size of flux files (MB)