smash-transport / smash Goto Github PK
View Code? Open in Web Editor NEWSimulating Many Accelerated Strongly-interacting Hadrons
Home Page: https://smash-transport.github.io
License: Other
Simulating Many Accelerated Strongly-interacting Hadrons
Home Page: https://smash-transport.github.io
License: Other
Dear SMASH developers!
I am on transfer from Linux to MacOS with M1 chip and I've faced with the problem: the familiar installation instruction seems to be inoperative on new Apple laptops. Didn't you or anyone else tried to install SMASH on Mac M1 laptop and in case of success can you give an instructions?
Hello!
I've generated some data and saved it as .root file. I can extract momenta, coordinates and PID's of final particles and use it to find (pseudo)rapidities, pT, phi, etc. But I also don't understand how to extract electric charge. How can I do it?
Example of .cxx file I use to get some histograms is below:
`
#include "TRandom3.h"
#include "TFile.h"
#include "TH1.h"
#include "TH1D.h"
#include "TH2D.h"
#include "TH3.h"
#include "TTree.h"
#include "TF1.h"
#include "TCanvas.h"
#include "TPad.h"
#include "TMath.h"
#include "TStyle.h"
#include "TLegend.h"
#include "TRandom3.h"
#include "TString.h"
#include "TStyle.h"
#include "TGraphAsymmErrors.h"
#include "TGraphErrors.h"
#include "TLatex.h"
#include "TH1.h"
#include "TH1D.h"
#include
using namespace std;
double Pt(Double_t a, Double_t b) // func. for abs. value of particle pT
{
double c=sqrt(aa+bb);
return c;
}
double P_abs(Double_t a, Double_t b, Double_t c) // func. for abs. value of particle momentum
{
double p = sqrt(aa+bb+c*c);
return p;
}
double Y_Eta(Double_t a, Double_t b) // func. for particle rapidity and/or pseudorapidity
{
double c=0.5*log((a+b)/(a-b));
return c;
}
double Phi(Double_t a, Double_t b) // func. for particle azimuth angle in momenta space
{
double c = atan2(b, a);
return c;
}
void extract_events_tracks()
{
// ##### open file and get tree, get branches
TFile *file = new TFile( "/home/vlad/HEP/smash/smash_build/data/26/Particles.root" ); //path to data file
TTree tree = (TTree)file->Get("particles");
const int NMaxTrack = 15000;
Double_t p0[NMaxTrack];
Double_t px[NMaxTrack];
Double_t py[NMaxTrack];
Double_t pz[NMaxTrack]; //
Int_t pdgcode[NMaxTrack];
Int_t npart = 0;
tree->SetBranchAddress( "npart", &npart );
tree->SetBranchAddress( "p0", p0 );
tree->SetBranchAddress( "px", px );
tree->SetBranchAddress( "py", py );
tree->SetBranchAddress( "pz", pz );
tree->SetBranchAddress( "pdgcode", pdgcode );
// ##### prepare some histos to fill:
TH1D *fHistPt = new TH1D("fHistPt", "p_{T} distribution;p_{T} (GeV/c);dN/dp_{T}", 100, 0, 5 );
TH1D *fHistEta = new TH1D("fHistEta", "#eta distribution;#eta (GeV/c);dN/d#eta", 100, -5, 5 );
TH1D *fHistY = new TH1D("fHistY", "Y distribution;Y (GeV/c);dN/dY", 100, -5, 5 );
TH1D *fHistP_abs = new TH1D("fHistP_abs", "P_abs distribution;P_abs (GeV/c);dN/dP_abs", 100, 0, 5 );
TH1D *fHistPhi = new TH1D("fHistPhi", "#phi distribution;#phi (GeV/c);dN/d#phi", 100, -4, 4 );
// ##### event loop
int nEvents = tree->GetEntries();
// int nEvents = 20000;
for ( int iEvent = 0; iEvent < nEvents; iEvent++)
{
tree->GetEntry(iEvent);
if ( iEvent % 100 == 0 )
cout << "processing " << (int)iEvent << "\r"; cout.flush();
for ( int iTrack = 0; iTrack < npart; iTrack++ )
{
//int id = iTrack;
double p_abs;
double pt;
double phi;
double y;
double eta;
int charge;
p_abs=P_abs(px[iTrack] , py[iTrack] , pz[iTrack] );
pt = Pt(px[iTrack], py[iTrack]);
eta = Y_Eta(p_abs, pz[iTrack]);
y = Y_Eta(p0[iTrack], pz[iTrack]);
phi=Phi(px[iTrack], py[iTrack]);
fHistPt->Fill(pt);
fHistEta ->Fill(eta);
fHistY ->Fill(y);
fHistP_abs ->Fill(p_abs);
fHistPhi->Fill(phi);
} // end of track loop
}//end of event loop
// output lists:
TFile *fileOutput = new TFile( "SMASH_output_histograms.root", "RECREATE" );
fHistPt->Write();
fHistEta ->Write();
fHistY ->Write();
fHistP_abs ->Write();
fHistPhi->Write();
fileOutput->Close();
}
`
Hi!
Generating events with quadratic distributed impact-parameter in range [0,20] fm I found out that about 46% of events are empty. I think that it will very convenient and practical if there is ability to REgenerate event if it is empty right in the generation process. At least, it will save the disk space, decrease time of data analysis code flow and allow us have so good statistic as we need (instead 1/2 of this).
Thank you in advance.
Obvious, but annoying bug, here is the fix.
diff --git a/src/include/smash/pdgcode.h b/src/include/smash/pdgcode.h
index 86c2fc1..acf26f6 100644
--- a/src/include/smash/pdgcode.h
+++ b/src/include/smash/pdgcode.h
@@ -737,7 +737,7 @@ class PdgCode {
bool antiparticle_ : 1;
#else // reverse ordering
bool antiparticle_ : 1;
- bool is_nucleus : 1, : 2;
+ bool is_nucleus_ : 1, : 2;
std::uint32_t n_ : 4;
std::uint32_t n_R_ : 4;
std::uint32_t n_L_ : 4;
Dear SMASH development team,
We wanted to generate events in Pb-Pb collisions in the TeV range,
however, it takes more than 160 hours to produce 4K events at 200 GeV.
Is this a result of the event generators' nature or are there any settings that we are overlooking?
Would you kindly offer any suggestions on how to produce Pb-Pb collision events at the TeV scale?
Another problem we have is that when we try to build SMASH by incorporating ROOT software, an error occurs.
Thanks and regards,
Sonali
Dear maintainers,
I have faced an error message in SMASH-2.2 that I did not expect.
Given that I did not need any specific potentials enabled, I followed instruction on http://theory.gsi.de/~smash/userguide/2.2/input_general_.html regarding delta time, and set time_step_mode to none. It worked fine for Au+Au simulation in SMASH-1.8 and SMASH-2.2.
However, when I tried same approach in the infinite matter (box) simulation, I got rather different behaviour. SMASH-1.8 ate same instruction just fine (at least so it looks), while SMASH-2.2 threw an error
SMASH failed with the following error:
Input error: Your box is too small for the grid.
The minimal length of the box is given by: 20.000000 fm with the given timestep size.
If you have large timesteps please reduce them.
A larger box or the use of testparticles also helps.
Please take a look at your config.
This confuses me, since I haven't explicitly declared any potential. Here is my config:
Version: 1.8 # minimal SMASH version to use with this config file
Logging:
default: INFO
General:
Modus: Box
Time_Step_Mode: None
# Delta_Time: 0.1
End_Time: 1000.0
Randomseed: 342002906
Nevents: 25
Output:
# Output_Interval: 1.0
Output_Times: [700.0]
Particles:
Only_Final: No
Format: ["Root"]
Modi:
Box:
Length: 10
Initial_Condition: "peaked momenta"
Start_Time: 0.0
Temperature: 0.5661475236840086
Init_Multiplicities:
3122: 0
2112: 593
I can clearly tell it argues about this time_step_mode, however if it shouldn't be none, should I be concerned regarding my other results? I tried to look into changelogs between 1.8 and 2.2, but I am not as good in the lookup. Could you please point out what does it mean and what should I do to 'fix' my simulation?
Please don't hurry, holidays are more important.
Thanks for your time,
Pavlo Panasiuk
I'm trying to use smash for hadronic rescattering as a part of JETSCAPE framework (integrated). However, it seems to always crash while performing some table look-ups and going out of range (see backtrace below). I'm using the default configuration for smash, and JETSCAPE should also be properly configured for the afterburner stage.
#6 0x00007fffde89a5bd in std::__throw_out_of_range (
__s=__s@entry=0x7fffe1bf42ae "_Map_base::at")
at /build/gcc/src/gcc/libstdc++-v3/src/c++11/functexcept.cc:82
#7 0x00007fffe1a1863c in std::__detail::_Map_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, smash::Tabulation>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, smash::Tabulation> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::at (this=this@entry=0x7fffe1c480c0 <smash::RK_tabulations>,
__k="Δ̅")
at /usr/include/c++/10.2.0/bits/hashtable_policy.h:433
#8 0x00007fffe1a14935 in std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, smash::Tabulation, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, smash::Tabulation> > >::at (__k=...,
this=0x7fffe1c480c0 <smash::RK_tabulations>)
at /usr/include/c++/10.2.0/bits/unordered_map.h:1000
#9 smash::IsoParticleType::get_integral_RK (
this=0x555556666ee8, sqrts=2.3692074873141471)
at JETSCAPE/external_packages/smash/smash_code/src/isoparticletype.cc:324
#10 0x00007fffe195599a in smash::detailed_balance_factor_RK (
sqrts=<optimized out>, pcm=pcm@entry=0.77111675422546411,
a=..., b=..., c=..., d=...)
at JETSCAPE/external_packages/smash/smash_code/src/include/smash/particletype.h:185
#11 0x00007fffe195c265 in operator() (
__closure=<optimized out>)
at JETSCAPE/external_packages/smash/smash_code/src/crosssections.cc:1547
#12 smash::CrossSections::add_channel<smash::CrossSections::deltak_xx(smash::ReactionsBitSet) const::<lambda()> > (type_b=...,
type_a=..., sqrts=<optimized out>, get_xsection=...,
process_list=std::vector of length 0, capacity 0,
this=0x7fffffffdfc0)
at JETSCAPE/external_packages/smash/smash_code/src/include/smash/crosssections.h:519
#13 smash::CrossSections::deltak_xx (this=0x7fffffffdfc0,
included_2to2=...)
at JETSCAPE/external_packages/smash/smash_code/src/crosssections.cc:1545
#14 0x00007fffe1981244 in smash::CrossSections::two_to_two (
--Type <RET> for more, q to quit, c to continue without paging--
this=0x7fffffffdfc0, included_2to2=std::bitset = {...})
at JETSCAPE/external_packages/smash/smash_code/src/crosssections.cc:814
#15 0x00007fffe19876b9 in smash::CrossSections::generate_collision_list (this=this@entry=0x7fffffffdfc0,
elastic_parameter=elastic_parameter@entry=-1,
two_to_one_switch=two_to_one_switch@entry=true,
included_2to2=...,
included_2to2@entry=std::bitset = {...},
low_snn_cut=low_snn_cut@entry=1.98,
strings_switch=strings_switch@entry=true,
use_AQM=use_AQM@entry=true, strings_with_probability=true,
nnbar_treatment=smash::NNbarTreatment::Strings,
string_process=0x5555566dfca0)
at JETSCAPE/external_packages/smash/smash_code/src/crosssections.cc:168
#16 0x00007fffe1a69e74 in smash::ScatterAction::add_all_scatterings (this=this@entry=0x55555b8614f0, elastic_parameter=-1,
two_to_one=<optimized out>,
included_2to2=std::bitset = {...},
low_snn_cut=<optimized out>,
strings_switch=<optimized out>, use_AQM=<optimized out>,
strings_with_probability=<optimized out>,
nnbar_treatment=smash::NNbarTreatment::Strings)
at JETSCAPE/external_packages/smash/smash_code/src/scatteraction.cc:113
#17 0x00007fffe1a7496f in smash::ScatterActionsFinder::check_collision (this=0x5555565c2cc0, data_a=..., data_b=...,
dt=<optimized out>, beam_momentum=...,
cell_vol=42.040058809083938)
at JETSCAPE/external_packages/smash/smash_code/src/scatteractionsfinder.cc:388
#18 0x00007fffe1a74d13 in smash::ScatterActionsFinder::find_actions_in_cell (this=0x5555565c2cc0,
search_list=std::vector of length 5, capacity 8 = {...},
dt=0.5, cell_vol=42.040058809083938,
beam_momentum=std::vector of length 0, capacity 0)
at JETSCAPE/external_packages/smash/smash_code/src/scatteractionsfinder.cc:422
#19 0x00007fffe20b46ce in smash::Experiment<AfterburnerModus>::run_time_evolution()::{lambda(std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&)#1}::operator()(std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&) const (
search_list=std::vector of length 5, capacity 8 = {...},
this=<optimized out>)
at /usr/include/c++/10.2.0/bits/unique_ptr.h:421
#20 std::__invoke_impl<void, smash::Experiment<AfterburnerModus>::run_time_evolution()::{lambda(std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&)#1}&, std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&>(std::__invoke_other, smash::Experiment<AfterburnerModus>::run_time_evolution()::{lambda(std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&)#1}&, std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&) (
__f=...) at /usr/include/c++/10.2.0/bits/invoke.h:60
#21 std::__invoke_r<void, smash::Experiment<AfterburnerModus>::run_time_evolution()::{lambda(std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&)#1}&, std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&>(std::__is_invocable&&, (smash::Experiment<AfterburnerModus>::run_time_evolution()::{lambda(std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&)#1}&)...) (__fn=...)
at /usr/include/c++/10.2.0/bits/invoke.h:153
#22 std::_Function_handler<void (std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&), smash::Experiment<AfterburnerModus>::run_time_evolution()::{lambda(std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&)#1}>::_M_invoke(std::_Any_data const&, std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&) (
__functor=...,
__args#0=std::vector of length 5, capacity 8 = {...})
--Type <RET> for more, q to quit, c to continue without paging--
at /usr/include/c++/10.2.0/bits/std_function.h:291
#23 0x00007fffe1a056f6 in std::function<void (std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&)>::operator()(std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&) const (
__args#0=std::vector of length 5, capacity 8 = {...},
this=0x7fffffffe4f0)
at /usr/include/c++/10.2.0/bits/std_function.h:617
#24 smash::Grid<(smash::GridOptions)0>::iterate_cells(std::function<void (std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&)> const&, std::function<void (std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&, std::vector<smash::ParticleData, std::allocator<smash::ParticleData> > const&)> const&) const (
this=this@entry=0x7fffffffe550, search_cell_callback=...,
neighbor_cell_callback=...)
at JETSCAPE/external_packages/smash/smash_code/src/grid.cc:291
#25 0x00007fffe20bfd60 in smash::Experiment<AfterburnerModus>::run_time_evolution (this=0x5555566601e0)
at /usr/include/c++/10.2.0/bits/std_function.h:87
#26 0x00007fffe20ad7ee in SmashWrapper::ExecuteTask (
this=0x55555659c770)
at /usr/include/c++/10.2.0/bits/shared_ptr_base.h:1324
#27 0x00007fffe20235a7 in Jetscape::Afterburner::Exec (
this=0x55555659c770)
at JETSCAPE/src/framework/Afterburner.cc:40
#28 0x00007fffe2058f43 in Jetscape::JetScapeTask::ExecuteTasks
(this=this@entry=0x55555659c620)
at JETSCAPE/src/framework/JetScapeTask.cc:60
#29 0x00007fffe2044c57 in Jetscape::JetScape::Exec (
this=0x55555659c620)
at JETSCAPE/src/framework/JetScape.cc:826
#30 0x00005555555565bb in main (argc=-6128,
argv=0x7fffffffe968)
at JETSCAPE/examples/runJetscape.cc:80
Here's a minimal JETSCAPE config to reproduce. The problem seems to disappear when I remove <TransInputs>
section from the Trento configuration. Is this a smash bug or some misconfiguration issue from JETSCAPE side?
<?xml version="1.0"?>
<jetscape>
<!-- General settings -->
<nEvents>1</nEvents>
<setReuseHydro>false</setReuseHydro>
<outputFilename>out</outputFilename>
<!-- fix the random seed -->
<Random>
<seed>23</seed>
</Random>
<!-- Inital State Module -->
<IS>
<!-- Initial condition -->
<Trento>
<PhysicsInputs projectile='Pb'
target='Pb'
sqrts='5020.'
cross-section='7.0'
normalization='18.5'>
</PhysicsInputs>
<TransInputs
reduced-thickness='0.006'
fluctuation='1.6'
nucleon-width='0.96'
nucleon-min-dist='1.28'>
</TransInputs>
<CutInputs centrality-low='0'
centrality-high='60'>
</CutInputs>
</Trento>
</IS>
<Preequilibrium>
<NullPreDynamics> </NullPreDynamics>
</Preequilibrium>
<!-- Hydro Module -->
<Hydro>
<MUSIC>
<T_dependent_Shear_to_S_ratio>3</T_dependent_Shear_to_S_ratio>
<eta_over_s_T_kink_in_GeV>0.16</eta_over_s_T_kink_in_GeV>
<eta_over_s_low_T_slope_in_GeV>0.1</eta_over_s_low_T_slope_in_GeV>
<eta_over_s_high_T_slope_in_GeV>0.68</eta_over_s_high_T_slope_in_GeV>
<eta_over_s_at_kink>0.08</eta_over_s_at_kink>
<temperature_dependent_bulk_viscosity>3</temperature_dependent_bulk_viscosity>
<zeta_over_s_max>0.1</zeta_over_s_max>
<zeta_over_s_T_peak_in_GeV>0.16</zeta_over_s_T_peak_in_GeV>
<zeta_over_s_width_in_GeV>0.01</zeta_over_s_width_in_GeV>
<zeta_over_s_lambda_asymm>0.0</zeta_over_s_lambda_asymm>
<Include_second_order_terms>1</Include_second_order_terms>
<freezeout_temperature>0.152</freezeout_temperature>
</MUSIC>
</Hydro>
<SoftParticlization>
<iSS>
<!-- hadron species list 0: PDG 2005; 1: UrQMD; 2: SMASH -->
<afterburner_type>2</afterburner_type>
<Perform_resonance_decays>0</Perform_resonance_decays>
</iSS>
</SoftParticlization>
<Afterburner>
<SMASH>
<end_time>500.0</end_time>
</SMASH>
</Afterburner>
</jetscape>
Hi! I have a little question/wish about .root files and Number of final interactions in this files.
I am interested about the information about number of interactions in the single one collisions, and I've tried to get this number from .root files - "Particles.root" and "Collisions.root". Nevertheless, I've found that there is no such brunch in trees of this files. Yes, there is the "ev" branch in "Particles.root" with # of events as histogram X-axis and with number of interactions as bin contents. But if we use TChain-class (instead the only one file's tree), the method "find bin and get its content" doesn't work, because all trees are merging when we use TChain. Of course, there is a few methods from which we can extract the necessary information, but all this methods seem to be inaccurate and slow.
So my question is: can we extract the number of interactions of the concrete event if we read TChain of files by some simple way?
Also I think that it would be much more conveniently to have the branch with number of interactions in event in the same fashion as the "impact" branch constructed (the "Entry" of histo is the number of event and X-axis is the "Impact"-parameter).
Thank you in advance for your reply.
So far I used SMASH-2.0.2 with smash-hadron-sampler and everything worked well. When I tried to update to SMASH-2.1, I got 2 errors. I can compile SMASH itself, but then when building Makefile of smash-hadron-sampler using cmake I get
-- SMASH found: FALSE
I was able to resolve this - I found that SMASH updated Cuba-4.2 to Cuba-4.2.1, but this was not updated in cmake/FindSMASH.cmake. After updating this I was able to build Makefile, but it would be useful to update it also on your GitHub.
The second error I couldn't fix, it pops up during the compilation of gen.cpp, but it seems to be an error of SMASH:
smash/pdgcode.h:292:20: error: 'const struct smash::PdgCode::<unnamed union>::<unnamed>' has no member named 'is_nucleus_'; did you mean 'is_nucleus'?
assert(digits_.is_nucleus_ == nucleus_.is_nucleus_);
smash/pdgcode.h:845:48: error: 'struct smash::PdgCode::<unnamed union>::<unnamed>' has no member named 'is_nucleus_'; did you mean 'is_nucleus'?
digits_.n_q3_ = digits_.n_J_ = digits_.is_nucleus_ = 0;
^~~~~~~~~~~
is_nucleus
I hope you find this useful.
Cheers
Iam asking is there is any documentation file (User guide) for the functions that used to buildup code to reproduce some of the figures in your site.
like the Pythia documentation
Hi there, I wonder if it is possible to output "number of participant" and
"number of binary collisions" in the final output?
Thanks
Yu
Dear SMASH team,
I would like to ask if it would be possible to add an option to SMASH to save in the simulated output an event-by-event information about the time, spatial position, and 4-momentum of individual initial nucleons from each of the colliding nuclei before their 1st collision. In a special case of non-interacting nucleons (spectators) to save the initial spatial position and 4-momentum (with time=0).
This information will allow to connect different geometrical quantities of the fluctuating initial state (e.g. eccentricities) with the final state azimuthal asymmetries (flow harmonics).
Thank you in advance.
Cheers,
Ilya
Dear sir/madam,
My name is Pavlo Panasiuk, I am busy with comparing several MC generators. Recently we discussed an issue related to SMASH-1.8 installation (thanks for helping with that). Now that I ran unit tests on both SMASH-2.2, SMASH-1.8, I have encountered a few fails, namely
It does not seem like much, but I want to be sure these are either unimportant or fixable. To be precise, I am going to run the models in two ways:
Please let me know if these are known issues (and whether they are severe) and whether I can/need to do something about them.
If you need any test outputs, please let me know how do I extract them.
Thanks in advance.
Hi,
I installed SMASH when i found a Problem:
//Path to a program.
Pythia_CONFIG_EXECUTABLE:FILEPATH=/location1/pythia8235/bin/pythia8-config
//Path to a library.
Pythia_LIBRARY:FILEPATH=/location2/pythia8235/lib/libpythia8.a
while compiling no errors occurs, but during run-time it crashes.
If both locations are the same no problem occurs.
Maybe an error or warning before compiling would help.
And again thanks to Dmytro for helping.
Dear SMASH team!
I would like to ask if it would be possible to add an option to SMASH to save the info about time of last collision of a single particle in .root file (such as it realized in .oscar file).
It can provide us an ability to separate particles-participants and particles-spectators, which can give us some usefull information for physical analysis.
Hi!
Can I speed up a SMASH generation process via using more then 1 core of my processor? Of course, I can use few terminals to generate data files simultaneously , but it leads to increasing of data files numbers and a little chaos in data-directory. So I am trying to find out more elegant way to speed up calculations than the above.
Thank you in advance.
Hi,
I attach a patch which address a few tings in SMASH
source_location
conflicts with boost::source_location
. That is, if defined, it will make the compiler choke on bad syntax when source_location
is expanded in boost::source_location
. The patch fixes this by renaming the macro to _source_location
(it should probably be SMASH_source_location
to make it more distinct)${CMAKE_INSTALL_PREFIX}/{include,lib,bin}
as well as example inputs in ${CMAKE_INSTALL_PREFIX}/share/smash
. This makes it possible for 3rd partiy applications to use the code from predictable locations.Pythia_LIBDIR
to link directories (otherwise the linker may not find lpythia8
)-std=c++11
from CXXFLAGS
. This can make it difficult to link with other libraries in 3rd party applicaitons. The ABI of GNU C++11 isn't compatible with the C++14+ ABI, and one may want to pass -std=c++17
to link with other libraries (e.g., HepMC3 or Rivet). Users can set CMAKE_CXX_COMPILER_FLAGS
as needed. Another option would be to define a CMake Variable (say CMAKE_CXX_STANDARD_VERSION
) by default set to c++11
but overwritable by the user.Experiment<T>::nucleon_has_interacted_
in Experiment<T>::initialize_new_event
- otherwise later stages may SIGSEGV. I know that you do this expicitly in Experiment<T>::run
but if one wants to use SMASH as an external library, then that is not an option since the member is private
. In any case, it does not hurt to explicitly initialize it.All these changes mainly aim at enabling the use of SMASH in thrid party applications. For example, one can define a program that let's SMASH generate an HepMC3 event in memory which Rivet then analyses directly from memory. This avoids the very costly I/O of HepMC events to disk or FIFO (at least a factor 10 speed up)
. I attach an example of such a program (it works - try it with your favorite Rivet Analysis).
Yours,
Christian
smash_patch_and_rivet.tar.gz
Hello!
Trying to build SMASH, I've faced with the problem (see below). What can cause this and how can I fix it??? Thanks for future answer.
My terminal:
[ 22%] Building CXX object src/CMakeFiles/objlib.dir/configuration.cc.o In file included from /home/vlad/HEP/SMASH_generator/boost_1_49_0/boost/filesystem.hpp:35:0, from /home/vlad/HEP/smash_1.6/src/configuration.cc:17: /home/vlad/HEP/SMASH_generator/boost_1_49_0/boost/filesystem/v3/path.hpp:732:24: error: ‘path’ is already declared in this scope using filesystem3::path; ^~~~ /home/vlad/HEP/smash_1.6/src/configuration.cc:89:1: error: prototype for ‘smash::Configuration::Configuration(const boost::filesystem3::path&)’ does not match any in class ‘smash::Configuration’ Configuration::Configuration(const bf::path &path) ^~~~~~~~~~~~~ In file included from /home/vlad/HEP/smash_1.6/src/configuration.cc:10:0: /home/vlad/HEP/smash_1.6/src/include/smash/configuration.h:969:3: error: candidates are: smash::Configuration::Configuration(const YAML::Node&) Configuration(const YAML::Node &node) // NOLINT(runtime/explicit) : see above ^~~~~~~~~~~~~ /home/vlad/HEP/smash_1.6/src/include/smash/configuration.h:823:3: error: smash::Configuration::Configuration(smash::Configuration&&) Configuration(Configuration &&) = default; ^~~~~~~~~~~~~ /home/vlad/HEP/smash_1.6/src/include/smash/configuration.h:818:3: error: smash::Configuration::Configuration(const smash::Configuration&) Configuration(const Configuration &) = default; ^~~~~~~~~~~~~ /home/vlad/HEP/smash_1.6/src/include/smash/configuration.h:803:12: error: smash::Configuration::Configuration(const boost::filesystem::path&, const boost::filesystem::path&) explicit Configuration(const bf::path &path, const bf::path &filename); ^~~~~~~~~~~~~ /home/vlad/HEP/smash_1.6/src/include/smash/configuration.h:794:12: error: smash::Configuration::Configuration(const boost::filesystem::path&) explicit Configuration(const bf::path &path); ^~~~~~~~~~~~~ /home/vlad/HEP/smash_1.6/src/configuration.cc:93:1: error: prototype for ‘smash::Configuration::Configuration(const boost::filesystem3::path&, const boost::filesystem3::path&)’ does not match any in class ‘smash::Configuration’ Configuration::Configuration(const bf::path &path, const bf::path &filename) { ^~~~~~~~~~~~~ In file included from /home/vlad/HEP/smash_1.6/src/configuration.cc:10:0: /home/vlad/HEP/smash_1.6/src/include/smash/configuration.h:969:3: error: candidates are: smash::Configuration::Configuration(const YAML::Node&) Configuration(const YAML::Node &node) // NOLINT(runtime/explicit) : see above ^~~~~~~~~~~~~ /home/vlad/HEP/smash_1.6/src/include/smash/configuration.h:823:3: error: smash::Configuration::Configuration(smash::Configuration&&) Configuration(Configuration &&) = default; ^~~~~~~~~~~~~ /home/vlad/HEP/smash_1.6/src/include/smash/configuration.h:818:3: error: smash::Configuration::Configuration(const smash::Configuration&) Configuration(const Configuration &) = default; ^~~~~~~~~~~~~ /home/vlad/HEP/smash_1.6/src/include/smash/configuration.h:803:12: error: smash::Configuration::Configuration(const boost::filesystem::path&, const boost::filesystem::path&) explicit Configuration(const bf::path &path, const bf::path &filename); ^~~~~~~~~~~~~ /home/vlad/HEP/smash_1.6/src/include/smash/configuration.h:794:12: error: smash::Configuration::Configuration(const boost::filesystem::path&) explicit Configuration(const bf::path &path); ^~~~~~~~~~~~~ src/CMakeFiles/objlib.dir/build.make:190: recipe for target 'src/CMakeFiles/objlib.dir/configuration.cc.o' failed make[2]: *** [src/CMakeFiles/objlib.dir/configuration.cc.o] Error 1 CMakeFiles/Makefile2:1561: recipe for target 'src/CMakeFiles/objlib.dir/all' failed make[1]: *** [src/CMakeFiles/objlib.dir/all] Error 2 Makefile:140: recipe for target 'all' failed make: *** [all] Error 2
I have compiled SMASH onto my system, now i want to compile Smash-hybrid-vhlle also which required various others packages also.
I have done with most of them but when i try to configure Hadron-sampler onto my system it ends up with an error which i tried a lot but i don't succeed. I am currently running smash without any errors and all of my variable paths are adjusted. Ihave attached the screen shot of my problems that appeared.
i am running these commands:
Hi all,
we have tried to build the model, running into an issue, which seems to be related to something in the code. As far as the configuration of pythia and eigen goes, it seems to work fine (although we had to download pythia 8.303 from pythia's site, because the link in the instruction has not worked at the time we tried to make it).
We used
git clone https://github.com/smash-transport/smash
to get the repository and set up eigen and pythia as described in the README file. Those programs did not complain.
After some trouble with the exact cmake command,
cmake -DCMAKE_PREFIX_PATH=/home/user/eigen-3.4.0/ .. .. -DPythia_CONFIG_EXECUTABLE=/home/user/pythia8303/bin/pythia8-config
produced the build files in the folder we made via mkdir smash/build. Is this command correct? The ReadMe is a bit confusing for us, as it wants to go to the folder smash/build/ while setting up eigen before this folder has been made in the next step setting the pythia path.
We get the error on the 'make' command, related to the "experimental" class after roughly 17 to 25 % of building:
In file included from /home/user/root/include/TString.h:29,
from /home/user/root/include/TNamed.h:26,
from /home/user/root/include/TDirectory.h:24,
from /home/user/root/include/TDirectoryFile.h:25,
from /home/user/root/root/include/TFile.h:28,
from /home/user/root/smash/src/include/smash/rootoutput.h:18,
from /home/user/root/smash/src/include/smash/experiment.h:50,
from /home/user/root/smash/src/experiment.cc:10:
/home/user/root/include/ROOT/RStringView.hxx:32:37: error: ‘experimental’ in namespace ‘std’ does not name a type
32 | using basic_string_view = ::std::experimental::basic_string_view<_CharT,_Traits>;
| ^~~~~~~~~~~~
/home/user/root/include/ROOT/RStringView.hxx:35:12: error: ‘basic_string_view’ does not name a type
35 | typedef basic_string_view string_view;
| ^~~~~~~~~~~~~~~~~
We use ROOT 6 (6.24/02), so is it possible this error might be somehow ROOT version dependent?
System: Ubuntu 20.04.03 LTS, focal on WSL 2. The same issue persists on a system with ROOT 6 and Mint 20.2 MATE.
In case you need any further information, please let us know.
Best regards,
Mateusz and Max
Hi!
I have found out that plane of reaction (plane which impact-parameter vector lead in) is XZ plane always. Of course, it is very useful for flows studies, but it leads to anisotropy of phi-distribution in event-by-event analysis.
Can plane reaction be variable by some settings on or can it become variable in the next versions of SMASH?
Hi!
Exploring file "particles.txt.h" I've found the ability of SMASH to produce light nuclei (deuterons). It is very nice for my purposes, but I some questions about it.
Why deuterons productions "commented" by default? What does it means that "These are normally represented by neutrons and protons" and "should be uncommented only for SPECIFIC studies"? And how does SMASH separate deuteron and just close-located neutron and proton? Or more general - what is "deuteron" from the point of view of SMASH?
Thank you in advance for your reply.
Greetings all,
I have a problem compiling SMASH ver. 2.1.1 (namely smash/src/stringprocess.cc
causes errors) because of the missing member of Pythia classes:
smash/src/stringprocess.cc:69:20: error: ‘class Pythia8::SigmaTotal’ has no member named ‘initInfoPtr’
/src/stringprocess.cc:71:25: error: no matching function for call to ‘Pythia8::SigmaTotal::init()’
/src/stringprocess.cc:597:60: error: no matching function for call to ‘Pythia8::Pythia::next(double&)’
I'm sure I'm using the correct version of Pythia8 (ver. 8.303).
I'm using gcc ver. 4.8.5, GSL ver. 2.5, eigen ver. 3.4.0, boost ver. 1.68.0, and root ver. 6.16.
I've tried SMASH ver. 2.1.2 - the issue remains.
Hi,
we tried to run SMASH on our cluster and it failed, but not always...
If we run 10 instances of SMASH at once no problem occurs, while when we run 100/1000 instances around 1/3 crashed.
This is the stack trace:
*** Break *** illegal instruction
###############################################################################
:::s.
.... ''ss:: ah:
a::''. ..:sss .HH.
mss'.. ...s'm. sSA##As mAhh##hsh##s. .hA##ASa sS###As hMAh##h.
:a':'. .'':as sM#' .HHm''HMS''AMs mMA' .AMs aMA. 'HHa..HM:
.a:s'. ..''ss 'h#H#S. mMm 'M#' .HH. 'MH. :MA 'h#H#S. hMm :M#
.::ss'. .... 'SMm .HH. SMa hMm sM#..mHMs 'AMa 'MH. SMa
.s::' #SMASHh aMS .MH: HM: #MMMmMM. #SMASHh aMS .MM.
###############################################################################
This is SMASH version: SMASH-1.6
Simulating Many Accelerated Strongly-interacting Hadrons
Distributed under the GNU General Public License 3.0 (GPLv3 or later).
See LICENSE for details.
For the full list of contributors see AUTHORS.
When using SMASH, please cite
J. Weil et al., Phys.Rev. C94 (2016) no.5, 054905
and in addition, if Pythia is used please cite
T. Sjöstrand, S. Mrenna and P. Skands, JHEP05 (2006) 026,
Comput. Phys. Comm. 178 (2008) 852.
Webpage: https://smash-transport.github.io
Report issues at https://github.com/smash-transport/smash
or contact us by email at [email protected]
###############################################################################
*** Break *** segmentation violation
It seems like this is an issue with root.
Is there some kind of limit for smash instances?
Thanks a lot for your help!
Greetings,
Steffen
Dear experts
I have been running SMASH on a Ubuntu 18 system with an 9th generation intel i7 chip. The performance of SMASH on this machine is reasonably good (1000 events in ~3 hours for central Au+Au collisions at 39 GeV). Recently I moved to a newer PC with a 12th gen intel i9 chipset running Ubuntu 22. The speed of SMASH has gone down drastically, I was able to reach close to a hundred events in 3 hours for the same collision system. This is compared on the single core performance of both systems. I even checked if the new chipset was running on lower clock-speeds but that does not seem to be the case (3800 MHz vs 4900 MHz). Is this a limitation of the new generation processors which use a mix of performance + efficiency cores, or am I overlooking any missing detail?
Thanks a lot in advance
I have installed smash according to the manu. In the config.yaml, I set 'Sqrtsnn: 7.7', then run ./smash
It gives the following information:
PYTHIA Warning in JunctionSplitting::CheckColours: not-a-number energy/momentum/mass
PYTHIA Error in HadronLevel::next: failed colour/junction check
PYTHIA Error in Pythia::forceHadronLevel: hadronLevel failed; try again
PYTHIA Abort from Pythia::forceHadronLevel: hadronLevel failed; giving up
PYTHIA Error in MiniStringFragmentation::fragment: no 1- or 2-body state found above mass threshold
smash continues to run till the end.
What does this information mean? Does this affect the final results?
I am trying to install SMASH with Ubuntu (on windows) and I'm running into a problem when I try to run make in the build directory. I have all the prerequisites installed, I use the following cmake options:
$ cmake .. -DGSL_ROOT_DIR=gsl-2.7.1 -DPythia_CONFIG_EXECUTABLE=/home/ejduck3744/pythia8307/bin/pythia8-config -DBoost_INCLUDE_DIR=/boost_1_81_0 -DCMAKE_CXX_STANDARD=14 -DCMAKE_CXX_COMPILER=g++
and that works without a hitch, but when I try:
$ make
I get a long string of similar errors starting with:
In file included from /usr/include/c++/10/iomanip:43,
from /home/ejduck3744/smash-SMASH-2.2/3rdparty/einhard/einhard.hpp:63,
from /home/ejduck3744/smash-SMASH-2.2/src/include/smash/logging.h:17,
from /home/ejduck3744/smash-SMASH-2.2/src/include/smash/lattice.h:21,
from /home/ejduck3744/smash-SMASH-2.2/src/include/smash/action.h:17,
from /home/ejduck3744/smash-SMASH-2.2/src/action.cc:10:
/usr/bin/locale:1:1: error: stray ‘\177’ in program
{list of random characters}
/usr/bin/locale:1:5: error: stray ‘\2’ in program
....
and so on, essentially continuing on with a similar error for every few characters in /usr/bin/locale. I think it has to do with character encoding, but trying to convert /usr/bin/locale to UTF-8 doesn't solve the issue. Do you know what is going on?
Thanks for your help!
I installed all Prerequisites and when i try to build smash as followed by instructions i get this after "cmake .. -DPythia_CONFIG_EXECUTABLE=[...]/pythia8303/bin/pythia8-config" command
I am following steps to build SMASH on ubuntu.
I build Pythia and eigen3 as well.
But after that when I build SMASH using the commands mentioned, I am getting the following error,
...
CMake Error: The source directory "/home/yash" does not appear to contain CMakeLists.txt.
...
Kindly help me with this. Thank You !!!
Dear sir/madam,
My name is Pavlo Panasiuk, I am an user busy with comparing different MC generators, including SMASH-2.2 and SMASH-1.8 .
While I managed to build SMASH-2.2 on SAGA (NRIS HPC), SMASH-1.8 fails to build with same toolkit (except for different pythia version).
Is it possible to ask for technical support? Or is this version considered too old already?
Logfile is a bit over 100 Mb, so I'm not attaching it right away.
Thanks,
Pavlo
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.