void MapBuilder<ImgType, ImgProviderType, ImgMatcherType>::writeToFile(string output_prefix,map<size_t,map<size_t,Rat>> &transformMatrix, map<size_t,vector<size_t>> &adjacency){ string outadj = output_prefix+"_adjacency.txt"; string outtrans = output_prefix+"_ROT.txt"; cout << "Writing to " << outadj << " ...." << endl; ofstream outa(outadj); if(!outa.is_open()){ cerr << "Failed to open " << outadj << " file aborting!" << endl; return; } outa << "n1,adjn_1,...,adjn_n" << endl; for(map<size_t,vector<size_t>>::iterator i = adjacency.begin(); i != adjacency.end(); ++i){ outa << i->first; for(vector<size_t>::iterator j = i->second.begin(); j != i->second.end(); ++j){ if(transformMatrix[i->first][*j].first.empty()) continue; outa << "," << *j; } outa << endl; } outa.close(); cout << "Writing to " << outtrans << " ...." << endl; ofstream outt(outtrans); if(!outt.is_open()){ cerr << "Failed to open file " << outtrans << endl; return; } outt << "n,adjn,r11,r12,r13,t1,r21,r22,r23,t2,r31,r32,r33,t3" << endl; for(map<size_t,map<size_t,Rat>>::iterator i = transformMatrix.begin(); i != transformMatrix.end(); ++i){ for(map<size_t,Rat>::iterator j = i->second.begin(); j != i->second.end(); ++j){ if (j == i->second.end()){ cout << " here" << endl; break; } if(j->second.first.empty()) continue; outt << i->first << "," << j->first << ","; outt << j->second.first.at<double>(0,0) << "," << j->second.first.at<double>(0,1) << "," << j->second.first.at<double>(0,2) << "," << j->second.second.at<double>(0,0) << ","; outt << j->second.first.at<double>(1,0) << "," << j->second.first.at<double>(1,1) << "," << j->second.first.at<double>(1,2) << "," << j->second.second.at<double>(1,0) << ","; outt << j->second.first.at<double>(2,0) << "," << j->second.first.at<double>(2,1) << "," << j->second.first.at<double>(2,2) << "," << j->second.second.at<double>(2,0) << endl; } } outt.close(); }
//______________________________________________________________________________ void MainWindow::DoOutput() { ui_OutputLabel->setText(QString::fromStdString("write files")); QFileDialog::Options options; QString selectedFilter; QString OutputName = QFileDialog::getSaveFileName(this, tr("QFileDialog::getSaveFileName()"), 0, tr("All Files (*);;Text Files (*.txt)"), &selectedFilter, options); if (OutputName.isEmpty()){return;} QString out = OutputName + "_strengthfunctions.txt"; QFile Strength_output(out); Strength_output.open(QIODevice::WriteOnly); QTextStream outStream(&Strength_output); for (k = 0;k<=(int)((ui_EmaxSpinBox->value())/(ui_BinSizeSpinBox->value()));k++){ outStream << k*(ui_BinSizeSpinBox->value()) << " "<< AnalysisWidget->E1Strength[k]<<" "<<AnalysisWidget->M1Strength[k]<< " "<<AnalysisWidget->E2Strength[k]<<endl; } Strength_output.close(); QString out3 = OutputName + "_levels.txt"; QFile widths_output(out3); widths_output.open(QIODevice::WriteOnly); QTextStream outStream3(&widths_output); for ( int i =0;i<(AnalysisWidget->scheme.size());i++){ outStream3 << AnalysisWidget->scheme[i].energy << "\t " << (AnalysisWidget->scheme[i].spin)*(AnalysisWidget->scheme[i].parity)<< "\t" << AnalysisWidget->scheme[i].levelnumber << "\t" << AnalysisWidget->scheme[i].totalwidth/100./(2*(AnalysisWidget->scheme[i].spin)+1)*AnalysisWidget->scheme[i].levelnumber << "\t" //change average width to total width << AnalysisWidget->scheme[i].gswidth << "\t" << AnalysisWidget->scheme[i].S << endl; } widths_output.close(); QFile output(OutputName); output.open(QIODevice::WriteOnly); QTextStream outa(&output); outa << "### GammaDex2.0 by R.Massarczyk and G.Schramm"<<endl; outa << "### Status 2012/2013 , see also PHYSICAL REVIEW C 85, 014311"<<endl; outa << "### contact [email protected]"<<endl; output.close(); DoSave(OutputName+"_parameter.txt"); if(ui_ReactionComboBox->currentIndex()==0){ QString out1 = OutputName + "_strengthfunctions_excitedstate.txt"; QFile Strength_output1(out1); Strength_output1.open(QIODevice::WriteOnly); QTextStream outStream1(&Strength_output1); for (k = 0;k<=(int)((ui_EmaxSpinBox->value())/(ui_BinSizeSpinBox->value()));k++){ outStream1 << k*(ui_BinSizeSpinBox->value()) << " "<< AnalysisWidget->E1Strength_ex[k]<<" "<<AnalysisWidget->M1Strength_ex[k]<< " "<<AnalysisWidget->E2Strength_ex[k]<<endl; } Strength_output1.close(); QString out2 = OutputName + "_gammaspectra.txt"; QFile Gamma_output(out2); Gamma_output.open(QIODevice::WriteOnly); QTextStream outStream2(&Gamma_output); int a = (int)(AnalysisWidget->GetIndex(ui_EmaxSpinBox->value(),ui->SpinParitySpinBox_n1->value(),ui->SpinParitySpinBox_n2->value())); //cout <<"here"<< a <<endl; for (k = 0;k<=(int)((ui_EmaxSpinBox->value())/(ui_BinSizeSpinBox->value()));k++){ outStream2 << k*(ui_BinSizeSpinBox->value()) << " "<< AnalysisWidget->scheme[a].spectrum[k] <<" "<<AnalysisWidget->scheme[a].spectrum_primary[k]<<endl; } Gamma_output.close(); } if(ui_ReactionComboBox->currentIndex()==1){ QString out1 = OutputName + "_branching.txt"; QFile branch_output1(out1); branch_output1.open(QIODevice::WriteOnly); QTextStream outStream1(&branch_output1); for (k = 0;k<=(int)((ui_EmaxSpinBox->value())/(ui_BinSizeSpinBox->value()));k++){ outStream1 << k*(ui_BinSizeSpinBox->value()) << " "<< AnalysisWidget->branching[k] <<endl; } branch_output1.close(); QString out2 = OutputName + "_output.txt"; QFile Gamma_output(out2); Gamma_output.open(QIODevice::WriteOnly); QTextStream outStream2(&Gamma_output); int a = (int)(AnalysisWidget->GetIndex(ui_EmaxSpinBox->value(),ui->SpinParitySpinBox_n1->value(),ui->SpinParitySpinBox_n2->value())); //cout <<"here"<< a <<endl; for (k = 0;k<=(int)((ui_EmaxSpinBox->value())/(ui_BinSizeSpinBox->value()));k++){ outStream2 << k*(ui_BinSizeSpinBox->value()) << " "<< AnalysisWidget->GammaSpectrum[k] <<" "<<AnalysisWidget->GammaSpectrum_new[k] <<endl; } Gamma_output.close(); } }