Difference between revisions of "Pol He-3 Analysis Resources"
From HallCWiki
Jump to navigationJump to searchLine 18: | Line 18: | ||
* [https://hallcweb.jlab.org/DocDB/0010/001032/001/analysis_notes.pdf General Hall C Analysis Procedure] -- Carlos Yero | * [https://hallcweb.jlab.org/DocDB/0010/001032/001/analysis_notes.pdf General Hall C Analysis Procedure] -- Carlos Yero | ||
** Reference times, etc. | ** Reference times, etc. | ||
+ | |||
+ | * [https://hallcweb.jlab.org/wiki/images/b/b8/To_do_comm_fall2018_hallc.pdf Simona's 2018 notes] on Detector Checkout and Analyzer configuratoin | ||
*[https://www.jlab.org/indico/event/351/session/0/contribution/7/material/slides/0.pdf HCANA and lessons learned from analyzing TDC1190 and FADC250 data] -- Mark Jones | *[https://www.jlab.org/indico/event/351/session/0/contribution/7/material/slides/0.pdf HCANA and lessons learned from analyzing TDC1190 and FADC250 data] -- Mark Jones | ||
− | ** Reference times, lessons | + | ** Reference times, lessons learned, etc. |
* [https://redmine.jlab.org/projects/podd/wiki/Workshop2018 Joint Hall A & C Data Analysis Workshop June 2018] | * [https://redmine.jlab.org/projects/podd/wiki/Workshop2018 Joint Hall A & C Data Analysis Workshop June 2018] |
Revision as of 21:54, 14 May 2020
A1n/d2n Analysis Logbooks
When a user clicks on one of the three logbooks under that link, they will be prompted for a "Login name:", "Full name:" and "Email:". For the login name they must put their JLab user name. After hitting save, they will be prompted to login. Use the JLab user name and password here.
- Contact Brad S. or Steve W. if you have problems.
Hall C analyzer documentation (Pol 3He Specific)
- Please feel welcome to use the Hall C Slack Channel if you have questions/issues.
- Anyone should be able to join if they use their @jlab.org email address
- If that doesn't work, try this Invitation link.
General Analysis / Farm Notes
- General Hall C Analysis Procedure -- Carlos Yero
- Reference times, etc.
- Simona's 2018 notes on Detector Checkout and Analyzer configuratoin
- HCANA and lessons learned from analyzing TDC1190 and FADC250 data -- Mark Jones
- Reference times, lessons learned, etc.
- Joint Hall A & C Data Analysis Workshop June 2018
- In general, items with a (*) on that page denotes an interactive tutorial component. If you login to "JLab" Bluejeans you can view the recorded video sessions.
- Review the following presentations from the Analysis workshop(s)
- Farm Use and Computing Resources Tips and Tricks (Updated 2019) -- Brad Sawatzky
- Hall-C Software: Status and Outlook -- Eric Pooser from Hall C Winter 2019 Collab meeting
- Overview & Update of the Hall C Analyzer -- Eric Pooser from 2018 Workshop
- Then move on to the Tuesday 'Hall C' sessions starting with the git howto:
- Effective Git use (*) -- Steve Wood
- Folks really do need to understand how to work with git. They should follow up on the tutorials/howtos Steve mentions in his talk before moving on.
Calibrations
Students / PostDocs write the section then an Expert validates the procedure
- General Hall C Analysis Procedure
- Reference times, etc.
I expect to break each detector/calibration out into its own wiki page as they mature, but for now I think it is best to work on this single (big) page until we have settled on a "good" template.
Basic Template for each Detector/Calibration Procedure
For each detector subsystem we would like to capture/document the following information:
- A list of all (or at least the most useful) ROOT tree variables associated with this detector
- Description of the calibration algorithm (That is, how is it supposed to work -- what is the logic behind it?)
- Files involved in the calibration
- THc* or THa* modules that are needed/used
- Database files that will be modified
- Scripts that will be used
- Dependencies of this calibration
- Reference time cuts should be verified
- FADC 'hit selection' timing cuts should be verified
- Calorimeter calibration relies on good optics calibration for momentum determination
- If tight timing cuts are used, then the hodoscopes may need to be calibrated first, etc
- ... etc
- Provide a step-by-step "Howto" that shows
- What commands/scripts need to be run, in what order.
- How do you verify that various cuts (ref times, trigger types, etc) are correct before you run the script(s)?
- What do you look for to verify that the code has run correctly after you run the script(s)?
- Common Pitfalls / Things to watch for
- I have found it useful in the past to provide a list of common symptoms and solutions that people may run into.
Drift Chambers
- Expert: Deb, Bill Henry
- Student:
Hodoscopes
- Expert: Carlos Yero, Deb Biswas, Bill Henry
- Student: Mingyu
- The hodoscope calibration scripts are in
hallc_replay/CALIBRATION/hms_hodo_calib
andhallc_replay/CALIBRATION/shms_hodo_calib
- Carlos Yero wrote a pretty thorough guide to the calibration procedure on DocDB as well as some nice slides from the 2018 analysis workshop
- Here are the steps for the HMS. The procedure is the same for the SHMS.
- Set the flag
htofusinginvadc = 0
to NOT use the hodo parameters from the previous hodoscope calibration procedure. This flag is found onhallc_replay/PARAM/HMS/HODO/
directory. - Replay a run with 1–2 million events.
- In the directory
hallc_replay/CALIBRATION/hms_hodo_calib/
, run the following code:root -l timeWalkHistos.C(<run_num>)
- This script takes as input the ROOTfile replayed and creates another ROOTfile with histogram objects that are used to perform the time-walk correction.
- To do the time-walk corrections, run the following code:
root -l timeWalkCalib.C(<run_num>)
- This script takes as input the ROOTfile containing the histogram objects produced by the previous script. A parameter file containing the time-walk parameters will be produced at
hallc_replay/PARAM/HMS/HODO/hhodo_TWcalib_runNUM.param
- Rename this file
hhodo_TWcalib.param
- Replay the raw data file, once again (1 - 2 M events), with the updated time-walk parameters.
- In the hodoscopoe calibration directory, run the following code:
root -l fitHodoCalib.C
- The first part of this script performs a linear fit on the time-walk corrected time vs. hodoscope track to determine the propagation velocity and the cable time difference across each paddle.
- The second part of this code solves a matrix equation for the lambda parameters mentioned in Carlos's guide.
- A parameter file containing the time-walk parameters will be produced at
hallc_replay/PARAM/HMS/HODO/hhodo_Vpcalib_runNUM.param
- Rename this file
hhodo_Vpcalib.param
- Replay the raw data one last time, and check the hodoscope beta distribution.
- You may have to apply a calorimeter cut (for example,
H.cal.etottracknorm>0.7
) to get a clean sample. A good calibration should have beta centered at 1.
- You may have to apply a calorimeter cut (for example,
Calorimeter
- Expert: Simona
- Student: Melanie
- Simona's slides on calorimeter analysis/calibration: [1]
- The calorimeter calibration scripts are in
hallc_replay/CALIBRATION/hms_cal_calib
andhallc_replay/CALIBRATION/shms_cal_calib
- Slides from the 2017 and 2018 analysis workshops are here [2], [3]
How to perform calibration
- Replay a run with HCANA and include the following branches
- HMS
- H.cal.1pr.goodNegAdcPulseInt
- H.cal.1pr.goodPosAdcPulseInt
- H.cal.2ta.goodNegAdcPulseInt
- H.cal.2ta.goodPosAdcPulseInt
- H.cal.3ta.goodNegAdcPulseInt
- H.cal.3ta.goodPosAdcPulseInt
- H.cal.4ta.goodNegAdcPulseInt
- H.cal.4ta.goodPosAdcPulseInt
- H.cal.nclust
- H.dc.ntrack
- H.dc.x_fp
- H.dc.y_fp
- H.dc.xp_fp
- H.dc.yp_fp
- H.gtr.p
- H.gtr.dp
- H.cer.npeSum
- H.hod.beta
- HMS
- SHMS
- P.cal.pr.goodNegAdcPulseInt
- P.cal.pr.goodPosAdcPulseInt
- P.cal.fly.goodAdcPulseInt
- P.dc.x_fp
- P.dc.y_fp
- P.dc.xp_fp
- P.dc.yp_fp
- P.dc.ntrack
- P.gtr.p
- P.gtr.dp
- P.hgcer.npeSum
- P.ngcer.npeSum
- P.hod.beta
- P.cal.nclust
- P.cal.ntracks
- P.cal.fly.nclust
- P.cal.fly.ntracks
- SHMS
- Create a ROOTfiles directory in the calibration directory (hms_cal_calib or shms_cal_calib)
- Modify the input file to select cuts (beta, delta, cherenkov)
- Run the calibration script from HCANA
.x cal_calib.cpp+("prefix_root_file")
Gas Cerenkovs
- Expert: Simona
- Student: Melanie
ROOT Tree Variables
SHMS Heavy Gas Cherenkov (HGC or "hgcer") and Noble Gas Cherenkov (NGC or "ngcer")
- P.h(n)gcer.npeSum
- P.h(n)gcer.totNumAdcHits
- P.h(n)gcer.totNumGoodAdcHits
- P.h(n)gcer.totNumTracksFired
- P.h(n)gcer.totNumTracksMatched
- P.h(n)gcer.xAtCer
- P.h(n)gcer.yAtCer
- T.shms.pH(N)GCER_adcMultiplicity
- T.shms.pH(N)GCER_adcPed
- T.shms.pH(N)GCER_adcPedRaw
- T.shms.pH(N)GCER_adcPulseAmp
- T.shms.pH(N)GCER_adcPulseAmpRaw
- T.shms.pH(N)GCER_adcPulseInt
- T.shms.pH(N)GCER_adcPulseIntRaw
- T.shms.pH(N)GCER_adcPulseTime
- T.shms.pH(N)GCER_adcPulseTimeRaw
- T.shms.pH(N)GCER_tdcMultiplicity
- T.shms.pH(N)GCER_tdcTime
- T.shms.pH(N)GCER_tdcTimeRaw
- Ndata.P.h(n)gcer.adcCounter
- P.h(n)gcer.adcCounter
- Ndata.P.h(n)gcer.adcErrorFlag
- P.h(n)gcer.adcErrorFlag
- Ndata.P.h(n)gcer.adcPed
- P.h(n)gcer.adcPed
- Ndata.P.h(n)gcer.adcPedRaw
- P.h(n)gcer.adcPedRaw
- Ndata.P.h(n)gcer.adcPulseAmp
- P.h(n)gcer.adcPulseAmp
- Ndata.P.h(n)gcer.adcPulseAmpRaw
- P.h(n)gcer.adcPulseAmpRaw
- Ndata.P.h(n)gcer.adcPulseInt
- P.h(n)gcer.adcPulseInt
- Ndata.P.h(n)gcer.adcPulseIntRaw
- P.h(n)gcer.adcPulseIntRaw
- Ndata.P.h(n)gcer.adcPulseTime
- P.h(n)gcer.adcPulseTime
- Ndata.P.h(n)gcer.adcPulseTimeRaw
- P.h(n)gcer.adcPulseTimeRaw
- Ndata.P.h(n)gcer.goodAdcHitUsed
- P.h(n)gcer.goodAdcHitUsed
- Ndata.P.h(n)gcer.goodAdcMult
- P.h(n)gcer.goodAdcMult
- Ndata.P.h(n)gcer.goodAdcPed
- P.h(n)gcer.goodAdcPed
- Ndata.P.h(n)gcer.goodAdcPulseAmp
- P.h(n)gcer.goodAdcPulseAmp
- Ndata.P.h(n)gcer.goodAdcPulseInt
- P.h(n)gcer.goodAdcPulseAmp
- Ndata.P.h(n)gcer.goodAdcPulseIntRaw
- P.h(n)gcer.goodAdcPulseInt
- Ndata.P.h(n)gcer.goodAdcPulseTime
- P.h(n)gcer.goodAdcPulseTime
- Ndata.P.h(n)gcer.goodAdcTdcDiffTime
- P.h(n)gcer.goodAdcTdcDiffTime
- Ndata.P.h(n)gcer.npe
- P.h(n)gcer.npe
- Ndata.P.h(n)gcer.numAdcHits
- P.h(n)gcer.numAdcHits
- Ndata.P.h(n)gcer.numGoodAdcHits
- P.h(n)gcer.numGoodAdcHits
- Ndata.P.h(n)gcer.numTracksFired
- P.h(n)gcer.numGoodAdcHits
- Ndata.P.h(n)gcer.numTracksMatched
- P.h(n)gcer.numTracksMatched
Calibration Algorithm
- There are two methods used to calibrate the gas Cherenkovs:
- The first - most straightforward - method is to identify the single photo-electron (SPE) peak from the ADC readout (and the oscilloscope). The pulse amplitudes of the PMTs are read out using FADCs and integrated to produce the pulse integrals. These histograms are then fitted along the range of the SPE signal to find the mean, which gives the number of picocoulombs for 1 photo-electron. This is the "adc_to_npe" calibration coefficient, which is then manually added to the parameter files located in
hallc_replay/PARAM/HMS/CER/hcer_calib.param
for the HMS andhallc_replay/PARAM/SHMS/HGCER/phgcer_calib.param
for the SHMS HGC- Identifying SPE signals requires only very little light, so beam isn't needed. These calibrations are done using cosmics
- See Simona Malace's elog entry on an HMS cherenkov calibration
- Clear SPE spectra hasn't been attainable with the SHMS NGC, so a second method is used to calibrate it. This is done for each PMT at a time by selecting electrons whose Cherenkov light was reflected on one PMT only. A calorimeter cut, timing cut, graphical X and Y cuts at the mirror planes, and cuts to ensure that very low pulse integrals are seen on all other PMTs (except for the one under calibration) are all needed. Once these are applied, the pulse integral histograms are fitted to get the number of photoelectrons (npe = μ²/σ²) and then the expected integral per single photo-electron (spe = μ/npe), which is the "adc_to_npe" calibration coefficient manually added to the parameter file located in
hallc_replay/PARAM/SHMS/NGCER/pngcer_calib.param
- See Simona Malace's elog entry on an SHMS NGC cherenkov calibration for a more thorough explanation
- See also Burcu Duran's notes on this type of calibration, a student who's done extensive PID studies with the NGC for the J/Psi experiment: SHMS NGCER Calib.pdf
- The first - most straightforward - method is to identify the single photo-electron (SPE) peak from the ADC readout (and the oscilloscope). The pulse amplitudes of the PMTs are read out using FADCs and integrated to produce the pulse integrals. These histograms are then fitted along the range of the SPE signal to find the mean, which gives the number of picocoulombs for 1 photo-electron. This is the "adc_to_npe" calibration coefficient, which is then manually added to the parameter files located in
- Once these calibration constants are found and implemented, replaying the run should result in the npe distribution with the single photo-electron peak centered around 1 (H.cer.npe[0] {H.cer.goodAdcMult[0]==1} for example, in the first elog post above, where indices [0] and [1] correspond to one of the two PMTs in the HMS cherenkov)
Needed Files
- The calibration scripts for the gas cherenkovs are located in:
hallc_replay/hms_cer_calib
for the HMS gas cherenkov andhallc_replay/shms_hgcer_calib
for the SHMS heavy gas cherenkov. - You will need to have replayed either the HMS or SHMS run, depending on which calibration you're doing, so that the appropriate root file has been generated.
- If the
-all
option was used, then the file will be in the form of:(s)hms_replay_production_all_XXXX_-1.root
whereXXXX
is the run number - If a certain number of events was chosen, then the file will be in the form of:
(s)hms_replay_production_XXXX__XXXX.root
with the run number and number of events
- If the
How to Run the Calibration
- First, always remember to load the Pol He3 software to properly set your environment:
source /group/c-polhe3/software/setup.sh
- For the HMS gas cherenkov calibration, go to
/hallc_replay/CALIBRATION/hms_cer_calib
and typeroot -l "run_cal.C(RunNum,NumEvents)"
where-1
is an option for NumEvents if a full replay was done- You will be prompted to enter 1 if it was a coincidence run. For our experiments, it won't be. Enter 0.
- Enter
showall
when prompted to "enter options for calibration." - The ADC-to-NPE conversion value will be outputted to the terminal for PMT 1 and PMT 2, and can be seen as the mean displayed in the Pulse Integral histograms.
- You'll be asked if you want to update the calibration constants with the better estimate. If you type "y," then a new parameters file called
hcer_calib_XXXX.param
for that specific run number will be generated and stored inhallc_replay/PARAM/HMS/CER
Common Issues
Aerogel (Not in use for this run)
Optics
- Expert: Mark Jones
- Post-Doc: Jixie
EDTM
BPM / Raster
- Expert: Mark Jones
- Student: Mingyu
BCM
- Expert: Dave Mack
- Student: Melanie
Acceptance
- Expert: Mark Jones
- Student: Murchanna
...
Farm / Disk Resources
General info
- unix group 'c-polhe3' -- general access control
- If you can't access the Farm, or the disk space below, then email brads or saw to be added to the group!
- Farm/Auger project: c-polhe3 -- run farm jobs using this Project
Disk Resources
- /group/c-polhe3 directory (100GB quota)
- /work/hallc/c-polhe3 directory (1 TB quota)
- /volatile/hallc/c-polhe3 directory (2 TB quota, 1 TB guarantee)
Tape Stubs
- /mss/hallc/c-polhe3/raw tape volume for raw CODA data -- this is where you will find the raw data files
- /mss/hallc/c-polhe3/analysis tape volume for analysis output -- this is where you can store personal/analysis output