duanebyer / sidis Goto Github PK
View Code? Open in Web Editor NEWEvent generator for polarized SIDIS with radiative corrections.
License: GNU General Public License v3.0
Event generator for polarized SIDIS with radiative corrections.
License: GNU General Public License v3.0
The make install command doesn't provide libmstwpdf, but it should be included for linking with libsidis.
The vacuum hadron polarization calculation is a bit outdated. It should be replaced with a more modern estimate.
It's very difficult to make changes to the parameter file format. A large refactor of the code for the parameter system is underway, that should make adding/removing new parameters in the future much easier.
The num_events[4] in stats does not match with what it is supposed to be as in paper
The cross section calculation in example/process_events.cpp is weight*norm. Should be weight/norm
The exclusive contribution to the cross section is not currently included. We need support for exclusive structure functions to move forward on this.
ExclusiveSfSet
.The convention is:
This might not be followed by all parts of the code, especially the stats output in the TTree, so it should be double-checked.
The sf_out option depends on there being no padding in the SfLP struct, which could change depending on the compiler.
The asym
namespace lets UT asymmetries be calculated efficiently. What about other kinds, like LT, LL, and so on? These should also have efficient and convenient implementations.
Right now, only the TMD factorization is supported. For regions of high qT/Q
, it is necessary to use the collinear factorization. It would also be useful to provide matching between TMD factorization and collinear factorization for intermediate qT/Q
.
CollinearPDFSet
) to represent collinear PDFs/FFs.SfSet
(ex. CollinearSfSet
) that can calculate structure functions from collinear factorizations.SfSet
that can combine a TMD factorization (TmdSfSet
) with a collinear factorization (CollinearSfSet
) using a matching procedure for intermediate qT/Q
.The QED coupling alpha_QED
should run with Q, right now it's always kept constant.
The user should be able to choose which kinematic variables get logged to the event generation file. Right now, only the six SIDIS phase space variables (x, y, z, pt^2, phi_h, phi) are logged. The parameter file should support a selection of kinematic variables to log. E.x.
out.file.vars = x,y,Q_sq,W_sq
The CMake configuration is broken for clang on linux, there are linking issues with libm and LTO.
The code generation with cog makes the source much harder to read. It's also an awkward part of the build.
Different structure functions (even with different polarization) will share some common TMDs between them. For Gaussian-approximated structure functions, this means that TMDs are redundantly calculated several times when computing a single cross-section.
The headers within the "sidis/extra" folder should be kept internal to the project only.
We should support additional targets, such as neutron and nuclear targets. Right now, users can define their own structure functions for these situations, but it would be nice if there was a simple default option.
Currently, if Gaussian approximation is not used, the TMDs are convoluted numerically in 2D to calculate the structure functions. They are integrated out to an arbitrary upper bound. This can be improved in a few ways.
We should consider whether certain libraries should be factored out of libsidis/sidisgen.
Currently, a modified version of FOAM is used for the underlying Monte-Carlo generator in sidisgen
. Alternate algorithms like VEGAS might perform better in certain situations. It should be possible for the user to choose which MC generator they want to use. The code almost supports this already, it just needs a little bit more work to get all the way there.
We should provide easy integration with external libraries for TMDs and PDFs, such as LHAPDF library and TMDlib.
libsidis
, add new implementation of TmdSet
that can load TMDs/PDFs from the system.sidisgen
, it should be easy to specify a desired set of TMDs and PDFs in the parameter file.It would be useful for users of libsidis to be able to construct a structure function from a simple string description. The code to do this could be moved from sidisgen where it lives currently, to libsidis. Then call something like:
std::unique_ptr<sf::SfSet> sf = sf::create("leading prokudin");
The only issue is that sidisgen also supports loading ROOT libs to provide structure functions. This could be implemented as a fallback, in case sf::create
were to fail.
Only ROOT file formats are supported by sidisgen
currently. Other MC file formats, like HepMC, are sometimes more useful.
sidisgen
, use CMake configuration variable to enable.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.