IAP GITLAB

Skip to content
Snippets Groups Projects

Resolve "make friendly example scripts for the release"

Closed Alan Coleman requested to merge 626-make-friendly-example-scripts-for-the-release into master
Compare and
1 file
+ 48
0
Compare changes
  • Side-by-side
  • Inline
+ 48
0
#!/usr/bin/python
import pandas as pd
import matplotlib.pyplot as plt
import argparse
import numpy as np
import corsika
parser = argparse.ArgumentParser()
parser.add_argument("--input-dir", help="input corsika output library")
args = parser.parse_args()
def plot_avg_profile(dat, part):
nshower = len(dat.shower.unique())
h = np.histogram( dat.X, bins=np.linspace(0,2000,200),weights= dat[part]*1/float(nshower))
plt.plot(h[1][:-1],h[0],label=part)
lib = corsika.Library(args.input_dir)
#pr = pd.read_parquet(args.input_dir + '/profile/profile.parquet')
pr = lib.get("profile").astype("pandas")
#prdx = pd.read_parquet(args.input_dir + '/energyloss/dEdX.parquet')
prdx = lib.get("energyloss").astype("pandas")
def draw_profiles():
plt.figure()
for part in ['charged','hadron', 'photon', 'electron', 'positron',
'muplus', 'muminus']:
#pr.query('shower==0').plot('X',part)
plot_avg_profile(pr, part)
plt.xlabel('grammage X (g/cm2)')
plt.ylabel('dN/dX')
plt.legend()
plt.savefig('profiles.pdf')
def draw_energyloss():
plt.figure()
plt.semilogy()
plot_avg_profile(prdx,'total')
plt.xlabel('grammage X (g/cm2)')
plt.ylabel('dE/dX (GeV/(g/cm2))')
plt.savefig('energyloss.pdf')
draw_profiles()
draw_energyloss()
#plt.show()
Loading