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.
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:
- Take in event from data file
- Identify track(s) in the event
- Depending on type of tracks present, calculate beam energy, interaction point, path, angle,etc.
- Identify (sort) particles of interest (E-dE usually)
- Using calculated track info, kinematically reconstruct wanted information (usually a recoilnucleus)
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.
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.
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 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.
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.
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.
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!
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.
ROOT version 6 or later and C++ 11 or later