Giter VIP home page Giter VIP logo

gwm_anasen's Introduction

ANASEN Analysis

Description

Based on code made by: M. Anastasiou, N. Rijal, and many others from the FSU Nuclear Physics group

This program is ment to be the final stage of analysis for data from the FSU ANASEN detector. Its main goal is to take data which is stored in detector structures defined by the Main program (not included) and convert it into physical variables and plots of physical data. This is done through particle tracking methods and kinematics calculations. A makefile is included for easy compliation, along with a sample of data lists and srim files that will be necessary to run the program.

Methods

Tracking

Particle tracking is the main objective of ANANSEN, and as such takes up most of the work done by this program. Tracks are of three types:

  • Track1
  • Track2
  • Track3

Track1 types are a particle track consisting of both a Si (SX3 or QQQ) event and a PC (proportional counter) event. If the data of interest was taken using gas-target ANASEN, these are thevaluable tracks. They contain enough data to reconstruct the reaction without any "extrapolation".

Track2 types are a particle track consisting of only a PC event; in general these are not terribly useful.

Track3 types are a particle track conisting of only a Si event. If the data of interest was taken using solid-target ANASEN, these are the only tracks that you will have.

Currently the program is written for use with gas-target ANASEN, and as such is mostly concerned with Track3 types.

The basic algorithim is as follows:

  1. Take in event from data file
  2. Identify track(s) in the event
  3. Depending on type of tracks present, calculate beam energy, interaction point, path, angle,etc.
  4. Identify (sort) particles of interest (E-dE usually)
  5. Using calculated track info, kinematically reconstruct wanted information (usually a recoilnucleus)

Energy Loss

One of the key parts of gas-target ANASEN is determining how much energy was lost while traveling through the gas for the reaction products and the beam. To accomplish this, tables generated by SRIM (Stopping Range of Ions in Material) are fed into the LookUp class. LookUp essentially generates a table of energies and the distance the particle traveled through a gas of known composition and density. It does this by taking in the data from the SRIM file, and then for a given step size in both E & distance calcuates the relevant information.

Reconstruction

Methods for kinematically reconstructing a nucleus from one (or many) reaction products. Almost entirely kinematics, this part of the program assumes that you know all of the reaction products relevant to reconstructing the nucleus in question. Other steps may have to be added as the complexity of the reaction increases.

Storage Structures

Each type of detector in ANASEN has its own class (SiHit, PCHit, CsIHit) along with a class for tracks (Track). Also defined are structures for storing the data in trees and ease of use throughout the program, which reduces the number of explicit branches created and cleans up the plotting from the interpreter. These are used to generate a dictionary for ROOT, which is made by the makefile.

The detector classes have to match the classes that were used by the Main function that sorted the particular data set of interest, as these classes will be used for the branch addresses of the MainTree.

If changes are made to the structures, these changes must be reflected int the LinkDef file. See ROOT documentation for more info.

Note: some structures are redefined with a new name within the detector classes. This is for backwards compatibility with older data which may have used a Main with very specific detector structures.

SRIM clean

Srim clean takes a standard SRIM output file and converts it into a file usable with the rest of the program. Basically removes all extra text and linespacing. Typically original SRIM files are .txt and usable files are .eloss.

main

The main fuction has one key purpose: to turn off and on analysis flags. The analysis flags are used to include or ignore parts of the code, which helps to make the code more applicable to more situations. Before execution check which flags you have on as they will impact the way the analysis runs.

Cuts

If the cutflag is on, the code will look for certain particle cuts (defined in the code) to be present in the cuts directory. Usually the analysis would be run first with cuts off, cuts would be made and saved to the cuts directory, and then analysis would be run again with the cutflag on and proper file names given to the program.

Misc

There is probably a whole bunch of stuff that isn't explained very well here, but this should at least give an idea of how the program works and what is necessary to make the program function. If there are any questions or concerns I can be reached at [email protected]. I appreciate any and all feedback!

Execution

If not made use:

make
./analyzer

and fill in the prompts as they appear. If you need to re-make the program:

make clean
make 
./analyzer

and again follow the prompts.

Requirements

ROOT version 6 or later and C++ 11 or later

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.