Back to home page

sPhenix code displayed by LXR

 
 

    


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).