return dataframe in run_batch function

This commit is contained in:
lars
2023-09-28 11:06:41 +02:00
parent acec5f9190
commit 417053a583
2 changed files with 39 additions and 29 deletions
+4 -2
View File
@@ -23,7 +23,7 @@ RUN apt-get install -y dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev lib
#RUN python3 --version && python3 -m ensurepip
RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install pandas numpy matplotlib MarkupSafe wandb uproot setuptools
RUN python3 -m pip install pandas numpy matplotlib MarkupSafe wandb uproot setuptools awkward-pandas
RUN python3 -m pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# # # # GEANT
@@ -82,5 +82,7 @@ RUN ln -s /usr/bin/python3 /usr/bin/python
#finally the package
ARG INCUBATOR_VER
ADD minicalosim /root/minicalosim
RUN cd && cd minicalosim && mkdir build && cd build && cmake ../ && make -j4 &&\
RUN cd && cd minicalosim && mkdir -p build && cd build && cmake ../ && make -j4 &&\
cp minicalo* ../bind/G4Calo.py /usr/local/lib/python3.8/dist-packages/
+35 -27
View File
@@ -1,50 +1,58 @@
from minicalo import ConstructionWrapper
from minicalo import G4System as _G4System
import os
import subprocess
import uproot
from IPython.display import Image, display
class G4System(_G4System):
def run_visualize(self,particleSpec : str, minEnergy_GeV: float, maxEnergy_GeV:float = -1.):
def run_visualize(
self, particleSpec: str, minEnergy_GeV: float, maxEnergy_GeV: float = -1.0
):
if maxEnergy_GeV < 0:
maxEnergy_GeV = minEnergy_GeV
#anpassen: run 1 event and get stuff from construction wrapper
# anpassen: run 1 event and get stuff from construction wrapper
_G4System.run_visualize(self, particleSpec, minEnergy_GeV, maxEnergy_GeV)
self.displayEvent()
def run_batch(self, nEvents: int, particleSpec : str, minEnergy_GeV: float,
maxEnergy_GeV:float = -1., outputFile:str = "dataframe.df"):
def run_batch(
self,
nEvents: int,
particleSpec: str,
minEnergy_GeV: float,
maxEnergy_GeV: float = -1.0,
):
if maxEnergy_GeV < 0:
maxEnergy_GeV = minEnergy_GeV
_G4System.run_batch(self, nEvents, particleSpec, minEnergy_GeV, maxEnergy_GeV)
# here conversion from root to pandas dataframe
# conversion from root to pandas dataframe
ttree = uproot.open("_1234567890_Hits.root")
df = ttree["Hits;1"].arrays(library="pd")
return df
def displayEvent(self):
f_to_conv = max(filter(lambda x: x.endswith(".prim"), os.listdir()),
key=os.path.getctime)
f_to_conv = max(
filter(lambda x: x.endswith(".prim"), os.listdir()), key=os.path.getctime
)
# Convert the .prim file to an eps graphic.
subprocess.run(["dawn",
"-d",
f_to_conv],
stderr=subprocess.DEVNULL)
subprocess.run(["dawn", "-d", f_to_conv], stderr=subprocess.DEVNULL)
# Convert the eps graphic to png graphic.
subprocess.run(["gs",
"-DEPSCrop", "-dSAFER", "-sDEVICE=png256",
"-r600",
"-o",
"event_raw.png",
f_to_conv.replace(".prim", ".eps")],
stdout=subprocess.DEVNULL)
subprocess.run(["convert",
"event_raw.png",
"-trim",
"event.png"
])
subprocess.run(
[
"gs",
"-DEPSCrop",
"-dSAFER",
"-sDEVICE=png256",
"-r600",
"-o",
"event_raw.png",
f_to_conv.replace(".prim", ".eps"),
],
stdout=subprocess.DEVNULL,
)
subprocess.run(["convert", "event_raw.png", "-trim", "event.png"])
display(Image("event.png", width=500))