Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Axion field integration #31

Merged
merged 62 commits into from
Nov 17, 2022
Merged
Show file tree
Hide file tree
Changes from 56 commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
1d4f768
TRestAxionPhotonConversion. Including TRestComplex and using implicit…
jgalan Sep 2, 2022
daded18
TRestAxionPhotonConversion includes now TRestComplex
jgalan Sep 2, 2022
d9f11a8
TRestAxionPhotonConversion.h. Removing obsolete code related to compl…
jgalan Sep 2, 2022
5990026
Renaming TRestAxionPhotonConversion to TRestAxionField
jgalan Sep 2, 2022
73d7e5b
TRestAxionLikelihood. Updating to TRestAxionField renaming
jgalan Sep 2, 2022
97715bb
TRestAxionBufferGas. Fixing units to the recent REST units standards
jgalan Sep 23, 2022
31e970e
Merge branch 'master' into jgalan_axion_field
jgalan Sep 26, 2022
879c8c8
TRestAxionBufferGas::PrintMetadata now prints out equivalent photon mass
jgalan Sep 26, 2022
fd46ec9
pipeline/physics/AxionPhysicsValidation.C added
jgalan Sep 26, 2022
bc50df2
Adding axion physics validation to pipeline
jgalan Sep 26, 2022
de282f3
GitHub validation. Adding gases data files
jgalan Sep 26, 2022
e1add6a
AxionPhysicsValidation now uses bufferGases.rml from axionlib-data
jgalan Sep 26, 2022
be9028c
TRestAxionField::GammaTransmissionProbability with Bprofile (WIP)
jgalan Oct 5, 2022
d90dcd6
Adding macro loading validation
jgalan Oct 19, 2022
f7409bd
TRestAxionField added to fix compilation issues (WIP)
jgalan Oct 19, 2022
bfc86ae
Merge branch 'master' into jgalan_axion_field
jgalan Oct 19, 2022
2f52282
TRestAxionOpticsMirror. Minor documentation fix
jgalan Oct 20, 2022
53363e2
TRestAxionField. Removing obsolete comments
jgalan Oct 20, 2022
d58bf6c
TRestAxionField::GammaTransmissionProbability implementation of unhom…
jgalan Oct 20, 2022
300f792
AxionPhysicsValidation.C adding validation for unhomogeneous field
jgalan Oct 20, 2022
1db238a
Adding MPFR to axionlib compilation
jgalan Oct 20, 2022
025c9d6
TRestAxionSolarFlux. Fixing name extension .dat
jgalan Nov 4, 2022
c50133e
TRestAxionEvent. Removing some unnecessary data members
jgalan Nov 4, 2022
1b3c9f2
TRestAxionFieldPropagationProcess. First implementation of non-homoge…
jgalan Nov 4, 2022
eac4f60
TRestAxionFieldPropagationProcess. Protecting against the case when a…
jgalan Nov 7, 2022
8597432
.gitlab-ci.yml including REST_MPFR in compilation
jgalan Nov 7, 2022
560b5ec
TRestAxionFieldPropagationProcess. Increasing class version
jgalan Nov 7, 2022
cea15ea
TRestAxionFieldPropagationProcess. Adding field average to analysisTree
jgalan Nov 7, 2022
999050f
TRestAxionFieldPropagationProcess. Adding numeric header
jgalan Nov 7, 2022
692a18f
TRestAxionEvent. Increased class version
jgalan Nov 7, 2022
4e03bb1
TRestAxionAnalysisProcess. Adding theta and phi direction angles
jgalan Nov 7, 2022
4c7ec76
TRestAxionFieldPropagationProcess. Observable absorption renamed to t…
jgalan Nov 9, 2022
2384525
TRestAxionFieldPropagationProcess documented
jgalan Nov 9, 2022
e5fcb6a
Adding axion-field pipeline directory
jgalan Nov 9, 2022
e0711b5
Adding image for TRestAxionFieldPropagationProcess documentation
jgalan Nov 9, 2022
971d4f2
TRestAxionFieldPropagationProcess. Adding documentation image
jgalan Nov 9, 2022
e17f4ee
TRestAxionFieldPropagationProcess. Minor corrections
jgalan Nov 9, 2022
e072446
TRestAxionFieldPropagationProcess. Minor fixes
jgalan Nov 9, 2022
38653cc
plots.rml Fixing titles
jgalan Nov 9, 2022
316c6f2
Integrating the validation pipeline
jgalan Nov 9, 2022
9b6fd50
Optics bench ray-tracing validation. Fixing input validation filename
jgalan Nov 9, 2022
1ea0d50
Optics XMM validation. Fixing directory
jgalan Nov 9, 2022
ca1c570
Fixing optics XMM validation
jgalan Nov 9, 2022
9f53809
ValidateXMM.C analysisTree output
jgalan Nov 9, 2022
a7286d4
ValidateXMM.C printing a specific entry
jgalan Nov 9, 2022
67dcfe4
Pipeline validation axion field ray-tracing. Downloading necessary files
jgalan Nov 9, 2022
2580eae
Merge branch 'jgalan_axion_field' of github.com:rest-for-physics/axio…
jgalan Nov 9, 2022
b460cf8
Adding buffer gas download at validation pipeline
jgalan Nov 10, 2022
5f54dde
Fixing seed for validation
jgalan Nov 10, 2022
35d1189
TRestAxionField. Protecting mpfr types and TRestComplex in case MPFR …
jgalan Nov 14, 2022
95763da
Updating data submodule
jgalan Nov 14, 2022
1185e26
TRestAxionField. Renaming REST_MPFR to USE_MPFR
jgalan Nov 14, 2022
6afc066
Merge branch 'master' into jgalan_axion_field
jgalan Nov 14, 2022
1b108dd
TRestAxionField. Solving compilation issue
jgalan Nov 14, 2022
219fd8c
Cleaning examples
jgalan Nov 15, 2022
e2e2ed9
TRestAxionAnalysisProcess. Added R distance observable and documented
jgalan Nov 15, 2022
21a155b
TRestAxionEventProcess. Adding units in PrintMetadata
jgalan Nov 15, 2022
d557827
TRestAxionTransportProcess. Improving output message
jgalan Nov 16, 2022
d0e8f79
Fixing rotations using GetRegion and added SkipRotation inside TRestA…
jgalan Nov 16, 2022
8ba190a
Adding full-ray-tracing example
jgalan Nov 16, 2022
00adbd4
Updating examples/full-ray-tracing/summary.rml
jgalan Nov 17, 2022
cf6d496
Updating data submodule
jgalan Nov 17, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 64 additions & 3 deletions .github/workflows/validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
- name: Build and install
uses: rest-for-physics/framework/.github/actions/build@master
with:
cmake-flags: "-DCMAKE_INSTALL_PREFIX=${{ env.REST_PATH }} -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -DREST_WELCOME=ON -DRESTLIB_AXION=ON"
cmake-flags: "-DCMAKE_INSTALL_PREFIX=${{ env.REST_PATH }} -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -DREST_WELCOME=ON -DRESTLIB_AXION=ON -DREST_MPFR=ON"
branch: ${{ env.BRANCH_NAME }}
- name: Cache framework installation
id: axionlib-install-cache
Expand All @@ -50,6 +50,55 @@ jobs:
key: ${{ env.BRANCH_NAME }}-${{ 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
needs: [ build-axionlib ]
steps:
- uses: actions/checkout@v3
- name: Restore cache
uses: actions/cache@v3
id: axionlib-install-cache
with:
key: ${{ env.BRANCH_NAME }}-${{ github.sha }}
path: ${{ env.REST_PATH }}
- name: Load restRootMacros in axiolib standalone
run: |
source ${{ env.REST_PATH }}/thisREST.sh
cd pipeline
export DISPLAY=localhost:0.0
echo "Running validation script"
python3 validateMacros.py

Physics:
name: Check physics
runs-on: ubuntu-latest
container:
image: ghcr.io/lobis/root-geant4-garfield:rest-for-physics
needs: [ build-axionlib ]
steps:
- uses: actions/checkout@v3
- 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 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
Expand Down Expand Up @@ -134,12 +183,13 @@ jobs:
source ${{ env.REST_PATH }}/thisREST.sh
export REST_NEVENTS=1000
export REST_RUN=100
cd 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 ValidateXMM.C'("OpticsBench_Yaw_0.02_Dev_0.005_BabyIAXO_Run00100.root")'
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
Expand All @@ -150,4 +200,15 @@ jobs:
restManager --c shiftedWindow.rml
restRoot ValidateTransmission.C'("ShiftedVacuumWindow", 0.3, 0.5)'
restManager --c siWindow.rml
restRoot ValidateTransmission.C'("SiWindow.root", 0.9, 1)'
restRoot -b -q ValidateTransmission.C'("SiWindow.root", 0.9, 1)'
- name: Axion-field integration
run: |
source ${{ env.REST_PATH }}/thisREST.sh
cd 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://sultan.unizar.es/axionlib-data/bufferGas/He.abs
wget https://sultan.unizar.es/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
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ build:
- cd ../../../
- mkdir build
- cd build
- cmake ../ -DREST_SOLAXFLUX=OFF -DREST_WELCOME=ON -DRESTLIB_AXION=ON -DREST_GARFIELD=OFF -DREST_G4=OFF -DCMAKE_INSTALL_PREFIX=${CI_PROJECT_DIR}/install -DMPFR_PATH=${CI_PROJECT_DIR}/mpfr-4.0.2/install
- cmake ../ -DREST_SOLAXFLUX=OFF -DREST_WELCOME=ON -DRESTLIB_AXION=ON -DREST_GARFIELD=OFF -DREST_G4=OFF -DCMAKE_INSTALL_PREFIX=${CI_PROJECT_DIR}/install -DMPFR_PATH=${CI_PROJECT_DIR}/mpfr-4.0.2/install -DREST_MPFR=ON
- make install -j2
# - . ${CI_PROJECT_DIR}/framework/source/libraries/axion/external/solarAxionFlux/bin/thisSolarAxionFluxLib.sh
- . ${CI_PROJECT_DIR}/install/thisREST.sh
Expand Down
2 changes: 1 addition & 1 deletion data
Submodule data updated 2 files
+58 −58 optics/XMM.Wolter
+58 −58 optics/XMM.trueWolter
28 changes: 0 additions & 28 deletions examples/likelihood_BabyIAXO.rml

This file was deleted.

12 changes: 0 additions & 12 deletions examples/likelihood_BabyIAXO_2.rml

This file was deleted.

48 changes: 0 additions & 48 deletions examples/metadata.rml

This file was deleted.

File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<TRestAxionMagneticField name="bFieldBabyIAXO" title="bFieldBabyIAXO" verboseLevel="warning" >
<addMagneticVolume fileName="mag1.dat" position="(0,750,0)mm" />
<addMagneticVolume fileName="mag1.dat" position="(0,-750,0)mm" />
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<TRestAxionMagneticField name="bFieldBabyIAXO" title="bFieldBabyIAXO" verboseLevel="warning">
<addMagneticVolume fileName="mag1.dat" position="(0,750,0)mm"/>
<addMagneticVolume fileName="mag1.dat" position="(0,-750,0)mm"/>
</TRestAxionMagneticField>
24 changes: 24 additions & 0 deletions examples/old/likelihood_BabyIAXO.rml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0"?>
<axion>
<TRestAxionSolarModel name="sunPrimakoff" verboseLevel="debug">
<parameter name="mode" value="table"/>
<parameter name="solarAxionModel" value="Primakoff_Gianotti_201904.dat"/>
<!-- <parameter name="solarAxionModel" value="arXiv_0702006_Primakoff"/> -->
</TRestAxionSolarModel>
<TRestAxionLikelihood name="babyIAXO" verboseLevel="debug">
<parameter name="Bmag" value="1.73T"/>
<parameter name="Rmag" value="35cm"/>
<parameter name="Lmag" value="10m"/>
<parameter name="efficiency" value="0.35*0.7"/>
<parameter name="bckLevel" value="1.e-7"/>
<parameter name="expTimeVacuum" value="1.5*365*12"/>
<!--<parameter name="expTimePerStep" value="1.5*365.*12./50."/>-->
<parameter name="expTimePerStep" value="-1"/>
<parameter name="pressureSteps" value="150"/>
<!-- Spot in cm2 -->
<parameter name="spotArea" value="0.3"/>
<!-- Helium density in g/cm3 -->
<parameter name="lastStepDensity" value="0.1789e-3"/>
<parameter name="energyRange" value="(1,8)"/>
</TRestAxionLikelihood>
</axion>
11 changes: 11 additions & 0 deletions examples/old/likelihood_BabyIAXO_2.rml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<TRestAxionLikelihood name="babyIAXO" title="It's me" verboseLevel="debug">
<parameter name="Bmag" value="1000G"/>
<parameter name="Rmag" value="30cm"/>
<parameter name="Lmag" value="4m"/>
<parameter name="efficiency" value="0.5"/>
<parameter name="bckLevel" value="1.e-7"/>
<parameter name="expTimeVacuum" value="2*365*18"/>
<parameter name="expTimePerStep" value="3*18"/>
<parameter name="pressureSteps" value="100"/>
</TRestAxionLikelihood>
39 changes: 39 additions & 0 deletions examples/old/metadata.rml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<axion>
<TRestAxionMagneticField name="bFieldBabyIAXO" title="bFieldBabyIAXO">
<addMagneticVolume fileName="Bykovskiy_201906.dat" position="(0,0,0)mm"/>
<!--<addMagneticVolume fileName="Bykovskiy_201906.dat" position="(0,750,0)mm" />
<addMagneticVolume fileName="Bykovskiy_201906.dat" position="(0,-750,0)mm" />-->
</TRestAxionMagneticField>
<TRestAxionSolarModel name="sunPrimakoff" verboseLevel="debug">
<!--<parameter name="mode" value="table"/>-->
<!--<parameter name="solarAxionModel" value="Primakoff_Gianotti_201904.dat"/>-->
<parameter name="solarAxionModel" value="arXiv_0702006_Primakoff"/>
</TRestAxionSolarModel>
<TRestAxionBufferGas name="helium" verboseLevel="warning">
<gas name="He" density="0.0025e-6"/>
</TRestAxionBufferGas>
<TRestAxionLikelihood name="babyIAXO">
<parameter name="Bmag" value="1.73T"/>
<parameter name="Rmag" value="35cm"/>
<parameter name="Lmag" value="10m"/>
<parameter name="efficiency" value="0.35*0.7"/>
<parameter name="bckLevel" value="1.e-7"/>
<parameter name="expTimeVacuum" value="1.5*365*12"/>
<!--<parameter name="expTimePerStep" value="1.5*365.*12./50."/>-->
<parameter name="expTimePerStep" value="-1"/>
<parameter name="pressureSteps" value="150"/>
<!-- Spot in cm2 -->
<parameter name="spotArea" value="0.3"/>
<!-- Helium density in g/cm3 -->
<parameter name="lastStepDensity" value="0.1789e-3"/>
<parameter name="energyRange" value="(1,8)"/>
</TRestAxionLikelihood>
<TRestAxionFieldPropagationProcess name="babyProp" value="ON" verboseLevel="info">
<parameter name="mode" value="plan"/>
<!-- plan or distance -->
<parameter name="distance" value="30000mm"/>
<parameter name="finalNPlan" value="(0,0,1)mm"/>
<parameter name="finalPositionPlan" value="(0,0,10000)mm"/>
</TRestAxionFieldPropagationProcess>
</axion>
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -23,32 +23,25 @@
<parameter name="couplingType" value="g_ag"/>
<parameter name="couplingStrength" value="1.e-10"/>
<parameter name="fluxDataFile" value="Primakoff_LennertHoof_202203.dat"/>
<parameter name="energyRange" value="(0.05, 10)keV" />
<parameter name="energyRange" value="(0.05, 10)keV"/>
<parameter name="seed" value="137"/>
</TRestAxionSolarFlux>

<TRestAxionXrayWindow name="siliconFoil" verboseLevel="info" thickness="0.3um" material="Si3N4" >
<TRestPatternMask name="mask" verboseLevel="warning" maskRadius="7mm" />
</TRestAxionXrayWindow>

<TRestAxionXrayWindow name="siliconFoil" verboseLevel="info" thickness="0.3um" material="Si3N4">
<TRestPatternMask name="mask" verboseLevel="warning" maskRadius="7mm"/>
</TRestAxionXrayWindow>
<TRestAxionXrayWindow name="strongBack" verboseLevel="warning">
<parameter name="windowType" value="stripped" />
<parameter name="thickness" value="200um" />
<parameter name="material" value="Si" />

<TRestStrippedMask name="mask" verboseLevel="warning" maskRadius="7mm" offset="(1.15,0)mm"
rotationAngle="0.5" stripsGap="2.3mm" stripsThickness="0.5mm" />
<parameter name="windowType" value="stripped"/>
<parameter name="thickness" value="200um"/>
<parameter name="material" value="Si"/>
<TRestStrippedMask name="mask" verboseLevel="warning" maskRadius="7mm" offset="(1.15,0)mm" rotationAngle="0.5" stripsGap="2.3mm" stripsThickness="0.5mm"/>
</TRestAxionXrayWindow>
<TRestAxionXrayWindow name="cathode" verboseLevel="info" thickness="0.02um" material="Al">
<TRestPatternMask name="mask" verboseLevel="warning" maskRadius="7mm"/>
</TRestAxionXrayWindow>

<TRestAxionXrayWindow name="cathode" verboseLevel="info" thickness="0.02um" material="Al" >
<TRestPatternMask name="mask" verboseLevel="warning" maskRadius="7mm" />
</TRestAxionXrayWindow>

<TRestAxionXrayWindow name="magnetBore" material="Vacuum">
<TRestPatternMask name="mask" maskRadius="16cm" verboseLevel="info"/>
</TRestAxionXrayWindow>

<!-- Optics definition -->
<!-- Optics definition -->
<TRestAxionTrueWolterOptics file="xmmTrueWolter.rml"/>
</TRestRun>
<TRestProcessRunner name="EventProcess" verboseLevel="info">
Expand All @@ -58,7 +51,7 @@
<parameter name="inputEvent" value="off"/>
<parameter name="outputEvent" value="on"/>
<addProcess type="TRestAxionGeneratorProcess" name="axionGen" value="ON" verboseLevel="info">
<parameter name="generatorType" value="solarFlux" />
<parameter name="generatorType" value="solarFlux"/>
<parameter name="energyRange" value="(0.03,10)keV"/>
<parameter name="axionMass" value="5meV"/>
<parameter name="targetRadius" value="40cm"/>
Expand All @@ -74,7 +67,6 @@
<observable name="posX"/>
<observable name="posY"/>
</addProcess>

<!-- Optics response -->
<addProcess type="TRestAxionOpticsProcess" name="optics" veboseLevel="info">
<parameter name="center" value="(0,0,0)"/>
Expand All @@ -92,20 +84,18 @@
<observable name="posX"/>
<observable name="posY"/>
</addProcess>

<!-- Moving to Z=7500 -->
<addProcess type="TRestAxionTransportProcess" name="ToFocalPoint" zPosition="7500"/>
<addProcess type="TRestAxionAnalysisProcess" name="focal">
<observable name="posX"/>
<observable name="posY"/>

</addProcess>
<addProcess type="TRestAxionTransmissionProcess" name="window" veboseLevel="info" value="ON">
<parameter name="center" value="(0,0,7500)mm" />
<observable name="transmission"/>
<window name="siliconFoil" />
<window name="cathode" />
<window name="strongBack" />
<addProcess type="TRestAxionTransmissionProcess" name="window" veboseLevel="info" value="ON">
<parameter name="center" value="(0,0,7500)mm"/>
<observable name="transmission"/>
<window name="siliconFoil"/>
<window name="cathode"/>
<window name="strongBack"/>
</addProcess>
</TRestProcessRunner>
<addTask command="EventProcess-&gt;RunProcess()" value="ON"/>
Expand Down
File renamed without changes.
16 changes: 0 additions & 16 deletions examples/test.C

This file was deleted.

Binary file added images/axionFieldPlots.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading