GENIEGenerator
Loading...
Searching...
No Matches
genie::RunOpt Class Reference

Some common run-time GENIE options. More...

#include <RunOpt.h>

Collaboration diagram for genie::RunOpt:
[legend]

Classes

struct  Cleaner

Public Member Functions

void ReadFromCommandLine (int argc, char **argv)
TuneIdTune (void) const
string EventGeneratorList (void) const
string CacheFile (void) const
string MesgThresholdFiles (void) const
TBits * UnphysEventMask (void) const
int EventRecordPrintLevel (void) const
int MCJobStatusRefreshRate (void) const
bool BareXSecPreCalc (void) const
string XMLPath (void) const
void SetTuneName (string tuneName="Default")
void BuildTune ()
 build tune and inform XSecSplineList
void SetEventGeneratorList (string evgenlist)
void EnableBareXSecPreCalc (bool flag)
void Print (ostream &stream) const

Static Public Member Functions

static RunOptInstance (void)
static std::string RunOptSyntaxString (bool include_generator_specific)

Private Member Functions

void Init (void)
 RunOpt ()
 RunOpt (const RunOpt &opt)
virtual ~RunOpt ()

Private Attributes

TuneIdfTune
 GENIE comprehensive neutrino interaction model tune.
string fEventGeneratorList
 Name of event generator list to be loaded by the event generation drivers.
string fCacheFile
 Name of cache file, is cache is to be re-used.
string fMesgThresholds
 List of files (delimited with : if more than one) with custom mesg stream thresholds.
TBits * fUnphysEventMask
 Unphysical event mask.
int fEventRecordPrintLevel
 GHEP event r ecord print level.
int fMCJobStatusRefreshRate
 MC job status file refresh rate.
bool fEnableBareXSecPreCalc
string fXMLPath
 An path to look for XML in. Higher priority than GXMLPATH.

Static Private Attributes

static RunOptfInstance = 0

Friends

struct Cleaner
ostream & operator<< (ostream &stream, const RunOpt &opt)

Detailed Description

Some common run-time GENIE options.

Author
Costas Andreopoulos <c.andreopoulos \at cern.ch> University of Liverpool
Created:\n January 29, 2013
License:\n Copyright (c) 2003-2025, The GENIE Collaboration
For the full text of the license visit http://copyright.genie-mc.org

Definition at line 35 of file RunOpt.h.

Constructor & Destructor Documentation

◆ RunOpt() [1/2]

genie::RunOpt::RunOpt ( )
private

Definition at line 40 of file RunOpt.cxx.

40 : fTune(0)
41{
42 fInstance = 0;
43
44 this->Init();
45}
void Init(void)
Definition RunOpt.cxx:64
static RunOpt * fInstance
Definition RunOpt.h:85
TuneId * fTune
GENIE comprehensive neutrino interaction model tune.
Definition RunOpt.h:73

References fInstance, fTune, and Init().

Referenced by Instance(), operator<<, and RunOpt().

◆ RunOpt() [2/2]

genie::RunOpt::RunOpt ( const RunOpt & opt)
private

References RunOpt().

◆ ~RunOpt()

genie::RunOpt::~RunOpt ( )
privatevirtual

Definition at line 47 of file RunOpt.cxx.

48{
49 if ( fTune ) delete fTune ;
51 fInstance = 0;
52}
TBits * fUnphysEventMask
Unphysical event mask.
Definition RunOpt.h:77

References fInstance, fTune, and fUnphysEventMask.

Member Function Documentation

◆ BareXSecPreCalc()

◆ BuildTune()

void genie::RunOpt::BuildTune ( )

build tune and inform XSecSplineList

Definition at line 92 of file RunOpt.cxx.

93{
94 LOG("RunOpt",pINFO) << "Building tune "<<Tune()->Name();
95 Tune()->Build() ;
97}
#define pINFO
Definition Messenger.h:62
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Definition Messenger.h:96
TuneId * Tune(void) const
Definition RunOpt.h:46
void Build(const string &name="")
Definition TuneId.cxx:124
string Name(void) const
Definition TuneId.h:46
static XSecSplineList * Instance()
void SetCurrentTune(const string &tune)

References genie::TuneId::Build(), genie::XSecSplineList::Instance(), LOG, genie::TuneId::Name(), pINFO, genie::XSecSplineList::SetCurrentTune(), and Tune().

Referenced by Initialize(), and main().

◆ CacheFile()

string genie::RunOpt::CacheFile ( void ) const
inline

Definition at line 48 of file RunOpt.h.

48{ return fCacheFile; }
string fCacheFile
Name of cache file, is cache is to be re-used.
Definition RunOpt.h:75

References fCacheFile.

◆ EnableBareXSecPreCalc()

void genie::RunOpt::EnableBareXSecPreCalc ( bool flag)
inline

Definition at line 62 of file RunOpt.h.

62{ fEnableBareXSecPreCalc = flag; }

References fEnableBareXSecPreCalc.

Referenced by GetCommandLineArgs().

◆ EventGeneratorList()

string genie::RunOpt::EventGeneratorList ( void ) const
inline

Definition at line 47 of file RunOpt.h.

47{ return fEventGeneratorList; }
string fEventGeneratorList
Name of event generator list to be loaded by the event generation drivers.
Definition RunOpt.h:74

References fEventGeneratorList.

Referenced by main().

◆ EventRecordPrintLevel()

int genie::RunOpt::EventRecordPrintLevel ( void ) const
inline

Definition at line 51 of file RunOpt.h.

51{ return fEventRecordPrintLevel; }
int fEventRecordPrintLevel
GHEP event r ecord print level.
Definition RunOpt.h:78

References fEventRecordPrintLevel.

Referenced by main().

◆ Init()

void genie::RunOpt::Init ( void )
private

Definition at line 64 of file RunOpt.cxx.

65{
66 fTune = 0 ;
68 fCacheFile = "";
69 fMesgThresholds = "";
71//fUnphysEventMask->ResetAllBits(true);
72 for(unsigned int i = 0; i < GHepFlags::NFlags(); i++) {
73 fUnphysEventMask->SetBitNumber(i, true);
74 }
77 fEventGeneratorList = "Default";
78 fXMLPath = "";
79}
static unsigned int NFlags(void)
Definition GHepFlags.h:76
string fMesgThresholds
List of files (delimited with : if more than one) with custom mesg stream thresholds.
Definition RunOpt.h:76
string fXMLPath
An path to look for XML in. Higher priority than GXMLPATH.
Definition RunOpt.h:82
int fMCJobStatusRefreshRate
MC job status file refresh rate.
Definition RunOpt.h:79

References fCacheFile, fEnableBareXSecPreCalc, fEventGeneratorList, fEventRecordPrintLevel, fMCJobStatusRefreshRate, fMesgThresholds, fTune, fUnphysEventMask, fXMLPath, and genie::GHepFlags::NFlags().

Referenced by RunOpt().

◆ Instance()

◆ MCJobStatusRefreshRate()

int genie::RunOpt::MCJobStatusRefreshRate ( void ) const
inline

Definition at line 52 of file RunOpt.h.

References fMCJobStatusRefreshRate.

◆ MesgThresholdFiles()

string genie::RunOpt::MesgThresholdFiles ( void ) const
inline

Definition at line 49 of file RunOpt.h.

49{ return fMesgThresholds; }

References fMesgThresholds.

◆ Print()

void genie::RunOpt::Print ( ostream & stream) const

Definition at line 185 of file RunOpt.cxx.

186{
187 stream << "Global running options:";
188 if ( fTune ) stream << "\n GENIE tune: " << *fTune;
189 stream << "\n Event generator list: " << fEventGeneratorList;
190 stream << "\n User-specified message thresholds : " << fMesgThresholds;
191 stream << "\n Cache file : " << fCacheFile;
192 stream << "\n Unphysical event mask (bits: "
193 << GHepFlags::NFlags()-1 << " -> 0) : " << *fUnphysEventMask;
194 stream << "\n Event record print level : " << fEventRecordPrintLevel;
195 stream << "\n MC job status file refresh rate: " << fMCJobStatusRefreshRate;
196 stream << "\n Pre-calculate all free-nucleon cross-sections? : "
197 << ((fEnableBareXSecPreCalc) ? "Yes" : "No");
198
199 if (fXMLPath.size()) {
200 stream << "\n XMLPath over-ride : "<<fXMLPath;
201 }
202
203 stream << "\n";
204}

References fCacheFile, fEnableBareXSecPreCalc, fEventGeneratorList, fEventRecordPrintLevel, fMCJobStatusRefreshRate, fMesgThresholds, fTune, fUnphysEventMask, fXMLPath, and genie::GHepFlags::NFlags().

Referenced by operator<<.

◆ ReadFromCommandLine()

void genie::RunOpt::ReadFromCommandLine ( int argc,
char ** argv )

Definition at line 99 of file RunOpt.cxx.

100{
101 LOG("RunOpt",pDEBUG) << "Reading "<<argc-1<<" command line arguments.";
102 CmdLnArgParser parser(argc,argv);
103
104 if( parser.OptionExists("enable-bare-xsec-pre-calc") ) {
106 } else
107 if( parser.OptionExists("disable-bare-xsec-pre-calc") ) {
109 }
110
111 if( parser.OptionExists("cache-file") ) {
112 fCacheFile = parser.ArgAsString("cache-file");
113 }
114
115 if( parser.OptionExists("message-thresholds") ) {
116 fMesgThresholds = parser.ArgAsString("message-thresholds");
117 }
118
119 if( parser.OptionExists("event-record-print-level") ) {
120 fEventRecordPrintLevel = parser.ArgAsInt("event-record-print-level");
121 }
122
123 if( parser.OptionExists("mc-job-status-refresh-rate") ) {
124 fMCJobStatusRefreshRate = TMath::Max(
125 1, parser.ArgAsInt("mc-job-status-refresh-rate"));
126 }
127
128 if( parser.OptionExists("event-generator-list") ) {
129 SetEventGeneratorList(parser.ArgAsString("event-generator-list"));
130 }
131
132 if (parser.OptionExists("xml-path")) {
133 fXMLPath = parser.ArgAsString("xml-path");
134 }
135
136 if( parser.OptionExists("tune") ) {
137 SetTuneName( parser.ArgAsString("tune") ) ;
138 }
139 else {
140 SetTuneName( "Default" );
141 }// else ( parser.OptionExists("tune") )
142
143 if( parser.OptionExists("unphysical-event-mask") ) {
144 const char * bitfield =
145 parser.ArgAsString("unphysical-event-mask").c_str();
146 unsigned int n = GHepFlags::NFlags();
147 unsigned int i = 0;
148 while (i < n) {
149 bool flag = (bitfield[i]=='1');
150 fUnphysEventMask->SetBitNumber(n-1-i,flag);
151 i++;
152 } //i
153 }
154
155}
#define pDEBUG
Definition Messenger.h:63
void SetTuneName(string tuneName="Default")
Definition RunOpt.cxx:81
void SetEventGeneratorList(string evgenlist)
Definition RunOpt.h:61

References genie::CmdLnArgParser::ArgAsInt(), genie::CmdLnArgParser::ArgAsString(), fCacheFile, fEnableBareXSecPreCalc, fEventRecordPrintLevel, fMCJobStatusRefreshRate, fMesgThresholds, fUnphysEventMask, fXMLPath, LOG, genie::GHepFlags::NFlags(), genie::CmdLnArgParser::OptionExists(), pDEBUG, SetEventGeneratorList(), and SetTuneName().

Referenced by DecodeCommandLine(), GetCommandLineArgs(), and main().

◆ RunOptSyntaxString()

std::string genie::RunOpt::RunOptSyntaxString ( bool include_generator_specific)
static

Definition at line 157 of file RunOpt.cxx.

158{
159 std::ostringstream s;
160 s << "\n"
161 << "\n // command line args handled by RunOpt:"
162 // for v3, all tunes should have a Default event-generator-list
163 << "\n [--event-generator-list list_name] // default \"Default\" "
164 // G18_02a_00_000 is currently the default tune
165 << "\n [--tune tune_name] // default \"" << gDefaultTune << "\" "
166 << "\n [--xml-path path]"
167 << "\n [--message-thresholds xml_file]";
168
169 if (include_generator_specific) {
170 // these options are only for generator applications
171 // << "\n // not all options used by all applications "
172 s << "\n"
173 << "\n [--event-record-print-level level]"
174 << "\n [--mc-job-status-refresh-rate rate]"
175 << "\n [--cache-file root_file]"
176 << "\n [--enable-bare-xsec-pre-calc]"
177 << "\n [--disable-bare-xsec-pre-calc]"
178 << "\n [--unphysical-event-mask mask]"
179 << "\n";
180 }
181
182 return s.str();
183}
static const string gDefaultTune
Definition RunOpt.cxx:29

References genie::gDefaultTune.

Referenced by PrintSyntax().

◆ SetEventGeneratorList()

void genie::RunOpt::SetEventGeneratorList ( string evgenlist)
inline

Definition at line 61 of file RunOpt.h.

61{ fEventGeneratorList = evgenlist; }

References fEventGeneratorList.

Referenced by ReadFromCommandLine().

◆ SetTuneName()

void genie::RunOpt::SetTuneName ( string tuneName = "Default")

Definition at line 81 of file RunOpt.cxx.

82{
83 if ( tuneName == "Default" || tuneName == "" ) tuneName = gDefaultTune;
84 if ( fTune ) {
85 LOG("RunOpt",pNOTICE) << "RunOpt::SetTune() already had " << fTune->Name()
86 << ", now being re-set to " << tuneName;
87 delete fTune;
88 }
89 fTune = new TuneId( tuneName ) ;
90}
#define pNOTICE
Definition Messenger.h:61

References fTune, genie::gDefaultTune, LOG, and pNOTICE.

Referenced by ReadFromCommandLine().

◆ Tune()

TuneId * genie::RunOpt::Tune ( void ) const
inline

Definition at line 46 of file RunOpt.h.

46{ return fTune; }

References fTune.

Referenced by BuildTune(), genie::HEDISStrucFunc::HEDISStrucFunc(), and genie::NtpWriter::Initialize().

◆ UnphysEventMask()

TBits * genie::RunOpt::UnphysEventMask ( void ) const
inline

Definition at line 50 of file RunOpt.h.

50{ return fUnphysEventMask; }

References fUnphysEventMask.

◆ XMLPath()

string genie::RunOpt::XMLPath ( void ) const
inline

Definition at line 54 of file RunOpt.h.

54{ return fXMLPath; }

References fXMLPath.

◆ Cleaner

friend struct Cleaner
friend

Definition at line 102 of file RunOpt.h.

◆ operator<<

ostream & operator<< ( ostream & stream,
const RunOpt & opt )
friend

Definition at line 32 of file RunOpt.cxx.

33{
34 opt.Print(stream);
35 return stream;
36}

References Print(), and RunOpt().

Member Data Documentation

◆ fCacheFile

string genie::RunOpt::fCacheFile
private

Name of cache file, is cache is to be re-used.

Definition at line 75 of file RunOpt.h.

Referenced by CacheFile(), Init(), Print(), and ReadFromCommandLine().

◆ fEnableBareXSecPreCalc

bool genie::RunOpt::fEnableBareXSecPreCalc
private

Cache calcs relevant to free-nucleon xsecs before any nuclear xsec computation? The option switches on/off cacheing calculations which interfere with event reweighting.

Definition at line 80 of file RunOpt.h.

Referenced by BareXSecPreCalc(), EnableBareXSecPreCalc(), Init(), Print(), and ReadFromCommandLine().

◆ fEventGeneratorList

string genie::RunOpt::fEventGeneratorList
private

Name of event generator list to be loaded by the event generation drivers.

Definition at line 74 of file RunOpt.h.

Referenced by EventGeneratorList(), Init(), Print(), and SetEventGeneratorList().

◆ fEventRecordPrintLevel

int genie::RunOpt::fEventRecordPrintLevel
private

GHEP event r ecord print level.

Definition at line 78 of file RunOpt.h.

Referenced by EventRecordPrintLevel(), Init(), Print(), and ReadFromCommandLine().

◆ fInstance

RunOpt * genie::RunOpt::fInstance = 0
staticprivate

Definition at line 85 of file RunOpt.h.

Referenced by Instance(), RunOpt(), genie::RunOpt::Cleaner::~Cleaner(), and ~RunOpt().

◆ fMCJobStatusRefreshRate

int genie::RunOpt::fMCJobStatusRefreshRate
private

MC job status file refresh rate.

Definition at line 79 of file RunOpt.h.

Referenced by Init(), MCJobStatusRefreshRate(), Print(), and ReadFromCommandLine().

◆ fMesgThresholds

string genie::RunOpt::fMesgThresholds
private

List of files (delimited with : if more than one) with custom mesg stream thresholds.

Definition at line 76 of file RunOpt.h.

Referenced by Init(), MesgThresholdFiles(), Print(), and ReadFromCommandLine().

◆ fTune

TuneId* genie::RunOpt::fTune
private

GENIE comprehensive neutrino interaction model tune.

Definition at line 73 of file RunOpt.h.

Referenced by Init(), Print(), RunOpt(), SetTuneName(), Tune(), and ~RunOpt().

◆ fUnphysEventMask

TBits* genie::RunOpt::fUnphysEventMask
private

Unphysical event mask.

Definition at line 77 of file RunOpt.h.

Referenced by Init(), Print(), ReadFromCommandLine(), UnphysEventMask(), and ~RunOpt().

◆ fXMLPath

string genie::RunOpt::fXMLPath
private

An path to look for XML in. Higher priority than GXMLPATH.

Definition at line 82 of file RunOpt.h.

Referenced by Init(), Print(), ReadFromCommandLine(), and XMLPath().


The documentation for this class was generated from the following files: