File size: 1,721 Bytes
e75a247
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Export a couple of events for each dataset into txt files for demo
from pathlib import Path
import os
from src.dataset.dataset import EventDatasetCollection, EventDataset

from src.utils.paths import get_path

n_events_per_dataset = 50

inputs = {
    "QCD": "QCD_test_part0/qcd_test"
}

for rinv in [0.3, 0.5, 0.7]:
    for mmed in [700, 800, 900, 1000, 1100, 1200]:
        inputs[f"r_inv.={rinv}, m_med.={mmed} GeV"] = f"Delphes_020425_test_PU_PFfix_part0/SVJ_mZprime-{mmed}_mDark-20_rinv-{rinv}_alpha-peak"

print(inputs)

Path("demo_datasets").mkdir(exist_ok=True)
for key in inputs:
    Path(os.path.join("demo_datasets", key)).mkdir(exist_ok=True)
    dataset = EventDataset.from_directory(get_path(inputs[key], "preprocessed_data"), mmap=True)
    for n in range(n_events_per_dataset):
        event = dataset[n]
        pfcands_out = ""
        for i in range(len(event.pfcands)):
            pfcands_out += f"{event.pfcands.pt[i].item()} {event.pfcands.eta[i].item()} {event.pfcands.phi[i].item()} {event.pfcands.mass[i].item()} {event.pfcands.charge[i].item()}\n"
        gen_particles_out = ""
        for i in range(len(event.matrix_element_gen_particles)):
            gen_particles_out += f"{event.matrix_element_gen_particles.pt[i].item()} {event.matrix_element_gen_particles.eta[i].item()} {event.matrix_element_gen_particles.phi[i].item()}\n"
        # write the pfcands_out and gen_particles_out to os.path.join("demo_datasets", key, "n".txt) and n_quarks.txt
        with open(os.path.join("demo_datasets", key, str(n)+".txt"), "w") as f:
            f.write(pfcands_out)
        with open(os.path.join("demo_datasets", key, str(n)+"_quarks.txt"), "w") as f:
            f.write(gen_particles_out)