CMS 3D CMS Logo

edm::MCatNLOSource Class Reference

#include <GeneratorInterface/MCatNLOInterface/interface/MCatNLOSource.h>

Inheritance diagram for edm::MCatNLOSource:

edm::GeneratedInputSource edm::ConfigurableInputSource edm::InputSource edm::ProductRegistryHelper

List of all members.

Public Member Functions

void endRun (Run &r)
 MCatNLOSource (const ParameterSet &, const InputSourceDescription &)
virtual ~MCatNLOSource ()

Private Member Functions

void clear ()
void createStringFile (const std::string &)
void getVpar ()
bool give (const std::string &iParm)
bool hwgive (const std::string &iParm)
void processHG ()
void processLL ()
void processQQ ()
void processSB ()
void processST ()
void processUnknown (bool)
void processVH ()
void processVV ()
virtual bool produce (Event &e)

Private Attributes

double comenergy
char directory [70]
bool doHardEvents_
bool doMPInteraction_
int eventCounter_
HepMC::GenEvent * evt
double extCrossSect
double extFilterEff
bool herwigHepMCVerbosity_
int herwigVerbosity_
double intCrossSect
std::string lhapdfSetPath_
int maxEventsToPrint_
int mcatnloVerbosity_
int numEvents_
char prefix_bases [10]
char prefix_events [10]
bool printCards_
int processNumber_
std::string stringFileName_
bool useJimmy_


Detailed Description

Definition at line 22 of file MCatNLOSource.h.


Constructor & Destructor Documentation

MCatNLOSource::MCatNLOSource ( const ParameterSet pset,
const InputSourceDescription desc 
)

make sure all quarks-antiquarks have the same mass

Definition at line 46 of file MCatNLOSource.cc.

References funct::abs(), c, comenergy, edm::errors::Configuration, createStringFile(), directory, doHardEvents_, doMPInteraction_, fstbases, edm::ParameterSet::getParameter(), herwigHepMCVerbosity_, herwigVerbosity_, hw6203, hwbosc, hwgive(), hwgupr, hwhard, hwprop, i, if(), int, jimmin, jminit, jmparm, k, lhapdfSetPath_, maxEventsToPrint_, mcatnloVerbosity_, mysetpdfpath, NULL, numEvents_, params, pars, prefix_bases, prefix_events, printCards_, processHG(), processLL(), processNumber_, processQQ(), processSB(), processST(), processUnknown(), processVH(), processVV(), randomEngine, s, setherwpdf, stringFileName_, useJimmy_, vvjin, and x.

00046                                                                                             :
00047   GeneratedInputSource(pset, desc), evt(0), 
00048   doHardEvents_(pset.getUntrackedParameter<bool>("doHardEvents",true)),
00049   mcatnloVerbosity_(pset.getUntrackedParameter<int>("mcatnloVerbosity",0)),
00050   herwigVerbosity_ (pset.getUntrackedParameter<int>("herwigVerbosity",0)),
00051   herwigHepMCVerbosity_ (pset.getUntrackedParameter<bool>("herwigHepMCVerbosity",false)),
00052   maxEventsToPrint_ (pset.getUntrackedParameter<int>("maxEventsToPrint",0)),
00053   comenergy(pset.getUntrackedParameter<double>("comEnergy",14000.)),
00054   processNumber_(pset.getUntrackedParameter<int>("processNumber",0)),
00055   numEvents_(pset.getUntrackedParameter<int>("numHardEvents",maxEvents())),
00056   stringFileName_(pset.getUntrackedParameter<string>("stringFileName",std::string("stringInput"))),
00057   lhapdfSetPath_(pset.getUntrackedParameter<string>("lhapdfSetPath",std::string(""))),
00058   useJimmy_(pset.getUntrackedParameter<bool>("useJimmy",true)),
00059   doMPInteraction_(pset.getUntrackedParameter<bool>("doMPInteraction",true)),
00060   printCards_(pset.getUntrackedParameter<bool>("printCards",true)),
00061   eventCounter_(0),
00062   extCrossSect(pset.getUntrackedParameter<double>("crossSection", -1.)),
00063   extFilterEff(pset.getUntrackedParameter<double>("filterEfficiency", -1.))
00064 {
00065    std::ostringstream header_str;
00066 
00067   header_str << "----------------------------------------------" << "\n";
00068   header_str << "Initializing MCatNLOSource" << "\n";
00069   header_str << "----------------------------------------------" << "\n";
00070   /*check for MC@NLO verbosity mode:
00071                      0 :  print default info
00072                      1 :  + print MC@NLO output
00073                      2 :  + print bases integration information
00074                      3 :  + print spring event generation information
00075     herwigVerbosity Level IPRINT
00076     valid argumets are:  0: print title only
00077                          1: + print selected input parameters
00078                          2: + print table of particle codes and properties
00079                          3: + tables of Sudakov form factors  
00080   */
00081   if(numEvents_<1)
00082     throw edm::Exception(edm::errors::Configuration,"MCatNLOError") 
00083       <<" Number of input events not set: Either use maxEvents input > 0 or numHardEvents > maxEvents output."; 
00084 
00085   fstbases.basesoutput = mcatnloVerbosity_;
00086   header_str << "   MC@NLO verbosity level         = " << fstbases.basesoutput << "\n";
00087   header_str << "   Herwig verbosity level         = " << herwigVerbosity_ << "\n";
00088   header_str << "   HepMC verbosity                = " << herwigHepMCVerbosity_ << "\n";
00089   header_str << "   Number of events to be printed = " << maxEventsToPrint_ << "\n";
00090   if(useJimmy_) {
00091     header_str << "   HERWIG will be using JIMMY for UE/MI." << "\n";
00092     if(doMPInteraction_) 
00093       header_str << "   JIMMY trying to generate multiple interactions." << "\n";
00094   }
00095 
00096   // setting up lhapdf path name from environment varaible (***)
00097   char* lhaPdfs = NULL;
00098   header_str<<"   Trying to find LHAPATH in environment ...";
00099   lhaPdfs = getenv("LHAPATH");
00100   if(lhaPdfs != NULL) {
00101     header_str<<" done.\n";
00102     lhapdfSetPath_=std::string(lhaPdfs);
00103   }
00104   else
00105     header_str<<" failed.\n";
00106 
00107   // set some MC@NLO parameters ...
00108   params.mmmaxevt = numEvents_;
00109   params.mmiproc=processNumber_;
00110   params.mmit1 = 10;
00111   params.mmit2 = 10;
00112   // we only allow for proton-proton collision
00113   params.mmpart1[0]='P';
00114   params.mmpart2[0]='P';
00115   for(int k=1;k<4; ++k) {
00116     params.mmpart1[k]=' ';
00117     params.mmpart2[k]=' ';
00118   }
00119   
00120   // Set MC@NLO parameters in a single ParameterSet
00121   ParameterSet mcatnlo_params = pset.getParameter<ParameterSet>("MCatNLOParameters") ;
00122   vector<string> setNames1 = mcatnlo_params.getParameter<vector<string> >("parameterSets");  
00123   // Loop over the sets
00124   for ( unsigned i=0; i<setNames1.size(); ++i ) {  
00125     string mySet = setNames1[i];
00126     // Read the MC@NLO parameters for each set of parameters
00127     vector<string> pars = mcatnlo_params.getParameter<vector<string> >(mySet);
00128     header_str << "----------------------------------------------" << "\n";
00129     header_str << "Read MC@NLO parameter set " << mySet << "\n";
00130     header_str << "----------------------------------------------" << "\n";
00131 
00132     // set parameters for string input ...
00133     directory[0]='\0';
00134     prefix_bases[0]='\0';
00135     prefix_events[0]='\0';
00136 
00137     // Loop over all parameters and stop in case of mistake
00138     for( vector<string>::const_iterator itPar = pars.begin(); itPar != pars.end(); ++itPar ) {
00139       if(!(this->give(*itPar))) {
00140         throw edm::Exception(edm::errors::Configuration,"MCatNLOError") 
00141           <<" MCatNLO did not accept the following \""<<*itPar<<"\""; 
00142       }
00143       else if(printCards_) {
00144         header_str << "   " << *itPar << "\n";
00145       }
00146     }
00147   }
00148   
00149   header_str << "----------------------------------------------" << "\n";
00150   header_str << "Setting MCatNLO random number generator seed." << "\n";
00151   header_str << "----------------------------------------------" << "\n";
00152   edm::Service<RandomNumberGenerator> rng;
00153   randomEngine = &(rng->getEngine());
00154   int seed = rng->mySeed();
00155   double x[5];
00156   int s = seed;
00157   for (int i=0; i<5; i++) {
00158     s = s * 29943829 - 1;
00159     x[i] = s * (1./(65536.*65536.));
00160   }
00161   // get main seed
00162   long double c;
00163   c = (long double)2111111111.0 * x[3] +
00164     1492.0 * (x[3] = x[2]) +
00165     1776.0 * (x[2] = x[1]) +
00166     5115.0 * (x[1] = x[0]) +
00167     x[4];
00168   x[4] = floorl(c);
00169   x[0] = c - x[4];
00170   x[4] = x[4] * (1./(65536.*65536.));
00171   params.mmiseed = int(x[0]*99999);
00172   header_str << "   RNDEVSEED = "<<params.mmiseed<<"\n";
00173 
00174   // get helper seeds for decay etc ...
00175   c = (long double)2111111111.0 * x[3] +
00176     1492.0 * (x[3] = x[2]) +
00177     1776.0 * (x[2] = x[1]) +
00178     5115.0 * (x[1] = x[0]) +
00179     x[4];
00180   x[4] = floorl(c);
00181   x[0] = c - x[4];
00182   x[4] = x[4] * (1./(65536.*65536.));
00183   params.mmidecseed=int(x[0]*99999);
00184   c = (long double)2111111111.0 * x[3] +
00185     1492.0 * (x[3] = x[2]) +
00186     1776.0 * (x[2] = x[1]) +
00187     5115.0 * (x[1] = x[0]) +
00188     x[4];
00189   x[4] = floorl(c);
00190   x[0] = c - x[4];
00191   x[4] = x[4] * (1./(65536.*65536.));
00192   params.mmifk88seed=int(x[0]*99999);
00193 
00194 
00195   // only LHAPDF available
00196   params.mmgname[0]='L';
00197   params.mmgname[1]='H';
00198   params.mmgname[2]='A';
00199   params.mmgname[3]='P';
00200   params.mmgname[4]='D';
00201   params.mmgname[5]='F';
00202   for(int k=6;k<20; ++k) params.mmgname[k]=' ';
00203     
00204 
00205   params.mmxrenmc=params.mmxren;
00206   params.mmxfhmc=params.mmxfh;
00207 
00208 
00209   // we only allow for proton-proton collision
00210   params.mmpart1[0]='P';
00211   params.mmpart2[0]='P';
00212   for(int k=1;k<4; ++k) {
00213     params.mmpart1[k]=' ';
00214     params.mmpart2[k]=' ';
00215   }
00216   
00217   createStringFile(stringFileName_);
00218 
00219   char pdfpath[232];
00220   int pathlen = lhapdfSetPath_.length();
00221   for(int i=0; i<pathlen; ++i) 
00222   pdfpath[i]=lhapdfSetPath_.at(i);
00223   for(int i=pathlen; i<232; ++i) 
00224   pdfpath[i]=' ';
00225   mysetpdfpath(pdfpath);
00226 
00227   // decide which process to call ...
00228   if(doHardEvents_) {
00229     header_str << "----------------------------------------------" << "\n";
00230     header_str << "Starting hard event generation." << "\n";
00231     header_str << "----------------------------------------------" << "\n";
00232     
00233     if(processNumber_>0) processUnknown(true);
00234   
00235     switch(abs(processNumber_)) {
00236     case(1705):case(1706):case(11705):case(11706): 
00237       processQQ(); 
00238       break;
00239     case(2850):case(2860):case(2870):case(2880):case(12850):case(12860):case(12870):case(12880): 
00240       processVV(); 
00241       break;
00242     case(1600):case(1601):case(1602):case(1603):case(1604):case(1605):case(1606):case(1607):case(1608):case(1609):case(11600):case(11601):
00243     case(11602):case(11603):case(11604):case(11605):case(11606):case(11607):case(11608):case(11609):case(1610):case(1611):case(1612):
00244     case(11610):case(11611):case(11612):case(1699):case(11699): 
00245       processHG(); 
00246       break;
00247     case(1396):case(1397):case(1497):case(1498):case(11396):case(11397):case(11497):case(11498): 
00248       processSB(); 
00249       break;
00250     case(1351):case(1352):case(1353):case(1354):case(1355):case(1356):case(1361):case(1362):case(1363):case(1364):case(1365):case(1366):
00251     case(1371):case(1372):case(1373):case(1374):case(1375):case(1376):case(1461):case(1462):case(1463):case(1471):case(1472):case(1473):
00252     case(11351):case(11352):case(11353):case(11354):case(11355):case(11356):case(11361):case(11362):case(11363):case(11364):case(11365):
00253     case(11366):case(11371):case(11372):case(11373):case(11374):case(11375):case(11376):case(11461):case(11462):case(11463):case(11471):
00254     case(11472):case(11473):
00255       processLL(); 
00256       break;
00257     case(2600):case(2601):case(2602):case(2603):case(2604):case(2605):case(2606):case(2607):case(2608):case(2609):case(2610):case(2611):case(2612):case(2699):
00258     case(12600):case(12601):case(12602):case(12603):case(12604):case(12605):case(12606):case(12607):case(12608):case(12609):case(12610):case(12611):case(12612):
00259     case(12699):case(2700):case(2701):case(2702):case(2703):case(2704):case(2705):case(2706):case(2707):case(2708):case(2709):case(2710):case(2711):
00260     case(2712):case(2799):case(12700):case(12701):case(12702):case(12703):case(12704):case(12705):case(12706):case(12707):case(12708):case(12709):case(12710):
00261     case(12711):case(12712):case(12799): 
00262       processVH(); 
00263       break;
00264     case(2000):case(2001):case(2004):case(2010):case(2011):case(2014):case(2020):case(2021):case(2024):case(12000):case(12001):
00265     case(12004):case(12010):case(12011):case(12014):case(12020):case(12021):case(12024): 
00266       processST(); 
00267       break;
00268     default: 
00269       processUnknown(false); 
00270       break;
00271     }
00272   }
00273   else {
00274     header_str << "----------------------------------------------" << "\n";
00275     header_str << "SKipping hard event generation." << "\n";
00276     header_str << "----------------------------------------------" << "\n";
00277   }
00278   
00279   edm::LogInfo("")<<header_str.str();  
00280 
00281   std::ostringstream header2_str;
00282 
00283   // ==============================  HERWIG PART =========================================
00284 
00285   header2_str << "----------------------------------------------" << "\n";
00286   header2_str << "Initializing Herwig" << "\n";
00287   header2_str << "----------------------------------------------" << "\n";
00288 
00289   hwudat();
00290     
00291   // setting basic parameters ...
00292   hwproc.PBEAM1 = comenergy/2.;
00293   hwproc.PBEAM2 = comenergy/2.;
00294   hwbmch.PART1[0]  = 'P';
00295   hwbmch.PART2[0]  = 'P';
00296   for(int i=1;i<8;++i){
00297     hwbmch.PART1[i]  = ' ';
00298     hwbmch.PART2[i]  = ' ';}
00299   
00300   if(useJimmy_ && doMPInteraction_) jmparm.MSFLAG = 1;
00301 
00302   // initialize other common block ...
00303   hwigin();
00304 
00305   // seting maximum errrors allowed
00306   hwevnt.MAXER = numEvents_/10;
00307   if(hwevnt.MAXER<100) hwevnt.MAXER=100;
00308 
00309 
00310   if(useJimmy_) jimmin();
00311 
00312   // set some 'non-herwig' defaults
00313   hwevnt.MAXPR =  maxEventsToPrint_;           // no printing out of events
00314   hwpram.IPRINT = herwigVerbosity_;            // HERWIG print out mode
00315   hwprop.RMASS[6] = params.mmxmt;              // top mass 
00316   hwproc.IPROC = processNumber_;
00317 
00318   // set HERWIG PDF's to LHAPDF
00319   setherwpdf();
00320 
00321   // setting pdfs to MCatNLO pdf's
00322   hwpram.MODPDF[0]=params.mmidpdfset;
00323   hwpram.MODPDF[1]=params.mmidpdfset;
00324   
00325 
00326   // check process code and set necessary HERWIG parameters
00327   int jpr0 = (abs(hwproc.IPROC)%10000);
00328   int jpr = jpr0/100;
00329   if(jpr == 13 || jpr == 14) {
00330     if(jpr0 == 1396) {
00331       hwhard.EMMIN = params.mmv1massinf;
00332       hwhard.EMMAX = params.mmv1masssup;
00333     }
00334     else if(jpr0 == 1397) {
00335       hwprop.RMASS[200] = params.mmxzm;
00336       hwpram.GAMZ = params.mmxzw;
00337       hwbosc.GAMMAX = params.mmv1gammax;
00338     }
00339     else if(jpr0 == 1497 || jpr0 == 1498) {
00340       hwprop.RMASS[198] = params.mmxwm;
00341       hwpram.GAMW = params.mmxww;
00342       hwbosc.GAMMAX = params.mmv1gammax;
00343     }
00344     else if((jpr0 >= 1350 && jpr0 <= 1356) || (jpr0 >= 1361 && jpr0 <= 1366)) {
00345       hwprop.RMASS[200] = params.mmxzm;
00346       hwpram.GAMZ = params.mmxzw;
00347       hwbosc.GAMMAX = params.mmv1gammax;
00348       hwhard.EMMIN = params.mmv1massinf;
00349       hwhard.EMMAX = params.mmv1masssup;
00350     }
00351     else if(jpr0 >= 1371 && jpr0 <= 1373) {
00352       hwhard.EMMIN = params.mmv1massinf;
00353       hwhard.EMMAX = params.mmv1masssup;
00354     }
00355     else if((jpr0 >= 1450 && jpr0 <= 1453) 
00356             || (jpr0 >= 1461 && jpr0 <= 1463)
00357             || (jpr0 >= 1471 && jpr0 <= 1473)) {
00358       hwprop.RMASS[198] = params.mmxwm;
00359       hwpram.GAMW = params.mmxww;
00360       hwbosc.GAMMAX = params.mmv1gammax;    
00361       hwhard.EMMIN = params.mmv1massinf;
00362       hwhard.EMMAX = params.mmv1masssup;
00363     }
00364   }
00365   else if(jpr == 28) {
00366     hwprop.RMASS[198] = params.mmxwm;
00367     hwpram.GAMW = params.mmxww;
00368     hwprop.RMASS[200] = params.mmxzm;
00369     hwpram.GAMZ = params.mmxzw;
00370     if(params.mmv1gammax>params.mmv2gammax)
00371       hwbosc.GAMMAX = params.mmv1gammax;
00372     else
00373       hwbosc.GAMMAX = params.mmv2gammax;
00374   }
00375   else if(jpr == 16) {
00376     hwprop.RMASS[201] = params.mmxmh0;
00377     hwprop.RMASS[6] = params.mmxmt;
00378   }
00379   else if(jpr == 17) {
00380     if(abs(hwproc.IPROC)==1705 || abs(hwproc.IPROC)==11705) 
00381       hwprop.RMASS[5]= params.mmxmt;
00382     else if (abs(hwproc.IPROC)==1706 || abs(hwproc.IPROC)==11706) {
00383       hwprop.RMASS[6]= params.mmxmt;
00384       hwprop.RMASS[198] = params.mmxwm;
00385     }
00386   }
00387   else if(jpr == 26) {
00388     hwprop.RMASS[198] = params.mmxwm;
00389     hwpram.GAMW = params.mmxww;
00390     hwprop.RMASS[201] = params.mmxmh0;
00391   }
00392   else if(jpr == 27) {
00393     hwprop.RMASS[200] = params.mmxzm;
00394     hwpram.GAMZ = params.mmxzw;
00395     hwprop.RMASS[201] = params.mmxmh0;
00396   }
00397   else if(jpr == 20) {
00398     hwprop.RMASS[6] = params.mmxmt;
00399     hwprop.RMASS[198] = params.mmxwm;
00400   }
00401   else {
00402     throw edm::Exception(edm::errors::Configuration,"MCatNLOError")
00403       <<" bad process ID IPROC "<<hwproc.IPROC<<"!";
00404   }
00405   hwprop.RMASS[1] = params.mmxmass1;
00406   hwprop.RMASS[2] = params.mmxmass2;
00407   hwprop.RMASS[3] = params.mmxmass3;
00408   hwprop.RMASS[4] = params.mmxmass4;
00409   hwprop.RMASS[5] = params.mmxmass5;
00410   hwprop.RMASS[13] = params.mmxmass21;
00411 
00412   // some sensitive defaults
00413   hwpram.SOFTME = false;  
00414   hwevnt.NOWGT = false;
00415   hw6203.NEGWTS = true;
00416   hwpram.LRSUD = 0;
00417   hwpram.LWSUD = 77;
00418   hwpram.NSTRU = 8;
00419   hwpram.PRVTX = false;
00420   hwhard.PTMIN = 0.5;
00421   if(!hwevnt.NOWGT) {
00422     hwevnt.WGTMAX = 1.000001;
00423     hw6203.AVABW = 1.000001;
00424   }
00425   hwprop.RLTIM[6]=1.0e-23;
00426   hwprop.RLTIM[12]=1.0e-23;
00427   if(abs(hwproc.IPROC)==1705 || abs(hwproc.IPROC)==11705) 
00428     hwpram.PSPLT[1] = 0.5;
00429   
00430   // Set HERWIG parameters in a single ParameterSet
00431   ParameterSet herwig_params = 
00432     pset.getParameter<ParameterSet>("HerwigParameters") ;
00433 
00434   // The parameter sets to be read (default, min bias, user ...) in the
00435   // proper order.
00436   vector<string> setNames2 = 
00437     herwig_params.getParameter<vector<string> >("parameterSets");  
00438 
00439   // Loop over the sets
00440   for ( unsigned i=0; i<setNames2.size(); ++i ) {
00441     
00442     string mySet = setNames2[i];
00443 
00444     // Read the HERWIG parameters for each set of parameters
00445     vector<string> pars = 
00446       herwig_params.getParameter<vector<string> >(mySet);
00447 
00448     header2_str << "----------------------------------------------" << "\n";
00449     header2_str << "Read HERWIG parameter set " << mySet << "\n";
00450     header2_str << "----------------------------------------------" << "\n";
00451 
00452     // Loop over all parameters and stop in case of mistake
00453     for( vector<string>::const_iterator  
00454            itPar = pars.begin(); itPar != pars.end(); ++itPar ) {
00455       static string sRandomValueSetting1("NRN(1)");
00456       static string sRandomValueSetting2("NRN(2)");
00457       if( (0 == itPar->compare(0,sRandomValueSetting1.size(),sRandomValueSetting1) )||(0 == itPar->compare(0,sRandomValueSetting2.size(),sRandomValueSetting2) )) {
00458         throw edm::Exception(edm::errors::Configuration,"HerwigError")
00459           <<" attempted to set random number using HERWIG command 'NRN(.)'. This is not allowed.\n  Please use the RandomNumberGeneratorService to set the random number seed.";
00460       }
00461 
00462       if( ! hwgive(*itPar) ) {
00463         throw edm::Exception(edm::errors::Configuration,"HerwigError") 
00464           <<" herwig did not accept the following \""<<*itPar<<"\"";
00465       }
00466       else if(printCards_){
00467                 header2_str << "   " << *itPar << "\n";
00468       }
00469     }
00470   }
00471 
00472 
00473   if(vvjin.QQIN[0]!='\0') {
00474     header2_str<<"   HERWIG will be reading hard events from file: ";
00475     for(int i=0; i<50; ++i) header2_str<<vvjin.QQIN[i];
00476     header2_str<<"\n";
00477   }
00478   else {
00479     throw edm::Exception(edm::errors::Configuration,"MCatNLOError")
00480       <<" <prefix>.events file must be provided.\n Set the QQIN-parameter in the config file.";
00481   }
00482 
00483   if(abs(hwproc.IPROC)<=10000) {
00484     hwgupr.LHSOFT = true;
00485     header2_str <<"   HERWIG will produce underlying event."<<"\n";
00486   }
00487   else {
00488     hwgupr.LHSOFT = false;
00489     header2_str <<"   HERWIG will *not* produce underlying event."<<"\n";
00490   }
00491     
00493   for(int i=1; i<6; ++i) 
00494   hwprop.RMASS[i+6]=hwprop.RMASS[i];
00495 
00496   // set W+ to W-
00497   hwprop.RMASS[199]=hwprop.RMASS[198];
00498   
00499   // setting up herwig RNG seeds NRN(.)
00500   header2_str << "----------------------------------------------" << "\n";
00501   header2_str << "Setting Herwig random number generator seeds" << "\n";
00502   header2_str << "----------------------------------------------" << "\n";
00503   c = (long double)2111111111.0 * x[3] +
00504     1492.0 * (x[3] = x[2]) +
00505     1776.0 * (x[2] = x[1]) +
00506     5115.0 * (x[1] = x[0]) +
00507     x[4];
00508   x[4] = floorl(c);
00509   x[0] = c - x[4];
00510   x[4] = x[4] * (1./(65536.*65536.));
00511   hwevnt.NRN[0]=int(x[0]*99999);
00512   header2_str << "   NRN(1) = "<<hwevnt.NRN[0]<<"\n";
00513   c = (long double)2111111111.0 * x[3] +
00514     1492.0 * (x[3] = x[2]) +
00515     1776.0 * (x[2] = x[1]) +
00516     5115.0 * (x[1] = x[0]) +
00517     x[4];
00518   x[4] = floorl(c);
00519   x[0] = c - x[4];
00520   hwevnt.NRN[1]=int(x[0]*99999);
00521   header2_str << "   NRN(2) = "<<hwevnt.NRN[1]<<"\n";
00522 
00523   hwuinc();
00524 
00525   // *** commented out the seeting stables for PI0 and B hadrons
00526   /*
00527   hwusta("PI0     ",1);
00528   if(jpr == 20) {
00529     hwusta("B+      ",1);
00530     hwusta("B-      ",1);
00531     hwusta("B_D0    ",1);
00532     hwusta("B_DBAR0 ",1);
00533     hwusta("B_S0    ",1);
00534     hwusta("B_SBAR0 ",1);
00535     hwusta("SIGMA_B+",1);
00536     hwusta("LMBDA_B0",1);
00537     hwusta("SIGMA_B-",1);
00538     hwusta("XI_B0   ",1);
00539     hwusta("XI_B-   ",1);
00540     hwusta("OMEGA_B-",1);
00541     hwusta("B_C-    ",1);
00542     hwusta("UPSLON1S",1);
00543     hwusta("SGM_BBR-",1);
00544     hwusta("LMD_BBR0",1);
00545     hwusta("SGM_BBR+",1);
00546     hwusta("XI_BBAR0",1);
00547     hwusta("XI_B+   ",1);
00548     hwusta("OMG_BBR+",1);
00549     hwusta("B_C+    ",1);
00550   }
00551   */
00552 
00553   hweini();
00554 
00555   if(useJimmy_) jminit();
00556 
00557   produces<HepMCProduct>();
00558   produces<GenInfoProduct, edm::InRun>();
00559 
00560   header2_str << "\n----------------------------------------------" << "\n";
00561   header2_str << "Starting event generation" << "\n";
00562   header2_str << "----------------------------------------------" << "\n";
00563   
00564   LogInfo("")<<header2_str.str();
00565 
00566 }

MCatNLOSource::~MCatNLOSource (  )  [virtual]

Definition at line 569 of file MCatNLOSource.cc.

References clear().

00570 {
00571   std::ostringstream footer_str;
00572 
00573   footer_str << "----------------------------------------------" << "\n";
00574   footer_str << "Event generation done" << "\n";
00575   footer_str << "----------------------------------------------" << "\n";
00576 
00577   LogInfo("")<<footer_str.str();
00578   
00579   clear();
00580 }


Member Function Documentation

void MCatNLOSource::clear ( void   )  [private]

Definition at line 582 of file MCatNLOSource.cc.

References jmefin, and useJimmy_.

Referenced by ~MCatNLOSource().

00583 {
00584 
00585   if(useJimmy_) jmefin();
00586 }

void MCatNLOSource::createStringFile ( const std::string &  fileName  )  [private]

Definition at line 1708 of file MCatNLOSource.cc.

References directory, fstbases, i, output(), prefix_bases, prefix_events, and vvjin.

Referenced by MCatNLOSource().

01709 {
01710 
01711   bool endone = false;
01712   for(int i=0; i<100; ++i) {
01713     if(fileName.c_str()[i]=='\0') endone = true;
01714     if(!endone) fstbases.stfilename[i]=fileName.c_str()[i];
01715     else fstbases.stfilename[i]=' ';
01716   }
01717 
01718   // put together ouput-file-strings ...
01719   char string1[81];
01720   char string2[81];
01721   std::ofstream output;
01722   output.open(fileName.c_str());
01723   int position = 0;
01724   while(directory[position]!='\0' && position < 70) {
01725     string1[position]=directory[position];
01726     string2[position]=directory[position];
01727     position++;
01728   }
01729   int position3 = position;
01730   int position2 = 0;
01731   while(prefix_bases[position2]!='\0' && position2<10) {
01732     string1[position3]=prefix_bases[position2];
01733     position3++;
01734     position2++;
01735   }
01736   string1[position3]='\0';
01737   position3 = position;
01738   position2 = 0;
01739   while(prefix_events[position2]!='\0' && position2<10) {
01740     string2[position3]=prefix_events[position2];
01741     position3++;
01742     position2++;
01743   }
01744   string2[position3]='\0';
01745   output.put('\'');
01746   for(int i=0; ;++i) {
01747     if(string1[i]=='\0') {
01748       vvjin.QQIN[i]='.';
01749       vvjin.QQIN[i+1]='e';
01750       vvjin.QQIN[i+2]='v';
01751       vvjin.QQIN[i+3]='e';
01752       vvjin.QQIN[i+4]='n';
01753       vvjin.QQIN[i+5]='t';
01754       vvjin.QQIN[i+6]='s';
01755       vvjin.QQIN[i+7]='\0';
01756       break;
01757     }
01758     else {
01759       output.put(string1[i]);
01760       vvjin.QQIN[i]=string1[i];
01761     }
01762   }
01763   output.put('\'');
01764   output.put('\n');
01765   output.put('\'');
01766   for(int i=0; ;++i) {
01767     if(string2[i]=='\0') break;
01768     else output.put(string2[i]);
01769   }
01770   output.put('\'');
01771   output.put('\n');  
01772   output.close();
01773 }

void MCatNLOSource::endRun ( Run r  )  [virtual]

Reimplemented from edm::ConfigurableInputSource.

Definition at line 1775 of file MCatNLOSource.cc.

References extCrossSect, extFilterEff, intCrossSect, and edm::Run::put().

01775                                   {
01776   hwefin();
01777   auto_ptr<GenInfoProduct> giprod (new GenInfoProduct());
01778   intCrossSect = 1000.0*hwevnt.AVWGT;
01779   giprod->set_cross_section(intCrossSect);
01780   giprod->set_external_cross_section(extCrossSect);
01781   giprod->set_filter_efficiency(extFilterEff);
01782   r.put(giprod);
01783 
01784 }

void MCatNLOSource::getVpar (  )  [private]

Definition at line 1667 of file MCatNLOSource.cc.

References funct::abs(), edm::errors::Configuration, params, and processNumber_.

Referenced by processLL(), processSB(), and processVH().

01668 {
01669   switch(abs(processNumber_)) {
01670   case(1397):case(11397):
01671   case(1351):case(1352):case(1353):case(1354):case(1355):case(1356):
01672   case(1361):case(1362):case(1363):case(1364):case(1365):case(1366):
01673   case(1371):case(1372):case(1373):case(1374):case(1375):case(1376):
01674   case(11351):case(11352):case(11353):case(11354):case(11355):case(11356):
01675   case(11361):case(11362):case(11363):case(11364):case(11365):case(11366):
01676   case(11371):case(11372):case(11373):case(11374):case(11375):case(11376):
01677     params.mmxm0 = params.mmxzm;
01678     params.mmgah = params.mmxzw;
01679     break;
01680 
01681   case(2700):case(2701):case(2702):case(2703):case(2704):case(2705):case(2706):
01682   case(2707):case(2708):case(2709):case(2710):case(2711):case(2712):case(2799):
01683   case(12700):case(12701):case(12702):case(12703):case(12704):case(12705):case(12706):
01684   case(12707):case(12708):case(12709):case(12710):case(12711):case(12712):case(12799):
01685     params.mmxm0v = params.mmxzm;
01686     params.mmgav = params.mmxzw;
01687     break;
01688   case(1497):case(11497):
01689   case(1498):case(11498):
01690   case(1461):case(1462):case(1463):case(1471):case(1472):case(1473):
01691   case(11461):case(11462):case(11463):case(11471):case(11472):case(11473):
01692     params.mmxm0 = params.mmxwm;
01693     params.mmgah = params.mmxww;
01694     break;
01695 
01696   case(2600):case(2601):case(2602):case(2603):case(2604):case(2605):case(2606):
01697   case(2607):case(2608):case(2609):case(2610):case(2611):case(2612):case(2699):
01698   case(12600):case(12601):case(12602):case(12603):case(12604):case(12605):case(12606):
01699   case(12607):case(12608):case(12609):case(12610):case(12611):case(12612):case(12699):
01700     params.mmxm0v = params.mmxwm;
01701     params.mmgav = params.mmxww;
01702     break;
01703   default:
01704     throw edm::Exception(edm::errors::Configuration,"MCatNLOError") <<" No such option in getVpar.";
01705   }
01706 }

bool MCatNLOSource::give ( const std::string &  iParm  )  [private]

Definition at line 1460 of file MCatNLOSource.cc.

References directory, para331, params, prefix_bases, and prefix_events.

01461 {
01462   bool accepted = 1;
01463   if(!strncmp(iParm.c_str(),"ECM",3))
01464     params.mmecm = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01465   else if(!strncmp(iParm.c_str(),"TWIDTH",6))
01466     params.mmtwidth = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01467   else if(!strncmp(iParm.c_str(),"FREN",4))
01468     params.mmxren = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01469   else if(!strncmp(iParm.c_str(),"FFACT",5))
01470     params.mmxfh = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01471   else if(!strncmp(iParm.c_str(),"HVQMASS",7))
01472     params.mmxmt = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);  
01473   else if(!strncmp(iParm.c_str(),"WMASS",5))
01474     params.mmxwm = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01475   else if(!strncmp(iParm.c_str(),"ZMASS",5))
01476     params.mmxzm = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01477   else if(!strncmp(iParm.c_str(),"WWIDTH",6))
01478     params.mmxww = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01479   else if(!strncmp(iParm.c_str(),"ZWIDTH",6))
01480     params.mmxzw = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01481   else if(!strncmp(iParm.c_str(),"HGGMASS",7))
01482     params.mmxmh0 = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01483   else if(!strncmp(iParm.c_str(),"HGGWIDTH",8))
01484     params.mmgah = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01485   else if(!strncmp(iParm.c_str(),"IBORNHGG",8))
01486     params.mmibornex = atoi(&iParm[strcspn(iParm.c_str(),"=")+1]);
01487   else if(!strncmp(iParm.c_str(),"V1GAMMAX",8))
01488     params.mmv1gammax = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01489   else if(!strncmp(iParm.c_str(),"V1MASSINF",9))
01490     params.mmv1massinf = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01491   else if(!strncmp(iParm.c_str(),"V1MASSSUP",9))
01492     params.mmv1masssup = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01493   else if(!strncmp(iParm.c_str(),"V2GAMMAX",8))
01494     params.mmv2gammax = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01495   else if(!strncmp(iParm.c_str(),"V2MASSINF",9))
01496     params.mmv2massinf = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01497   else if(!strncmp(iParm.c_str(),"V2MASSSUP",9))
01498     params.mmv2masssup = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01499   else if(!strncmp(iParm.c_str(),"HGAMMAX",7))
01500     params.mmgammax = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01501   else if(!strncmp(iParm.c_str(),"HMASSINF",8))
01502     params.mmxmhl = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01503   else if(!strncmp(iParm.c_str(),"HMASSSUP",8))
01504     params.mmxmhu = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01505   else if(!strncmp(iParm.c_str(),"T1GAMMAX",8))
01506     para331.mmgammay1 = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01507   else if(!strncmp(iParm.c_str(),"T1MASSINF",9))
01508     para331.mmym1low = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01509   else if(!strncmp(iParm.c_str(),"T1MASSSUP",9))
01510     para331.mmym1upp = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01511   else if(!strncmp(iParm.c_str(),"T2GAMMAX",8))
01512     para331.mmgammay2 = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01513   else if(!strncmp(iParm.c_str(),"T2MASSINF",9))
01514     para331.mmym2low = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01515   else if(!strncmp(iParm.c_str(),"T2MASSSUP",9))
01516     para331.mmym2upp = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01517   else if(!strncmp(iParm.c_str(),"UMASS",5))
01518     params.mmxmass1 = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01519   else if(!strncmp(iParm.c_str(),"DMASS",5))
01520     params.mmxmass2 = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01521   else if(!strncmp(iParm.c_str(),"SMASS",5))
01522     params.mmxmass3 = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01523   else if(!strncmp(iParm.c_str(),"CMASS",5))
01524     params.mmxmass4 = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01525   else if(!strncmp(iParm.c_str(),"BMASS",5))
01526     params.mmxmass5 = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01527   else if(!strncmp(iParm.c_str(),"GMASS",5))
01528     params.mmxmass21 = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01529   else if(!strncmp(iParm.c_str(),"VUD",3))
01530     params.mmvud = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01531   else if(!strncmp(iParm.c_str(),"VUS",3))
01532     params.mmvus = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01533   else if(!strncmp(iParm.c_str(),"VUB",3))
01534     params.mmvub = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01535   else if(!strncmp(iParm.c_str(),"VCD",3))
01536     params.mmvcd = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01537   else if(!strncmp(iParm.c_str(),"VCS",3))
01538     params.mmvcs = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01539   else if(!strncmp(iParm.c_str(),"VCB",3))
01540     params.mmvcb = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01541   else if(!strncmp(iParm.c_str(),"VTD",3))
01542     params.mmvtd = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01543   else if(!strncmp(iParm.c_str(),"VTS",3))
01544     params.mmvts = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01545   else if(!strncmp(iParm.c_str(),"VTB",3))
01546     params.mmvtb = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01547   else if(!strncmp(iParm.c_str(),"AEMRUN",6))
01548     {
01549       int tostart=0;
01550       while(iParm.c_str()[tostart]!='=') tostart++;
01551       tostart++;
01552       while(iParm.c_str()[tostart]==' ') tostart++;
01553 
01554       if(!strncmp(&iParm.c_str()[tostart],"YES",3))
01555         params.mmaemrun = 0;
01556       else if(!strncmp(&iParm.c_str()[tostart],"NO",2))
01557         params.mmaemrun = 1;
01558       else
01559         return false;
01560     }
01561   else if(!strncmp(iParm.c_str(),"IPROC",5)) 
01562     LogWarning("")<<" WARNING: IPROC parameter will be ignored. Use 'untracked int32 processNumber = xxx' to set IPROC.\n";
01563   else if(!strncmp(iParm.c_str(),"IVCODE",6))
01564     params.mmivcode = atoi(&iParm[strcspn(iParm.c_str(),"=")+1]);
01565   else if(!strncmp(iParm.c_str(),"IL1CODE",7))
01566     params.mmil1code = atoi(&iParm[strcspn(iParm.c_str(),"=")+1]);
01567   else if(!strncmp(iParm.c_str(),"IL2CODE",7))
01568     params.mmil2code = atoi(&iParm[strcspn(iParm.c_str(),"=")+1]);
01569   else if(!strncmp(iParm.c_str(),"PART1",5) || !strncmp(iParm.c_str(),"PART2",5))
01570     LogWarning("")<<" WARNING: PARTi parameter will be ignored. Only proton-proton collisions supported. For proton-antiproton please go to Batavia (but hurry).\n";
01571   else if(!strncmp(iParm.c_str(),"PDFGROUP",8)) {
01572     /*
01573     int tostart=0;
01574     while(iParm.c_str()[tostart]!='=') tostart++;
01575     tostart++;
01576     while(iParm.c_str()[tostart]==' ') tostart++;
01577     int todo = 0;
01578     while(iParm.c_str()[todo+tostart]!='\0' && todo < 20) {
01579       params.mmgname[todo]=iParm.c_str()[todo+tostart];
01580       
01581       todo++;
01582       }
01583     for(int i=todo ;i <20; ++i) params.mmgname[i]=' ';
01584     */
01585     LogWarning("")<<" WARNING: PDFGROUP parameter will be ignored. Only LHAPDF sets supported.\n";
01586   }
01587   else if(!strncmp(iParm.c_str(),"PDFSET",6))
01588     params.mmidpdfset = atoi(&iParm[strcspn(iParm.c_str(),"=")+1]);
01589   else if(!strncmp(iParm.c_str(),"LAMBDAFIVE",10))
01590     params.mmxlam = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01591   else if(!strncmp(iParm.c_str(),"SCHEMEOFPDF",11)) {
01592     int tostart=0;
01593     while(iParm.c_str()[tostart]!='=') tostart++;
01594     tostart++;
01595     while(iParm.c_str()[tostart]==' ') tostart++;
01596     params.mmscheme[0]=iParm.c_str()[tostart];
01597     params.mmscheme[1]=iParm.c_str()[tostart+1];
01598   }  
01599   else if(!strncmp(iParm.c_str(),"LAMBDAHERW",10))
01600     params.mmxlamherw = atof(&iParm[strcspn(iParm.c_str(),"=")+1]);
01601   else if(!strncmp(iParm.c_str(),"FPREFIX",7)) {
01602     int tostart=0;
01603     while(iParm.c_str()[tostart]!='=') tostart++;
01604     tostart++;
01605     while(iParm.c_str()[tostart]==' ') tostart++;
01606     int todo = 0;
01607     while(iParm.c_str()[todo+tostart]!='\0' && todo < 10) {
01608       prefix_bases[todo]=iParm.c_str()[todo+tostart];
01609       todo++;
01610     }
01611     if(todo<10) prefix_bases[todo]='\0';
01612   }  
01613   else if(!strncmp(iParm.c_str(),"EVPREFIX",8)) {
01614     int tostart=0;
01615     while(iParm.c_str()[tostart]!='=') tostart++;
01616     tostart++;
01617     while(iParm.c_str()[tostart]==' ') tostart++;
01618     int todo = 0;
01619     while(iParm.c_str()[todo+tostart]!='\0' && todo < 10) {
01620       prefix_events[todo]=iParm.c_str()[todo+tostart];
01621       todo++;
01622     }
01623     if(todo<10) prefix_events[todo]='\0';
01624   }  
01625   else if(!strncmp(iParm.c_str(),"NEVENTS",7)) 
01626     LogWarning("")<<" WARNING: NEVENTS parameter will be ignored. Use 'untracked int32 maxEvents = xxx' to set NEVENTS."<<"\n";
01627   else if(!strncmp(iParm.c_str(),"WGTTYPE",7))
01628     params.mmiwgtnorm = atoi(&iParm[strcspn(iParm.c_str(),"=")+1]);
01629   else if(!strncmp(iParm.c_str(),"RNDEVSEED",9))
01630     //    params.mmiseed = atoi(&iParm[strcspn(iParm.c_str(),"=")+1]);
01631     LogWarning("")<<" WARNING: RNDEVSEED will be ignored. Use the RandomNumberGeneratorService to set RNG seed."<<"\n";    
01632   else if(!strncmp(iParm.c_str(),"BASES",5)) 
01633     LogWarning("")<<" WARNING: BASES parameter will be ignored."<<"\n";
01634   else if(!strncmp(iParm.c_str(),"PDFLIBRARY",10)) 
01635     LogWarning("")<<" WARNING: PDFLIBRARY parameter will be ignored. Only LHAPDF is supported."<<"\n";
01636   else if(!strncmp(iParm.c_str(),"HERPDF",6)) 
01637     LogWarning("")<<" WARNING: HERPDF parameter will be ignored. Use the same PDF as for hard event generation."<<"\n";
01638   else if(!strncmp(iParm.c_str(),"HWPATH",6)) 
01639     LogWarning("")<<" WARNING: HWPATH parameter is not needed and will be ignored." << "\n"; 
01640   else if(!strncmp(iParm.c_str(),"HWUTI",5)) 
01641     LogWarning("")<<" WARNING: HWUTI parameter will be ignored. Herwig utilities not needed."<<"\n";
01642   else if(!strncmp(iParm.c_str(),"HERWIGVER",9)) 
01643     LogWarning("")<<" WARNING: HERWIGVER parameter will be ignored. Herwig library not needed."<<"\n";
01644   else if(!strncmp(iParm.c_str(),"LHAPATH",7)) 
01645     LogWarning("")<<" WARNING: LHAPATH parameter will be ignored. Use the <untracked string lhapdfSetPath> parameter in order to set LHAPDF path."<<"\n";
01646   else if(!strncmp(iParm.c_str(),"LHAOFL",6)) 
01647     LogWarning("")<<" WARNING: LHAOFL parameter will be ignored. *** THIS WILL CHANGE IN FURTHER RELEASE ***"<<"\n";
01648   else if(!strncmp(iParm.c_str(),"PDFPATH",6)) 
01649     LogWarning("")<<" WARNING: PDFPATH parameter will be ignored. Only LHAPDF available."<<"\n";
01650     else if(!strncmp(iParm.c_str(),"SCRTCH",6)) {
01651     int tostart=0;
01652     while(iParm.c_str()[tostart]!='=') tostart++;
01653     tostart++;
01654     while(iParm.c_str()[tostart]==' ') tostart++;
01655     int todo = 0;
01656     while(iParm.c_str()[todo+tostart]!='\0' && todo < 70) {
01657       directory[todo]=iParm.c_str()[todo+tostart];
01658       todo++;
01659     }
01660     if(todo<70) directory[todo]='\0';
01661     }  
01662   
01663   else accepted = false;
01664   return accepted;
01665 }

bool MCatNLOSource::hwgive ( const std::string &  iParm  )  [private]

Definition at line 694 of file MCatNLOSource.cc.

References edm::errors::Configuration, hw6202, hw6203, hw6300, hw6500, hwbosc, hwbrch, hwdist, hwdspn, hwgupr, hwhard, hwminb, hwprop, hwrpar, hwsusy, hwuclu, hwusud, hwuwts, i, jmparm, and vvjin.

Referenced by MCatNLOSource().

00694                                                            {
00695 
00696   bool accepted = 1;
00697 
00698   if(!strncmp(ParameterString.c_str(),"QQIN",4))
00699     {
00700       int tostart=0;
00701       while(ParameterString.c_str()[tostart]!='=') tostart++;
00702       tostart++;
00703       while(ParameterString.c_str()[tostart]==' ') tostart++;
00704       int todo = 0;
00705       while(ParameterString.c_str()[todo+tostart]!='\0') {
00706         vvjin.QQIN[todo]=ParameterString.c_str()[todo+tostart];
00707         todo++;
00708       }
00709       for(int i=todo ;i <50+todo; ++i) vvjin.QQIN[i]=' ';
00710     }
00711   else if(!strncmp(ParameterString.c_str(),"IPROC",5)) {
00712     LogWarning("")<<" WARNING: IPROC parameter will be ignored. Use 'untracked int32 processNumber = xxx' to set IPROC.\n";
00713   }
00714   else if(!strncmp(ParameterString.c_str(),"MAXEV",5)) {
00715     LogWarning("")<<" WARNING: MAXEV parameter will be ignored. Use 'untracked int32 maxEvents = xxx' to set the number of events to be generated.\n";
00716   }  
00717   else if(!strncmp(ParameterString.c_str(),"AUTPDF(",7)){
00718     LogWarning("")<<" WARNING: AUTPDF parameter *not* suported. HERWIG will use LHAPDF only.\n";
00719   }
00720   else if(!strncmp(ParameterString.c_str(),"TAUDEC",6)){
00721     int tostart=0;
00722     while(ParameterString.c_str()[tostart]!='=') tostart++;
00723     tostart++;
00724     while(ParameterString.c_str()[tostart]==' ') tostart++;
00725     int todo = 0;
00726     while(ParameterString.c_str()[todo+tostart]!='\0') {
00727       hwdspn.TAUDEC[todo]=ParameterString.c_str()[todo+tostart];
00728       todo++;
00729     }
00730     if(todo != 6) {
00731       throw edm::Exception(edm::errors::Configuration,"HerwigError")
00732         <<" Attempted to set TAUDEC to "<<hwdspn.TAUDEC<<". This is not allowed.\n Options for TAUDEC are HERWIG and TAUOLA.";
00733     }
00734   }
00735   else if(!strncmp(ParameterString.c_str(),"BDECAY",6)){
00736     LogWarning("")<<" WARNING: BDECAY parameter *not* suported. HERWIG will use default b decay.\n";
00737       }
00738   else if(!strncmp(ParameterString.c_str(),"QCDLAM",6))
00739     hwpram.QCDLAM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00740   else if(!strncmp(ParameterString.c_str(),"VQCUT",5))
00741     hwpram.VQCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00742   else if(!strncmp(ParameterString.c_str(),"VGCUT",5))
00743     hwpram.VGCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00744   else if(!strncmp(ParameterString.c_str(),"VPCUT",5))
00745     hwpram.VPCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00746   else if(!strncmp(ParameterString.c_str(),"CLMAX",5))
00747     hwpram.CLMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00748   else if(!strncmp(ParameterString.c_str(),"CLPOW",5))
00749     hwpram.CLPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00750   else if(!strncmp(ParameterString.c_str(),"PSPLT(1)",8))
00751     hwpram.PSPLT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00752   else if(!strncmp(ParameterString.c_str(),"PSPLT(2)",8))
00753     hwpram.PSPLT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00754   else if(!strncmp(ParameterString.c_str(),"QDIQK",5))
00755     hwpram.QDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00756   else if(!strncmp(ParameterString.c_str(),"PDIQK",5))
00757     hwpram.PDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00758   else if(!strncmp(ParameterString.c_str(),"QSPAC",5))
00759     hwpram.QSPAC = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00760   else if(!strncmp(ParameterString.c_str(),"PTRMS",5))
00761     hwpram.PTRMS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00762   else if(!strncmp(ParameterString.c_str(),"IPRINT",6))
00763     hwpram.IPRINT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00764   else if(!strncmp(ParameterString.c_str(),"PRVTX",5))
00765     hwpram.PRVTX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00766   else if(!strncmp(ParameterString.c_str(),"NPRFMT",6))
00767     hwpram.NPRFMT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00768   else if(!strncmp(ParameterString.c_str(),"PRNDEC",6))
00769     hwpram.PRNDEC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00770   else if(!strncmp(ParameterString.c_str(),"PRNDEF",6))
00771     hwpram.PRNDEF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00772   else if(!strncmp(ParameterString.c_str(),"PRNTEX",6))
00773     hwpram.PRNTEX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00774   else if(!strncmp(ParameterString.c_str(),"PRNWEB",6))
00775     hwpram.PRNWEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00776   else if(!strncmp(ParameterString.c_str(),"MAXPR",5))
00777     hwevnt.MAXPR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00778   else if(!strncmp(ParameterString.c_str(),"MAXER",5))
00779     hwevnt.MAXER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00780   else if(!strncmp(ParameterString.c_str(),"LWEVT",5))
00781     hwevnt.LWEVT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00782   else if(!strncmp(ParameterString.c_str(),"LRSUD",5))
00783     hwpram.LRSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00784   else if(!strncmp(ParameterString.c_str(),"LWSUD",5))
00785     hwpram.LWSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00786   else if(!strncmp(ParameterString.c_str(),"NRN(1)",6))
00787     hwevnt.NRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00788   else if(!strncmp(ParameterString.c_str(),"NRN(2)",6))
00789     hwevnt.NRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00790   else if(!strncmp(ParameterString.c_str(),"WGTMAX",6))
00791     hwevnt.WGTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00792   else if(!strncmp(ParameterString.c_str(),"NOWGT",5))
00793     hwevnt.NOWGT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00794   else if(!strncmp(ParameterString.c_str(),"AVWGT",5))
00795     hwevnt.AVWGT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00796   else if(!strncmp(ParameterString.c_str(),"AZSOFT",6))
00797     hwpram.AZSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00798   else if(!strncmp(ParameterString.c_str(),"AZSPIN",6))
00799     hwpram.AZSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00800   else if(!strncmp(ParameterString.c_str(),"HARDME",6))
00801     hwpram.HARDME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00802   else if(!strncmp(ParameterString.c_str(),"SOFTME",6))
00803     hwpram.SOFTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00804   else if(!strncmp(ParameterString.c_str(),"GCUTME",6))
00805     hwpram.GCUTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00806   else if(!strncmp(ParameterString.c_str(),"NCOLO",5))
00807     hwpram.NCOLO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00808   else if(!strncmp(ParameterString.c_str(),"NFLAV",5))
00809     hwpram.NFLAV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00810   else if(!strncmp(ParameterString.c_str(),"MODPDF(1)",9))
00811     hwpram.MODPDF[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00812   else if(!strncmp(ParameterString.c_str(),"MODPDF(2)",9))
00813     hwpram.MODPDF[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00814   else if(!strncmp(ParameterString.c_str(),"NSTRU",5))
00815     hwpram.NSTRU = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00816   else if(!strncmp(ParameterString.c_str(),"PRSOF",5))
00817     hwpram.PRSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00818   else if(!strncmp(ParameterString.c_str(),"ENSOF",5))
00819     hwpram.ENSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00820   else if(!strncmp(ParameterString.c_str(),"IOPREM",6))
00821     hwpram.IOPREM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00822   else if(!strncmp(ParameterString.c_str(),"BTCLM",5))
00823     hwpram.BTCLM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00824   else if(!strncmp(ParameterString.c_str(),"ETAMIX",6))
00825     hwpram.ETAMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00826   else if(!strncmp(ParameterString.c_str(),"PHIMIX",6))
00827     hwpram.PHIMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00828   else if(!strncmp(ParameterString.c_str(),"H1MIX",5))
00829     hwpram.H1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00830   else if(!strncmp(ParameterString.c_str(),"F0MIX",5))
00831     hwpram.F0MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00832   else if(!strncmp(ParameterString.c_str(),"F1MIX",5))
00833     hwpram.F1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00834   else if(!strncmp(ParameterString.c_str(),"F2MIX",5))
00835     hwpram.F2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00836   else if(!strncmp(ParameterString.c_str(),"ET2MIX",6))
00837     hwpram.ET2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00838   else if(!strncmp(ParameterString.c_str(),"OMHMIX",6))
00839     hwpram.OMHMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00840   else if(!strncmp(ParameterString.c_str(),"PH3MIX",6))
00841     hwpram.PH3MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00842   else if(!strncmp(ParameterString.c_str(),"B1LIM",5))
00843     hwpram.B1LIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00844   else if(!strncmp(ParameterString.c_str(),"CLDIR(1)",8))
00845     hwpram.CLDIR[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00846   else if(!strncmp(ParameterString.c_str(),"CLDIR(2)",8))
00847     hwpram.CLDIR[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00848   else if(!strncmp(ParameterString.c_str(),"CLSMR(1)",8))
00849     hwpram.CLSMR[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00850   else if(!strncmp(ParameterString.c_str(),"CLSMR(2)",8))
00851     hwpram.CLSMR[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00852   else if(!strncmp(ParameterString.c_str(),"RMASS(1)",8))
00853     hwprop.RMASS[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00854   else if(!strncmp(ParameterString.c_str(),"RMASS(2)",8))
00855     hwprop.RMASS[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00856   else if(!strncmp(ParameterString.c_str(),"RMASS(3)",8))
00857     hwprop.RMASS[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00858   else if(!strncmp(ParameterString.c_str(),"RMASS(4)",8))
00859     hwprop.RMASS[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00860   else if(!strncmp(ParameterString.c_str(),"RMASS(5)",8))
00861     hwprop.RMASS[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00862   else if(!strncmp(ParameterString.c_str(),"RMASS(6)",8))
00863     hwprop.RMASS[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00864   else if(!strncmp(ParameterString.c_str(),"RMASS(13)",9))
00865     hwprop.RMASS[13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00866   else if(!strncmp(ParameterString.c_str(),"SUDORD",6))
00867     hwusud.SUDORD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00868   else if(!strncmp(ParameterString.c_str(),"INTER",5))
00869     hwusud.INTER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00870   else if(!strncmp(ParameterString.c_str(),"NEGWTS",6))
00871     hw6203.NEGWTS = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00872   else if(!strncmp(ParameterString.c_str(),"AVABW",5))
00873     hw6203.AVABW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00874   else if(!strncmp(ParameterString.c_str(),"PMBN1",5))
00875     hwminb.PMBN1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00876   else if(!strncmp(ParameterString.c_str(),"PMBN2",5))
00877     hwminb.PMBN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00878   else if(!strncmp(ParameterString.c_str(),"PMBN3",5))
00879     hwminb.PMBN3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00880   else if(!strncmp(ParameterString.c_str(),"PMBK1",5))
00881     hwminb.PMBK1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00882   else if(!strncmp(ParameterString.c_str(),"PMBK2",5))
00883     hwminb.PMBK2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00884   else if(!strncmp(ParameterString.c_str(),"PMBM1",5))
00885     hwminb.PMBM1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00886   else if(!strncmp(ParameterString.c_str(),"PMBM2",5))
00887     hwminb.PMBM2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00888   else if(!strncmp(ParameterString.c_str(),"PMBP1",5))
00889     hwminb.PMBP1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00890   else if(!strncmp(ParameterString.c_str(),"PMBP2",5))
00891     hwminb.PMBP2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00892   else if(!strncmp(ParameterString.c_str(),"PMBP3",5))
00893     hwminb.PMBP3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00894   else if(!strncmp(ParameterString.c_str(),"VMIN2",5))
00895     hwdist.VMIN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00896   else if(!strncmp(ParameterString.c_str(),"EXAG",4))
00897     hwdist.EXAG = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00898   else if(!strncmp(ParameterString.c_str(),"PRECO",5))
00899     hwuclu.PRECO = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00900   else if(!strncmp(ParameterString.c_str(),"CLRECO",6))
00901     hwuclu.CLRECO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00902   else if(!strncmp(ParameterString.c_str(),"PWT(1)",6))
00903     hwuwts.PWT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00904   else if(!strncmp(ParameterString.c_str(),"PWT(2)",6))
00905     hwuwts.PWT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00906   else if(!strncmp(ParameterString.c_str(),"PWT(3)",6))
00907     hwuwts.PWT[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00908   else if(!strncmp(ParameterString.c_str(),"PWT(4)",6))
00909     hwuwts.PWT[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00910   else if(!strncmp(ParameterString.c_str(),"PWT(5)",6))
00911     hwuwts.PWT[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00912   else if(!strncmp(ParameterString.c_str(),"PWT(6)",6))
00913     hwuwts.PWT[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00914   else if(!strncmp(ParameterString.c_str(),"PWT(7)",6))
00915     hwuwts.PWT[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00916   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,0)",12))
00917     hwuwts.REPWT[0][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00918   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,1)",12))
00919     hwuwts.REPWT[0][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00920   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,2)",12))
00921     hwuwts.REPWT[0][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00922   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,3)",12))
00923     hwuwts.REPWT[0][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00924   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,4)",12))
00925     hwuwts.REPWT[0][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00926   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,0)",12))
00927     hwuwts.REPWT[0][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00928   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,1)",12))
00929     hwuwts.REPWT[0][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00930   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,2)",12))
00931     hwuwts.REPWT[0][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00932   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,3)",12))
00933     hwuwts.REPWT[0][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00934   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,4)",12))
00935     hwuwts.REPWT[0][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00936   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,0)",12))
00937     hwuwts.REPWT[0][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00938   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,1)",12))
00939     hwuwts.REPWT[0][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00940   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,2)",12))
00941     hwuwts.REPWT[0][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00942   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,3)",12))
00943     hwuwts.REPWT[0][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00944   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,4)",12))
00945     hwuwts.REPWT[0][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00946   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,0)",12))
00947     hwuwts.REPWT[0][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00948   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,1)",12))
00949     hwuwts.REPWT[0][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00950   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,2)",12))
00951     hwuwts.REPWT[0][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00952   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,3)",12))
00953     hwuwts.REPWT[0][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00954   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,4)",12))
00955     hwuwts.REPWT[0][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00956   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,0)",12))
00957     hwuwts.REPWT[0][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00958   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,1)",12))
00959     hwuwts.REPWT[0][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00960   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,2)",12))
00961     hwuwts.REPWT[0][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00962   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,3)",12))
00963     hwuwts.REPWT[0][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00964   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,4)",12))
00965     hwuwts.REPWT[0][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00966   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,0)",12))
00967     hwuwts.REPWT[1][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00968   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,1)",12))
00969     hwuwts.REPWT[1][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00970   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,2)",12))
00971     hwuwts.REPWT[1][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00972   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,3)",12))
00973     hwuwts.REPWT[1][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00974   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,4)",12))
00975     hwuwts.REPWT[1][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00976   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,0)",12))
00977     hwuwts.REPWT[1][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00978   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,1)",12))
00979     hwuwts.REPWT[1][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00980   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,2)",12))
00981     hwuwts.REPWT[1][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00982   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,3)",12))
00983     hwuwts.REPWT[1][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00984   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,4)",12))
00985     hwuwts.REPWT[1][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00986   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,0)",12))
00987     hwuwts.REPWT[1][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00988   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,1)",12))
00989     hwuwts.REPWT[1][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00990   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,2)",12))
00991     hwuwts.REPWT[1][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00992   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,3)",12))
00993     hwuwts.REPWT[1][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00994   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,4)",12))
00995     hwuwts.REPWT[1][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00996   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,0)",12))
00997     hwuwts.REPWT[1][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00998   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,1)",12))
00999     hwuwts.REPWT[1][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01000   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,2)",12))
01001     hwuwts.REPWT[1][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01002   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,3)",12))
01003     hwuwts.REPWT[1][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01004   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,4)",12))
01005     hwuwts.REPWT[1][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01006   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,0)",12))
01007     hwuwts.REPWT[1][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01008   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,1)",12))
01009     hwuwts.REPWT[1][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01010   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,2)",12))
01011     hwuwts.REPWT[1][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01012   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,3)",12))
01013     hwuwts.REPWT[1][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01014   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,4)",12))
01015     hwuwts.REPWT[1][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01016   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,0)",12))
01017     hwuwts.REPWT[2][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01018   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,1)",12))
01019     hwuwts.REPWT[2][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01020   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,2)",12))
01021     hwuwts.REPWT[2][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01022   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,3)",12))
01023     hwuwts.REPWT[2][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01024   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,4)",12))
01025     hwuwts.REPWT[2][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01026   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,0)",12))
01027     hwuwts.REPWT[2][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01028   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,1)",12))
01029     hwuwts.REPWT[2][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01030   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,2)",12))
01031     hwuwts.REPWT[2][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01032   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,3)",12))
01033     hwuwts.REPWT[2][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01034   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,4)",12))
01035     hwuwts.REPWT[2][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01036   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,0)",12))
01037     hwuwts.REPWT[2][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01038   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,1)",12))
01039     hwuwts.REPWT[2][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01040   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,2)",12))
01041     hwuwts.REPWT[2][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01042   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,3)",12))
01043     hwuwts.REPWT[2][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01044   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,4)",12))
01045     hwuwts.REPWT[2][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01046   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,0)",12))
01047     hwuwts.REPWT[2][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01048   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,1)",12))
01049     hwuwts.REPWT[2][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01050   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,2)",12))
01051     hwuwts.REPWT[2][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01052   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,3)",12))
01053     hwuwts.REPWT[2][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01054   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,4)",12))
01055     hwuwts.REPWT[2][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01056   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,0)",12))
01057     hwuwts.REPWT[2][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01058   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,1)",12))
01059     hwuwts.REPWT[2][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01060   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,2)",12))
01061     hwuwts.REPWT[2][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01062   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,3)",12))
01063     hwuwts.REPWT[2][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01064   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,4)",12))
01065     hwuwts.REPWT[2][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01066   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,0)",12))
01067     hwuwts.REPWT[3][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01068   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,1)",12))
01069     hwuwts.REPWT[3][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01070   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,2)",12))
01071     hwuwts.REPWT[3][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01072   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,3)",12))
01073     hwuwts.REPWT[3][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01074   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,4)",12))
01075     hwuwts.REPWT[3][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01076   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,0)",12))
01077     hwuwts.REPWT[3][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01078   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,1)",12))
01079     hwuwts.REPWT[3][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01080   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,2)",12))
01081     hwuwts.REPWT[3][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01082   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,3)",12))
01083     hwuwts.REPWT[3][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01084   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,4)",12))
01085     hwuwts.REPWT[3][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01086   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,0)",12))
01087     hwuwts.REPWT[3][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01088   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,1)",12))
01089     hwuwts.REPWT[3][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01090   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,2)",12))
01091     hwuwts.REPWT[3][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01092   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,3)",12))
01093     hwuwts.REPWT[3][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01094   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,4)",12))
01095     hwuwts.REPWT[3][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01096   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,0)",12))
01097     hwuwts.REPWT[3][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01098   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,1)",12))
01099     hwuwts.REPWT[3][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01100   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,2)",12))
01101     hwuwts.REPWT[3][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01102   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,3)",12))
01103     hwuwts.REPWT[3][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01104   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,4)",12))
01105     hwuwts.REPWT[3][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01106   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,0)",12))
01107     hwuwts.REPWT[3][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01108   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,1)",12))
01109     hwuwts.REPWT[3][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01110   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,2)",12))
01111     hwuwts.REPWT[3][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01112   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,3)",12))
01113     hwuwts.REPWT[3][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01114   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,4)",12))
01115     hwuwts.REPWT[3][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01116   else if(!strncmp(ParameterString.c_str(),"SNGWT",5))
01117     hwuwts.SNGWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01118   else if(!strncmp(ParameterString.c_str(),"DECWT",5))
01119     hwuwts.DECWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01120   else if(!strncmp(ParameterString.c_str(),"PLTCUT",6))
01121     hwdist.PLTCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01122   else if(!strncmp(ParameterString.c_str(),"VTOCDK(",7)){
01123     // we find the index ...
01124     int ind = atoi(&ParameterString[7]);  
01125     hwprop.VTOCDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
01126   else if(!strncmp(ParameterString.c_str(),"VTORDK(",7)){
01127     // we find the index ...
01128     int ind = atoi(&ParameterString[7]);  
01129     hwprop.VTORDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
01130   else if(!strncmp(ParameterString.c_str(),"PIPSMR",6))
01131     hwdist.PIPSMR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01132   else if(!strncmp(ParameterString.c_str(),"VIPWID(1)",9))
01133     hw6202.VIPWID[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01134   else if(!strncmp(ParameterString.c_str(),"VIPWID(2)",9))
01135     hw6202.VIPWID[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01136   else if(!strncmp(ParameterString.c_str(),"VIPWID(3)",9))
01137     hw6202.VIPWID[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01138   else if(!strncmp(ParameterString.c_str(),"MAXDKL",6))
01139     hwdist.MAXDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01140   else if(!strncmp(ParameterString.c_str(),"IOPDKL",6))
01141     hwdist.IOPDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01142   else if(!strncmp(ParameterString.c_str(),"DXRCYL",6))
01143     hw6202.DXRCYL = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01144   else if(!strncmp(ParameterString.c_str(),"DXZMAX",6))
01145     hw6202.DXZMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01146   else if(!strncmp(ParameterString.c_str(),"DXRSPH",6))
01147     hw6202.DXRSPH = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01148   //  else if(!strncmp(ParameterString.c_str(),"BDECAY",6))
01149   //    hwprch.BDECAY = ParameterString[strcspn(ParameterString.c_str(),"=")+1];  
01150   else if(!strncmp(ParameterString.c_str(),"MIXING",6))
01151     hwdist.MIXING = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01152   else if(!strncmp(ParameterString.c_str(),"XMIX(1)",7))
01153     hwdist.XMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01154   else if(!strncmp(ParameterString.c_str(),"XMIX(2)",7))
01155     hwdist.XMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01156   else if(!strncmp(ParameterString.c_str(),"YMIX(1)",7))
01157     hwdist.YMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01158   else if(!strncmp(ParameterString.c_str(),"YMIX(2)",7))
01159     hwdist.YMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
01160   else if(!strncmp(ParameterString.c_str(),"RMASS(198)",10))
01161     hwprop.RMASS[198] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
01162   else if(!strncmp(ParameterString.c_str(),"RMASS(199)",10))
01163     hwprop.RMASS[199] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
01164   else if(!strncmp(ParameterString.c_str(),"GAMW",4))
01165     hwpram.GAMW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
01166   else if(!strncmp(ParameterString.c_str(),"GAMZ",4))
01167     hwpram.GAMZ = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
01168   else if(!strncmp(ParameterString.c_str(),"RMASS(200)",10))
01169     hwprop.RMASS[200] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01170   else if(!strncmp(ParameterString.c_str(),"WZRFR",5))
01171     hw6202.WZRFR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01172   else if(!strncmp(ParameterString.c_str(),"MODBOS(",7)) {
01173     int ind = atoi(&ParameterString[7]);
01174     hwbosc.MODBOS[ind-1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01175   else if(!strncmp(ParameterString.c_str(),"RMASS(201)",10))
01176     hwprop.RMASS[201] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01177   else if(!strncmp(ParameterString.c_str(),"IOPHIG",6))
01178     hwbosc.IOPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01179   else if(!strncmp(ParameterString.c_str(),"GAMMAX",6))
01180     hwbosc.GAMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01181   else if(!strncmp(ParameterString.c_str(),"ENHANC(",7)) {
01182     int ind = atoi(&ParameterString[7]);
01183     hwbosc.ENHANC[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01184   else if(!strncmp(ParameterString.c_str(),"RMASS(209)",10))
01185     hwprop.RMASS[209] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01186   else if(!strncmp(ParameterString.c_str(),"RMASS(215)",10))
01187     hwprop.RMASS[215] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01188   else if(!strncmp(ParameterString.c_str(),"ALPHEM",6))
01189     hwpram.ALPHEM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01190   else if(!strncmp(ParameterString.c_str(),"SWEIN",5))
01191     hwpram.SWEIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01192   else if(!strncmp(ParameterString.c_str(),"QFCH(",5)){
01193     int ind = atoi(&ParameterString[5]);
01194     hwpram.QFCH[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01195   else if(!strncmp(ParameterString.c_str(),"AFCH(1,",7)){
01196     int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
01197     hwpram.AFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01198   else if(!strncmp(ParameterString.c_str(),"AFCH(2,",7)){
01199     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01200     hwpram.AFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01201   else if(!strncmp(ParameterString.c_str(),"AFCH(3,",7)){
01202     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01203     hwpram.AFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01204   else if(!strncmp(ParameterString.c_str(),"AFCH(4,",7)){
01205     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01206     hwpram.AFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01207   else if(!strncmp(ParameterString.c_str(),"AFCH(5,",7)){
01208     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01209     hwpram.AFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01210   else if(!strncmp(ParameterString.c_str(),"AFCH(6,",7)){
01211     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01212     hwpram.AFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01213   else if(!strncmp(ParameterString.c_str(),"AFCH(7,",7)){
01214     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01215     hwpram.AFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01216   else if(!strncmp(ParameterString.c_str(),"AFCH(8,",7)){
01217     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01218     hwpram.AFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01219   else if(!strncmp(ParameterString.c_str(),"AFCH(9,",7)){
01220     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01221     hwpram.AFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01222   else if(!strncmp(ParameterString.c_str(),"AFCH(10,",8)){
01223     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01224     hwpram.AFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01225   else if(!strncmp(ParameterString.c_str(),"AFCH(11,",8)){
01226     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01227     hwpram.AFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01228   else if(!strncmp(ParameterString.c_str(),"AFCH(12,",8)){
01229     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01230     hwpram.AFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01231   else if(!strncmp(ParameterString.c_str(),"AFCH(13,",8)){
01232     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01233     hwpram.AFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01234   else if(!strncmp(ParameterString.c_str(),"AFCH(14,",8)){
01235     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01236     hwpram.AFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01237   else if(!strncmp(ParameterString.c_str(),"AFCH(15,",8)){
01238     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01239     hwpram.AFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01240   else if(!strncmp(ParameterString.c_str(),"AFCH(16,",8)){
01241     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01242     hwpram.AFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01243   else if(!strncmp(ParameterString.c_str(),"VFCH(1,",7)){
01244     int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
01245     hwpram.VFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01246   else if(!strncmp(ParameterString.c_str(),"VFCH(2,",7)){
01247     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01248     hwpram.VFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01249   else if(!strncmp(ParameterString.c_str(),"VFCH(3,",7)){
01250     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01251     hwpram.VFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01252   else if(!strncmp(ParameterString.c_str(),"VFCH(4,",7)){
01253     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01254     hwpram.VFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01255   else if(!strncmp(ParameterString.c_str(),"VFCH(5,",7)){
01256     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01257     hwpram.VFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01258   else if(!strncmp(ParameterString.c_str(),"VFCH(6,",7)){
01259     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01260     hwpram.VFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01261   else if(!strncmp(ParameterString.c_str(),"VFCH(7,",7)){
01262     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01263     hwpram.VFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01264   else if(!strncmp(ParameterString.c_str(),"VFCH(8,",7)){
01265     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01266     hwpram.VFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01267   else if(!strncmp(ParameterString.c_str(),"VFCH(9,",7)){
01268     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01269     hwpram.VFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01270   else if(!strncmp(ParameterString.c_str(),"VFCH(10,",8)){
01271     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01272     hwpram.VFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01273   else if(!strncmp(ParameterString.c_str(),"VFCH(11,",8)){
01274     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01275     hwpram.VFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01276   else if(!strncmp(ParameterString.c_str(),"VFCH(12,",8)){
01277     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01278     hwpram.VFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01279   else if(!strncmp(ParameterString.c_str(),"VFCH(13,",8)){
01280     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01281     hwpram.VFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01282   else if(!strncmp(ParameterString.c_str(),"VFCH(14,",8)){
01283     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01284     hwpram.VFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01285   else if(!strncmp(ParameterString.c_str(),"VFCH(15,",8)){
01286     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01287     hwpram.VFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01288   else if(!strncmp(ParameterString.c_str(),"VFCH(16,",8)){
01289     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01290     hwpram.VFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01291   else if(!strncmp(ParameterString.c_str(),"ZPRIME",6))
01292     hwpram.ZPRIME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01293   else if(!strncmp(ParameterString.c_str(),"RMASS(202)",10))
01294     hwprop.RMASS[202] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01295   else if(!strncmp(ParameterString.c_str(),"GAMZP",5))
01296     hwpram.GAMZP = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01297   else if(!strncmp(ParameterString.c_str(),"VCKM(",5)) {
01298     int ind1 = atoi(&ParameterString[5]);
01299     if(ind1<1||ind1>3) return 0;
01300     int ind2 = atoi(&ParameterString[7]);
01301     if(ind2<1||ind2>3) return 0;
01302     hwpram.VCKM[ind2][ind1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01303   else if(!strncmp(ParameterString.c_str(),"SCABI",5))
01304     hwpram.SCABI = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01305   else if(!strncmp(ParameterString.c_str(),"EPOLN(",6)) {
01306     int ind = atoi(&ParameterString[6]);
01307     if(ind<1||ind>3) return 0;
01308     hwhard.EPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01309   else if(!strncmp(ParameterString.c_str(),"PPOLN(",6)) {
01310     int ind = atoi(&ParameterString[6]);
01311     if(ind<1||ind>3) return 0;
01312     hwhard.PPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01313   else if(!strncmp(ParameterString.c_str(),"QLIM",4))
01314     hwhard.QLIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01315   else if(!strncmp(ParameterString.c_str(),"THMAX",5))
01316     hwhard.THMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01317   else if(!strncmp(ParameterString.c_str(),"Y4JT",4))
01318     hwhard.Y4JT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01319   else if(!strncmp(ParameterString.c_str(),"DURHAM",6))
01320     hwhard.DURHAM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01321   else if(!strncmp(ParameterString.c_str(),"IOP4JT(1)",9))
01322     hwpram.IOP4JT[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01323   else if(!strncmp(ParameterString.c_str(),"IOP4JT(2)",9))
01324     hwpram.IOP4JT[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01325   else if(!strncmp(ParameterString.c_str(),"BGSHAT",6))
01326     hwhard.BGSHAT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01327   else if(!strncmp(ParameterString.c_str(),"BREIT",5))
01328     hwbrch.BREIT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01329   else if(!strncmp(ParameterString.c_str(),"USECMF",6))
01330     hwbrch.USECMF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01331   else if(!strncmp(ParameterString.c_str(),"NOSPAC",6))
01332     hwpram.NOSPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01333   else if(!strncmp(ParameterString.c_str(),"ISPAC",5))
01334     hwpram.ISPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01335   else if(!strncmp(ParameterString.c_str(),"TMNISR",6))
01336     hwhard.TMNISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01337   else if(!strncmp(ParameterString.c_str(),"ZMXISR",6))
01338     hwhard.ZMXISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01339   else if(!strncmp(ParameterString.c_str(),"ASFIXD",6))
01340     hwhard.ASFIXD = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01341   else if(!strncmp(ParameterString.c_str(),"OMEGA0",6))
01342     hwhard.OMEGA0 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01343   else if(!strncmp(ParameterString.c_str(),"IAPHIG",6))
01344     hwhard.IAPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01345   else if(!strncmp(ParameterString.c_str(),"PHOMAS",6))
01346     hwhard.PHOMAS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01347   else if(!strncmp(ParameterString.c_str(),"PRESPL",6))
01348     hw6500.PRESPL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);            
01349   else if(!strncmp(ParameterString.c_str(),"PTMIN",5))
01350     hwhard.PTMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01351   else if(!strncmp(ParameterString.c_str(),"PTMAX",5))
01352     hwhard.PTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01353   else if(!strncmp(ParameterString.c_str(),"PTPOW",5))
01354     hwhard.PTPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01355   else if(!strncmp(ParameterString.c_str(),"YJMIN",5))
01356     hwhard.YJMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01357   else if(!strncmp(ParameterString.c_str(),"YJMAX",5))
01358     hwhard.YJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01359   else if(!strncmp(ParameterString.c_str(),"EMMIN",5))
01360     hwhard.EMMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01361   else if(!strncmp(ParameterString.c_str(),"EMMAX",5))
01362     hwhard.EMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01363   else if(!strncmp(ParameterString.c_str(),"EMPOW",5))
01364     hwhard.EMPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01365   else if(!strncmp(ParameterString.c_str(),"Q2MIN",5))
01366     hwhard.Q2MIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01367   else if(!strncmp(ParameterString.c_str(),"Q2MAX",5))
01368     hwhard.Q2MAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01369   else if(!strncmp(ParameterString.c_str(),"Q2POW",5))
01370     hwhard.Q2POW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01371   else if(!strncmp(ParameterString.c_str(),"YBMIN",5))
01372     hwhard.YBMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01373   else if(!strncmp(ParameterString.c_str(),"YBMAX",5))
01374     hwhard.YBMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01375   else if(!strncmp(ParameterString.c_str(),"WHMIN",5))
01376     hwhard.WHMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01377   else if(!strncmp(ParameterString.c_str(),"ZJMAX",5))
01378     hwhard.ZJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01379   else if(!strncmp(ParameterString.c_str(),"Q2WWMN",6))
01380     hwhard.Q2WWMN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01381   else if(!strncmp(ParameterString.c_str(),"Q2WWMX",6))
01382     hwhard.Q2WWMX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01383   else if(!strncmp(ParameterString.c_str(),"YWWMIN",6))
01384     hwhard.YWWMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01385   else if(!strncmp(ParameterString.c_str(),"YWWMAX",6))
01386     hwhard.YWWMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01387   else if(!strncmp(ParameterString.c_str(),"CSPEED",6))
01388     hwpram.CSPEED = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01389   else if(!strncmp(ParameterString.c_str(),"GEV2NB",6))
01390     hwpram.GEV2NB = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01391   else if(!strncmp(ParameterString.c_str(),"IBSH",4))
01392     hwhard.IBSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01393   else if(!strncmp(ParameterString.c_str(),"IBRN(1)",7))
01394     hwhard.IBRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01395   else if(!strncmp(ParameterString.c_str(),"IBRN(2)",7))
01396     hwhard.IBRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01397   else if(!strncmp(ParameterString.c_str(),"NQEV",4))
01398     hwusud.NQEV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01399   else if(!strncmp(ParameterString.c_str(),"ZBINM",5))
01400     hwpram.ZBINM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01401   else if(!strncmp(ParameterString.c_str(),"NZBIN",5))
01402     hwpram.NZBIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01403   else if(!strncmp(ParameterString.c_str(),"NBTRY",5))
01404     hwpram.NBTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01405   else if(!strncmp(ParameterString.c_str(),"NCTRY",5))
01406     hwpram.NCTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01407   else if(!strncmp(ParameterString.c_str(),"NETRY",5))
01408     hwpram.NETRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01409   else if(!strncmp(ParameterString.c_str(),"NSTRY",5))
01410     hwpram.NSTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01411   else if(!strncmp(ParameterString.c_str(),"ACCUR",5))
01412     hwusud.ACCUR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01413   else if(!strncmp(ParameterString.c_str(),"RPARTY",6))
01414     hwrpar.RPARTY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01415   else if(!strncmp(ParameterString.c_str(),"SUSYIN",6))
01416     hwsusy.SUSYIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01417   else if(!strncmp(ParameterString.c_str(),"LRSUSY",6))
01418     hw6202.LRSUSY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01419   else if(!strncmp(ParameterString.c_str(),"SYSPIN",6))
01420     hwdspn.SYSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01421   else if(!strncmp(ParameterString.c_str(),"THREEB",6))
01422     hwdspn.THREEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01423   else if(!strncmp(ParameterString.c_str(),"FOURB",5))
01424     hwdspn.FOURB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01425   else if(!strncmp(ParameterString.c_str(),"LHSOFT",6))
01426     hwgupr.LHSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01427   else if(!strncmp(ParameterString.c_str(),"LHGLSF",6))
01428     hwgupr.LHGLSF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01429   else if(!strncmp(ParameterString.c_str(),"OPTM",4))
01430     hw6300.OPTM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01431   else if(!strncmp(ParameterString.c_str(),"IOPSTP",6))
01432     hw6300.IOPSTP = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01433   else if(!strncmp(ParameterString.c_str(),"IOPSH",5))
01434     hw6300.IOPSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01435   else if(!strncmp(ParameterString.c_str(),"JMUEO",5))
01436     jmparm.JMUEO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01437   else if(!strncmp(ParameterString.c_str(),"PTJIM",5))
01438     jmparm.PTJIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01439   else if(!strncmp(ParameterString.c_str(),"JMRAD(73)",9))
01440     jmparm.JMRAD[72] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01441   
01442   else accepted = 0;
01443   
01444   return accepted;
01445 }

void MCatNLOSource::processHG (  )  [private]

Definition at line 588 of file MCatNLOSource.cc.

References hgmain.

Referenced by MCatNLOSource().

00589 {
00590   hgmain();
00591 }

void MCatNLOSource::processLL (  )  [private]

Definition at line 593 of file MCatNLOSource.cc.

References getVpar(), and llmain.

Referenced by MCatNLOSource().

00594 {
00595   getVpar();
00596   llmain();
00597 }

void MCatNLOSource::processQQ (  )  [private]

Definition at line 610 of file MCatNLOSource.cc.

References qqmain.

Referenced by MCatNLOSource().

00611 {
00612   qqmain();
00613 }

void MCatNLOSource::processSB (  )  [private]

Definition at line 615 of file MCatNLOSource.cc.

References getVpar(), processNumber_, and sbmain.

Referenced by MCatNLOSource().

00616 {
00617   if(processNumber_ != -1396) getVpar();
00618   sbmain();
00619 }

void MCatNLOSource::processST (  )  [private]

Definition at line 621 of file MCatNLOSource.cc.

References stmain.

Referenced by MCatNLOSource().

00622 {
00623   stmain();
00624 }

void MCatNLOSource::processUnknown ( bool  positive  )  [private]

Definition at line 626 of file MCatNLOSource.cc.

References edm::errors::Configuration, and processNumber_.

Referenced by MCatNLOSource().

00627 {
00628   if(positive)
00629     throw edm::Exception(edm::errors::Configuration,"MCatNLOError")
00630       <<" Unsupported process "<<processNumber_<<". Use Herwig6Interface for positively valued process ID.";
00631   else
00632     throw edm::Exception(edm::errors::Configuration,"MCatNLOError")
00633       <<" Unsupported process "<<processNumber_<<". Check MCatNLO manuel for allowed process ID.";
00634 }

void MCatNLOSource::processVH (  )  [private]

Definition at line 599 of file MCatNLOSource.cc.

References getVpar(), and vhmain.

Referenced by MCatNLOSource().

00600 {
00601   getVpar();
00602   vhmain();
00603 }

void MCatNLOSource::processVV (  )  [private]

Definition at line 605 of file MCatNLOSource.cc.

References vbmain.

Referenced by MCatNLOSource().

00606 {
00607   vbmain();
00608 }

bool MCatNLOSource::produce ( Event e  )  [private, virtual]

Implements edm::ConfigurableInputSource.

Definition at line 637 of file MCatNLOSource.cc.

References edm::errors::Configuration, conv, doMPInteraction_, edm::errors::EventCorruption, eventCounter_, evt, herwigHepMCVerbosity_, hwmsct_dummy, edm::ConfigurableInputSource::numberEventsInRun(), numEvents_, edm::Event::put(), edm::InputSource::remainingEvents(), and useJimmy_.

00637                                      {
00638 
00639   // check if we run out of hard-events. If yes, throw exception...
00640   eventCounter_++;
00641   if(eventCounter_>numEvents_)
00642     throw edm::Exception(edm::errors::Configuration,"MCatNLOError") <<" No more hard events left. Either increase numHardEvents or use maxEvents { untracked int32 input = N }.";
00643   
00644   hwuine();
00645   hwepro();
00646   hwbgen();
00647   
00648   if(useJimmy_ && doMPInteraction_ && hwevnt.IERROR == 0) {
00649     double eventok = 0.0;
00650     eventok=hwmsct_dummy(&eventok);
00651     if(eventok > 0.5) 
00652       return true;
00653   }
00654   
00655   hwdhob();
00656   hwcfor();
00657   hwcdec();
00658   hwdhad();
00659   hwdhvy();
00660   hwmevt();
00661   hwufne();
00662 
00663   if(hwevnt.IERROR != 0)
00664     return true;
00665 
00666   // herwig common block conversion
00667   HepMC::IO_HERWIG conv;
00668   
00669   HepMC::GenEvent* evt = new HepMC::GenEvent();
00670   bool ok = conv.fill_next_event( evt );
00671   if(!ok) throw edm::Exception(edm::errors::EventCorruption,"HerwigError")
00672     <<" Conversion problems in event nr."<<numberEventsInRun() - remainingEvents() - 1<<".";  
00673 
00674   evt->set_signal_process_id(hwproc.IPROC);  
00675   evt->weights().push_back(hwevnt.EVWGT);
00676   evt->set_event_number(numberEventsInRun() - remainingEvents() - 1);
00677   
00678 
00679   if (herwigHepMCVerbosity_) {
00680     LogInfo("")<< "Event process = " << evt->signal_process_id() <<"\n"
00681          << "----------------------" << "\n";
00682     evt->print();
00683   }
00684 
00685   if(evt) {
00686     auto_ptr<HepMCProduct> bare_product(new HepMCProduct());    
00687     bare_product->addHepMCData(evt );
00688     e.put(bare_product);
00689   }
00690   
00691   return true;
00692 }


Member Data Documentation

double edm::MCatNLOSource::comenergy [private]

Definition at line 60 of file MCatNLOSource.h.

Referenced by MCatNLOSource().

char edm::MCatNLOSource::directory[70] [private]

Definition at line 66 of file MCatNLOSource.h.

Referenced by createStringFile(), give(), and MCatNLOSource().

bool edm::MCatNLOSource::doHardEvents_ [private]

Definition at line 51 of file MCatNLOSource.h.

Referenced by MCatNLOSource().

bool edm::MCatNLOSource::doMPInteraction_ [private]

Definition at line 72 of file MCatNLOSource.h.

Referenced by MCatNLOSource(), and produce().

int edm::MCatNLOSource::eventCounter_ [private]

Definition at line 74 of file MCatNLOSource.h.

Referenced by produce().

HepMC::GenEvent* edm::MCatNLOSource::evt [private]

Definition at line 48 of file MCatNLOSource.h.

Referenced by produce().

double edm::MCatNLOSource::extCrossSect [private]

Definition at line 76 of file MCatNLOSource.h.

Referenced by endRun().

double edm::MCatNLOSource::extFilterEff [private]

Definition at line 78 of file MCatNLOSource.h.

Referenced by endRun().

bool edm::MCatNLOSource::herwigHepMCVerbosity_ [private]

Definition at line 56 of file MCatNLOSource.h.

Referenced by MCatNLOSource(), and produce().

int edm::MCatNLOSource::herwigVerbosity_ [private]

Definition at line 55 of file MCatNLOSource.h.

Referenced by MCatNLOSource().

double edm::MCatNLOSource::intCrossSect [private]

Definition at line 77 of file MCatNLOSource.h.

Referenced by endRun().

std::string edm::MCatNLOSource::lhapdfSetPath_ [private]

Definition at line 70 of file MCatNLOSource.h.

Referenced by MCatNLOSource().

int edm::MCatNLOSource::maxEventsToPrint_ [private]

Definition at line 57 of file MCatNLOSource.h.

Referenced by MCatNLOSource().

int edm::MCatNLOSource::mcatnloVerbosity_ [private]

Definition at line 54 of file MCatNLOSource.h.

Referenced by MCatNLOSource().

int edm::MCatNLOSource::numEvents_ [private]

Definition at line 62 of file MCatNLOSource.h.

Referenced by MCatNLOSource(), and produce().

char edm::MCatNLOSource::prefix_bases[10] [private]

Definition at line 67 of file MCatNLOSource.h.

Referenced by createStringFile(), give(), and MCatNLOSource().

char edm::MCatNLOSource::prefix_events[10] [private]

Definition at line 68 of file MCatNLOSource.h.

Referenced by createStringFile(), give(), and MCatNLOSource().

bool edm::MCatNLOSource::printCards_ [private]

Definition at line 73 of file MCatNLOSource.h.

Referenced by MCatNLOSource().

int edm::MCatNLOSource::processNumber_ [private]

Definition at line 61 of file MCatNLOSource.h.

Referenced by getVpar(), MCatNLOSource(), processSB(), and processUnknown().

std::string edm::MCatNLOSource::stringFileName_ [private]

Definition at line 63 of file MCatNLOSource.h.

Referenced by MCatNLOSource().

bool edm::MCatNLOSource::useJimmy_ [private]

Definition at line 71 of file MCatNLOSource.h.

Referenced by clear(), MCatNLOSource(), and produce().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:41:48 2009 for CMSSW by  doxygen 1.5.4