Skip to content

Commit

Permalink
Added setup_Directory() method to main_calib.C :: Added README for DC…
Browse files Browse the repository at this point in the history
… Calibration :: changed directory named from shms_dc_calib to dc_calib (#424)

* added HMS/SHMS DC Calib README :: changed directory name from shms_dc_calib to dc_calib

* added setup_Directpry() method in main_calib.C
  • Loading branch information
Yero1990 authored and Eric Pooser committed Mar 12, 2018
1 parent 577007f commit d68f46f
Show file tree
Hide file tree
Showing 18 changed files with 102 additions and 91 deletions.
File renamed without changes.
File renamed without changes.
99 changes: 99 additions & 0 deletions CALIBRATION/dc_calib/scripts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
HMS/SHMS Drift Chambers Calibration
============================================
This directory contains the code for calibrating the pair of HMS/SHMS drift chambers.



Directory structure
----------------------
* hallc_replay/CALIBRATION/dc_calib/scripts/main_calib.C : steering C++ code that executes the methods in DC_Calib.C
* hallc_replay/CALIBRATION/dc_calib/scripts/DC_Calib.C : Calibration Code where all the class methods are defined
* hallc_replay/CALIBRATION/dc_calib/scripts/DC_Calib.h : Header file containing the variable definitions used in the methods



Running code
---------------
NOTE: p: SHMS, h: HMS, <spec>: HMS, or SHMS

* First set the parameter 'p(h)_using_tzero_per_wire = 0' in the
parameter file located in: hallc_replay/PARAM/<spec>/DC/p(h)dc_cuts.param

* Replay the data to produce the uncalibrated root file to be used as input in the calibration
NOTE: Make sure to include the necessary leafs if you want to make any pid cuts.
The leafs are:

SHMS:
P.ngcer.npeSum, P.cal.etot, T.shms.pEL_CLEAN_tdcTime (the P.cal.etot is currently commented out until further discussion)

HMS:
H.cer.npeSum, H.cal.etot, T.hms.hEL_CLEAN_tdcTime (the H.cal.etot is currently commented out until further discussion)

* From the hallc_replay execute: ./hcana SCRIPTS/<spec>/PRODUCTION/<replay_script.C>

* From the directory where this README file is:
-Open and modify 'DC_Calib obj()' line. This line has the following format:

-------------------------------------------------------------------------------------------------
DC_calib obj("<spec_flag>", "/path/to/ROOTfile/", run_NUM, event_NUM, "<pid_flag>");

**The <spec_flag> and <pid_flag> have the possible arguments:

<spec_flag>: HMS, SHMS

<pid_flag>: pid_elec, pid_hadron, dc_1hit, pid_kFLASE

When the <pid_flag> is selected, the calibration script applies the following cuts:

1) pid_elec: P.ngcer.npeSum > 1.0 && T.shms.pEL_CLEAN_tdcTime > 0.0 (for HMS: H.cer.npeSum > 1.0 && T.hms.hEL_CLEAN_tdcTime > 0.0 )
2) pid_hadron: P.ngcer.npeSum < 1.0 (for HMS: H.cer.npeSum < 1.0 )
3) dc_1hit: Ndata.P(H).dc.plane.time == 1 && Ndata.P(H).dc.plane.wirenum == 1, where plane-> 1u1, 1u2, ...
NOTE: The Ndata cut, requires a single hit in each chamber per plane per event
4) pid_kFALSE: No cuts are applied.
-------------------------------------------------------------------------------------------------

* Once the arguments are specified, execute: root -l main_calib.C

When the calibration is completed, a directory will be created under the name: <spec_flag>_DC_Log_runNUM/

In this directory, the calibration output files are stored automatically, once the calibration is completed:

1) <spec_flag>_DC_driftimes.root
2) t_zero_values_plane.dat
3) p(h)dc_calib_runNUM.param
4) p(h)dc_tzero_per_wire_runNUM.param

Each file contains the following:
1) uncalibrated/calibrated drift times, fitted drift times, tzero_v_wire graphs
2) data files containing four columns: wire, tzero, tzero_error, entries
3) parameter file containing time-to-distance look-up values
4) parameter file containing per-wire tzero corrections


* The parameter files must be copied to the following location:

-> /hallc_replay/PARAM/<spec>/DC/hdc_calib.param
-> /hallc_replay/PARAM/<spec>/DC/hdc_tzero_per_wire.param

* Set the parameter 'p(h)_using_tzero_per_wire = 1' in the
parameter file located in: hallc_replay/PARAM/<spec>/DC/p(h)dc_cuts.param


* From the hallc_replay execute: ./hcana SCRIPTS/SHMS/PRODUCTION/<replay_script.C> once again.

NOTE: An indication that the calibration worked is by looking a the drift distances, which should appear
relatively flat. There may be a high number of counts at the extremes of the drift distance, for which
the additional cuts may need to be applied.

* The recommended cuts when looking at drift distances are:

1) P(H).dc.plane.time > 0 (drift time > 0)
2) PID cuts that were applied based on the <pid_flag> selected





File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ int main_calib()
//pid_elec, pid_hadron, dc_1hit, pid_kFALSE (no PID cuts)
// |
// v
//DC_calib obj("HMS", "../../../ROOTfiles/hms_replay_production_all_1856_dcuncal.root", 1856,2000000, "pid_kFALSE");
// DC_calib obj("HMS", "../../../ROOTfiles/hms_replay_production_all_1856_dcuncal.root", 1856,200, "pid_kFALSE");
//DC_calib obj("SHMS", "../../../ROOTfiles/shms_replay_production_all_2071_-1_dcuncalib.root", 2071, 3000000, "pid_bkg");
DC_calib obj("HMS", "../../../ROOTfiles/hms_coin_replay_production_1866_1000000.root", 1866, 1000000, "dc_1hit");
DC_calib obj("HMS", "../../../ROOTfiles/hms_coin_replay_production_1866_1000000.root", 1866, 1000, "pid_kFALSE");


obj.setup_Directory();
obj.printInitVar();
obj.SetPlaneNames();
obj.GetDCLeafs();
Expand Down
File renamed without changes.
88 changes: 0 additions & 88 deletions CALIBRATION/shms_dc_calib/README.md

This file was deleted.

0 comments on commit d68f46f

Please sign in to comment.