void Hard_Decay_Handler::ReadDecayTable(Flavour decayer) { DEBUG_FUNC(decayer); if (!m_store_results) return; Data_Reader reader = Data_Reader("|",";","!"); reader.SetAddCommandLine(false); reader.AddComment("#"); reader.AddComment("//"); reader.AddWordSeparator("\t"); reader.SetInputPath(m_resultdir); reader.SetInputFile(decayer.ShellName()); vector<vector<string> > file; if(reader.MatrixFromFile(file)) { for (size_t iline=0; iline<file.size(); ++iline) { if (file[iline].size()==4) { string decaychannel=file[iline][0]; vector<double> results(3); for (size_t i=0; i<3; ++i) results[i]=ToType<double>(file[iline][i+1]); m_read[decayer].insert(make_pair(decaychannel, results)); } else { PRINT_INFO("Wrong format in decay table in "<<m_resultdir); } } } }
bool Simple_String::Initialize() { CleanUp(); if (InputPath()=="" && InputFile()=="") return false; if (!rpa->gen.Beam1().IsHadron() || !rpa->gen.Beam2().IsHadron()) return false; Data_Reader *reader = new Data_Reader(" ",";","!","="); reader->AddComment("#"); reader->AddWordSeparator("\t"); reader->SetInputPath(InputPath()); reader->SetInputFile(InputFile()); std::vector<std::vector<std::string> > helpsvv; if (!reader->MatrixFromFile(helpsvv,"REGGE_TRAJECTORY")) { helpsvv.push_back(std::vector<std::string>(3)); helpsvv.back()[0]="Pomeron"; helpsvv.back()[1]="1.0808"; helpsvv.back()[2]="0.25"; } msg_Info()<<"Simple_String::Initialize(): Adding Reggeon {\n"; for (size_t i=0;i<helpsvv.size();++i) { if (helpsvv[i].size()<3) continue; m_reggeons.push_back(new Reggeon_Trajectory (ToType<double>(helpsvv[i][1]), ToType<double>(helpsvv[i][2]))); m_reggeons.back()->SetS(sqr(rpa->gen.Ecms())); msg_Info()<<" "<<std::setw(10)<<helpsvv[i][0] <<" "<<std::setw(8)<<helpsvv[i][1] <<" "<<std::setw(8)<<helpsvv[i][2]<<"\n"; } msg_Info()<<"}"<<std::endl; p_remnants[0]=p_isr->GetRemnant(0); p_remnants[1]=p_isr->GetRemnant(1); return true; }
bool Amisic::Initialize() { if (InputPath()=="" && InputFile()=="") return false; Data_Reader *reader = new Data_Reader(" ",";","!","="); reader->AddComment("#"); reader->AddWordSeparator("\t"); reader->SetInputPath(InputPath()); reader->SetInputFile(InputFile()); std::vector<std::string> model; if (!reader->VectorFromFile(model,"HARD_MODEL_NAME")) { model.push_back("Simple_Chain"); } for (size_t i=1;i<model.size();++i) model[0]+=" "+model[i]; SelectHardModel(model[0]); if (!reader->VectorFromFile(model,"SOFT_MODEL_NAME")) { model.push_back("None"); } for (size_t i=1;i<model.size();++i) model[0]+=" "+model[i]; SelectSoftModel(model[0]); std::string file; if (!reader->ReadFromFile(file,"HARD_MODEL_FILE")) file=InputFile(); p_hardbase->SetInputPath(InputPath()); p_hardbase->SetInputFile(file); if (!reader->ReadFromFile(file,"SOFT_MODEL_FILE")) file=InputFile(); p_softbase->SetInputPath(InputPath()); p_softbase->SetInputFile(file); delete reader; bool success=true; success=success&&p_hardbase->Initialize(); success=success&&p_softbase->Initialize(); return success; }
Lund_Interface::Lund_Interface(string _m_path,string _m_file): m_path(_m_path),m_file(_m_file), m_maxtrials(2), p_hepevt(NULL), m_compress(true),m_writeout(false), p_phep(new double[5*HEPEVT_CB_SIZE]), p_vhep(new double[4*HEPEVT_CB_SIZE]), p_jmohep(new int[2*HEPEVT_CB_SIZE]), p_jdahep(new int[2*HEPEVT_CB_SIZE]) { exh->AddTerminatorObject(this); double win; string beam[2], frame("CMS"); Flavour flav[2]; for (size_t i=0;i<2;++i) flav[i]=rpa->gen.Bunch(i); if (flav[0].Kfcode()==kf_e && flav[1].Kfcode()==kf_p_plus) { if (flav[0].IsAnti()) beam[0]="e+"; else beam[0]="e-"; if (flav[1].IsAnti()) beam[1]="p-"; else beam[1]="p+"; pysubs.msub[9]=1; } else if (flav[0].Kfcode()==kf_p_plus && flav[1].Kfcode()==kf_e) { if (flav[0].IsAnti()) beam[0]="p-"; else beam[0]="p+"; if (flav[1].IsAnti()) beam[1]="e+"; else beam[1]="e-"; pysubs.msub[9]=1; } else if (flav[0]==Flavour(kf_e) && flav[1]==Flavour(kf_photon)) { if (flav[0].IsAnti()) beam[0]="e+"; else beam[0]="e-"; beam[1]="gamma"; pysubs.msub[33]=1; } else if (flav[0]==Flavour(kf_photon) && flav[1]==Flavour(kf_e)) { beam[0]="gamma"; if (flav[1].IsAnti()) beam[1]="e+"; else beam[1]="e-"; pysubs.msub[33]=1; } else if (flav[0]==Flavour(kf_photon) && flav[1]==Flavour(kf_photon)) { for (size_t i=0;i<2;++i) beam[i]="gamma"; pysubs.msub[57]=1; } else if (flav[0].Kfcode()==kf_e && flav[1].Kfcode()==kf_e) { for (size_t i=0;i<2;++i) if (flav[i].IsAnti()) beam[i]="e+"; else beam[i]="e-"; pysubs.msub[0]=1; pypars.mstp[47]=1; pydat1.mstj[100]=5; } else { for (size_t i=0;i<2;++i) if (flav[i].IsAnti()) beam[i]="p-"; else beam[i]="p+"; pysubs.msub[0]=1; pypars.mstp[47]=1; pydat1.mstj[100]=5; } win=rpa->gen.Ecms(); s_maxerrors=rpa->gen.NumberOfEvents(); vector<vector<double> > help; Data_Reader *reader = new Data_Reader(" ",";","!","="); reader->AddComment("#"); reader->AddWordSeparator("\t"); reader->SetInputPath(m_path); reader->SetInputFile(m_file); reader->AddIgnore("("); reader->AddIgnore(")"); reader->AddIgnore(","); pysubs.msel=0; reader->MatrixFromFile(help,"MSUB"); for (size_t i=0;i<help.size();++i) { if (help[i].size()>1) if ((int)help[i][0]>0) pysubs.msub[(int)help[i][0]-1]=(int)help[i][1]; } reader->MatrixFromFile(help,"KFIN"); for (size_t i=0;i<help.size();++i) { if (help[i].size()>2) { if (((int)help[i][0]>0)&&((int)help[i][1]>-41)) { pysubs.kfin[(int)help[i][1]+40][(int)help[i][0]-1]=(int)help[i][2]; } } } reader->MatrixFromFile(help,"CKIN"); for (size_t i=0;i<help.size();++i) { if (help[i].size()>1) if ((int)help[i][0]>0) pysubs.ckin[(int)help[i][0]-1]=help[i][1]; } reader->MatrixFromFile(help,"MSTJ"); for (size_t i=0;i<help.size();++i) { if (help[i].size()>1) if ((int)help[i][0]>0) pydat1.mstj[(int)help[i][0]-1]=(int)help[i][1]; } reader->MatrixFromFile(help,"MSTP"); for (size_t i=0;i<help.size();++i) { if (help[i].size()>1) if ((int)help[i][0]>0) pypars.mstp[(int)help[i][0]-1]=(int)help[i][1]; } reader->MatrixFromFile(help,"MSTU"); for (size_t i=0;i<help.size();++i) { if (help[i].size()>1) if ((int)help[i][0]>0) pydat1.mstu[(int)help[i][0]-1]=(int)help[i][1]; } reader->MatrixFromFile(help,"PARP"); for (size_t i=0;i<help.size();++i) { if (help[i].size()>1) if ((int)help[i][0]>0) pypars.parp[(int)help[i][0]-1]=help[i][1]; } reader->MatrixFromFile(help,"PARJ"); for (size_t i=0;i<help.size();++i) { if (help[i].size()>1) if ((int)help[i][0]>0) pydat1.parj[(int)help[i][0]-1]=help[i][1]; } reader->MatrixFromFile(help,"PARU"); for (size_t i=0;i<help.size();++i) { if (help[i].size()>1) if ((int)help[i][0]>0) pydat1.paru[(int)help[i][0]-1]=help[i][1]; } reader->MatrixFromFile(help,"MDME"); for (size_t i=0;i<help.size();++i) { if (help[i].size()>2) { if ((int)help[i][0]>0 && abs((int)help[i][1]<2)) { pydat3.mdme[(int)help[i][1]-1][(int)help[i][0]-1]=(int)help[i][2]; } } } reader->MatrixFromFile(help,"MDCYKF"); for (size_t i=0;i<help.size();++i) { if (help[i].size()>2) { if ((int)help[i][0]>0 && abs((int)help[i][1]<2)) { msg_Tracking()<<"Lund_Interface::Lund_Interface(..): " <<"Set MDCY("<<pycomp((int)help[i][0])<<","<<(int)help[i][1] <<") ( from KF code "<<(int)help[i][0]<<" ) to "<<(int)help[i][2]<<endl; pydat3.mdcy[(int)help[i][1]-1][pycomp((int)help[i][0])-1]=(int)help[i][2]; } } } // the next lines replace the apyinit_ call hepevt.nhep=100; for (int i=pydat3.mdcy[2-1][23-1];i<pydat3.mdcy[2-1][23-1]+pydat3.mdcy[3-1][23-1];++i) { if (abs(pydat3.kfdp[1-1][i-1])>=2) pydat3.mdme[1-1][i-1]=Min(0,pydat3.mdme[1-1][i-1]); } pyinit(frame.c_str(),beam[0].c_str(),beam[1].c_str(),100.0); // replacement ends here if (msg_LevelIsDebugging()) ListLundParameters(); pylist(0); delete reader; }