G4-DESCSS/utils/process.py

48 lines
2.4 KiB
Python

import os
import pandas as pd
organs = ['logicalHead', 'logicalSkull', 'logicalBrain', 'logicalTrunk', 'logicalLeftLeg', 'logicalRightLeg', 'logicalLeftArmBone', 'logicalRightArmBone', 'logicalLeftLegBone', 'logicalRightLegBone', 'logicalUpperSpine', 'logicalLeftScapula', 'logicalRightScapula', 'logicalLeftAdrenal', 'logicalRightAdrenal', 'logicalThymus', 'logicalLeftClavicle', 'logicalRightClavicle', 'logicalSmallIntestine', 'logicalRibCage', 'logicalMiddleLowerSpine', 'logicalPelvis', 'logicalStomach', 'logicalUpperLargeIntestine', 'logicalLowerLargeIntestine', 'logicalSpleen', 'logicalPancreas', 'logicalLiver', 'logicalLeftKidney', 'logicalRightKidney', 'logicalUrinaryBladder', 'logicalLeftLung', 'logicalRightLung', 'logicalThyroid', 'logicalLeftOvary', 'logicalRightOvary', 'logicalUterus', 'logicalLeftBreast', 'logicalRightBreast', 'logicalMaleGenitalia', 'logicalLeftTeste', 'logicalRightTeste']
particles = ['TE', 'TP', 'GCR_H', 'GCR_He', 'GCR_Li', 'GCR_Be', 'GCR_B', 'GCR_C', 'GCR_N', 'GCR_O', 'GCR_F', 'GCR_Ne', 'GCR_Na', 'GCR_Mg', 'GCR_Al', 'GCR_Si', 'GCR_P', 'GCR_S', 'GCR_Cl', 'GCR_Ar', 'GCR_K', 'GCR_Ca', 'GCR_Sc', 'GCR_Ti', 'GCR_V', 'GCR_Cr', 'GCR_Mn', 'GCR_Fe', 'GCR_Co', 'GCR_Ni']
edepRes = {}
edep2Res = {}
rmsRes = {}
files = os.listdir('result')
for file in files:
f = open('result/' + file, 'r', encoding='utf-8')
data = f.readlines()
data = [[s.split(': ')[1].strip().replace('\n', '').replace(' MeV', '') for s in row.split(' | ')] for row in data]
edep = {}
edep2 = {}
rms = {}
for row in data:
organ = row[0]
edep[organ] = float(row[1])
edep2[organ] = float(row[2])
rms[organ] = float(row[3])
particle = file.replace('edep_', '').replace('.txt', '')
edepRes[particle] = pd.Series(edep, index=organs)
edep2Res[particle] = pd.Series(edep2, index=organs)
rmsRes[particle] = pd.Series(rms, index=organs)
edepRes = pd.DataFrame(edepRes)
edep2Res = pd.DataFrame(edep2Res)
rmsRes = pd.DataFrame(rmsRes)
edepRes['Organ Sum'] = edepRes.apply(lambda x: x.sum(), axis=1)
edepRes.loc['Particle Sum'] = edepRes.apply(lambda x: x.sum())
edep2Res['Organ Sum'] = edep2Res.apply(lambda x: x.sum(), axis=1)
edep2Res.loc['Particle Sum'] = edep2Res.apply(lambda x: x.sum())
rmsRes['Organ Sum'] = rmsRes.apply(lambda x: x.sum(), axis=1)
rmsRes.loc['Particle Sum'] = rmsRes.apply(lambda x: x.sum())
edepRes.to_csv('result/eDep.csv')
edepRes.to_csv('result/eDep2.csv')
edepRes.to_csv('result/rsm.csv')