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 (
#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 --version
Once 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:
Use the
env.yml
file to create a new Conda environment:
conda env create -f env.yml
- Activate the Environment:
conda activate env
Now, 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