Skip to content

Commit 3fe739c

Browse files
authored
Merge pull request #64 from eic/documentation-for-understanding-background-mixed-files
Create some guidelines for understanding background samples
2 parents 2c03eda + 34a1f6a commit 3fe739c

File tree

1 file changed

+191
-0
lines changed

1 file changed

+191
-0
lines changed
Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
---
2+
title: Mixed Signal and Background Samples
3+
description: background_mixed_samples
4+
name: background_mixed_samples
5+
layout: default
6+
---
7+
8+
{% include layouts/title.md %}
9+
10+
11+
---
12+
# Case 1: At least 1 Signal in Every Event of a Run
13+
14+
A run is a collection of events and each event represents a 2000 nano second long integration frame.
15+
16+
## Representation of a "Run" with 5 "Events"
17+
If we assume a signal frequency of 500 kHz, each event contains at least 1 signal contribution. The background contributions get allocated per event based on their sampling frequency. Processes with less than 500 kHz sampling frequency are not guaranteed a contribution in every event.
18+
19+
| **Event** | **signal** | **synrad** | **ebrems** | **etouschek** | **ecoloumb** | **p.b.gas**|
20+
| ----------- | ----------- | -----------| --------- | ------------ | ----------- | ----------- |
21+
| **Event 1** | 🔴 | ⚪⚪⚪⚪ | 🔵 | | | |
22+
| **Event 2** | 🔴 | ⚪⚪⚪⚪ | | | 🟡 | 🟣 |
23+
| **Event 3** | 🔴 | ⚪⚪⚪ | | 🟢 | | |
24+
| **Event 4** | 🔴 | ⚪⚪⚪ | 🔵 | | | 🟣 |
25+
| **Event 5** | 🔴 | ⚪⚪⚪ ⚪ | 🔵 | | | |
26+
27+
## Legend
28+
29+
| Symbol | Process | Description | Sampling Frequency (kHz) | Status Code Shift |
30+
|--------|---------|-------------| ------------------| --------------------- |
31+
| 🔴 | **signal** | DIS NC 18x275 Q²>1 (Deep inelastic scattering neutral current) | 500 | 0
32+
| ⚪ | **synrad** | Synchrotron Radiation | 14000 | 2000
33+
| 🔵 | **ebrems** | Electron bremsstrahlung radiation | 316.94 | 3000
34+
| 🟢 | **etouschek** | Electron Touschek scattering (intrabeam scattering) | 1.3 | 4000
35+
| 🟡 | **ecoulomb** | Electron Coulomb scattering processes | 0.72 | 5000
36+
| 🟣 | **p.b.gas** | Proton beam gas interactions | 22.5 | 6000
37+
38+
N.B.: The sampling frequencies in this example are taken from the [ePIC Background Wiki Page](https://wiki.bnl.gov/EPIC/index.php?title=Background)
39+
40+
## Location of files
41+
42+
**Simulation Output**
43+
44+
```
45+
root://dtn-eic.jlab.org//volatile/eic/EPIC/FULL/25.06.1/epic_craterlake/Bkg_1SignalPer2usFrame/Synrad_18GeV_Vac_10000Ahr_Runtime_10ms_Egas_All_18GeV_Hgas_275GeV/DIS/NC/18x275/minQ2=1/
46+
```
47+
48+
**Reconstructed Output**
49+
50+
```
51+
root://dtn-eic.jlab.org//volatile/eic/EPIC/RECO/25.06.1/epic_craterlake/Bkg_1SignalPer2usFrame/Synrad_18GeV_Vac_10000Ahr_Runtime_10ms_Egas_All_18GeV_Hgas_275GeV/DIS/NC/18x275/minQ2=1/
52+
```
53+
54+
N.B.: Increment the campaign tag (25.06.1) to get the latest campaigns. Reconstructed output is available for every campaign but simulation output is not always preserved to save storage resources.
55+
56+
---
57+
58+
59+
---
60+
# Case 2: Realistic Signal Contribution Per Event of a Run
61+
62+
A run is a collection of events and each event represents a 2000 nano second long integration frame. For the SIDIS pythia6 18x275 Q²<1, the signal frequency is 83 kHz which would result in 1 signal contribution every ~5 events.
63+
64+
## Representation of a "Run" with 5 "Events"
65+
66+
| **Event** | **signal** | **synrad** | **ebrems** | **etouschek** | **ecoloumb** | **p.b.gas**|
67+
| ----------- | ----------- | -----------| --------- | ------------ | ----------- | ----------- |
68+
| **Event 1** | | ⚪⚪⚪⚪ | 🔵 | | | |
69+
| **Event 2** | | ⚪⚪⚪⚪ | | | 🟡 | 🟣 |
70+
| **Event 3** | 🔴 | ⚪⚪⚪ | | 🟢 | | |
71+
| **Event 4** | | ⚪⚪⚪ | 🔵 | | | 🟣 |
72+
| **Event 5** | | ⚪⚪⚪ ⚪ | 🔵 | | | |
73+
74+
## Legend
75+
76+
| Symbol | Process | Description | Sampling Frequency (kHz) | Status Code Shift |
77+
|--------|---------|-------------| ------------------| --------------------- |
78+
| 🔴 | **signal** | SIDIS pythia6 18x275 Q²<1 (Deep inelastic scattering neutral current) | 500 | 0
79+
| ⚪ | **synrad** | Synchrotron Radiation | 14000 | 2000
80+
| 🔵 | **ebrems** | Electron bremsstrahlung radiation | 316.94 | 3000
81+
| 🟢 | **etouschek** | Electron Touschek scattering (intrabeam scattering) | 1.3 | 4000
82+
| 🟡 | **ecoulomb** | Electron Coulomb scattering processes | 0.72 | 5000
83+
| 🟣 | **p.b.gas** | Proton beam gas interactions | 22.5 | 6000
84+
85+
## Location of files
86+
87+
**Simulation Output**
88+
89+
```
90+
root://dtn-eic.jlab.org//volatile/eic/EPIC/FULL/25.06.1/epic_craterlake/Bkg_RealisticSignalPer2usFrame/Synrad_18GeV_Vac_10000Ahr_Runtime_10ms_Egas_All_18GeV_Hgas_275GeV/SIDIS/pythia6-eic/1.0.0/18x275/q2_0to1
91+
```
92+
93+
**Reconstructed Output**
94+
95+
```
96+
root://dtn-eic.jlab.org//volatile/eic/EPIC/RECO/25.06.1/epic_craterlake/Bkg_RealisticSignalPer2usFrame/Synrad_18GeV_Vac_10000Ahr_Runtime_10ms_Egas_All_18GeV_Hgas_275GeV/SIDIS/pythia6-eic/1.0.0/18x275/q2_0to1
97+
```
98+
99+
N.B.: Increment the campaign tag (25.06.1) to get the latest campaigns. Reconstructed output is available for every campaign but simulation output is not always preserved to save storage resources.
100+
101+
---
102+
103+
104+
---
105+
# Case 3: Only Background Contributions Per Event of a Run
106+
107+
A run is a collection of events and each event represents a 2000 nano second long integration frame. There are no signal contributions in any of the events.
108+
109+
## Representation of a "Run" with 5 "Events"
110+
111+
| **Event** | **signal** | **synrad** | **ebrems** | **etouschek** | **ecoloumb** | **p.b.gas**|
112+
| ----------- | ----------- | -----------| --------- | ------------ | ----------- | ----------- |
113+
| **Event 1** | | ⚪⚪⚪⚪ | 🔵 | | | |
114+
| **Event 2** | | ⚪⚪⚪⚪ | | | 🟡 | 🟣 |
115+
| **Event 3** | | ⚪⚪⚪ | | 🟢 | | |
116+
| **Event 4** | | ⚪⚪⚪ | 🔵 | | | 🟣 |
117+
| **Event 5** | | ⚪⚪⚪ ⚪ | 🔵 | | | |
118+
119+
## Legend
120+
121+
| Symbol | Process | Description | Sampling Frequency (kHz) | Status Code Shift |
122+
|--------|---------|-------------| ------------------| --------------------- |
123+
| ⚪ | **synrad** | Synchrotron Radiation | 14000 | 2000
124+
| 🔵 | **ebrems** | Electron bremsstrahlung radiation | 316.94 | 3000
125+
| 🟢 | **etouschek** | Electron Touschek scattering (intrabeam scattering) | 1.3 | 4000
126+
| 🟡 | **ecoulomb** | Electron Coulomb scattering processes | 0.72 | 5000
127+
| 🟣 | **p.b.gas** | Proton beam gas interactions | 22.5 | 6000
128+
129+
130+
## Location of files
131+
132+
**Simulation Output**
133+
134+
```
135+
root://dtn-eic.jlab.org//volatile/eic/EPIC/FULL/25.06.1/epic_craterlake/Bkg_OnlyPer2usFrame/Synrad_18GeV_Vac_10000Ahr_Runtime_10ms_Egas_All_18GeV_Hgas_275GeV/BACKGROUNDS/BEAMGAS/proton/pythia8.306-1.0/275GeV
136+
```
137+
138+
**Reconstructed Output**
139+
140+
```
141+
root://dtn-eic.jlab.org//volatile/eic/EPIC/RECO/25.06.1/epic_craterlake/Bkg_OnlyPer2usFrame/Synrad_18GeV_Vac_10000Ahr_Runtime_10ms_Egas_All_18GeV_Hgas_275GeV/BACKGROUNDS/BEAMGAS/proton/pythia8.306-1.0/275GeV
142+
143+
```
144+
145+
N.B.: Increment the campaign tag (25.06.1) to get the latest campaigns. Reconstructed output is available for every campaign but simulation output is not always preserved to save storage resources.
146+
147+
---
148+
149+
150+
# Analyzing the output
151+
152+
It's possible to separate the contribution from signal and background sources that are simulated by using cuts on the [status codes](https://arxiv.org/pdf/1912.08005.pdf) which are represented by the MCParticles.generatorStatus in the edm4hep output file.
153+
154+
| Status code | Meaning | Usage |
155+
|-------------|-----------------------------|----------------------------------|
156+
| 0 | Not defined (null entry) | Not a meaningful status |
157+
| 1 | Undecayed physical particle | Recommended for all cases |
158+
| 2 | Decayed physical particle | Recommended for all cases |
159+
| 3 | Documentation line | Often used to indicate in/out particles in hard process |
160+
| 4 | Incoming beam particle | Recommended for all cases |
161+
| 5–10 | Reserved for future standards | Should not be used |
162+
| 11–200 | Generator-dependent | For generator usage |
163+
| 201– | Simulation-dependent | For simulation software usage |
164+
165+
N.B.: By default, DD4hep takes primary particles (status code 1, 2)
166+
and also custom status code provided with
167+
168+
```
169+
--physics.alternativeStableStatuses="1001 2001 …" --physics.alternativeDecayStatuses="xxxx yyy "
170+
```
171+
172+
**Example: Minimal ROOT script to view counts of processes by status codes**
173+
174+
```
175+
TChain *T=new TChain("events");
176+
T->Add("root://dtn-eic.jlab.org//volatile/eic/EPIC/RECO/25.06.1/epic_craterlake/Bkg_1SignalPer2usFrame/Synrad_18GeV_Vac_10000Ahr_Runtime_10ms_Egas_All_18GeV_Hgas_275GeV/DIS/NC/18x275/minQ2=1/*010*");
177+
T->Draw("MCParticles.generatorStatus", "MCParticles.generatorStatus>0");
178+
gPad->SetLogy();
179+
```
180+
<img width="488" height="402" alt="image" src="https://github.com/user-attachments/assets/040ccb77-e18c-4311-9a71-9a9a8ee2646a" />
181+
182+
183+
184+
**Example: Charged Primary Particle Distribution in Eta**
185+
186+
<img width="488" height="402" alt="image" src="https://github.com/user-attachments/assets/cd439c91-38b4-4df8-adfe-aa1f2ae66a61" />
187+
188+
189+
190+
191+

0 commit comments

Comments
 (0)