¡Buenos días!
Resulta que llevo unas semanas intentando aclararme con este programa. Para quien no lo conozca, CORSIKA es un simulador de cascadas atmosféricas.
El problema viene cuando quiero leer el output. Éste se encuentra en un archivo binario, que debe ser convertido a un lenguaje "legible". Lo que yo necesito es saber todas las partículas que llegan al suelo, con sus posiciones (x,y) y sus momentos (px,py,pz).
Había probado a utilizar el programa que se encuentra en Corsika-77100/src/utils/coast/CorsikaRead, pero ahí sólo puedo convertirlo en un ACII que tenga las posiciones (y no los momentos!) o convertirlo en un archivo para ROOT.
He visto que el programa corsikaread.f que se encuentra en corsika-77100/src/utils me da todo lo que quiero, el problema es que no sé interpretar la primera columna (el id de la partícula), ya que no son números enteros (los id de las partículas suelen ser 1, 2, 3, 4...).
Aquí dejo un ejemplo del output. Para este caso, he usado el programa corsikaread_thin.f, y el output se ha guardado en un archivo fort.8:
1.11111E+07 1.01000E+02 2.00115E+05 7.71000E+00 1.00000E+00 1.10000E+04 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 -2.70000E+00
1.00000E+06 1.00000E+06 1.00000E+00 1.00000E+00 1.00000E+01 1.00000E+01 1.00000E+01 1.00000E+01
6.37132E+08 6.00000E+05 2.00000E+06 0.00000E+00 0.00000E+00 4.58060E-02 5.73090E-01 5.28304E-02
2.50000E+00 2.07000E+00 8.20000E+00 1.00000E-01 0.00000E+00 0.00000E+00 1.00002E+00 9.67266E-03
1.00000E+00 5.75171E-04 0.00000E+00 0.00000E+00 3.77000E+01 1.53287E-04 9.38642E+00 2.00000E-03
2.99792E+10 1.00000E+00 5.40302E-01 1.57000E+00 7.96327E-04 2.10000E-02 0.00000E+00 0.00000E+00
0.00000E+00 2.00000E+01 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 2.61910E-01 8.99834E-01 0.00000E+00 1.03899E+00
2.71383E-01 1.37036E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
(esto es sólo una pequeña parte del output).
Mi duda es, ¿cómo interpreto la primera columna? ¿Cómo sé a qué partícula se refiere el 6.37132E+08, por ejemplo?
¿Hay un modo mejor de conseguir la información que quiero?
Resulta que llevo unas semanas intentando aclararme con este programa. Para quien no lo conozca, CORSIKA es un simulador de cascadas atmosféricas.
El problema viene cuando quiero leer el output. Éste se encuentra en un archivo binario, que debe ser convertido a un lenguaje "legible". Lo que yo necesito es saber todas las partículas que llegan al suelo, con sus posiciones (x,y) y sus momentos (px,py,pz).
Había probado a utilizar el programa que se encuentra en Corsika-77100/src/utils/coast/CorsikaRead, pero ahí sólo puedo convertirlo en un ACII que tenga las posiciones (y no los momentos!) o convertirlo en un archivo para ROOT.
He visto que el programa corsikaread.f que se encuentra en corsika-77100/src/utils me da todo lo que quiero, el problema es que no sé interpretar la primera columna (el id de la partícula), ya que no son números enteros (los id de las partículas suelen ser 1, 2, 3, 4...).
Aquí dejo un ejemplo del output. Para este caso, he usado el programa corsikaread_thin.f, y el output se ha guardado en un archivo fort.8:
1.11111E+07 1.01000E+02 2.00115E+05 7.71000E+00 1.00000E+00 1.10000E+04 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 -2.70000E+00
1.00000E+06 1.00000E+06 1.00000E+00 1.00000E+00 1.00000E+01 1.00000E+01 1.00000E+01 1.00000E+01
6.37132E+08 6.00000E+05 2.00000E+06 0.00000E+00 0.00000E+00 4.58060E-02 5.73090E-01 5.28304E-02
2.50000E+00 2.07000E+00 8.20000E+00 1.00000E-01 0.00000E+00 0.00000E+00 1.00002E+00 9.67266E-03
1.00000E+00 5.75171E-04 0.00000E+00 0.00000E+00 3.77000E+01 1.53287E-04 9.38642E+00 2.00000E-03
2.99792E+10 1.00000E+00 5.40302E-01 1.57000E+00 7.96327E-04 2.10000E-02 0.00000E+00 0.00000E+00
0.00000E+00 2.00000E+01 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 2.61910E-01 8.99834E-01 0.00000E+00 1.03899E+00
2.71383E-01 1.37036E+02 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
(esto es sólo una pequeña parte del output).
Mi duda es, ¿cómo interpreto la primera columna? ¿Cómo sé a qué partícula se refiere el 6.37132E+08, por ejemplo?
¿Hay un modo mejor de conseguir la información que quiero?
Comentario