00001
00002
00003
00004
00005
00006
00007 #include "GeneratorInterface/Herwig6Interface/interface/Herwig6Source.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/Utilities/interface/RandomNumberGenerator.h"
00014 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00015 #include "SimDataFormats/HepMCProduct/interface/GenInfoProduct.h"
00016 #include "FWCore/Framework/interface/Run.h"
00017
00018 #include <iostream>
00019 #include "time.h"
00020 #include <ctype.h>
00021
00022 using namespace edm;
00023 using namespace std;
00024
00025 #include "HepMC/HerwigWrapper6_4.h"
00026 #include "HepMC/IO_HERWIG.h"
00027
00028
00029 #include "herwig.h"
00030
00031
00032 extern"C" {
00033 void setpdfpath_(char*,int*);
00034 void mysetpdfpath_(char*);
00035 void setlhaparm_(char*);
00036 void setherwpdf_(void);
00037
00038
00039 }
00040
00041 #define setpdfpath setpdfpath_
00042 #define mysetpdfpath mysetpdfpath_
00043 #define setlhaparm setlhaparm_
00044 #define setherwpdf setherwpdf_
00045
00046
00047 Herwig6Source::Herwig6Source( const ParameterSet & pset,
00048 InputSourceDescription const& desc ) :
00049 GeneratedInputSource(pset, desc), evt(0),
00050 herwigVerbosity_ (pset.getUntrackedParameter<int>("herwigVerbosity",0)),
00051 herwigHepMCVerbosity_ (pset.getUntrackedParameter<bool>("herwigHepMCVerbosity",false)),
00052 herwigLhapdfVerbosity_ (pset.getUntrackedParameter<int>("herwigLhapdfVerbosity",0)),
00053 maxEventsToPrint_ (pset.getUntrackedParameter<int>("maxEventsToPrint",0)),
00054 comenergy(pset.getUntrackedParameter<double>("comEnergy",14000.)),
00055 lhapdfSetPath_(pset.getUntrackedParameter<string>("lhapdfSetPath","")),
00056 useJimmy_(pset.getUntrackedParameter<bool>("useJimmy",true)),
00057 doMPInteraction_(pset.getUntrackedParameter<bool>("doMPInteraction",true)),
00058 printCards_(pset.getUntrackedParameter<bool>("printCards",false)),
00059 numTrials_(pset.getUntrackedParameter<int>("numTrialsMPI",100)),
00060 extCrossSect(pset.getUntrackedParameter<double>("crossSection", -1.)),
00061 extFilterEff(pset.getUntrackedParameter<double>("filterEfficiency", -1.))
00062 {
00063
00064 std::ostringstream header_str;
00065
00066 header_str << "----------------------------------------------\n";
00067 header_str << "Initializing Herwig6Source\n";
00068 header_str << "----------------------------------------------\n";
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082 header_str << " Herwig verbosity level = " << herwigVerbosity_ << "\n";
00083 header_str << " LHAPDF verbosity level = " << herwigLhapdfVerbosity_ << "\n";
00084 header_str << " HepMC verbosity = " << herwigHepMCVerbosity_ << "\n";
00085 header_str << " Number of events to be printed = " << maxEventsToPrint_ << "\n";
00086
00087
00088 if(useJimmy_) {
00089 header_str << " HERWIG will be using JIMMY for UE/MI." << "\n";
00090 if(doMPInteraction_)
00091 header_str << " JIMMY trying to generate multiple interactions." << "\n";
00092 }
00093
00094
00095 char* lhaPdfs = NULL;
00096 header_str<<" Trying to find LHAPATH in environment ...";
00097 lhaPdfs = getenv("LHAPATH");
00098 if(lhaPdfs != NULL) {
00099 header_str<<" done.\n";
00100 lhapdfSetPath_=std::string(lhaPdfs);
00101 }
00102 else
00103 header_str<<" failed.\n";
00104
00105
00106
00107 hwudat();
00108
00109
00110
00111 hwproc.PBEAM1 = comenergy/2.;
00112 hwproc.PBEAM2 = comenergy/2.;
00113 hwbmch.PART1[0] = 'P';
00114 hwbmch.PART2[0] = 'P';
00115 for(int i=1;i<8;++i){
00116 hwbmch.PART1[i] = ' ';
00117 hwbmch.PART2[i] = ' ';}
00118 int numEvents = maxEvents();
00119 if(useJimmy_) jmparm.MSFLAG = 1;
00120
00121
00122 hwigin();
00123
00124 hwevnt.MAXER = int(numEvents/10);
00125 if(hwevnt.MAXER<100) hwevnt.MAXER = 100;
00126
00127 if(useJimmy_) jimmin();
00128
00129
00130 hwevnt.MAXPR = maxEventsToPrint_;
00131 hwpram.IPRINT = herwigVerbosity_;
00132 hwprop.RMASS[6] = 175.0;
00133
00134
00135 ParameterSet herwig_params =
00136 pset.getParameter<ParameterSet>("HerwigParameters") ;
00137
00138
00139 vector<string> setNames =
00140 herwig_params.getParameter<vector<string> >("parameterSets");
00141
00142
00143 for ( unsigned i=0; i<setNames.size(); ++i ) {
00144 string mySet = setNames[i];
00145 vector<string> pars =
00146 herwig_params.getParameter<vector<string> >(mySet);
00147
00148 header_str << "----------------------------------------------" << "\n";
00149 header_str << "Read HERWIG parameter set " << mySet << "\n";
00150 header_str << "----------------------------------------------" << "\n";
00151
00152
00153 for( vector<string>::const_iterator
00154 itPar = pars.begin(); itPar != pars.end(); ++itPar ) {
00155 static string sRandomValueSetting1("NRN(1)");
00156 static string sRandomValueSetting2("NRN(2)");
00157 if( (0 == itPar->compare(0,sRandomValueSetting1.size(),sRandomValueSetting1) )||(0 == itPar->compare(0,sRandomValueSetting2.size(),sRandomValueSetting2) )) {
00158 throw edm::Exception(edm::errors::Configuration,"HerwigError")
00159 <<" attempted to set random number using pythia command 'NRN(.)'. This is not allowed.\n Please use the RandomNumberGeneratorService to set the random number seed.";
00160 }
00161
00162 if( ! hwgive(*itPar) ) {
00163 throw edm::Exception(edm::errors::Configuration,"HerwigError")
00164 <<" herwig did not accept the following \""<<*itPar<<"\"";
00165 }
00166 else if(printCards_)
00167 header_str << " " << *itPar << "\n";
00168 }
00169 }
00170
00171
00172 header_str << "----------------------------------------------" << "\n";
00173 header_str << "Setting Herwig random number generator seeds" << "\n";
00174 header_str << "----------------------------------------------" << "\n";
00175 edm::Service<RandomNumberGenerator> rng;
00176 fRandomEngine = &(rng->getEngine());
00177 randomEngine = fRandomEngine;
00178 int wwseed = rng->mySeed();
00179 bool rngok = setRngSeeds(wwseed);
00180 if(!rngok)
00181 throw edm::Exception(edm::errors::Configuration,"HerwigError")
00182 <<" Impossible error in setting 'NRN(.)'.";
00183 header_str << " NRN(1) = "<<hwevnt.NRN[0]<<"\n";
00184 header_str << " NRN(2) = "<<hwevnt.NRN[1]<<"\n";
00185
00186
00187 setherwpdf();
00188 char pdfpath[232];
00189 int pathlen = lhapdfSetPath_.length();
00190 for(int i=0; i<pathlen; ++i)
00191 pdfpath[i]=lhapdfSetPath_.at(i);
00192 for(int i=pathlen; i<232; ++i)
00193 pdfpath[i]=' ';
00194 mysetpdfpath(pdfpath);
00195
00196
00197 hwuinc();
00198 hwusta("PI0 ",1);
00199 hweini();
00200 if(useJimmy_) jminit();
00201
00202 produces<HepMCProduct>();
00203 produces<GenInfoProduct, edm::InRun>();
00204
00205 header_str << "\n----------------------------------------------" << "\n";
00206 header_str << "Starting event generation" << "\n";
00207 header_str << "----------------------------------------------" << "\n";
00208
00209 edm::LogInfo("")<<header_str.str();
00210
00211
00212 }
00213
00214
00215 Herwig6Source::~Herwig6Source(){
00216
00217 std::ostringstream footer_str;
00218
00219 footer_str << "----------------------------------------------" << "\n";
00220 footer_str << "Event generation done" << "\n";
00221 footer_str << "----------------------------------------------" << "\n";
00222
00223 LogInfo("") << footer_str.str();
00224
00225 clear();
00226 }
00227
00228 void Herwig6Source::clear() {
00229
00230 hwefin();
00231 if(useJimmy_) jmefin();
00232 }
00233
00234
00235 bool Herwig6Source::produce(Event & e) {
00236
00237 int counter = 0;
00238 double mpiok = 1.0;
00239
00240 while(mpiok > 0.5 && counter < numTrials_) {
00241
00242
00243 hwuine();
00244 hwepro();
00245 hwbgen();
00246
00247
00248 if(useJimmy_ && doMPInteraction_ && hwevnt.IERROR==0)
00249 mpiok = hwmsct_dummy(1.1);
00250 else mpiok = 0.0;
00251 counter++;
00252 }
00253
00254
00255 if(mpiok > 0.5) {
00256 LogWarning("") <<" JIMMY could not produce MI in "<<numTrials_<<" trials.\n"<<" Event will be skipped to prevent from deadlock.\n";
00257 return true;
00258 }
00259
00260 hwdhob();
00261 hwcfor();
00262 hwcdec();
00263 hwdhad();
00264 hwdhvy();
00265 hwmevt();
00266 hwufne();
00267
00268
00269 if(hwevnt.IERROR!=0) return true;
00270
00271
00272 HepMC::IO_HERWIG conv;
00273
00274
00275 evt = new HepMC::GenEvent();
00276 bool ok = conv.fill_next_event( evt );
00277
00278 if(!ok) throw cms::Exception("HerwigError")
00279 <<" Conversion problems in event nr."<<numberEventsInRun() - remainingEvents() - 1<<".";
00280
00281
00282 evt->set_signal_process_id(hwproc.IPROC);
00283 evt->set_event_number(numberEventsInRun() - remainingEvents() - 1);
00284
00285 if (herwigHepMCVerbosity_) {
00286 LogWarning("") << "Event process = " << evt->signal_process_id() << "\n----------------------\n";
00287 evt->print();
00288 }
00289
00290
00291 if(evt) {
00292 auto_ptr<HepMCProduct> bare_product(new HepMCProduct());
00293 bare_product->addHepMCData(evt );
00294 e.put(bare_product);
00295 }
00296
00297 return true;
00298 }
00299
00300
00301
00302 bool Herwig6Source::hwgive(const std::string& ParameterString) {
00303 bool accepted = 1;
00304
00305
00306 if(!strncmp(ParameterString.c_str(),"IPROC",5)) {
00307 hwproc.IPROC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00308 if(hwproc.IPROC<0) {
00309 throw cms::Exception("HerwigError")
00310 <<" Attempted to set IPROC to a negative value. This is not allowed.\n Please use the McatnloInterface to cope with negative valued IPROCs.";
00311 }
00312 }
00313 else if(!strncmp(ParameterString.c_str(),"AUTPDF(",7)){
00314 LogWarning("") <<" WARNING: AUTPDF parameter *not* suported. HERWIG will use LHAPDF."<<"\n";
00315 }
00316 else if(!strncmp(ParameterString.c_str(),"TAUDEC",6)){
00317 int tostart=0;
00318 while(ParameterString.c_str()[tostart]!='=') tostart++;
00319 tostart++;
00320 while(ParameterString.c_str()[tostart]==' ') tostart++;
00321 int todo = 0;
00322 while(ParameterString.c_str()[todo+tostart]!='\0') {
00323 hwdspn.TAUDEC[todo]=ParameterString.c_str()[todo+tostart];
00324 todo++;
00325 }
00326 if(todo != 6) {
00327 throw cms::Exception("HerwigError")
00328 <<" Attempted to set TAUDEC to "<<hwdspn.TAUDEC<<". This is not allowed.\n Options for TAUDEC are HERWIG and TAUOLA.";
00329 }
00330 }
00331 else if(!strncmp(ParameterString.c_str(),"BDECAY",6)){
00332 LogWarning("")<<" WARNING: BDECAY parameter *not* suported. HERWIG will use default b decay."<<"\n";
00333 }
00334 else if(!strncmp(ParameterString.c_str(),"QCDLAM",6))
00335 hwpram.QCDLAM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00336 else if(!strncmp(ParameterString.c_str(),"VQCUT",5))
00337 hwpram.VQCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00338 else if(!strncmp(ParameterString.c_str(),"VGCUT",5))
00339 hwpram.VGCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00340 else if(!strncmp(ParameterString.c_str(),"VPCUT",5))
00341 hwpram.VPCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00342 else if(!strncmp(ParameterString.c_str(),"CLMAX",5))
00343 hwpram.CLMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00344 else if(!strncmp(ParameterString.c_str(),"CLPOW",5))
00345 hwpram.CLPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00346 else if(!strncmp(ParameterString.c_str(),"PSPLT(1)",8))
00347 hwpram.PSPLT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00348 else if(!strncmp(ParameterString.c_str(),"PSPLT(2)",8))
00349 hwpram.PSPLT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00350 else if(!strncmp(ParameterString.c_str(),"QDIQK",5))
00351 hwpram.QDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00352 else if(!strncmp(ParameterString.c_str(),"PDIQK",5))
00353 hwpram.PDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00354 else if(!strncmp(ParameterString.c_str(),"QSPAC",5))
00355 hwpram.QSPAC = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00356 else if(!strncmp(ParameterString.c_str(),"PTRMS",5))
00357 hwpram.PTRMS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00358 else if(!strncmp(ParameterString.c_str(),"IPRINT",6))
00359 hwpram.IPRINT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00360 else if(!strncmp(ParameterString.c_str(),"PRVTX",5))
00361 hwpram.PRVTX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00362 else if(!strncmp(ParameterString.c_str(),"NPRFMT",6))
00363 hwpram.NPRFMT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00364 else if(!strncmp(ParameterString.c_str(),"PRNDEC",6))
00365 hwpram.PRNDEC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00366 else if(!strncmp(ParameterString.c_str(),"PRNDEF",6))
00367 hwpram.PRNDEF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00368 else if(!strncmp(ParameterString.c_str(),"PRNTEX",6))
00369 hwpram.PRNTEX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00370 else if(!strncmp(ParameterString.c_str(),"PRNWEB",6))
00371 hwpram.PRNWEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00372 else if(!strncmp(ParameterString.c_str(),"MAXPR",5))
00373 hwevnt.MAXPR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00374 else if(!strncmp(ParameterString.c_str(),"MAXER",5))
00375 hwevnt.MAXER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00376 else if(!strncmp(ParameterString.c_str(),"LWEVT",5))
00377 hwevnt.LWEVT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00378 else if(!strncmp(ParameterString.c_str(),"LRSUD",5))
00379 hwpram.LRSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00380 else if(!strncmp(ParameterString.c_str(),"LWSUD",5))
00381 hwpram.LWSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00382 else if(!strncmp(ParameterString.c_str(),"NRN(1)",6))
00383 hwevnt.NRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00384 else if(!strncmp(ParameterString.c_str(),"NRN(2)",6))
00385 hwevnt.NRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00386 else if(!strncmp(ParameterString.c_str(),"WGTMAX",6))
00387 hwevnt.WGTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00388 else if(!strncmp(ParameterString.c_str(),"NOWGT",5))
00389 hwevnt.NOWGT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00390 else if(!strncmp(ParameterString.c_str(),"AVWGT",5))
00391 hwevnt.AVWGT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00392 else if(!strncmp(ParameterString.c_str(),"AZSOFT",6))
00393 hwpram.AZSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00394 else if(!strncmp(ParameterString.c_str(),"AZSPIN",6))
00395 hwpram.AZSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00396 else if(!strncmp(ParameterString.c_str(),"HARDME",6))
00397 hwpram.HARDME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00398 else if(!strncmp(ParameterString.c_str(),"SOFTME",6))
00399 hwpram.SOFTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00400 else if(!strncmp(ParameterString.c_str(),"GCUTME",6))
00401 hwpram.GCUTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00402 else if(!strncmp(ParameterString.c_str(),"NCOLO",5))
00403 hwpram.NCOLO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00404 else if(!strncmp(ParameterString.c_str(),"NFLAV",5))
00405 hwpram.NFLAV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00406 else if(!strncmp(ParameterString.c_str(),"MODPDF(1)",9))
00407 hwpram.MODPDF[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00408 else if(!strncmp(ParameterString.c_str(),"MODPDF(2)",9))
00409 hwpram.MODPDF[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00410 else if(!strncmp(ParameterString.c_str(),"NSTRU",5))
00411 hwpram.NSTRU = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00412 else if(!strncmp(ParameterString.c_str(),"PRSOF",5))
00413 hwpram.PRSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00414 else if(!strncmp(ParameterString.c_str(),"ENSOF",5))
00415 hwpram.ENSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00416 else if(!strncmp(ParameterString.c_str(),"IOPREM",6))
00417 hwpram.IOPREM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00418 else if(!strncmp(ParameterString.c_str(),"BTCLM",5))
00419 hwpram.BTCLM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00420 else if(!strncmp(ParameterString.c_str(),"ETAMIX",6))
00421 hwpram.ETAMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00422 else if(!strncmp(ParameterString.c_str(),"PHIMIX",6))
00423 hwpram.PHIMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00424 else if(!strncmp(ParameterString.c_str(),"H1MIX",5))
00425 hwpram.H1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00426 else if(!strncmp(ParameterString.c_str(),"F0MIX",5))
00427 hwpram.F0MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00428 else if(!strncmp(ParameterString.c_str(),"F1MIX",5))
00429 hwpram.F1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00430 else if(!strncmp(ParameterString.c_str(),"F2MIX",5))
00431 hwpram.F2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00432 else if(!strncmp(ParameterString.c_str(),"ET2MIX",6))
00433 hwpram.ET2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00434 else if(!strncmp(ParameterString.c_str(),"OMHMIX",6))
00435 hwpram.OMHMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00436 else if(!strncmp(ParameterString.c_str(),"PH3MIX",6))
00437 hwpram.PH3MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00438 else if(!strncmp(ParameterString.c_str(),"B1LIM",5))
00439 hwpram.B1LIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00440 else if(!strncmp(ParameterString.c_str(),"CLDIR(1)",8))
00441 hwpram.CLDIR[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00442 else if(!strncmp(ParameterString.c_str(),"CLDIR(2)",8))
00443 hwpram.CLDIR[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00444 else if(!strncmp(ParameterString.c_str(),"CLSMR(1)",8))
00445 hwpram.CLSMR[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00446 else if(!strncmp(ParameterString.c_str(),"CLSMR(2)",8))
00447 hwpram.CLSMR[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00448 else if(!strncmp(ParameterString.c_str(),"RMASS(1)",8))
00449 hwprop.RMASS[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00450 else if(!strncmp(ParameterString.c_str(),"RMASS(2)",8))
00451 hwprop.RMASS[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00452 else if(!strncmp(ParameterString.c_str(),"RMASS(3)",8))
00453 hwprop.RMASS[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00454 else if(!strncmp(ParameterString.c_str(),"RMASS(4)",8))
00455 hwprop.RMASS[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00456 else if(!strncmp(ParameterString.c_str(),"RMASS(5)",8))
00457 hwprop.RMASS[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00458 else if(!strncmp(ParameterString.c_str(),"RMASS(6)",8))
00459 hwprop.RMASS[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00460 else if(!strncmp(ParameterString.c_str(),"RMASS(13)",9))
00461 hwprop.RMASS[13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00462 else if(!strncmp(ParameterString.c_str(),"SUDORD",6))
00463 hwusud.SUDORD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00464 else if(!strncmp(ParameterString.c_str(),"INTER",5))
00465 hwusud.INTER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00466 else if(!strncmp(ParameterString.c_str(),"NEGWTS",6))
00467 hw6203.NEGWTS = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00468 else if(!strncmp(ParameterString.c_str(),"PMBN1",5))
00469 hwminb.PMBN1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00470 else if(!strncmp(ParameterString.c_str(),"PMBN2",5))
00471 hwminb.PMBN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00472 else if(!strncmp(ParameterString.c_str(),"PMBN3",5))
00473 hwminb.PMBN3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00474 else if(!strncmp(ParameterString.c_str(),"PMBK1",5))
00475 hwminb.PMBK1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00476 else if(!strncmp(ParameterString.c_str(),"PMBK2",5))
00477 hwminb.PMBK2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00478 else if(!strncmp(ParameterString.c_str(),"PMBM1",5))
00479 hwminb.PMBM1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00480 else if(!strncmp(ParameterString.c_str(),"PMBM2",5))
00481 hwminb.PMBM2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00482 else if(!strncmp(ParameterString.c_str(),"PMBP1",5))
00483 hwminb.PMBP1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00484 else if(!strncmp(ParameterString.c_str(),"PMBP2",5))
00485 hwminb.PMBP2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00486 else if(!strncmp(ParameterString.c_str(),"PMBP3",5))
00487 hwminb.PMBP3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00488 else if(!strncmp(ParameterString.c_str(),"VMIN2",5))
00489 hwdist.VMIN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00490 else if(!strncmp(ParameterString.c_str(),"EXAG",4))
00491 hwdist.EXAG = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00492 else if(!strncmp(ParameterString.c_str(),"PRECO",5))
00493 hwuclu.PRECO = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00494 else if(!strncmp(ParameterString.c_str(),"CLRECO",6))
00495 hwuclu.CLRECO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00496 else if(!strncmp(ParameterString.c_str(),"PWT(1)",6))
00497 hwuwts.PWT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00498 else if(!strncmp(ParameterString.c_str(),"PWT(2)",6))
00499 hwuwts.PWT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00500 else if(!strncmp(ParameterString.c_str(),"PWT(3)",6))
00501 hwuwts.PWT[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00502 else if(!strncmp(ParameterString.c_str(),"PWT(4)",6))
00503 hwuwts.PWT[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00504 else if(!strncmp(ParameterString.c_str(),"PWT(5)",6))
00505 hwuwts.PWT[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00506 else if(!strncmp(ParameterString.c_str(),"PWT(6)",6))
00507 hwuwts.PWT[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00508 else if(!strncmp(ParameterString.c_str(),"PWT(7)",6))
00509 hwuwts.PWT[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00510 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,0)",12))
00511 hwuwts.REPWT[0][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00512 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,1)",12))
00513 hwuwts.REPWT[0][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00514 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,2)",12))
00515 hwuwts.REPWT[0][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00516 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,3)",12))
00517 hwuwts.REPWT[0][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00518 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,4)",12))
00519 hwuwts.REPWT[0][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00520 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,0)",12))
00521 hwuwts.REPWT[0][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00522 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,1)",12))
00523 hwuwts.REPWT[0][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00524 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,2)",12))
00525 hwuwts.REPWT[0][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00526 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,3)",12))
00527 hwuwts.REPWT[0][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00528 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,4)",12))
00529 hwuwts.REPWT[0][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00530 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,0)",12))
00531 hwuwts.REPWT[0][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00532 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,1)",12))
00533 hwuwts.REPWT[0][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00534 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,2)",12))
00535 hwuwts.REPWT[0][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00536 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,3)",12))
00537 hwuwts.REPWT[0][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00538 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,4)",12))
00539 hwuwts.REPWT[0][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00540 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,0)",12))
00541 hwuwts.REPWT[0][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00542 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,1)",12))
00543 hwuwts.REPWT[0][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00544 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,2)",12))
00545 hwuwts.REPWT[0][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00546 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,3)",12))
00547 hwuwts.REPWT[0][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00548 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,4)",12))
00549 hwuwts.REPWT[0][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00550 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,0)",12))
00551 hwuwts.REPWT[0][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00552 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,1)",12))
00553 hwuwts.REPWT[0][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00554 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,2)",12))
00555 hwuwts.REPWT[0][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00556 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,3)",12))
00557 hwuwts.REPWT[0][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00558 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,4)",12))
00559 hwuwts.REPWT[0][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00560 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,0)",12))
00561 hwuwts.REPWT[1][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00562 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,1)",12))
00563 hwuwts.REPWT[1][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00564 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,2)",12))
00565 hwuwts.REPWT[1][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00566 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,3)",12))
00567 hwuwts.REPWT[1][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00568 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,4)",12))
00569 hwuwts.REPWT[1][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00570 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,0)",12))
00571 hwuwts.REPWT[1][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00572 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,1)",12))
00573 hwuwts.REPWT[1][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00574 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,2)",12))
00575 hwuwts.REPWT[1][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00576 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,3)",12))
00577 hwuwts.REPWT[1][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00578 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,4)",12))
00579 hwuwts.REPWT[1][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00580 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,0)",12))
00581 hwuwts.REPWT[1][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00582 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,1)",12))
00583 hwuwts.REPWT[1][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00584 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,2)",12))
00585 hwuwts.REPWT[1][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00586 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,3)",12))
00587 hwuwts.REPWT[1][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00588 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,4)",12))
00589 hwuwts.REPWT[1][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00590 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,0)",12))
00591 hwuwts.REPWT[1][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00592 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,1)",12))
00593 hwuwts.REPWT[1][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00594 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,2)",12))
00595 hwuwts.REPWT[1][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00596 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,3)",12))
00597 hwuwts.REPWT[1][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00598 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,4)",12))
00599 hwuwts.REPWT[1][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00600 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,0)",12))
00601 hwuwts.REPWT[1][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00602 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,1)",12))
00603 hwuwts.REPWT[1][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00604 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,2)",12))
00605 hwuwts.REPWT[1][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00606 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,3)",12))
00607 hwuwts.REPWT[1][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00608 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,4)",12))
00609 hwuwts.REPWT[1][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00610 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,0)",12))
00611 hwuwts.REPWT[2][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00612 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,1)",12))
00613 hwuwts.REPWT[2][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00614 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,2)",12))
00615 hwuwts.REPWT[2][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00616 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,3)",12))
00617 hwuwts.REPWT[2][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00618 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,4)",12))
00619 hwuwts.REPWT[2][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00620 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,0)",12))
00621 hwuwts.REPWT[2][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00622 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,1)",12))
00623 hwuwts.REPWT[2][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00624 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,2)",12))
00625 hwuwts.REPWT[2][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00626 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,3)",12))
00627 hwuwts.REPWT[2][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00628 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,4)",12))
00629 hwuwts.REPWT[2][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00630 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,0)",12))
00631 hwuwts.REPWT[2][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00632 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,1)",12))
00633 hwuwts.REPWT[2][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00634 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,2)",12))
00635 hwuwts.REPWT[2][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00636 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,3)",12))
00637 hwuwts.REPWT[2][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00638 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,4)",12))
00639 hwuwts.REPWT[2][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00640 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,0)",12))
00641 hwuwts.REPWT[2][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00642 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,1)",12))
00643 hwuwts.REPWT[2][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00644 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,2)",12))
00645 hwuwts.REPWT[2][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00646 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,3)",12))
00647 hwuwts.REPWT[2][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00648 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,4)",12))
00649 hwuwts.REPWT[2][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00650 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,0)",12))
00651 hwuwts.REPWT[2][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00652 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,1)",12))
00653 hwuwts.REPWT[2][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00654 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,2)",12))
00655 hwuwts.REPWT[2][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00656 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,3)",12))
00657 hwuwts.REPWT[2][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00658 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,4)",12))
00659 hwuwts.REPWT[2][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00660 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,0)",12))
00661 hwuwts.REPWT[3][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00662 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,1)",12))
00663 hwuwts.REPWT[3][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00664 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,2)",12))
00665 hwuwts.REPWT[3][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00666 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,3)",12))
00667 hwuwts.REPWT[3][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00668 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,4)",12))
00669 hwuwts.REPWT[3][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00670 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,0)",12))
00671 hwuwts.REPWT[3][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00672 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,1)",12))
00673 hwuwts.REPWT[3][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00674 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,2)",12))
00675 hwuwts.REPWT[3][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00676 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,3)",12))
00677 hwuwts.REPWT[3][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00678 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,4)",12))
00679 hwuwts.REPWT[3][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00680 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,0)",12))
00681 hwuwts.REPWT[3][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00682 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,1)",12))
00683 hwuwts.REPWT[3][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00684 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,2)",12))
00685 hwuwts.REPWT[3][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00686 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,3)",12))
00687 hwuwts.REPWT[3][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00688 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,4)",12))
00689 hwuwts.REPWT[3][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00690 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,0)",12))
00691 hwuwts.REPWT[3][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00692 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,1)",12))
00693 hwuwts.REPWT[3][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00694 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,2)",12))
00695 hwuwts.REPWT[3][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00696 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,3)",12))
00697 hwuwts.REPWT[3][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00698 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,4)",12))
00699 hwuwts.REPWT[3][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00700 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,0)",12))
00701 hwuwts.REPWT[3][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00702 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,1)",12))
00703 hwuwts.REPWT[3][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00704 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,2)",12))
00705 hwuwts.REPWT[3][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00706 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,3)",12))
00707 hwuwts.REPWT[3][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00708 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,4)",12))
00709 hwuwts.REPWT[3][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00710 else if(!strncmp(ParameterString.c_str(),"SNGWT",5))
00711 hwuwts.SNGWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00712 else if(!strncmp(ParameterString.c_str(),"DECWT",5))
00713 hwuwts.DECWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00714 else if(!strncmp(ParameterString.c_str(),"PLTCUT",6))
00715 hwdist.PLTCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00716 else if(!strncmp(ParameterString.c_str(),"VTOCDK(",7)){
00717
00718 int ind = atoi(&ParameterString[7]);
00719 hwprop.VTOCDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
00720 else if(!strncmp(ParameterString.c_str(),"VTORDK(",7)){
00721
00722 int ind = atoi(&ParameterString[7]);
00723 hwprop.VTORDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
00724 else if(!strncmp(ParameterString.c_str(),"PIPSMR",6))
00725 hwdist.PIPSMR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00726 else if(!strncmp(ParameterString.c_str(),"VIPWID(1)",9))
00727 hw6202.VIPWID[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00728 else if(!strncmp(ParameterString.c_str(),"VIPWID(2)",9))
00729 hw6202.VIPWID[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00730 else if(!strncmp(ParameterString.c_str(),"VIPWID(3)",9))
00731 hw6202.VIPWID[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00732 else if(!strncmp(ParameterString.c_str(),"MAXDKL",6))
00733 hwdist.MAXDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00734 else if(!strncmp(ParameterString.c_str(),"IOPDKL",6))
00735 hwdist.IOPDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00736 else if(!strncmp(ParameterString.c_str(),"DXRCYL",6))
00737 hw6202.DXRCYL = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00738 else if(!strncmp(ParameterString.c_str(),"DXZMAX",6))
00739 hw6202.DXZMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00740 else if(!strncmp(ParameterString.c_str(),"DXRSPH",6))
00741 hw6202.DXRSPH = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00742
00743
00744 else if(!strncmp(ParameterString.c_str(),"MIXING",6))
00745 hwdist.MIXING = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00746 else if(!strncmp(ParameterString.c_str(),"XMIX(1)",7))
00747 hwdist.XMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00748 else if(!strncmp(ParameterString.c_str(),"XMIX(2)",7))
00749 hwdist.XMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00750 else if(!strncmp(ParameterString.c_str(),"YMIX(1)",7))
00751 hwdist.YMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00752 else if(!strncmp(ParameterString.c_str(),"YMIX(2)",7))
00753 hwdist.YMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00754 else if(!strncmp(ParameterString.c_str(),"RMASS(198)",10))
00755 hwprop.RMASS[198] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00756 else if(!strncmp(ParameterString.c_str(),"RMASS(199)",10))
00757 hwprop.RMASS[199] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00758 else if(!strncmp(ParameterString.c_str(),"GAMW",4))
00759 hwpram.GAMW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00760 else if(!strncmp(ParameterString.c_str(),"GAMZ",4))
00761 hwpram.GAMZ = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00762 else if(!strncmp(ParameterString.c_str(),"RMASS(200)",10))
00763 hwprop.RMASS[200] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00764 else if(!strncmp(ParameterString.c_str(),"WZRFR",5))
00765 hw6202.WZRFR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00766 else if(!strncmp(ParameterString.c_str(),"MODBOS(",7)) {
00767 int ind = atoi(&ParameterString[7]);
00768 hwbosc.MODBOS[ind-1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00769 else if(!strncmp(ParameterString.c_str(),"RMASS(201)",10))
00770 hwprop.RMASS[201] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00771 else if(!strncmp(ParameterString.c_str(),"IOPHIG",6))
00772 hwbosc.IOPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00773 else if(!strncmp(ParameterString.c_str(),"GAMMAX",6))
00774 hwbosc.GAMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00775 else if(!strncmp(ParameterString.c_str(),"ENHANC(",7)) {
00776 int ind = atoi(&ParameterString[7]);
00777 hwbosc.ENHANC[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00778 else if(!strncmp(ParameterString.c_str(),"RMASS(209)",10))
00779 hwprop.RMASS[209] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00780 else if(!strncmp(ParameterString.c_str(),"RMASS(215)",10))
00781 hwprop.RMASS[215] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00782 else if(!strncmp(ParameterString.c_str(),"ALPHEM",6))
00783 hwpram.ALPHEM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00784 else if(!strncmp(ParameterString.c_str(),"SWEIN",5))
00785 hwpram.SWEIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00786 else if(!strncmp(ParameterString.c_str(),"QFCH(",5)){
00787 int ind = atoi(&ParameterString[5]);
00788 hwpram.QFCH[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00789 else if(!strncmp(ParameterString.c_str(),"AFCH(1,",7)){
00790 int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
00791 hwpram.AFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00792 else if(!strncmp(ParameterString.c_str(),"AFCH(2,",7)){
00793 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00794 hwpram.AFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00795 else if(!strncmp(ParameterString.c_str(),"AFCH(3,",7)){
00796 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00797 hwpram.AFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00798 else if(!strncmp(ParameterString.c_str(),"AFCH(4,",7)){
00799 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00800 hwpram.AFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00801 else if(!strncmp(ParameterString.c_str(),"AFCH(5,",7)){
00802 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00803 hwpram.AFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00804 else if(!strncmp(ParameterString.c_str(),"AFCH(6,",7)){
00805 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00806 hwpram.AFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00807 else if(!strncmp(ParameterString.c_str(),"AFCH(7,",7)){
00808 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00809 hwpram.AFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00810 else if(!strncmp(ParameterString.c_str(),"AFCH(8,",7)){
00811 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00812 hwpram.AFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00813 else if(!strncmp(ParameterString.c_str(),"AFCH(9,",7)){
00814 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00815 hwpram.AFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00816 else if(!strncmp(ParameterString.c_str(),"AFCH(10,",8)){
00817 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00818 hwpram.AFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00819 else if(!strncmp(ParameterString.c_str(),"AFCH(11,",8)){
00820 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00821 hwpram.AFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00822 else if(!strncmp(ParameterString.c_str(),"AFCH(12,",8)){
00823 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00824 hwpram.AFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00825 else if(!strncmp(ParameterString.c_str(),"AFCH(13,",8)){
00826 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00827 hwpram.AFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00828 else if(!strncmp(ParameterString.c_str(),"AFCH(14,",8)){
00829 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00830 hwpram.AFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00831 else if(!strncmp(ParameterString.c_str(),"AFCH(15,",8)){
00832 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00833 hwpram.AFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00834 else if(!strncmp(ParameterString.c_str(),"AFCH(16,",8)){
00835 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00836 hwpram.AFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00837 else if(!strncmp(ParameterString.c_str(),"VFCH(1,",7)){
00838 int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
00839 hwpram.VFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00840 else if(!strncmp(ParameterString.c_str(),"VFCH(2,",7)){
00841 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00842 hwpram.VFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00843 else if(!strncmp(ParameterString.c_str(),"VFCH(3,",7)){
00844 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00845 hwpram.VFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00846 else if(!strncmp(ParameterString.c_str(),"VFCH(4,",7)){
00847 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00848 hwpram.VFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00849 else if(!strncmp(ParameterString.c_str(),"VFCH(5,",7)){
00850 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00851 hwpram.VFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00852 else if(!strncmp(ParameterString.c_str(),"VFCH(6,",7)){
00853 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00854 hwpram.VFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00855 else if(!strncmp(ParameterString.c_str(),"VFCH(7,",7)){
00856 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00857 hwpram.VFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00858 else if(!strncmp(ParameterString.c_str(),"VFCH(8,",7)){
00859 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00860 hwpram.VFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00861 else if(!strncmp(ParameterString.c_str(),"VFCH(9,",7)){
00862 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
00863 hwpram.VFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00864 else if(!strncmp(ParameterString.c_str(),"VFCH(10,",8)){
00865 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00866 hwpram.VFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00867 else if(!strncmp(ParameterString.c_str(),"VFCH(11,",8)){
00868 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00869 hwpram.VFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00870 else if(!strncmp(ParameterString.c_str(),"VFCH(12,",8)){
00871 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00872 hwpram.VFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00873 else if(!strncmp(ParameterString.c_str(),"VFCH(13,",8)){
00874 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00875 hwpram.VFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00876 else if(!strncmp(ParameterString.c_str(),"VFCH(14,",8)){
00877 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00878 hwpram.VFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00879 else if(!strncmp(ParameterString.c_str(),"VFCH(15,",8)){
00880 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00881 hwpram.VFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00882 else if(!strncmp(ParameterString.c_str(),"VFCH(16,",8)){
00883 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
00884 hwpram.VFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00885 else if(!strncmp(ParameterString.c_str(),"ZPRIME",6))
00886 hwpram.ZPRIME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00887 else if(!strncmp(ParameterString.c_str(),"RMASS(202)",10))
00888 hwprop.RMASS[202] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00889 else if(!strncmp(ParameterString.c_str(),"GAMZP",5))
00890 hwpram.GAMZP = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00891 else if(!strncmp(ParameterString.c_str(),"VCKM(",5)) {
00892 int ind1 = atoi(&ParameterString[5]);
00893 if(ind1<1||ind1>3) return 0;
00894 int ind2 = atoi(&ParameterString[7]);
00895 if(ind2<1||ind2>3) return 0;
00896 hwpram.VCKM[ind2][ind1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00897 else if(!strncmp(ParameterString.c_str(),"SCABI",5))
00898 hwpram.SCABI = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00899 else if(!strncmp(ParameterString.c_str(),"EPOLN(",6)) {
00900 int ind = atoi(&ParameterString[6]);
00901 if(ind<1||ind>3) return 0;
00902 hwhard.EPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00903 else if(!strncmp(ParameterString.c_str(),"PPOLN(",6)) {
00904 int ind = atoi(&ParameterString[6]);
00905 if(ind<1||ind>3) return 0;
00906 hwhard.PPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00907 else if(!strncmp(ParameterString.c_str(),"QLIM",4))
00908 hwhard.QLIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00909 else if(!strncmp(ParameterString.c_str(),"THMAX",5))
00910 hwhard.THMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00911 else if(!strncmp(ParameterString.c_str(),"Y4JT",4))
00912 hwhard.Y4JT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00913 else if(!strncmp(ParameterString.c_str(),"DURHAM",6))
00914 hwhard.DURHAM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00915 else if(!strncmp(ParameterString.c_str(),"IOP4JT(1)",9))
00916 hwpram.IOP4JT[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00917 else if(!strncmp(ParameterString.c_str(),"IOP4JT(2)",9))
00918 hwpram.IOP4JT[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00919 else if(!strncmp(ParameterString.c_str(),"BGSHAT",6))
00920 hwhard.BGSHAT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00921 else if(!strncmp(ParameterString.c_str(),"BREIT",5))
00922 hwbrch.BREIT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00923 else if(!strncmp(ParameterString.c_str(),"USECMF",6))
00924 hwbrch.USECMF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00925 else if(!strncmp(ParameterString.c_str(),"NOSPAC",6))
00926 hwpram.NOSPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00927 else if(!strncmp(ParameterString.c_str(),"ISPAC",5))
00928 hwpram.ISPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00929 else if(!strncmp(ParameterString.c_str(),"TMNISR",6))
00930 hwhard.TMNISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00931 else if(!strncmp(ParameterString.c_str(),"ZMXISR",6))
00932 hwhard.ZMXISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00933 else if(!strncmp(ParameterString.c_str(),"ASFIXD",6))
00934 hwhard.ASFIXD = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00935 else if(!strncmp(ParameterString.c_str(),"OMEGA0",6))
00936 hwhard.OMEGA0 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00937 else if(!strncmp(ParameterString.c_str(),"IAPHIG",6))
00938 hwhard.IAPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00939 else if(!strncmp(ParameterString.c_str(),"PHOMAS",6))
00940 hwhard.PHOMAS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00941 else if(!strncmp(ParameterString.c_str(),"PRESPL",6))
00942 hw6500.PRESPL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00943 else if(!strncmp(ParameterString.c_str(),"PTMIN",5))
00944 hwhard.PTMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00945 else if(!strncmp(ParameterString.c_str(),"PTMAX",5))
00946 hwhard.PTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00947 else if(!strncmp(ParameterString.c_str(),"PTPOW",5))
00948 hwhard.PTPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00949 else if(!strncmp(ParameterString.c_str(),"YJMIN",5))
00950 hwhard.YJMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00951 else if(!strncmp(ParameterString.c_str(),"YJMAX",5))
00952 hwhard.YJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00953 else if(!strncmp(ParameterString.c_str(),"EMMIN",5))
00954 hwhard.EMMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00955 else if(!strncmp(ParameterString.c_str(),"EMMAX",5))
00956 hwhard.EMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00957 else if(!strncmp(ParameterString.c_str(),"EMPOW",5))
00958 hwhard.EMPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00959 else if(!strncmp(ParameterString.c_str(),"Q2MIN",5))
00960 hwhard.Q2MIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00961 else if(!strncmp(ParameterString.c_str(),"Q2MAX",5))
00962 hwhard.Q2MAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00963 else if(!strncmp(ParameterString.c_str(),"Q2POW",5))
00964 hwhard.Q2POW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00965 else if(!strncmp(ParameterString.c_str(),"YBMIN",5))
00966 hwhard.YBMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00967 else if(!strncmp(ParameterString.c_str(),"YBMAX",5))
00968 hwhard.YBMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00969 else if(!strncmp(ParameterString.c_str(),"WHMIN",5))
00970 hwhard.WHMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00971 else if(!strncmp(ParameterString.c_str(),"ZJMAX",5))
00972 hwhard.ZJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00973 else if(!strncmp(ParameterString.c_str(),"Q2WWMN",6))
00974 hwhard.Q2WWMN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00975 else if(!strncmp(ParameterString.c_str(),"Q2WWMX",6))
00976 hwhard.Q2WWMX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00977 else if(!strncmp(ParameterString.c_str(),"YWWMIN",6))
00978 hwhard.YWWMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00979 else if(!strncmp(ParameterString.c_str(),"YWWMAX",6))
00980 hwhard.YWWMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00981 else if(!strncmp(ParameterString.c_str(),"CSPEED",6))
00982 hwpram.CSPEED = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00983 else if(!strncmp(ParameterString.c_str(),"GEV2NB",6))
00984 hwpram.GEV2NB = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00985 else if(!strncmp(ParameterString.c_str(),"IBSH",4))
00986 hwhard.IBSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00987 else if(!strncmp(ParameterString.c_str(),"IBRN(1)",7))
00988 hwhard.IBRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00989 else if(!strncmp(ParameterString.c_str(),"IBRN(2)",7))
00990 hwhard.IBRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00991 else if(!strncmp(ParameterString.c_str(),"NQEV",4))
00992 hwusud.NQEV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00993 else if(!strncmp(ParameterString.c_str(),"ZBINM",5))
00994 hwpram.ZBINM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00995 else if(!strncmp(ParameterString.c_str(),"NZBIN",5))
00996 hwpram.NZBIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00997 else if(!strncmp(ParameterString.c_str(),"NBTRY",5))
00998 hwpram.NBTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00999 else if(!strncmp(ParameterString.c_str(),"NCTRY",5))
01000 hwpram.NCTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01001 else if(!strncmp(ParameterString.c_str(),"NETRY",5))
01002 hwpram.NETRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01003 else if(!strncmp(ParameterString.c_str(),"NSTRY",5))
01004 hwpram.NSTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01005 else if(!strncmp(ParameterString.c_str(),"ACCUR",5))
01006 hwusud.ACCUR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01007 else if(!strncmp(ParameterString.c_str(),"RPARTY",6))
01008 hwrpar.RPARTY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01009 else if(!strncmp(ParameterString.c_str(),"SUSYIN",6))
01010 hwsusy.SUSYIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01011 else if(!strncmp(ParameterString.c_str(),"LRSUSY",6))
01012 hw6202.LRSUSY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01013 else if(!strncmp(ParameterString.c_str(),"SYSPIN",6))
01014 hwdspn.SYSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01015 else if(!strncmp(ParameterString.c_str(),"THREEB",6))
01016 hwdspn.THREEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01017 else if(!strncmp(ParameterString.c_str(),"FOURB",5))
01018 hwdspn.FOURB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01019 else if(!strncmp(ParameterString.c_str(),"LHSOFT",6))
01020 hwgupr.LHSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01021 else if(!strncmp(ParameterString.c_str(),"LHGLSF",6))
01022 hwgupr.LHGLSF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01023 else if(!strncmp(ParameterString.c_str(),"OPTM",4))
01024 hw6300.OPTM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01025 else if(!strncmp(ParameterString.c_str(),"IOPSTP",6))
01026 hw6300.IOPSTP = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01027 else if(!strncmp(ParameterString.c_str(),"IOPSH",5))
01028 hw6300.IOPSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01029 else if(!strncmp(ParameterString.c_str(),"JMUEO",5))
01030 jmparm.JMUEO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01031 else if(!strncmp(ParameterString.c_str(),"PTJIM",5))
01032 jmparm.PTJIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01033 else if(!strncmp(ParameterString.c_str(),"JMRAD(73)",9))
01034 jmparm.JMRAD[72] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01035
01036 else accepted = 0;
01037
01038 return accepted;
01039 }
01040
01041
01042 #ifdef NEVER
01043
01044
01045
01046 extern "C" {
01047 void hwaend_(){}
01048 }
01049
01050 #endif
01051
01052 bool Herwig6Source::setRngSeeds(int mseed)
01053 {
01054 double temx[5];
01055 for (int i=0; i<5; i++) {
01056 mseed = mseed * 29943829 - 1;
01057 temx[i] = mseed * (1./(65536.*65536.));
01058 }
01059 long double c;
01060 c = (long double)2111111111.0 * temx[3] +
01061 1492.0 * (temx[3] = temx[2]) +
01062 1776.0 * (temx[2] = temx[1]) +
01063 5115.0 * (temx[1] = temx[0]) +
01064 temx[4];
01065 temx[4] = floorl(c);
01066 temx[0] = c - temx[4];
01067 temx[4] = temx[4] * (1./(65536.*65536.));
01068 hwevnt.NRN[0]=int(temx[0]*99999);
01069 c = (long double)2111111111.0 * temx[3] +
01070 1492.0 * (temx[3] = temx[2]) +
01071 1776.0 * (temx[2] = temx[1]) +
01072 5115.0 * (temx[1] = temx[0]) +
01073 temx[4];
01074 temx[4] = floorl(c);
01075 temx[0] = c - temx[4];
01076 hwevnt.NRN[1]=int(temx[0]*99999);
01077
01078 return true;
01079 }
01080
01081 void Herwig6Source::endRun(Run & r) {
01082
01083 auto_ptr<GenInfoProduct> giprod (new GenInfoProduct());
01084
01085
01086
01087 double RNWGT=1./hwevnt.NWGTS;
01088 double AVWGT=hwevnt.WGTSUM*RNWGT;
01089
01090 intCrossSect=1000.*AVWGT;
01091
01092
01093 giprod->set_cross_section(intCrossSect);
01094 giprod->set_external_cross_section(extCrossSect);
01095 giprod->set_filter_efficiency(extFilterEff);
01096 r.put(giprod);
01097
01098 }
01099
01100
01101
01102
01103 #ifdef NEVER
01104 extern "C" {
01105 inline void cmsending_(int* ecode) {
01106 LogError("")<<" ERROR: Herwig stoped run after receiving error code "<<*ecode<<".\n";
01107 throw cms::Exception("Herwig6Error") <<" Herwig stoped run with error code "<<*ecode<<".";
01108 }
01109 }
01110 #endif