Functions | Variables
gEvGenDM.cxx File Reference
#include <cstdlib>
#include <cassert>
#include <sstream>
#include <string>
#include <vector>
#include <map>
#include <TFile.h>
#include <TTree.h>
#include <TSystem.h>
#include <TVector3.h>
#include <TH1.h>
#include <TF1.h>
#include "Framework/Algorithm/AlgConfigPool.h"
#include "Framework/Conventions/XmlParserStatus.h"
#include "Framework/Conventions/GBuild.h"
#include "Framework/Conventions/Controls.h"
#include "Framework/Conventions/Constants.h"
#include "Framework/Conventions/Units.h"
#include "Framework/EventGen/EventRecord.h"
#include "Framework/EventGen/GFluxI.h"
#include "Framework/EventGen/GEVGDriver.h"
#include "Framework/EventGen/GMCJDriver.h"
#include "Framework/EventGen/GMCJMonitor.h"
#include "Framework/Interaction/Interaction.h"
#include "Framework/Messenger/Messenger.h"
#include "Framework/Ntuple/NtpWriter.h"
#include "Framework/Ntuple/NtpMCFormat.h"
#include "Framework/Numerical/RandomGen.h"
#include "Framework/Numerical/Spline.h"
#include "Framework/ParticleData/PDGCodes.h"
#include "Framework/ParticleData/PDGLibrary.h"
#include "Framework/ParticleData/PDGUtils.h"
#include "Framework/Utils/AppInit.h"
#include "Framework/Utils/RunOpt.h"
#include "Framework/Utils/XSecSplineList.h"
#include "Framework/Utils/StringUtils.h"
#include "Framework/Utils/PrintUtils.h"
#include "Framework/Utils/SystemUtils.h"
#include "Framework/Utils/CmdLnArgParser.h"

Go to the source code of this file.

Functions

void GetCommandLineArgs (int argc, char **argv)
 
void Initialize (void)
 
void PrintSyntax (void)
 
bool CheckUnitarityLimit (void)
 
void GenerateEventsAtFixedInitState (void)
 
int main (int argc, char **argv)
 

Variables

int kDefOptNevents = 0
 
NtpMCFormat_t kDefOptNtpFormat = kNFGHEP
 
Long_t kDefOptRunNu = 0
 
int gOptNevents
 
double gOptDMEnergy
 
double gOptDMEnergyRange
 
double gOptDMMass
 
double gOptZpCoupling
 
map< int, double > gOptTgtMix
 
double gOptMedRatio
 
Long_t gOptRunNu
 
string gOptFlux
 
bool gOptWeighted
 
bool gOptUsingFluxOrTgtMix = false
 
long int gOptRanSeed
 
string gOptInpXSecFile
 
string gOptOutFileName
 
string gOptStatFileName
 

Function Documentation

bool CheckUnitarityLimit ( void  )

Definition at line 859 of file gEvGenDM.cxx.

860 {
861  // Before generating the events, perform a simple sanity check
862  // We estimate the leading divergent piece of the cross-section
863  // We make sure it does not exceed the unitarity limit
864  double gzp;
865  Registry * r = AlgConfigPool::Instance()->CommonList("Param", "BoostedDarkMatter");
866  r->Get("ZpCoupling", gzp);
867  double gzp4 = TMath::Power(gzp,4);
868  double Mzp = gOptMedRatio * gOptDMMass;
869  double Mzp2 = Mzp*Mzp;
870  // The leading, forward-dominated piece is the same for both DM models
871  double xsec_est = gzp4 / (4. * kPi * Mzp2);
872  double ml = gOptDMMass;
873  double ml2 = ml*ml;
874  double M = kNucleonMass;
875  double M2 = M*M;
876  double Ed = gOptDMEnergy;
877  double Ed2 = Ed*Ed;
878  double pcm2 = M2 * (Ed2 - ml2) / (ml2 + M2 + 2.*M*Ed);
879  double xsec_lim = kPi / pcm2;
880  bool unitary = xsec_lim > xsec_est;
881  if (!unitary) {
882  LOG("gevgen_dm", pWARN)
883  << "Estimated a cross-section " << xsec_est/cm2 << " cm^2";
884  LOG("gevgen_dm", pWARN)
885  << "Unitarity limit set to " << xsec_lim/cm2 << " cm^2";
886  }
887  return unitary;
888 }
double gOptDMMass
Definition: gEvGenDM.cxx:221
static const double kNucleonMass
Definition: Constants.h:77
double gOptMedRatio
Definition: gEvGenDM.cxx:224
double gOptDMEnergy
Definition: gEvGenDM.cxx:219
void Get(RgKey key, const RegistryItemI *&item) const
Definition: Registry.cxx:325
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
static constexpr double cm2
Definition: Units.h:69
#define pWARN
Definition: Messenger.h:60
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
static const double kPi
Definition: Constants.h:37
void GenerateEventsAtFixedInitState ( void  )

Definition at line 291 of file gEvGenDM.cxx.

292 {
293  int dark_matter = kPdgDarkMatter;
294  int target = gOptTgtMix.begin()->first;
295  double Ed = gOptDMEnergy;
296  double Md = gOptDMMass;
297  double pd = TMath::Sqrt(Ed*Ed - Md*Md);
298  assert(pd>=0.);
299  TLorentzVector dm_p4(0.,0.,pd,Ed); // px,py,pz,E (GeV)
300 
301  // Create init state
302  InitialState init_state(target, dark_matter);
303 
304  bool unitary = CheckUnitarityLimit();
305  if (!unitary) {
306  LOG("gevgen_dm", pFATAL)
307  << "Cross-section risks exceeding unitarity limit - Exiting";
308  exit(1);
309  }
310 
311 
312  // Create/config event generation driver
313  GEVGDriver evg_driver;
314  evg_driver.SetEventGeneratorList(RunOpt::Instance()->EventGeneratorList());
315  evg_driver.SetUnphysEventMask(*RunOpt::Instance()->UnphysEventMask());
316  evg_driver.Configure(init_state);
317 
318  // Initialize an Ntuple Writer
320 
321  // If an output file name has been specified... use it
322  if (!gOptOutFileName.empty()){
323  ntpw.CustomizeFilename(gOptOutFileName);
324  }
325  ntpw.Initialize();
326 
327 
328  // Create an MC Job Monitor
329  GMCJMonitor mcjmonitor(gOptRunNu);
330  mcjmonitor.SetRefreshRate(RunOpt::Instance()->MCJobStatusRefreshRate());
331 
332  // If a status file name has been given... use it
333  if (!gOptStatFileName.empty()){
334  mcjmonitor.CustomizeFilename(gOptStatFileName);
335  }
336 
337 
338  LOG("gevgen_dm", pNOTICE)
339  << "\n ** Will generate " << gOptNevents << " events for \n"
340  << init_state << " at Ev = " << Ed << " GeV";
341 
342  // Generate events / print the GHEP record / add it to the ntuple
343  int ievent = 0;
344  while (ievent < gOptNevents) {
345  LOG("gevgen_dm", pNOTICE)
346  << " *** Generating event............ " << ievent;
347 
348  // generate a single event
349  EventRecord * event = evg_driver.GenerateEvent(dm_p4);
350 
351  if(!event) {
352  LOG("gevgen_dm", pNOTICE)
353  << "Last attempt failed. Re-trying....";
354  continue;
355  }
356 
357  LOG("gevgen_dm", pNOTICE)
358  << "Generated Event GHEP Record: " << *event;
359 
360  // add event at the output ntuple, refresh the mc job monitor & clean up
361  ntpw.AddEventRecord(ievent, event);
362  mcjmonitor.Update(ievent,event);
363  ievent++;
364  delete event;
365  }
366 
367  // Save the generated MC events
368  ntpw.Save();
369 }
bool CheckUnitarityLimit(void)
Definition: gEvGenDM.cxx:859
double gOptDMMass
Definition: gEvGenDM.cxx:221
Long_t gOptRunNu
Definition: gEvGenDM.cxx:225
#define pFATAL
Definition: Messenger.h:56
const int kPdgDarkMatter
Definition: PDGCodes.h:218
double gOptDMEnergy
Definition: gEvGenDM.cxx:219
string gOptOutFileName
Definition: gEvGenDM.cxx:231
int gOptNevents
Definition: gEvGenDM.cxx:218
string gOptStatFileName
Definition: gEvGenDM.cxx:232
long int gOptRanSeed
Definition: gEvGenDM.cxx:229
Simple class to create & update MC job status files and env. vars. This is used to be able to keep tr...
Definition: GMCJMonitor.h:31
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
void SetEventGeneratorList(string listname)
Definition: GEVGDriver.cxx:348
NtpMCFormat_t kDefOptNtpFormat
Definition: gEvGenDM.cxx:214
GENIE Event Generation Driver. A minimalist user interface object for generating neutrino interaction...
Definition: GEVGDriver.h:54
map< int, double > gOptTgtMix
Definition: gEvGenDM.cxx:223
Generated Event Record. It is a GHepRecord object that can accept / be visited by EventRecordVisitorI...
Definition: EventRecord.h:37
A utility class to facilitate creating the GENIE MC Ntuple from the output GENIE GHEP event records...
Definition: NtpWriter.h:39
void Configure(int nu_pdgc, int Z, int A)
Definition: GEVGDriver.cxx:137
A vector of EventGeneratorI objects.
#define pNOTICE
Definition: Messenger.h:61
void SetUnphysEventMask(const TBits &mask)
Definition: GEVGDriver.cxx:219
Event finding and building.
Initial State information.
Definition: InitialState.h:48
EventRecord * GenerateEvent(const TLorentzVector &nu4p)
Definition: GEVGDriver.cxx:228
void GetCommandLineArgs ( int  argc,
char **  argv 
)

Definition at line 586 of file gEvGenDM.cxx.

587 {
588  LOG("gevgen_dm", pINFO) << "Parsing command line arguments";
589 
590  // Common run options. Set defaults and read.
591  RunOpt::Instance()->EnableBareXSecPreCalc(true);
592  RunOpt::Instance()->ReadFromCommandLine(argc,argv);
593 
594  // Parse run options for this app
595 
596  CmdLnArgParser parser(argc,argv);
597 
598  // help?
599  bool help = parser.OptionExists('h');
600  if(help) {
601  PrintSyntax();
602  exit(0);
603  }
604 
605  if ( ! parser.OptionExists("tune") ) {
606  LOG("gevgen_dm", pFATAL) << "No Dark Matter tune selected, please select one ";
607  LOG("gevgen_dm", pFATAL) << "Exiting ";
608  exit( 0 ) ;
609  }
610 
611  // number of events
612  if( parser.OptionExists('n') ) {
613  LOG("gevgen_dm", pINFO) << "Reading number of events to generate";
614  gOptNevents = parser.ArgAsInt('n');
615  } else {
616  LOG("gevgen_dm", pINFO)
617  << "Unspecified number of events to generate - Using default";
619  }
620 
621  // run number
622  if( parser.OptionExists('r') ) {
623  LOG("gevgen_dm", pINFO) << "Reading MC run number";
624  gOptRunNu = parser.ArgAsLong('r');
625  } else {
626  LOG("gevgen_dm", pINFO) << "Unspecified run number - Using default";
628  }
629 
630  // Output file name
631  if( parser.OptionExists('o') ) {
632  LOG("gevgen_dm", pINFO) << "Reading output file name";
633  gOptOutFileName = parser.ArgAsString('o');
634 
636  // strip the output file format and replace with .status
637  if (gOptOutFileName.find_last_of(".") != string::npos)
639  gOptStatFileName.substr(0, gOptOutFileName.find_last_of("."));
640  gOptStatFileName .append(".status");
641  }
642 
643  // flux functional form
644  bool using_flux = false;
645  if( parser.OptionExists('f') ) {
646  LOG("gevgen_dm", pINFO) << "Reading flux function";
647  gOptFlux = parser.ArgAsString('f');
648  using_flux = true;
649  }
650 
651  if(parser.OptionExists('s')) {
652  LOG("gevgen_dm", pWARN)
653  << "-s option no longer available. Please read the revised code documentation";
654  gAbortingInErr = true;
655  exit(1);
656  }
657 
658 
659  // generate weighted events option (only relevant if using a flux)
660  gOptWeighted = parser.OptionExists('w');
661 
662  // dark matter energy
663  if( parser.OptionExists('e') ) {
664  LOG("gevgen_dm", pINFO) << "Reading dark matter energy";
665  string dme = parser.ArgAsString('e');
666 
667  // is it just a value or a range (comma separated set of values)
668  if(dme.find(",") != string::npos) {
669  // split the comma separated list
670  vector<string> nurange = utils::str::Split(dme, ",");
671  assert(nurange.size() == 2);
672  double emin = atof(nurange[0].c_str());
673  double emax = atof(nurange[1].c_str());
674  assert(emax>emin && emin>=0);
675  gOptDMEnergy = emin;
676  gOptDMEnergyRange = emax-emin;
677  if(!using_flux) {
678  LOG("gevgen_dm", pWARN)
679  << "No flux was specified but an energy range was input!";
680  LOG("gevgen_dm", pWARN)
681  << "Events will be generated at fixed E = " << gOptDMEnergy << " GeV";
682  gOptDMEnergyRange = -1;
683  }
684  } else {
685  gOptDMEnergy = atof(dme.c_str());
686  gOptDMEnergyRange = -1;
687  }
688  } else {
689  LOG("gevgen_dm", pFATAL) << "Unspecified dark matter energy - Exiting";
690  PrintSyntax();
691  exit(1);
692  }
693 
694  // dark matter mass
695  if( parser.OptionExists('m') ) {
696  LOG("gevgen_dm", pINFO) << "Reading dark matter mass";
697  gOptDMMass = parser.ArgAsDouble('m');
698  } else {
699  LOG("gevgen_dm", pFATAL) << "Unspecified dark matter mass - Exiting";
700  PrintSyntax();
701  exit(1);
702  }
703 
704  // mediator coupling
705  if( parser.OptionExists('g') ) {
706  LOG("gevgen_dm", pINFO) << "Reading mediator coupling";
707  gOptZpCoupling = parser.ArgAsDouble('g');
708  } else {
709  LOG("gevgen_dm", pINFO) << "Unspecified mediator coupling - Using value from config file";
710  gOptZpCoupling = -1.;
711  }
712 
713  // target mix (their PDG codes with their corresponding weights)
714  bool using_tgtmix = false;
715  if( parser.OptionExists('t') ) {
716  LOG("gevgen_dm", pINFO) << "Reading target mix";
717  string stgtmix = parser.ArgAsString('t');
718  gOptTgtMix.clear();
719  vector<string> tgtmix = utils::str::Split(stgtmix,",");
720  if(tgtmix.size()==1) {
721  int pdg = atoi(tgtmix[0].c_str());
722  double wgt = 1.0;
723  gOptTgtMix.insert(map<int, double>::value_type(pdg, wgt));
724  } else {
725  using_tgtmix = true;
726  vector<string>::const_iterator tgtmix_iter = tgtmix.begin();
727  for( ; tgtmix_iter != tgtmix.end(); ++tgtmix_iter) {
728  string tgt_with_wgt = *tgtmix_iter;
729  string::size_type open_bracket = tgt_with_wgt.find("[");
730  string::size_type close_bracket = tgt_with_wgt.find("]");
731  string::size_type ibeg = 0;
732  string::size_type iend = open_bracket;
733  string::size_type jbeg = open_bracket+1;
734  string::size_type jend = close_bracket-1;
735  int pdg = atoi(tgt_with_wgt.substr(ibeg,iend).c_str());
736  double wgt = atof(tgt_with_wgt.substr(jbeg,jend).c_str());
737  LOG("Main", pNOTICE)
738  << "Adding to target mix: pdg = " << pdg << ", wgt = " << wgt;
739  gOptTgtMix.insert(map<int, double>::value_type(pdg, wgt));
740  }//tgtmix_iter
741  }//>1
742 
743  } else {
744  LOG("gevgen_dm", pFATAL) << "Unspecified target PDG code - Exiting";
745  PrintSyntax();
746  exit(1);
747  }
748 
749  // mediator mass ratio
750  if( parser.OptionExists('z') ) {
751  LOG("gevgen_dm", pINFO) << "Reading mediator mass ratio";
752  gOptMedRatio = parser.ArgAsDouble('z');
753  } else {
754  LOG("gevgen_dm", pINFO) << "Unspecified mediator mass ratio - Using default";
755  gOptMedRatio = 0.5;
756  }
757 
758  gOptUsingFluxOrTgtMix = using_flux || using_tgtmix;
759 
760  // random number seed
761  if( parser.OptionExists("seed") ) {
762  LOG("gevgen_dm", pINFO) << "Reading random number seed";
763  gOptRanSeed = parser.ArgAsLong("seed");
764  } else {
765  LOG("gevgen_dm", pINFO) << "Unspecified random number seed - Using default";
766  gOptRanSeed = -1;
767  }
768 
769  // input cross-section file
770  if( parser.OptionExists("cross-sections") ) {
771  LOG("gevgen_dm", pINFO) << "Reading cross-section file";
772  gOptInpXSecFile = parser.ArgAsString("cross-sections");
773  } else {
774  LOG("gevgen_dm", pINFO) << "Unspecified cross-section file";
775  gOptInpXSecFile = "";
776  }
777 
778  //
779  // print-out the command line options
780  //
781  LOG("gevgen_dm", pNOTICE)
782  << "\n"
783  << utils::print::PrintFramedMesg("gevgen_dm job configuration");
784  LOG("gevgen_dm", pNOTICE)
785  << "MC Run Number: " << gOptRunNu;
786  if(gOptRanSeed != -1) {
787  LOG("gevgen_dm", pNOTICE)
788  << "Random number seed: " << gOptRanSeed;
789  } else {
790  LOG("gevgen_dm", pNOTICE)
791  << "Random number seed was not set, using default";
792  }
793  LOG("gevgen_dm", pNOTICE)
794  << "Number of events requested: " << gOptNevents;
795  if(gOptInpXSecFile.size() > 0) {
796  LOG("gevgen_dm", pNOTICE)
797  << "Using cross-section splines read from: " << gOptInpXSecFile;
798  } else {
799  LOG("gevgen_dm", pNOTICE)
800  << "No input cross-section spline file";
801  }
802  LOG("gevgen_dm", pNOTICE)
803  << "Flux: " << gOptFlux;
804  LOG("gevgen_dm", pNOTICE)
805  << "Generate weighted events? " << gOptWeighted;
806  if(gOptDMEnergyRange>0) {
807  LOG("gevgen_dm", pNOTICE)
808  << "Dark matter energy: ["
809  << gOptDMEnergy << ", " << gOptDMEnergy+gOptDMEnergyRange << "]";
810  } else {
811  LOG("gevgen_dm", pNOTICE)
812  << "Dark matter energy: " << gOptDMEnergy;
813  }
814  LOG("gevgen_dm", pNOTICE)
815  << "Dark matter mass: " << gOptDMMass;
816  LOG("gevgen_dm", pNOTICE)
817  << "Target code (PDG) & weight fraction (in case of multiple targets): ";
818  LOG("gevgen_dm", pNOTICE)
819  << "Mediator mass ratio: " << gOptMedRatio;
821  for(iter = gOptTgtMix.begin(); iter != gOptTgtMix.end(); ++iter) {
822  int tgtpdgc = iter->first;
823  double wgt = iter->second;
824  LOG("gevgen_dm", pNOTICE)
825  << " >> " << tgtpdgc << " (weight fraction = " << wgt << ")";
826  }
827  LOG("gevgen_dm", pNOTICE) << "\n";
828 
829  LOG("gevgen_dm", pNOTICE) << *RunOpt::Instance();
830 
831 }
double gOptDMMass
Definition: gEvGenDM.cxx:221
Long_t gOptRunNu
Definition: gEvGenDM.cxx:225
double gOptMedRatio
Definition: gEvGenDM.cxx:224
#define pFATAL
Definition: Messenger.h:56
double gOptZpCoupling
Definition: gEvGenDM.cxx:222
double gOptDMEnergy
Definition: gEvGenDM.cxx:219
intermediate_table::const_iterator const_iterator
string gOptOutFileName
Definition: gEvGenDM.cxx:231
int gOptNevents
Definition: gEvGenDM.cxx:218
string gOptStatFileName
Definition: gEvGenDM.cxx:232
Long_t kDefOptRunNu
Definition: gEvGenDM.cxx:215
long int gOptRanSeed
Definition: gEvGenDM.cxx:229
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
string gOptInpXSecFile
Definition: gEvGenDM.cxx:230
#define pINFO
Definition: Messenger.h:62
map< int, double > gOptTgtMix
Definition: gEvGenDM.cxx:223
#define pWARN
Definition: Messenger.h:60
double gOptDMEnergyRange
Definition: gEvGenDM.cxx:220
vector< string > Split(string input, string delim)
Definition: StringUtils.cxx:36
int kDefOptNevents
Definition: gEvGenDM.cxx:213
string gOptFlux
Definition: gEvGenDM.cxx:226
bool gOptUsingFluxOrTgtMix
Definition: gEvGenDM.cxx:228
string PrintFramedMesg(string mesg, unsigned int nl=1, const char f='*')
Definition: PrintUtils.cxx:164
bool gOptWeighted
Definition: gEvGenDM.cxx:227
Command line argument parser.
#define pNOTICE
Definition: Messenger.h:61
bool gAbortingInErr
Definition: Messenger.cxx:34
void PrintSyntax(void)
Definition: gEvGenDM.cxx:833
void Initialize ( void  )

Definition at line 271 of file gEvGenDM.cxx.

272 {
273 
274  if ( ! RunOpt::Instance()->Tune() ) {
275  LOG("gmkspl", pFATAL) << " No TuneId in RunOption";
276  exit(-1);
277  }
278  RunOpt::Instance()->BuildTune();
279 
280  // Initialization of random number generators, cross-section table,
281  // messenger thresholds, cache file
282  utils::app_init::MesgThresholds(RunOpt::Instance()->MesgThresholdFiles());
283  utils::app_init::CacheFile(RunOpt::Instance()->CacheFile());
286 
287  // Set GHEP print level
288  GHepRecord::SetPrintLevel(RunOpt::Instance()->EventRecordPrintLevel());
289 }
void RandGen(long int seed)
Definition: AppInit.cxx:30
void XSecTable(string inpfile, bool require_table)
Definition: AppInit.cxx:38
#define pFATAL
Definition: Messenger.h:56
long int gOptRanSeed
Definition: gEvGenDM.cxx:229
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
string gOptInpXSecFile
Definition: gEvGenDM.cxx:230
void MesgThresholds(string inpfile)
Definition: AppInit.cxx:99
void CacheFile(string inpfile)
Definition: AppInit.cxx:117
int main ( int  argc,
char **  argv 
)

Definition at line 235 of file gEvGenDM.cxx.

236 {
237  GetCommandLineArgs(argc,argv);
238  PDGLibrary::Instance()->AddDarkMatter(gOptDMMass,gOptMedRatio);
239  if (gOptZpCoupling > 0.) {
240  Registry * r = AlgConfigPool::Instance()->CommonList("Param", "BoostedDarkMatter");
241  r->UnLock();
242  r->Set("ZpCoupling", gOptZpCoupling);
243  r->Lock();
244  }
245  Initialize();
246 
247 
248  // throw on NaNs and Infs...
249 #if defined(HAVE_FENV_H) && defined(HAVE_FEENABLEEXCEPT)
250  feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW);
251 #endif
252  //
253  // Generate dark matter events
254  //
255 
257 #ifdef __CAN_GENERATE_EVENTS_USING_A_FLUX_OR_TGTMIX__
258  GenerateEventsUsingFluxOrTgtMix();
259 #else
260  LOG("gevgen_dm", pERROR)
261  << "\n To be able to generate dark matter events from a flux and/or a target mix"
262  << "\n you need to add the following config options at your GENIE installation:"
263  << "\n --enable-flux-drivers --enable-geom-drivers \n" ;
264 #endif
265  } else {
267  }
268  return 0;
269 }
void GenerateEventsAtFixedInitState(void)
Definition: gEvGenDM.cxx:291
#define pERROR
Definition: Messenger.h:59
double gOptDMMass
Definition: gEvGenDM.cxx:221
double gOptMedRatio
Definition: gEvGenDM.cxx:224
double gOptZpCoupling
Definition: gEvGenDM.cxx:222
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
void GetCommandLineArgs(int argc, char **argv)
Definition: gEvGenDM.cxx:586
void Lock(void)
locks the registry
Definition: Registry.cxx:148
void UnLock(void)
unlocks the registry (doesn&#39;t unlock items)
Definition: Registry.cxx:153
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
void Initialize(void)
Definition: gEvGenDM.cxx:271
bool gOptUsingFluxOrTgtMix
Definition: gEvGenDM.cxx:228
void Set(RgIMapPair entry)
Definition: Registry.cxx:267
void PrintSyntax ( void  )

Definition at line 833 of file gEvGenDM.cxx.

834 {
835  LOG("gevgen_dm", pNOTICE)
836  << "\n\n" << "Syntax:" << "\n"
837  << "\n gevgen_dm [-h]"
838  << "\n [-r run#]"
839  << "\n -n nev"
840  << "\n -e energy (or energy range) "
841  << "\n -m mass"
842  << "\n -t target_pdg "
843  << "\n [-g zp_coupling]"
844  << "\n [-z med_ratio]"
845  << "\n [-f flux_description]"
846  << "\n [-o outfile_name]"
847  << "\n [-w]"
848  << "\n [--seed random_number_seed]"
849  << "\n [--cross-sections xml_file]"
850  << "\n [--event-generator-list list_name]"
851  << "\n [--message-thresholds xml_file]"
852  << "\n [--unphysical-event-mask mask]"
853  << "\n [--event-record-print-level level]"
854  << "\n [--mc-job-status-refresh-rate rate]"
855  << "\n [--cache-file root_file]"
856  << "\n";
857 }
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
#define pNOTICE
Definition: Messenger.h:61

Variable Documentation

double gOptDMEnergy

Definition at line 219 of file gEvGenDM.cxx.

double gOptDMEnergyRange

Definition at line 220 of file gEvGenDM.cxx.

double gOptDMMass

Definition at line 221 of file gEvGenDM.cxx.

string gOptFlux

Definition at line 226 of file gEvGenDM.cxx.

string gOptInpXSecFile

Definition at line 230 of file gEvGenDM.cxx.

double gOptMedRatio

Definition at line 224 of file gEvGenDM.cxx.

int gOptNevents

Definition at line 218 of file gEvGenDM.cxx.

string gOptOutFileName

Definition at line 231 of file gEvGenDM.cxx.

long int gOptRanSeed

Definition at line 229 of file gEvGenDM.cxx.

Long_t gOptRunNu

Definition at line 225 of file gEvGenDM.cxx.

string gOptStatFileName

Definition at line 232 of file gEvGenDM.cxx.

map<int,double> gOptTgtMix

Definition at line 223 of file gEvGenDM.cxx.

bool gOptUsingFluxOrTgtMix = false

Definition at line 228 of file gEvGenDM.cxx.

bool gOptWeighted

Definition at line 227 of file gEvGenDM.cxx.

double gOptZpCoupling

Definition at line 222 of file gEvGenDM.cxx.

int kDefOptNevents = 0

Definition at line 213 of file gEvGenDM.cxx.

NtpMCFormat_t kDefOptNtpFormat = kNFGHEP

Definition at line 214 of file gEvGenDM.cxx.

Long_t kDefOptRunNu = 0

Definition at line 215 of file gEvGenDM.cxx.