Skip to content
Snippets Groups Projects
Commit 1a664b6f authored by Johannes Schumann's avatar Johannes Schumann
Browse files

Remove aanet and use km3net dataformat

parent 24cf773f
No related branches found
No related tags found
1 merge request!4KM3NeT Dataformat data writeout
Pipeline #16296 failed
...@@ -15,7 +15,7 @@ __status__ = "Development" ...@@ -15,7 +15,7 @@ __status__ = "Development"
import re import re
import numpy as np import numpy as np
from io import StringIO from io import StringIO
from os import listdir from os import listdir, environ
from os.path import isfile, join, abspath from os.path import isfile, join, abspath
from tempfile import TemporaryDirectory from tempfile import TemporaryDirectory
import awkward1 import awkward1
...@@ -28,6 +28,12 @@ import mendeleev ...@@ -28,6 +28,12 @@ import mendeleev
from .jobcard import Jobcard, read_jobcard, PDGID_LOOKUP from .jobcard import Jobcard, read_jobcard, PDGID_LOOKUP
from .config import read_default_media_compositions from .config import read_default_media_compositions
try:
import ROOT
ROOT.gSystem.Load(join(environ("KM3NET_LIB", "libKM3NeTROOT.so")))
except:
pass
EVENT_FILENAME = "FinalEvents.dat" EVENT_FILENAME = "FinalEvents.dat"
ROOT_PERT_FILENAME = "EventOutput.Pert.[0-9]{8}.root" ROOT_PERT_FILENAME = "EventOutput.Pert.[0-9]{8}.root"
ROOT_REAL_FILENAME = "EventOutput.Real.[0-9]{8}.root" ROOT_REAL_FILENAME = "EventOutput.Real.[0-9]{8}.root"
...@@ -299,7 +305,7 @@ def write_detector_file(gibuu_output, ...@@ -299,7 +305,7 @@ def write_detector_file(gibuu_output,
livetime=3.156e7, livetime=3.156e7,
propagate_tau=True): # pragma: no cover propagate_tau=True): # pragma: no cover
""" """
Convert the GiBUU output to a KM3NeT MC (AANET) file Convert the GiBUU output to a KM3NeT MC (OfflineFormat) file
Parameters Parameters
---------- ----------
...@@ -313,15 +319,16 @@ def write_detector_file(gibuu_output, ...@@ -313,15 +319,16 @@ def write_detector_file(gibuu_output,
livetime: float livetime: float
The data livetime The data livetime
""" """
import aa, ROOT
aafile = ROOT.EventFile() evt = ROOT.Evt()
aafile.set_output(ofile) outfile = ROOT.TFile.Open(ofile, "RECREATE")
tree = ROOT.TTree("E", "KM3NeT Evt Tree")
tree.Branch("Evt", evt, 32000, 4)
mc_trk_id = 0 mc_trk_id = 0
def add_particles(particle_data, pos_offset, rotation, start_mc_trk_id, def add_particles(particle_data, pos_offset, rotation, start_mc_trk_id,
timestamp): timestamp):
nonlocal aafile nonlocal evt
for i in range(len(particle_data.E)): for i in range(len(particle_data.E)):
trk = ROOT.Trk() trk = ROOT.Trk()
trk.id = start_mc_trk_id + i trk.id = start_mc_trk_id + i
...@@ -343,7 +350,7 @@ def write_detector_file(gibuu_output, ...@@ -343,7 +350,7 @@ def write_detector_file(gibuu_output,
trk.mother_id = 0 trk.mother_id = 0
trk.type = int(particle_data.barcode[i]) trk.type = int(particle_data.barcode[i])
trk.E = particle_data.E[i] trk.E = particle_data.E[i]
aafile.evt.mc_trks.push_back(trk) evt.mc_trks.push_back(trk)
is_cc = False is_cc = False
...@@ -382,13 +389,13 @@ def write_detector_file(gibuu_output, ...@@ -382,13 +389,13 @@ def write_detector_file(gibuu_output,
w2 = gibuu_output.w2weights(can_volume, targets_per_volume, 4 * np.pi) w2 = gibuu_output.w2weights(can_volume, targets_per_volume, 4 * np.pi)
for mc_event_id, event in enumerate(event_data): for mc_event_id, event in enumerate(event_data):
aafile.evt.clear() evt.clear()
aafile.evt.id = mc_event_id evt.id = mc_event_id
aafile.evt.mc_run_id = mc_event_id evt.mc_run_id = mc_event_id
# Weights # Weights
aafile.evt.w.push_back(can_volume) #w1 (can volume) evt.w.push_back(can_volume) #w1 (can volume)
aafile.evt.w.push_back(w2[mc_event_id]) #w2 evt.w.push_back(w2[mc_event_id]) #w2
aafile.evt.w.push_back(-1.0) #w3 (= w2*flux) evt.w.push_back(-1.0) #w3 (= w2*flux)
# Vertex Position # Vertex Position
r = can[2] * np.sqrt(np.random.uniform(0, 1)) r = can[2] * np.sqrt(np.random.uniform(0, 1))
phi = np.random.uniform(0, 2 * np.pi) phi = np.random.uniform(0, 2 * np.pi)
...@@ -433,7 +440,7 @@ def write_detector_file(gibuu_output, ...@@ -433,7 +440,7 @@ def write_detector_file(gibuu_output,
lep_out_trk.dir.set(*p_dir) lep_out_trk.dir.set(*p_dir)
lep_out_trk.E = event.lepOut_E lep_out_trk.E = event.lepOut_E
lep_out_trk.t = timestamp lep_out_trk.t = timestamp
aafile.evt.mc_trks.push_back(lep_out_trk) evt.mc_trks.push_back(lep_out_trk)
# bjorken_y = 1.0 - float(event.lepOut_E / event.lepIn_E) # bjorken_y = 1.0 - float(event.lepOut_E / event.lepIn_E)
nu_in_trk.setusr('bx', bjorkenx[mc_event_id]) nu_in_trk.setusr('bx', bjorkenx[mc_event_id])
...@@ -441,7 +448,7 @@ def write_detector_file(gibuu_output, ...@@ -441,7 +448,7 @@ def write_detector_file(gibuu_output,
nu_in_trk.setusr('ichan', ichan) nu_in_trk.setusr('ichan', ichan)
nu_in_trk.setusr("cc", is_cc) nu_in_trk.setusr("cc", is_cc)
aafile.evt.mc_trks.push_back(nu_in_trk) evt.mc_trks.push_back(nu_in_trk)
if tau_secondaries is not None: if tau_secondaries is not None:
event_tau_sec = tau_secondaries[mc_event_id] event_tau_sec = tau_secondaries[mc_event_id]
...@@ -450,6 +457,7 @@ def write_detector_file(gibuu_output, ...@@ -450,6 +457,7 @@ def write_detector_file(gibuu_output,
add_particles(event, vtx_pos, R, mc_trk_id, timestamp) add_particles(event, vtx_pos, R, mc_trk_id, timestamp)
aafile.write() tree.Fill()
outfile.Write()
del aafile outfile.Close()
del outfile
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment