Skip to content
This repository was archived by the owner on Apr 3, 2023. It is now read-only.

tbhayward/SIDIS_dihadron

Repository files navigation

# analysis codes for CLAS12 SIDIS analyses
# Tmothy B. Hayward, last updated September 24, 2021


Description of the java code used by Timothy Hayward for the RGA first experiment dihadron analysis.
Thesis: https://www.jlab.org/Hall-B/general/thesis/THayward_thesis.pdf
Letter: https://arxiv.org/abs/2101.04842

- Updated now to include more generlized final states (changed from pi+ pi- assumed to user input for p1 and p2). 
In use with the current "back-to-back" proton-pi+ analysis.

- Updated now to include single hadron analysis scripts (my thesis work was just dihadrons). 

Code relies on the CLAS12 quality assurance (QA) repository maintained by Christopher Dilks: https://github.com/JeffersonLab/clasqaDB
if desired, you can comment out that line in the processing.groovy script but any final analysis should likely be using the QA.


included files: 
  
I. analysis_fitter.java
  This is the class for the kinematic fitter I use to build events. 
  The idea is to take the CLAS12 EventBuilder as a basis and enhance the PID on top of that.
  Loops through all particles in REC::Particle bank and sees if they pass the enhanced particle PID cuts described in my thesis.
  Start reading around line 500, "public PhysicsEvent getPhysicsEvent(DataEvent event) {"
  
II. dihadrons.java
  This is the class that I use to actually calculate all of the relevant kinematic variables such as Q2, W, Mx, xF, pT, etc.
  Takes events from the events produced by analysis_fitter.java and a given p1 and p2 particle identification number. 
  See the processing.groovy scripts to see how to access these variables.
  
IIb. hadron.java
  New class for analyzing SIDIS events with a single hadron detected in the final state.
  
III. hayward_coatjava_extensions.jar
  The distribution version of all my classes if you want to just try running the code as is first. You'll need this one in your 
  myClara/plugins/clas12/lib/services/ directory to use this with CLAS12 Groovy code. 
  
IV. processing.groovy
  I prefer to process the clas12 hipo4 files and create text outputs that I can then import into Mathematica, root, etc.
  It's not the most efficient but it is very nicely universal. This script accepts 5 input arguments:
    1. hipo file directory 
      a directory such as, /cache/clas12/rg-a/production/recon/fall2018/torus-1/pass1/v0/dst/train/skim4/, that contains hipo4 data files.
    2. pid for p1 (momentum 1), i.e. 211 for pi+
    3. pid for p2 (momentum 2), i.e. -211 for pi-
    4. output text file name
    5. number of files to process in the directory
    
IVb. processing_single_hadrons.groovy
  New script for analyzing SIDIS events with a single hadron detected in the final state. 
    
V. processing_mc.groovy
  Same as above; outputs a text file with event-by-event information. Designed to be used with MC files instead however.
  Puts, for example, Q2 and mc_Q2 next to each other for comparison. 
  
  

About

Research materials related to measuring dihadron processes in CLAS12.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors