From 99f6e1547452fa29cb6ecf9b06f2666612b1839d Mon Sep 17 00:00:00 2001 From: hallc-online <jlabhallconline@gmail.com> Date: Mon, 24 Jul 2017 21:57:37 -0400 Subject: [PATCH] Scripts and DEF files for using THcPrimaryKine --- DBASE/STD/standard.kinematics | 2 +- .../SHMS/PRODUCTION/pstackana_singlearm.def | 712 ++++++++++++++++++ .../PRODUCTION/pstackana_singlearm_cuts.def | 234 ++++++ .../SHMS/PRODUCTION/replay_singlearm_shms.C | 143 ++++ 4 files changed, 1090 insertions(+), 1 deletion(-) create mode 100644 DEF-files/SHMS/PRODUCTION/pstackana_singlearm.def create mode 100644 DEF-files/SHMS/PRODUCTION/pstackana_singlearm_cuts.def create mode 100644 SCRIPTS/SHMS/PRODUCTION/replay_singlearm_shms.C diff --git a/DBASE/STD/standard.kinematics b/DBASE/STD/standard.kinematics index 856b64fa..8534e7c8 100644 --- a/DBASE/STD/standard.kinematics +++ b/DBASE/STD/standard.kinematics @@ -7,6 +7,6 @@ hpcentral = 3. ppcentral = 3. hpartmass = 0.00051099 ppartmass = 0.00051099 - +ptargmass_amu=12.0 465-465 ppcentral = 0.750 \ No newline at end of file diff --git a/DEF-files/SHMS/PRODUCTION/pstackana_singlearm.def b/DEF-files/SHMS/PRODUCTION/pstackana_singlearm.def new file mode 100644 index 00000000..a0061f32 --- /dev/null +++ b/DEF-files/SHMS/PRODUCTION/pstackana_singlearm.def @@ -0,0 +1,712 @@ + + +#******************** +# Block Definitions * +#******************** + +block T.shms.* +block P.ngcer.* +block P.dc.* +block P.tr.* +block P.hod.* +block P.hgcer.* +block P.aero.* +block P.cal.* +block P.gtr.* +block P.kin.* + + +#*********** +# Single arm physics kinematics quantities +#************ +TH1F p_q2 'SHMS Q2 ; Q2 (GeV2) ' P.kin.Q2 100 0 5 +TH1F p_omega 'SHMS omega ; Ebeam-Escat (GeV)' P.kin.omega 100 0 5 +TH1F p_w2 'SHMS W2 ; W2 (GeV2)' P.kin.W2 100 0 10 +TH1F p_w 'SHMS W ; W (GeV)' P.kin.W 100 0 5 +TH1F p_thscat 'SHMS Scattering angle ; SHMS scattering angle (deg)' P.kin.scat_ang_deg 100 12 18 + + + +#********************** +# Noble Gas Cherenkov * +#********************** + +#------------------------------------------ +# SHMS NGC GOOD Occupancy and Multiplicity +#------------------------------------------ + +TH1F pngcer_good_occ 'SHMS Noble Gas Cherenkov Good Occupancy; PMT Number; Number of Good ADC Hits' P.ngcer.numGoodAdcHits 4 0.5 4.5 +TH1F pngcer_good_mult 'SHMS Noble Gas Cherenkov Good Multiplicity; Number of PMTs Hit; Total Number of Good ADC Hits' P.ngcer.totNumGoodAdcHits 4 0.5 4.5 + +#------------------------------------------------------------------------------- +# SHMS NGC GOOD Pulse Pedestal / Integral / Raw Integral / Amplitude / Time +# GOOD --> (passed errorFlag cut and pulsetime cuts oN Min/Max ADC Time Window) +#------------------------------------------------------------------------------- + +TH2F pngcer_good_pped_vs_pmt 'SHMS Noble Gas Cherenkov Good Pulse Pedestal vs. PMT Number; PMT Number; Pulse Pedestal / 1 ADC Units' [I+1] P.ngcer.goodAdcPed 4 0.5 4.5 400 300 700 +TH2F pngcer_good_pi_vs_pmt 'SHMS Noble Gas Cherenkov Good Pulse Integral vs. PMT Number; PMT Number; Pulse Integral / 50 ADC Units' [I+1] P.ngcer.goodAdcPulseInt 4 0.5 4.5 600 0 30000 P.ngcer.goodAdcPulseInt>0.0 +TH2F pngcer_good_pamp_vs_pmt 'SHMS Noble Gas Cherenkov Good Pulse Amplitude vs. PMT Number; PMT Number; Pulse Amplitude / 20 ADC Units' [I+1] P.ngcer.goodAdcPulseAmp 4 0.5 4.5 200 0 4000 P.ngcer.goodAdcPulseAmp>0.0 +TH2F pngcer_good_ptime_vs_pmt 'SHMS Noble Gas Cherenkov Good Pulse Time vs. PMT Number; PMT Number; Pulse Time / 10 ADC Units' [I+1] P.ngcer.goodAdcPulseTime 4 0.5 4.5 350 0 3500 P.ngcer.goodAdcPulseTime>0.0 + +#------------------------------- +# SHMS NGC Number of P.E. / PMT +#------------------------------- + +TH2F pngcer_npe 'SHMS Noble Gas Cherenkov Number of Photoelectrons vs. PMT Number; PMT Number; Number of Photoelectrons / PMT' [I+1] P.ngcer.npe 4 0.5 4.5 200 0 100 P.ngcer.npe>0.0 + +#------------------------------- +# SHMS NGC TOTAL NUMBER OF P.E. +#------------------------------- + +TH1F pngcer_tot_npe 'SHMS Noble Gas Cherenkov Total Number of Photoelectrons; Total Number of Photoelectrons; Number of Entries / 0.5 Photoelectrons' P.ngcer.npeSum 200 0 100 P.ngcer.npeSum>0.0 + +#-------------------------- +# SHMS NGC TRACK MATCHING +#-------------------------- + +sTH1F pngcer_trk_match 'SHMS Noble Gas Cherenkov Tracks Matches; PMT Number; Number of Tracks Matched' P.ngcer.numTracksMatched 4 0.5 4.5 +sTH1F pngcer_trk_fired 'SHMS Noble Gas Cherenkov Tracks Fired; PMT Number; Number of Tracks Fired' P.ngcer.numTracksFired 4 0.5 4.5 + +#***************** +# Drift Chambers * +#***************** + +#------------------ +# SHMS DC WIRE MAP +#------------------ + +TH1F pdc1u1_wirenum 'SHMS DC 1U1 Wiremap; Wire Number; Number of Entries' P.dc.1u1.wirenum 107 0.5 107.5 +TH1F pdc1u2_wirenum 'SHMS DC 1U2 Wiremap; Wire Number; Number of Entries' P.dc.1u2.wirenum 107 0.5 107.5 +TH1F pdc1x1_wirenum 'SHMS DC 1X1 Wiremap; Wire Number; Number of Entries' P.dc.1x1.wirenum 79 0.5 79.5 +TH1F pdc1x2_wirenum 'SHMS DC 1X2 Wiremap; Wire Number; Number of Entries' P.dc.1x2.wirenum 79 0.5 79.5 +TH1F pdc1v1_wirenum 'SHMS DC 1V1 Wiremap; Wire Number; Number of Entries' P.dc.1v1.wirenum 107 0.5 107.5 +TH1F pdc1v2_wirenum 'SHMS DC 1V2 Wiremap; Wire Number; Number of Entries' P.dc.1v2.wirenum 107 0.5 107.5 + +TH1F pdc2v2_wirenum 'SHMS DC 2V2 Wiremap; Wire Number; Number of Entries' P.dc.2v2.wirenum 107 0.5 107.5 +TH1F pdc2v1_wirenum 'SHMS DC 2V1 Wiremap; Wire Number; Number of Entries' P.dc.2v1.wirenum 107 0.5 107.5 +TH1F pdc2x2_wirenum 'SHMS DC 2X2 Wiremap; Wire Number; Number of Entries' P.dc.2x2.wirenum 79 0.5 79.5 +TH1F pdc2x1_wirenum 'SHMS DC 2X1 Wiremap; Wire Number; Number of Entries' P.dc.2x1.wirenum 79 0.5 79.5 +TH1F pdc2u2_wirenum 'SHMS DC 2U2 Wiremap; Wire Number; Number of Entries' P.dc.2u2.wirenum 107 0.5 107.5 +TH1F pdc2u1_wirenum 'SHMS DC 2U1 Wiremap; Wire Number; Number of Entries' P.dc.2u1.wirenum 107 0.5 107.5 + +#------------------------------ +# SHMS DC DRIFT TIME PER PLANE +#------------------------------ + +TH1F pdc1u1_drifttime 'SHMS DC 1U1 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.1u1.time 400 -50 350 +TH1F pdc1u2_drifttime 'SHMS DC 1U2 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.1u2.time 400 -50 350 +TH1F pdc1x1_drifttime 'SHMS DC 1X1 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.1x1.time 400 -50 350 +TH1F pdc1x2_drifttime 'SHMS DC 1X2 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.1x2.time 400 -50 350 +TH1F pdc1v1_drifttime 'SHMS DC 1V1 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.1v1.time 400 -50 350 +TH1F pdc1v2_drifttime 'SHMS DC 1V2 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.1v2.time 400 -50 350 + +TH1F pdc2v2_drifttime 'SHMS DC 2V2 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.2v2.time 400 -50 350 +TH1F pdc2v1_drifttime 'SHMS DC 2V1 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.2v1.time 400 -50 350 +TH1F pdc2x2_drifttime 'SHMS DC 2X2 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.2x2.time 400 -50 350 +TH1F pdc2x1_drifttime 'SHMS DC 2X1 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.2x1.time 400 -50 350 +TH1F pdc2u2_drifttime 'SHMS DC 2U2 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.2u2.time 400 -50 350 +TH1F pdc2u1_drifttime 'SHMS DC 2U1 Drift Time; Drift Time (ns); Number of Entries / 1 ns' P.dc.2u1.time 400 -50 350 + +#---------------------------------- +# SHMS DC DRIFT TIME VS. WIRENUMBER +#---------------------------------- + +TH2F pdc1u1_drifttime_vs_wirenum 'SHMS DC 1U1Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.1u1.wirenum P.dc.1u1.time 107 0.5 107.5 500 0 500 +TH2F pdc1u2_drifttime_vs_wirenum 'SHMS DC 1U2Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.1u2.wirenum P.dc.1u2.time 107 0.5 107.5 500 0 500 +TH2F pdc1x1_drifttime_vs_wirenum 'SHMS DC 1X1Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.1x1.wirenum P.dc.1x1.time 79 0.5 79.5 500 0 500 +TH2F pdc1x2_drifttime_vs_wirenum 'SHMS DC 1X2Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.1x2.wirenum P.dc.1x2.time 79 0.5 79.5 500 0 500 +TH2F pdc1v1_drifttime_vs_wirenum 'SHMS DC 1V1Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.1v1.wirenum P.dc.1v1.time 107 0.5 107.5 500 0 500 +TH2F pdc1v2_drifttime_vs_wirenum 'SHMS DC 1V2Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.1v2.wirenum P.dc.1v2.time 107 0.5 107.5 500 0 500 + +TH2F pdc2v2_drifttime_vs_wirenum 'SHMS DC 2V2Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.2v2.wirenum P.dc.2v2.time 107 0.5 107.5 500 0 500 +TH2F pdc2v1_drifttime_vs_wirenum 'SHMS DC 2V1Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.2v1.wirenum P.dc.2v1.time 107 0.5 107.5 500 0 500 +TH2F pdc2x2_drifttime_vs_wirenum 'SHMS DC 2X2Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.2x2.wirenum P.dc.2x2.time 79 0.5 79.5 500 0 500 +TH2F pdc2x1_drifttime_vs_wirenum 'SHMS DC 2X1Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.2x1.wirenum P.dc.2x1.time 79 0.5 79.5 500 0 500 +TH2F pdc2u2_drifttime_vs_wirenum 'SHMS DC 2U2Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.2u2.wirenum P.dc.2u2.time 107 0.5 107.5 500 0 500 +TH2F pdc2u1_drifttime_vs_wirenum 'SHMS DC 2U1Drift Time vs. Wire Number; Wire Number; Drift Time (ns)' P.dc.2u1.wirenum P.dc.2u1.time 107 0.5 107.5 500 0 500 + +#---------------------------------- +# SHMS DC Drift Distance Per Plane +#---------------------------------- + +TH1F pdc1u1_ddist 'SHMS 1U1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1u1.dist 50 -0.1 0.6 +TH1F pdc1u1_ddist_cut 'SHMS 1U1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1u1.dist 50 -0.1 0.6 time_cut1 + +TH1F pdc1u2_ddist 'SHMS 1U2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1u2.dist 50 -0.1 0.6 +TH1F pdc1u2_ddist_cut 'SHMS 1U2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1u2.dist 50 -0.1 0.6 time_cut2 + +TH1F pdc1x1_ddist 'SHMS 1X1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1x1.dist 50 -0.1 0.6 +TH1F pdc1x1_ddist_cut 'SHMS 1X1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1x1.dist 50 -0.1 0.6 time_cut3 + +TH1F pdc1x2_ddist 'SHMS 1X2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1x2.dist 50 -0.1 0.6 +TH1F pdc1x2_ddist_cut 'SHMS 1X2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1x2.dist 50 -0.1 0.6 time_cut4 + +TH1F pdc1v1_ddist 'SHMS 1V1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1v1.dist 50 -0.1 0.6 +TH1F pdc1v1_ddist_cut 'SHMS 1V1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1v1.dist 50 -0.1 0.6 time_cut5 + +TH1F pdc1v2_ddist 'SHMS 1V2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1v2.dist 50 -0.1 0.6 +TH1F pdc1v2_ddist_cut 'SHMS 1V2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.1v2.dist 50 -0.1 0.6 time_cut6 + +TH1F pdc2v2_ddist 'SHMS 2V2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2v2.dist 50 -0.1 0.6 +TH1F pdc2v2_ddist_cut 'SHMS 2V2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2v2.dist 50 -0.1 0.6 time_cut7 + +TH1F pdc2v1_ddist 'SHMS 2V1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2v1.dist 50 -0.1 0.6 +TH1F pdc2v1_ddist_cut 'SHMS 2V1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2v1.dist 50 -0.1 0.6 time_cut8 + +TH1F pdc2x2_ddist 'SHMS 2X2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2x2.dist 50 -0.1 0.6 +TH1F pdc2x2_ddist_cut 'SHMS 2X2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2x2.dist 50 -0.1 0.6 time_cut9 + +TH1F pdc2x1_ddist 'SHMS 2X1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2x1.dist 50 -0.1 0.6 +TH1F pdc2x1_ddist_cut 'SHMS 2X1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2x1.dist 50 -0.1 0.6 time_cut10 + +TH1F pdc2u2_ddist 'SHMS 2U2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2u2.dist 50 -0.1 0.6 +TH1F pdc2u2_ddist_cut 'SHMS 2U2 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2u2.dist 50 -0.1 0.6 time_cut11 + +TH1F pdc2u1_ddist 'SHMS 2U1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2u1.dist 50 -0.1 0.6 +TH1F pdc2u1_ddist_cut 'SHMS 2U1 Drift Distance; Drift Distance (cm); Number of Entries' P.dc.2u1.dist 50 -0.1 0.6 time_cut12 + +#---------------------------------------- +# SHMS DC Drift Distance vs. Wire number +#---------------------------------------- + +TH2F pdc1u1_wirenum_vs_ddist 'SHMS 1U1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1u1.wirenum P.dc.1u1.dist 107 0.5 107.5 300 -0.1 0.6 +TH2F pdc1u2_wirenum_vs_ddist 'SHMS 1U2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1u2.wirenum P.dc.1u2.dist 107 0.5 107.5 300 -0.1 0.6 +TH2F pdc1x1_wirenum_vs_ddist 'SHMS 1X1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1x1.wirenum P.dc.1x1.dist 79 0.5 79.5 300 -0.1 0.6 +TH2F pdc1x2_wirenum_vs_ddist 'SHMS 1X2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1x2.wirenum P.dc.1x2.dist 79 0.5 79.5 300 -0.1 0.6 +TH2F pdc1v1_wirenum_vs_ddist 'SHMS 1V1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1v1.wirenum P.dc.1v1.dist 107 0.5 107.5 300 -0.1 0.6 +TH2F pdc1v2_wirenum_vs_ddist 'SHMS 1V2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.1v2.wirenum P.dc.1v2.dist 107 0.5 107.5 300 -0.1 0.6 + +TH2F pdc2u2_wirenum_vs_ddist 'SHMS 2U2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2u2.wirenum P.dc.2u2.dist 107 0.5 107.5 300 -0.1 0.6 +TH2F pdc2u1_wirenum_vs_ddist 'SHMS 2U1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2u1.wirenum P.dc.2u1.dist 107 0.5 107.5 300 -0.1 0.6 +TH2F pdc2x2_wirenum_vs_ddist 'SHMS 2X2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2x2.wirenum P.dc.2x2.dist 79 0.5 79.5 300 -0.1 0.6 +TH2F pdc2x1_wirenum_vs_ddist 'SHMS 2X1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2x1.wirenum P.dc.2x1.dist 79 0.5 79.5 300 -0.1 0.6 +TH2F pdc2v2_wirenum_vs_ddist 'SHMS 2V2 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2v2.wirenum P.dc.2v2.dist 107 0.5 107.5 300 -0.1 0.6 +TH2F pdc2v1_wirenum_vs_ddist 'SHMS 2V1 Wiremap vs. Drift Distance; Wire Number; Drift Distance (cm)' P.dc.2v1.wirenum P.dc.2v1.dist 107 0.5 107.5 300 -0.1 0.6 + +#----------------------------- +# SHMS DC RESIDUALS PER PLANE +#----------------------------- + +TH1F pdc1u1_residuals 'SHMS 1U1 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[0] 200 -1.0 1.0 +TH1F pdc1u2_residuals 'SHMS 1U2 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[1] 200 -1.0 1.0 +TH1F pdc1x1_residuals 'SHMS 1X1 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[2] 200 -1.0 1.0 +TH1F pdc1x2_residuals 'SHMS 1X2 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[3] 200 -1.0 1.0 +TH1F pdc1v1_residuals 'SHMS 1V1 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[4] 200 -1.0 1.0 +TH1F pdc1v2_residuals 'SHMS 1V2 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[5] 200 -1.0 1.0 + +TH1F pdc2v2_residuals 'SHMS 2V2 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[6] 200 -1.0 1.0 +TH1F pdc2v1_residuals 'SHMS 2V1 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[7] 200 -1.0 1.0 +TH1F pdc2x2_residuals 'SHMS 2X2 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[8] 200 -1.0 1.0 +TH1F pdc2x1_residuals 'SHMS 2X1 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[9] 200 -1.0 1.0 +TH1F pdc2u2_residuals 'SHMS 2U2 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[10] 200 -1.0 1.0 +TH1F pdc2u1_residuals 'SHMS 2U1 DC Residuals; Residuals (cm); Number of Entries / 0.01 cm' P.dc.residual[11] 200 -1.0 1.0 + +#----------------------------------- +# SHMS DC RESIDUALS vs. Wire Number +#----------------------------------- + +TH2F pdc1u1_residuals_vs_wirenum 'SHMS 1U1 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.1u1.wirenum P.dc.residual[0] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1u2_residuals_vs_wirenum 'SHMS 1U2 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.1u2.wirenum P.dc.residual[1] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1x1_residuals_vs_wirenum 'SHMS 1X1 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.1x1.wirenum P.dc.residual[2] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc1x2_residuals_vs_wirenum 'SHMS 1X2 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.1x2.wirenum P.dc.residual[3] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc1v1_residuals_vs_wirenum 'SHMS 1V1 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.1v1.wirenum P.dc.residual[4] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1v2_residuals_vs_wirenum 'SHMS 1V2 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.1v2.wirenum P.dc.residual[5] 107 0.5 107.5 200 -1.0 1.0 + +TH2F pdc2v2_residuals_vs_wirenum 'SHMS 2V2 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.2v2.wirenum P.dc.residual[6] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2v1_residuals_vs_wirenum 'SHMS 2V1 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.2v1.wirenum P.dc.residual[7] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2x2_residuals_vs_wirenum 'SHMS 2X2 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.2x2.wirenum P.dc.residual[8] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc2x1_residuals_vs_wirenum 'SHMS 2X1 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.2x1.wirenum P.dc.residual[9] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc2u2_residuals_vs_wirenum 'SHMS 2U2 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.2u2.wirenum P.dc.residual[10] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2u1_residuals_vs_wirenum 'SHMS 2U1 DC Residuals vs. Wire Number; Wire Number; Residuals (cm)' P.dc.2u1.wirenum P.dc.residual[11] 107 0.5 107.5 200 -1.0 1.0 + +#------------------------------------------- +# SHMS DC TRACKING VARIABLES AT FOCAL PLANE +#------------------------------------------- + +TH1F pdc_trk_mom 'SHMS DC Track Momentum; P (GeV); Number of Entires / 10 MeV' P.tr.p 600 0 6 +TH1F pdc_trk_beta 'SHMS DC Track Beta; Beta (GeV); Number of Entires' P.tr.beta 300 -1.5 1.5 +TH2F pdc_xfp_vs_yxp 'SHMS DC X_{fp} vs Y_{fp}; Y_{fp} (cm) / 1 cm; X_{fp} (cm) / 1 cm' P.dc.y_fp P.dc.x_fp 100 -50 50 100 -50 50 +TH2F pdc_xpfp_vs_ypfp 'SHMS DC X'_{fp} vs Y'_{fp}; Y'_{fp} / 0.002 rad; X'_{fp} / 0.002 rad' P.dc.yp_fp P.dc.xp_fp 100 -.1 .1 100 -.1 .1 +TH2F pdc_xfp_vs_ypfp 'SHMS DC X_{fp} vs Y'_{fp}; Y'_{fp} / 0.002 rad; X_{fp} / 1 cm' P.dc.yp_fp P.dc.x_fp 100 -.1 .1 100 -50 50 +TH2F pdc_xfp_vs_xpfp 'SHMS DC X_{fp} vs X'_{fp}; X'_{fp} / 0.002 rad; X_{fp} / 1 cm' P.dc.xp_fp P.dc.x_fp 100 -.1 .1 100 -50 50 + +#***************** +# SHMS HODOSCOPES +#***************** + +#----------------------------------- +# SHMS HODO GOOD ADC Multiplicities +#----------------------------------- + +TH1F phodo_1x_good_adc_mult_pos 'SHMS 1X+ Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good +ADC Hits' P.hod.1x.totNumGoodPosAdcHits 13 0.5 13.5 +TH1F phodo_1y_good_adc_mult_pos 'SHMS 1Y+ Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good +ADC Hits' P.hod.1y.totNumGoodPosAdcHits 13 0.5 13.5 +TH1F phodo_2x_good_adc_mult_pos 'SHMS 2X+ Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good +ADC Hits' P.hod.2x.totNumGoodPosAdcHits 14 0.5 14.5 +TH1F phodo_2y_good_adc_mult_pos 'SHMS 2Y+ Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good +ADC Hits' P.hod.2y.totNumGoodPosAdcHits 21 0.5 21.5 + +TH1F phodo_1x_good_adc_mult_neg 'SHMS 1X- Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good -ADC Hits' P.hod.1x.totNumGoodNegAdcHits 13 0.5 13.5 +TH1F phodo_1y_good_adc_mult_neg 'SHMS 1Y- Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good -ADC Hits' P.hod.1y.totNumGoodNegAdcHits 13 0.5 13.5 +TH1F phodo_2x_good_adc_mult_neg 'SHMS 2X- Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good -ADC Hits' P.hod.2x.totNumGoodNegAdcHits 14 0.5 14.5 +TH1F phodo_2y_good_adc_mult_neg 'SHMS 2Y- Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good -ADC Hits' P.hod.2y.totNumGoodNegAdcHits 21 0.5 21.5 + +TH1F phodo_1x_good_adc_mult 'SHMS 1X Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good ADC Hits' P.hod.1x.totNumGoodAdcHits 13 0.5 13.5 +TH1F phodo_1y_good_adc_mult 'SHMS 1Y Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good ADC Hits' P.hod.1y.totNumGoodAdcHits 13 0.5 13.5 +TH1F phodo_2x_good_adc_mult 'SHMS 2X Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good ADC Hits' P.hod.2x.totNumGoodAdcHits 14 0.5 14.5 +TH1F phodo_2y_good_adc_mult 'SHMS 2Y Good ADC Multiplicity; Number of PMTs Hit; Total Number of Good ADC Hits' P.hod.2y.totNumGoodAdcHits 21 0.5 21.5 + +#----------------------------------- +# SHMS HODO Good TDC Multiplicities +#----------------------------------- + +TH1F phodo_1x_good_tdc_mult_pos 'SHMS 1X+ Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good +TDC Hits' P.hod.1x.totNumGoodPosTdcHits 13 0.5 13.5 +TH1F phodo_1y_good_tdc_mult_pos 'SHMS 1Y+ Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good +TDC Hits' P.hod.1y.totNumGoodPosTdcHits 13 0.5 13.5 +TH1F phodo_2x_good_tdc_mult_pos 'SHMS 2X+ Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good +TDC Hits' P.hod.2x.totNumGoodPosTdcHits 14 0.5 14.5 +TH1F phodo_2y_good_tdc_mult_pos 'SHMS 2Y+ Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good +TDC Hits' P.hod.2y.totNumGoodPosTdcHits 21 0.5 21.5 + +TH1F phodo_1x_good_tdc_mult_neg 'SHMS 1X- Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good -TDC Hits' P.hod.1x.totNumGoodNegTdcHits 13 0.5 13.5 +TH1F phodo_1y_good_tdc_mult_neg 'SHMS 1Y- Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good -TDC Hits' P.hod.1y.totNumGoodNegTdcHits 13 0.5 13.5 +TH1F phodo_2x_good_tdc_mult_neg 'SHMS 2X- Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good -TDC Hits' P.hod.2x.totNumGoodNegTdcHits 14 0.5 14.5 +TH1F phodo_2y_good_tdc_mult_neg 'SHMS 2Y- Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good -TDC Hits' P.hod.2y.totNumGoodNegTdcHits 21 0.5 21.5 + +TH1F phodo_1x_good_tdc_mult 'SHMS 1X Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good TDC Hits' P.hod.1x.totNumGoodTdcHits 13 0.5 13.5 +TH1F phodo_1y_good_tdc_mult 'SHMS 1Y Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good TDC Hits' P.hod.1y.totNumGoodTdcHits 13 0.5 13.5 +TH1F phodo_2x_good_tdc_mult 'SHMS 2X Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good TDC Hits' P.hod.2x.totNumGoodTdcHits 14 0.5 14.5 +TH1F phodo_2y_good_tdc_mult 'SHMS 2Y Good TDC Multiplicity; Number of PMTs Hit; Total Number of Good TDC Hits' P.hod.2y.totNumGoodTdcHits 21 0.5 21.5 + +#--------------------------------- +# SHMS HODO GOOD ADC OCCUPANCIES +#--------------------------------- + +TH1F phodo_1x_good_adc_occ_pos 'SHMS 1X+ Good ADC Occupancy; PMT Number; Number of Good +ADC Hits' P.hod.1x.numGoodPosAdcHits 13 0.5 13.5 +TH1F phodo_1y_good_adc_occ_pos 'SHMS 1Y+ Good ADC Occupancy; PMT Number; Number of Good +ADC Hits' P.hod.1y.numGoodPosAdcHits 13 0.5 13.5 +TH1F phodo_2x_good_adc_occ_pos 'SHMS 2X+ Good ADC Occupancy; PMT Number; Number of Good +ADC Hits' P.hod.2x.numGoodPosAdcHits 14 0.5 14.5 +TH1F phodo_2y_good_adc_occ_pos 'SHMS 2Y+ Good ADC Occupancy; PMT Number; Number of Good +ADC Hits' P.hod.2y.numGoodPosAdcHits 21 0.5 21.5 + +TH1F phodo_1x_good_adc_occ_neg 'SHMS 1X- Good ADC Occupancy; PMT Number; Number of Good -ADC Hits' P.hod.1x.numGoodNegAdcHits 13 0.5 13.5 +TH1F phodo_1y_good_adc_occ_neg 'SHMS 1Y- Good ADC Occupancy; PMT Number; Number of Good -ADC Hits' P.hod.1y.numGoodNegAdcHits 13 0.5 13.5 +TH1F phodo_2x_good_adc_occ_neg 'SHMS 2X- Good ADC Occupancy; PMT Number; Number of Good -ADC Hits' P.hod.2x.numGoodNegAdcHits 14 0.5 14.5 +TH1F phodo_2y_good_adc_occ_neg 'SHMS 2Y- Good ADC Occupancy; PMT Number; Number of Good -ADC Hits' P.hod.2y.numGoodNegAdcHits 21 0.5 21.5 + +#-------------------------------- +# SHMS HODO GOOD TDC OCCUPANCIES +#-------------------------------- + +TH1F phodo_1x_good_tdc_occ_pos 'SHMS 1X+ Good TDC Occupancy; PMT Number; Number of Good +TDC Hits' P.hod.1x.numGoodPosTdcHits 13 0.5 13.5 +TH1F phodo_1y_good_tdc_occ_pos 'SHMS 1Y+ Good TDC Occupancy; PMT Number; Number of Good +TDC Hits' P.hod.1y.numGoodPosTdcHits 13 0.5 13.5 +TH1F phodo_2x_good_tdc_occ_pos 'SHMS 2X+ Good TDC Occupancy; PMT Number; Number of Good +TDC Hits' P.hod.2x.numGoodPosTdcHits 14 0.5 14.5 +TH1F phodo_2y_good_tdc_occ_pos 'SHMS 2Y+ Good TDC Occupancy; PMT Number; Number of Good +TDC Hits' P.hod.2y.numGoodPosTdcHits 21 0.5 21.5 + +TH1F phodo_1x_good_tdc_occ_neg 'SHMS 1X- Good TDC Occupancy; PMT Number; Number of Good -TDC Hits' P.hod.1x.numGoodNegTdcHits 13 0.5 13.5 +TH1F phodo_1y_good_tdc_occ_neg 'SHMS 1Y- Good TDC Occupancy; PMT Number; Number of Good -TDC Hits' P.hod.1y.numGoodNegTdcHits 13 0.5 13.5 +TH1F phodo_2x_good_tdc_occ_neg 'SHMS 2X- Good TDC Occupancy; PMT Number; Number of Good -TDC Hits' P.hod.2x.numGoodNegTdcHits 14 0.5 14.5 +TH1F phodo_2y_good_tdc_occ_neg 'SHMS 2Y- Good TDC Occupancy; PMT Number; Number of Good -TDC Hits' P.hod.2y.numGoodNegTdcHits 21 0.5 21.5 + +#--------------------- +# GOOD PULSE PEDESTAL +#--------------------- + +TH2F phodo_1x_good_pped_vs_pmt_pos 'SHMS 1X+ Good Pulse Pedestal vs. PMT Number; PMT Number; Good Pulse Pedestal / 1 ADC Unit' [I+1] P.hod.1x.GoodPosAdcPed 13 0.5 13.5 400 300 700 P.hod.1x.GoodPosAdcPed>0.0 +TH2F phodo_1y_good_pped_vs_pmt_pos 'SHMS 1Y+ Good Pulse Pedestal vs. PMT Number; PMT Number; Good Pulse Pedestal / 1 ADC Unit' [I+1] P.hod.1y.GoodPosAdcPed 13 0.5 13.5 400 300 700 P.hod.1y.GoodPosAdcPed>0.0 +TH2F phodo_2x_good_pped_vs_pmt_pos 'SHMS 2X+ Good Pulse Pedestal vs. PMT Number; PMT Number; Good Pulse Pedestal / 1 ADC Unit' [I+1] P.hod.2x.GoodPosAdcPed 14 0.5 14.5 400 300 700 P.hod.2x.GoodPosAdcPed>0.0 +TH2F phodo_2y_good_pped_vs_pmt_pos 'SHMS 2Y+ Good Pulse Pedestal vs. PMT Number; PMT Number; Good Pulse Pedestal / 1 ADC Unit' [I+1] P.hod.2y.GoodPosAdcPed 21 0.5 21.5 400 300 700 P.hod.2y.GoodPosAdcPed>0.0 + +TH2F phodo_1x_good_pped_vs_pmt_neg 'SHMS 1X- Good Pulse Pedestal vs. PMT Number; PMT Number; Good Pulse Pedestal / 1 ADC Unit' [I+1] P.hod.1x.GoodNegAdcPed 13 0.5 13.5 400 300 700 P.hod.1x.GoodNegAdcPed>0.0 +TH2F phodo_1y_good_pped_vs_pmt_neg 'SHMS 1Y- Good Pulse Pedestal vs. PMT Number; PMT Number; Good Pulse Pedestal / 1 ADC Unit' [I+1] P.hod.1y.GoodNegAdcPed 13 0.5 13.5 400 300 700 P.hod.1y.GoodNegAdcPed>0.0 +TH2F phodo_2x_good_pped_vs_pmt_neg 'SHMS 2X- Good Pulse Pedestal vs. PMT Number; PMT Number; Good Pulse Pedestal / 1 ADC Unit' [I+1] P.hod.2x.GoodNegAdcPed 14 0.5 14.5 400 300 700 P.hod.2x.GoodNegAdcPed>0.0 +TH2F phodo_2y_good_pped_vs_pmt_neg 'SHMS 2Y- Good Pulse Pedestal vs. PMT Number; PMT Number; Good Pulse Pedestal / 1 ADC Unit' [I+1] P.hod.2y.GoodNegAdcPed 21 0.5 21.5 400 300 700 P.hod.2y.GoodNegAdcPed>0.0 + +#--------------------- +# GOOD PULSE INTEGRAL +#--------------------- + +TH2F phodo_1x_good_pi_vs_pmt_pos 'SHMS 1X+ Good Pulse Integral vs. PMT Number; PMT Number; Good Pulse Integral / 50 ADC Units' [I+1] P.hod.1x.GoodPosAdcPulseInt 13 0.5 13.5 600 0 30000 P.hod.1x.GoodPosAdcPulseInt>0.0 +TH2F phodo_1y_good_pi_vs_pmt_pos 'SHMS 1Y+ Good Pulse Integral vs. PMT Number; PMT Number; Good Pulse Integral / 50 ADC Units' [I+1] P.hod.1y.GoodPosAdcPulseInt 13 0.5 13.5 600 0 30000 P.hod.1y.GoodPosAdcPulseInt>0.0 +TH2F phodo_2x_good_pi_vs_pmt_pos 'SHMS 2X+ Good Pulse Integral vs. PMT Number; PMT Number; Good Pulse Integral / 50 ADC Units' [I+1] P.hod.2x.GoodPosAdcPulseInt 14 0.5 14.5 600 0 30000 P.hod.2x.GoodPosAdcPulseInt>0.0 +TH2F phodo_2y_good_pi_vs_pmt_pos 'SHMS 2Y+ Good Pulse Integral vs. PMT Number; PMT Number; Good Pulse Integral / 50 ADC Units' [I+1] P.hod.2y.GoodPosAdcPulseInt 21 0.5 21.5 600 0 30000 P.hod.2y.GoodPosAdcPulseInt>0.0 + +TH2F phodo_1x_good_pi_vs_pmt_neg 'SHMS 1X- Good Pulse Integral vs. PMT Number; PMT Number; Good Pulse Integral / 50 ADC Units' [I+1] P.hod.1x.GoodNegAdcPulseInt 13 0.5 13.5 600 0 30000 P.hod.1x.GoodNegAdcPulseInt>0.0 +TH2F phodo_1y_good_pi_vs_pmt_neg 'SHMS 1Y- Good Pulse Integral vs. PMT Number; PMT Number; Good Pulse Integral / 50 ADC Units' [I+1] P.hod.1y.GoodNegAdcPulseInt 13 0.5 13.5 600 0 30000 P.hod.1y.GoodNegAdcPulseInt>0.0 +TH2F phodo_2x_good_pi_vs_pmt_neg 'SHMS 2X- Good Pulse Integral vs. PMT Number; PMT Number; Good Pulse Integral / 50 ADC Units' [I+1] P.hod.2x.GoodNegAdcPulseInt 14 0.5 14.5 600 0 30000 P.hod.2x.GoodNegAdcPulseInt>0.0 +TH2F phodo_2y_good_pi_vs_pmt_neg 'SHMS 2Y- Good Pulse Integral vs. PMT Number; PMT Number; Good Pulse Integral / 50 ADC Units' [I+1] P.hod.2y.GoodNegAdcPulseInt 21 0.5 21.5 600 0 30000 P.hod.2y.GoodNegAdcPulseInt>0.0 + +#----------------------- +# GOOD PULSE AMPLITUDE +#----------------------- + +TH2F phodo_1x_good_pamp_vs_pmt_pos 'SHMS 1X+ Good Pulse Amplitude vs. PMT Number; PMT Number; Good Pulse Amplitude / 20 ADC Units' [I+1] P.hod.1x.GoodPosAdcPulseAmp 13 0.5 13.5 205 0 4100 P.hod.1x.GoodPosAdcPulseAmp>0.0 +TH2F phodo_1y_good_pamp_vs_pmt_pos 'SHMS 1Y+ Good Pulse Amplitude vs. PMT Number; PMT Number; Good Pulse Amplitude / 20 ADC Units' [I+1] P.hod.1y.GoodPosAdcPulseAmp 13 0.5 13.5 205 0 4100 P.hod.1y.GoodPosAdcPulseAmp>0.0 +TH2F phodo_2x_good_pamp_vs_pmt_pos 'SHMS 2X+ Good Pulse Amplitude vs. PMT Number; PMT Number; Good Pulse Amplitude / 20 ADC Units' [I+1] P.hod.2x.GoodPosAdcPulseAmp 14 0.5 14.5 205 0 4100 P.hod.2x.GoodPosAdcPulseAmp>0.0 +TH2F phodo_2y_good_pamp_vs_pmt_pos 'SHMS 2Y+ Good Pulse Amplitude vs. PMT Number; PMT Number; Good Pulse Amplitude / 20 ADC Units' [I+1] P.hod.2y.GoodPosAdcPulseAmp 21 0.5 21.5 205 0 4100 P.hod.2y.GoodPosAdcPulseAmp>0.0 + +TH2F phodo_1x_good_pamp_vs_pmt_neg 'SHMS 1X- Good Pulse Amplitude vs. PMT Number; PMT Number; Good Pulse Amplitude / 20 ADC Units' [I+1] P.hod.1x.GoodNegAdcPulseAmp 13 0.5 13.5 205 0 4100 P.hod.1x.GoodNegAdcPulseAmp>0.0 +TH2F phodo_1y_good_pamp_vs_pmt_neg 'SHMS 1Y- Good Pulse Amplitude vs. PMT Number; PMT Number; Good Pulse Amplitude / 20 ADC Units' [I+1] P.hod.1y.GoodNegAdcPulseAmp 13 0.5 13.5 205 0 4100 P.hod.1y.GoodNegAdcPulseAmp>0.0 +TH2F phodo_2x_good_pamp_vs_pmt_neg 'SHMS 2X- Good Pulse Amplitude vs. PMT Number; PMT Number; Good Pulse Amplitude / 20 ADC Units' [I+1] P.hod.2x.GoodNegAdcPulseAmp 14 0.5 14.5 205 0 4100 P.hod.2x.GoodNegAdcPulseAmp>0.0 +TH2F phodo_2y_good_pamp_vs_pmt_neg 'SHMS 2Y- Good Pulse Amplitude vs. PMT Number; PMT Number; Good Pulse Amplitude / 20 ADC Units' [I+1] P.hod.2y.GoodNegAdcPulseAmp 21 0.5 21.5 205 0 4100 P.hod.2y.GoodNegAdcPulseAmp>0.0 + +#--------------------- +# GOOD ADC PULSE TIME +#--------------------- + +TH2F phodo_1x_good_ptime_vs_pmt_pos 'SHMS 1X+ Good Pulse Time vs. PMT Number; PMT Number; Good Pulse Time / 10 ADC Units' [I+1] P.hod.1x.GoodPosAdcPulseTime 13 0.5 13.5 410 0 4100 P.hod.1x.GoodPosAdcPulseTime>0.0 +TH2F phodo_1y_good_ptime_vs_pmt_pos 'SHMS 1Y+ Good Pulse Time vs. PMT Number; PMT Number; Good Pulse Time / 10 ADC Units' [I+1] P.hod.1y.GoodPosAdcPulseTime 13 0.5 13.5 410 0 4100 P.hod.1y.GoodPosAdcPulseTime>0.0 +TH2F phodo_2x_good_ptime_vs_pmt_pos 'SHMS 2X+ Good Pulse Time vs. PMT Number; PMT Number; Good Pulse Time / 10 ADC Units' [I+1] P.hod.2x.GoodPosAdcPulseTime 14 0.5 14.5 410 0 4100 P.hod.2x.GoodPosAdcPulseTime>0.0 +TH2F phodo_2y_good_ptime_vs_pmt_pos 'SHMS 2Y+ Good Pulse Time vs. PMT Number; PMT Number; Good Pulse Time / 10 ADC Units' [I+1] P.hod.2y.GoodPosAdcPulseTime 21 0.5 21.5 410 0 4100 P.hod.2y.GoodPosAdcPulseTime>0.0 + +TH2F phodo_1x_good_ptime_vs_pmt_neg 'SHMS 1X- Good Pulse Time vs. PMT Number; PMT Number; Good Pulse Time / 10 ADC Units' [I+1] P.hod.1x.GoodNegAdcPulseTime 13 0.5 13.5 410 0 4100 P.hod.1x.GoodNegAdcPulseTime>0.0 +TH2F phodo_1y_good_ptime_vs_pmt_neg 'SHMS 1Y- Good Pulse Time vs. PMT Number; PMT Number; Good Pulse Time / 10 ADC Units' [I+1] P.hod.1y.GoodNegAdcPulseTime 13 0.5 13.5 410 0 4100 P.hod.1y.GoodNegAdcPulseTime>0.0 +TH2F phodo_2x_good_ptime_vs_pmt_neg 'SHMS 2X- Good Pulse Time vs. PMT Number; PMT Number; Good Pulse Time / 10 ADC Units' [I+1] P.hod.2x.GoodNegAdcPulseTime 14 0.5 14.5 410 0 4100 P.hod.2x.GoodNegAdcPulseTime>0.0 +TH2F phodo_2y_good_ptime_vs_pmt_neg 'SHMS 2Y- Good Pulse Time vs. PMT Number; PMT Number; Good Pulse Time / 10 ADC Units' [I+1] P.hod.2y.GoodNegAdcPulseTime 21 0.5 21.5 410 0 4100 P.hod.2y.GoodNegAdcPulseTime>0.0 + +#--------------------------------------------------------- +# GOOD TDC TIME UNCORRECTED (uncorrected for time offsets) +#--------------------------------------------------------- + +TH2F phodo_1x_good_tdctime_uncorr_vs_pmt_pos 'SHMS 1X+ Good Uncorrected TDC Time vs. PMT Number; PMT Number; Good Uncorrected TDC Time / 1 TDC Unit' [I+1] P.hod.1x.GoodPosTdcTimeUnCorr 13 0.5 13.5 120 0 120 P.hod.1x.GoodPosTdcTimeUnCorr>0.0 +TH2F phodo_1y_good_tdctime_uncorr_vs_pmt_pos 'SHMS 1Y+ Good Uncorrected TDC Time vs. PMT Number; PMT Number; Good Uncorrected TDC Time / 1 TDC Unit' [I+1] P.hod.1y.GoodPosTdcTimeUnCorr 13 0.5 13.5 120 0 120 P.hod.1y.GoodPosTdcTimeUnCorr>0.0 +TH2F phodo_2x_good_tdctime_uncorr_vs_pmt_pos 'SHMS 2X+ Good Uncorrected TDC Time vs. PMT Number; PMT Number; Good Uncorrected TDC Time / 1 TDC Unit' [I+1] P.hod.2x.GoodPosTdcTimeUnCorr 14 0.5 14.5 120 0 120 P.hod.2x.GoodPosTdcTimeUnCorr>0.0 +TH2F phodo_2y_good_tdctime_uncorr_vs_pmt_pos 'SHMS 2Y+ Good Uncorrected TDC Time vs. PMT Number; PMT Number; Good Uncorrected TDC Time / 1 TDC Unit' [I+1] P.hod.2y.GoodPosTdcTimeUnCorr 21 0.5 21.5 120 0 120 P.hod.2y.GoodPosTdcTimeUnCorr>0.0 + +TH2F phodo_1x_good_tdctime_uncorr_vs_pmt_neg 'SHMS 1X- Good Uncorrected TDC Time vs. PMT Number; PMT Number; Good Uncorrected TDC Time / 1 TDC Unit' [I+1] P.hod.1x.GoodNegTdcTimeUnCorr 13 0.5 13.5 120 0 120 P.hod.1x.GoodNegTdcTimeUnCorr>0.0 +TH2F phodo_1y_good_tdctime_uncorr_vs_pmt_neg 'SHMS 1Y- Good Uncorrected TDC Time vs. PMT Number; PMT Number; Good Uncorrected TDC Time / 1 TDC Unit' [I+1] P.hod.1y.GoodNegTdcTimeUnCorr 13 0.5 13.5 120 0 120 P.hod.1y.GoodNegTdcTimeUnCorr>0.0 +TH2F phodo_2x_good_tdctime_uncorr_vs_pmt_neg 'SHMS 2X- Good Uncorrected TDC Time vs. PMT Number; PMT Number; Good Uncorrected TDC Time / 1 TDC Unit' [I+1] P.hod.2x.GoodNegTdcTimeUnCorr 14 0.5 14.5 120 0 120 P.hod.2x.GoodNegTdcTimeUnCorr>0.0 +TH2F phodo_2y_good_tdctime_uncorr_vs_pmt_neg 'SHMS 2Y- Good Uncorrected TDC Time vs. PMT Number; PMT Number; Good Uncorrected TDC Time / 1 TDC Unit' [I+1] P.hod.2y.GoodNegTdcTimeUnCorr 21 0.5 21.5 120 0 120 P.hod.2y.GoodNegTdcTimeUnCorr>0.0 + +#----------------------------------------------------- +# GOOD TDC TIME CORRECTED (corrected for time offsets) +#----------------------------------------------------- + +TH2F phodo_1x_good_tdctime_corr_vs_pmt_pos 'SHMS 1X+ Good Corrected TDC Time vs. PMT Number; PMT Number; Good Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.1x.GoodPosTdcTimeCorr 13 0.5 13.5 120 0 120 P.hod.1x.GoodPosTdcTimeCorr>0.0 +TH2F phodo_1y_good_tdctime_corr_vs_pmt_pos 'SHMS 1Y+ Good Corrected TDC Time vs. PMT Number; PMT Number; Good Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.1y.GoodPosTdcTimeCorr 13 0.5 13.5 120 0 120 P.hod.1y.GoodPosTdcTimeCorr>0.0 +TH2F phodo_2x_good_tdctime_corr_vs_pmt_pos 'SHMS 2X+ Good Corrected TDC Time vs. PMT Number; PMT Number; Good Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.2x.GoodPosTdcTimeCorr 14 0.5 14.5 120 0 120 P.hod.2x.GoodPosTdcTimeCorr>0.0 +TH2F phodo_2y_good_tdctime_corr_vs_pmt_pos 'SHMS 2Y+ Good Corrected TDC Time vs. PMT Number; PMT Number; Good Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.2y.GoodPosTdcTimeCorr 21 0.5 21.5 120 0 120 P.hod.2y.GoodPosTdcTimeCorr>0.0 + +TH2F phodo_1x_good_tdctime_corr_vs_pmt_neg 'SHMS 1X- Good Corrected TDC Time vs. PMT Number; PMT Number; Good Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.1x.GoodNegTdcTimeCorr 13 0.5 13.5 120 0 120 P.hod.1x.GoodNegTdcTimeCorr>0.0 +TH2F phodo_1y_good_tdctime_corr_vs_pmt_neg 'SHMS 1Y- Good Corrected TDC Time vs. PMT Number; PMT Number; Good Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.1y.GoodNegTdcTimeCorr 13 0.5 13.5 120 0 120 P.hod.1y.GoodNegTdcTimeCorr>0.0 +TH2F phodo_2x_good_tdctime_corr_vs_pmt_neg 'SHMS 2X- Good Corrected TDC Time vs. PMT Number; PMT Number; Good Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.2x.GoodNegTdcTimeCorr 14 0.5 14.5 120 0 120 P.hod.2x.GoodNegTdcTimeCorr>0.0 +TH2F phodo_2y_good_tdctime_corr_vs_pmt_neg 'SHMS 2Y- Good Corrected TDC Time vs. PMT Number; PMT Number; Good Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.2y.GoodNegTdcTimeCorr 21 0.5 21.5 120 0 120 P.hod.2y.GoodNegTdcTimeCorr>0.0 + +#----------------------------------------------------------- +# GOOD TDC TIME TOF CORRECTED (corrected for time of flight) +#----------------------------------------------------------- + +TH2F phodo_1x_good_tdctime_tofcorr_vs_pmt_pos 'SHMS 1X+ Good TOF Corrected TDC Time vs. PMT Number; PMT Number; Good TOF Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.1x.GoodPosTdcTimeTOFCorr 13 0.5 13.5 120 0 120 P.hod.1x.GoodPosTdcTimeTOFCorr>0.0 +TH2F phodo_1y_good_tdctime_tofcorr_vs_pmt_pos 'SHMS 1Y+ Good TOF Corrected TDC Time vs. PMT Number; PMT Number; Good TOF Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.1y.GoodPosTdcTimeTOFCorr 13 0.5 13.5 120 0 120 P.hod.1y.GoodPosTdcTimeTOFCorr>0.0 +TH2F phodo_2x_good_tdctime_tofcorr_vs_pmt_pos 'SHMS 2X+ Good TOF Corrected TDC Time vs. PMT Number; PMT Number; Good TOF Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.2x.GoodPosTdcTimeTOFCorr 14 0.5 14.5 120 0 120 P.hod.2x.GoodPosTdcTimeTOFCorr>0.0 +TH2F phodo_2y_good_tdctime_tofcorr_vs_pmt_pos 'SHMS 2Y+ Good TOF Corrected TDC Time vs. PMT Number; PMT Number; Good TOF Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.2y.GoodPosTdcTimeTOFCorr 21 0.5 21.5 120 0 120 P.hod.2y.GoodPosTdcTimeTOFCorr>0.0 + +TH2F phodo_1x_good_tdctime_tofcorr_vs_pmt_neg 'SHMS 1X- Good TOF Corrected TDC Time vs. PMT Number; PMT Number; Good TOF Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.1x.GoodNegTdcTimeTOFCorr 13 0.5 13.5 120 0 120 P.hod.1x.GoodNegTdcTimeTOFCorr>0.0 +TH2F phodo_1y_good_tdctime_tofcorr_vs_pmt_neg 'SHMS 1Y- Good TOF Corrected TDC Time vs. PMT Number; PMT Number; Good TOF Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.1y.GoodNegTdcTimeTOFCorr 13 0.5 13.5 120 0 120 P.hod.1y.GoodNegTdcTimeTOFCorr>0.0 +TH2F phodo_2x_good_tdctime_tofcorr_vs_pmt_neg 'SHMS 2X- Good TOF Corrected TDC Time vs. PMT Number; PMT Number; Good TOF Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.2x.GoodNegTdcTimeTOFCorr 14 0.5 14.5 120 0 120 P.hod.2x.GoodNegTdcTimeTOFCorr>0.0 +TH2F phodo_2y_good_tdctime_tofcorr_vs_pmt_neg 'SHMS 2Y- Good TOF Corrected TDC Time vs. PMT Number; PMT Number; Good TOF Corrected TDC Time / 1 TDC Unit' [I+1] P.hod.2y.GoodNegTdcTimeTOFCorr 21 0.5 21.5 120 0 120 P.hod.2y.GoodNegTdcTimeTOFCorr>0.0 + +#---------------------------------------------------------------- +# SHMS HODO TRACKING, TIMING AND Particle ID (PID) - BETA (v/c) +#---------------------------------------------------------------- + +TH1F phodo_beta_notrack 'SHMS Hodo Calculated Beta Without Track Info; Beta; Number of Entries / 0.02' P.hod.betanotrack 100 0 2.0 P.hod.betanotrack>0.0 +TH1F phodo_beta 'SHMS Hodo Beta; Beta; Number of Entries / 0.02' P.hod.beta 100 0 2.0 P.hod.beta>0.0 +TH1F phodo_fpHitsTime 'SHMS Hodo Focal Plane Time; Focal Plane Time (ns); Number of Entries / 1 ns' P.hod.fpHitsTime 90 0 90 +TH1F phodo_starttime 'SHMS Hodo Start Time; Start Time (ns); Number of Entries / 1ns' P.hod.starttime 90 0 90 +TH1F phodo_good_startime 'SHMS Hodo Good Start Time (ns); Good Start Time (ns); Number of Entries / 1ns' P.hod.goodstarttime 90 0 90 +TH2F phodo_xhod_vs_yhod 'SHMS Hodo Projected X vs. Y; Y_hodo(cm) / 1mm; X_hodo(cm) / 1mm' P.hod.y_hodo P.hod.x_hodo 1000 -50 50 1000 -50 50 + +#********************** +# Heavy Gas Cherenkov * +#********************** + +#----------------------------------------- +# SHMS HGC GOOD Occupancy and Multiplicity +#----------------------------------------- + +TH1F phgcer_good_occ 'SHMS Heavy Gas Cherenkov Good Occupancy; PMT Number; Number Good ADC Hits' P.hgcer.numGoodAdcHits 4 0.5 4.5 +TH1F phgcer_good_mult 'SHMS Heavy Gas Cherenkov Good Multiplicity; Number of PMTs Hit; Total Number of Good ADC Hits' P.hgcer.totNumGoodAdcHits 4 0.5 4.5 + +#------------------------------------------------------------------------------- +# SHMS HGC GOOD Pulse Pedestal / Integral / Raw Integral / Amplitude / Time +# GOOD --> (passed errorFlag cut and pulsetime cuts oN Min/Max ADC Time Window) +#------------------------------------------------------------------------------- + +TH2F phgcer_good_pped_vs_pmt 'SHMS Heavy Gas Cherenkov Good Pulse Pedestal vs. PMT Number; PMT Number; Pulse Pedestal / 1 ADC Units' [I+1] P.hgcer.goodAdcPed 4 0.5 4.5 400 300 700 +TH2F phgcer_good_pi_vs_pmt 'SHMS Heavy Gas Cherenkov Good Pulse Integral vs. PMT Number; PMT Number; Pulse Integral / 50 ADC Units' [I+1] P.hgcer.goodAdcPulseInt 4 0.5 4.5 600 0 30000 P.hgcer.goodAdcPulseInt>0.0 +TH2F phgcer_good_pamp_vs_pmt 'SHMS Heavy Gas Cherenkov Good Pulse Amplitude vs. PMT Number; PMT Number; Pulse Amplitude / 20 ADC Units' [I+1] P.hgcer.goodAdcPulseAmp 4 0.5 4.5 200 0 4000 P.hgcer.goodAdcPulseAmp>0.0 +TH2F phgcer_good_ptime_vs_pmt 'SHMS Heavy Gas Cherenkov Good Pulse Time vs. PMT Number; PMT Number; Pulse Time / 10 ADC Units' [I+1] P.hgcer.goodAdcPulseTime 4 0.5 4.5 350 0 3500 P.hgcer.goodAdcPulseTime>0.0 + +#------------------------------- +# SHMS HGC Number of P.E. / PMT +#------------------------------- + +TH2F phgcer_npe 'SHMS Heavy Gas Cherenkov Number of Photoelectrons vs. PMT Number; PMT Number; Number of Photoelectrons / PMT' [I+1] P.hgcer.npe 4 0.5 4.5 200 0 100 P.hgcer.npe>0.0 + +#------------------------------- +# SHMS HGC TOTAL NUMBER OF P.E. +#------------------------------- + +TH1F phgcer_tot_npe 'SHMS Heavy Gas Cherenkov Total Number of Photoelectrons; Total Number of Photoelectrons; Number of Entries / 0.5 Photoelectrons' P.hgcer.npeSum 200 0 100 P.hgcer.npeSum>0.0 + +#-------------------------- +# SHMS HGC TRACK MATCHING +#-------------------------- + +sTH1F phgcer_trk_match 'SHMS Noble Gas Cherenkov Track Matches; PMT Number; Number of Tracks Matched' P.hgcer.numTracksMatched 4 0.5 4.5 +sTH1F phgcer_trk_fired 'SHMS Noble Gas Cherenkov Tracks Fired; PMT Number; Number of Tracks Fired' P.hgcer.numTracksFired 4 0.5 4.5 + +#*************** +# SHMS AEROGEL * +#*************** + +#---------------------------------------------- +# SHMS AEROGEL GOOD Occupancy and Multiplicity +#---------------------------------------------- + +TH1F paero_good_occ_pos 'SHMS Aero+ Good Occupancy; PMT Number; Number of Good +ADC Hits' P.aero.numGoodPosAdcHits 7 0.5 7.5 +TH1F paero_good_occ_neg 'SHMS Aero- Good Occupancy; PMT Number; Number of Good -ADC Hits' P.aero.numGoodNegAdcHits 7 0.5 7.5 +TH1F paero_good_mult_pos 'SHMS Aero+ Good Multiplicity; Number of PMTs Hit; Total Number of Good +ADC Hits' P.aero.totNumGoodPosAdcHits 7 0.5 7.5 +TH1F paero_good_mult_neg 'SHMS Aero- Good Multiplicity; Number of PMTs Hit; Total Number of Good -ADC Hits' P.aero.totNumGoodNegAdcHits 7 0.5 7.5 +TH1F paero_good_mult 'SHMS Aero Good Multiplicity; Number of PMTs Hit; Total Number of Good ADC Hits' P.aero.totnumGoodAdcHits 14 0.5 14.5 + +#------------------------------- +# SHMS AERO TOTAL NUMBER OF P.E. +#------------------------------- + +TH1F paero_tot_npe_pos 'SHMS Aero+ Total Number of Photoelectrons; Total Number of Pos Photoelectrons; Number of Entries / 0.5 Photoelectrons' P.aero.posNpeSum 200 0 100 P.aero.posNpeSum>0.0 +TH1F paero_tot_npe_neg 'SHMS Aero- Total Number of Photoelectrons; Total Number of Neg Photoelectrons; Number of Entries / 0.5 Photoelectrons' P.aero.negNpeSum 200 0 100 P.aero.negNpeSum>0.0 +TH1F paero_tot_npe 'SHMS Aero Total Number of Photoelectrons; Total Number of Photoelectrons; Number of Entries / 0.5 Photoelectrons' P.aero.npeSum 200 0 100 P.aero.npeSum>0.0 + +#-------------------------------- +# SHMS AERO Number of P.E. / PMT +#-------------------------------- + +TH2F paero_npe_pos 'SHMS Aero+ Number of Photoelectrons vs. PMT Number; PMT Number; Number of Photoelectrons / PMT' [I+1] P.aero.posNpe 7 0.5 7.5 200 0 100 P.aero.posNpe>0.0 +TH2F paero_npe_neg 'SHMS Aero- Number of Photoelectrons vs. PMT Number; PMT Number; Number of Photoelectrons / PMT' [I+1] P.aero.negNpe 7 0.5 7.5 200 0 100 P.aero.negNpe>0.0 + +#------------------------------------------------------------------------------ +# SHMS AERO GOOD Pulse Pedestal / Integral / Raw Integral / Amplitude / Time +# GOOD --> (passed errorFlag cut and pulsetime cuts oN Min/Max ADC Time Window) +#------------------------------------------------------------------------------ + +TH2F paero_good_pped_vs_pmt_pos 'SHMS Aero+ Good Pulse Pedestal vs. PMT Number; PMT Number; Pulse Pedestal / 1 ADC Units' [I+1] P.aero.goodPosAdcPed 7 0.5 7.5 400 300 700 P.aero.goodPosAdcPed>0.0 +TH2F paero_good_pi_vs_pmt_pos 'SHMS Aero+ Good Pulse Integral vs. PMT Number; PMT Number; Pulse Integral / 50 ADC Units' [I+1] P.aero.goodPosAdcPulseInt 7 0.5 7.5 600 0 30000 P.aero.goodPosAdcPulseInt>0.0 +TH2F paero_good_pamp_vs_pmt_pos 'SHMS Aero+ Good Pulse Amplitude vs. PMT Number; PMT Number; Pulse Amplitude / 20 ADC Units' [I+1] P.aero.goodPosAdcPulseAmp 7 0.5 7.5 200 0 4000 P.aero.goodPosAdcPulseAmp>0.0 +TH2F paero_good_ptime_vs_pmt_pos 'SHMS Aero+ Good Pulse Time vs. PMT Number; PMT Number; Pulse Time / 10 ADC Units' [I+1] P.aero.goodPosAdcPulseTime 7 0.5 7.5 350 0 3500 P.aero.goodPosAdcPulseTime>0.0 + +TH2F paero_good_pped_vs_pmt_neg 'SHMS Aero- Good Pulse Pedestal vs. PMT Number; PMT Number; Pulse Pedestal / 1 ADC Units' [I+1] P.aero.goodNegAdcPed 7 0.5 7.5 400 300 700 P.aero.goodNegAdcPed>0.0 +TH2F paero_good_pi_vs_pmt_neg 'SHMS Aero- Good Pulse Integral vs. PMT Number; PMT Number; Pulse Integral / 50 ADC Units' [I+1] P.aero.goodNegAdcPulseInt 7 0.5 7.5 600 0 30000 P.aero.goodNegAdcPulseInt>0.0 +TH2F paero_good_pamp_vs_pmt_neg 'SHMS Aero- Good Pulse Amplitude vs. PMT Number; PMT Number; Pulse Amplitude / 20 ADC Units' [I+1] P.aero.goodNegAdcPulseAmp 7 0.5 7.5 200 0 4000 P.aero.goodNegAdcPulseAmp>0.0 +TH2F paero_good_ptime_vs_pmt_neg 'SHMS Aero- Good Pulse Time vs. PMT Number; PMT Number; Pulse Time / 10 ADC Units' [I+1] P.aero.goodNegAdcPulseTime 7 0.5 7.5 350 0 3500 P.aero.goodNegAdcPulseTime>0.0 + +#******************* +# SHMS CALORIMETER * +#******************* + +#-------------------------------------------- +# SHMS PreSH GOOD Occupancy and Multiplicity +#-------------------------------------------- + +TH1F pcal_prshwr_good_occ_pos 'SHMS PreShower+ Good Occupancy; PMT Number; Number of Good +ADC Hits' P.cal.pr.numGoodPosAdcHits 14 0.5 14.5 +TH1F pcal_prshwr_good_occ_neg 'SHMS PreShower- Good Occupancy; PMT Number; Number of Good -ADC Hits' P.cal.pr.numGoodNegAdcHits 14 0.5 14.5 +TH1F pcal_prshwr_good_mult_pos 'SHMS PreShower+ Good Multiplicity; Number of PMTs Hit; Total Number of Good +ADC Hits' P.cal.pr.totNumGoodPosAdcHits 14 0.5 14.5 +TH1F pcal_prshwr_good_mult_neg 'SHMS PreShower- Good Multiplicity; Number of PMTs Hit; Total Number of Good -ADC Hits' P.cal.pr.totNumGoodNegAdcHits 14 0.5 14.5 +TH1F pcal_prshwr_good_mult 'SHMS PreShower Good Multiplicity; Number of PMTs Hit; Total Number of Good ADC Hits' P.cal.pr.totnumGoodAdcHits 28 0.5 28.5 + +#-------------------------------------------------------------------------------------------------- +# GOOD PULSE PEDESTALS/INTEGRALS/AMPLITUDES/TIMES +# GOOD --> (passed errorFlag cut, pulsetime cuts oN Min/Max ADC Time Window, and ADC threshold cut) +#-------------------------------------------------------------------------------------------------- + +TH2F pcal_prshwr_good_pped_vs_pmt_pos 'SHMS PreShower+ Good Pulse Pedestal vs. PMT Number; PMT Number; Good Pulse Pedestal / 1 ADC Unit' [I+1] P.cal.pr.goodPosAdcPed 14 0.5 14.5 400 300 700 P.cal.pr.goodPosAdcPed>0.0 +TH2F pcal_prshwr_good_pi_vs_pmt_pos 'SHMS PreShower+ Good Pulse Integral vs. PMT Number; PMT Number; Good Pulse Integral / 50 ADC Units' [I+1] P.cal.pr.goodPosAdcPulseInt 14 0.5 14.5 600 0 30000 P.cal.pr.goodPosAdcPulseInt>0.0 +TH2F pcal_prshwr_good_pamp_vs_pmt_pos 'SHMS PreShower+ Good Pulse Amplitude vs. PMT Number; PMT Number; Good Pulse Amplitude / 20 ADC Units' [I+1] P.cal.pr.goodPosAdcPulseAmp 14 0.5 14.5 200 0 4000 P.cal.pr.goodPosAdcPulseAmp>0.0 +TH2F pcal_prshwr_good_ptime_vs_pmt_pos 'SHMS PreShower+ Good Pulse Time vs. PMT Number; PMT Number; Good Pulse Time / 10 ADC Units' [I+1] P.cal.pr.goodPosAdcPulseTime 14 0.5 14.5 350 0 3500 P.cal.pr.goodPosAdcPulseTime>0.0 + +TH2F pcal_prshwr_good_pped_vs_pmt_neg 'SHMS PreShower- Good Pulse Pedestal vs. PMT Number; PMT Number; Good Pulse Pedestal / 1 ADC Unit' [I+1] P.cal.pr.goodNegAdcPed 14 0.5 14.5 400 300 700 P.cal.pr.goodNegAdcPed>0.0 +TH2F pcal_prshwr_good_pi_vs_pmt_neg 'SHMS PreShower- Good Pulse Integral vs. PMT Number; PMT Number; Good Pulse Integral / 50 ADC Units' [I+1] P.cal.pr.goodNegAdcPulseInt 14 0.5 14.5 600 0 30000 P.cal.pr.goodNegAdcPulseInt>0.0 +TH2F pcal_prshwr_good_pamp_vs_pmt_neg 'SHMS PreShower- Good Pulse Amplitude vs. PMT Number; PMT Number; Good Pulse Amplitude / 20 ADC Units' [I+1] P.cal.pr.goodNegAdcPulseAmp 14 0.5 14.5 200 0 4000 P.cal.pr.goodNegAdcPulseAmp>0.0 +TH2F pcal_prshwr_good_ptime_vs_pmt_neg 'SHMS PreShower- Good Pulse Time vs. PMT Number; PMT Number; Good Pulse Time / 10 ADC Units' [I+1] P.cal.pr.goodNegAdcPulseTime 14 0.5 14.5 350 0 3500 P.cal.pr.goodNegAdcPulseTime>0.0 + +#------------------------------------------------------ +# SHMS PRE-SHOWER ENERGY DEPOSITION vs. PMT HISTOGRAMS +# (calib consts (GAIN) are in GeV/ADC units ) +#------------------------------------------------------ + +TH2F pcal_prshwr_Epos_vs_pmt 'SHMS PreShower+ Energy Deposition vs. PMT Number; PMT Number; Energy Deposition (0.01 GeV / ADC Units)' [I+1] P.cal.pr.epos 14 0.5 14.5 200 0 2 P.cal.pr.epos>0.0 +TH2F pcal_prshwr_Eneg_vs_pmt 'SHMS PreShower- Energy Deposition vs. PMT Number; PMT Number; Energy Deposition (0.01 GeV / ADC Units)' [I+1] P.cal.pr.eneg 14 0.5 14.5 200 0 2 P.cal.pr.eneg>0.0 +TH2F pcal_prshwr_Emean_vs_pmt 'SHMS PreShower Mean Energy Deposition vs. PMT Number; PMT Number; Mean Energy Deposition (0.01 GeV / ADC Units)' [I+1] P.cal.pr.emean 14 0.5 14.5 300 0 3 P.cal.pr.emean>0.0 + +#------------------------------------------- +# SHMS ENERGY DEPOSITION in PreShower PLANE +#------------------------------------------- + +TH1F pcal_prshwr_Eplane_pos 'SHMS PreShower+ Energy Deposition; Energy Deposition (GeV); Number of Entries / 0.01 GeV' P.cal.pr.eplane_pos 200 0 2 P.cal.pr.eplane_pos>0.0 +TH1F pcal_prshwr_Eplane_neg 'SHMS PreShower- Energy Deposition; Energy Deposition (GeV); Number of Entries / 0.01 GeV' P.cal.pr.eplane_neg 200 0 2 P.cal.pr.eplane_neg>0.0 +TH1F pcal_prshwr_Eplane 'SHMS PreShower Total Energy Deposition; Total Energy Deposition (GeV); Number of Entries / 0.01 GeV' P.cal.pr.eplane 300 0 3 P.cal.pr.eplane>0.0 + +#--------------------------------------------- +# SHMS Shower GOOD Occupancy and Multiplicity +#--------------------------------------------- +TH1F pcal_shwr_good_occ 'SHMS Shower Good Occupancy; PMT Number; Number of Good ADC Hits' P.cal.fly.numGoodAdcHits 224 0.5 224.5 +TH1F pcal_shwr_good_mult 'SHMS Shower Good Multiplicity; PMT Number; Total Number of Good ADC Hits' P.cal.fly.totNumGoodAdcHits 224 0.5 224.5 + +#------------------------------------------------------------- +# SHMS Shower GOOD PULSE PEDESTALS/INTEGRALS/AMPLITUDES/TIMES +#------------------------------------------------------------- + +TH2F pcal_shwr_good_pped_vs_pmt 'SHMS Shower Good Pulse Pedestal vs. PMT Number; PMT Number; Good Pulse Pedestal / 1 ADC Unit' [I+1] P.cal.fly.goodAdcPed 224 0.5 224.5 700 300 1000 P.cal.fly.goodAdcPed>0.0 +TH2F pcal_shwr_good_pi_vs_pmt 'SHMS Shower Good Pulse Integral vs. PMT Number; PMT Number; Good Pulse Integral / 50 ADC Units' [I+1] P.cal.fly.goodAdcPulseInt 224 0.5 224.5 600 0 30000 P.cal.fly.goodAdcPulseInt>0.0 +TH2F pcal_shwr_good_pamp_vs_pmt 'SHMS Shower Good Pulse Amplitude vs. PMT Number; PMT Number; Good Pulse Amplitude / 20 ADC Units' [I+1] P.cal.fly.goodAdcPulseAmp 224 0.5 224.5 200 0 4000 P.cal.fly.goodAdcPulseAmp>0.0 +TH2F pcal_shwr_good_ptime_vs_pmt 'SHMS Shower Good Pulse Time vs. PMT Number; PMT Number; Good Pulse Time / 10 ADC Units' [I+1] P.cal.fly.goodAdcPulseTime 224 0.5 224.5 350 0 3500 P.cal.fly.goodAdcPulseTime>0.0 + +#-------------------------------------------------- +# SHMS SHOWER ENERGY DEPOSITION vs. PMT HISTOGRAMS +# (calib consts (GAIN) are in GeV/ADC units ) +#-------------------------------------------------- + +TH2F pcal_shwr_E_vs_pmt 'SHMS Shower Energy Deposition vs. PMT Number; PMT Number; Energy Deposited (0.01 GeV / ADC Units)' [I+1] P.cal.fly.e 224 0.5 224.5 300 0 3 P.cal.fly.e>0.0 + +#-------------------------------------------------- +# TOTAL ENERGY DEPOSITION IN THE SHMS SHOWER ARRAY +#-------------------------------------------------- + +TH1F pcal_shwr_Earray 'SHMS Shower Total Energy Deposition in Array; Total Energy Deposited (GeV); Number of Entries / 0.01 GeV' P.cal.fly.earray 600 0 6 P.cal.fly.earray>0.0 + +#------------------------------------------------------------------------------------- +# SHMS PRE-SHOWER AND SHOWER (CALORIMETER) TOTAL ENERGY DEPOSITION +# TOTAL ENERGY AND NORMALIZED ENERGY DEPOSITED IN CALORIMETER (SHOWER AND PRE-SHOWER) +#------------------------------------------------------------------------------------- + +TH1F pcal_etot 'SHMS Calorimeter Total Energy Deposition; Total Energy Deposition (GeV); Number of Entries / 0.01 GeV' P.cal.etot 500 0 5 P.cal.etot>0.0 +TH1F pcal_etot_norm 'SHMS Calorimeter Total Normalized Energy Deposition; Total Energy Deposited (GeV) / P0 (GeV); Number of Entries / 0.01' P.cal.etotnorm 500 0 5 P.cal.etotnorm>0.0 +TH1F pcal_etrack 'SHMS Calorimeter Total Track Energy; Track Energy Deposited (GeV); Number of Entries / 0.1 GeV' P.cal.etrack 100 0 10 P.cal.etrack>0.0 +TH1F pcal_etracknorm 'SHMS Calorimeter Normalized Track Energy; Trk. Energy Dep. (GeV) / Trk. P (GeV); Number of Entries / 0.1 ' P.cal.etracknorm 100 0 10 P.cal.etracknorm>0.0 +TH1F pcal_etracknorm_track 'SHMS Calorimeter Normalized Track Energy (Ntrack > 0); Trk. Energy Dep. (GeV) / Trk. P (GeV); Number of Entries / 0.1 ' P.cal.etracknorm 100 0 10 P.cal.etracknorm>0.0&&P.dc.ntrack>0 +TH1F pcal_enenorm_track_elec 'SHMS Cal energy/p (npeSum > .5&&abs(del)<8)' P.cal.etracknorm 300 0. 1.5 P.dc.ntrack>0&&P.ngcer.npeSum>.5&&P.hgcer.npeSum>.5&&P.gtr.dp>-8.&&P.gtr.dp<8. +TH1F pcal_enenorm_track_pion 'SHMS Cal energy/p (npeSum <.5&&abs(del)<8)' P.cal.etracknorm 300 0. 1.5 P.dc.ntrack>0&&P.ngcer.npeSum<.5&&P.hgcer.npeSum<.5&&P.gtr.dp>-8.&&P.gtr.dp<8. +TH2F pcal_ene_2dtrack 'SHMS Cal energy v energy track' P.cal.etrack P.cal.etot 1000 0. 5. 1000 0. 5. P.dc.ntrack>0 +TH2F pcal_delta_etrack 'SHMS Delta v Cal energy/p ' P.cal.etracknorm P.gtr.dp 60 0. 1.5 80 -15. 25. P.dc.ntrack>0 +TH2F pcal_ngnpe_etrack 'SHMS NG Cer Npe v Cal energy/p' P.cal.etracknorm P.ngcer.npeSum 300 0. 1.5 60 0. 15. P.dc.ntrack>0 +TH2F pcal_hgnpe_etrack 'SHMS HG Cer Npe v Cal energy/p' P.cal.etracknorm P.hgcer.npeSum 300 0. 1.5 60 0. 15. P.dc.ntrack>0 + +#------------------------------- +# SHMS PID AND ACCEPTANCE PLOTS +#------------------------------- + +TH2F hgc_vs_prshw 'SHMS HGC Total N.P.E. vs. PreSh Energy; Total PreSh Energy Deposition / 0.01 GeV; HGC Total N.P.E. / 0.5' P.cal.pr.eplane P.hgcer.npeSum 300 0 3 40 0 20 P.cal.pr.eplane>0.0&&P.hgcer.npeSum>0.0 +TH2F ngc_vs_prshw 'SHMS NGC Total N.P.E. vs. PreSh Energy; Total PreSh Energy Deposition / 0.01 GeV; NGC Total N.P.E. / 0.5' P.cal.pr.eplane P.ngcer.npeSum 300 0 3 40 0 20 P.cal.pr.eplane>0.0&&P.ngcer.npeSum>0.0 +TH2F pcal_shw_vs_prshw 'Shower vs. PreShower Energy Deposition; PreShower Energy / 0.1 GeV; Shower Energy / 0.1 GeV' P.cal.pr.eplane P.cal.fly.earray 50 0 5 350 0 35 P.cal.pr.eplane>0.0&&P.cal.fly.earray>0.0 +TH2F delta_vs_etracknorm 'SHMS Delta. vs. Normalized Track Energy; Calorimeter Normalized Track Energy; Momentum Acceptance (%)' P.cal.etracknorm P.gtr.dp 50 0 5 80 -15, 25 P.cal.etracknorm>0.0&&P.dc.ntrack>0 + +#--------------------------- +# CLUSTERING PLOTS +#--------------------------- + +TH1F pcal_xclusttrack 'SHMS Cal X pos' P.cal.xclusttrack 200 -100. 100. P.cal.nclusttrack>-1 +TH1F pcal_xdiff 'SHMS Cal X pos - X track' P.cal.xclusttrack-P.cal.xtrack 200 -20. 20. P.cal.nclusttrack>-1&&P.dc.ntrack>0 +TH2F pcal_xdiff_v_xtr 'SHMS Cal X pos - X track v Xtr' P.cal.xtrack P.cal.xclusttrack-P.cal.xtrack 200 -100. 100. 200 -20. 20. P.cal.nclusttrack>-1&&P.dc.ntrack>0 +TH1F pcal_xtrack 'SHMS Cal X pos of track' P.cal.xtrack 200 -100. 100. P.cal.nclusttrack>-1&&P.dc.ntrack>0 +TH1F pcal_xtrack1 'SHMS Cal X pos of track no matching clust' P.cal.xtrack 200 -100. 100. P.cal.nclusttrack==-1&&P.gtr.dp>-8.&&P.gtr.dp<8.&&P.dc.ntrack>0 +TH1F pcal_xtrack2 'SHMS Cal X pos of track no matching clust number of cluster=1' P.cal.xtrack 200 -100. 100. P.cal.nclusttrack==-1&&P.cal.nclust==0&&P.gtr.dp>-8.&&P.gtr.dp<8.&&P.dc.ntrack>0 + +#******************** +# Trigger Apparatus * +#******************** + +TH1F ptrig_pngc_sum_pped 'SHMS Noble Gas Sum FADC Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Units' T.shms.pNGCSUM_adcPed 2000 0 2000 +TH1F ptrig_pngc_sum_pint 'SHMS Noble Gas Sum FADC Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.shms.pNGCSUM_adcPulseInt 4000 0 40000 +TH1F ptrig_pngc_sum_pamp 'SHMS Noble Gas Sum FADC Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Units' T.shms.pNGCSUM_adcPulseAmp 4100 0 4100 +TH1F ptrig_pngc_sum_ptime 'SHMS Noble Gas Sum FADC Pulse Time; Pulse Time; Number of Entries / 10 ADC Units' T.shms.pNGCSUM_adcPulseTimeRaw 1000 0 10000 +TH1F ptrig_pngc_sum_tdc 'SHMS Noble Gas Sum TDC Time; TDC Time; Number of Entries / 10 TDC Units' T.shms.pNGCSUM_tdcTime 700 -3500 3500 + +TH1F ptrig_phgc_sum_pped 'SHMS Heavy Gas Sum FADC Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Units' T.shms.pHGCSUM_adcPed 2000 0 2000 +TH1F ptrig_phgc_sum_pint 'SHMS Heavy Gas Sum FADC Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.shms.pHGCSUM_adcPulseInt 4000 0 40000 +TH1F ptrig_phgc_sum_pamp 'SHMS Heavy Gas Sum FADC Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Units' T.shms.pHGCSUM_adcPulseAmp 4100 0 4100 +TH1F ptrig_phgc_sum_ptime 'SHMS Heavy Gas Sum FADC Pulse Time; Pulse Time; Number of Entries / 10 ADC Units' T.shms.pHGCSUM_adcPulseTimeRaw 1000 0 10000 +TH1F ptrig_phgc_sum_tdc 'SHMS Heavy Gas Sum TDC Time; TDC Time; Number of Entries / 10 TDC Units' T.shms.pHGCSUM_tdcTime 700 -3500 3500 + +TH1F ptrig_p1x_tdc_mult 'SHMS p1x TDC Multiplicity; Raw TDC Multiplicity; Counts / 10' T.shms.p1X_tdcMultiplicity 11 0 11 +TH1F ptrig_p1y_tdc_mult 'SHMS p1y TDC Multiplicity; Raw TDC Multiplicity; Counts / 10' T.shms.p1Y_tdcMultiplicity 11 0 11 +TH1F ptrig_p2x_tdc_mult 'SHMS p2x TDC Multiplicity; Raw TDC Multiplicity; Counts / 10' T.shms.p2X_tdcMultiplicity 11 0 11 +TH1F ptrig_p2y_tdc_mult 'SHMS p2y TDC Multiplicity; Raw TDC Multiplicity; Counts / 10' T.shms.p2Y_tdcMultiplicity 11 0 11 + +TH1F ptrig_p1T_tdc_mult 'SHMS p1x/p1y Coincidence TDC Multiplicity; Raw TDC Multiplicity; Counts / 10' T.shms.p1T_tdcMultiplicity 11 0 11 +TH1F ptrig_p2T_tdc_mult 'SHMS p2x/p2y Coincidence TDC Multiplicity; Raw TDC Multiplicity; Counts / 10' T.shms.p2T_tdcMultiplicity 11 0 11 + +TH1F ptrig_pT1_tdc_mult 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Multiplicity (Slot 20, Channel 15); Raw TDC Multiplicity; Counts / 10' T.shms.pT1_tdcMultiplicity 11 0 11 +TH1F ptrig_pT2_tdc_mult 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Multiplicity (Slot 19, Channel 31); Raw TDC Multiplicity; Counts / 10' T.shms.pT2_tdcMultiplicity 11 0 11 +TH1F ptrig_pT3_tdc_mult 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Multiplicity (Slot 19, Channel 38); Raw TDC Multiplicity; Counts / 10' T.shms.pT3_tdcMultiplicity 11 0 11 + +TH1F ptrig_p1x_tdc 'SHMS p1x TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p1X_tdcTime 350 0 3500 +TH1F ptrig_p1y_tdc 'SHMS p1y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p1Y_tdcTime 350 0 3500 +TH1F ptrig_p2x_tdc 'SHMS p2x TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p2X_tdcTime 350 0 3500 +TH1F ptrig_p2y_tdc 'SHMS p2y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p2Y_tdcTime 350 0 3500 + +TH1F ptrig_p1T_tdc 'SHMS p1x/p1y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p1T_tdcTime 350 0 3500 +TH1F ptrig_p2T_tdc 'SHMS p2x/p2y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p2T_tdcTime 350 0 3500 + +TH1F ptrig_pT1_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 20, Channel 15); Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.pT1_tdcTime 350 0 3500 +TH1F ptrig_pT2_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 19, Channel 31); Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.pT2_tdcTime 350 0 3500 +TH1F ptrig_pT3_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence TDC Time (Slot 19, Channel 38); Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.pT3_tdcTime 350 0 3500 + +TH1F ptrig_p1x_good_tdc 'SHMS p1x Good TDC Time; Good Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p1X_tdcTime 350 0 3500 T.shms.p1X_tdcMultiplicity==1 +TH1F ptrig_p1y_good_tdc 'SHMS p1y Good TDC Time; Good Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p1Y_tdcTime 350 0 3500 T.shms.p1Y_tdcMultiplicity==1 +TH1F ptrig_p2x_good_tdc 'SHMS p2x Good TDC Time; Good Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p2X_tdcTime 350 0 3500 T.shms.p2X_tdcMultiplicity==1 +TH1F ptrig_p2y_good_tdc 'SHMS p2y Good TDC Time; Good Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p2Y_tdcTime 350 0 3500 T.shms.p2Y_tdcMultiplicity==1 + +TH1F ptrig_p1T_good_tdc 'SHMS p1x/p1y Coincidence Good TDC Time; Good Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p1T_tdcTime 350 0 3500 T.shms.p1T_tdcMultiplicity==1 +TH1F ptrig_p2T_good_tdc 'SHMS p2x/p2y Coincidence Good TDC Time; Good Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.p2T_tdcTime 350 0 3500 T.shms.p2T_tdcMultiplicity==1 + +TH1F ptrig_pT1_good_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence Good TDC Time (Slot 20, Channel 15); Good Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.pT1_tdcTime 350 0 3500 T.shms.pT1_tdcMultiplicity==1 +TH1F ptrig_pT2_good_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence Good TDC Time (Slot 19, Channel 31); Good Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.pT2_tdcTime 350 0 3500 T.shms.pT2_tdcMultiplicity==1 +TH1F ptrig_pT3_good_tdc 'SHMS p1x/p1y/p2x/p2y Coincidence Good TDC Time (Slot 19, Channel 38); Good Raw TDC Time (TDC Units); Counts / 10 TDC Units' T.shms.pT3_tdcTime 350 0 3500 T.shms.pT3_tdcMultiplicity==1 + +TH2F ptrig_ch1xy_ch2x 'SHMS Hodo Trig; 1X1Y Trig (ns); 2X Trig (ns)' T.shms.p1T_tdcTime T.shms.p2X_tdcTime 200 100 300 200 100 300 T.shms.p2X_tdcMultiplicity==1&&T.shms.p1T_tdcMultiplicity==1 +TH2F ptrig_ch1x_ch2x 'SHMS Hodo Trig; 1X Trig (ns); 2X Trig (ns)' T.shms.p1X_tdcTime T.shms.p2X_tdcTime 200 100 300 200 100 300 T.shms.p2X_tdcMultiplicity==1&&T.shms.p1X_tdcMultiplicity==1 +TH2F ptrig_ch1y_ch2x 'SHMS Hodo Trig; 1Y Trig (ns); 2X Trig (ns)' T.shms.p1Y_tdcTime T.shms.p2X_tdcTime 200 100 300 200 100 300 T.shms.p2X_tdcMultiplicity==1&&T.shms.p1Y_tdcMultiplicity==1 +TH2F ptrig_ch1ych1x 'SHMS Hodo Trig; Trig 1X (ns); Trig 1Y (ns)' T.shms.p1X_tdcTime T.shms.p1Y_tdcTime 200 100 300 200 100 300 T.shms.p1Y_tdcMultiplicity==1&&T.shms.p1X_tdcMultiplicity==1 + +TH1F ptrig_pdc_ref1 'SHMS DC Reference Time Slot 6 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks' T.shms.pDCREF1_tdcTime 200 12000 14000 +TH1F ptrig_pdc_ref2 'SHMS DC Reference Time Slot 7 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks' T.shms.pDCREF2_tdcTime 200 12000 14000 +TH1F ptrig_pdc_ref3 'SHMS DC Reference Time Slot 8 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks' T.shms.pDCREF3_tdcTime 200 12000 14000 +TH1F ptrig_pdc_ref4 'SHMS DC Reference Time Slot 9 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks' T.shms.pDCREF4_tdcTime 200 12000 14000 +TH1F ptrig_pdc_ref5 'SHMS DC Reference Time Slot 10 Channel 79; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks' T.shms.pDCREF5_tdcTime 200 12000 14000 +TH1F ptrig_pdc_ref6 'SHMS DC Reference Time Slot 11 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks' T.shms.pDCREF6_tdcTime 200 12000 14000 +TH1F ptrig_pdc_ref7 'SHMS DC Reference Time Slot 12 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks' T.shms.pDCREF7_tdcTime 200 12000 14000 +TH1F ptrig_pdc_ref8 'SHMS DC Reference Time Slot 13 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks' T.shms.pDCREF8_tdcTime 200 12000 14000 +TH1F ptrig_pdc_ref9 'SHMS DC Reference Time Slot 14 Channel 15; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks' T.shms.pDCREF9_tdcTime 200 12000 14000 +TH1F ptrig_pdc_ref10 'SHMS DC Reference Time Slot 15 Channel 47; Raw TDC Time (TDC Clicks); Counts / 10 TDC Clicks' T.shms.pDCREF10_tdcTime 200 12000 14000 + +#------------- +# Fast Raster +#------------- + +# Assume FADC range is set to 1V and the integration is 25 channels +# Offset in the FADC is about 0.122V or 500 channels. + +formula FRXA_V T.shms.pFRXA_adcPulseIntRaw*(1./4096.)/25. +formula FRXB_V T.shms.pFRXB_adcPulseIntRaw*(1./4096.)/25. +formula FRYA_V T.shms.pFRYA_adcPulseIntRaw*(1./4096.)/25. +formula FRYB_V T.shms.pFRYB_adcPulseIntRaw*(1./4096.)/25. + +TH1F pFRXA 'SHMS FRXA; FRXA RAW ADC (chan); Counts' T.shms.pFRXA_adcPulseIntRaw 1000 0 100000 +TH1F pFRXA_V 'SHMS FRXA; FRXA RAW ADC (Volts); Counts' FRXA_V 1000 0 1.0 +TH1F pFRXB 'SHMS FRXB; FRXB RAW ADC (chan); Counts' T.shms.pFRXB_adcPulseIntRaw 1000 0 100000 +TH1F pFRXB_V 'SHMS FRXB; FRXB RAW ADC (Volts); Counts' FRXB_V 1000 0 1.0 +TH1F pFRYA 'SHMS FRYA; FRYA RAW ADC (chan); Counts' T.shms.pFRYA_adcPulseIntRaw 1000 0 100000 +TH1F pFRYA_V 'SHMS FRYA; FRYA RAW ADC (Volts); Counts' FRYA_V 1000 0 1.0 +TH1F pFRYB 'SHMS FRYB; FRYB RAW ADC (chan); Counts' T.shms.pFRYB_adcPulseIntRaw 1000 0 100000 +TH1F pFRYB_V 'SHMS FRYB; FRYB RAW ADC (Volts); Counts' FRYB_V 1000 0 1.0 +TH2F pFRA_XvsY 'HMSFRA_XvsY; FRXA RAW ADC (Volts); FRYA RAW ADC (Volts)' FRXA_V FRYA_V 1000 0 1.0 1000 0 1.0 +TH2F pFRB_XvsY 'HMSFRB_XvsY; FRXB RAW ADC (Volts); FRYB RAW ADC (Volts)' FRXB_V FRYB_V 1000 0 1.0 1000 0 1.0 + +#****************** +# EPICS VARIABLES * +#****************** + +begin epics + +IBC3H00CRCUR4 +hac_bcm_average +ibcm1 +ibcm2 +iunser +itov3out +itov4out + +end epics \ No newline at end of file diff --git a/DEF-files/SHMS/PRODUCTION/pstackana_singlearm_cuts.def b/DEF-files/SHMS/PRODUCTION/pstackana_singlearm_cuts.def new file mode 100644 index 00000000..de1a1358 --- /dev/null +++ b/DEF-files/SHMS/PRODUCTION/pstackana_singlearm_cuts.def @@ -0,0 +1,234 @@ +# Report file for SHMS stack + +Block: RawDecode + +Pedestal_event g.evtyp == 4 +scalar_event g.evtyp == 0 +HMS_event g.evtyp == 1 +SHMS_event g.evtyp == 1 +coin_event g.evtyp == 3 +misc_event g.evtyp >= 5 +hmscoin_event HMS_event || coin_event +shmscoin_event SHMS_event || coin_event +all_event HMS_event || SHMS_event || coin_event + +RawDecode_master 1 + +Block: Decode + +all_trigs HMS_event || SHMS_event || coin_event +shms_coin_trig SHMS_event || coin_event + +good_S1_time T.shms.p1T_tdcTime > 241 && T.shms.p1T_tdcTime < 243 +good_S2X_time T.shms.p2X_tdcTime > 180 && T.shms.p2X_tdcTime < 220 +good_S1_S2X_time good_S1_time && good_S2X_time + +Decode_master SHMS_event + +Block: CoarseTracking +CoarseTracking_master SHMS_event + +# Add cuts to stricter times and apply them to drift distances +time_cut1 P.dc.1u1.time > 0 && P.dc.1u1.time < 250 +time_cut2 P.dc.1u2.time > 0 && P.dc.1u2.time < 250 +time_cut3 P.dc.1x1.time > 0 && P.dc.1x1.time < 250 +time_cut4 P.dc.1x2.time > 0 && P.dc.1x2.time < 250 +time_cut5 P.dc.1v1.time > 0 && P.dc.1v1.time < 250 +time_cut6 P.dc.1v2.time > 0 && P.dc.1v2.time < 250 +time_cut7 P.dc.2v2.time > 0 && P.dc.2v2.time < 250 +time_cut8 P.dc.2v1.time > 0 && P.dc.2v1.time < 250 +time_cut9 P.dc.2x2.time > 0 && P.dc.2x2.time < 250 +time_cut10 P.dc.2x1.time > 0 && P.dc.2x1.time < 250 +time_cut11 P.dc.2u2.time > 0 && P.dc.2u2.time < 250 +time_cut12 P.dc.2u1.time > 0 && P.dc.2u1.time < 250 + +shmsDC1Planes_large (P.dc.1x1.nhit + P.dc.1u2.nhit + P.dc.1u1.nhit + P.dc.1v1.nhit + P.dc.1x2.nhit + P.dc.1v2.nhit) > 20 +shmsDC2Planes_large (P.dc.2x1.nhit + P.dc.2u2.nhit + P.dc.2u1.nhit + P.dc.2v1.nhit + P.dc.2x2.nhit + P.dc.2v2.nhit) > 20 + +shms_ch1_gt0 P.dc.Ch1.nhit > 0 +shms_ch2_gt0 P.dc.Ch2.nhit > 0 +shms_ch_gt0 P.dc.Ch2.nhit > 0 && P.dc.Ch1.nhit > 0 +shms_ch_gt4 P.dc.Ch2.nhit > 3 && P.dc.Ch1.nhit > 3 +shms_ch2_gt0_noch1 P.dc.Ch2.nhit > 0 && P.dc.Ch1.nhit == 0 +shms_ch1_gt0_noch2 P.dc.Ch1.nhit > 0 && P.dc.Ch2.nhit == 0 +shms_noch1_noch2 P.dc.Ch1.nhit == 0 && P.dc.Ch2.nhit == 0 +shms_ch_gt0_track shms_ch_gt0 && P.dc.ntrack > 0 +shms_ch_gt4_track shms_ch_gt4 && P.dc.ntrack > 0 + +shms_ch1_gt0_gtime P.dc.Ch1.nhit > 0 && good_S1_S2X_time +shms_ch2_gt0_gtime P.dc.Ch2.nhit > 0 && good_S1_S2X_time +shms_ch_gt0_gtime P.dc.Ch2.nhit > 0 && P.dc.Ch1.nhit > 0 && good_S1_S2X_time +shms_ch_gt4_gtime P.dc.Ch2.nhit > 3 && P.dc.Ch1.nhit > 3 && good_S1_S2X_time +shms_ch2_gt0_noch1_gtime P.dc.Ch2.nhit > 0 && P.dc.Ch1.nhit == 0 && good_S1_S2X_time +shms_ch1_gt0_noch2_gtime P.dc.Ch1.nhit > 0 && P.dc.Ch2.nhit == 0 && good_S1_S2X_time +shms_noch1_noch2_gtime P.dc.Ch1.nhit == 0 && P.dc.Ch2.nhit == 0 && good_S1_S2X_time +shms_ch_gt0_track_gtime shms_ch_gt0 && P.dc.ntrack > 0 && good_S1_S2X_time +shms_ch_gt4_track_gtime shms_ch_gt4 && P.dc.ntrack > 0 && good_S1_S2X_time + +shmsDC1_1hit_x1 P.dc.1x1.nhit == 1 +shmsDC1_1hit_u1 P.dc.1u1.nhit == 1 +shmsDC1_1hit_u2 P.dc.1u2.nhit == 1 +shmsDC1_1hit_v1 P.dc.1v1.nhit == 1 +shmsDC1_1hit_v2 P.dc.1v2.nhit == 1 +shmsDC1_1hit_x2 P.dc.1x2.nhit == 1 + +shmsDC2_1hit_x1 P.dc.2x1.nhit == 1 +shmsDC2_1hit_u1 P.dc.2u1.nhit == 1 +shmsDC2_1hit_u2 P.dc.2u2.nhit == 1 +shmsDC2_1hit_v1 P.dc.2v1.nhit == 1 +shmsDC2_1hit_v2 P.dc.2v2.nhit == 1 +shmsDC2_1hit_x2 P.dc.2x2.nhit == 1 + +p1hit1 P.dc.1x1.nhit >= 1 +p1hit2 P.dc.1u1.nhit >= 1 +p1hit3 P.dc.1u2.nhit >= 1 +p1hit4 P.dc.1v1.nhit >= 1 +p1hit5 P.dc.1v2.nhit >= 1 +p1hit6 P.dc.1x2.nhit >= 1 + +p2hit1 P.dc.2x1.nhit >= 1 +p2hit2 P.dc.2u1.nhit >= 1 +p2hit3 P.dc.2u2.nhit >= 1 +p2hit4 P.dc.2v1.nhit >= 1 +p2hit5 P.dc.2v2.nhit >= 1 +p2hit6 P.dc.2x2.nhit >= 1 + +shmsDC1Planes6hits shmsDC1_1hit_x1 && shmsDC1_1hit_u1 && shmsDC1_1hit_u2 && shmsDC1_1hit_x2 && shmsDC1_1hit_v1 && shmsDC1_1hit_v2 +shmsDC2Planes6hits shmsDC2_1hit_x1 && shmsDC2_1hit_u1 && shmsDC2_1hit_u2 && shmsDC2_1hit_x2 && shmsDC2_1hit_v1 && shmsDC2_1hit_v2 + +shmsDC1_5hits_x1 shmsDC1_1hit_u1 && shmsDC1_1hit_u2 && shmsDC1_1hit_x2 && shmsDC1_1hit_v1 && shmsDC1_1hit_v2 +shmsDC1_6hits_x1 p1hit1 && shmsDC1_1hit_u1 && shmsDC1_1hit_u2 && shmsDC1_1hit_x2 && shmsDC1_1hit_v1 && shmsDC1_1hit_v2 +shmsDC1_5hits_u1 shmsDC1_1hit_x1 && shmsDC1_1hit_u2 && shmsDC1_1hit_x2 && shmsDC1_1hit_v1 && shmsDC1_1hit_v2 +shmsDC1_6hits_u1 p1hit2 && shmsDC1_1hit_x1 && shmsDC1_1hit_u2 && shmsDC1_1hit_x2 && shmsDC1_1hit_v1 && shmsDC1_1hit_v2 +shmsDC1_5hits_u2 shmsDC1_1hit_x1 && shmsDC1_1hit_u1 && shmsDC1_1hit_x2 && shmsDC1_1hit_v1 && shmsDC1_1hit_v2 +shmsDC1_6hits_u2 p1hit3 && shmsDC1_1hit_x1 && shmsDC1_1hit_u1 && shmsDC1_1hit_x2 && shmsDC1_1hit_v1 && shmsDC1_1hit_v2 +shmsDC1_5hits_v1 shmsDC1_1hit_x1 && shmsDC1_1hit_u1 && shmsDC1_1hit_x2 && shmsDC1_1hit_u2 && shmsDC1_1hit_v2 +shmsDC1_6hits_v1 p1hit4 && shmsDC1_1hit_x1 && shmsDC1_1hit_u1 && shmsDC1_1hit_x2 && shmsDC1_1hit_u2 && shmsDC1_1hit_v2 +shmsDC1_5hits_v2 shmsDC1_1hit_x1 && shmsDC1_1hit_u1 && shmsDC1_1hit_x2 && shmsDC1_1hit_u2 && shmsDC1_1hit_v1 +shmsDC1_6hits_v2 p1hit5 && shmsDC1_1hit_x1 && shmsDC1_1hit_u1 && shmsDC1_1hit_x2 && shmsDC1_1hit_u2 && shmsDC1_1hit_v1 +shmsDC1_5hits_x2 shmsDC1_1hit_x1 && shmsDC1_1hit_u1 && shmsDC1_1hit_v1 && shmsDC1_1hit_u2 && shmsDC1_1hit_v2 +shmsDC1_6hits_x2 p1hit6 && shmsDC1_1hit_x1 && shmsDC1_1hit_u1 && shmsDC1_1hit_v1 && shmsDC1_1hit_u2 && shmsDC1_1hit_v2 + +shmsDC2_5hits_x1 shmsDC2_1hit_u1 && shmsDC2_1hit_u2 && shmsDC2_1hit_x2 && shmsDC2_1hit_v1 && shmsDC2_1hit_v2 +shmsDC2_6hits_x1 p2hit1 && shmsDC2_1hit_u1 && shmsDC2_1hit_u2 && shmsDC2_1hit_x2 && shmsDC2_1hit_v1 && shmsDC2_1hit_v2 +shmsDC2_5hits_u1 shmsDC2_1hit_x1 && shmsDC2_1hit_u2 && shmsDC2_1hit_x2 && shmsDC2_1hit_v1 && shmsDC2_1hit_v2 +shmsDC2_6hits_u1 p2hit2 && shmsDC2_1hit_x1 && shmsDC2_1hit_u2 && shmsDC2_1hit_x2 && shmsDC2_1hit_v1 && shmsDC2_1hit_v2 +shmsDC2_5hits_u2 shmsDC2_1hit_x1 && shmsDC2_1hit_u1 && shmsDC2_1hit_x2 && shmsDC2_1hit_v1 && shmsDC2_1hit_v2 +shmsDC2_6hits_u2 p2hit3 && shmsDC2_1hit_x1 && shmsDC2_1hit_u1 && shmsDC2_1hit_x2 && shmsDC2_1hit_v1 && shmsDC2_1hit_v2 +shmsDC2_5hits_v1 shmsDC2_1hit_x1 && shmsDC2_1hit_u1 && shmsDC2_1hit_x2 && shmsDC2_1hit_u2 && shmsDC2_1hit_v2 +shmsDC2_6hits_v1 p2hit4 && shmsDC2_1hit_x1 && shmsDC2_1hit_u1 && shmsDC2_1hit_x2 && shmsDC2_1hit_u2 && shmsDC2_1hit_v2 +shmsDC2_5hits_v2 shmsDC2_1hit_x1 && shmsDC2_1hit_u1 && shmsDC2_1hit_x2 && shmsDC2_1hit_u2 && shmsDC2_1hit_v1 +shmsDC2_6hits_v2 p2hit5 && shmsDC2_1hit_x1 && shmsDC2_1hit_u1 && shmsDC2_1hit_x2 && shmsDC2_1hit_u2 && shmsDC2_1hit_v1 +shmsDC2_5hits_x2 shmsDC2_1hit_x1 && shmsDC2_1hit_u1 && shmsDC2_1hit_v1 && shmsDC2_1hit_u2 && shmsDC2_1hit_v2 +shmsDC2_6hits_x2 p2hit6 && shmsDC2_1hit_x1 && shmsDC2_1hit_u1 && shmsDC2_1hit_v1 && shmsDC2_1hit_u2 && shmsDC2_1hit_v2 + +shms1HitsLt P.dc.Ch1.nhit <= P.dc.Ch1.maxhits && g.evtyp == 1 +shms2HitsLt P.dc.Ch2.nhit <= P.dc.Ch2.maxhits && g.evtyp == 1 +shmsHitsLt P.dc.Ch1.nhit <= P.dc.Ch1.maxhits && P.dc.Ch2.nhit <= P.dc.Ch2.maxhits && g.evtyp == 1 + +shmsDC1PlanesGT (p1hit1 + p1hit2 + p1hit3 + p1hit4 + p1hit5 + p1hit6 ) >= 5 +shmsDC2PlanesGT (p2hit1 + p2hit2 + p2hit3 + p2hit4 + p2hit5 + p2hit6 ) >= 5 +shmsPlanesGT shmsDC1PlanesGT && shmsDC2PlanesGT +shmsHitsPlanes (P.dc.Ch1.nhit <= 6) && (P.dc.Ch2.nhit <= 6) && shmsPlanesGT + +pSpacePoints P.dc.Ch1.spacepoints >= 1 && P.dc.Ch2.spacepoints >= 1 +pSpacePointsStub P.dc.stubtest == 1 && P.dc.Ch1.spacepoints >= 1 && P.dc.Ch2.spacepoints >= 1 +pFoundTrack P.dc.ntrack > 0 +pStubLT P.dc.stubtest == 1 +f1PSpacePoints shms1HitsLt && shmsDC1PlanesGT && P.dc.Ch1.spacepoints == 0 && g.evtyp == 1 +f2PSpacePoints shms2HitsLt && shmsDC2PlanesGT && P.dc.Ch2.spacepoints == 0 && g.evtyp == 1 + +pTest1 shmsHitsPlanes && (!pSpacePoints) +pTest2 pSpacePoints && (!pStubLT) + +Block: CoarseReconstruct +CoarseReconstruct_master SHMS_event + +Block: Tracking +Tracking_master SHMS_event + +Block: Reconstruct +Reconstruct_master SHMS_event + +cer_ng_elec P.ngcer.npeSum > 0.5 +cer_ng_pi P.ngcer.npeSum <= 0.5 +cer_hg_elec P.hgcer.npeSum > 0.5 +cer_hg_pi P.hgcer.npeSum <= 0.5 +cer_pi_both cer_ng_pi && cer_hg_pi +cer_elec_both cer_ng_elec && cer_hg_elec +cal_elec P.cal.etracknorm > 0.6 && P.cal.etracknorm < 1.6 +cal_pi P.cal.etracknorm <= 0.6 && P.cal.etracknorm > 0. +elec_all cer_ng_elec && cer_hg_elec && cal_elec +pi_all cer_ng_pi && cer_hg_pi && cal_pi + +shmsScinGood P.hod.goodscinhit == 1 +shmsScinShould shmsScinGood +shmsScinShoulde shmsScinGood && P.cal.etotnorm > 0.6 && P.cal.etotnorm < 1.6 && P.hgcer.npeSum > 0.5 +shmsScinShouldh shmsScinGood && P.cal.etotnorm <= 0.6 && P.cal.etotnorm > 0. && P.hgcer.npeSum < 0.5 +shmsScinDid shmsScinShould && P.dc.ntrack > 0 +shmsScinDide shmsScinShoulde && P.dc.ntrack > 0 +shmsScinDidh shmsScinShouldh && P.dc.ntrack > 0 + +goodHDC1x1 P.dc.1x1.nhit > 0 && P.dc.1x1.nhit < 3 +goodHDC1u2 P.dc.1u2.nhit > 0 && P.dc.1u2.nhit < 3 +goodHDC1u1 P.dc.1u1.nhit > 0 && P.dc.1u1.nhit < 3 +goodHDC1v1 P.dc.1v1.nhit > 0 && P.dc.1v1.nhit < 3 +goodHDC1v2 P.dc.1v2.nhit > 0 && P.dc.1v2.nhit < 3 +goodHDC1x2 P.dc.1x2.nhit > 0 && P.dc.1x2.nhit < 3 + +goodHDC2x1 P.dc.2x1.nhit > 0 && P.dc.2x1.nhit < 3 +goodHDC2u2 P.dc.2u2.nhit > 0 && P.dc.2u2.nhit < 3 +goodHDC2u1 P.dc.2u1.nhit > 0 && P.dc.2u1.nhit < 3 +goodHDC2v1 P.dc.2v1.nhit > 0 && P.dc.2v1.nhit < 3 +goodHDC2v2 P.dc.2v2.nhit > 0 && P.dc.2v2.nhit < 3 +goodHDC2x2 P.dc.2x2.nhit > 0 && P.dc.2x2.nhit < 3 + +goodHDC1 goodHDC1x1 && goodHDC1u2 && goodHDC1u1 && goodHDC1v1 && goodHDC1v2 && goodHDC1x2 +goodHDC2 goodHDC2x1 && goodHDC2u2 && goodHDC2u1 && goodHDC2v1 && goodHDC2v2 && goodHDC2x2 +bothGood goodHDC1 && goodHDC2 + +realhdc1x1 goodHDC1x1 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) +realhdc1u2 goodHDC1u2 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) +realhdc1u1 goodHDC1u1 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) +realhdc1v1 goodHDC1v1 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) +realhdc1v2 goodHDC1v2 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) +realhdc1x2 goodHDC1x2 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) + +realhdc2x1 goodHDC2x1 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) +realhdc2u2 goodHDC2u2 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) +realhdc2u1 goodHDC2u1 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) +realhdc2v1 goodHDC2v1 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) +realhdc2v2 goodHDC2v2 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) +realhdc2x2 goodHDC2x2 && ((P.dc.Ch1.spacepoints + P.dc.Ch2.spacepoints) > 0) + +pFound1Track P.dc.ntrack == 1 +pFound2Track P.dc.ntrack == 2 +pFound3Track P.dc.ntrack == 3 +pFound4Track P.dc.ntrack == 4 + +pCleanTrack P.gtr.index > -1 +1pCleanTrack P.gtr.index == 0 +2pCleanTrack P.gtr.index == 1 +3pCleanTrack P.gtr.index == 2 +4pCleanTrack P.gtr.index == 3 + +pCleanTrack_cer_elec (P.gtr.index > -1) && cer_elec_both +p1hit1_cer_elec p1hit1 && cer_elec_both +pCleanTrack_cal_elec (P.gtr.index > -1) && cal_elec +p1hit1_cal_elec p1hit1 && cal_elec + +anyhs1x P.hod.1x.nhits > 0 +anyhs1y P.hod.1y.nhits > 0 +anyhs2x P.hod.2x.nhits > 0 +anyhs2y P.hod.2y.nhits > 0 + +goodps1x P.hod.1x.nhits > 0 && P.hod.1x.nhits < 3 +goodps1y P.hod.1y.nhits > 0 && P.hod.1y.nhits < 3 +goodps1 goodps1x && goodps1y +goodps2x P.hod.2x.nhits > 0 && P.hod.2x.nhits < 3 +goodps2y P.hod.2y.nhits > 0 && P.hod.2y.nhits < 3 +goodps2 goodps2x && goodps2y +goodps1s2 goodps1 && goodps2 + +Block: Physics +Physics_master SHMS_event diff --git a/SCRIPTS/SHMS/PRODUCTION/replay_singlearm_shms.C b/SCRIPTS/SHMS/PRODUCTION/replay_singlearm_shms.C new file mode 100644 index 00000000..b8b87aa5 --- /dev/null +++ b/SCRIPTS/SHMS/PRODUCTION/replay_singlearm_shms.C @@ -0,0 +1,143 @@ +void replay_singlearm_shms (Int_t RunNumber = 0, Int_t MaxEvent = 0) { + + // Get RunNumber and MaxEvent if not provided. + if(RunNumber == 0) { + cout << "Enter a Run Number (-1 to exit): "; + cin >> RunNumber; + if( RunNumber<=0 ) return; + } + if(MaxEvent == 0) { + cout << "\nNumber of Events to analyze: "; + cin >> MaxEvent; + if(MaxEvent == 0) { + cerr << "...Invalid entry\n"; + exit; + } + } + + // Create file name patterns. + const char* RunFileNamePattern = "raw/shms_all_%05d.dat"; + const char* ROOTFileNamePattern = "ROOTfiles/shms_replay_singlearm_%d_%d.root"; + + // Load global parameters + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/STD/standard.database"); + // Load varibles from files to global list. + gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber); + // g_ctp_parm_filename and g_decode_map_filename should now be defined. + gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber); + gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename")); + gHcParms->Load(gHcParms->GetString("g_ctp_calib_filename")); + // Load params for SHMS trigger configuration + gHcParms->Load("PARAM/TRIG/tshms.param"); + + // Load the Hall C detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/SHMS/DETEC/STACK/shms_stack.map"); + + // Add trigger apparatus + THaApparatus* TRG = new THcTrigApp("T", "TRG"); + gHaApps->Add(TRG); + // Add trigger detector to trigger apparatus + THcTrigDet* shms = new THcTrigDet("shms", "SHMS Trigger Information"); + TRG->AddDetector(shms); + + // Set up the equipment to be analyzed. + THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS"); + gHaApps->Add(SHMS); + // Add Noble Gas Cherenkov to SHMS apparatus + THcCherenkov* ngcer = new THcCherenkov("ngcer", "Noble Gas Cherenkov"); + SHMS->AddDetector(ngcer); + // Add drift chambers to SHMS apparatus + THcDC* dc = new THcDC("dc", "Drift Chambers"); + SHMS->AddDetector(dc); + // Add hodoscope to SHMS apparatus + THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope"); + SHMS->AddDetector(hod); + // Add Heavy Gas Cherenkov to SHMS apparatus + THcCherenkov* hgcer = new THcCherenkov("hgcer", "Heavy Gas Cherenkov"); + SHMS->AddDetector(hgcer); + // Add Heavy Gas Cherenkov to SHMS apparatus + THcAerogel* aero = new THcAerogel("aero", "Aerogel"); + SHMS->AddDetector(aero); + // Add calorimeter to SHMS apparatus + THcShower* cal = new THcShower("cal", "Calorimeter"); + SHMS->AddDetector(cal); + + THaApparatus* BEAM = new THaIdealBeam("IB","Ideal Beamline"); + gHaApps->Add( BEAM ); + + // Include golden track information + THaGoldenTrack* gtr = new THaGoldenTrack("P.gtr", "SHMS Golden Track", "P"); + gHaPhysics->Add(gtr); + // + THcPrimaryKine* pkine = new THcPrimaryKine("P.kin","SHMS single arm kinematics","P","IB"); + gHaPhysics->Add(pkine); + // // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + // Add handler for EPICS events + THaEpicsEvtHandler *hcepics = new THaEpicsEvtHandler("epics", "HC EPICS event type 180"); + gHaEvtHandlers->Add(hcepics); + // Add handler for scaler events + THcScalerEvtHandler *pscaler = new THcScalerEvtHandler("P","Hall C scaler event type 1"); + pscaler->AddEventType(1); + pscaler->SetUseFirstEvent(kTRUE); + gHaEvtHandlers->Add (pscaler); + + // Set up the analyzer - we use the standard one, + // but this could be an experiment-specific one as well. + // The Analyzer controls the reading of the data, executes + // tests/cuts, loops over Acpparatus's and PhysicsModules, + // and executes the output routines. + THcAnalyzer* analyzer = new THcAnalyzer; + + + + // A simple event class to be output to the resulting tree. + // Creating your own descendant of THaEvent is one way of + // defining and controlling the output. + THaEvent* event = new THaEvent; + + // Define the run(s) that we want to analyze. + // We just set up one, but this could be many. + char RunFileName[100]; + sprintf(RunFileName, RunFileNamePattern, RunNumber); + THaRun* run = new THaRun(RunFileName); + // Set to read in Hall C run database parameters + run->SetRunParamClass("THcRunParameters"); + + // Eventually need to learn to skip over, or properly analyze + // the pedestal events + run->SetEventRange(1, MaxEvent); // Physics Event number, does not + // include scaler or control events. + run->SetNscan(1); + run->SetDataRequired(0x7); + run->Print(); + + // Define the analysis parameters + TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber, MaxEvent); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + // Set EPICS event type + analyzer->SetEpicsEvtType(180); + // Define crate map + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + // Define output ROOT file + analyzer->SetOutFile(ROOTFileName.Data()); + // Define DEF-file + analyzer->SetOdefFile("DEF-files/SHMS/PRODUCTION/pstackana_singlearm.def"); + // Define cuts file + analyzer->SetCutFile("DEF-files/SHMS/PRODUCTION/pstackana_singlearm_cuts.def"); // optional + // File to record accounting information for cuts + analyzer->SetSummaryFile(Form("REPORT_OUTPUT/SHMS/PRODUCTION/summary_singlearm_%d_%d.report", RunNumber, MaxEvent)); // optional + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template + analyzer->PrintReport("TEMPLATES/SHMS/PRODUCTION/pstackana_production.template", + Form("REPORT_OUTPUT/SHMS/PRODUCTION/replay_shms_singlearm_%d_%d.report", RunNumber, MaxEvent)); // optional + +} -- GitLab