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: [{: 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