Back to home page

EIC code displayed by LXR

 
 

    


Warning, /eic.github.io/_documentation/faq.md is written in an unsupported language. File is not indexed.

0001 ---
0002 title: FAQ
0003 description: FAQ
0004 name: faq
0005 layout: default
0006 ---
0007 
0008 {% include layouts/title.md %}
0009 
0010 Welcome to the **Frequently Asked Questions** page!
0011 Please use the [Helpdesk](https://eic.cloud.mattermost.com/main/channels/helpdesk) on Mattermost for urgent correspondence.
0012 
0013 Submit new questions and comments by email: [![emailicon](../assets/images/site/icons/email.png){: width="3%" }](mailto:epic-sc-faq-l@lists.bnl.gov)
0014 
0015 ------------------------
0016 **Q: How can we browse the simulation output from a specific campaign and locate certain output files?**
0017 
0018 A: Visit the [epicprod website](https://eic.github.io/epic-prod/campaigns/campaigns_reco.html) to view the list of avaiable campaigns. Pick a campaign that you want to view in detail. For example: [25.01.1](https://eic.github.io/epic-prod/RECO/25.01.1/). Here, you will find the output directories listed in a nested tree structure. The directory nomenclature usually follows the pattern:
0019 
0020 ```<base directory>/<campaign tag>/<detector config>/<physics processes>/<generator release tag if available>/<electron momentum>x<proton momentum>/<q2 range>/```
0021 
0022 The preferred method to list the files in a directory is to use the xrdfs interface within eic-shell container. For example:
0023 ```
0024     xrdfs root://dtn-eic.jlab.org   
0025     ls /volatile/eic/EPIC/RECO/25.01.1/epic_craterlake/DIS/NC/18x275/minQ2=1000
0026 ```
0027 See more details [here](https://eic.github.io/epic-prod/documentation/faq.html) and in the resources section under [Production Files Access](https://eic.github.io/resources/production_file.html).
0028 
0029 **Q: What input datasets are used in a particular production campaign and where can I find them?**
0030 
0031 A: The directory structure of the input datasets mimic the directory structure of the output files from `<physics processes>` onwards. Consider, the output files under `root://dtn-eic.jlab.org//volatile/eic/EPIC/RECO/25.01.1/epic_craterlake/DIS/NC/10x100/minQ2=1`. The corresponding input datasets can be found in the following manner:
0032 
0033 ```
0034 xrdfs root://dtn-eic.jlab.org
0035 ls /volatile/eic/EPIC/EVGEN/DIS/NC/10x100/minQ2=1
0036 ```
0037 
0038 **Q: What is the procedure to introduce a new dataset into a production campaign or replace an existing one?**
0039 
0040 A: Follow the input dataset creation [guidelines](https://eic.github.io/epic-prod/documentation/input_preprocessing.html) listed in the epic-prod website.
0041 
0042 **Q: How can we load files into ROOT directly from xrootd?**
0043 
0044 A: Enter the full file path including server address using root TFile::Open. For example:
0045 ```
0046     auto f = TFile::Open("root://dtn-eic.jlab.org//volatile/eic/EPIC/RECO/25.01.1/epic_craterlake/DIS/NC/18x275/minQ2=1000/pythia8NCDIS_18x275_minQ2=1000_beamEffects_xAngle=-0.025_hiDiv_1.0000.eicrecon.tree.edm4eic.root")
0047 ```
0048 See more details [here](https://eic.github.io/epic-prod/documentation/faq.html).
0049 
0050 **Q: How can we copy files from xrootd?**
0051 
0052 A: Use xrdcp with full path and local destination directory. For example:
0053 ```
0054 xrdcp root://dtn-eic.jlab.org//volatile/eic/EPIC/RECO/25.01.1/epic_craterlake/DIS/NC/18x275/minQ2=1000/pythia8NCDIS_18x275_minQ2=1000_beamEffects_xAngle=-0.025_hiDiv_1.0000.eicrecon.tree.edm4eic.root <local destination>
0055 ```
0056 
0057 **Q: What is included in the campaign, and what are the major changes compared to before?**
0058 
0059 A: We version track the [epic](https://github.com/eic/epic/releases) and [eicrecon](https://github.com/eic/eicrecon/releases) repositories and the new features introduced in a campaign are tracked in the release notes. For example: [epic-25.01.1](https://github.com/eic/epic/releases/tag/25.01.1) and [eicrecon-1.21.0](https://github.com/eic/eicrecon/releases/tag/v1.21.0) represent the software changes introduced in January, 2025 campaign. Version tracking is also enforced for input datasets.
0060 
0061 **Q: How can we effectively use the information stored in EICRecon rootfile outputs, such as matching reconstructed particles to their MC particles?**
0062 
0063 A: To an extent, this is covered in the [dRICH tutorials](https://github.com/eic/drich-dev/blob/tutorial/doc/tutorials/3-running-reconstruction.md), starting at session 3 and partly covered in existing [recorded tutorials](https://indico.bnl.gov/event/18373/). **TODO:** Probably needs to be supplemented with example codes. 
0064 
0065 **Q: How can we apply beam effects, including adjusting the ion beam when using a particle gun?**
0066 
0067 A: Beam effects are handled by the [afterburner](https://github.com/eic/afterburner), which expects HepMC3 input. They cannot be simply turned on in just the npsim particle gun. 
0068 
0069 **Q: How do we check and change beam magnet settings for both simulation and reconstruction?**
0070 
0071 A: **TODO:**Changing magnet configuration in reconstruction makes little sense. Checking and changing it for simulation should be answered by the prod group.
0072 
0073 
0074 **Q: What is the best practice for analyzing EICrecon output, especially regarding hadron PID likelihoods?**
0075 
0076 A: **TODO:** Needs an updated analysis tutorial. I don't believe at this point we have a simple unified PID likelihood approach.
0077 
0078 **Q: How can we develop a benchmark for an analysis code to pass on to the validation software team?**
0079 
0080 A: **TODO:** We originally planned a dedicated "Tutorial: Writing physics benchmarks that run automatically and reproducibly" - this needs to be revisited. Otherwise, Dmitry K, Wouter, Sylvester may be able to write up something short. This is a good FAQ candidate really, if we can get this answered.
0081 
0082 **Q: How can we access various (SI)DIS variables through different reconstruction methods?**
0083 
0084 A: **TODO:** Things like ``InclusiveKinematicsDA.cc`` are part of EicRecon, but I don't know how to use it. I don't believe it's calculated by default during campaigns, so one would still need an analysis level version. Would be good example analysis code, and I'm sure it exists in many forms on various people's laptops.
0085 
0086 **Q: How do we match tracks and clusters from the calorimeters?**
0087 
0088 **Q: How can we access hadron and electron PID data?**
0089 
0090 A: You can access a sampled hypothesis via `PDG` field of the `ReconstructedParticle`. The `particleIDs` relation will contain all of the available hypotheses (for expert use).
0091 
0092 **Q: How do we navigate from reconstructed to truth information?**
0093 
0094 A: Needs a refreshed tutorial; needs example code
0095 
0096 **Q: Is there an organized repository or wiki that guides newcomers to the right tutorials and slides?**
0097 
0098 A: Yes, but the dRICH one is closest, plus the tutorials indico. **TODO:** Should be combined and front and center of the landing page.
0099 
0100 **Q: Are there quick starter-code examples (Analyzer macros) for accessing branch information and creating physics plots?**
0101 
0102 A: **TODO:** Yes, but not well organized and more is better.
0103 
0104 **Q: Can you provide an example of analyzing EICrecon data using basic methods?**
0105 
0106 A: [https://indico.bnl.gov/event/18373/](https://indico.bnl.gov/event/18373/) has some, so does the dRICH tutorial. **TODO:** Needs more example code.
0107 
0108 **Q: How do I disable a certain particle decay during the detector simulation?**
0109 
0110 A: You can disable/modify a decay by changing its branching ratio. Create a ddsim/npsim steering file with contents like
0111 ```python
0112 from DDSim.DD4hepSimulation import DD4hepSimulation
0113 SIM = DD4hepSimulation()
0114 SIM.ui.commandsConfigure = [
0115     "/particle/select lambda",
0116     # dump before
0117     "/particle/property/decay/dump",
0118     # proton pi-
0119     "/particle/property/decay/select 0",
0120     "/particle/property/decay/br 0",
0121     # neutron pi0
0122     "/particle/property/decay/select 1",
0123     "/particle/property/decay/br 1",
0124     # dump after
0125     "/particle/property/decay/dump",
0126 ]
0127 SIM.ui.commandsInitialize = []
0128 SIM.ui.commandsPostRun = []
0129 SIM.ui.commandsPreRun = []
0130 SIM.ui.commandsTerminate = []
0131 ```
0132 and pass it via `--macroFile` option in your ddsim/npsim invocation.
0133 
0134 **Q: How do I obtain the generated cross-section for a simulated dataset?**
0135 
0136 Information of generated events can be found in the .hepmc3.tree.root files in /work/eic/EPIC/EVGEN. Here is an example on how to print out the cross section stored in the ROOT tree:
0137 ```
0138 root -l -b -q root://dtn-eic.jlab.org//volatile/eic/EPIC/EVGEN/DIS/NC/18x275/minQ2=1/pythia8NCDIS_18x275_minQ2=1_beamEffects_xAngle=-0.025_hiDiv_1.hepmc3.tree.root -e 'hepmc3_tree->Scan("hepmc3_event.attribute_string", "hepmc3_event.attribute_id==0 && hepmc3_event.attribute_name ==\"GenCrossSection\"", "colsize=30", 1, hepmc3_tree->GetEntries()-1)'
0139 ```
0140 Or: 
0141 ```
0142 TFile* file = TFile::Open("root://dtn-eic.jlab.org//volatile/eic/EPIC/EVGEN/DIS/NC/18x275/minQ2=1/pythia8NCDIS_18x275_minQ2=1_beamEffects_xAngle=-0.025_hiDiv_1.hepmc3.tree.root");
0143 
0144 TTreeReader tree_reader("hepmc3_tree", file);
0145 tree->Scan("hepmc3_event.attribute_string", "hepmc3_event.attribute_id==0 && hepmc3_event.attribute_name ==\"GenCrossSection\"", "colsize=30", 1, tree->GetEntries()-1);
0146 ```
0147 The “1” at the end of the file name indicates that these events are used in /volatile/eic/EPIC/RECO/25.01.1/epic_craterlake/DIS/NC/18x275/minQ2=1/pythia8NCDIS_18x275_minQ2=1_beamEffects_xAngle=-0.025_hiDiv_1.xxxx.hepmc3.tree.root