CMS 3D CMS Logo

edm::Herwig6Producer Class Reference

#include <GeneratorInterface/Herwig6Interface/interface/Herwig6Producer.h>

Inheritance diagram for edm::Herwig6Producer:

edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

void endRun (Run &r)
 Herwig6Producer (const ParameterSet &)
virtual ~Herwig6Producer ()

Private Member Functions

void clear ()
bool hwgive (const std::string &iParm)
virtual void produce (Event &e, const EventSetup &es)
bool setRngSeeds (int)

Private Attributes

double comenergy
bool doMPInteraction_
HepMC::GenEvent * evt
double extCrossSect
double extFilterEff
CLHEP::HepRandomEngine * fRandomEngine
bool herwigHepMCVerbosity_
int herwigLhapdfVerbosity_
int herwigVerbosity_
double intCrossSect
std::string lhapdfSetPath_
int maxEventsToPrint_
unsigned int numberEvents_
int numTrials_
bool printCards_
bool useJimmy_


Detailed Description

Definition at line 25 of file Herwig6Producer.h.


Constructor & Destructor Documentation

Herwig6Producer::Herwig6Producer ( const ParameterSet pset  ) 

Definition at line 52 of file Herwig6Producer.cc.

References comenergy, edm::errors::Configuration, doMPInteraction_, fRandomEngine, edm::ParameterSet::getParameter(), herwigHepMCVerbosity_, herwigLhapdfVerbosity_, herwigVerbosity_, hwgive(), hwprop, i, int, jimmin, jminit, jmparm, lhapdfSetPath_, maxEventsToPrint_, mysetpdfpath, NULL, pars, printCards_, randomEngine, setherwpdf, setRngSeeds(), and useJimmy_.

00052                                                            :
00053   EDProducer(), evt(0), 
00054   herwigVerbosity_ (pset.getUntrackedParameter<int>("herwigVerbosity",0)),
00055   herwigHepMCVerbosity_ (pset.getUntrackedParameter<bool>("herwigHepMCVerbosity",false)),
00056   herwigLhapdfVerbosity_ (pset.getUntrackedParameter<int>("herwigLhapdfVerbosity",0)),
00057   maxEventsToPrint_ (pset.getUntrackedParameter<int>("maxEventsToPrint",0)),
00058   comenergy(pset.getUntrackedParameter<double>("comEnergy",14000.)),
00059   lhapdfSetPath_(pset.getUntrackedParameter<string>("lhapdfSetPath","")),
00060   useJimmy_(pset.getUntrackedParameter<bool>("useJimmy",true)),
00061   doMPInteraction_(pset.getUntrackedParameter<bool>("doMPInteraction",true)),
00062   printCards_(pset.getUntrackedParameter<bool>("printCards",false)),
00063   numTrials_(pset.getUntrackedParameter<int>("numTrialsMPI",100)),
00064   extCrossSect(pset.getUntrackedParameter<double>("crossSection", -1.)),
00065   extFilterEff(pset.getUntrackedParameter<double>("filterEfficiency", -1.)),
00066   numberEvents_(0)
00067 {
00068 
00069   std::ostringstream header_str;
00070 
00071   header_str << "----------------------------------------------\n";
00072   header_str << "Initializing Herwig6Producer\n";
00073   header_str << "----------------------------------------------\n";
00074 
00075   
00076   /* herwigVerbosity Level IPRINT
00077      valid argumets are: 0: print title only
00078                          1: + print selected input parameters
00079                          2: + print table of particle codes and properties
00080                          3: + tables of Sudakov form factors  
00081               *** NOT IMPLEMENTED ***
00082       LHA vebosity:      0=silent 
00083                          1=lowkey (default) 
00084                          2=all 
00085   */
00086 
00087   header_str << "   Herwig verbosity level         = " << herwigVerbosity_ << "\n";
00088   header_str << "   LHAPDF verbosity level         = " << herwigLhapdfVerbosity_ << "\n";
00089   header_str << "   HepMC verbosity                = " << herwigHepMCVerbosity_ << "\n";
00090   header_str << "   Number of events to be printed = " << maxEventsToPrint_ << "\n";
00091 
00092 
00093   if(useJimmy_) {
00094     header_str << "   HERWIG will be using JIMMY for UE/MI." << "\n";
00095     if(doMPInteraction_) 
00096       header_str << "   JIMMY trying to generate multiple interactions." << "\n";
00097   }
00098 
00099   // setting up lhapdf path name from environment varaible (***)
00100   char* lhaPdfs = NULL;
00101   header_str<<"   Trying to find LHAPATH in environment ...";
00102   lhaPdfs = getenv("LHAPATH");
00103   if(lhaPdfs != NULL) {
00104     header_str<<" done.\n";
00105     lhapdfSetPath_=std::string(lhaPdfs);
00106   }
00107   else
00108     header_str<<" failed.\n";
00109 
00110 
00111   // Call hwudat to set up HERWIG block data
00112   hwudat();
00113   
00114 
00115   // Setting basic parameters ...
00116   hwproc.PBEAM1 = comenergy/2.;
00117   hwproc.PBEAM2 = comenergy/2.;
00118   hwbmch.PART1[0]  = 'P';
00119   hwbmch.PART2[0]  = 'P';
00120   for(int i=1;i<8;++i){
00121     hwbmch.PART1[i]  = ' ';
00122     hwbmch.PART2[i]  = ' ';}
00123 //int numEvents = maxEvents();  
00124   int numEvents = 999999999;
00125   if(useJimmy_) jmparm.MSFLAG = 1;
00126 
00127   // initialize other common blocks ...
00128   hwigin();
00129 
00130   hwevnt.MAXER = int(numEvents/10);
00131   if(hwevnt.MAXER<100) hwevnt.MAXER = 100;
00132 
00133   if(useJimmy_) jimmin();
00134   
00135   // set some 'non-herwig' defaults
00136   hwevnt.MAXPR =  maxEventsToPrint_;           // no printing out of events
00137   hwpram.IPRINT = herwigVerbosity_;            // HERWIG print out mode
00138   hwprop.RMASS[6] = 175.0;
00139 
00140   // Set HERWIG parameters in a single ParameterSet
00141   ParameterSet herwig_params = 
00142     pset.getParameter<ParameterSet>("HerwigParameters") ;
00143   
00144   // The parameter sets to be read (default, min bias, user ...) in the proper order.
00145   vector<string> setNames = 
00146     herwig_params.getParameter<vector<string> >("parameterSets");  
00147   
00148   // Loop over the sets
00149   for ( unsigned i=0; i<setNames.size(); ++i ) {    
00150     string mySet = setNames[i];
00151     vector<string> pars = 
00152       herwig_params.getParameter<vector<string> >(mySet);
00153     
00154     header_str << "----------------------------------------------" << "\n";
00155     header_str << "Read HERWIG parameter set " << mySet << "\n";
00156     header_str << "----------------------------------------------" << "\n";
00157     
00158     // Loop over all parameters and stop in case of mistake
00159     for( vector<string>::const_iterator  
00160            itPar = pars.begin(); itPar != pars.end(); ++itPar ) {
00161       static string sRandomValueSetting1("NRN(1)");
00162       static string sRandomValueSetting2("NRN(2)");
00163       if( (0 == itPar->compare(0,sRandomValueSetting1.size(),sRandomValueSetting1) )||(0 == itPar->compare(0,sRandomValueSetting2.size(),sRandomValueSetting2) )) {
00164         throw edm::Exception(edm::errors::Configuration,"HerwigError")
00165           <<" attempted to set random number using pythia command 'NRN(.)'. This is not allowed.\n"
00166             "  Please use the RandomNumberGeneratorService to set the random number seed.";
00167       }
00168       
00169       if( ! hwgive(*itPar) ) {
00170         throw edm::Exception(edm::errors::Configuration,"HerwigError") 
00171           <<" herwig did not accept the following \""<<*itPar<<"\"";
00172       }
00173       else if(printCards_)
00174         header_str << "   " << *itPar << "\n";
00175     }
00176   }
00177 
00178   // setting up herwgi RNG seeds NRN(.)
00179   header_str << "----------------------------------------------" << "\n";
00180   header_str << "Setting Herwig random number generator seeds" << "\n";
00181   header_str << "----------------------------------------------" << "\n";
00182   edm::Service<RandomNumberGenerator> rng;
00183   int wwseed = rng->mySeed();
00184   bool rngok = setRngSeeds(wwseed);
00185   if(!rngok)
00186     throw edm::Exception(edm::errors::Configuration,"HerwigError")
00187       <<" Impossible error in setting 'NRN(.)'.";
00188   header_str << "   NRN(1) = "<<hwevnt.NRN[0]<<"\n";
00189   header_str << "   NRN(2) = "<<hwevnt.NRN[1]<<"\n";
00190   fRandomEngine = &(rng->getEngine());
00191   randomEngine = fRandomEngine;
00192 
00193   // set the LHAPDF grid directory and path
00194   setherwpdf();
00195   char pdfpath[232];
00196   int pathlen = lhapdfSetPath_.length();
00197   for(int i=0; i<pathlen; ++i) 
00198   pdfpath[i]=lhapdfSetPath_.at(i);
00199   for(int i=pathlen; i<232; ++i) 
00200   pdfpath[i]=' ';
00201   mysetpdfpath(pdfpath);
00202 
00203   // HERWIG preparations ...
00204   hwuinc();
00205   hwusta("PI0     ",1);
00206   hweini();
00207   if(useJimmy_) jminit();
00208 
00209   produces<HepMCProduct>();
00210   produces<GenInfoProduct, edm::InRun>();
00211 
00212   header_str << "\n----------------------------------------------" << "\n";
00213   header_str << "Starting event generation" << "\n";
00214   header_str << "----------------------------------------------" << "\n";
00215 
00216   edm::LogInfo("")<<header_str.str(); 
00217 
00218 
00219 }

Herwig6Producer::~Herwig6Producer (  )  [virtual]

Definition at line 222 of file Herwig6Producer.cc.

References clear().

00222                                  {
00223 
00224   std::ostringstream footer_str;
00225 
00226   footer_str << "----------------------------------------------" << "\n";
00227   footer_str << "Event generation done" << "\n";
00228   footer_str << "----------------------------------------------" << "\n";
00229 
00230   LogInfo("") << footer_str.str();
00231 
00232   clear();
00233 }


Member Function Documentation

void Herwig6Producer::clear ( void   )  [private]

Definition at line 235 of file Herwig6Producer.cc.

References jmefin, and useJimmy_.

Referenced by ~Herwig6Producer().

00235                             {
00236   // teminate elementary process
00237   hwefin();
00238   if(useJimmy_) jmefin();
00239 }

void Herwig6Producer::endRun ( Run r  ) 

Definition at line 1098 of file Herwig6Producer.cc.

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

01098                                     {
01099  
01100  auto_ptr<GenInfoProduct> giprod (new GenInfoProduct());
01101 
01102  //-----------------------------------------------
01103  // compute cross-section (internal HERWIG style)
01104  double RNWGT=1./hwevnt.NWGTS;
01105  double AVWGT=hwevnt.WGTSUM*RNWGT;
01106 
01107  intCrossSect=1000.*AVWGT;
01108  //-----------------------------------------------
01109 
01110  giprod->set_cross_section(intCrossSect);
01111  giprod->set_external_cross_section(extCrossSect);
01112  giprod->set_filter_efficiency(extFilterEff);
01113  r.put(giprod);
01114 
01115 }

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

Definition at line 319 of file Herwig6Producer.cc.

References Exception, hw6202, hw6203, hw6300, hw6500, hwbosc, hwbrch, hwdist, hwdspn, hwgupr, hwhard, hwminb, hwprop, hwrpar, hwsusy, hwuclu, hwusud, hwuwts, and jmparm.

Referenced by Herwig6Producer().

00319                                                              {
00320   bool accepted = 1;
00321 
00322  
00323   if(!strncmp(ParameterString.c_str(),"IPROC",5)) {
00324     hwproc.IPROC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00325     if(hwproc.IPROC<0) {
00326       throw cms::Exception("HerwigError")
00327         <<" Attempted to set IPROC to a negative value. This is not allowed.\n Please use the McatnloInterface to cope with negative valued IPROCs.";
00328     }
00329   }
00330   else if(!strncmp(ParameterString.c_str(),"AUTPDF(",7)){
00331     LogWarning("") <<"   WARNING: AUTPDF parameter *not* suported. HERWIG will use LHAPDF."<<"\n";
00332   }
00333   else if(!strncmp(ParameterString.c_str(),"TAUDEC",6)){
00334     int tostart=0;
00335     while(ParameterString.c_str()[tostart]!='=') tostart++;
00336     tostart++;
00337     while(ParameterString.c_str()[tostart]==' ') tostart++;
00338     int todo = 0;
00339     while(ParameterString.c_str()[todo+tostart]!='\0') {
00340       hwdspn.TAUDEC[todo]=ParameterString.c_str()[todo+tostart];
00341       todo++;
00342     }
00343     if(todo != 6) {
00344       throw cms::Exception("HerwigError")
00345         <<" Attempted to set TAUDEC to "<<hwdspn.TAUDEC<<". This is not allowed.\n Options for TAUDEC are HERWIG and TAUOLA.";
00346     }
00347   }
00348   else if(!strncmp(ParameterString.c_str(),"BDECAY",6)){
00349     LogWarning("")<<"   WARNING: BDECAY parameter *not* suported. HERWIG will use default b decay."<<"\n";
00350   }
00351   else if(!strncmp(ParameterString.c_str(),"QCDLAM",6))
00352     hwpram.QCDLAM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00353   else if(!strncmp(ParameterString.c_str(),"VQCUT",5))
00354     hwpram.VQCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00355   else if(!strncmp(ParameterString.c_str(),"VGCUT",5))
00356     hwpram.VGCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00357   else if(!strncmp(ParameterString.c_str(),"VPCUT",5))
00358     hwpram.VPCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00359   else if(!strncmp(ParameterString.c_str(),"CLMAX",5))
00360     hwpram.CLMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00361   else if(!strncmp(ParameterString.c_str(),"CLPOW",5))
00362     hwpram.CLPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00363   else if(!strncmp(ParameterString.c_str(),"PSPLT(1)",8))
00364     hwpram.PSPLT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00365   else if(!strncmp(ParameterString.c_str(),"PSPLT(2)",8))
00366     hwpram.PSPLT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00367   else if(!strncmp(ParameterString.c_str(),"QDIQK",5))
00368     hwpram.QDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00369   else if(!strncmp(ParameterString.c_str(),"PDIQK",5))
00370     hwpram.PDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00371   else if(!strncmp(ParameterString.c_str(),"QSPAC",5))
00372     hwpram.QSPAC = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00373   else if(!strncmp(ParameterString.c_str(),"PTRMS",5))
00374     hwpram.PTRMS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00375   else if(!strncmp(ParameterString.c_str(),"IPRINT",6))
00376     hwpram.IPRINT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00377   else if(!strncmp(ParameterString.c_str(),"PRVTX",5))
00378     hwpram.PRVTX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00379   else if(!strncmp(ParameterString.c_str(),"NPRFMT",6))
00380     hwpram.NPRFMT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00381   else if(!strncmp(ParameterString.c_str(),"PRNDEC",6))
00382     hwpram.PRNDEC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00383   else if(!strncmp(ParameterString.c_str(),"PRNDEF",6))
00384     hwpram.PRNDEF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00385   else if(!strncmp(ParameterString.c_str(),"PRNTEX",6))
00386     hwpram.PRNTEX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00387   else if(!strncmp(ParameterString.c_str(),"PRNWEB",6))
00388     hwpram.PRNWEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00389   else if(!strncmp(ParameterString.c_str(),"MAXPR",5))
00390     hwevnt.MAXPR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00391   else if(!strncmp(ParameterString.c_str(),"MAXER",5))
00392     hwevnt.MAXER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00393   else if(!strncmp(ParameterString.c_str(),"LWEVT",5))
00394     hwevnt.LWEVT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00395   else if(!strncmp(ParameterString.c_str(),"LRSUD",5))
00396     hwpram.LRSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00397   else if(!strncmp(ParameterString.c_str(),"LWSUD",5))
00398     hwpram.LWSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00399   else if(!strncmp(ParameterString.c_str(),"NRN(1)",6))
00400     hwevnt.NRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00401   else if(!strncmp(ParameterString.c_str(),"NRN(2)",6))
00402     hwevnt.NRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00403   else if(!strncmp(ParameterString.c_str(),"WGTMAX",6))
00404     hwevnt.WGTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00405   else if(!strncmp(ParameterString.c_str(),"NOWGT",5))
00406     hwevnt.NOWGT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00407   else if(!strncmp(ParameterString.c_str(),"AVWGT",5))
00408     hwevnt.AVWGT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00409   else if(!strncmp(ParameterString.c_str(),"AZSOFT",6))
00410     hwpram.AZSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00411   else if(!strncmp(ParameterString.c_str(),"AZSPIN",6))
00412     hwpram.AZSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00413   else if(!strncmp(ParameterString.c_str(),"HARDME",6))
00414     hwpram.HARDME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00415   else if(!strncmp(ParameterString.c_str(),"SOFTME",6))
00416     hwpram.SOFTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00417   else if(!strncmp(ParameterString.c_str(),"GCUTME",6))
00418     hwpram.GCUTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00419   else if(!strncmp(ParameterString.c_str(),"NCOLO",5))
00420     hwpram.NCOLO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00421   else if(!strncmp(ParameterString.c_str(),"NFLAV",5))
00422     hwpram.NFLAV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00423   else if(!strncmp(ParameterString.c_str(),"MODPDF(1)",9))
00424     hwpram.MODPDF[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00425   else if(!strncmp(ParameterString.c_str(),"MODPDF(2)",9))
00426     hwpram.MODPDF[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00427   else if(!strncmp(ParameterString.c_str(),"NSTRU",5))
00428     hwpram.NSTRU = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00429   else if(!strncmp(ParameterString.c_str(),"PRSOF",5))
00430     hwpram.PRSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00431   else if(!strncmp(ParameterString.c_str(),"ENSOF",5))
00432     hwpram.ENSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00433   else if(!strncmp(ParameterString.c_str(),"IOPREM",6))
00434     hwpram.IOPREM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00435   else if(!strncmp(ParameterString.c_str(),"BTCLM",5))
00436     hwpram.BTCLM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00437   else if(!strncmp(ParameterString.c_str(),"ETAMIX",6))
00438     hwpram.ETAMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00439   else if(!strncmp(ParameterString.c_str(),"PHIMIX",6))
00440     hwpram.PHIMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00441   else if(!strncmp(ParameterString.c_str(),"H1MIX",5))
00442     hwpram.H1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00443   else if(!strncmp(ParameterString.c_str(),"F0MIX",5))
00444     hwpram.F0MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00445   else if(!strncmp(ParameterString.c_str(),"F1MIX",5))
00446     hwpram.F1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00447   else if(!strncmp(ParameterString.c_str(),"F2MIX",5))
00448     hwpram.F2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00449   else if(!strncmp(ParameterString.c_str(),"ET2MIX",6))
00450     hwpram.ET2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00451   else if(!strncmp(ParameterString.c_str(),"OMHMIX",6))
00452     hwpram.OMHMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00453   else if(!strncmp(ParameterString.c_str(),"PH3MIX",6))
00454     hwpram.PH3MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00455   else if(!strncmp(ParameterString.c_str(),"B1LIM",5))
00456     hwpram.B1LIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00457   else if(!strncmp(ParameterString.c_str(),"CLDIR(1)",8))
00458     hwpram.CLDIR[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00459   else if(!strncmp(ParameterString.c_str(),"CLDIR(2)",8))
00460     hwpram.CLDIR[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00461   else if(!strncmp(ParameterString.c_str(),"CLSMR(1)",8))
00462     hwpram.CLSMR[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00463   else if(!strncmp(ParameterString.c_str(),"CLSMR(2)",8))
00464     hwpram.CLSMR[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00465   else if(!strncmp(ParameterString.c_str(),"RMASS(1)",8))
00466     hwprop.RMASS[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00467   else if(!strncmp(ParameterString.c_str(),"RMASS(2)",8))
00468     hwprop.RMASS[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00469   else if(!strncmp(ParameterString.c_str(),"RMASS(3)",8))
00470     hwprop.RMASS[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00471   else if(!strncmp(ParameterString.c_str(),"RMASS(4)",8))
00472     hwprop.RMASS[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00473   else if(!strncmp(ParameterString.c_str(),"RMASS(5)",8))
00474     hwprop.RMASS[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00475   else if(!strncmp(ParameterString.c_str(),"RMASS(6)",8))
00476     hwprop.RMASS[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00477   else if(!strncmp(ParameterString.c_str(),"RMASS(13)",9))
00478     hwprop.RMASS[13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00479   else if(!strncmp(ParameterString.c_str(),"SUDORD",6))
00480     hwusud.SUDORD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00481   else if(!strncmp(ParameterString.c_str(),"INTER",5))
00482     hwusud.INTER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00483   else if(!strncmp(ParameterString.c_str(),"NEGWTS",6))
00484     hw6203.NEGWTS = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00485   else if(!strncmp(ParameterString.c_str(),"PMBN1",5))
00486     hwminb.PMBN1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00487   else if(!strncmp(ParameterString.c_str(),"PMBN2",5))
00488     hwminb.PMBN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00489   else if(!strncmp(ParameterString.c_str(),"PMBN3",5))
00490     hwminb.PMBN3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00491   else if(!strncmp(ParameterString.c_str(),"PMBK1",5))
00492     hwminb.PMBK1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00493   else if(!strncmp(ParameterString.c_str(),"PMBK2",5))
00494     hwminb.PMBK2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00495   else if(!strncmp(ParameterString.c_str(),"PMBM1",5))
00496     hwminb.PMBM1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00497   else if(!strncmp(ParameterString.c_str(),"PMBM2",5))
00498     hwminb.PMBM2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00499   else if(!strncmp(ParameterString.c_str(),"PMBP1",5))
00500     hwminb.PMBP1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00501   else if(!strncmp(ParameterString.c_str(),"PMBP2",5))
00502     hwminb.PMBP2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00503   else if(!strncmp(ParameterString.c_str(),"PMBP3",5))
00504     hwminb.PMBP3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00505   else if(!strncmp(ParameterString.c_str(),"VMIN2",5))
00506     hwdist.VMIN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00507   else if(!strncmp(ParameterString.c_str(),"EXAG",4))
00508     hwdist.EXAG = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00509   else if(!strncmp(ParameterString.c_str(),"PRECO",5))
00510     hwuclu.PRECO = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00511   else if(!strncmp(ParameterString.c_str(),"CLRECO",6))
00512     hwuclu.CLRECO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00513   else if(!strncmp(ParameterString.c_str(),"PWT(1)",6))
00514     hwuwts.PWT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00515   else if(!strncmp(ParameterString.c_str(),"PWT(2)",6))
00516     hwuwts.PWT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00517   else if(!strncmp(ParameterString.c_str(),"PWT(3)",6))
00518     hwuwts.PWT[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00519   else if(!strncmp(ParameterString.c_str(),"PWT(4)",6))
00520     hwuwts.PWT[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00521   else if(!strncmp(ParameterString.c_str(),"PWT(5)",6))
00522     hwuwts.PWT[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00523   else if(!strncmp(ParameterString.c_str(),"PWT(6)",6))
00524     hwuwts.PWT[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00525   else if(!strncmp(ParameterString.c_str(),"PWT(7)",6))
00526     hwuwts.PWT[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00527   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,0)",12))
00528     hwuwts.REPWT[0][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00529   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,1)",12))
00530     hwuwts.REPWT[0][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00531   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,2)",12))
00532     hwuwts.REPWT[0][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00533   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,3)",12))
00534     hwuwts.REPWT[0][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00535   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,4)",12))
00536     hwuwts.REPWT[0][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00537   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,0)",12))
00538     hwuwts.REPWT[0][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00539   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,1)",12))
00540     hwuwts.REPWT[0][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00541   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,2)",12))
00542     hwuwts.REPWT[0][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00543   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,3)",12))
00544     hwuwts.REPWT[0][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00545   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,4)",12))
00546     hwuwts.REPWT[0][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00547   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,0)",12))
00548     hwuwts.REPWT[0][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00549   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,1)",12))
00550     hwuwts.REPWT[0][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00551   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,2)",12))
00552     hwuwts.REPWT[0][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00553   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,3)",12))
00554     hwuwts.REPWT[0][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00555   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,4)",12))
00556     hwuwts.REPWT[0][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00557   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,0)",12))
00558     hwuwts.REPWT[0][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00559   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,1)",12))
00560     hwuwts.REPWT[0][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00561   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,2)",12))
00562     hwuwts.REPWT[0][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00563   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,3)",12))
00564     hwuwts.REPWT[0][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00565   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,4)",12))
00566     hwuwts.REPWT[0][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00567   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,0)",12))
00568     hwuwts.REPWT[0][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00569   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,1)",12))
00570     hwuwts.REPWT[0][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00571   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,2)",12))
00572     hwuwts.REPWT[0][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00573   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,3)",12))
00574     hwuwts.REPWT[0][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00575   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,4)",12))
00576     hwuwts.REPWT[0][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00577   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,0)",12))
00578     hwuwts.REPWT[1][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00579   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,1)",12))
00580     hwuwts.REPWT[1][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00581   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,2)",12))
00582     hwuwts.REPWT[1][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00583   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,3)",12))
00584     hwuwts.REPWT[1][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00585   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,4)",12))
00586     hwuwts.REPWT[1][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00587   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,0)",12))
00588     hwuwts.REPWT[1][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00589   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,1)",12))
00590     hwuwts.REPWT[1][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00591   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,2)",12))
00592     hwuwts.REPWT[1][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00593   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,3)",12))
00594     hwuwts.REPWT[1][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00595   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,4)",12))
00596     hwuwts.REPWT[1][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00597   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,0)",12))
00598     hwuwts.REPWT[1][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00599   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,1)",12))
00600     hwuwts.REPWT[1][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00601   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,2)",12))
00602     hwuwts.REPWT[1][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00603   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,3)",12))
00604     hwuwts.REPWT[1][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00605   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,4)",12))
00606     hwuwts.REPWT[1][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00607   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,0)",12))
00608     hwuwts.REPWT[1][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00609   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,1)",12))
00610     hwuwts.REPWT[1][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00611   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,2)",12))
00612     hwuwts.REPWT[1][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00613   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,3)",12))
00614     hwuwts.REPWT[1][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00615   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,4)",12))
00616     hwuwts.REPWT[1][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00617   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,0)",12))
00618     hwuwts.REPWT[1][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00619   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,1)",12))
00620     hwuwts.REPWT[1][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00621   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,2)",12))
00622     hwuwts.REPWT[1][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00623   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,3)",12))
00624     hwuwts.REPWT[1][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00625   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,4)",12))
00626     hwuwts.REPWT[1][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00627   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,0)",12))
00628     hwuwts.REPWT[2][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00629   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,1)",12))
00630     hwuwts.REPWT[2][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00631   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,2)",12))
00632     hwuwts.REPWT[2][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00633   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,3)",12))
00634     hwuwts.REPWT[2][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00635   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,4)",12))
00636     hwuwts.REPWT[2][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00637   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,0)",12))
00638     hwuwts.REPWT[2][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00639   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,1)",12))
00640     hwuwts.REPWT[2][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00641   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,2)",12))
00642     hwuwts.REPWT[2][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00643   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,3)",12))
00644     hwuwts.REPWT[2][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00645   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,4)",12))
00646     hwuwts.REPWT[2][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00647   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,0)",12))
00648     hwuwts.REPWT[2][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00649   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,1)",12))
00650     hwuwts.REPWT[2][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00651   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,2)",12))
00652     hwuwts.REPWT[2][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00653   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,3)",12))
00654     hwuwts.REPWT[2][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00655   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,4)",12))
00656     hwuwts.REPWT[2][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00657   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,0)",12))
00658     hwuwts.REPWT[2][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00659   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,1)",12))
00660     hwuwts.REPWT[2][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00661   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,2)",12))
00662     hwuwts.REPWT[2][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00663   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,3)",12))
00664     hwuwts.REPWT[2][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00665   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,4)",12))
00666     hwuwts.REPWT[2][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00667   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,0)",12))
00668     hwuwts.REPWT[2][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00669   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,1)",12))
00670     hwuwts.REPWT[2][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00671   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,2)",12))
00672     hwuwts.REPWT[2][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00673   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,3)",12))
00674     hwuwts.REPWT[2][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00675   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,4)",12))
00676     hwuwts.REPWT[2][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00677   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,0)",12))
00678     hwuwts.REPWT[3][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00679   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,1)",12))
00680     hwuwts.REPWT[3][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00681   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,2)",12))
00682     hwuwts.REPWT[3][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00683   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,3)",12))
00684     hwuwts.REPWT[3][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00685   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,4)",12))
00686     hwuwts.REPWT[3][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00687   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,0)",12))
00688     hwuwts.REPWT[3][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00689   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,1)",12))
00690     hwuwts.REPWT[3][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00691   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,2)",12))
00692     hwuwts.REPWT[3][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00693   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,3)",12))
00694     hwuwts.REPWT[3][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00695   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,4)",12))
00696     hwuwts.REPWT[3][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00697   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,0)",12))
00698     hwuwts.REPWT[3][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00699   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,1)",12))
00700     hwuwts.REPWT[3][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00701   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,2)",12))
00702     hwuwts.REPWT[3][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00703   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,3)",12))
00704     hwuwts.REPWT[3][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00705   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,4)",12))
00706     hwuwts.REPWT[3][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00707   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,0)",12))
00708     hwuwts.REPWT[3][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00709   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,1)",12))
00710     hwuwts.REPWT[3][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00711   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,2)",12))
00712     hwuwts.REPWT[3][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00713   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,3)",12))
00714     hwuwts.REPWT[3][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00715   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,4)",12))
00716     hwuwts.REPWT[3][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00717   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,0)",12))
00718     hwuwts.REPWT[3][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00719   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,1)",12))
00720     hwuwts.REPWT[3][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00721   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,2)",12))
00722     hwuwts.REPWT[3][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00723   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,3)",12))
00724     hwuwts.REPWT[3][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00725   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,4)",12))
00726     hwuwts.REPWT[3][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00727   else if(!strncmp(ParameterString.c_str(),"SNGWT",5))
00728     hwuwts.SNGWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00729   else if(!strncmp(ParameterString.c_str(),"DECWT",5))
00730     hwuwts.DECWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00731   else if(!strncmp(ParameterString.c_str(),"PLTCUT",6))
00732     hwdist.PLTCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00733   else if(!strncmp(ParameterString.c_str(),"VTOCDK(",7)){
00734     // we find the index ...
00735     int ind = atoi(&ParameterString[7]);  
00736     hwprop.VTOCDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
00737   else if(!strncmp(ParameterString.c_str(),"VTORDK(",7)){
00738     // we find the index ...
00739     int ind = atoi(&ParameterString[7]);  
00740     hwprop.VTORDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
00741   else if(!strncmp(ParameterString.c_str(),"PIPSMR",6))
00742     hwdist.PIPSMR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00743   else if(!strncmp(ParameterString.c_str(),"VIPWID(1)",9))
00744     hw6202.VIPWID[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00745   else if(!strncmp(ParameterString.c_str(),"VIPWID(2)",9))
00746     hw6202.VIPWID[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00747   else if(!strncmp(ParameterString.c_str(),"VIPWID(3)",9))
00748     hw6202.VIPWID[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00749   else if(!strncmp(ParameterString.c_str(),"MAXDKL",6))
00750     hwdist.MAXDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00751   else if(!strncmp(ParameterString.c_str(),"IOPDKL",6))
00752     hwdist.IOPDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00753   else if(!strncmp(ParameterString.c_str(),"DXRCYL",6))
00754     hw6202.DXRCYL = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00755   else if(!strncmp(ParameterString.c_str(),"DXZMAX",6))
00756     hw6202.DXZMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00757   else if(!strncmp(ParameterString.c_str(),"DXRSPH",6))
00758     hw6202.DXRSPH = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00759   //  else if(!strncmp(ParameterString.c_str(),"BDECAY",6))
00760   //    hwprch.BDECAY = ParameterString[strcspn(ParameterString.c_str(),"=")+1];  
00761   else if(!strncmp(ParameterString.c_str(),"MIXING",6))
00762     hwdist.MIXING = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00763   else if(!strncmp(ParameterString.c_str(),"XMIX(1)",7))
00764     hwdist.XMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00765   else if(!strncmp(ParameterString.c_str(),"XMIX(2)",7))
00766     hwdist.XMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00767   else if(!strncmp(ParameterString.c_str(),"YMIX(1)",7))
00768     hwdist.YMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00769   else if(!strncmp(ParameterString.c_str(),"YMIX(2)",7))
00770     hwdist.YMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00771   else if(!strncmp(ParameterString.c_str(),"RMASS(198)",10))
00772     hwprop.RMASS[198] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00773   else if(!strncmp(ParameterString.c_str(),"RMASS(199)",10))
00774     hwprop.RMASS[199] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00775   else if(!strncmp(ParameterString.c_str(),"GAMW",4))
00776     hwpram.GAMW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00777   else if(!strncmp(ParameterString.c_str(),"GAMZ",4))
00778     hwpram.GAMZ = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00779   else if(!strncmp(ParameterString.c_str(),"RMASS(200)",10))
00780     hwprop.RMASS[200] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00781   else if(!strncmp(ParameterString.c_str(),"WZRFR",5))
00782     hw6202.WZRFR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00783   else if(!strncmp(ParameterString.c_str(),"MODBOS(",7)) {
00784     int ind = atoi(&ParameterString[7]);
00785     hwbosc.MODBOS[ind-1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00786   else if(!strncmp(ParameterString.c_str(),"RMASS(201)",10))
00787     hwprop.RMASS[201] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00788   else if(!strncmp(ParameterString.c_str(),"IOPHIG",6))
00789     hwbosc.IOPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00790   else if(!strncmp(ParameterString.c_str(),"GAMMAX",6))
00791     hwbosc.GAMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00792   else if(!strncmp(ParameterString.c_str(),"ENHANC(",7)) {
00793     int ind = atoi(&ParameterString[7]);
00794     hwbosc.ENHANC[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00795   else if(!strncmp(ParameterString.c_str(),"RMASS(209)",10))
00796     hwprop.RMASS[209] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00797   else if(!strncmp(ParameterString.c_str(),"RMASS(215)",10))
00798     hwprop.RMASS[215] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00799   else if(!strncmp(ParameterString.c_str(),"ALPHEM",6))
00800     hwpram.ALPHEM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00801   else if(!strncmp(ParameterString.c_str(),"SWEIN",5))
00802     hwpram.SWEIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00803   else if(!strncmp(ParameterString.c_str(),"QFCH(",5)){
00804     int ind = atoi(&ParameterString[5]);
00805     hwpram.QFCH[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00806   else if(!strncmp(ParameterString.c_str(),"AFCH(1,",7)){
00807     int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
00808     hwpram.AFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00809   else if(!strncmp(ParameterString.c_str(),"AFCH(2,",7)){
00810     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00811     hwpram.AFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00812   else if(!strncmp(ParameterString.c_str(),"AFCH(3,",7)){
00813     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00814     hwpram.AFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00815   else if(!strncmp(ParameterString.c_str(),"AFCH(4,",7)){
00816     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00817     hwpram.AFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00818   else if(!strncmp(ParameterString.c_str(),"AFCH(5,",7)){
00819     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00820     hwpram.AFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00821   else if(!strncmp(ParameterString.c_str(),"AFCH(6,",7)){
00822     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00823     hwpram.AFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00824   else if(!strncmp(ParameterString.c_str(),"AFCH(7,",7)){
00825     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00826     hwpram.AFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00827   else if(!strncmp(ParameterString.c_str(),"AFCH(8,",7)){
00828     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00829     hwpram.AFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00830   else if(!strncmp(ParameterString.c_str(),"AFCH(9,",7)){
00831     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00832     hwpram.AFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00833   else if(!strncmp(ParameterString.c_str(),"AFCH(10,",8)){
00834     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00835     hwpram.AFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00836   else if(!strncmp(ParameterString.c_str(),"AFCH(11,",8)){
00837     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00838     hwpram.AFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00839   else if(!strncmp(ParameterString.c_str(),"AFCH(12,",8)){
00840     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00841     hwpram.AFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00842   else if(!strncmp(ParameterString.c_str(),"AFCH(13,",8)){
00843     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00844     hwpram.AFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00845   else if(!strncmp(ParameterString.c_str(),"AFCH(14,",8)){
00846     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00847     hwpram.AFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00848   else if(!strncmp(ParameterString.c_str(),"AFCH(15,",8)){
00849     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00850     hwpram.AFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00851   else if(!strncmp(ParameterString.c_str(),"AFCH(16,",8)){
00852     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00853     hwpram.AFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00854   else if(!strncmp(ParameterString.c_str(),"VFCH(1,",7)){
00855     int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
00856     hwpram.VFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00857   else if(!strncmp(ParameterString.c_str(),"VFCH(2,",7)){
00858     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00859     hwpram.VFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00860   else if(!strncmp(ParameterString.c_str(),"VFCH(3,",7)){
00861     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00862     hwpram.VFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00863   else if(!strncmp(ParameterString.c_str(),"VFCH(4,",7)){
00864     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00865     hwpram.VFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00866   else if(!strncmp(ParameterString.c_str(),"VFCH(5,",7)){
00867     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00868     hwpram.VFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00869   else if(!strncmp(ParameterString.c_str(),"VFCH(6,",7)){
00870     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00871     hwpram.VFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00872   else if(!strncmp(ParameterString.c_str(),"VFCH(7,",7)){
00873     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00874     hwpram.VFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00875   else if(!strncmp(ParameterString.c_str(),"VFCH(8,",7)){
00876     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00877     hwpram.VFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00878   else if(!strncmp(ParameterString.c_str(),"VFCH(9,",7)){
00879     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00880     hwpram.VFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00881   else if(!strncmp(ParameterString.c_str(),"VFCH(10,",8)){
00882     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00883     hwpram.VFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00884   else if(!strncmp(ParameterString.c_str(),"VFCH(11,",8)){
00885     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00886     hwpram.VFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00887   else if(!strncmp(ParameterString.c_str(),"VFCH(12,",8)){
00888     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00889     hwpram.VFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00890   else if(!strncmp(ParameterString.c_str(),"VFCH(13,",8)){
00891     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00892     hwpram.VFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00893   else if(!strncmp(ParameterString.c_str(),"VFCH(14,",8)){
00894     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00895     hwpram.VFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00896   else if(!strncmp(ParameterString.c_str(),"VFCH(15,",8)){
00897     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00898     hwpram.VFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00899   else if(!strncmp(ParameterString.c_str(),"VFCH(16,",8)){
00900     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00901     hwpram.VFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00902   else if(!strncmp(ParameterString.c_str(),"ZPRIME",6))
00903     hwpram.ZPRIME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00904   else if(!strncmp(ParameterString.c_str(),"RMASS(202)",10))
00905     hwprop.RMASS[202] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00906   else if(!strncmp(ParameterString.c_str(),"GAMZP",5))
00907     hwpram.GAMZP = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00908   else if(!strncmp(ParameterString.c_str(),"VCKM(",5)) {
00909     int ind1 = atoi(&ParameterString[5]);
00910     if(ind1<1||ind1>3) return 0;
00911     int ind2 = atoi(&ParameterString[7]);
00912     if(ind2<1||ind2>3) return 0;
00913     hwpram.VCKM[ind2][ind1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00914   else if(!strncmp(ParameterString.c_str(),"SCABI",5))
00915     hwpram.SCABI = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00916   else if(!strncmp(ParameterString.c_str(),"EPOLN(",6)) {
00917     int ind = atoi(&ParameterString[6]);
00918     if(ind<1||ind>3) return 0;
00919     hwhard.EPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00920   else if(!strncmp(ParameterString.c_str(),"PPOLN(",6)) {
00921     int ind = atoi(&ParameterString[6]);
00922     if(ind<1||ind>3) return 0;
00923     hwhard.PPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00924   else if(!strncmp(ParameterString.c_str(),"QLIM",4))
00925     hwhard.QLIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00926   else if(!strncmp(ParameterString.c_str(),"THMAX",5))
00927     hwhard.THMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00928   else if(!strncmp(ParameterString.c_str(),"Y4JT",4))
00929     hwhard.Y4JT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00930   else if(!strncmp(ParameterString.c_str(),"DURHAM",6))
00931     hwhard.DURHAM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00932   else if(!strncmp(ParameterString.c_str(),"IOP4JT(1)",9))
00933     hwpram.IOP4JT[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00934   else if(!strncmp(ParameterString.c_str(),"IOP4JT(2)",9))
00935     hwpram.IOP4JT[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00936   else if(!strncmp(ParameterString.c_str(),"BGSHAT",6))
00937     hwhard.BGSHAT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00938   else if(!strncmp(ParameterString.c_str(),"BREIT",5))
00939     hwbrch.BREIT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00940   else if(!strncmp(ParameterString.c_str(),"USECMF",6))
00941     hwbrch.USECMF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00942   else if(!strncmp(ParameterString.c_str(),"NOSPAC",6))
00943     hwpram.NOSPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00944   else if(!strncmp(ParameterString.c_str(),"ISPAC",5))
00945     hwpram.ISPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00946   else if(!strncmp(ParameterString.c_str(),"TMNISR",6))
00947     hwhard.TMNISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00948   else if(!strncmp(ParameterString.c_str(),"ZMXISR",6))
00949     hwhard.ZMXISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00950   else if(!strncmp(ParameterString.c_str(),"ASFIXD",6))
00951     hwhard.ASFIXD = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00952   else if(!strncmp(ParameterString.c_str(),"OMEGA0",6))
00953     hwhard.OMEGA0 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00954   else if(!strncmp(ParameterString.c_str(),"IAPHIG",6))
00955     hwhard.IAPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00956   else if(!strncmp(ParameterString.c_str(),"PHOMAS",6))
00957     hwhard.PHOMAS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
00958   else if(!strncmp(ParameterString.c_str(),"PRESPL",6))
00959     hw6500.PRESPL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);            
00960   else if(!strncmp(ParameterString.c_str(),"PTMIN",5))
00961     hwhard.PTMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00962   else if(!strncmp(ParameterString.c_str(),"PTMAX",5))
00963     hwhard.PTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00964   else if(!strncmp(ParameterString.c_str(),"PTPOW",5))
00965     hwhard.PTPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00966   else if(!strncmp(ParameterString.c_str(),"YJMIN",5))
00967     hwhard.YJMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00968   else if(!strncmp(ParameterString.c_str(),"YJMAX",5))
00969     hwhard.YJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00970   else if(!strncmp(ParameterString.c_str(),"EMMIN",5))
00971     hwhard.EMMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00972   else if(!strncmp(ParameterString.c_str(),"EMMAX",5))
00973     hwhard.EMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00974   else if(!strncmp(ParameterString.c_str(),"EMPOW",5))
00975     hwhard.EMPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00976   else if(!strncmp(ParameterString.c_str(),"Q2MIN",5))
00977     hwhard.Q2MIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00978   else if(!strncmp(ParameterString.c_str(),"Q2MAX",5))
00979     hwhard.Q2MAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00980   else if(!strncmp(ParameterString.c_str(),"Q2POW",5))
00981     hwhard.Q2POW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00982   else if(!strncmp(ParameterString.c_str(),"YBMIN",5))
00983     hwhard.YBMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00984   else if(!strncmp(ParameterString.c_str(),"YBMAX",5))
00985     hwhard.YBMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00986   else if(!strncmp(ParameterString.c_str(),"WHMIN",5))
00987     hwhard.WHMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00988   else if(!strncmp(ParameterString.c_str(),"ZJMAX",5))
00989     hwhard.ZJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00990   else if(!strncmp(ParameterString.c_str(),"Q2WWMN",6))
00991     hwhard.Q2WWMN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00992   else if(!strncmp(ParameterString.c_str(),"Q2WWMX",6))
00993     hwhard.Q2WWMX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00994   else if(!strncmp(ParameterString.c_str(),"YWWMIN",6))
00995     hwhard.YWWMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00996   else if(!strncmp(ParameterString.c_str(),"YWWMAX",6))
00997     hwhard.YWWMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00998   else if(!strncmp(ParameterString.c_str(),"CSPEED",6))
00999     hwpram.CSPEED = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01000   else if(!strncmp(ParameterString.c_str(),"GEV2NB",6))
01001     hwpram.GEV2NB = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01002   else if(!strncmp(ParameterString.c_str(),"IBSH",4))
01003     hwhard.IBSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01004   else if(!strncmp(ParameterString.c_str(),"IBRN(1)",7))
01005     hwhard.IBRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01006   else if(!strncmp(ParameterString.c_str(),"IBRN(2)",7))
01007     hwhard.IBRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01008   else if(!strncmp(ParameterString.c_str(),"NQEV",4))
01009     hwusud.NQEV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01010   else if(!strncmp(ParameterString.c_str(),"ZBINM",5))
01011     hwpram.ZBINM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01012   else if(!strncmp(ParameterString.c_str(),"NZBIN",5))
01013     hwpram.NZBIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01014   else if(!strncmp(ParameterString.c_str(),"NBTRY",5))
01015     hwpram.NBTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01016   else if(!strncmp(ParameterString.c_str(),"NCTRY",5))
01017     hwpram.NCTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01018   else if(!strncmp(ParameterString.c_str(),"NETRY",5))
01019     hwpram.NETRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01020   else if(!strncmp(ParameterString.c_str(),"NSTRY",5))
01021     hwpram.NSTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01022   else if(!strncmp(ParameterString.c_str(),"ACCUR",5))
01023     hwusud.ACCUR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01024   else if(!strncmp(ParameterString.c_str(),"RPARTY",6))
01025     hwrpar.RPARTY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01026   else if(!strncmp(ParameterString.c_str(),"SUSYIN",6))
01027     hwsusy.SUSYIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01028   else if(!strncmp(ParameterString.c_str(),"LRSUSY",6))
01029     hw6202.LRSUSY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01030   else if(!strncmp(ParameterString.c_str(),"SYSPIN",6))
01031     hwdspn.SYSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01032   else if(!strncmp(ParameterString.c_str(),"THREEB",6))
01033     hwdspn.THREEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01034   else if(!strncmp(ParameterString.c_str(),"FOURB",5))
01035     hwdspn.FOURB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01036   else if(!strncmp(ParameterString.c_str(),"LHSOFT",6))
01037     hwgupr.LHSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01038   else if(!strncmp(ParameterString.c_str(),"LHGLSF",6))
01039     hwgupr.LHGLSF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01040   else if(!strncmp(ParameterString.c_str(),"OPTM",4))
01041     hw6300.OPTM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01042   else if(!strncmp(ParameterString.c_str(),"IOPSTP",6))
01043     hw6300.IOPSTP = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01044   else if(!strncmp(ParameterString.c_str(),"IOPSH",5))
01045     hw6300.IOPSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01046   else if(!strncmp(ParameterString.c_str(),"JMUEO",5))
01047     jmparm.JMUEO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01048   else if(!strncmp(ParameterString.c_str(),"PTJIM",5))
01049     jmparm.PTJIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01050   else if(!strncmp(ParameterString.c_str(),"JMRAD(73)",9))
01051     jmparm.JMRAD[72] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01052 
01053   else accepted = 0;
01054 
01055   return accepted;
01056 }

void Herwig6Producer::produce ( Event e,
const EventSetup es 
) [private, virtual]

Implements edm::EDProducer.

Definition at line 242 of file Herwig6Producer.cc.

References conv, counter(), doMPInteraction_, edm::errors::EventCorruption, evt, except, Exception, herwigHepMCVerbosity_, hwmsct_dummy, numberEvents_, numTrials_, edm::Event::put(), and useJimmy_.

00242                                                              {
00243 
00244   int counter = 0;
00245   double mpiok = 1.0;
00246 
00247   while(mpiok > 0.5 && counter < numTrials_) {
00248 
00249     // call herwig routines to create HEPEVT
00250     hwuine();
00251     hwepro();
00252     hwbgen();  
00253 
00254     // call jimmy ... only if event is not killed yet by HERWIG
00255     if(useJimmy_ && doMPInteraction_ && hwevnt.IERROR==0)
00256       mpiok = hwmsct_dummy(1.1);
00257     else mpiok = 0.0;
00258     counter++;
00259   }
00260   
00261   // event after numTrials MP is not ok -> skip event
00262   if(mpiok > 0.5) {
00263     LogWarning("") <<"   JIMMY could not produce MI in "<<numTrials_<<" trials.\n"<<"   Event will be skipped to prevent from deadlock.\n";
00264 
00265 // Throw an exception.  Use the EventCorruption exception since it maps onto
00266 // SkipEvent which is what we want to do here.
00267     std::ostringstream sstr;
00268     sstr << "Herwig6Producer: JIMMY failure after " << numTrials_ << " trials\n";
00269     edm::Exception except(edm::errors::EventCorruption, sstr.str());
00270     throw except;
00271   }  
00272   
00273   hwdhob();
00274   hwcfor();
00275   hwcdec();
00276   hwdhad();
00277   hwdhvy();
00278   hwmevt();
00279   hwufne();
00280   
00281   // if event was killed by HERWIG; skip 
00282   if(hwevnt.IERROR!=0) {
00283     std::ostringstream sstr;
00284     sstr << "Herwig6Producer: Herwig killed this event " << "\n";
00285     edm::Exception except(edm::errors::EventCorruption, sstr.str());
00286     throw except;
00287   }
00288 
00289   // -----------------  HepMC converter --------------------
00290   HepMC::IO_HERWIG conv;
00291 
00292   // HEPEVT is ok, create new HepMC event
00293   evt = new HepMC::GenEvent();
00294   bool ok = conv.fill_next_event( evt );
00295   ++numberEvents_;
00296   // if conversion failed; throw excpetion and stop processing
00297   if(!ok) throw cms::Exception("HerwigError")
00298     << " Conversion problems in event nr." << numberEvents_ << ".";  
00299 
00300   // set process id and event number
00301   evt->set_signal_process_id(hwproc.IPROC);  
00302   evt->set_event_number(numberEvents_);
00303   
00304   if (herwigHepMCVerbosity_) {
00305     LogWarning("") << "Event process = " << evt->signal_process_id() << "\n----------------------\n";
00306     evt->print();
00307   }
00308   
00309   // dummy if: event MUST be there
00310   if(evt)  {
00311     auto_ptr<HepMCProduct> bare_product(new HepMCProduct());  
00312     bare_product->addHepMCData(evt );
00313     e.put(bare_product);
00314   }
00315 }

bool Herwig6Producer::setRngSeeds ( int  mseed  )  [private]

Definition at line 1069 of file Herwig6Producer.cc.

References c, i, and int.

Referenced by Herwig6Producer().

01070 {
01071   double temx[5];
01072   for (int i=0; i<5; i++) {
01073     mseed = mseed * 29943829 - 1;
01074     temx[i] = mseed * (1./(65536.*65536.));
01075   }
01076   long double c;
01077   c = (long double)2111111111.0 * temx[3] +
01078     1492.0 * (temx[3] = temx[2]) +
01079     1776.0 * (temx[2] = temx[1]) +
01080     5115.0 * (temx[1] = temx[0]) +
01081     temx[4];
01082   temx[4] = floorl(c);
01083   temx[0] = c - temx[4];
01084   temx[4] = temx[4] * (1./(65536.*65536.));
01085   hwevnt.NRN[0]=int(temx[0]*99999);
01086   c = (long double)2111111111.0 * temx[3] +
01087     1492.0 * (temx[3] = temx[2]) +
01088     1776.0 * (temx[2] = temx[1]) +
01089     5115.0 * (temx[1] = temx[0]) +
01090     temx[4];
01091   temx[4] = floorl(c);
01092   temx[0] = c - temx[4];
01093   hwevnt.NRN[1]=int(temx[0]*99999);
01094 
01095   return true;
01096 }


Member Data Documentation

double edm::Herwig6Producer::comenergy [private]

Definition at line 47 of file Herwig6Producer.h.

Referenced by Herwig6Producer().

bool edm::Herwig6Producer::doMPInteraction_ [private]

Definition at line 50 of file Herwig6Producer.h.

Referenced by Herwig6Producer(), and produce().

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

Definition at line 42 of file Herwig6Producer.h.

Referenced by produce().

double edm::Herwig6Producer::extCrossSect [private]

Definition at line 54 of file Herwig6Producer.h.

Referenced by endRun().

double edm::Herwig6Producer::extFilterEff [private]

Definition at line 56 of file Herwig6Producer.h.

Referenced by endRun().

CLHEP::HepRandomEngine* edm::Herwig6Producer::fRandomEngine [private]

Definition at line 60 of file Herwig6Producer.h.

Referenced by Herwig6Producer().

bool edm::Herwig6Producer::herwigHepMCVerbosity_ [private]

Definition at line 44 of file Herwig6Producer.h.

Referenced by Herwig6Producer(), and produce().

int edm::Herwig6Producer::herwigLhapdfVerbosity_ [private]

Definition at line 45 of file Herwig6Producer.h.

Referenced by Herwig6Producer().

int edm::Herwig6Producer::herwigVerbosity_ [private]

Definition at line 43 of file Herwig6Producer.h.

Referenced by Herwig6Producer().

double edm::Herwig6Producer::intCrossSect [private]

Definition at line 55 of file Herwig6Producer.h.

Referenced by endRun().

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

Definition at line 48 of file Herwig6Producer.h.

Referenced by Herwig6Producer().

int edm::Herwig6Producer::maxEventsToPrint_ [private]

Definition at line 46 of file Herwig6Producer.h.

Referenced by Herwig6Producer().

unsigned int edm::Herwig6Producer::numberEvents_ [private]

Definition at line 58 of file Herwig6Producer.h.

Referenced by produce().

int edm::Herwig6Producer::numTrials_ [private]

Definition at line 52 of file Herwig6Producer.h.

Referenced by produce().

bool edm::Herwig6Producer::printCards_ [private]

Definition at line 51 of file Herwig6Producer.h.

Referenced by Herwig6Producer().

bool edm::Herwig6Producer::useJimmy_ [private]

Definition at line 49 of file Herwig6Producer.h.

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


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