New package: unigen (#21338)
This commit is contained in:
parent
5cb8d1894b
commit
5add6c4e03
2 changed files with 158 additions and 0 deletions
31
var/spack/repos/builtin/packages/unigen/package.py
Normal file
31
var/spack/repos/builtin/packages/unigen/package.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Unigen(MakefilePackage):
|
||||
"""The United Generators project was launched by the Virtual Institute 146
|
||||
VI-SIM in September 2005 following a proposal of Herbert Strobele.
|
||||
The goal was to facilitate comparison between various models (see below)
|
||||
and/or various experiments (HADES, FOPI, CERES, NA49, CBM). The package
|
||||
at present allows to convert output of various event generators to a
|
||||
generic root format."""
|
||||
|
||||
homepage = "https://www.gsi.de/work/wissenschaftliche_netzwerke/helmholtz_virtuelle_institute/unigen.htm"
|
||||
url = "https://github.com/FairRootGroup/UniGen/archive/v2.3.tar.gz"
|
||||
|
||||
version('2.3', sha256='8783bcabbdf8c50dab6e93153cff9cfb267a9a9e61aef51bf1e17679ba42a717')
|
||||
patch('unigen-2.3.patch', level=0)
|
||||
|
||||
depends_on('root', type=('build', 'link'))
|
||||
|
||||
def build(self, spec, prefix):
|
||||
mkdirp(join_path(self.build_directory, 'lib'))
|
||||
make('TOPDIR=' + self.build_directory, 'all')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make('DESTDIR=' + prefix, 'TOPDIR=' + self.build_directory, 'install')
|
127
var/spack/repos/builtin/packages/unigen/unigen-2.3.patch
Normal file
127
var/spack/repos/builtin/packages/unigen/unigen-2.3.patch
Normal file
|
@ -0,0 +1,127 @@
|
|||
--- config/Makelib.orig 2019-10-29 01:07:48.000000000 +0100
|
||||
+++ config/Makelib 2021-01-27 15:09:05.473365100 +0100
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
|
||||
# Default target
|
||||
-all : obj dict lib
|
||||
+all : lib
|
||||
|
||||
|
||||
# ----- Rules for source compilation ----------
|
||||
@@ -20,7 +20,14 @@
|
||||
|
||||
$(TARGET)Dict.cxx : $(incl) include/$(TARGET)LinkDef.h
|
||||
@echo 'Generating dictionary' $@ '...'
|
||||
+ifneq ($(strip $(RLIBMAP)),)
|
||||
+# ROOTv5
|
||||
@rootcint -f $@ -c $(INCDIR) $^
|
||||
+else
|
||||
+#ROOT v6
|
||||
+ @rootcling -f $@ -rmf $(TOPDIR)/lib/lib$(TARGET).rootmap -rml lib$(TARGET) -s lib$(TARGET) $(INCDIR) $^
|
||||
+ @mv lib$(TARGET)_rdict.pcm $(TOPDIR)/lib/lib$(TARGET)_rdict.pcm
|
||||
+endif
|
||||
# -----------------------------------------------
|
||||
|
||||
|
||||
@@ -96,6 +103,7 @@
|
||||
@rm -f $(TOPDIR)/lib/lib$(TARGET).so
|
||||
@rm -f $(TOPDIR)/lib/lib$(TARGET).a
|
||||
@rm -f $(TOPDIR)/lib/lib$(TARGET).rootmap
|
||||
+ @rm -f $(TOPDIR)/lib/lib$(TARGET)_rdict.pcm
|
||||
|
||||
htmldoc :
|
||||
@echo 'Building class documentation...'
|
||||
@@ -106,8 +114,10 @@
|
||||
install_lib : lib
|
||||
@echo 'Installing library ...'
|
||||
mkdir -p -m 0755 $(DESTDIR)/lib
|
||||
+ mkdir -p -m 0755 $(DESTDIR)/include/unigen
|
||||
install -m 0755 $(TOPDIR)/lib/lib$(TARGET).so $(DESTDIR)/lib
|
||||
-ifneq ($(strip $(RLIBMAP)),)
|
||||
install -m 0644 $(TOPDIR)/lib/lib$(TARGET).rootmap $(DESTDIR)/lib
|
||||
+ifeq ($(strip $(RLIBMAP)),)
|
||||
+ install -m 0644 $(TOPDIR)/lib/lib$(TARGET)_rdict.pcm $(DESTDIR)/lib
|
||||
endif
|
||||
-
|
||||
+ install -m 0644 include/*.h $(DESTDIR)/include/unigen
|
||||
--- converters/urqmd2u.cpp.orig 2019-10-29 01:07:48.000000000 +0100
|
||||
+++ converters/urqmd2u.cpp 2021-01-27 15:04:37.547010300 +0100
|
||||
@@ -93,7 +93,6 @@
|
||||
char *inpfile;
|
||||
char *outfile;
|
||||
char c;
|
||||
- int nevents;
|
||||
string dust;
|
||||
|
||||
URun *ru = 0;
|
||||
@@ -101,7 +100,7 @@
|
||||
int filetype, eos, aproj, zproj, atarg, ztarg, nr;
|
||||
double beta, b, bmin, bmax, sigma, elab, plab, sqrts, time, dtime;
|
||||
|
||||
- if (argc != 4) {
|
||||
+ if (argc < 3 || argc > 4) {
|
||||
cout << "usage: " << argv[0] << " inpfile outfile nevents\n";
|
||||
cout << "example: " << argv[0] << " ftn14 ftn14.root 10\n";
|
||||
exit(0);
|
||||
@@ -109,7 +108,7 @@
|
||||
|
||||
inpfile = argv[1];
|
||||
outfile = argv[2];
|
||||
- nevents = atoi(argv[3]);
|
||||
+ const int nevents = (argc == 4) ? atoi(argv[3]) : 1e8;
|
||||
|
||||
int nout=0;
|
||||
in.open(inpfile);
|
||||
@@ -141,15 +140,14 @@
|
||||
in.ignore(777,'\n'); // ignore the rest of the line
|
||||
|
||||
comment.clear();
|
||||
- // read 3 lines of options and 4 lines of params
|
||||
- for (int i=0; i<100; i++) {
|
||||
- getline(in,line);
|
||||
- if(0 == line.substr(0, 4).compare("pvec"))
|
||||
- {
|
||||
- break;
|
||||
- }
|
||||
- comment.append(line);
|
||||
- comment.append("\n");
|
||||
+ // read options and parameters
|
||||
+ while (true) {
|
||||
+ getline(in, line);
|
||||
+ if (TString(line).BeginsWith("op") || TString(line).BeginsWith("pa")) {
|
||||
+ comment.append(line);
|
||||
+ comment.append("\n");
|
||||
+ } else
|
||||
+ break;
|
||||
}
|
||||
//in.ignore(777,'\n');
|
||||
|
||||
@@ -207,9 +205,15 @@
|
||||
double m = 0.938271998;
|
||||
double ecm = sqrts/2; // energy per nucleon in cm
|
||||
double pcm = sqrt(ecm*ecm-m*m); // momentum per nucleon in cm
|
||||
- double gamma = 1.0/sqrt(1-beta*beta);
|
||||
- double pproj = gamma*(+pcm-beta*ecm);
|
||||
- double ptarg = gamma*(-pcm-beta*ecm);
|
||||
+ double pproj = 0.0;
|
||||
+ double ptarg = 0.0;
|
||||
+ if (fabs(beta) < 1e-8) { // we are in CM
|
||||
+ pproj = pcm;
|
||||
+ ptarg = -pcm;
|
||||
+ } else {
|
||||
+ pproj = plab;
|
||||
+ ptarg = 0.0;
|
||||
+ }
|
||||
ru = new URun(generator.data(), comment.data(),
|
||||
aproj, zproj, pproj,
|
||||
atarg, ztarg, ptarg,
|
||||
@@ -217,7 +221,7 @@
|
||||
ru->Write();
|
||||
fi->Write();
|
||||
fi->Close();
|
||||
- return nout;
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
/*****************************************************************************/
|
Loading…
Reference in a new issue