The goal of this study is to find a method to accurately predict the values of functions called Compton Form Factors (CFFs) using data from Deep-Virtual Compton Scattering (DVCS) experiments. The DVCS process is
Each experiment, or data set, consists of measurements of the total cross-section ().
The experiment configuration and the organization of the data results in a limited number of angle bins, so angles of close proximity end up being in the same angle bin with the same total cross-section value for '$F$'. The ‘F’ column of the data file and the standard deviation are recorded in the ‘errF’ column. Here the 'errF' represents the experimental uncertainty which we assume a Gaussian distribution for. Table shows a sample data structure.
| #Set | index | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
Different experiments experimental goals and configurations lead to different values of the kinematic variables
The total cross-section
To perform a local fit using a DNN you must construct a network that takes in the kinematic variable
The values of F1, F2, and dvcs are known, so the only unknowns left are the Compton Form Factors. Our goal in this experiment is to determine the values of the CFFs using the other values. We are focusing on three Compton Form Factors:
There are two kinds of fits that are used to determine the Compton Form Factors: local fits and global fits. A local fit’s end goal is to find the numerical value of one of the CFFs in a certain kinematic setting. A global fit’s end goal is to find the equation that relates the values of the kinematic variables to the value of one of the Compton Form Factors. A local fit is a guess of the value of a CFF in a certain kinematic setting, while a global fit is a guess of the equation for a CFF that can be used to calculate the value of the CFF in any kinematic setting. One important aspect of this exploration is correctly propagating the error from the cross- section to the Compton Form Factors. We are not given exact values for F, so we cannot possibly get exact values for the CFFs. Every output from our models is given as a guess and an error range. Our goal is to have the guesses be as close as possible to the true values of the CFFs, but it is also important that the error ranges consistently enclose the true values. The most popular way of propagating error is to use the replica method. In this method, the F value from the data file is not inputted directly into the model. Instead, we use several values that are sampled from a Gaussian distribution with mean equal to F and standard deviation equal to errF. By using input values that represent the distribution of the cross-section, we hope to be able to get outputs that represent the distributions of the Compton Form Factors (meaning that the true value of the CFF should lie in the error bars produced by the model).
Right now, we are using pseudo-data where we know the true values of the CFFs instead of real experimental data where we don’t. This way, we can compare the CFF guesses to their true values and have a good idea of a model’s performance. Once we develop a method that can consistently and accurately predict the CFFs, we will move on to experimental data.
You can find a folder called "Sample_Codes_to_Get_Started" in the main repository. Instructions to test those codes are given in the ReadMe file in that directory.
To run the code and reproduce the environment, you need to have Anaconda installed.
Follow the steps below to install Anaconda:
- Download Anaconda
wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh- Run the Installation Script
bash Anaconda3-2023.09-0-Linux-x86_64.sh-
Follow the On-Screen Prompts: Accept the license, and choose the installation location (or accept the default).
-
Close and Reopen Your Terminal: This ensures that Anaconda is initialized and added to your
PATH. -
Verify Installation: To confirm that Anaconda was installed successfully, run
conda --versionOnce Anaconda is installed, you can set up the environment using the provided env.yml file.
- Clone the Repository: If you haven't already, clone this repository to your local machine: git clone https://github.com/uva-spin/DNN-CFFs.git
cd DNN-CFFs- Create the Conda Environment (OUTDATED):
Use the
env.ymlfile to create a new Conda environment:
conda env create -f env.yml- AEGIS USERS ONLY: Create the Conda Environment:
Use the
env_aegis.ymlfile to create an environment for aegis. Keep in mind that numpy, pandas, etc are not included, so just download an appropriate version. ALSO, PLEASE CHANGE THE NAME OF THE ENVIRONMENT AS TO NOT CREATE DUPLICATE ENVIRONMENTS ON AEGIS:
conda env create -f env_aegis.yml --name aegis_env- Activate the Environment:
conda activate aegis_envNow, you're all set. You can run the project code within this environment. each time you wish to run a .py file in rivanna run conda activate env first