User Tools

Site Tools


s800_spectcl

S800 SpecTcl

SpecTcl is the NSCL's event data analysis tool used for online and offline data analysis during experiments involving the S800 spectrograph. The documentation is accessible at: http://docs.nscl.msu.edu/daq/spectcl/.

Important NOTES:

  • The S800 SpecTcl is run from the main directory /user/s800/s800spectcl. Instruction on how to install this software can be found here.
  • A S800 SpecTcl packet (compressed tar file) can be created for distribution to users. Instructions on how to create this packet can be found here.

The SpecTcl Control has been adapted for special functions required for the analysis of S800 data. SpecTcl can be opened from computer u4pc8 by clicking on the icon SpecTcl located in its desktop, or from a Linux terminal by typing gospectcl.

Spectra definition files can be found in directory /user/s800/s800spectcl/Definitions. Some pre-defined windows with useful spectra can be found in directory /user/s800/s800spectcl/Windows.

The figure below shows the GUI control of the S800 analysis.

spectclcontrol.jpg

The inverse map which enables the trajectory reconstruction of the particles within the spectrograph beam line can be loaded. Snapshots of CRDC and TPPAC events sampled in the pads and strips can be viewed. If this option is “armed”, the sample is read out for the first event that falls into the specified gate. This is a diagnostics tool to analyze the response of the CRDCs and TPPACs.

The TreeParameter class

The TreeParameter class provides a means of implementing parameters in SpecTcl in a tree-like structure and without the need to specify parameter identification numbers. The parameters are referred to by their names only, which at the same time indicate their location in the tree. This reference mechanism is valid for both the coding part of SpecTcl (C++ code) and the interpreter part (Tcl/Tk shell). It eliminates the confusion induced by the use of numerals to refer to the parameters, and allows the user to organize the parameters in a logical fashion.

Frequently used parameters for S800 SpecTcl

  • s800.fp.ic.sum: energy loss measured with the ion chamber
  • s800.fp.crdc1 s800.fp.crdc2
    • .x and .y: x and y positions of the particles hitting the CRDCs (calibrated)
    • .tac: the raw drift time of the electrons in the CRDCs which can be related to the y position via the mask calibration
    • .calc.x_gravity, .calc.x_fit: the x position in the CRDCs calculated using two methods (center-of-gravity or Gaussian fit) to determine the CRDC x position from the charge distribution induced in the pads by the electrons drifting towards the anode wire.
    • .anode: amplitude of the CRDC anode signal (used for diagnostics)
  • s800.fp.track
    • .afp: dispersive angle in the focal plane calculated from the x-y positions of the particles measured with the CRDCs
    • .ata and .bta: dispersive and non-dispersive angle of the particles after interaction with the reaction target. These parameters are reconstructed using the “inverse map”
    • .dta: kinetic energy of the particles determined from the CRDC's x-positions and the spectrograph Brho. Using the relativistic relation between energy and momentum yields the momentum distribution of the particles
    • .scatter: the particle's scattering angle off the target calculated from the reconstructed parameters “ata” and “bta”
  • s800.tof
    • .rf: time of flight relative to the cyclotron RF
    • .obj, .obje1, .obje2: time of flight between the S800 trigger scintillator and the object scintillator. Endings e1 and e2 indicate flight-path corrections being applied, for example using information from the scintillators E1 or E2 .
    • .xfp, .xfpe1, .xfpe2: time of flight between the S800 trigger scintillator and the extended focal plane scintillator of the A1900

Frequently used variables for S800 SpecTcl

(to be set on the “Variables” page of the GUI) for the CRDCs (n=1,2 for crdc1 and crdc2):

  • s800.fp.crdc1 and s800.fp.crdc2
    • .x_offset: offset in the x calibration, chosen to center the “beam hole” (see mask calibration) at 0 mm.
    • .x_slope: the slope of the x calibration. This value is always 2.54 mm/pad since the geometry of the pads inside the CRDCs is fixed
    • .y_offset: y offset in mm to be determined from the mask calibration
    • .y_slope: y slope in mm/ns to be determined from the mask calibration
  • s800.fp.crdc1.calc and s800.fp.crdc2.calc
    • .method: 1 sets “center of gravity” as method to determine the x position from the charge distribution in the pads, 2 enables the usage of the fit method
    • .gravity_width: sets the number of pads used to determine the center of gravity
    • .fit_width: number of pads taken for the Gaussian fit
    • .badpads: total number of pads declared as “bad” (see point below)
    • .badpad.mm: declares pad no. mm as “bad pad” and removes it from the calculation that determines the x position
  • s800.fp.track
    • .order: sets the order to which the reconstruction (inverse map) will be performed (typically 5th order)
    • .map.maxorder: determined by the inverse map. The maximum order is typically 5 and set automatically as soon as the inverse map is sourced in SpecTcl
    • .anglea and angleb: offset in angle (dispersive and non-dispersive) of the incoming beam hitting the target. The reconstruction assumes a beam without initial angles. The variables anglea and angleb have to be adjusted to center the angle distribution in the spectrum “bta vs. ata” so that the incoming angles are accounted for in the reconstruction
  • s800.tof
    • .objCorrection, .obje1Correction, .obje2Correction: corrections applied to the TOF measured between the object scintillator and the trigger scintillator. Details of the corrections will change from experiment to experiment and are accessible via the CS800.cpp file of the S800 SpecTcl source code
    • .xfpCorrection, .xfpe1Correction, .xfpe2Correction: corrections applied to the TOF measured between the extended focal plane scintillator (A1900) and the trigger scintillator. Details of the corrections will change from experiment to experiment and are accessible via the CS800.cpp file of the S800 SpecTcl source code

Sample spectra

The following figures depict some of the S800 SpecTcl spectra used for the tunning of the S800.

Energy loss in the ion chamber vs. time of flight measured between the object scintillator and the E1 scintillator (trigger) at the end of the focal plane

s800_pid.jpg

(In)elastic scattering of the incoming "cocktail beam" on a Au target (spectrograph in focus mode)

s800_identification.jpg

Sn-124 primary beam passing a thick Al viewer at the target position (focused optics)

working_crdc2_sn124.jpg

Upper left: Three 124Sn charge states in the CRDC2 x-y spectrum

Upper right: Amplitude of the CRDC2 anode signal vs. drift time (this is a diagnostics spectrum showing that the response of the CRDC is not correlated with the y position).

Lower left: Raw drift time measured in CRDC2

Lower right: Charge distribution induced in the pads by the three 124Sn charge states hitting CRDC2.

S800 SpecTcl installation in S800 computer

Before installing the S800 SpecTcl make sure to contact the S800 Device Physicist (Jorge Pereira). In order to install S800 SpecTcl in the S800 computer, follow the following steps:

  1. Connect to s800 account, preferably from u6pc5.
  2. Check that the environment variable SPECTCLBINDIR is well defined: echo $SPECTCLBINDIR should give you /user/s800/s800spectcl. If that's not the case, edit .bashrc and define the variable (make sure to source .bashrc afterwards).
  3. Go to /user/s800/s800develop/ and remove directory s800spectcl
  4. Clone the master branch from the remote repository: git clone git@git.nscl.msu.edu:pereira/s800spectcl.git -b master (NOTE: the deployment of this repository is password protected. Contact Jorge Pereira (pereira@nscl.msu.edu), Ron Fox (fox@nscl.msu.edu), or Giordano Cerizza (cerizza@nscl.msu.edu) for assistance).
  5. Type Make -f Make.s800 Install. This Makefile does the following:
    1. Goes to subdirectory /libnumrec, runs make clean, and make LIBLITE (to clear objects and create library libnumreclite.a and moves the library to the ../src subdirectory
    2. Goes to subdirectory /src, runs make clean, and make (this creates the SpecTcl binary) and moves it to the Main directory (up)
    3. Creates SpecTcl-running directory defined in SPECTCLBINDIR=/user/s800/s800spectcl, along with subdirectories /Windows and /Definitions.
    4. Moves “control” tcl files from Main directory into /user/s800/s800spectcl, along with executable SpecTcl; Xamine6.ctbl to the home directory; windows files to /Windows and s800xdt.tcl to /Definitions .
  6. This gets the software necessary to run SpecTcl ready in directory /user/s800/s800spectcl.
  7. SpecTcl can now be run just by typing gospectcl from any terminal

S800 SpecTcl deployment

This section describes the procedure and scripts (Makefiles) to create a tar file with the S800 SpecTcl source files that any user may need to run S800 SpecTcl by themselves. This tar file contains:

  • “Control” SpecTcl files (e.g. SpecTclControl.tcl, SpecTclInit.tcl, SpecTclRC.tcl etc.)
  • /src subdirectory with source cpp and h files, Makefile, and libnumreclite.a library from Numerical Recipes
  • /Windows subdirectory with standard SpecTcl windows files
  • /Definitions subdirectory with file s800xdt.tcl spectra definition file.

The procedure to deploy this software works as follows:

  1. Connect to s800 account, preferably from u6pc5.
  2. Check that the environment variable SPECTCLDEPLOY is well defined: echo $SPECTCLDEPLOY should give you /user/s800/s800spectcl_deploy. If that's not the case, edit .bashrc and define the variable (make sure to source .bashrc afterwards).
  3. Go to /user/s800/s800develop/ and remove directory s800spectcl
  4. Clone the master branch from the remote repository: git clone git@git.nscl.msu.edu:pereira/s800spectcl.git -b master (NOTE: the deployment of this repository is password protected. Contact Jorge Pereira (pereira@nscl.msu.edu), Ron Fox (fox@nscl.msu.edu), or Giordano Cerizza (cerizza@nscl.msu.edu) for help)
  5. Type Make -f Make.s800 Deploy. This Makefile does the following:
    1. Goes to subdirectory /libnumrec, runs make clean, and make LIBLITE (to clear objects and create library libnumreclite.a and moves the library to the ../src subdirectory
    2. Creates deployment directory defined in SPECTCLDEPLOY=/user/s800/s800spectcl_deploy, along with subdirectories /src, /Windows and /Definitions.
    3. Moves “control” tcl files from Main directory into /user/s800/s800spectcl_deploy, along with files from /src directory; SpecTcl windows files to /Windows and s800xdt.tcl to /Definitions.
    4. Compresses directory /user/s800/s800spectcl_deploy (tar -zcvf $(HOME)/s800spectcl_deploy.tar.gz $(SPECTCLDEPLOY))
    5. Removes /user/s800/s800spectcl_deploy
  6. The compressed file s800spectcl_deploy.tar.gz is located in the home directory /user/s800 and can now be distributed to any user
s800_spectcl.txt · Last modified: 2023/09/20 16:00 by swartzj