CMS 3D CMS Logo

PomwigSource.cc

Go to the documentation of this file.
00001 /*
00002  *  Original Author: Fabian Stoeckli 
00003  *  26/09/06
00004  * 
00005  *  Modified for PomwigInterface: Antonio.Vilela.Pereira@cern.ch
00006  */
00007 
00008 #include "GeneratorInterface/PomwigInterface/interface/PomwigSource.h"
00009 #include "GeneratorInterface/PomwigInterface/interface/Dummies.h"
00010 #include "GeneratorInterface/PomwigInterface/interface/HWRGEN.h"
00011 
00012 #include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h"
00013 
00014 #include "FWCore/Framework/interface/Event.h"
00015 #include "FWCore/Utilities/interface/RandomNumberGenerator.h"
00016 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00017 #include "SimDataFormats/HepMCProduct/interface/GenInfoProduct.h"
00018 #include "FWCore/Framework/interface/Run.h"
00019 
00020 #include <iostream>
00021 #include "time.h"
00022 #include <ctype.h>
00023 
00024 using namespace edm;
00025 using namespace std;
00026 
00027 #include "HepMC/HerwigWrapper6_4.h"
00028 #include "HepMC/IO_HERWIG.h"
00029 
00030 // INCLUDE JIMMY,HERWIG,LHAPDF,POMWIG COMMON BLOCKS AND FUNTIONS
00031 #include "herwig.h"
00032 
00033 
00034 extern"C" {
00035   void setpdfpath_(char*,int*);
00036   void mysetpdfpath_(char*);
00037   void setlhaparm_(char*);
00038   void setherwpdf_(void);
00039   // function to chatch 'STOP' in original HWWARN
00040   void cmsending_(int*);
00041 }
00042 
00043 #define setpdfpath setpdfpath_
00044 #define mysetpdfpath mysetpdfpath_
00045 #define setlhaparm setlhaparm_
00046 #define setherwpdf setherwpdf_
00047 #define cmsending cmsending_
00048 
00049 // -----------------  Source Code -----------------------------------------
00050 PomwigSource::PomwigSource( const ParameterSet & pset, 
00051                             InputSourceDescription const& desc ) :
00052   GeneratedInputSource(pset, desc), evt(0), 
00053   herwigVerbosity_ (pset.getUntrackedParameter<int>("herwigVerbosity",0)),
00054   herwigHepMCVerbosity_ (pset.getUntrackedParameter<bool>("herwigHepMCVerbosity",false)),
00055   herwigLhapdfVerbosity_ (pset.getUntrackedParameter<int>("herwigLhapdfVerbosity",0)),
00056   maxEventsToPrint_ (pset.getUntrackedParameter<int>("maxEventsToPrint",0)),
00057   comenergy(pset.getUntrackedParameter<double>("comEnergy",14000.)),
00058   lhapdfSetPath_(pset.getUntrackedParameter<string>("lhapdfSetPath","")),
00059   printCards_(pset.getUntrackedParameter<bool>("printCards",false)),
00060   extCrossSect(pset.getUntrackedParameter<double>("crossSection", -1.)),
00061   extFilterEff(pset.getUntrackedParameter<double>("filterEfficiency", -1.)),
00062   survivalProbability(pset.getUntrackedParameter<double>("survivalProbability", 0.05)),
00063   diffTopology(pset.getParameter<int>("diffTopology")),
00064   enableForcedDecays(pset.getUntrackedParameter<bool>("enableForcedDecays",false))
00065 {
00066   useJimmy_ = false;
00067   numTrials_ = 100;
00068   doMPInteraction_ = false;
00069 
00070   std::ostringstream header_str;
00071 
00072   header_str << "----------------------------------------------\n";
00073   header_str << "Initializing PomwigSource\n";
00074   header_str << "----------------------------------------------\n";
00075 
00076   
00077   /* herwigVerbosity Level IPRINT
00078      valid argumets are: 0: print title only
00079                          1: + print selected input parameters
00080                          2: + print table of particle codes and properties
00081                          3: + tables of Sudakov form factors  
00082               *** NOT IMPLEMENTED ***
00083       LHA vebosity:      0=silent 
00084                          1=lowkey (default) 
00085                          2=all 
00086   */
00087 
00088   header_str << "   Herwig verbosity level         = " << herwigVerbosity_ << "\n";
00089   header_str << "   LHAPDF verbosity level         = " << herwigLhapdfVerbosity_ << "\n";
00090   header_str << "   HepMC verbosity                = " << herwigHepMCVerbosity_ << "\n";
00091   header_str << "   Number of events to be printed = " << maxEventsToPrint_ << "\n";
00092 
00093 
00094   if(useJimmy_) {
00095     header_str << "   HERWIG will be using JIMMY for UE/MI." << "\n";
00096     if(doMPInteraction_) 
00097       header_str << "   JIMMY trying to generate multiple interactions." << "\n";
00098   }
00099 
00100   // setting up lhapdf path name from environment varaible (***)
00101   char* lhaPdfs = NULL;
00102   header_str<<"   Trying to find LHAPATH in environment ...";
00103   lhaPdfs = getenv("LHAPATH");
00104   if(lhaPdfs != NULL) {
00105     header_str<<" done.\n";
00106     lhapdfSetPath_=std::string(lhaPdfs);
00107     header_str<<"   Using "<< lhapdfSetPath_ << "\n";   
00108   }
00109   else{
00110     header_str<<" failed.\n";
00111     header_str<<"   Using "<< lhapdfSetPath_ << "\n";
00112   }
00113 
00114 
00115   // Call hwudat to set up HERWIG block data
00116   hwudat();
00117   
00118   // Setting basic parameters ...
00119   hwproc.PBEAM1 = comenergy/2.;
00120   hwproc.PBEAM2 = comenergy/2.;
00121   // Choose beam particles for POMWIG depending on topology
00122   switch (diffTopology){
00123         case 0: //DPE
00124                 hwbmch.PART1[0]  = 'E';
00125                 hwbmch.PART1[1]  = '-';
00126                 hwbmch.PART2[0]  = 'E';
00127                 hwbmch.PART2[1]  = '-';
00128                 break;
00129         case 1: //SD survive PART1
00130                 hwbmch.PART1[0]  = 'E';
00131                 hwbmch.PART1[1]  = '-';
00132                 hwbmch.PART2[0]  = 'P';
00133                 hwbmch.PART2[1]  = ' ';
00134                 break;
00135         case 2: //SD survive PART2
00136                 hwbmch.PART1[0]  = 'P';
00137                 hwbmch.PART1[1]  = ' ';
00138                 hwbmch.PART2[0]  = 'E';
00139                 hwbmch.PART2[1]  = '-';
00140                 break;
00141         case 3: //Non diffractive
00142                 hwbmch.PART1[0]  = 'P';
00143                 hwbmch.PART1[1]  = ' ';
00144                 hwbmch.PART2[0]  = 'P';
00145                 hwbmch.PART2[1]  = ' ';
00146                 break;
00147         default:
00148                 throw edm::Exception(edm::errors::Configuration,"PomwigError")
00149           <<" Invalid Diff. Topology. Must be DPE(diffTopology = 0), SD particle 1 (diffTopology = 1), SD particle 2 (diffTopology = 2) and Non diffractive (diffTopology = 3)";
00150                 break;
00151   }
00152   for(int i=2;i<8;++i){
00153     hwbmch.PART1[i]  = ' ';
00154     hwbmch.PART2[i]  = ' ';}
00155 
00156   int numEvents = maxEvents();  
00157   if(useJimmy_) jmparm.MSFLAG = 1;
00158 
00159   // initialize other common blocks ...
00160   hwigin();
00161 
00162   double fracErrors_ = pset.getUntrackedParameter<double>("fracErrors",0.1);
00163   int maxerrors = int(fracErrors_*numEvents);
00164   hwevnt.MAXER = maxerrors;
00165   if(hwevnt.MAXER<100) hwevnt.MAXER = 100;
00166   header_str << "   MAXER set to " << hwevnt.MAXER << "\n";
00167 
00168   if(useJimmy_) jimmin();
00169   
00170   // set some 'non-herwig' defaults
00171   hwevnt.MAXPR =  maxEventsToPrint_;           // no printing out of events
00172   hwpram.IPRINT = herwigVerbosity_;            // HERWIG print out mode
00173   hwprop.RMASS[6] = 175.0;
00174 
00175   // Set HERWIG parameters in a single ParameterSet
00176   ParameterSet herwig_params = 
00177     pset.getParameter<ParameterSet>("HerwigParameters") ;
00178   
00179   // The parameter sets to be read (default, min bias, user ...) in the proper order.
00180   vector<string> setNames = 
00181     herwig_params.getParameter<vector<string> >("parameterSets");  
00182   
00183   // Loop over the sets
00184   for ( unsigned i=0; i<setNames.size(); ++i ) {    
00185     string mySet = setNames[i];
00186     vector<string> pars = 
00187       herwig_params.getParameter<vector<string> >(mySet);
00188     
00189     header_str << "----------------------------------------------" << "\n";
00190     header_str << "Read HERWIG parameter set " << mySet << "\n";
00191     header_str << "----------------------------------------------" << "\n";
00192     
00193     // Loop over all parameters and stop in case of mistake
00194     for( vector<string>::const_iterator  
00195            itPar = pars.begin(); itPar != pars.end(); ++itPar ) {
00196       static string sRandomValueSetting1("NRN(1)");
00197       static string sRandomValueSetting2("NRN(2)");
00198       if( (0 == itPar->compare(0,sRandomValueSetting1.size(),sRandomValueSetting1) )||(0 == itPar->compare(0,sRandomValueSetting2.size(),sRandomValueSetting2) )) {
00199         throw edm::Exception(edm::errors::Configuration,"HerwigError")
00200           <<" attempted to set random number using pythia command 'NRN(.)'. This is not allowed.\n  Please use the RandomNumberGeneratorService to set the random number seed.";
00201       }
00202       
00203       if( ! hwgive(*itPar) ) {
00204         throw edm::Exception(edm::errors::Configuration,"HerwigError") 
00205           <<" herwig did not accept the following \""<<*itPar<<"\"";
00206       }
00207       else if(printCards_)
00208         header_str << "   " << *itPar << "\n";
00209     }
00210   }
00211 
00212   // setting up herwgi RNG seeds NRN(.)
00213   header_str << "----------------------------------------------" << "\n";
00214   header_str << "Setting Herwig random number generator seeds" << "\n";
00215   header_str << "----------------------------------------------" << "\n";
00216   edm::Service<RandomNumberGenerator> rng;
00217   randomEngine = &(rng->getEngine());
00218   int wwseed = rng->mySeed();
00219   bool rngok = setRngSeeds(wwseed);
00220   if(!rngok)
00221     throw edm::Exception(edm::errors::Configuration,"HerwigError")
00222       <<" Impossible error in setting 'NRN(.)'.";
00223   header_str << "   NRN(1) = "<<hwevnt.NRN[0]<<"\n";
00224   header_str << "   NRN(2) = "<<hwevnt.NRN[1]<<"\n";
00225 
00226   // set the LHAPDF grid directory and path
00227   setherwpdf();
00228   char pdfpath[232];
00229   int pathlen = lhapdfSetPath_.length();
00230   for(int i=0; i<pathlen; ++i) 
00231   pdfpath[i]=lhapdfSetPath_.at(i);
00232   for(int i=pathlen; i<232; ++i) 
00233   pdfpath[i]=' ';
00234   mysetpdfpath(pdfpath);
00235 
00236   // HERWIG preparations ...
00237   hwuinc();
00238 
00239   // Function for force QQ decay is hwmodk
00240 
00241   /*
00242   C-----------------------------------------------------------------------
00243         SUBROUTINE HWMODK(IDKTMP,BRTMP,IMETMP,
00244        & IATMP,IBTMP,ICTMP,IDTMP,IETMP)
00245   C-----------------------------------------------------------------------
00246   C     Takes the decay, IDKTMP -> I-(A+B+C+D+E)-TMP, and simply stores it
00247   C     if internal pointers not set up (.NOT.DKPSET) else if pre-existing
00248   C     mode updates branching ratio BRTMP and matrix element code IMETMP,
00249   C     if -ve leaves as is. If a new mode adds to table and if consistent
00250   C     adjusts pointers,  sets CMMOM (for two-body mode) and resets RSTAB
00251   C     if necessary.  The branching ratios of any other IDKTMP decays are
00252   C     scaled by (1.-BRTMP)/(1.-BR_OLD)
00253   C-----------------------------------------------------------------------
00254   */
00255 
00256   // Initialization
00257 
00258   if(enableForcedDecays){
00259     header_str << "\n----------------------------------------------" << "\n";
00260     header_str << "HWMODK will be called to force decays" << "\n";
00261     header_str << "----------------------------------------------" << "\n";
00262     // Get ParameterSet with settings for forcing decays
00263     ParameterSet fdecays_pset = pset.getParameter<ParameterSet>("ForcedDecaysParameters") ; 
00264     vector<int> defidktmp ;
00265     defidktmp.push_back(0) ;
00266     std::vector<int> idktmp = fdecays_pset.getUntrackedParameter< vector<int> >("Idktmp", defidktmp);
00267     vector<double> defbrtmp ;
00268     defbrtmp.push_back(0) ;
00269     std::vector<double> brtmp = fdecays_pset.getUntrackedParameter< vector<double> >("Brtmp",defbrtmp);
00270     vector<int> defimetmp ;
00271     defimetmp.push_back(0) ;
00272     std::vector<int> imetmp = fdecays_pset.getUntrackedParameter< vector<int> >("Imetmp",defimetmp);
00273     vector<int> defiatmp ;
00274     defiatmp.push_back(0) ;
00275     std::vector<int> iatmp = fdecays_pset.getUntrackedParameter< vector<int> >("Iatmp",defiatmp);
00276     vector<int> defibtmp ;
00277     defibtmp.push_back(0) ;
00278     std::vector<int> ibtmp = fdecays_pset.getUntrackedParameter< vector<int> >("Ibtmp",defibtmp);
00279     vector<int> defictmp ;
00280     defictmp.push_back(0) ;
00281     std::vector<int> ictmp = fdecays_pset.getUntrackedParameter< vector<int> >("Ictmp",defictmp);
00282     vector<int> defidtmp ;
00283     defidtmp.push_back(0) ;
00284     std::vector<int> idtmp = fdecays_pset.getUntrackedParameter< vector<int> >("Idtmp",defidtmp);
00285     vector<int> defietmp ;
00286     defietmp.push_back(0) ;
00287     std::vector<int> ietmp = fdecays_pset.getUntrackedParameter< vector<int> >("Ietmp",defietmp);
00288 
00289     for (unsigned int i = 0; i < idktmp.size(); i++){
00290         int idktmp1 = idktmp[i];
00291         double brtmp1 = brtmp[i];
00292         int imetmp1 = imetmp[i];
00293         int iatmp1 = iatmp[i];
00294         int ibtmp1 = ibtmp[i];
00295         int ictmp1 = ictmp[i];
00296         int idtmp1 = idtmp[i];
00297         int ietmp1 = ietmp[i];
00298         // Call Herwig function HWMODK
00299         header_str << "   Forcing decay " << idktmp1 << "->" << iatmp1 << "+" 
00300                                                              << ibtmp1 << "+" 
00301                                                              << ictmp1 << "+"
00302                                                              << idtmp1 << "+"
00303                                                              << ietmp1 << "  with BR " << brtmp1 << "\n";
00304         hwmodk(idktmp1, brtmp1, imetmp1, iatmp1, ibtmp1, ictmp1, idtmp1, ietmp1);
00305     }
00306   }   
00307 
00308   hwusta("PI0     ",1);
00309 
00310   // Initialize H1 pomeron/reggeon
00311   if(diffTopology != 3){
00312         int nstru = hwpram.NSTRU;
00313         int ifit = pset.getParameter<int>("h1fit");
00314         if(nstru == 9){
00315                 if((ifit <= 0)||(ifit >= 7)){
00316                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00317                         <<" Attempted to set non existant H1 1997 fit index. Has to be 1...6";
00318                 }
00319                 cout << "   H1 1997 pomeron pdf's" << endl;
00320                 cout << "   IFIT = "<< ifit << endl;
00321                 double xp = 0.1;
00322                 double Q2 = 75.0;
00323                 double xpq[13];
00324                 qcd_1994(xp,Q2,xpq,ifit);
00325         } else if(nstru == 10){
00326                 if((ifit <= 0)||(ifit >= 7)){
00327                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00328                         <<" Attempted to set non existant H1 1997 fit index. Has to be 1...6";
00329                 }
00330                 cout << "   H1 1997 reggeon pdf's" << endl;
00331                 cout << "   IFIT = "<< ifit << endl;
00332                 double xp = 0.1;
00333                 double Q2 = 75.0;
00334                 double xpq[13];
00335                 qcd_1994(xp,Q2,xpq,ifit);
00336 
00337         } else if(nstru == 12){
00338                 /*if(ifit != 1){
00339                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00340                         <<" Attempted to set non existant H1 2006 A fit index. Only IFIT=1";
00341                 }*/
00342                 ifit = 1;
00343                 cout << "   H1 2006 A pomeron pdf's" << endl;
00344                 cout << "   IFIT = "<< ifit <<endl;
00345                 double xp = 0.1;
00346                 double Q2 = 75.0;
00347                 double xpq[13];
00348                 double f2[2];
00349                 double fl[2];
00350                 double c2[2];
00351                 double cl[2];
00352                 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00353         } else if(nstru == 13){
00354                 /*if(ifit != 1){
00355                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00356                         <<" Attempted to set non existant H1 2006 A fit index. Only IFIT=1";
00357                 }*/
00358                 ifit = 1;
00359                 cout << "   H1 2006 A reggeon pdf's" << endl;
00360                 cout << "   IFIT = "<< ifit <<endl;
00361                 double xp = 0.1;
00362                 double Q2 = 75.0;
00363                 double xpq[13];
00364                 double f2[2];
00365                 double fl[2];
00366                 double c2[2];
00367                 double cl[2];
00368                 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00369         } else if(nstru == 14){
00370                 /*if(ifit != 2){
00371                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00372                         <<" Attempted to set non existant H1 2006 B fit index. Only IFIT=2";
00373                 }*/
00374                 ifit = 2;
00375                 cout << "   H1 2006 B pomeron pdf's" << endl;
00376                 cout << "   IFIT = "<< ifit <<endl;
00377                 double xp = 0.1;
00378                 double Q2 = 75.0;
00379                 double xpq[13];
00380                 double f2[2];
00381                 double fl[2];
00382                 double c2[2];
00383                 double cl[2];
00384                 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00385         } else if(nstru == 15){
00386                 /*if(ifit != 2){
00387                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00388                         <<" Attempted to set non existant H1 2006 B fit index. Only IFIT=2";
00389                 }*/
00390                 ifit = 2;
00391                 cout << "   H1 2006 B reggeon pdf's" << endl;
00392                 cout << "   IFIT = "<< ifit <<endl;
00393                 double xp = 0.1;
00394                 double Q2 = 75.0;
00395                 double xpq[13];
00396                 double f2[2];
00397                 double fl[2];
00398                 double c2[2];
00399                 double cl[2];
00400                 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00401         } else{
00402                 throw edm::Exception(edm::errors::Configuration,"PomwigError")
00403                 <<" Only running Pomeron H1 1997 (NSTRU=9), H1 2006 fit A (NSTRU=12) and H1 2006 fit B (NSTRU=14) or Reggeon H1 1997 (NSTRU=10), H1 2006 fit A (NSTRU=13) and H1 2006 fit B (NSTRU=15)";
00404         }
00405   }
00406 
00407   hweini();
00408   if(useJimmy_) jminit();
00409 
00410   produces<HepMCProduct>();
00411   produces<GenInfoProduct, edm::InRun>();
00412 
00413   header_str << "\n----------------------------------------------" << "\n";
00414   header_str << "Starting event generation" << "\n";
00415   header_str << "----------------------------------------------" << "\n";
00416 
00417   edm::LogInfo("")<<header_str.str(); 
00418 
00419 
00420 }
00421 
00422 
00423 PomwigSource::~PomwigSource(){
00424 
00425   std::ostringstream footer_str;
00426 
00427   footer_str << "----------------------------------------------" << "\n";
00428   footer_str << "Event generation done" << "\n";
00429   footer_str << "----------------------------------------------" << "\n";
00430 
00431   LogInfo("") << footer_str.str();
00432 
00433   clear();
00434 }
00435 
00436 void PomwigSource::clear() {
00437   // teminate elementary process
00438   hwefin();
00439   if(useJimmy_) jmefin();
00440 }
00441 
00442 
00443 bool PomwigSource::produce(Event & e) {
00444 
00445   int counter = 0;
00446   double mpiok = 1.0;
00447 
00448   while(mpiok > 0.5 && counter < numTrials_) {
00449 
00450     // call herwig routines to create HEPEVT
00451     hwuine();
00452     hwepro();
00453     hwbgen();  
00454 
00455     // call jimmy ... only if event is not killed yet by HERWIG
00456     if(useJimmy_ && doMPInteraction_ && hwevnt.IERROR==0)
00457       mpiok = hwmsct_dummy(1.1);
00458     else mpiok = 0.0;
00459     counter++;
00460   }
00461   
00462   // event after numTrials MP is not ok -> skip event
00463   if(mpiok > 0.5) {
00464     LogWarning("") <<"   JIMMY could not produce MI in "<<numTrials_<<" trials.\n"<<"   Event will be skipped to prevent from deadlock.\n";
00465     return true;
00466   }  
00467   
00468   hwdhob();
00469   hwcfor();
00470   hwcdec();
00471   hwdhad();
00472   hwdhvy();
00473   hwmevt();
00474   hwufne();
00475   
00476   // if event was killed by HERWIG; skip 
00477   if(hwevnt.IERROR!=0) return true;
00478 
00479   //intCrossSect = 1000.0*survivalProbability*hwevnt.AVWGT;
00480 
00481   // -----------------  HepMC converter --------------------
00482   HepMC::IO_HERWIG conv;
00483 
00484   // HEPEVT is ok, create new HepMC event
00485   evt = new HepMC::GenEvent();
00486   bool ok = conv.fill_next_event( evt );
00487   // if conversion failed; throw excpetion and stop processing
00488   if(!ok) throw cms::Exception("HerwigError")
00489     <<" Conversion problems in event nr."<<numberEventsInRun() - remainingEvents() - 1<<".";  
00490 
00491   // set process id and event number
00492   evt->set_signal_process_id(hwproc.IPROC);  
00493   evt->set_event_number(numberEventsInRun() - remainingEvents() - 1);
00494   
00495   if (herwigHepMCVerbosity_) {
00496     LogWarning("") << "Event process = " << evt->signal_process_id() << "\n----------------------\n";
00497     evt->print();
00498   }
00499   
00500   // dummy if: event MUST be there
00501   if(evt)  {
00502     auto_ptr<HepMCProduct> bare_product(new HepMCProduct());  
00503     bare_product->addHepMCData(evt );
00504     e.put(bare_product);
00505   }
00506   
00507   return true;
00508 }
00509 
00510 // -------------------------------------------------------------------------------------------------
00511 // function to pass parameters to common blocks
00512 bool PomwigSource::hwgive(const std::string& ParameterString) {
00513   bool accepted = 1;
00514 
00515  
00516   if(!strncmp(ParameterString.c_str(),"IPROC",5)) {
00517     hwproc.IPROC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00518     if(hwproc.IPROC<0) {
00519       throw cms::Exception("HerwigError")
00520         <<" Attempted to set IPROC to a negative value. This is not allowed.\n Please use the McatnloInterface to cope with negative valued IPROCs.";
00521     }
00522   }
00523   else if(!strncmp(ParameterString.c_str(),"AUTPDF(",7)){
00524     LogWarning("") <<"   WARNING: AUTPDF parameter *not* suported. HERWIG will use LHAPDF."<<"\n";
00525   }
00526   else if(!strncmp(ParameterString.c_str(),"TAUDEC",6)){
00527     int tostart=0;
00528     while(ParameterString.c_str()[tostart]!='=') tostart++;
00529     tostart++;
00530     while(ParameterString.c_str()[tostart]==' ') tostart++;
00531     int todo = 0;
00532     while(ParameterString.c_str()[todo+tostart]!='\0') {
00533       hwdspn.TAUDEC[todo]=ParameterString.c_str()[todo+tostart];
00534       todo++;
00535     }
00536     if(todo != 6) {
00537       throw cms::Exception("HerwigError")
00538         <<" Attempted to set TAUDEC to "<<hwdspn.TAUDEC<<". This is not allowed.\n Options for TAUDEC are HERWIG and TAUOLA.";
00539     }
00540   }
00541   else if(!strncmp(ParameterString.c_str(),"BDECAY",6)){
00542     LogWarning("")<<"   WARNING: BDECAY parameter *not* suported. HERWIG will use default b decay."<<"\n";
00543   }
00544   else if(!strncmp(ParameterString.c_str(),"QCDLAM",6))
00545     hwpram.QCDLAM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00546   else if(!strncmp(ParameterString.c_str(),"VQCUT",5))
00547     hwpram.VQCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00548   else if(!strncmp(ParameterString.c_str(),"VGCUT",5))
00549     hwpram.VGCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00550   else if(!strncmp(ParameterString.c_str(),"VPCUT",5))
00551     hwpram.VPCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00552   else if(!strncmp(ParameterString.c_str(),"CLMAX",5))
00553     hwpram.CLMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00554   else if(!strncmp(ParameterString.c_str(),"CLPOW",5))
00555     hwpram.CLPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00556   else if(!strncmp(ParameterString.c_str(),"PSPLT(1)",8))
00557     hwpram.PSPLT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00558   else if(!strncmp(ParameterString.c_str(),"PSPLT(2)",8))
00559     hwpram.PSPLT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00560   else if(!strncmp(ParameterString.c_str(),"QDIQK",5))
00561     hwpram.QDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00562   else if(!strncmp(ParameterString.c_str(),"PDIQK",5))
00563     hwpram.PDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00564   else if(!strncmp(ParameterString.c_str(),"QSPAC",5))
00565     hwpram.QSPAC = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00566   else if(!strncmp(ParameterString.c_str(),"PTRMS",5))
00567     hwpram.PTRMS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00568   else if(!strncmp(ParameterString.c_str(),"IPRINT",6))
00569     hwpram.IPRINT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00570   else if(!strncmp(ParameterString.c_str(),"PRVTX",5))
00571     hwpram.PRVTX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00572   else if(!strncmp(ParameterString.c_str(),"NPRFMT",6))
00573     hwpram.NPRFMT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00574   else if(!strncmp(ParameterString.c_str(),"PRNDEC",6))
00575     hwpram.PRNDEC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00576   else if(!strncmp(ParameterString.c_str(),"PRNDEF",6))
00577     hwpram.PRNDEF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00578   else if(!strncmp(ParameterString.c_str(),"PRNTEX",6))
00579     hwpram.PRNTEX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00580   else if(!strncmp(ParameterString.c_str(),"PRNWEB",6))
00581     hwpram.PRNWEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00582   else if(!strncmp(ParameterString.c_str(),"MAXPR",5))
00583     hwevnt.MAXPR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00584   else if(!strncmp(ParameterString.c_str(),"MAXER",5))
00585     hwevnt.MAXER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00586   else if(!strncmp(ParameterString.c_str(),"LWEVT",5))
00587     hwevnt.LWEVT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00588   else if(!strncmp(ParameterString.c_str(),"LRSUD",5))
00589     hwpram.LRSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00590   else if(!strncmp(ParameterString.c_str(),"LWSUD",5))
00591     hwpram.LWSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00592   else if(!strncmp(ParameterString.c_str(),"NRN(1)",6))
00593     hwevnt.NRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00594   else if(!strncmp(ParameterString.c_str(),"NRN(2)",6))
00595     hwevnt.NRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00596   else if(!strncmp(ParameterString.c_str(),"WGTMAX",6))
00597     hwevnt.WGTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00598   else if(!strncmp(ParameterString.c_str(),"NOWGT",5))
00599     hwevnt.NOWGT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00600   else if(!strncmp(ParameterString.c_str(),"AVWGT",5))
00601     hwevnt.AVWGT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00602   else if(!strncmp(ParameterString.c_str(),"AZSOFT",6))
00603     hwpram.AZSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00604   else if(!strncmp(ParameterString.c_str(),"AZSPIN",6))
00605     hwpram.AZSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00606   else if(!strncmp(ParameterString.c_str(),"HARDME",6))
00607     hwpram.HARDME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00608   else if(!strncmp(ParameterString.c_str(),"SOFTME",6))
00609     hwpram.SOFTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00610   else if(!strncmp(ParameterString.c_str(),"GCUTME",6))
00611     hwpram.GCUTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00612   else if(!strncmp(ParameterString.c_str(),"NCOLO",5))
00613     hwpram.NCOLO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00614   else if(!strncmp(ParameterString.c_str(),"NFLAV",5))
00615     hwpram.NFLAV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00616   else if(!strncmp(ParameterString.c_str(),"MODPDF(1)",9))
00617     hwpram.MODPDF[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00618   else if(!strncmp(ParameterString.c_str(),"MODPDF(2)",9))
00619     hwpram.MODPDF[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00620   else if(!strncmp(ParameterString.c_str(),"NSTRU",5))
00621     hwpram.NSTRU = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00622   else if(!strncmp(ParameterString.c_str(),"PRSOF",5))
00623     hwpram.PRSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00624   else if(!strncmp(ParameterString.c_str(),"ENSOF",5))
00625     hwpram.ENSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00626   else if(!strncmp(ParameterString.c_str(),"IOPREM",6))
00627     hwpram.IOPREM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00628   else if(!strncmp(ParameterString.c_str(),"BTCLM",5))
00629     hwpram.BTCLM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00630   else if(!strncmp(ParameterString.c_str(),"ETAMIX",6))
00631     hwpram.ETAMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00632   else if(!strncmp(ParameterString.c_str(),"PHIMIX",6))
00633     hwpram.PHIMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00634   else if(!strncmp(ParameterString.c_str(),"H1MIX",5))
00635     hwpram.H1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00636   else if(!strncmp(ParameterString.c_str(),"F0MIX",5))
00637     hwpram.F0MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00638   else if(!strncmp(ParameterString.c_str(),"F1MIX",5))
00639     hwpram.F1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00640   else if(!strncmp(ParameterString.c_str(),"F2MIX",5))
00641     hwpram.F2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00642   else if(!strncmp(ParameterString.c_str(),"ET2MIX",6))
00643     hwpram.ET2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00644   else if(!strncmp(ParameterString.c_str(),"OMHMIX",6))
00645     hwpram.OMHMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00646   else if(!strncmp(ParameterString.c_str(),"PH3MIX",6))
00647     hwpram.PH3MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00648   else if(!strncmp(ParameterString.c_str(),"B1LIM",5))
00649     hwpram.B1LIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00650   else if(!strncmp(ParameterString.c_str(),"CLDIR(1)",8))
00651     hwpram.CLDIR[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00652   else if(!strncmp(ParameterString.c_str(),"CLDIR(2)",8))
00653     hwpram.CLDIR[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00654   else if(!strncmp(ParameterString.c_str(),"CLSMR(1)",8))
00655     hwpram.CLSMR[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00656   else if(!strncmp(ParameterString.c_str(),"CLSMR(2)",8))
00657     hwpram.CLSMR[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00658   else if(!strncmp(ParameterString.c_str(),"RMASS(1)",8))
00659     hwprop.RMASS[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00660   else if(!strncmp(ParameterString.c_str(),"RMASS(2)",8))
00661     hwprop.RMASS[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00662   else if(!strncmp(ParameterString.c_str(),"RMASS(3)",8))
00663     hwprop.RMASS[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00664   else if(!strncmp(ParameterString.c_str(),"RMASS(4)",8))
00665     hwprop.RMASS[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00666   else if(!strncmp(ParameterString.c_str(),"RMASS(5)",8))
00667     hwprop.RMASS[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00668   else if(!strncmp(ParameterString.c_str(),"RMASS(6)",8))
00669     hwprop.RMASS[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00670   else if(!strncmp(ParameterString.c_str(),"RMASS(13)",9))
00671     hwprop.RMASS[13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00672   else if(!strncmp(ParameterString.c_str(),"SUDORD",6))
00673     hwusud.SUDORD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00674   else if(!strncmp(ParameterString.c_str(),"INTER",5))
00675     hwusud.INTER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00676   else if(!strncmp(ParameterString.c_str(),"NEGWTS",6))
00677     hw6203.NEGWTS = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00678   else if(!strncmp(ParameterString.c_str(),"PMBN1",5))
00679     hwminb.PMBN1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00680   else if(!strncmp(ParameterString.c_str(),"PMBN2",5))
00681     hwminb.PMBN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00682   else if(!strncmp(ParameterString.c_str(),"PMBN3",5))
00683     hwminb.PMBN3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00684   else if(!strncmp(ParameterString.c_str(),"PMBK1",5))
00685     hwminb.PMBK1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00686   else if(!strncmp(ParameterString.c_str(),"PMBK2",5))
00687     hwminb.PMBK2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00688   else if(!strncmp(ParameterString.c_str(),"PMBM1",5))
00689     hwminb.PMBM1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00690   else if(!strncmp(ParameterString.c_str(),"PMBM2",5))
00691     hwminb.PMBM2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00692   else if(!strncmp(ParameterString.c_str(),"PMBP1",5))
00693     hwminb.PMBP1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00694   else if(!strncmp(ParameterString.c_str(),"PMBP2",5))
00695     hwminb.PMBP2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00696   else if(!strncmp(ParameterString.c_str(),"PMBP3",5))
00697     hwminb.PMBP3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00698   else if(!strncmp(ParameterString.c_str(),"VMIN2",5))
00699     hwdist.VMIN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00700   else if(!strncmp(ParameterString.c_str(),"EXAG",4))
00701     hwdist.EXAG = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00702   else if(!strncmp(ParameterString.c_str(),"PRECO",5))
00703     hwuclu.PRECO = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00704   else if(!strncmp(ParameterString.c_str(),"CLRECO",6))
00705     hwuclu.CLRECO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00706   else if(!strncmp(ParameterString.c_str(),"PWT(1)",6))
00707     hwuwts.PWT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00708   else if(!strncmp(ParameterString.c_str(),"PWT(2)",6))
00709     hwuwts.PWT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00710   else if(!strncmp(ParameterString.c_str(),"PWT(3)",6))
00711     hwuwts.PWT[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00712   else if(!strncmp(ParameterString.c_str(),"PWT(4)",6))
00713     hwuwts.PWT[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00714   else if(!strncmp(ParameterString.c_str(),"PWT(5)",6))
00715     hwuwts.PWT[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00716   else if(!strncmp(ParameterString.c_str(),"PWT(6)",6))
00717     hwuwts.PWT[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00718   else if(!strncmp(ParameterString.c_str(),"PWT(7)",6))
00719     hwuwts.PWT[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00720   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,0)",12))
00721     hwuwts.REPWT[0][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00722   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,1)",12))
00723     hwuwts.REPWT[0][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00724   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,2)",12))
00725     hwuwts.REPWT[0][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00726   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,3)",12))
00727     hwuwts.REPWT[0][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00728   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,4)",12))
00729     hwuwts.REPWT[0][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00730   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,0)",12))
00731     hwuwts.REPWT[0][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00732   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,1)",12))
00733     hwuwts.REPWT[0][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00734   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,2)",12))
00735     hwuwts.REPWT[0][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00736   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,3)",12))
00737     hwuwts.REPWT[0][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00738   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,4)",12))
00739     hwuwts.REPWT[0][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00740   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,0)",12))
00741     hwuwts.REPWT[0][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00742   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,1)",12))
00743     hwuwts.REPWT[0][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00744   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,2)",12))
00745     hwuwts.REPWT[0][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00746   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,3)",12))
00747     hwuwts.REPWT[0][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00748   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,4)",12))
00749     hwuwts.REPWT[0][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00750   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,0)",12))
00751     hwuwts.REPWT[0][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00752   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,1)",12))
00753     hwuwts.REPWT[0][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00754   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,2)",12))
00755     hwuwts.REPWT[0][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00756   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,3)",12))
00757     hwuwts.REPWT[0][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00758   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,4)",12))
00759     hwuwts.REPWT[0][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00760   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,0)",12))
00761     hwuwts.REPWT[0][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00762   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,1)",12))
00763     hwuwts.REPWT[0][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00764   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,2)",12))
00765     hwuwts.REPWT[0][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00766   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,3)",12))
00767     hwuwts.REPWT[0][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00768   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,4)",12))
00769     hwuwts.REPWT[0][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00770   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,0)",12))
00771     hwuwts.REPWT[1][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00772   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,1)",12))
00773     hwuwts.REPWT[1][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00774   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,2)",12))
00775     hwuwts.REPWT[1][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00776   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,3)",12))
00777     hwuwts.REPWT[1][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00778   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,4)",12))
00779     hwuwts.REPWT[1][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00780   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,0)",12))
00781     hwuwts.REPWT[1][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00782   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,1)",12))
00783     hwuwts.REPWT[1][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00784   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,2)",12))
00785     hwuwts.REPWT[1][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00786   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,3)",12))
00787     hwuwts.REPWT[1][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00788   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,4)",12))
00789     hwuwts.REPWT[1][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00790   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,0)",12))
00791     hwuwts.REPWT[1][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00792   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,1)",12))
00793     hwuwts.REPWT[1][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00794   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,2)",12))
00795     hwuwts.REPWT[1][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00796   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,3)",12))
00797     hwuwts.REPWT[1][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00798   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,4)",12))
00799     hwuwts.REPWT[1][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00800   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,0)",12))
00801     hwuwts.REPWT[1][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00802   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,1)",12))
00803     hwuwts.REPWT[1][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00804   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,2)",12))
00805     hwuwts.REPWT[1][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00806   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,3)",12))
00807     hwuwts.REPWT[1][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00808   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,4)",12))
00809     hwuwts.REPWT[1][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00810   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,0)",12))
00811     hwuwts.REPWT[1][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00812   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,1)",12))
00813     hwuwts.REPWT[1][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00814   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,2)",12))
00815     hwuwts.REPWT[1][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00816   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,3)",12))
00817     hwuwts.REPWT[1][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00818   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,4)",12))
00819     hwuwts.REPWT[1][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00820   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,0)",12))
00821     hwuwts.REPWT[2][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00822   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,1)",12))
00823     hwuwts.REPWT[2][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00824   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,2)",12))
00825     hwuwts.REPWT[2][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00826   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,3)",12))
00827     hwuwts.REPWT[2][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00828   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,4)",12))
00829     hwuwts.REPWT[2][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00830   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,0)",12))
00831     hwuwts.REPWT[2][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00832   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,1)",12))
00833     hwuwts.REPWT[2][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00834   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,2)",12))
00835     hwuwts.REPWT[2][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00836   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,3)",12))
00837     hwuwts.REPWT[2][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00838   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,4)",12))
00839     hwuwts.REPWT[2][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00840   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,0)",12))
00841     hwuwts.REPWT[2][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00842   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,1)",12))
00843     hwuwts.REPWT[2][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00844   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,2)",12))
00845     hwuwts.REPWT[2][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00846   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,3)",12))
00847     hwuwts.REPWT[2][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00848   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,4)",12))
00849     hwuwts.REPWT[2][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00850   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,0)",12))
00851     hwuwts.REPWT[2][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00852   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,1)",12))
00853     hwuwts.REPWT[2][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00854   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,2)",12))
00855     hwuwts.REPWT[2][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00856   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,3)",12))
00857     hwuwts.REPWT[2][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00858   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,4)",12))
00859     hwuwts.REPWT[2][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00860   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,0)",12))
00861     hwuwts.REPWT[2][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00862   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,1)",12))
00863     hwuwts.REPWT[2][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00864   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,2)",12))
00865     hwuwts.REPWT[2][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00866   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,3)",12))
00867     hwuwts.REPWT[2][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00868   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,4)",12))
00869     hwuwts.REPWT[2][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00870   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,0)",12))
00871     hwuwts.REPWT[3][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00872   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,1)",12))
00873     hwuwts.REPWT[3][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00874   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,2)",12))
00875     hwuwts.REPWT[3][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00876   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,3)",12))
00877     hwuwts.REPWT[3][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00878   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,4)",12))
00879     hwuwts.REPWT[3][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00880   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,0)",12))
00881     hwuwts.REPWT[3][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00882   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,1)",12))
00883     hwuwts.REPWT[3][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00884   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,2)",12))
00885     hwuwts.REPWT[3][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00886   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,3)",12))
00887     hwuwts.REPWT[3][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00888   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,4)",12))
00889     hwuwts.REPWT[3][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00890   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,0)",12))
00891     hwuwts.REPWT[3][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00892   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,1)",12))
00893     hwuwts.REPWT[3][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00894   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,2)",12))
00895     hwuwts.REPWT[3][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00896   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,3)",12))
00897     hwuwts.REPWT[3][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00898   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,4)",12))
00899     hwuwts.REPWT[3][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00900   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,0)",12))
00901     hwuwts.REPWT[3][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00902   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,1)",12))
00903     hwuwts.REPWT[3][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00904   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,2)",12))
00905     hwuwts.REPWT[3][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00906   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,3)",12))
00907     hwuwts.REPWT[3][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00908   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,4)",12))
00909     hwuwts.REPWT[3][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00910   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,0)",12))
00911     hwuwts.REPWT[3][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00912   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,1)",12))
00913     hwuwts.REPWT[3][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00914   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,2)",12))
00915     hwuwts.REPWT[3][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00916   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,3)",12))
00917     hwuwts.REPWT[3][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00918   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,4)",12))
00919     hwuwts.REPWT[3][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00920   else if(!strncmp(ParameterString.c_str(),"SNGWT",5))
00921     hwuwts.SNGWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00922   else if(!strncmp(ParameterString.c_str(),"DECWT",5))
00923     hwuwts.DECWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00924   else if(!strncmp(ParameterString.c_str(),"PLTCUT",6))
00925     hwdist.PLTCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00926   else if(!strncmp(ParameterString.c_str(),"VTOCDK(",7)){
00927     // we find the index ...
00928     int ind = atoi(&ParameterString[7]);  
00929     hwprop.VTOCDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
00930   else if(!strncmp(ParameterString.c_str(),"VTORDK(",7)){
00931     // we find the index ...
00932     int ind = atoi(&ParameterString[7]);  
00933     hwprop.VTORDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
00934   else if(!strncmp(ParameterString.c_str(),"PIPSMR",6))
00935     hwdist.PIPSMR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00936   else if(!strncmp(ParameterString.c_str(),"VIPWID(1)",9))
00937     hw6202.VIPWID[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00938   else if(!strncmp(ParameterString.c_str(),"VIPWID(2)",9))
00939     hw6202.VIPWID[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00940   else if(!strncmp(ParameterString.c_str(),"VIPWID(3)",9))
00941     hw6202.VIPWID[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00942   else if(!strncmp(ParameterString.c_str(),"MAXDKL",6))
00943     hwdist.MAXDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00944   else if(!strncmp(ParameterString.c_str(),"IOPDKL",6))
00945     hwdist.IOPDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00946   else if(!strncmp(ParameterString.c_str(),"DXRCYL",6))
00947     hw6202.DXRCYL = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00948   else if(!strncmp(ParameterString.c_str(),"DXZMAX",6))
00949     hw6202.DXZMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00950   else if(!strncmp(ParameterString.c_str(),"DXRSPH",6))
00951     hw6202.DXRSPH = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00952   //  else if(!strncmp(ParameterString.c_str(),"BDECAY",6))
00953   //    hwprch.BDECAY = ParameterString[strcspn(ParameterString.c_str(),"=")+1];  
00954   else if(!strncmp(ParameterString.c_str(),"MIXING",6))
00955     hwdist.MIXING = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00956   else if(!strncmp(ParameterString.c_str(),"XMIX(1)",7))
00957     hwdist.XMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00958   else if(!strncmp(ParameterString.c_str(),"XMIX(2)",7))
00959     hwdist.XMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00960   else if(!strncmp(ParameterString.c_str(),"YMIX(1)",7))
00961     hwdist.YMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00962   else if(!strncmp(ParameterString.c_str(),"YMIX(2)",7))
00963     hwdist.YMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00964   else if(!strncmp(ParameterString.c_str(),"RMASS(198)",10))
00965     hwprop.RMASS[198] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00966   else if(!strncmp(ParameterString.c_str(),"RMASS(199)",10))
00967     hwprop.RMASS[199] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00968   else if(!strncmp(ParameterString.c_str(),"GAMW",4))
00969     hwpram.GAMW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00970   else if(!strncmp(ParameterString.c_str(),"GAMZ",4))
00971     hwpram.GAMZ = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00972   else if(!strncmp(ParameterString.c_str(),"RMASS(200)",10))
00973     hwprop.RMASS[200] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00974   else if(!strncmp(ParameterString.c_str(),"WZRFR",5))
00975     hw6202.WZRFR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00976   else if(!strncmp(ParameterString.c_str(),"MODBOS(",7)) {
00977     int ind = atoi(&ParameterString[7]);
00978     hwbosc.MODBOS[ind-1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00979   else if(!strncmp(ParameterString.c_str(),"RMASS(201)",10))
00980     hwprop.RMASS[201] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00981   else if(!strncmp(ParameterString.c_str(),"IOPHIG",6))
00982     hwbosc.IOPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00983   else if(!strncmp(ParameterString.c_str(),"GAMMAX",6))
00984     hwbosc.GAMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00985   else if(!strncmp(ParameterString.c_str(),"ENHANC(",7)) {
00986     int ind = atoi(&ParameterString[7]);
00987     hwbosc.ENHANC[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00988   else if(!strncmp(ParameterString.c_str(),"RMASS(209)",10))
00989     hwprop.RMASS[209] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00990   else if(!strncmp(ParameterString.c_str(),"RMASS(215)",10))
00991     hwprop.RMASS[215] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00992   else if(!strncmp(ParameterString.c_str(),"ALPHEM",6))
00993     hwpram.ALPHEM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00994   else if(!strncmp(ParameterString.c_str(),"SWEIN",5))
00995     hwpram.SWEIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00996   else if(!strncmp(ParameterString.c_str(),"QFCH(",5)){
00997     int ind = atoi(&ParameterString[5]);
00998     hwpram.QFCH[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00999   else if(!strncmp(ParameterString.c_str(),"AFCH(1,",7)){
01000     int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
01001     hwpram.AFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01002   else if(!strncmp(ParameterString.c_str(),"AFCH(2,",7)){
01003     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01004     hwpram.AFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01005   else if(!strncmp(ParameterString.c_str(),"AFCH(3,",7)){
01006     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01007     hwpram.AFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01008   else if(!strncmp(ParameterString.c_str(),"AFCH(4,",7)){
01009     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01010     hwpram.AFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01011   else if(!strncmp(ParameterString.c_str(),"AFCH(5,",7)){
01012     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01013     hwpram.AFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01014   else if(!strncmp(ParameterString.c_str(),"AFCH(6,",7)){
01015     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01016     hwpram.AFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01017   else if(!strncmp(ParameterString.c_str(),"AFCH(7,",7)){
01018     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01019     hwpram.AFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01020   else if(!strncmp(ParameterString.c_str(),"AFCH(8,",7)){
01021     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01022     hwpram.AFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01023   else if(!strncmp(ParameterString.c_str(),"AFCH(9,",7)){
01024     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01025     hwpram.AFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01026   else if(!strncmp(ParameterString.c_str(),"AFCH(10,",8)){
01027     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01028     hwpram.AFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01029   else if(!strncmp(ParameterString.c_str(),"AFCH(11,",8)){
01030     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01031     hwpram.AFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01032   else if(!strncmp(ParameterString.c_str(),"AFCH(12,",8)){
01033     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01034     hwpram.AFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01035   else if(!strncmp(ParameterString.c_str(),"AFCH(13,",8)){
01036     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01037     hwpram.AFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01038   else if(!strncmp(ParameterString.c_str(),"AFCH(14,",8)){
01039     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01040     hwpram.AFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01041   else if(!strncmp(ParameterString.c_str(),"AFCH(15,",8)){
01042     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01043     hwpram.AFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01044   else if(!strncmp(ParameterString.c_str(),"AFCH(16,",8)){
01045     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01046     hwpram.AFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01047   else if(!strncmp(ParameterString.c_str(),"VFCH(1,",7)){
01048     int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
01049     hwpram.VFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01050   else if(!strncmp(ParameterString.c_str(),"VFCH(2,",7)){
01051     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01052     hwpram.VFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01053   else if(!strncmp(ParameterString.c_str(),"VFCH(3,",7)){
01054     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01055     hwpram.VFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01056   else if(!strncmp(ParameterString.c_str(),"VFCH(4,",7)){
01057     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01058     hwpram.VFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01059   else if(!strncmp(ParameterString.c_str(),"VFCH(5,",7)){
01060     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01061     hwpram.VFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01062   else if(!strncmp(ParameterString.c_str(),"VFCH(6,",7)){
01063     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01064     hwpram.VFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01065   else if(!strncmp(ParameterString.c_str(),"VFCH(7,",7)){
01066     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01067     hwpram.VFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01068   else if(!strncmp(ParameterString.c_str(),"VFCH(8,",7)){
01069     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01070     hwpram.VFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01071   else if(!strncmp(ParameterString.c_str(),"VFCH(9,",7)){
01072     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01073     hwpram.VFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01074   else if(!strncmp(ParameterString.c_str(),"VFCH(10,",8)){
01075     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01076     hwpram.VFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01077   else if(!strncmp(ParameterString.c_str(),"VFCH(11,",8)){
01078     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01079     hwpram.VFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01080   else if(!strncmp(ParameterString.c_str(),"VFCH(12,",8)){
01081     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01082     hwpram.VFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01083   else if(!strncmp(ParameterString.c_str(),"VFCH(13,",8)){
01084     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01085     hwpram.VFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01086   else if(!strncmp(ParameterString.c_str(),"VFCH(14,",8)){
01087     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01088     hwpram.VFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01089   else if(!strncmp(ParameterString.c_str(),"VFCH(15,",8)){
01090     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01091     hwpram.VFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01092   else if(!strncmp(ParameterString.c_str(),"VFCH(16,",8)){
01093     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01094     hwpram.VFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01095   else if(!strncmp(ParameterString.c_str(),"ZPRIME",6))
01096     hwpram.ZPRIME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01097   else if(!strncmp(ParameterString.c_str(),"RMASS(202)",10))
01098     hwprop.RMASS[202] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01099   else if(!strncmp(ParameterString.c_str(),"GAMZP",5))
01100     hwpram.GAMZP = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01101   else if(!strncmp(ParameterString.c_str(),"VCKM(",5)) {
01102     int ind1 = atoi(&ParameterString[5]);
01103     if(ind1<1||ind1>3) return 0;
01104     int ind2 = atoi(&ParameterString[7]);
01105     if(ind2<1||ind2>3) return 0;
01106     hwpram.VCKM[ind2][ind1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01107   else if(!strncmp(ParameterString.c_str(),"SCABI",5))
01108     hwpram.SCABI = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01109   else if(!strncmp(ParameterString.c_str(),"EPOLN(",6)) {
01110     int ind = atoi(&ParameterString[6]);
01111     if(ind<1||ind>3) return 0;
01112     hwhard.EPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01113   else if(!strncmp(ParameterString.c_str(),"PPOLN(",6)) {
01114     int ind = atoi(&ParameterString[6]);
01115     if(ind<1||ind>3) return 0;
01116     hwhard.PPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01117   else if(!strncmp(ParameterString.c_str(),"QLIM",4))
01118     hwhard.QLIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01119   else if(!strncmp(ParameterString.c_str(),"THMAX",5))
01120     hwhard.THMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01121   else if(!strncmp(ParameterString.c_str(),"Y4JT",4))
01122     hwhard.Y4JT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01123   else if(!strncmp(ParameterString.c_str(),"DURHAM",6))
01124     hwhard.DURHAM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01125   else if(!strncmp(ParameterString.c_str(),"IOP4JT(1)",9))
01126     hwpram.IOP4JT[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01127   else if(!strncmp(ParameterString.c_str(),"IOP4JT(2)",9))
01128     hwpram.IOP4JT[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01129   else if(!strncmp(ParameterString.c_str(),"BGSHAT",6))
01130     hwhard.BGSHAT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01131   else if(!strncmp(ParameterString.c_str(),"BREIT",5))
01132     hwbrch.BREIT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01133   else if(!strncmp(ParameterString.c_str(),"USECMF",6))
01134     hwbrch.USECMF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01135   else if(!strncmp(ParameterString.c_str(),"NOSPAC",6))
01136     hwpram.NOSPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01137   else if(!strncmp(ParameterString.c_str(),"ISPAC",5))
01138     hwpram.ISPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01139   else if(!strncmp(ParameterString.c_str(),"TMNISR",6))
01140     hwhard.TMNISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01141   else if(!strncmp(ParameterString.c_str(),"ZMXISR",6))
01142     hwhard.ZMXISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01143   else if(!strncmp(ParameterString.c_str(),"ASFIXD",6))
01144     hwhard.ASFIXD = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01145   else if(!strncmp(ParameterString.c_str(),"OMEGA0",6))
01146     hwhard.OMEGA0 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01147   else if(!strncmp(ParameterString.c_str(),"IAPHIG",6))
01148     hwhard.IAPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01149   else if(!strncmp(ParameterString.c_str(),"PHOMAS",6))
01150     hwhard.PHOMAS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01151   else if(!strncmp(ParameterString.c_str(),"PRESPL",6))
01152     hw6500.PRESPL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);            
01153   else if(!strncmp(ParameterString.c_str(),"PTMIN",5))
01154     hwhard.PTMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01155   else if(!strncmp(ParameterString.c_str(),"PTMAX",5))
01156     hwhard.PTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01157   else if(!strncmp(ParameterString.c_str(),"PTPOW",5))
01158     hwhard.PTPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01159   else if(!strncmp(ParameterString.c_str(),"YJMIN",5))
01160     hwhard.YJMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01161   else if(!strncmp(ParameterString.c_str(),"YJMAX",5))
01162     hwhard.YJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01163   else if(!strncmp(ParameterString.c_str(),"EMMIN",5))
01164     hwhard.EMMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01165   else if(!strncmp(ParameterString.c_str(),"EMMAX",5))
01166     hwhard.EMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01167   else if(!strncmp(ParameterString.c_str(),"EMPOW",5))
01168     hwhard.EMPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01169   else if(!strncmp(ParameterString.c_str(),"Q2MIN",5))
01170     hwhard.Q2MIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01171   else if(!strncmp(ParameterString.c_str(),"Q2MAX",5))
01172     hwhard.Q2MAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01173   else if(!strncmp(ParameterString.c_str(),"Q2POW",5))
01174     hwhard.Q2POW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01175   else if(!strncmp(ParameterString.c_str(),"YBMIN",5))
01176     hwhard.YBMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01177   else if(!strncmp(ParameterString.c_str(),"YBMAX",5))
01178     hwhard.YBMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01179   else if(!strncmp(ParameterString.c_str(),"WHMIN",5))
01180     hwhard.WHMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01181   else if(!strncmp(ParameterString.c_str(),"ZJMAX",5))
01182     hwhard.ZJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01183   else if(!strncmp(ParameterString.c_str(),"Q2WWMN",6))
01184     hwhard.Q2WWMN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01185   else if(!strncmp(ParameterString.c_str(),"Q2WWMX",6))
01186     hwhard.Q2WWMX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01187   else if(!strncmp(ParameterString.c_str(),"YWWMIN",6))
01188     hwhard.YWWMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01189   else if(!strncmp(ParameterString.c_str(),"YWWMAX",6))
01190     hwhard.YWWMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01191   else if(!strncmp(ParameterString.c_str(),"CSPEED",6))
01192     hwpram.CSPEED = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01193   else if(!strncmp(ParameterString.c_str(),"GEV2NB",6))
01194     hwpram.GEV2NB = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01195   else if(!strncmp(ParameterString.c_str(),"IBSH",4))
01196     hwhard.IBSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01197   else if(!strncmp(ParameterString.c_str(),"IBRN(1)",7))
01198     hwhard.IBRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01199   else if(!strncmp(ParameterString.c_str(),"IBRN(2)",7))
01200     hwhard.IBRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01201   else if(!strncmp(ParameterString.c_str(),"NQEV",4))
01202     hwusud.NQEV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01203   else if(!strncmp(ParameterString.c_str(),"ZBINM",5))
01204     hwpram.ZBINM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01205   else if(!strncmp(ParameterString.c_str(),"NZBIN",5))
01206     hwpram.NZBIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01207   else if(!strncmp(ParameterString.c_str(),"NBTRY",5))
01208     hwpram.NBTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01209   else if(!strncmp(ParameterString.c_str(),"NCTRY",5))
01210     hwpram.NCTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01211   else if(!strncmp(ParameterString.c_str(),"NETRY",5))
01212     hwpram.NETRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01213   else if(!strncmp(ParameterString.c_str(),"NSTRY",5))
01214     hwpram.NSTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01215   else if(!strncmp(ParameterString.c_str(),"ACCUR",5))
01216     hwusud.ACCUR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01217   else if(!strncmp(ParameterString.c_str(),"RPARTY",6))
01218     hwrpar.RPARTY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01219   else if(!strncmp(ParameterString.c_str(),"SUSYIN",6))
01220     hwsusy.SUSYIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01221   else if(!strncmp(ParameterString.c_str(),"LRSUSY",6))
01222     hw6202.LRSUSY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01223   else if(!strncmp(ParameterString.c_str(),"SYSPIN",6))
01224     hwdspn.SYSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01225   else if(!strncmp(ParameterString.c_str(),"THREEB",6))
01226     hwdspn.THREEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01227   else if(!strncmp(ParameterString.c_str(),"FOURB",5))
01228     hwdspn.FOURB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01229   else if(!strncmp(ParameterString.c_str(),"LHSOFT",6))
01230     hwgupr.LHSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01231   else if(!strncmp(ParameterString.c_str(),"LHGLSF",6))
01232     hwgupr.LHGLSF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01233   else if(!strncmp(ParameterString.c_str(),"OPTM",4))
01234     hw6300.OPTM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01235   else if(!strncmp(ParameterString.c_str(),"IOPSTP",6))
01236     hw6300.IOPSTP = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01237   else if(!strncmp(ParameterString.c_str(),"IOPSH",5))
01238     hw6300.IOPSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01239   else if(!strncmp(ParameterString.c_str(),"JMUEO",5))
01240     jmparm.JMUEO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01241   else if(!strncmp(ParameterString.c_str(),"PTJIM",5))
01242     jmparm.PTJIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01243   else if(!strncmp(ParameterString.c_str(),"JMRAD(73)",9))
01244     jmparm.JMRAD[72] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01245 
01246   else accepted = 0;
01247 
01248   return accepted;
01249 }
01250 
01251 #ifdef NEVER
01252 //-------------------------------------------------------------------------------
01253 // dummy hwaend (to be REMOVED from herwig)
01254 #define hwaend hwaend_
01255 
01256 extern "C" {
01257   void hwaend(){/*dummy*/}
01258 }
01259 //-------------------------------------------------------------------------------
01260 #endif
01261 
01262 bool PomwigSource::setRngSeeds(int mseed)
01263 {
01264   double temx[5];
01265   for (int i=0; i<5; i++) {
01266     mseed = mseed * 29943829 - 1;
01267     temx[i] = mseed * (1./(65536.*65536.));
01268   }
01269   long double c;
01270   c = (long double)2111111111.0 * temx[3] +
01271     1492.0 * (temx[3] = temx[2]) +
01272     1776.0 * (temx[2] = temx[1]) +
01273     5115.0 * (temx[1] = temx[0]) +
01274     temx[4];
01275   temx[4] = floorl(c);
01276   temx[0] = c - temx[4];
01277   temx[4] = temx[4] * (1./(65536.*65536.));
01278   hwevnt.NRN[0]=int(temx[0]*99999);
01279   c = (long double)2111111111.0 * temx[3] +
01280     1492.0 * (temx[3] = temx[2]) +
01281     1776.0 * (temx[2] = temx[1]) +
01282     5115.0 * (temx[1] = temx[0]) +
01283     temx[4];
01284   temx[4] = floorl(c);
01285   temx[0] = c - temx[4];
01286   hwevnt.NRN[1]=int(temx[0]*99999);
01287 
01288   return true;
01289 }
01290 
01291 void PomwigSource::endRun(Run & r) {
01292  
01293  auto_ptr<GenInfoProduct> giprod (new GenInfoProduct());
01294 
01295  //-----------------------------------------------
01296  // compute cross-section (internal HERWIG style)
01297  double RNWGT=1./hwevnt.NWGTS;
01298  double AVWGT=hwevnt.WGTSUM*RNWGT;
01299 
01300  intCrossSect=1000.*survivalProbability*AVWGT;
01301  //-----------------------------------------------
01302 
01303  giprod->set_cross_section(intCrossSect);
01304  cout<<">>>>> Cross section = " << intCrossSect << std::endl;
01305  giprod->set_external_cross_section(extCrossSect);
01306  giprod->set_filter_efficiency(extFilterEff);
01307  r.put(giprod);
01308 
01309 }
01310 
01311 
01312 
01313 
01314 
01315 #ifdef NEVER
01316 extern "C" {
01317   void cmsending_(int* ecode) {
01318     LogError("")<<"   ERROR: Herwig stoped run after recieving error code "<<*ecode<<".\n";
01319     throw cms::Exception("HerwigError") <<" Herwig stoped run with error code "<<*ecode<<".";
01320   }
01321 }
01322 #endif

Generated on Tue Jun 9 17:37:09 2009 for CMSSW by  doxygen 1.5.4