Warning, /JETSCAPE/README.md is written in an unsupported language. File is not indexed.
0001 # JETSCAPE 3.6
0002
0003 The [JETSCAPE](http://jetscape.org) simulation framework is an overarching computational envelope for developing complete event generators for heavy-ion collisions.
0004 It allows for modular incorporation of a wide variety of existing and future software that simulates different aspects of a heavy-ion collision.
0005 For a full introduction to JETSCAPE, please see [The JETSCAPE framework](https://arxiv.org/abs/1903.07706).
0006
0007 Please cite [The JETSCAPE framework](https://arxiv.org/abs/1903.07706) if you use this package for scientific work.
0008
0009 ## Installation
0010
0011 Please see the [Installation Instructions](https://github.com/JETSCAPE/JETSCAPE/wiki/Doc.Installation).
0012
0013 ## Running JETSCAPE
0014
0015 The main executable to generate JETSCAPE events is `runJetscape`, located in the `build/` directory.
0016 To generate JETSCAPE events, you should pass an XML file specifying the settings with which you would like to run:
0017
0018 ```
0019 ./runJetscape ../config/jetscape_user.xml
0020 ```
0021
0022 ### The XML Configuration
0023
0024 All of the JETSCAPE settings are specified by two XML files:
0025 - Main XML file: *you don't modify this*
0026 - Contains default values for every possible module and parameter
0027 - User XML file: *you provide this*
0028 - Contains a list of which modules to run, and which default parameter values to override
0029
0030 An example User XML file is provided at `config/jetscape_user.xml`.
0031 You should adapt this as you like:
0032 - Set number of events to run
0033 - Set output format (`Writer` type) and filename
0034 - Set which modules to include (in order of execution)
0035 - Set any default parameter values (from Main XML file) to override
0036
0037 The Main XML file is located at `config/jetscape_main.xml`, and contains a list of
0038 the default parameter settings which will be used for all activated modules (as specified by the User XML file),
0039 if they are not overridden in the User XML file.
0040
0041 You can pass the path to your user XML file as a command-line argument to the `runJetscape` executable:
0042 ```
0043 ./runJetscape /path/to/my/user_config.xml
0044 ```
0045
0046 ## JETSCAPE Output
0047
0048 JETSCAPE output can be generated in Ascii, gzipped Ascii, or HepMC format,
0049 and contains a full list of particles and the parton shower history.
0050 You must specify which format you would like to activate in your User XML file.
0051
0052 ### Analysis of JETSCAPE Output
0053
0054 Analysis of JETSCAPE output is generally beyond the scope of the JETSCAPE framework, and is the responsibility of the user.
0055 The JETSCAPE docker container includes ROOT, python, fastjet, and several other tools that may be useful.
0056
0057 An example reading an ascii output file is provided:
0058
0059 ```bash
0060 ./build/readerTest
0061 ```
0062
0063 which reads in the generated showers does some DFS search and shows the output. You can generate an output graph format which can be easily visualized using graphViz or other tools like Gephi (GUI for free for Mac) or more adanvanced, graph-tools (Python) and many more. Furthermore, as a "closure" test, the FastJet core package (compiled in our JetScape library) is used to perform a simple jetfinding (on the "final" partons, in graph language, incoming partons in a vertex with no outgoing partons/childs), and since the "shower" is perfectly collinear the jet pT is identical to the hard process parton pT (modulo some random new partons/roots in the final state, see above).
0064
0065 ## JETSCAPE Tunes
0066
0067 Currently, there exists a pp tune [PP19](https://arxiv.org/abs/1910.05481), which can be run by:
0068 ```
0069 ./runJetscape ../config/jetscape_user_PP19.xml
0070 ```
0071
0072 Tuning of Pb-Pb is ongoing.
0073 Several example hydro profiles can be downloaded using `examples/get_hydroSample*`.
0074
0075 ## Developing modules
0076
0077 To develop a new JETSCAPE module, you should inherit from the relevant base class (InitialState, JetEnergyLoss, etc.)
0078 and implement the relevant initialization and execution functions, described in detail in [The JETSCAPE framework](https://arxiv.org/abs/1903.07706)
0079 Section 3.3.
0080
0081 Additionally, you must register your module with the framework with the following steps:
0082 - Add the following to your module .h:
0083 ```
0084 private:
0085 // Allows the registration of the module so that it is available to be used by the Jetscape framework.
0086 static RegisterJetScapeModule<MyClass> reg;
0087 ```
0088 - Add the following to your module .cc:
0089 ```
0090 // Register the module with the base class
0091 RegisterJetScapeModule<MyClass> MyClass::reg("CustomModuleBlahBlah");
0092 ```
0093 where `MyClass` is the name of your class, and "CustomModuleBlahBlah" is the name that should be added to the XML configuration.
0094 You can see any of the established modules, e.g. `Matter`, as an example.
0095
0096 Important Note: In the case of custom modules, you *must* start your module name with "CustomModule..."
0097 in order for it to be recognized by the framework (for custom writers, you must start the name with "CustomWriter").
0098
0099 New modules should not use multiple inheritance, if avoidable.
0100
0101 Once these steps are done, one can just add the module name to the XML, and it will be automatically available to run in JETSCAPE.
0102
0103 ## Troubleshooting
0104
0105 If you encounter a problem, please report the issue [here](https://github.com/JETSCAPE/JETSCAPE/issues).
0106 Please be sure to include enough information so that we can reproduce your issue: your platform, JETSCAPE version,
0107 configuration file, and anything else that may be relevant.
0108
0109 ## Contributing to JETSCAPE
0110
0111 If you would like to contribute code to JETSCAPE (new module, feature, bug fix, etc.) please open
0112 a [Pull Request](https://github.com/JETSCAPE/JETSCAPE/pulls) with your changes, or an [Issue](https://github.com/JETSCAPE/JETSCAPE/issues) describing what you intend to do. For further details, see [Tips for git management](https://github.com/JETSCAPE/JETSCAPE/wiki/Tips-for-git-management).