Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F10664189
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
50 KB
Subscribers
None
View Options
Index: trunk/src/FPythia/FPythia.cc
===================================================================
--- trunk/src/FPythia/FPythia.cc (revision 773)
+++ trunk/src/FPythia/FPythia.cc (revision 774)
@@ -1,251 +1,251 @@
// -*- C++ -*-
#include "AGILe/FPythia/FPythia.hh"
#include "AGILe/FPythia/FPythiaWrapper62.hh"
#include "AGILe/Utils.hh"
#include "AGILe/HepMCTools.hh"
#include "HepMC/HEPEVT_Wrapper.h"
namespace AGILe {
// Author: Andy Buckley
/// Standard constructor
FPythia::FPythia() {
/// Pythia uses HEPEVT with 4000/10000 entries and 8-byte floats
FC_PYJETS.n = 0; //< Ensure dummyness of the next call
call_pyhepc(1);
HepMC::HEPEVT_Wrapper::set_max_number_entries(FC_PYDAT1.mstu[8-1]);
//HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
// Start counting events at 1.
_nevt = 1;
// Initialize Pythia PYDATA block data as external
FC_INITPYDATA();
// Write the full shower structure
setParam("MSTP(125)", 2);
// Tell Pythia not to write multiple copies of particles in event record.
setParam("MSTP(128)", 2);
// Set up particle names map
/// @todo Also deal with gamma/e- etc. for resolved photoproduction...
_particleNames[ELECTRON] = "e-";
_particleNames[POSITRON] = "e+";
_particleNames[PROTON] = "p+";
_particleNames[ANTIPROTON] = "pbar-";
_particleNames[NEUTRON] = "n0";
_particleNames[ANTINEUTRON] = "nbar0";
_particleNames[PHOTON] = "gamma";
_particleNames[MUON] = "mu-";
_particleNames[ANTIMUON] = "mu+";
// TAU, ANTITAU
_particleNames[NU_E] = "nu_e";
_particleNames[NU_EBAR] = "nu_ebar";
_particleNames[NU_MU] = "nu_mu";
_particleNames[NU_MUBAR] = "nu_mubar";
_particleNames[NU_TAU] = "nu_tau";
_particleNames[NU_TAUBAR] = "nu_taubar";
_particleNames[PIPLUS] = "pi+";
_particleNames[PIMINUS] = "pi-";
// PIZERO
// PHOTOELECTRON, PHOTOPOSITRON,
// PHOTOMUON, PHOTOANTIMUON,
// PHOTOTAU, PHOTOANTITAU,
/// For Pythia, other "normal" particles are:
/// * gamma/e-, gamma/e+, gamma/mu-, gamma/mu+, gamma/tau-, gamma/tau+, pi0
/// Also, with crappy PDF parameterisations and other defects:
/// * K+, K-, KS0, KL0, Lambda0, Sigma-, Sigma0, Sigma+, Xi-, Xi0, Omega
/// And, not useable at the moment:
/// * pomeron, reggeon
}
void FPythia::setGenSpecificInitialState(PdgCode p1, double e1, PdgCode p2, double e2) {
- getLog() << Log::INFO << "Setting initial state..." << endl;
+ MSG_INFO("Setting initial state...");
// For Pythia, we have to hold on to this state until initialize() is called.
_particleName1 = _particleNames[p1];
_particleName2 = _particleNames[p2];
/// @todo Get momenta and energies unconfused.
_e1 = e1;
_e2 = e2;
}
/// Set up default params etc.
void FPythia::initialize() {
Generator::initialize();
// Call pythia initialization with stored parameters as set by setGenSpecificInitialState()
if (FC_PYPARS.mstp[142] != 1) {
if (fuzzyEquals(_e1, _e2)) {
call_pyinit("CMS", _particleName1.c_str(), _particleName2.c_str(), _e1+_e2);
} else {
stringstream p13cmd, p23cmd;
p13cmd << "P(1,3) = " << _e1;
p23cmd << "P(2,3) = " << -_e2;
call_pygive("P(1,1) = 0.0");
call_pygive("P(1,2) = 0.0");
call_pygive(p13cmd.str().c_str());
call_pygive("P(2,1) = 0.0");
call_pygive("P(2,2) = 0.0");
call_pygive(p23cmd.str().c_str());
call_pyinit("3MOM", _particleName1.c_str(), _particleName2.c_str(), 0.0);
}
} else {
// User process, parameters taken from LHAPDF initialisation file.
call_pyinit("USER"," "," ", 0.0);
}
_initialized = true;
}
// Set a parameter with a string value
bool FPythia::setParam(const string& name, const string& value) {
Generator::setParam(name, value);
const string pygive_input(toUpper(name) + "=" + value);
call_pygive(pygive_input.c_str());
return SUCCESS;
}
// Run the generator for one event
void FPythia::makeEvent(HepMC::GenEvent& evt) {
Generator::makeEvent(evt);
/// @todo Allow control of choice of underlying event and shower evolutions via "meta-params".
// Generate one event.
call_pyevnt();
// Generate one event with new UE and shower.
//call_pyevnw();
// Convert common PYJETS into common HEPEVT.
call_pyhepc(1);
// Increment an event counter (Pythia does not count for itself).
_nevt++;
// fill the event using HepMC
fillEvent(evt);
evt.set_event_number(_nevt);
}
// Fill a HepMC event
void FPythia::fillEvent(HepMC::GenEvent& evt) {
_hepevt.fill_next_event(&evt);
fixHepMCUnitsFromGeVmm(evt);
-
+
evt.weights().clear();
-
- if(FC_PYPARS.mstp[141]!=0){
+
+ if (FC_PYPARS.mstp[141] != 0) {
evt.weights().push_back(FC_PYPARS.pari[9]);
- }else{
+ } else {
evt.weights().push_back(1.0);
}
-
+
#ifdef HEPMC_HAS_CROSS_SECTION
HepMC::GenCrossSection xsec;
const double xsecval = getCrossSection();
const double xsecerr = getCrossSection() / std::sqrt(FC_PYPARS.msti[4]);
- getLog() << Log::DEBUG << "Writing cross-section = " << xsecval << " +- " << xsecerr << endl;
+ MSG_DEBUG("Writing cross-section = " << xsecval << " +- " << xsecerr);
xsec.set_cross_section(xsecval, xsecerr);
evt.set_cross_section(xsec);
#endif
}
string FPythia::getPDFSet(PdgCode pid) {
switch(pid) {
case PROTON:
case ANTIPROTON:
if (FC_PYPARS.mstp[51] == 1) {
return "PYINTERNAL";
} else if(FC_PYPARS.mstp[51] == 2) {
return "PYLHAPDF";
}
break;
case ELECTRON:
case POSITRON:
if (FC_PYPARS.mstp[55] == 1) {
return "PYINTERNAL";
} else if(FC_PYPARS.mstp[55] == 2) {
return "PYLHAPDF";
}
break;
default:
break;
}
- throw runtime_error("Unknown particle for PDF Set");
+ throw runtime_error("Unknown particle for PDF set");
}
int FPythia::getPDFMember(PdgCode pid) {
switch(pid) {
case PROTON:
case ANTIPROTON:
return FC_PYPARS.mstp[50];
break;
case ELECTRON:
case POSITRON:
return FC_PYPARS.mstp[54];
break;
default:
break;
}
- throw runtime_error("Unknown particle for PDF Set");
+ throw runtime_error("Unknown particle for PDF set");
}
string FPythia::getPDFScheme(PdgCode pid) const {
switch(pid){
case PROTON:
case ANTIPROTON:
if (FC_PYPARS.mstp[51]==1) {
return "PYINTERNAL";
} else if(FC_PYPARS.mstp[51]==2) {
return "LHAPDF";
}
break;
case ELECTRON:
case POSITRON:
if (FC_PYPARS.mstp[55]==1) {
return "PYINTERNAL";
} else if(FC_PYPARS.mstp[55]==2) {
return "LHAPDF";
}
break;
default:
break;
}
- throw runtime_error("Unknown particle for PDF Set");
+ throw runtime_error("Unknown particle for PDF set");
}
const double FPythia::getCrossSection(){
// _crossSection = FC_PYINT5.xsec[2][0] * 1e09;
_crossSection = FC_PYPARS.pari[0] * 1e09;
return _crossSection;
}
const string FPythia::getVersion(){
stringstream s;
s << FC_PYPARS.mstp[180] << "." << FC_PYPARS.mstp[181];
return s.str();
}
// Tidy up after ourselves
void FPythia::finalize() {
- getLog() << Log::INFO << "Finalising..." << endl;
+ MSG_DEBUG("Finalising...");
// Print out stats from run
call_pystat(1);
}
}
extern "C" {
AGILe::Generator* create() { return new AGILe::FPythia(); }
void destroy(AGILe::Generator* gen) { delete gen; }
}
Index: trunk/src/FHerwig/FHerwig.cc
===================================================================
--- trunk/src/FHerwig/FHerwig.cc (revision 773)
+++ trunk/src/FHerwig/FHerwig.cc (revision 774)
@@ -1,597 +1,596 @@
// -*- C++ -*-
#include "AGILe/FHerwig/FHerwig.hh"
#include "AGILe/FHerwig/FHerwigWrapper65.hh"
#include "AGILe/Utils.hh"
#include "AGILe/HepMCTools.hh"
namespace AGILe {
// Standard constructor
FHerwig::FHerwig() : _doHadronise(true), _unitWeight(true){
/// Herwig 6.5 uses HEPEVT with 4000/10000 entries and 8-byte floats
HepMC::HEPEVT_Wrapper::set_max_number_entries(FC_HWGETHEPEVTSIZE());
HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
// Set up particle names map: note that they must be 8 characters long
_particleNames[ELECTRON] = "E- ";
_particleNames[POSITRON] = "E+ ";
_particleNames[PROTON] = "P ";
_particleNames[ANTIPROTON] = "PBAR ";
_particleNames[NEUTRON] = "N ";
_particleNames[ANTINEUTRON] = "NBAR ";
_particleNames[PHOTON] = "GAMMA ";
_particleNames[MUON] = "MU- ";
_particleNames[ANTIMUON] = "MU+ ";
// TAU, ANTITAU
_particleNames[NU_E] = "NU_E ";
_particleNames[NU_EBAR] = "NU_EBAR ";
_particleNames[NU_MU] = "NU_MU ";
_particleNames[NU_MUBAR] = "NU_MUBAR";
_particleNames[NU_TAU] = "NU_TAU ";
_particleNames[NU_TAUBAR] = "NU_TAUBR";
_particleNames[PIPLUS] = "PI+ ";
_particleNames[PIMINUS] = "PI- ";
// PIZERO
// PHOTOELECTRON, PHOTOPOSITRON,
// PHOTOMUON, PHOTOANTIMUON,
// PHOTOTAU, PHOTOANTITAU,
// Initialize and set default parameters (no echoing)
FC_HWIGIN(); // Print banner and initialise common blocks
FC_HWPROC.IPROC = 1500; // Use QCD 2->2 as the default process
FC_HWPROC.MAXEV = 10000000; // Maximum number of events (irrelevant!)
FC_HWEVNT.MAXER = 10000000; // Maximum number of allowed errors
FC_HWPRAM.PRNDEF = 0; // Enable/disable ASCII output
FC_HWEVNT.MAXPR = 0; // Number of events to print
FC_HWPRAM.IPRINT = 1; // Type of info to print
// Start counting events at 1.
_nevt = 1;
}
// Set up initial state from supplied params
void FHerwig::setGenSpecificInitialState(int p1, double e1, int p2, double e2) {
- getLog() << Log::INFO << "Setting initial state..." << endl;
+ MSG_INFO("Setting initial state...");
// Herwig's initial state particles specification must be 8 chars long
for ( unsigned int i = 0; i < 8; ++i ) {
FC_HWBMCH.PART1[i] = _particleNames[ParticleName(p1)].c_str()[i];
FC_HWBMCH.PART2[i] = _particleNames[ParticleName(p2)].c_str()[i];
}
// Set momenta / energies
setParam("PBEAM1", e1); /// @todo Get momenta and energies unconfused?
setParam("PBEAM2", e2); /// @todo Store a list of particle masses for this?
// NB. Beam ordering is significant (segfault if "wrong") for HERA initial state
}
// Run generator initialization
void FHerwig::initialize() {
Generator::initialize();
// Compute parameter-dependent constants
FC_HWUINC();
// Initialise elementary process
FC_HWEINI();
_initialized = true;
}
// Set random number seed
void FHerwig::setSeed(const int value) {
Generator::setSeed(value);
FC_HWEVNT.NRN[0] = value;
const int nextSeed = value + SEED_OFFSET;
FC_HWEVNT.NRN[1] = nextSeed;
Generator::setSeed(nextSeed);
}
// Set parameters.
bool FHerwig::setParam(const string& name, const string& value) {
Generator::setParam(name, value);
// Strings
//std::cout << "****" << name << "****" << std::endl;
if (name.find("AUTPDF") != string::npos) {
if (name == "AUTPDF(1)" || name == "AUTPDF") {
- getLog() << Log::INFO << "Setting AUTPDF(1) = " << value << endl;
+ MSG_INFO("Setting AUTPDF(1) = " << value);
int nch = (value.size() < AUTPDF_LENGTH) ? value.size() : AUTPDF_LENGTH-1;
for(int i = 0; i < AUTPDF_LENGTH; i++) {
if(i < nch) {
FC_HWPRCH.AUTPDF[0][i] = value.data()[i];
} else {
FC_HWPRCH.AUTPDF[0][i] = ' ';
}
}
}
if (name == "AUTPDF(2)" || name == "AUTPDF") {
- getLog() << Log::INFO << "Setting AUTPDF(2) = " << value << endl;
+ MSG_INFO("Setting AUTPDF(2) = " << value);
int nch = (value.size() < AUTPDF_LENGTH) ? value.size() : AUTPDF_LENGTH-1;
for(int i = 0; i < AUTPDF_LENGTH; i++) {
if(i < nch) {
FC_HWPRCH.AUTPDF[1][i] = value.data()[i];
} else {
FC_HWPRCH.AUTPDF[1][i] = ' ';
}
}
}
} else //...
// Integers
if (name == "IPROC") {
// 1610 = gg -> H -> WW; 1706 = qq -> ttbar; 2510 = ttH -> ttWW, ...
- getLog() << Log::INFO << "Setting process code (IPROC) = " << asInt(value) << endl;
+ MSG_INFO("Setting process code (IPROC) = " << asInt(value));
FC_HWPROC.IPROC = asInt(value);
//} else if (name == "MAXEV") {
- //getLog() << Log::INFO << "Setting maximum number of events (MAXEV) = " << asInt(value) << endl;
+ //MSG_INFO("Setting maximum number of events (MAXEV) = " << asInt(value));
//FC_HWPROC.MAXEV = asInt(value);
} else if (name == "MAXPR") {
- getLog() << Log::INFO << "Setting max event printouts (MAXPR) = " << asInt(value) << endl;
+ MSG_INFO("Setting max event printouts (MAXPR) = " << asInt(value));
FC_HWEVNT.MAXPR = asInt(value);
} else if (name == "IPRINT") {
- getLog() << Log::INFO << "Setting printout info code (IPRINT) = " << asInt(value) << endl;
+ MSG_INFO("Setting printout info code (IPRINT) = " << asInt(value));
FC_HWPRAM.IPRINT = asInt(value);
} else if (name == "CLDIR1") {
- getLog() << Log::INFO << "Setting smearing of perturbative quark pT in light cluster fission (CLDIR(1)) = " << asInt(value) << endl;
+ MSG_INFO("Setting smearing of perturbative quark pT in light cluster fission (CLDIR(1)) = " << asInt(value));
FC_HWPRAM.CLDIR[0] = asInt(value);
} else if (name == "CLDIR2") {
- getLog() << Log::INFO << "Setting smearing of perturbative quark pT in b cluster fission (CLDIR(2)) = " << asInt(value) << endl;
+ MSG_INFO("Setting smearing of perturbative quark pT in b cluster fission (CLDIR(2)) = " << asInt(value));
FC_HWPRAM.CLDIR[1] = asInt(value);
} else if (name == "IOPREM") {
- getLog() << Log::INFO << "Setting model for treatment of remnant clusters (IOPREM) = " << asInt(value) << endl;
+ MSG_INFO("Setting model for treatment of remnant clusters (IOPREM) = " << asInt(value));
FC_HWPRAM.IOPREM = asInt(value);
} else if (name == "ISPAC") {
- getLog() << Log::INFO << "Setting ISR forced branching IR behaviour (ISPAC) = " << asInt(value) << endl;
+ MSG_INFO("Setting ISR forced branching IR behaviour (ISPAC) = " << asInt(value));
FC_HWPRAM.ISPAC = asInt(value);
} else if (name == "NFLAV") {
- getLog() << Log::INFO << "Setting number of flavours (NFLAV) = " << asInt(value) << endl;
+ MSG_INFO("Setting number of flavours (NFLAV) = " << asInt(value));
FC_HWPRAM.NFLAV = asInt(value);
} else if (name == "NSTRU") {
- getLog() << Log::INFO << "Setting internal PDF ID... are you sure? (NSTRU) = " << asInt(value) << endl;
+ MSG_INFO("Setting internal PDF ID... are you sure? (NSTRU) = " << asInt(value));
FC_HWPRAM.NSTRU = asInt(value);
} else if (name == "MODPDF") {
- getLog() << Log::INFO << "Setting PDFLIB IDs for both beams (MODPDF(1&2)) = " << asInt(value) << endl;
+ MSG_INFO("Setting PDFLIB IDs for both beams (MODPDF(1&2)) = " << asInt(value));
FC_HWPRAM.MODPDF[0] = asInt(value);
FC_HWPRAM.MODPDF[1] = asInt(value);
} else if (name == "MODPDF(1)") {
- getLog() << Log::INFO << "Setting PDFLIB ID for beam 1 (MODPDF(1)) = " << asInt(value) << endl;
+ MSG_INFO("Setting PDFLIB ID for beam 1 (MODPDF(1)) = " << asInt(value));
FC_HWPRAM.MODPDF[0] = asInt(value);
} else if (name == "MODPDF(2)") {
- getLog() << Log::INFO << "Setting PDFLIB ID for beam 2 (MODPDF(2)) = " << asInt(value) << endl;
+ MSG_INFO("Setting PDFLIB ID for beam 2 (MODPDF(2)) = " << asInt(value));
FC_HWPRAM.MODPDF[1] = asInt(value);
} else if (name == "IFLMAX") {
- getLog() << Log::INFO << "Setting max quark flavour in photoproduction (IFLMAX) = " << asInt(value) << endl;
+ MSG_INFO("Setting max quark flavour in photoproduction (IFLMAX) = " << asInt(value));
FC_HWHARD.IFLMAX = asInt(value);
} else if (name == "LRSUD") {
- getLog() << Log::INFO << "Setting unit for reading Sudakov table (LRSUD) = " << asInt(value) << endl;
+ MSG_INFO("Setting unit for reading Sudakov table (LRSUD) = " << asInt(value));
FC_HWPRAM.LRSUD = asInt(value);
} else if (name == "LWSUD") {
- getLog() << Log::INFO << "Setting unit for writing Sudakov table (LWSUD) = " << asInt(value) << endl;
+ MSG_INFO("Setting unit for writing Sudakov table (LWSUD) = " << asInt(value));
FC_HWPRAM.LWSUD = asInt(value);
// } else if (name == "MODBOS") {
- // getLog() << Log::INFO << "Setting MODBOS = " << asInt(value) << endl;
+ // MSG_INFO("Setting MODBOS = " << asInt(value));
// FC_HWBOSC.MODBOS[0] = asInt(value);
} //...
// Doubles
else if (name == "PBEAM1") {
- getLog() << Log::INFO << "Setting beam 1 momentum (PBEAM1) = " << asDouble(value) << endl;
+ MSG_INFO("Setting beam 1 momentum (PBEAM1) = " << asDouble(value));
FC_HWPROC.PBEAM1 = asDouble(value);
} else if (name == "PBEAM2") {
- getLog() << Log::INFO << "Setting beam 2 momentum (PBEAM2) = " << asDouble(value) << endl;
+ MSG_INFO("Setting beam 2 momentum (PBEAM2) = " << asDouble(value));
FC_HWPROC.PBEAM2 = asDouble(value);
} else if (name == "EBEAM1") {
- getLog() << Log::INFO << "Setting beam 1 energy (EBEAM1) = " << asDouble(value) << endl;
+ MSG_INFO("Setting beam 1 energy (EBEAM1) = " << asDouble(value));
FC_HWPROC.EBEAM1 = asDouble(value);
} else if (name == "EBEAM2") {
- getLog() << Log::INFO << "Setting beam 2 energy (EBEAM2) = " << asDouble(value) << endl;
+ MSG_INFO("Setting beam 2 energy (EBEAM2) = " << asDouble(value));
FC_HWPROC.EBEAM2 = asDouble(value);
} else if (name == "ALPHEM") {
- getLog() << Log::INFO << "Setting alpha_EM (ALPHEM) = " << asDouble(value) << endl;
+ MSG_INFO("Setting alpha_EM (ALPHEM) = " << asDouble(value));
FC_HWPRAM.ALPHEM = asDouble(value);
} else if (name == "PTMIN") {
- getLog() << Log::INFO << "Setting minimum hard pt (PTMIN) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum hard pt (PTMIN) = " << asDouble(value));
FC_HWHARD.PTMIN = asDouble(value);
} else if (name == "PTMAX") {
- getLog() << Log::INFO << "Setting maximum hard pt (PTMAX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting maximum hard pt (PTMAX) = " << asDouble(value));
FC_HWHARD.PTMAX = asDouble(value);
} else if (name == "PTPOW") {
- getLog() << Log::INFO << "Setting power for reweight (PTPOW) = " << asDouble(value) << endl;
+ MSG_INFO("Setting power for reweight (PTPOW) = " << asDouble(value));
FC_HWHARD.PTPOW = asDouble(value);
} else if (name == "Q2WWMN") {
- getLog() << Log::INFO << "Setting minimum Q2 in equivalent photon approximation (Q2WWMN) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum Q2 in equivalent photon approximation (Q2WWMN) = " << asDouble(value));
FC_HWHARD.Q2WWMN = asDouble(value);
} else if (name == "Q2WWMX") {
- getLog() << Log::INFO << "Setting maximum Q2 in equivalent photon approximation (Q2WWMX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting maximum Q2 in equivalent photon approximation (Q2WWMX) = " << asDouble(value));
FC_HWHARD.Q2WWMX = asDouble(value);
} else if (name == "YWWMIN") {
- getLog() << Log::INFO << "Setting minimum photon light-cone fraction in equivalent photon approximation (YWWMIN) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum photon light-cone fraction in equivalent photon approximation (YWWMIN) = " << asDouble(value));
FC_HWHARD.YWWMIN = asDouble(value);
} else if (name == "YWWMAX") {
- getLog() << Log::INFO << "Setting maximum photon light-cone fraction in equivalent photon approximation (YWWMAX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting maximum photon light-cone fraction in equivalent photon approximation (YWWMAX) = " << asDouble(value));
FC_HWHARD.YWWMAX = asDouble(value);
} else if ( name =="WHMIN") {
- getLog() << Log::INFO << "Setting min hadronic mass in photon-induced (DIS) processes (WHMIN) = " << asDouble(value)<<endl;
+ MSG_INFO("Setting min hadronic mass in photon-induced (DIS) processes (WHMIN) = " << asDouble(value));
FC_HWHARD.WHMIN = asDouble(value);
} else if ( name =="EMMIN") {
- getLog() << Log::INFO << "Setting minimum DY boson mass (EMMIN) = "<< asDouble(value) << endl;
+ MSG_INFO("Setting minimum DY boson mass (EMMIN) = "<< asDouble(value));
FC_HWHARD.EMMIN = asDouble(value);
} else if ( name =="EMMAX") {
- getLog() << Log::INFO << "Setting maximum DY boson mass (EMMIN) = "<< asDouble(value) << endl;
+ MSG_INFO("Setting maximum DY boson mass (EMMIN) = "<< asDouble(value));
FC_HWHARD.EMMAX = asDouble(value);
} else if ( name =="EMPOW") {
- getLog() << Log::INFO << "Setting power for EM reweighting (EMPOW) = "<< asDouble(value) << endl;
+ MSG_INFO("Setting power for EM reweighting (EMPOW) = "<< asDouble(value));
FC_HWHARD.EMPOW = asDouble(value);
} else if ( name =="EMSCA") {
- getLog() << Log::INFO << "Setting ??? for EM (EMSCA) = "<< asDouble(value) << endl;
+ MSG_INFO("Setting ??? for EM (EMSCA) = "<< asDouble(value));
FC_HWHARD.EMSCA = asDouble(value);
} else if (name == "PRECO") {
- getLog() << Log::INFO << "Setting probability of cluster colour reassignment (PRECO) = " << asDouble(value) << endl;
+ MSG_INFO("Setting probability of cluster colour reassignment (PRECO) = " << asDouble(value));
FC_HWUCLU.PRECO = asDouble(value);
} else if (name == "PDFX0") {
- getLog() << Log::INFO << "Setting maximum x for saturation effects (PDFX0) = " << asDouble(value) << endl;
+ MSG_INFO("Setting maximum x for saturation effects (PDFX0) = " << asDouble(value));
FC_HW6506.PDFX0 = asDouble(value);
} else if (name == "PDFPOW") {
- getLog() << Log::INFO << "Setting suppression of PDFs below x0 (PDFPOW) = " << asDouble(value) << endl;
+ MSG_INFO("Setting suppression of PDFs below x0 (PDFPOW) = " << asDouble(value));
FC_HW6506.PDFPOW = asDouble(value);
} else if (name == "BTCLM") {
- getLog() << Log::INFO << "Setting remnant cluster mass param adjustment (BTCLM) = " << asDouble(value) << endl;
+ MSG_INFO("Setting remnant cluster mass param adjustment (BTCLM) = " << asDouble(value));
FC_HWPRAM.BTCLM = asDouble(value);
} else if (name == "CLMAX") {
- getLog() << Log::INFO << "Setting cluster mass offset (CLMAX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting cluster mass offset (CLMAX) = " << asDouble(value));
FC_HWPRAM.CLMAX = asDouble(value);
} else if (name == "CLPOW") {
- getLog() << Log::INFO << "Setting exponent of cluster fission (CLPOW) = " << asDouble(value) << endl;
+ MSG_INFO("Setting exponent of cluster fission (CLPOW) = " << asDouble(value));
FC_HWPRAM.CLPOW = asDouble(value);
} else if (name == "CLSMR1") {
- getLog() << Log::INFO << "Setting Gaussian quark pT smearing width for light clusters (CLSMR(1)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting Gaussian quark pT smearing width for light clusters (CLSMR(1)) = " << asDouble(value));
FC_HWPRAM.CLSMR[0] = asDouble(value);
} else if (name == "CLSMR2") {
- getLog() << Log::INFO << "Setting Gaussian quark pT smearing width for b clusters (CLSMR(2)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting Gaussian quark pT smearing width for b clusters (CLSMR(2)) = " << asDouble(value));
FC_HWPRAM.CLSMR[1] = asDouble(value);
} else if (name == "PRSOF") {
- getLog() << Log::INFO << "Setting probablility of soft scatters (PRSOF) = " << asDouble(value) << endl;
+ MSG_INFO("Setting probablility of soft scatters (PRSOF) = " << asDouble(value));
FC_HWPRAM.PRSOF = asDouble(value);
} else if (name == "PSPLT1") {
- getLog() << Log::INFO << "Setting cluster mass spectrum exponent for light clusters (PSPLT(1)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting cluster mass spectrum exponent for light clusters (PSPLT(1)) = " << asDouble(value));
FC_HWPRAM.PSPLT[0] = asDouble(value);
} else if (name == "PSPLT2") {
- getLog() << Log::INFO << "Setting cluster mass spectrum exponent for b clusters (PSPLT(2)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting cluster mass spectrum exponent for b clusters (PSPLT(2)) = " << asDouble(value));
FC_HWPRAM.PSPLT[1] = asDouble(value);
}
// Following params are useful for MPI/ISR tunes:
else if (name == "PTRMS") {
- getLog() << Log::INFO << "Setting intrinsic kT (PTRMS) = " << asDouble(value) << endl;
+ MSG_INFO("Setting intrinsic kT (PTRMS) = " << asDouble(value));
FC_HWPRAM.PTRMS = asDouble(value);
} else if (name == "QCDLAM") {
- getLog() << Log::INFO << "Setting Lambda_QCD for alpha_s running (QCDLAM) = " << asDouble(value) << endl;
+ MSG_INFO("Setting Lambda_QCD for alpha_s running (QCDLAM) = " << asDouble(value));
FC_HWPRAM.QCDLAM = asDouble(value);
} else if (name == "QSPAC") {
- getLog() << Log::INFO << "Setting Q cutoff for spacelike (ISR) shower (QSPAC) = " << asDouble(value) << endl;
+ MSG_INFO("Setting Q cutoff for spacelike (ISR) shower (QSPAC) = " << asDouble(value));
FC_HWPRAM.QSPAC = asDouble(value);
} else if (name == "VGCUT") {
- getLog() << Log::INFO << "Setting gluon virtuality cutoff in parton showers (VGCUT) = " << asDouble(value) << endl;
+ MSG_INFO("Setting gluon virtuality cutoff in parton showers (VGCUT) = " << asDouble(value));
FC_HWPRAM.VGCUT = asDouble(value);
} else if (name == "VQCUT") {
- getLog() << Log::INFO << "Setting quark virtuality cutoff in parton showers (VQCUT) = " << asDouble(value) << endl;
+ MSG_INFO("Setting quark virtuality cutoff in parton showers (VQCUT) = " << asDouble(value));
FC_HWPRAM.VQCUT = asDouble(value);
} else if (name == "ZMXISR") {
- getLog() << Log::INFO << "Setting max. momentum fraction for photon ISR (ZMXISR) = " << asDouble(value) << endl;
+ MSG_INFO("Setting max. momentum fraction for photon ISR (ZMXISR) = " << asDouble(value));
FC_HWHARD.ZMXISR = asDouble(value);
}
// End MPI/ISR tune params
else if (name == "VPCUT") {
- getLog() << Log::INFO << "Setting photon virtuality cutoff (VPCUT) = " << asDouble(value) << endl;
+ MSG_INFO("Setting photon virtuality cutoff (VPCUT) = " << asDouble(value));
FC_HWPRAM.VPCUT = asDouble(value);
} else if (name == "OMEGA0") {
- getLog() << Log::INFO << "Setting omega_0 param in Mueller-Tang pomeron for IPROC=2400 (OMEGA0) = " << asDouble(value) << endl;
+ MSG_INFO("Setting omega_0 param in Mueller-Tang pomeron for IPROC=2400 (OMEGA0) = " << asDouble(value));
FC_HWHARD.OMEGA0 = asDouble(value);
} else if (name == "ASFIXD") {
- getLog() << Log::INFO << "Setting a_s param in Mueller-Tang pomeron for IPROC=2400 (ASFIXD) = " << asDouble(value) << endl;
+ MSG_INFO("Setting a_s param in Mueller-Tang pomeron for IPROC=2400 (ASFIXD) = " << asDouble(value));
FC_HWHARD.ASFIXD = asDouble(value);
} else if (name == "Q2MIN") {
- getLog() << Log::INFO << "Setting minimum DIS Q2 (Q2MIN) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum DIS Q2 (Q2MIN) = " << asDouble(value));
FC_HWHARD.Q2MIN = asDouble(value);
} else if (name == "Q2MAX") {
- getLog() << Log::INFO << "Setting maximum DIS Q2 (Q2MAX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting maximum DIS Q2 (Q2MAX) = " << asDouble(value));
FC_HWHARD.Q2MAX = asDouble(value);
} else if (name == "Q2POW") {
- getLog() << Log::INFO << "Setting reweighting power in DIS Q2 (Q2POW) = " << asDouble(value) << endl;
+ MSG_INFO("Setting reweighting power in DIS Q2 (Q2POW) = " << asDouble(value));
FC_HWHARD.Q2POW = asDouble(value);
} else if (name == "Q2WWMN") {
- getLog() << Log::INFO << "Setting Q2WWMN (Q2WWMN) = " << asDouble(value) << endl;
+ MSG_INFO("Setting Q2WWMN (Q2WWMN) = " << asDouble(value));
FC_HWHARD.Q2WWMN = asDouble(value);
} else if (name == "Q2WWMX") {
- getLog() << Log::INFO << "Setting Q2WWMX (Q2WWMX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting Q2WWMX (Q2WWMX) = " << asDouble(value));
FC_HWHARD.Q2WWMX = asDouble(value);
} else if (name == "QLIM") {
- getLog() << Log::INFO << "Setting QLIM (QLIM) = " << asDouble(value) << endl;
+ MSG_INFO("Setting QLIM (QLIM) = " << asDouble(value));
FC_HWHARD.QLIM = asDouble(value);
} else if (name == "YBMIN") {
- getLog() << Log::INFO << "Setting minimum Bjorken y=Q2/xs (YBMIN) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum Bjorken y=Q2/xs (YBMIN) = " << asDouble(value));
FC_HWHARD.YBMIN = asDouble(value);
} else if (name == "YBMAX") {
- getLog() << Log::INFO << "Setting maximum Bjorken y=Q2/xs (YBMAX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting maximum Bjorken y=Q2/xs (YBMAX) = " << asDouble(value));
FC_HWHARD.YBMAX = asDouble(value);
} else if (name == "YJMIN") {
- getLog() << Log::INFO << "Setting minimum ??? (YJMIN) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum ??? (YJMIN) = " << asDouble(value));
FC_HWHARD.YJMIN = asDouble(value);
} else if (name == "YJMAX") {
- getLog() << Log::INFO << "Setting maximum ??? (YJMAX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting maximum ??? (YJMAX) = " << asDouble(value));
FC_HWHARD.YJMAX = asDouble(value);
} else if (name == "YWWMIN") {
- getLog() << Log::INFO << "Setting minimum ??? (YWWMIN) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum ??? (YWWMIN) = " << asDouble(value));
FC_HWHARD.YWWMIN = asDouble(value);
} else if (name == "YWWMAX") {
- getLog() << Log::INFO << "Setting maximum ??? (YWWMAX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting maximum ??? (YWWMAX) = " << asDouble(value));
FC_HWHARD.YWWMAX = asDouble(value);
} else if (name == "XX1") {
- getLog() << Log::INFO << "Setting ??? (XX(1)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting ??? (XX(1)) = " << asDouble(value));
FC_HWHARD.XX[0] = asDouble(value);
} else if (name == "XX2") {
- getLog() << Log::INFO << "Setting ??? (XX(2)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting ??? (XX(2)) = " << asDouble(value));
FC_HWHARD.XX[1] = asDouble(value);
} else if (name == "XLMIN") {
- getLog() << Log::INFO << "Setting minimum ??? (XLMIN) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum ??? (XLMIN) = " << asDouble(value));
FC_HWHARD.XLMIN = asDouble(value);
} else if (name == "XXMIN") {
- getLog() << Log::INFO << "Setting minimum ??? (XXMIN) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum ??? (XXMIN) = " << asDouble(value));
FC_HWHARD.XXMIN = asDouble(value);
} else if (name == "WHMIN") {
- getLog() << Log::INFO << "Setting minimum ??? (WHMIN) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum ??? (WHMIN) = " << asDouble(value));
FC_HWHARD.WHMIN = asDouble(value);
} else if (name == "ZJMAX") {
- getLog() << Log::INFO << "Setting maximum ??? (ZJMAX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting maximum ??? (ZJMAX) = " << asDouble(value));
FC_HWHARD.ZJMAX = asDouble(value);
} else if (name == "TMNISR") {
- getLog() << Log::INFO << "Setting minimum ??? (TMNISR) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum ??? (TMNISR) = " << asDouble(value));
FC_HWHARD.TMNISR = asDouble(value);
} else if (name == "ZMXISR") {
- getLog() << Log::INFO << "Setting maximum ??? in ISR (ZMXISR) = " << asDouble(value) << endl;
+ MSG_INFO("Setting maximum ??? in ISR (ZMXISR) = " << asDouble(value));
FC_HWHARD.ZMXISR = asDouble(value);
} else if (name == "THMAX") {
- getLog() << Log::INFO << "Setting maximum ??? (THMAX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting maximum ??? (THMAX) = " << asDouble(value));
FC_HWHARD.THMAX = asDouble(value);
} else if (name == "Y4JT") {
- getLog() << Log::INFO << "Setting ??? (Y4JT) = " << asDouble(value) << endl;
+ MSG_INFO("Setting ??? (Y4JT) = " << asDouble(value));
FC_HWHARD.Y4JT = asDouble(value);
} else if (name == "SINS") {
- getLog() << Log::INFO << "Setting ??? (SINS) = " << asDouble(value) << endl;
+ MSG_INFO("Setting ??? (SINS) = " << asDouble(value));
FC_HWHARD.SINS = asDouble(value);
} else if (name == "PLTCUT") {
- getLog() << Log::INFO << "Setting lifetime cut (PLTCUT) = " << asDouble(value) << endl;
+ MSG_INFO("Setting lifetime cut (PLTCUT) = " << asDouble(value));
FC_HWDIST.PLTCUT = asDouble(value);
} else if (name == "GAMW") {
- getLog() << Log::INFO << "Setting W width (GAMW) = " << asDouble(value) << endl;
+ MSG_INFO("Setting W width (GAMW) = " << asDouble(value));
FC_HWPRAM.GAMW = asDouble(value);
} else if (name == "GAMZ") {
- getLog() << Log::INFO << "Setting Z0 width (GAMZ) = " << asDouble(value) << endl;
+ MSG_INFO("Setting Z0 width (GAMZ) = " << asDouble(value));
FC_HWPRAM.GAMZ = asDouble(value);
} else if (name == "GAMZP") {
- getLog() << Log::INFO << "Setting Z0/gamma width (GAMZP) = " << asDouble(value) << endl;
+ MSG_INFO("Setting Z0/gamma width (GAMZP) = " << asDouble(value));
FC_HWPRAM.GAMZP = asDouble(value);
} else if (name == "H1MIX") {
/// @todo Add meaning of param (Higgs mixing angle?)
- getLog() << Log::INFO << "Setting H1MIX (H1MIX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting H1MIX (H1MIX) = " << asDouble(value));
FC_HWPRAM.H1MIX = asDouble(value);
} else if (name == "PHIMIX") {
/// @todo Add meaning of param (??? mixing angle?)
- getLog() << Log::INFO << "Setting PHIMIX (PHIMIX) = " << asDouble(value) << endl;
+ MSG_INFO("Setting PHIMIX (PHIMIX) = " << asDouble(value));
FC_HWPRAM.PHIMIX = asDouble(value);
}
// NB. The -1 C-Fortran array offset does not apply for RMASS, which is declared as (0:NMXRES).
else if (name == "RMASS(1)") {
- getLog() << Log::INFO << "Setting down mass (RMASS(1)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting down mass (RMASS(1)) = " << asDouble(value));
FC_HWPROP.RMASS[1] = asDouble(value);
} else if (name == "RMASS(2)") {
- getLog() << Log::INFO << "Setting up mass (RMASS(2)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting up mass (RMASS(2)) = " << asDouble(value));
FC_HWPROP.RMASS[2] = asDouble(value);
} else if (name == "RMASS(3)") {
- getLog() << Log::INFO << "Setting strange mass (RMASS(3)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting strange mass (RMASS(3)) = " << asDouble(value));
FC_HWPROP.RMASS[3] = asDouble(value);
} else if (name == "RMASS(4)") {
- getLog() << Log::INFO << "Setting charm mass (RMASS(4)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting charm mass (RMASS(4)) = " << asDouble(value));
FC_HWPROP.RMASS[4] = asDouble(value);
} else if (name == "RMASS(5)") {
- getLog() << Log::INFO << "Setting bottom mass (RMASS(5)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting bottom mass (RMASS(5)) = " << asDouble(value));
FC_HWPROP.RMASS[5] = asDouble(value);
} else if (name == "RMASS(6)") {
- getLog() << Log::INFO << "Setting top mass (RMASS(6)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting top mass (RMASS(6)) = " << asDouble(value));
FC_HWPROP.RMASS[6] = asDouble(value);
} else if (name == "RMASS(198)") {
- getLog() << Log::INFO << "Setting W+ mass (RMASS(198)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting W+ mass (RMASS(198)) = " << asDouble(value));
FC_HWPROP.RMASS[198] = asDouble(value);
} else if (name == "RMASS(199)") {
- getLog() << Log::INFO << "Setting W- mass (RMASS(199)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting W- mass (RMASS(199)) = " << asDouble(value));
FC_HWPROP.RMASS[199] = asDouble(value);
} else if (name == "RMASS(200)") {
- getLog() << Log::INFO << "Setting Z0 mass (RMASS(200)) = " << asDouble(value) << endl;
+ MSG_INFO("Setting Z0 mass (RMASS(200)) = " << asDouble(value));
FC_HWPROP.RMASS[200] = asDouble(value);
} //...
// Booleans (done as ints in Fortran)
else if (name == "GENSOF") {
- getLog() << Log::INFO << "Setting ... (GENSOF) = " << asInt(value) << endl;
+ MSG_INFO("Setting ... (GENSOF) = " << asInt(value));
FC_HWEVNT.GENSOF = asInt(value);
} else if (name == "AZSOFT") {
- getLog() << Log::INFO << "Setting use of soft gluon azimuthal corellations on/off (AZSOFT) = " << asInt(value) << endl;
+ MSG_INFO("Setting use of soft gluon azimuthal corellations on/off (AZSOFT) = " << asInt(value));
FC_HWPRAM.AZSOFT = asInt(value);
} else if (name == "CLRECO") {
- getLog() << Log::INFO << "Setting inclusion of colour rearrangement on/off (CLRECO) = " << asInt(value) << endl;
+ MSG_INFO("Setting inclusion of colour rearrangement on/off (CLRECO) = " << asInt(value));
FC_HWUCLU.CLRECO = asInt(value);
} else if (name == "AZSPIN") {
- getLog() << Log::INFO << "Setting use of gloun spin azimuthal correlations on/off (AZSPIN) = " << asInt(value) << endl;
+ MSG_INFO("Setting use of gloun spin azimuthal correlations on/off (AZSPIN) = " << asInt(value));
FC_HWPRAM.AZSPIN = asInt(value);
} else if (name == "ZPRIME") {
- getLog() << Log::INFO << "Setting Z' flag (ZPRIME) = " << asInt(value) << endl;
+ MSG_INFO("Setting Z' flag (ZPRIME) = " << asInt(value));
FC_HWPRAM.ZPRIME = asInt(value);
} else if (name == "HARDME") {
- getLog() << Log::INFO << "Setting hard matrix element flag (HARDME) = " << asInt(value) << endl;
+ MSG_INFO("Setting hard matrix element flag (HARDME) = " << asInt(value));
FC_HWPRAM.HARDME = asInt(value);
} else if (name == "SOFTME") {
- getLog() << Log::INFO << "Setting soft matrix element flag (SOFTME) = " << asInt(value) << endl;
+ MSG_INFO("Setting soft matrix element flag (SOFTME) = " << asInt(value));
FC_HWPRAM.SOFTME = asInt(value);
} else if (name == "NOSPAC") {
- getLog() << Log::INFO << "Setting spacelike showers on/off (NOSPAC) = " << asInt(value) << endl;
+ MSG_INFO("Setting spacelike showers on/off (NOSPAC) = " << asInt(value));
FC_HWPRAM.NOSPAC = asInt(value);
} else if (name == "PRVTX") {
- getLog() << Log::INFO << "Setting inclusion of vertex info in event printout on/off (PRVTX) = " << asInt(value) << endl;
+ MSG_INFO("Setting inclusion of vertex info in event printout on/off (PRVTX) = " << asInt(value));
FC_HWPRAM.PRVTX = asInt(value);
} else if (name == "PRNDEC") {
- getLog() << Log::INFO << "Setting use of decimal in event printout (PRNDEC) = " << asInt(value) << endl;
+ MSG_INFO("Setting use of decimal in event printout (PRNDEC) = " << asInt(value));
FC_HWPRAM.PRNDEC = asInt(value);
} else if (name == "PRNDEF") {
- getLog() << Log::INFO << "Setting stdout printout on/off (PRNDEF) = " << asInt(value) << endl;
+ MSG_INFO("Setting stdout printout on/off (PRNDEF) = " << asInt(value));
FC_HWPRAM.PRNDEF = asInt(value);
} else if (name == "PRNTEX") {
- getLog() << Log::INFO << "Setting LaTeX output on/off (PRNTEX) = " << asInt(value) << endl;
+ MSG_INFO("Setting LaTeX output on/off (PRNTEX) = " << asInt(value));
FC_HWPRAM.PRNTEX = asInt(value);
} else if (name == "PRNWEB") {
- getLog() << Log::INFO << "Setting HTML output on/off (PRNWEB) = " << asInt(value) << endl;
+ MSG_INFO("Setting HTML output on/off (PRNWEB) = " << asInt(value));
FC_HWPRAM.PRNWEB = asInt(value);
} else if (name == "MIXING") {
- getLog() << Log::INFO << "Setting neutral B mixing on/off (MIXING) = " << asInt(value) << endl;
+ MSG_INFO("Setting neutral B mixing on/off (MIXING) = " << asInt(value));
FC_HWDIST.MIXING = asInt(value);
} else if (name == "NOWGT") {
- getLog() << Log::INFO << "Setting unweighted generation (NOWGT) = " << asInt(value) << endl;
+ MSG_INFO("Setting unweighted generation (NOWGT) = " << asInt(value));
FC_HWEVNT.NOWGT = asInt(value);
- } else if (name == "DoHadronisation"){
- getLog() << Log::INFO << "Do Hadronisation = "<<value<<endl;
+ } else if (name == "DoHadronisation") {
+ MSG_INFO("Do hadronisation = " << value);
_doHadronise = asBool(value);//...
-
- }else if(name == "unitWeight"){
- getLog() << Log::INFO << "Using a weight value of 1 in unweighted events = "<<value<<endl;
+ } else if (name == "unitWeight") {
+ MSG_INFO("Using a weight value of 1 in unweighted events = " << value);
_unitWeight = asBool(value);
- // Error
- }else {
- getLog() << Log::ERROR << "Herwig doesn't have a parameter called " << name << endl;
+ // Error
+ } else {
+ MSG_ERROR("Herwig doesn't have a parameter called " << name);
return FAILURE;
}
return SUCCESS;
}
// Run the generator for one event
void FHerwig::makeEvent(HepMC::GenEvent& evt) {
// Loop until event works
while (true) {
Generator::makeEvent(evt);
FC_HWUINE(); // Initialize event
FC_HWEPRO(); // Generate hard subprocess
FC_HWBGEN(); // Generate parton cascade
FC_HWDHOB(); // Do heavy quark decays
if(_doHadronise){
FC_HWCFOR(); // Do cluster formation
FC_HWCDEC(); // Do cluster decays
FC_HWDHAD(); // Do unstable particle decays
FC_HWDHVY(); // Do heavy flavor decays
}
FC_HWMEVT(); // Add soft underlying event
FC_HWUFNE(); // Finish event
if (FC_HWEVNT.IERROR == 0) break;
}
// Fill event from HEPEVT
fillEvent(evt);
// Increment an event counter (Pythia does not count for itself).
_nevt++;
}
/// Fill a HepMC event
void FHerwig::fillEvent(HepMC::GenEvent& evt) {
HepMC::IO_HERWIG hepevt;
hepevt.fill_next_event(&evt);
fixHepMCUnitsFromGeVmm(evt);
evt.set_event_number(_nevt);
//IO_HERWIG::fillEvent does not fill the weight
evt.weights().clear();
if(FC_HWEVNT.NOWGT == 0 || !_unitWeight){
evt.weights().push_back(FC_HWEVNT.EVWGT);
}else{
evt.weights().push_back(1.0);
}
#ifdef HEPMC_HAS_CROSS_SECTION
HepMC::GenCrossSection xsec;
const double xsecval = getCrossSection();
const double xsecerr = getCrossSection() / std::sqrt(_nevt);
- getLog() << Log::DEBUG << "Writing cross-section = " << xsecval << " +- " << xsecerr << endl;
+ MSG_DEBUG("Writing cross-section = " << xsecval << " +- " << xsecerr);
xsec.set_cross_section(xsecval, xsecerr);
evt.set_cross_section(xsec);
#endif
}
/// Return the beam number (0 or 1) of a particle.
/// Return -1 if not a beam particle
int FHerwig::beamNumber(PdgCode pid){
string pName = _particleNames[pid];
string beamName = "";
for (int i = 0; i < 8; ++i) {
beamName += FC_HWBMCH.PART1[i];
}
if (beamName.compare(pName) == 0) return 0;
for (int i = 0; i < 8; ++i) {
beamName += FC_HWBMCH.PART2[i];
}
if (beamName.compare(pName) == 0) return 1;
return -1;
}
string FHerwig::getPDFSet(PdgCode pid){
const int beamNum = beamNumber(pid);
if (beamNum < 0) {
throw runtime_error("PDFSet unknown for PDG code " + pid);
}
string autString = "";
for (int ii = 0; ii != AUTPDF_LENGTH; ++ii){
autString += FC_HWPRCH.AUTPDF[beamNum][ii];
}
return autString;
}
int FHerwig::getPDFMember(PdgCode pid){
const int beamNum = beamNumber(pid);
if (beamNum < 0) {
throw runtime_error("PDFMember unknown for PDG code "+ pid);
}
const int member = FC_HWPRAM.MODPDF[beamNum];
return member;
}
string FHerwig::getPDFScheme(PdgCode pid)const{
return "LHAPDF";
}
const double FHerwig::getCrossSection(){
// _crossSection = FC_HWEVNT.AVWGT * 1000.0;
_crossSection = 1000.0 * FC_HWEVNT.WGTSUM / ((float)FC_HWEVNT.NWGTS);
return _crossSection;
}
/// Tidy up, print out run stats, etc.
void FHerwig::finalize() {
- getLog() << Log::INFO << "Finalising..." << endl;
+ MSG_DEBUG("Finalising...");
FC_HWEFIN();
}
}
// Class factory
extern "C" {
AGILe::Generator* create() { return new AGILe::FHerwig(); }
void destroy(AGILe::Generator* gen) { delete gen; }
}
Index: trunk/src/FHerwig/FHerwigJimmy.cc
===================================================================
--- trunk/src/FHerwig/FHerwigJimmy.cc (revision 773)
+++ trunk/src/FHerwig/FHerwigJimmy.cc (revision 774)
@@ -1,149 +1,149 @@
// -*- C++ -*-
#include "AGILe/FHerwig/FHerwigJimmy.hh"
#include "AGILe/FHerwig/FHerwig.hh"
#include "AGILe/FHerwig/FHerwigWrapper65.hh"
#include "AGILe/FHerwig/JimmyWrapper.hh"
#include "AGILe/Utils.hh"
namespace AGILe {
// Standard constructor
FHerwigJimmy::FHerwigJimmy() {
// NB. FHerwig constructor gets automatically called first.
FC_JMPARM.JMBUG = 0;
// Initialise Jimmy common blocks.
FC_JIMMIN();
}
// Run generator initialization
void FHerwigJimmy::initialize() {
FHerwig::initialize();
// Initialise Jimmy.
if (FC_JMPARM.MSFLAG == 1) {
FC_JMINIT();
}
_initialized = true;
}
// Set parameters.
bool FHerwigJimmy::setParam(const string& name, const string& value) {
Generator::setParam(name, value);
// Integers.
if (name == "JMUEO") {
- getLog() << Log::INFO << "Setting JMUEO = " << asInt(value) << endl;
+ MSG_INFO("Setting JMUEO = " << asInt(value));
FC_JMPARM.JMUEO = asInt(value);
} else if (name == "JMBUG") {
- getLog() << Log::INFO << "Setting JMBUG = " << asInt(value) << endl;
+ MSG_INFO("Setting JMBUG = " << asInt(value));
FC_JMPARM.JMBUG = asInt(value);
} else if (name == "MSFLAG") {
- getLog() << Log::INFO << "Setting MSFLAG = " << asInt(value) << endl;
+ MSG_INFO("Setting MSFLAG = " << asInt(value));
FC_JMPARM.MSFLAG = asInt(value);
}
// Doubles.
else if (name == "PTJIM") {
- getLog() << Log::INFO << "Setting minimum PT for secondary scatters (PTJIM) = " << asDouble(value) << endl;
+ MSG_INFO("Setting minimum PT for secondary scatters (PTJIM) = " << asDouble(value));
FC_JMPARM.PTJIM = asDouble(value);
} else if (name == "PHAD") {
- getLog() << Log::INFO << "Setting hadronic photon inverse probability (PHAD) = " << asDouble(value) << endl;
+ MSG_INFO("Setting hadronic photon inverse probability (PHAD) = " << asDouble(value));
FC_JMPARM.PHAD = asDouble(value);
} else if (name == "PRRAD") {
- getLog() << Log::INFO << "Setting 1/(Proton radius)2 (PRRAD) = " << asDouble(value) << endl;
+ MSG_INFO("Setting 1/(Proton radius)2 (PRRAD) = " << asDouble(value));
FC_JMPARM.JMRAD[72] = asDouble(value);
FC_JMPARM.JMRAD[74] = asDouble(value);
FC_JMPARM.JMRAD[90] = asDouble(value);
FC_JMPARM.JMRAD[92] = asDouble(value);
} else if (name == "PHRAD") {
- getLog() << Log::INFO << "Setting 1/(Photon radius)2 (PRRAD) = " << asDouble(value) << endl;
+ MSG_INFO("Setting 1/(Photon radius)2 (PRRAD) = " << asDouble(value));
FC_JMPARM.JMRAD[58] = asDouble(value);
FC_JMPARM.JMRAD[120] = asDouble(value);
FC_JMPARM.JMRAD[126] = asDouble(value);
}
// Boolean (as int).
else if (name == "ANOMOFF") {
- getLog() << Log::INFO << "Setting MI in anomalous photon events (ANOMOFF) = " << asInt(value) << endl;
+ MSG_INFO("Setting MI in anomalous photon events (ANOMOFF) = " << asInt(value));
FC_JMPARM.ANOMOFF = asInt(value);
}
// Fall back to FHerwig.
else if (FHerwig::setParam(name, value) != SUCCESS) {
- getLog() << Log::ERROR << "HerwigJimmy doesn't have a parameter called " << name << endl;
+ MSG_ERROR("HerwigJimmy doesn't have a parameter called " << name);
return FAILURE;
}
return SUCCESS;
}
// Run the generator for one event
/// @todo Make sub-process execution conditional.
void FHerwigJimmy::makeEvent(HepMC::GenEvent& evt) {
while (true) {
Generator::makeEvent(evt);
int counter(0);
// Repeat the first stages of event generation until multiple
// scattering succeeds (or isn't run at all).
while (true) {
counter += 1;
FC_HWUINE(); // Initialize event
FC_HWEPRO(); // Generate hard subprocess
FC_HWBGEN(); // Generate parton cascade
// Call the multiple scattering routine with the abort flag.
// If abort is returned with value 1 (true), then abandon the
// event. This implementation makes sure that the event generation
// continues if multiple scattering is disabled (MSFLAG != 1)
int abort(0);
if (FC_JMPARM.MSFLAG == 1) FC_HWMSCT(&abort);
// If MS is okay or disabled, escape the loop and
// continue with the decays and hadronisation.
if (abort == 0) {
- getLog() << Log::DEBUG << "Num attempts to make MPI = " << counter << endl;
+ MSG_DEBUG("Num attempts to make MPI = " << counter);
break;
}
// Check for too many attempts to make MPI scatters
if (counter > 100) {
throw runtime_error("Too many attempts to make MPI in HerwigJimmy");
}
}
FC_HWDHOB(); // Do heavy quark decays
if(_doHadronise){
FC_HWCFOR(); // Do cluster formation
FC_HWCDEC(); // Do cluster decays
FC_HWDHAD(); // Do unstable particle decays
FC_HWDHVY(); // Do heavy flavor decays
}
FC_HWMEVT(); // Add soft underlying event
FC_HWUFNE(); // Finish event
if (FC_HWEVNT.IERROR == 0) break;
}
clearEvent(evt);
fillEvent(evt);
}
/// Tidy up, print out run stats, etc.
void FHerwigJimmy::finalize() {
FHerwig::finalize();
if (FC_JMPARM.MSFLAG == 1) {
FC_JMEFIN();
}
}
}
// Class factory
extern "C" {
AGILe::Generator* create() { return new AGILe::FHerwigJimmy(); }
void destroy(AGILe::Generator* gen) { delete gen; }
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Thu, Apr 24, 6:32 AM (1 d, 15 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4870491
Default Alt Text
(50 KB)
Attached To
rAGILESVN agilesvn
Event Timeline
Log In to Comment