00001
00002
00003
00004
00005
00006
00007 #include "GeneratorInterface/Herwig6Interface/interface/Herwig6Producer.h"
00008 #include "GeneratorInterface/Herwig6Interface/interface/Dummies.h"
00009 #include "GeneratorInterface/Herwig6Interface/interface/HWRGEN.h"
00010 #include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h"
00011
00012 #include "FWCore/Framework/interface/Event.h"
00013 #include "FWCore/ServiceRegistry/interface/Service.h"
00014 #include "FWCore/Utilities/interface/EDMException.h"
00015 #include "FWCore/Utilities/interface/RandomNumberGenerator.h"
00016 #include "CLHEP/Random/JamesRandom.h"
00017 #include "CLHEP/Random/RandFlat.h"
00018 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00019 #include "SimDataFormats/HepMCProduct/interface/GenInfoProduct.h"
00020 #include "FWCore/Framework/interface/Run.h"
00021
00022 #include <iostream>
00023 #include "time.h"
00024 #include <ctype.h>
00025
00026 using namespace edm;
00027 using namespace std;
00028
00029 #include "HepMC/HerwigWrapper6_4.h"
00030 #include "HepMC/IO_HERWIG.h"
00031 #include "HepMC/HEPEVT_Wrapper.h"
00032
00033
00034 #include "herwig.h"
00035
00036
00037 extern"C" {
00038 void setpdfpath_(char*,int*);
00039 void mysetpdfpath_(char*);
00040 void setlhaparm_(char*);
00041 void setherwpdf_(void);
00042
00043
00044 }
00045
00046 #define setpdfpath setpdfpath_
00047 #define mysetpdfpath mysetpdfpath_
00048 #define setlhaparm setlhaparm_
00049 #define setherwpdf setherwpdf_
00050
00051
00052 Herwig6Producer::Herwig6Producer( const ParameterSet & pset) :
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
00077
00078
00079
00080
00081
00082
00083
00084
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
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
00112 hwudat();
00113
00114
00115
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
00124 int numEvents = 999999999;
00125 if(useJimmy_) jmparm.MSFLAG = 1;
00126
00127
00128 hwigin();
00129
00130 hwevnt.MAXER = int(numEvents/10);
00131 if(hwevnt.MAXER<100) hwevnt.MAXER = 100;
00132
00133 if(useJimmy_) jimmin();
00134
00135
00136 hwevnt.MAXPR = maxEventsToPrint_;
00137 hwpram.IPRINT = herwigVerbosity_;
00138 hwprop.RMASS[6] = 175.0;
00139
00140
00141 ParameterSet herwig_params =
00142 pset.getParameter<ParameterSet>("HerwigParameters") ;
00143
00144
00145 vector<string> setNames =
00146 herwig_params.getParameter<vector<string> >("parameterSets");
00147
00148
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
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
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
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
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 }
00220
00221
00222 Herwig6Producer::~Herwig6Producer(){
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 }
00234
00235 void Herwig6Producer::clear() {
00236
00237 hwefin();
00238 if(useJimmy_) jmefin();
00239 }
00240
00241
00242 void Herwig6Producer::produce(Event & e, const EventSetup& es) {
00243
00244 int counter = 0;
00245 double mpiok = 1.0;
00246
00247 while(mpiok > 0.5 && counter < numTrials_) {
00248
00249
00250 hwuine();
00251 hwepro();
00252 hwbgen();
00253
00254
00255 if(useJimmy_ && doMPInteraction_ && hwevnt.IERROR==0)
00256 mpiok = hwmsct_dummy(1.1);
00257 else mpiok = 0.0;
00258 counter++;
00259 }
00260
00261
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
00266
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
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
00290 HepMC::IO_HERWIG conv;
00291
00292
00293 evt = new HepMC::GenEvent();
00294 bool ok = conv.fill_next_event( evt );
00295 ++numberEvents_;
00296
00297 if(!ok) throw cms::Exception("HerwigError")
00298 << " Conversion problems in event nr." << numberEvents_ << ".";
00299
00300
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
00310 if(evt) {
00311 auto_ptr<HepMCProduct> bare_product(new HepMCProduct());
00312 bare_product->addHepMCData(evt );
00313 e.put(bare_product);
00314 }
00315 }
00316
00317
00318
00319 bool Herwig6Producer::hwgive(const std::string& ParameterString) {
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
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
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
00760
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 }
01057
01058
01059 #ifdef NEVER
01060
01061
01062
01063 extern "C" {
01064 inline void hwaend_(){}
01065 }
01066
01067 #endif
01068
01069 bool Herwig6Producer::setRngSeeds(int mseed)
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 }
01097
01098 void Herwig6Producer::endRun(Run & r) {
01099
01100 auto_ptr<GenInfoProduct> giprod (new GenInfoProduct());
01101
01102
01103
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 }
01116
01117
01118
01119
01120 #ifdef NEVER
01121 extern "C" {
01122 inline void cmsending_(int* ecode) {
01123 LogError("")<<" ERROR: Herwig stoped run after recieving error code "<<*ecode<<".\n";
01124 throw cms::Exception("Herwig6Error") <<" Herwig stoped run with error code "<<*ecode<<".";
01125 }
01126 }
01127 #endif