Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • sarmientoc/pasantiaslaconga_2022
  • martinezr/pasantiaslaconga_2022
  • dominguezy/pasantiaslaconga_2022
  • clariziov/pasantiaslaconga_2022
4 results
Show changes
Commits on Source (27)
Showing
with 163660 additions and 0 deletions
https://drive.google.com/drive/folders/1QpBq0mNqjnOo23oV8NzPuI3RjepaAiA5?usp=sharing
File added
File added
File added
File added
File added
File added
File added
File added
This diff is collapsed.
File added
File added
File added
File added
#Este programa grafica la ubicacion previa de los neutrones en el suelo
#antes de ser detectados por un detector fisico simulado en URANOS
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
#Dectector hits.
#Los datos corresponden a 10% de humedad en el suelo con porosidad del 50%
#Leemos los datos y los almacenamos en un dataframe
dlayer= pd.read_table('/work/SALIDASdetectorNeutronHitData.dat')
datareal=dlayer[(dlayer['maximum_Depth_[m]']>0)]#Filtramos para graficar la profundidad que alcanzan las particulas en el suelo humedo
data1=datareal.assign(hola=(datareal['maximum_Depth_[m]']*(-1)))# Es necesario invertir el signo (ya que las distancias por debajo del suelo tienen numero postivo, y es mas intuitivo trabajarlas como distancias negativas)
#Graficamos vista aerea de el suelo
# es decir, el plano x-y con z = 0
datareal.plot(x='x_at_interface_[m]', y='y_at_Interface_[m]', kind="scatter", s = 4, fontsize=15, alpha=0.3)
plt.xlabel('x(m)', size=18)
plt.ylabel('y(m)', size=18)
plt.scatter(0,0, c='red')
plt.xlim(-300,300)
plt.ylim(-300,300)
plt.grid()
plt.show()
###########
#Graficamos vista transversal del suelo
# Es decir el plano x-z con y=0
#########
data1.plot(y='hola', x='x_at_interface_[m]', kind="scatter", s = 3, fontsize=15, alpha=0.3)
plt.xlim(-300,300)
plt.ylim(-1,0)
plt.scatter(0,0, c='red')
plt.xlabel('x(m)', size=18)
plt.ylabel('z(m)', size=18)
plt.grid()
plt.show()
# Este programa Grafica el espectro de energias de los neutrones
# generados durante una simulacion hecha en URANOS.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#Guardamos en un dataframe los datos
dlayer= pd.read_table('detectorLayer300000.dat')
#los filtramos para identificar de donde provienen
# las particulas
df1 = dlayer[dlayer['Soil_contact'] == 1] #neutrones que tuvieron contacto con el suelo
df5 = df1[df1['previous_Depth_[m]'] > 0.0] # neutrones que rebotaron con suelo y volvieron a la superficie (Backscattering)
dfback = df5[df5['z_[m]'] == -2.0] # otro filtro para asegurarnos que son neutrones Backscattering
dfin = dlayer.drop_duplicates(['Neutron_Number'], keep = 'first') # Neutrones generados en la atmosfera(fuente de neutrones o Incoming)
dfinal=pd.DataFrame()
dfinal['E'] = pd.concat([dfin['Energy_at_Interface_[MeV]'], dfback['Energy_[MeV]']], axis = 0) #TOTAL dfin + dfback, es decir el espetro completo.
#Creamos un dataframe para cada espectro (Backscattered, incoming y total) en escala logaritmica
dlayer = dfinal.assign(energy=np.log(dfinal['E'])) #azul (TOTAL)
dback = dfback.assign(energy=np.log(dfback['Energy_[MeV]'])) # Green (Back Scattered)
din = dfin.assign(energy=np.log(dfin['Energy_at_Interface_[MeV]'])) # naranja (INCOMING)
#Contamos el total de particulas ('La Integral' de la curva del espectro de energias)
print(len(dfin.index))
print(len(dfback.index))
a = 780
#Graficamos los histogramas del espectro de energias
dlayer['energy'].hist(bins=int(a*1.17),histtype='step',label='Total',linewidth=1) #azul
din['energy'].hist(bins=a,histtype='step', label = 'Incoming Spectrum',linewidth=1) #Naranja
dback['energy'].hist(bins=a, histtype='step', label = 'Backscattered Spectrum',linewidth=1) #verde
############################
#cambiamos las estiquetas del eje x (energias)
x = [-np.log(100000000),-np.log(1000000),-np.log(10000),-np.log(100),np.log(1),np.log(100)]
val = ['1e-8','1e-6','1e-4','0.01','1','100']# los nuevos valores en MeV
#############################
plt.title('URANOS Neutron Spectra', loc='center')
plt.xlabel('Energy(MeV)', size=13)
plt.ylabel('Counts', size = 13)
plt.tick_params(labelsize=14)
plt.xticks(x,val)
plt.legend(loc='upper left')
plt.show()
#Este programa genera una grafica de el viaje, que hizo el neutron 0, desde que viene de la
# fuente hasta que es abosorbido.
import matplotlib.pyplot as plt
import pandas as pd
#####################################
#Leemos los datos para extraer los puntos de interaccion y previo a la interacion con el suelo y la capa de deteccion.
dlayer= pd.read_table('/work/detectorLayer300000.dat')
dftrack = dlayer[dlayer['Neutron_Number'] == 0]
##########################################
#Dimensiones de la capa de decteción.
x = [0,200]
y = [2,2]
y2 = [2.5,2.5]
# Suelo. (Interfaz suelo-aire)
y1 = [0,0]
#"Tracking del primer neutron" Los puntos extraidos leyendo el dataframe 'dftrack'
x1 = [178.324,186.75,157.713,30.1466,55.3114,61.3679,127.643,190.402,197.086,196.943,187.272,187.315]
z1 = [32.9121,2.5,53.5416,2.5,-0.0295019,2.0,24.2086,2.5,-0.0517591,2.0,-0.022933,2.0]
#graficamos el escenario (Capa de decteccion y suelo)
plt.plot(x,y,'g',label='Detector layer')
plt.plot(x,y2,'g')
plt.plot(x,y1,'brown', label='Ground')
##########################################
#graficamos las posiciones del neutron
plt.plot(x1,z1,'black',label='Neutron Journey')
plt.scatter(x1,z1,color='red',s=16)
##########################################
#######################################3##
#
plt.xlim(0,200)
plt.ylim(-2,55)
plt.xlabel('x_[m]', size=16)
plt.ylabel('Depth_[m]', size = 16)
plt.tick_params(labelsize=16)
plt.text(169,35,'91Mev',fontsize=17)
plt.grid()
plt.legend( fontsize='x-large')
plt.show()
plt.scatter(0,0, c='red')
plt.xlabel('x(m)', size=18)
plt.ylabel('z(m)', size=18)
plt.grid()
plt.show()