diff --git a/.github/workflows/validation.yml b/.github/workflows/validation.yml index c91087e2..1c9da188 100644 --- a/.github/workflows/validation.yml +++ b/.github/workflows/validation.yml @@ -20,7 +20,7 @@ jobs: name: Validate library runs-on: ubuntu-latest container: - image: ghcr.io/lobis/root-geant4-garfield:rest-for-physics + image: ghcr.io/rest-for-physics/root:latest steps: - uses: rest-for-physics/framework/.github/actions/checkout@master with: @@ -33,7 +33,7 @@ jobs: name: Validate pre-commit config runs-on: ubuntu-latest container: - image: ghcr.io/lobis/root-geant4-garfield:rest-for-physics + image: ghcr.io/rest-for-physics/root:latest steps: - name: Checkout axionlib uses: rest-for-physics/framework/.github/actions/checkout@master @@ -50,7 +50,7 @@ jobs: name: Build only axionlib runs-on: ubuntu-latest container: - image: ghcr.io/lobis/root-geant4-garfield:rest-for-physics + image: ghcr.io/rest-for-physics/root:latest steps: - name: Build and install uses: rest-for-physics/framework/.github/actions/build@master @@ -61,14 +61,14 @@ jobs: id: axionlib-install-cache uses: actions/cache@v3 with: - key: ${{ env.BRANCH_NAME }}-${{ github.sha }} + key: ${{ env.BRANCH_NAME }}-axion-${{ github.sha }} path: ${{ env.REST_PATH }} macros-health: name: "Macros with clean error output" runs-on: ubuntu-latest container: - image: ghcr.io/lobis/root-geant4-garfield:rest-for-physics + image: ghcr.io/rest-for-physics/root:latest needs: [ build-axionlib ] steps: - uses: rest-for-physics/framework/.github/actions/checkout@master @@ -80,7 +80,7 @@ jobs: uses: actions/cache@v3 id: axionlib-install-cache with: - key: ${{ env.BRANCH_NAME }}-${{ github.sha }} + key: ${{ env.BRANCH_NAME }}-axion-${{ github.sha }} path: ${{ env.REST_PATH }} - name: Load restRootMacros in axiolib standalone run: | @@ -94,175 +94,175 @@ jobs: name: Check physics runs-on: ubuntu-latest container: - image: ghcr.io/lobis/root-geant4-garfield:rest-for-physics + image: ghcr.io/rest-for-physics/root:latest needs: [ build-axionlib ] steps: - - uses: rest-for-physics/framework/.github/actions/checkout@master - with: - branch: ${{ env.BRANCH_NAME }} - repository: rest-for-physics/axionlib - path: ${{ env.AXION_LIB_PATH }} - - name: Restore cache - uses: actions/cache@v3 - id: axionlib-install-cache - with: - key: ${{ env.BRANCH_NAME }}-${{ github.sha }} - path: ${{ env.REST_PATH }} - - name: Basic physics tests - run: | - source ${{ env.REST_PATH }}/thisREST.sh - cd ${{ env.AXION_LIB_PATH }}/pipeline/physics/ - wget https://rest-for-physics.github.io/axionlib-data/bufferGas/He.abs - wget https://rest-for-physics.github.io/axionlib-data/bufferGas/He.nff - wget https://rest-for-physics.github.io/axionlib-data/bufferGas/Ne.abs - wget https://rest-for-physics.github.io/axionlib-data/bufferGas/Ne.nff - wget https://rest-for-physics.github.io/axionlib-data/bufferGas/bufferGases.rml - wget https://rest-for-physics.github.io/axionlib-data/magneticField/fields.rml - wget https://rest-for-physics.github.io/axionlib-data/magneticField/Bykovskiy_201906.dat - restRoot -b -q AxionPhysicsValidation.C + - uses: rest-for-physics/framework/.github/actions/checkout@master + with: + branch: ${{ env.BRANCH_NAME }} + repository: rest-for-physics/axionlib + path: ${{ env.AXION_LIB_PATH }} + - name: Restore cache + uses: actions/cache@v3 + id: axionlib-install-cache + with: + key: ${{ env.BRANCH_NAME }}-axion-${{ github.sha }} + path: ${{ env.REST_PATH }} + - name: Basic physics tests + run: | + source ${{ env.REST_PATH }}/thisREST.sh + cd ${{ env.AXION_LIB_PATH }}/pipeline/physics/ + wget https://sultan.unizar.es/axionlib-data/bufferGas/He.abs + wget https://sultan.unizar.es/axionlib-data/bufferGas/He.nff + wget https://sultan.unizar.es/axionlib-data/bufferGas/Ne.abs + wget https://sultan.unizar.es/axionlib-data/bufferGas/Ne.nff + wget https://sultan.unizar.es/axionlib-data/bufferGas/bufferGases.rml + wget https://sultan.unizar.es/axionlib-data/magneticField/fields.rml + wget https://sultan.unizar.es/axionlib-data/magneticField/Bykovskiy_201906.dat + restRoot -b -q AxionPhysicsValidation.C Metadata: name: Check metadata runs-on: ubuntu-latest container: - image: ghcr.io/lobis/root-geant4-garfield:rest-for-physics + image: ghcr.io/rest-for-physics/root:latest needs: [ build-axionlib ] steps: - - uses: rest-for-physics/framework/.github/actions/checkout@master - with: - branch: ${{ env.BRANCH_NAME }} - repository: rest-for-physics/axionlib - path: ${{ env.AXION_LIB_PATH }} - - name: Restore cache - uses: actions/cache@v3 - id: axionlib-install-cache - with: - key: ${{ env.BRANCH_NAME }}-${{ github.sha }} - path: ${{ env.REST_PATH }} - - name: Magnetic field - run: | - source ${{ env.REST_PATH }}/thisREST.sh - cd ${{ env.AXION_LIB_PATH }}/pipeline/metadata/magneticField/ - wget https://rest-for-physics.github.io/axionlib-data/magneticField/fields.rml - wget https://rest-for-physics.github.io/axionlib-data/magneticField/Bykovskiy_201906.dat - python magneticField.py - cd trilinear - wget https://rest-for-physics.github.io/axionlib-data/magneticField/fields.rml - restRoot -b -q GetMagneticField_test.C - cd ../boundary/ - restRoot -b -q Boundaries_test.C - - name: Optics Mirrors - run: | - source ${{ env.REST_PATH }}/thisREST.sh - cd ${{ env.AXION_LIB_PATH }}/pipeline/metadata/optics/ - wget https://rest-for-physics.github.io/axionlib-data/optics/optics.rml - wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/mirrors.rml - wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Reflectivity_Single_C_30_SiO2_0.N901f - wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Transmission_Single_C_30_SiO2_0.N901f - wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Reflectivity_Single_Au_250_Ni_0.4.N901f - wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Transmission_Single_Au_250_Ni_0.4.N901f - python mirrors.py - - name: MCPL Optics - run: | - source ${{ env.REST_PATH }}/thisREST.sh - cd ${{ env.AXION_LIB_PATH }}/pipeline/metadata/optics/ - wget https://rest-for-physics.github.io/axionlib-data/optics/optics.rml - python mcpl.py - - name: X-ray transmission - run: | - source ${{ env.REST_PATH }}/thisREST.sh - cd ${{ env.AXION_LIB_PATH }}/pipeline/metadata/transmission/ - wget https://rest-for-physics.github.io/axionlib-data/transmission/windows.rml - wget https://rest-for-physics.github.io/axionlib-data/transmission/Al.sol - wget https://rest-for-physics.github.io/axionlib-data/transmission/Si.sol - wget https://rest-for-physics.github.io/axionlib-data/transmission/Si3N4.sol - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${{ env.REST_PATH }}/mpfr-4.0.2/install/lib - python windowPlot.py - - name: Solar flux - run: | - source ${{ env.REST_PATH }}/thisREST.sh - cd ${{ env.AXION_LIB_PATH }}/pipeline/metadata/solarFlux/ - wget https://rest-for-physics.github.io/axionlib-data/solarFlux/fluxes.rml - wget https://rest-for-physics.github.io/axionlib-data/solarFlux/Dummy_Galan_202202.spt - wget https://rest-for-physics.github.io/axionlib-data/solarFlux/Primakoff_Gianotti_201904.dat - wget https://rest-for-physics.github.io/axionlib-data/solarFlux/Primakoff_LennertHoof_202203.dat - python solarTests.py - python solarPlot.py - python compare.py + - uses: rest-for-physics/framework/.github/actions/checkout@master + with: + branch: ${{ env.BRANCH_NAME }} + repository: rest-for-physics/axionlib + path: ${{ env.AXION_LIB_PATH }} + - name: Restore cache + uses: actions/cache@v3 + id: axionlib-install-cache + with: + key: ${{ env.BRANCH_NAME }}-axion-${{ github.sha }} + path: ${{ env.REST_PATH }} + - name: Magnetic field + run: | + source ${{ env.REST_PATH }}/thisREST.sh + cd ${{ env.AXION_LIB_PATH }}/pipeline/metadata/magneticField/ + wget https://rest-for-physics.github.io/axionlib-data/magneticField/fields.rml + wget https://rest-for-physics.github.io/axionlib-data/magneticField/Bykovskiy_201906.dat + python magneticField.py + cd trilinear + wget https://rest-for-physics.github.io/axionlib-data/magneticField/fields.rml + restRoot -b -q GetMagneticField_test.C + cd ../boundary/ + restRoot -b -q Boundaries_test.C + - name: Optics Mirrors + run: | + source ${{ env.REST_PATH }}/thisREST.sh + cd ${{ env.AXION_LIB_PATH }}/pipeline/metadata/optics/ + wget https://rest-for-physics.github.io/axionlib-data/optics/optics.rml + wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/mirrors.rml + wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Reflectivity_Single_C_30_SiO2_0.N901f + wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Transmission_Single_C_30_SiO2_0.N901f + wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Reflectivity_Single_Au_250_Ni_0.4.N901f + wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Transmission_Single_Au_250_Ni_0.4.N901f + python mirrors.py + - name: MCPL Optics + run: | + source ${{ env.REST_PATH }}/thisREST.sh + cd ${{ env.AXION_LIB_PATH }}/pipeline/metadata/optics/ + wget https://rest-for-physics.github.io/axionlib-data/optics/optics.rml + python mcpl.py + - name: X-ray transmission + run: | + source ${{ env.REST_PATH }}/thisREST.sh + cd ${{ env.AXION_LIB_PATH }}/pipeline/metadata/transmission/ + wget https://rest-for-physics.github.io/axionlib-data/transmission/windows.rml + wget https://rest-for-physics.github.io/axionlib-data/transmission/Al.sol + wget https://rest-for-physics.github.io/axionlib-data/transmission/Si.sol + wget https://rest-for-physics.github.io/axionlib-data/transmission/Si3N4.sol + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${{ env.REST_PATH }}/mpfr-4.0.2/install/lib + python windowPlot.py + - name: Solar flux + run: | + source ${{ env.REST_PATH }}/thisREST.sh + cd ${{ env.AXION_LIB_PATH }}/pipeline/metadata/solarFlux/ + wget https://rest-for-physics.github.io/axionlib-data/solarFlux/fluxes.rml + wget https://rest-for-physics.github.io/axionlib-data/solarFlux/Dummy_Galan_202202.spt + wget https://rest-for-physics.github.io/axionlib-data/solarFlux/Primakoff_Gianotti_201904.dat + wget https://rest-for-physics.github.io/axionlib-data/solarFlux/Primakoff_LennertHoof_202203.dat + python solarTests.py + python solarPlot.py + python compare.py Ray-tracing: name: Check ray-tracing processing chain runs-on: ubuntu-latest container: - image: ghcr.io/lobis/root-geant4-garfield:rest-for-physics + image: ghcr.io/rest-for-physics/root:latest needs: [ build-axionlib ] steps: - - uses: rest-for-physics/framework/.github/actions/checkout@master - with: - branch: ${{ env.BRANCH_NAME }} - repository: rest-for-physics/axionlib - path: ${{ env.AXION_LIB_PATH }} - - name: Restore cache - uses: actions/cache@v3 - id: axionlib-install-cache - with: - key: ${{ env.BRANCH_NAME }}-${{ github.sha }} - path: ${{ env.REST_PATH }} - - name: XMM optics bench ray-tracing - run: | - source ${{ env.REST_PATH }}/thisREST.sh - export REST_NEVENTS=1000 - export REST_RUN=100 - cd ${{ env.AXION_LIB_PATH }}/pipeline/ray-tracing/optics/ - wget https://rest-for-physics.github.io/axionlib-data/optics/xmm.rml - wget https://rest-for-physics.github.io/axionlib-data/optics/XMM.Wolter - wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Reflectivity_Single_Au_250_Ni_0.4.N901f - wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Transmission_Single_Au_250_Ni_0.4.N901f - restManager --c opticsBench.rml - restRoot -b -q ValidateXMM.C'("OpticsBench_Yaw_0.05_Dev_0.005_BabyIAXO_Run00100.root")' - - name: Window transmission - run: | - source ${{ env.REST_PATH }}/thisREST.sh - cd ${{ env.AXION_LIB_PATH }}/pipeline/ray-tracing/transmission/ - wget https://rest-for-physics.github.io/axionlib-data/transmission/Si.sol - restManager --c emptyWindow.rml - restRoot ValidateTransmission.C'("EmptyVacuumWindow.root", 0.07, 0.09)' - restManager --c shiftedWindow.rml - restRoot ValidateTransmission.C'("ShiftedVacuumWindow", 0.3, 0.5)' - restManager --c siWindow.rml - restRoot -b -q ValidateTransmission.C'("SiWindow.root", 0.9, 1)' - - name: Axion-field integration - run: | - source ${{ env.REST_PATH }}/thisREST.sh - cd ${{ env.AXION_LIB_PATH }}/pipeline/ray-tracing/axion-field/ - wget https://rest-for-physics.github.io/axionlib-data/magneticField/fields.rml - wget https://rest-for-physics.github.io/axionlib-data/magneticField/Bykovskiy_201906.dat - wget https://rest-for-physics.github.io/axionlib-data/bufferGas/He.abs - wget https://rest-for-physics.github.io/axionlib-data/bufferGas/He.nff - wget https://rest-for-physics.github.io/axionlib-data/bufferGas/bufferGases.rml - restManager --c photonConversion.rml - restRoot -b -q Validate.C - python3 validateStreamer.py - - name: Full ray-tracing - run: | - source ${{ env.REST_PATH }}/thisREST.sh - cd ${{ env.AXION_LIB_PATH }}/pipeline/ray-tracing/full-chain/ - wget https://rest-for-physics.github.io/axionlib-data/solarFlux/fluxes.rml - wget https://rest-for-physics.github.io/axionlib-data/solarFlux/Primakoff_LennertHoof_202203.dat - wget https://rest-for-physics.github.io/axionlib-data/transmission/windows.rml - wget https://rest-for-physics.github.io/axionlib-data/transmission/Al.sol - wget https://rest-for-physics.github.io/axionlib-data/transmission/Cu.sol - wget https://rest-for-physics.github.io/axionlib-data/transmission/C10H8O4.sol - wget https://rest-for-physics.github.io/axionlib-data/optics/xmmTrueWolter.rml - wget https://rest-for-physics.github.io/axionlib-data/optics/XMM.trueWolter - wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Reflectivity_Single_Au_250_Ni_0.4.N901f - wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Transmission_Single_Au_250_Ni_0.4.N901f - wget https://rest-for-physics.github.io/axionlib-data/magneticField/fields.rml - wget https://rest-for-physics.github.io/axionlib-data/magneticField/Bykovskiy_201906.dat - wget https://rest-for-physics.github.io/axionlib-data/bufferGas/He.abs - wget https://rest-for-physics.github.io/axionlib-data/bufferGas/He.nff - export REST_LOW_AXION_MASS=1e-2 - export REST_HIGH_AXION_MASS=1e-1 - export REST_GAS_STEP=2 - restManager --c BabyIAXO_Micromegas_XMM.rml --o output.root - restRoot -q ValidateChain.C'("output.root")' + - uses: rest-for-physics/framework/.github/actions/checkout@master + with: + branch: ${{ env.BRANCH_NAME }} + repository: rest-for-physics/axionlib + path: ${{ env.AXION_LIB_PATH }} + - name: Restore cache + uses: actions/cache@v3 + id: axionlib-install-cache + with: + key: ${{ env.BRANCH_NAME }}-axion-${{ github.sha }} + path: ${{ env.REST_PATH }} + - name: XMM optics bench ray-tracing + run: | + source ${{ env.REST_PATH }}/thisREST.sh + export REST_NEVENTS=1000 + export REST_RUN=100 + cd ${{ env.AXION_LIB_PATH }}/pipeline/ray-tracing/optics/ + wget https://rest-for-physics.github.io/axionlib-data/optics/xmm.rml + wget https://rest-for-physics.github.io/axionlib-data/optics/XMM.Wolter + wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Reflectivity_Single_Au_250_Ni_0.4.N901f + wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Transmission_Single_Au_250_Ni_0.4.N901f + restManager --c opticsBench.rml + restRoot -b -q ValidateXMM.C'("OpticsBench_Yaw_0.05_Dev_0.005_BabyIAXO_Run00100.root")' + - name: Window transmission + run: | + source ${{ env.REST_PATH }}/thisREST.sh + cd ${{ env.AXION_LIB_PATH }}/pipeline/ray-tracing/transmission/ + wget https://rest-for-physics.github.io/axionlib-data/transmission/Si.sol + restManager --c emptyWindow.rml + restRoot ValidateTransmission.C'("EmptyVacuumWindow.root", 0.07, 0.09)' + restManager --c shiftedWindow.rml + restRoot ValidateTransmission.C'("ShiftedVacuumWindow", 0.3, 0.5)' + restManager --c siWindow.rml + restRoot -b -q ValidateTransmission.C'("SiWindow.root", 0.9, 1)' + - name: Axion-field integration + run: | + source ${{ env.REST_PATH }}/thisREST.sh + cd ${{ env.AXION_LIB_PATH }}/pipeline/ray-tracing/axion-field/ + wget https://rest-for-physics.github.io/axionlib-data/magneticField/fields.rml + wget https://rest-for-physics.github.io/axionlib-data/magneticField/Bykovskiy_201906.dat + wget https://rest-for-physics.github.io/axionlib-data/bufferGas/He.abs + wget https://rest-for-physics.github.io/axionlib-data/bufferGas/He.nff + wget https://rest-for-physics.github.io/axionlib-data/bufferGas/bufferGases.rml + restManager --c photonConversion.rml + restRoot -b -q Validate.C + python3 validateStreamer.py + - name: Full ray-tracing + run: | + source ${{ env.REST_PATH }}/thisREST.sh + cd ${{ env.AXION_LIB_PATH }}/pipeline/ray-tracing/full-chain/ + wget https://rest-for-physics.github.io/axionlib-data/solarFlux/fluxes.rml + wget https://rest-for-physics.github.io/axionlib-data/solarFlux/Primakoff_LennertHoof_202203.dat + wget https://rest-for-physics.github.io/axionlib-data/transmission/windows.rml + wget https://rest-for-physics.github.io/axionlib-data/transmission/Al.sol + wget https://rest-for-physics.github.io/axionlib-data/transmission/Cu.sol + wget https://rest-for-physics.github.io/axionlib-data/transmission/C10H8O4.sol + wget https://rest-for-physics.github.io/axionlib-data/optics/xmmTrueWolter.rml + wget https://rest-for-physics.github.io/axionlib-data/optics/XMM.trueWolter + wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Reflectivity_Single_Au_250_Ni_0.4.N901f + wget https://rest-for-physics.github.io/axionlib-data/opticsMirror/Transmission_Single_Au_250_Ni_0.4.N901f + wget https://rest-for-physics.github.io/axionlib-data/magneticField/fields.rml + wget https://rest-for-physics.github.io/axionlib-data/magneticField/Bykovskiy_201906.dat + wget https://rest-for-physics.github.io/axionlib-data/bufferGas/He.abs + wget https://rest-for-physics.github.io/axionlib-data/bufferGas/He.nff + export REST_LOW_AXION_MASS=1e-2 + export REST_HIGH_AXION_MASS=1e-1 + export REST_GAS_STEP=2 + restManager --c BabyIAXO_Micromegas_XMM.rml --o output.root + restRoot -q ValidateChain.C'("output.root")'