Run #: {gen_run_number}

1 MhZ Pulses : {P.1Mhz.scaler}
Run Length   : {P.1Mhz.scalerTime:%.3f} sec

***********
* Beamline
***********
  
BCM1 Current: {P.BCM1.scalerCurrent:%.3f} uA		  
BCM2 Current: {P.BCM2.scalerCurrent:%.3f} uA		 
Unser Current: {P.Unser.scalerCurrent:%.3f} uA		  

With no cuts on BCM{gBCM_Current_threshold_index+1}.
BCM1 Counts: {P.BCM1.scaler}		Total Charge: {P.BCM1.scalerCharge:%.3f} uC
BCM2 Counts: {P.BCM2.scaler} 		Total Charge: {P.BCM2.scalerCharge:%.3f} uC	
Unser Counts: {P.Unser.scaler} 		Total Charge: {P.Unser.scalerCharge:%.3f} uC

Cut on BCM{gBCM_Current_threshold_index+1} current of {gBCM_Current_threshold} uA. Beam over threshold for {P.1Mhz.scalerTimeCut:%.3f}s, or {((P.1Mhz.scalerTimeCut/P.1Mhz.scalerTime)*100.):%.3f}% of total run time.
BCM1 Counts: {P.BCM1.scalerCut} 	Total Charge: {P.BCM1.scalerChargeCut:%.3f} uC
BCM2 Counts: {P.BCM2.scalerCut} 	Total Charge: {P.BCM2.scalerChargeCut:%.3f} uC
Unser Counts: {P.Unser.scalerCut} 	Total Charge: {P.Unser.scalerChargeCut:%.3f} uC

********************
* DAQ Configuration
********************

Ps1_factor = {gpconfig_ti_ps_factors[0]}
Ps2_factor = {gpconfig_ti_ps_factors[1]}
Ps3_factor = {gpconfig_ti_ps_factors[2]}
Ps4_factor = {gpconfig_ti_ps_factors[3]}
Ps5_factor = {gpconfig_ti_ps_factors[4]}
Ps6_factor = {gpconfig_ti_ps_factors[5]}

***************	
* 3/4 Triggers 
***************

SHMS 3/4 Triggers           : {P.pTRIG1.scaler}
Estimated SHMS 3/4 Triggers : {P.pTRIG1.scalerRate*(P.1Mhz.scaler/1000000.):%.0f}
SHMS 3/4 Trigger Rate       : {P.pTRIG1.scalerRate/1000.:%.3f} kHz
Accepted SHMS Triggers      : {TRIG1.npassed}
SHMS Event Types            : {SHMS_Pretrig.npassed}

SHMS Computer Live Time : {(TRIG1.npassed / P.pTRIG1.scaler)*100.0:%3.4f} %
SHMS Computer Dead Time : {100.0 - (TRIG1.npassed / P.pTRIG1.scaler)*100.0:%3.4f} %


***** Hodoscope Efficiency ********

Plane 1: {phodo_plane_AND_eff[0]}
Plane 2: {phodo_plane_AND_eff[1]}
Plane 3: {phodo_plane_AND_eff[2]}
Plane 4: {phodo_plane_AND_eff[3]}

S1XY : {phodo_s1XY_eff}
S2XY : {phodo_s2XY_eff}

STOF: {phodo_stof_eff}

3_of_4 EFF : {phodo_3_of_4_eff}
4_of_4 EFF : {phodo_4_of_4_eff}

***********************************


**DRIFT CHAMBER** 
good_S1_time         Counts: {good_S1_time.npassed}     / shms_trigs : {good_S1_time.npassed / shms_trigs.npassed}       
good_S2X_time        Counts: {good_S2X_time.npassed}    / shms_trigs : {good_S2X_time.npassed / shms_trigs.npassed}    
good_S1_S2X_time     Counts: {good_S1_S2X_time.npassed} / shms_trigs : {good_S1_S2X_time.npassed / shms_trigs.npassed}

Chamber 1 hits > 0                        Counts: {shms_ch1_gt0.npassed} / shms_trigs : {shms_ch1_gt0.npassed / shms_trigs.npassed}         
Chamber 2 hits > 0                   	  Counts: {shms_ch2_gt0.npassed} / shms_trigs : { shms_ch2_gt0.npassed / shms_trigs.npassed}        
Chamber 2 hits > 0 & Ch 1 hits = 0    	  Counts: {shms_ch2_gt0_noch1.npassed} / shms_trigs : { shms_ch2_gt0_noch1.npassed / shms_trigs.npassed}  
Chamber 1 hits > 0 & Ch 2 hits = 0    	  Counts: {shms_ch1_gt0_noch2.npassed} / shms_trigs : {shms_ch1_gt0_noch2.npassed / shms_trigs.npassed}  
Chamber 1 hits = 0 & Ch 2 hits = 0    	  Counts: {shms_noch1_noch2.npassed} / shms_trigs : {shms_noch1_noch2.npassed / shms_trigs.npassed}  
Chamber 1 > 0 & Ch 2 hits > 0             Counts: {shms_ch_gt0.npassed} / shms_trigs : { shms_ch_gt0.npassed / shms_trigs.npassed}        
Ch 1 hits > 0 & Ch 2 hits > 0 & track     Counts: {shms_ch_gt0_track.npassed} / shms_trigs : { shms_ch_gt0_track.npassed / shms_trigs.npassed}
Chamber 1 > 3 & Ch 2 hits > 3             Counts: {shms_ch_gt4.npassed} / shms_trigs : { shms_ch_gt4.npassed / shms_trigs.npassed}        
Ch 1 hits > 3 & Ch 2 hits > 3 & track     Counts: {shms_ch_gt4_track.npassed} / shms_trigs : { shms_ch_gt4_track.npassed / shms_trigs.npassed}

Add cut on good_S1_S2X_time 

Chamber 1 hits > 0                        Counts: {shms_ch1_gt0_gtime.npassed} / shms_trigs : {shms_ch1_gt0_gtime.npassed / shms_trigs.npassed}         
Chamber 2 hits > 0                   	  Counts: {shms_ch2_gt0_gtime.npassed} / shms_trigs : { shms_ch2_gt0_gtime.npassed / shms_trigs.npassed}        
Chamber 2 hits > 0 & Ch 1 hits = 0    	  Counts: {shms_ch2_gt0_noch1_gtime.npassed} / shms_trigs : { shms_ch2_gt0_noch1_gtime.npassed / shms_trigs.npassed}  
Chamber 1 hits > 0 & Ch 2 hits = 0    	  Counts: {shms_ch1_gt0_noch2_gtime.npassed} / shms_trigs : {shms_ch1_gt0_noch2_gtime.npassed / shms_trigs.npassed}  
Chamber 1 hits = 0 & Ch 2 hits = 0    	  Counts: {shms_noch1_noch2_gtime.npassed} / shms_trigs : {shms_noch1_noch2_gtime.npassed / shms_trigs.npassed}  
Chamber 1 > 0 & Ch 2 hits > 0             Counts: {shms_ch_gt0_gtime.npassed} / shms_trigs : { shms_ch_gt0_gtime.npassed / shms_trigs.npassed}        
Ch 1 hits > 0 & Ch 2 hits > 0 & track     Counts: {shms_ch_gt0_track_gtime.npassed} / shms_trigs : { shms_ch_gt0_track_gtime.npassed / shms_trigs.npassed}
Chamber 1 > 3 & Ch 2 hits > 3             Counts: {shms_ch_gt4_gtime.npassed} / shms_trigs : { shms_ch_gt4_gtime.npassed / shms_trigs.npassed}        
Ch 1 hits > 3 & Ch 2 hits > 3 & track     Counts: {shms_ch_gt4_track_gtime.npassed} / shms_trigs : { shms_ch_gt4_track_gtime.npassed / shms_trigs.npassed}

shmsDC1Planes_large     Counts: {shmsDC1Planes_large.npassed} / shms_trigs : {shmsDC1Planes_large.npassed / shms_trigs.npassed}
shmsDC2Planes_large     Counts: {shmsDC2Planes_large.npassed} / shms_trigs : {shmsDC2Planes_large.npassed / shms_trigs.npassed}  

shmsDC1Planes6     Counts: {shmsDC1Planes6hits.npassed} / shms_trigs : {shmsDC1Planes6hits.npassed / shms_trigs.npassed}
shmsDC2Planes6     Counts: {shmsDC2Planes6hits.npassed} / shms_trigs : {shmsDC2Planes6hits.npassed / shms_trigs.npassed}  

shmsDC1x1Planes5     Counts: {shmsDC1_5hits_x1.npassed} eff : {shmsDC1_6hits_x1.npassed / shmsDC1_5hits_x1.npassed}
shmsDC1u1Planes5     Counts: {shmsDC1_5hits_u1.npassed} eff : {shmsDC1_6hits_u1.npassed / shmsDC1_5hits_u1.npassed}
shmsDC1u2Planes5     Counts: {shmsDC1_5hits_u2.npassed} eff : {shmsDC1_6hits_u2.npassed / shmsDC1_5hits_u2.npassed}
shmsDC1v1Planes5     Counts: {shmsDC1_5hits_v1.npassed} eff : {shmsDC1_6hits_v1.npassed / shmsDC1_5hits_v1.npassed}
shmsDC1v2Planes5     Counts: {shmsDC1_5hits_v2.npassed} eff : {shmsDC1_6hits_v2.npassed / shmsDC1_5hits_v2.npassed}
shmsDC1x2Planes5     Counts: {shmsDC1_5hits_x2.npassed} eff : {shmsDC1_6hits_x2.npassed / shmsDC1_5hits_x2.npassed}

shmsDC2x1Planes5     Counts: {shmsDC2_5hits_x1.npassed} eff : {shmsDC2_6hits_x1.npassed / shmsDC2_5hits_x1.npassed}
shmsDC2u1Planes5     Counts: {shmsDC2_5hits_u1.npassed} eff : {shmsDC2_6hits_u1.npassed / shmsDC2_5hits_u1.npassed}
shmsDC2u2Planes5     Counts: {shmsDC2_5hits_u2.npassed} eff : {shmsDC2_6hits_u2.npassed / shmsDC2_5hits_u2.npassed}
shmsDC2v1Planes5     Counts: {shmsDC2_5hits_v1.npassed} eff : {shmsDC2_6hits_v1.npassed / shmsDC2_5hits_v1.npassed}
shmsDC2v2Planes5     Counts: {shmsDC2_5hits_v2.npassed} eff : {shmsDC2_6hits_v2.npassed / shmsDC2_5hits_v2.npassed}
shmsDC2x2Planes5     Counts: {shmsDC2_5hits_x2.npassed} eff : {shmsDC2_6hits_x2.npassed / shmsDC2_5hits_x2.npassed}

I'm pretty sure that these are the "raw" number of counts. "Raw" means one or more hits per dc plane.
shmsDC1_1hit_x1: {shmsDC1_1hit_x1.npassed} 		;eff:
shmsDC1_1hit_u1: {shmsDC1_1hit_u1.npassed}		;eff:
shmsDC1_1hit_u2: {shmsDC1_1hit_u2.npassed}		;eff:
shmsDC1_1hit_v1: {shmsDC1_1hit_v1.npassed}		;eff:
shmsDC1_1hit_v2: {shmsDC1_1hit_v2.npassed}		;eff:
shmsDC1_1hit_x2: {shmsDC1_1hit_x2.npassed}		;eff:

shmsDC2_1hit_x1: {shmsDC2_1hit_x1.npassed}		;eff:
shmsDC2_1hit_u1: {shmsDC2_1hit_u1.npassed}		;eff:
shmsDC2_1hit_u2: {shmsDC2_1hit_u2.npassed}		;eff:
shmsDC2_1hit_v1: {shmsDC2_1hit_v1.npassed}		;eff:
shmsDC2_1hit_v2: {shmsDC2_1hit_v2.npassed}		;eff:
shmsDC2_1hit_x2: {shmsDC2_1hit_x2.npassed}		;eff:

"Good" means one or two hits per dc plane.
goodHDC1x1:	     {goodHDC1x1.npassed}	eff : {goodHDC1x1.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodHDC1u2:	     {goodHDC1u2.npassed}	eff : {goodHDC1u2.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodHDC1u1:          {goodHDC1u1.npassed}	eff : {goodHDC1u1.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodHDC1v1:	     {goodHDC1v1.npassed}	eff : {goodHDC1v1.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodHDC1v2:	     {goodHDC1v2.npassed}	eff : {goodHDC1v2.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodHDC1x2:	     {goodHDC1x2.npassed}	eff : {goodHDC1x2.npassed/(P.pTREF3.scaler+.0001):%5.3f}

goodHDC2x1:	     {goodHDC2x1.npassed}	eff : {goodHDC2x1.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodHDC2u2:	     {goodHDC2u2.npassed}	eff : {goodHDC2u2.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodHDC2u1:	     {goodHDC2u1.npassed}	eff : {goodHDC2u1.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodHDC2v1:	     {goodHDC2v1.npassed}	eff : {goodHDC2v1.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodHDC2v2:	     {goodHDC2v2.npassed}	eff : {goodHDC2v2.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodHDC2x2:	     {goodHDC2x2.npassed}	eff : {goodHDC2x2.npassed/(P.pTREF3.scaler+.0001):%5.3f}

goodHDC1:	     {goodHDC1.npassed}	eff : {goodHDC1.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodHDC2:	     {goodHDC2.npassed}	eff : {goodHDC2.npassed/(P.pTREF3.scaler+.0001):%5.3f}
bothgood:	     {bothGood.npassed}	eff : {bothGood.npassed/(P.pTREF3.scaler+.0001):%5.3f}

realhdc1x1:	     {realhdc1x1.npassed}
realhdc1u2:	     {realhdc1u2.npassed}
realhdc1u1:          {realhdc1u1.npassed}
realhdc1v1:	     {realhdc1v1.npassed}
realhdc1v2:	     {realhdc1v2.npassed}
realhdc1x2:	     {realhdc1x2.npassed}

realhdc2x1:	     {realhdc2x1.npassed}
realhdc2u2:	     {realhdc2u2.npassed}
realhdc2u1:	     {realhdc2u1.npassed}
realhdc2v1:	     {realhdc2v1.npassed}
realhdc2v2:	     {realhdc2v2.npassed}
realhdc2x2:	     {realhdc2x2.npassed}
    	   	       
**HODOSCOPE**

"Any" means one or more hits per scint plane.
anyhs1x : {anyhs1x.npassed}		 eff: {anyhs1x.npassed/(P.pTREF3.scaler+.0001):%5.3f}	BAD = ??
anyhs1y : {anyhs1y.npassed}		 eff: {anyhs1y.npassed/(P.pTREF3.scaler+.0001):%5.3f}
anyhs2x : {anyhs2x.npassed}		 eff: {anyhs2x.npassed/(P.pTREF3.scaler+.0001):%5.3f}
anyhs2y : {anyhs2y.npassed}		 eff: {anyhs2y.npassed/(P.pTREF3.scaler+.0001):%5.3f} 

"Good" means one or two hits per scint plane.
goodps1x : {goodps1x.npassed}		 eff: {goodps1x.npassed/(P.pTREF3.scaler+.0001):%5.3f}	BAD = ??
goodps1y : {goodps1y.npassed}		 eff: {goodps1y.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodps1  : {goodps1.npassed}		 eff: {goodps1.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodps2x : {goodps2x.npassed}		 eff: {goodps2x.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodps2y : {goodps2y.npassed}		 eff: {goodps2y.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodps2  : {goodps2.npassed}		 eff: {goodps2.npassed/(P.pTREF3.scaler+.0001):%5.3f}
goodps1s2: {goodps1s2.npassed}		 eff: {goodps1s2.npassed/(P.pTREF3.scaler+.0001):%5.3f}

**CHERENKOVS AND CAL**
cer_ng_elec   :	  {cer_ng_elec.npassed}
cer_ng_pi     :	  {cer_ng_pi.npassed}
cer_hg_elec   :	  {cer_hg_elec.npassed}
cer_hg_pi     :	  {cer_hg_pi.npassed}
cer_pi_both   :	  {cer_pi_both.npassed}
cer_elec_both :   {cer_elec_both.npassed}
cal_elec      :   {cal_elec.npassed}
cal_pi        :   {cal_pi.npassed}
elec_all      :	  {elec_all.npassed}
pi_all        :   {pi_all.npassed} 

pCleanTrack_cer_elec : {pCleanTrack_cer_elec.npassed} 
p1hit1_cer_elec	     : {p1hit1_cer_elec.npassed}
pCleanTrack_cal_elec : {pCleanTrack_cal_elec.npassed} 
p1hit1_cal_elec	     : {p1hit1_cal_elec.npassed}

*NGC EFF*
Mirror 1 Efficiency 
Mirror 2 Efficiency
Mirror 3 Efficiency
Mirror 4 Efficiency
Overall Efficiency

*HGC EFF*
Mirror 1 Efficiency 
Mirror 2 Efficiency
Mirror 3 Efficiency
Mirror 4 Efficiency
Overall Efficiency

*CAL EFF*
Block		eff		Hits

*HODO EFF*
Scint		Pos eff		Neg eff		OR eff		AND eff		 Hits
-----------------------------------------------------------------------------------------------------------
P1X1+
P1X2+
P1X3+
P1X4+
P1X5+
P1X6+
P1X7+
P1X8+
P1X9+
P1X10+
P1X11+
P1X12+
P1X13+

P1X1-
P1X2-
P1X3-
P1X4-
P1X5-
P1X6-
P1X7-
P1X8-
P1X9-
P1X10-
P1X11-
P1X12-
P1X13-

P1Y1+
P1Y2+
P1Y3+
P1Y4+
P1Y5+
P1Y6+
P1Y7+
P1Y8+
P1Y9+
P1Y10+
P1Y11+
P1Y12+
P1Y13+

P1Y1-
P1Y2-
P1Y3-
P1Y4-
P1Y5-
P1Y6-
P1Y7-
P1Y8-
P1Y9-
P1Y10-
P1Y11-
P1Y12-
P1Y13-

P2X1+
P2X2+
P2X3+
P2X4+
P2X5+
P2X6+
P2X7+
P2X8+
P2X9+
P2X10+
P2X11+
P2X12+
P2X13+
P2X14+

P2X1-
P2X2-
P2X3-
P2X4-
P2X5-
P2X6-
P2X7-
P2X8-
P2X9-
P2X10-
P2X11-
P2X12-
P2X13-
P2X14-

P2Y1+
P2Y2+
P2Y3+
P2Y4+
P2Y5+
P2Y6+
P2Y7+
P2Y8+
P2Y9+
P2Y10+
P2Y11+
P2Y12+
P2Y13+
P2Y14+
P2Y15+
P2Y16+
P2Y17+
P2Y18+
P2Y19+
P2Y20+
P2Y21+

P2Y1-
P2Y2-
P2Y3-
P2Y4-
P2Y5-
P2Y6-
P2Y7-
P2Y8-
P2Y9-
P2Y10-
P2Y11-
P2Y12-
P2Y13-
P2Y14-
P2Y15-
P2Y16-
P2Y17-
P2Y18-
P2Y19-
P2Y20-
P2Y21-

**TRACKING**
pFoundTrack  :{pFoundTrack.npassed}	 eff: {pFoundTrack.npassed/(P.pTREF3.scaler+.0001):%5.3f} BAD = ??
pFound1Track :{pFound1Track.npassed}	 eff: {pFound1Track.npassed/(P.pTREF3.scaler+.0001):%5.3f} 
pFound2Track :{pFound2Track.npassed}	 eff: {pFound2Track.npassed/(P.pTREF3.scaler+.0001):%5.3f} 
pFound3Track :{pFound3Track.npassed}	 eff: {pFound3Track.npassed/(P.pTREF3.scaler+.0001):%5.3f} 
pFound4Track :{pFound4Track.npassed}	 eff: {pFound4Track.npassed/(P.pTREF3.scaler+.0001):%5.3f} 

pCleanTrack :{pCleanTrack.npassed}	 eff: {pCleanTrack.npassed/(P.pTREF3.scaler+.0001):%5.3f}	 BAD = ??
1pCleanTrack:{1pCleanTrack.npassed}	 eff: {1pCleanTrack.npassed/(P.pTREF3.scaler+.0001):%5.3f} 
2pCleanTrack:{2pCleanTrack.npassed}	 eff: {2pCleanTrack.npassed/(P.pTREF3.scaler+.0001):%5.3f}
3pCleanTrack:{3pCleanTrack.npassed}	 eff: {3pCleanTrack.npassed/(P.pTREF3.scaler+.0001):%5.3f}
4pCleanTrack:{4pCleanTrack.npassed}	 eff: {4pCleanTrack.npassed/(P.pTREF3.scaler+.0001):%5.3f}

******************************
* SHMS TRACKING EFFICIENCIES *
******************************
ptrig                          : {SHMS_event.npassed}
phitslt = passed hits/cham     : {shmsHitsLt.npassed}
phitsplanes = +planes >= 5/6   : {shmsHitsPlanes.npassed}
phitsplanessps = + sps         : {pSpacePoints.npassed}
phitsplanesspsstubs +stub      : {pSpacePointsStub.npassed}
psfoundtrack                   : {pFoundTrack.npassed}
pscleantrack                   : {pCleanTrack.npassed}
pstublt = passed stub tests    : {pStubLT.npassed}
p1hitslt                       : {shms1HitsLt.npassed}
p2hitslt                       : {shms2HitsLt.npassed}
p1planesgt                     : {shmsDC1PlanesGT.npassed}
p2planesgt                     : {shmsDC2PlanesGT.npassed}
pplanesgt = gt 5 planes/cham   : {shmsPlanesGT.npassed}
f1pspacepoints                 : {f1PSpacePoints.npassed}
f2pspacepoints                 : {f2PSpacePoints.npassed}
ptest1=p hits/planes, f sp     : {pTest1.npassed}
ptest2=p sp, f stubs           : {pTest2.npassed}
pdid                           : {shmsScinDid.npassed}
pdide                          : {shmsScinDide.npassed}
pdidh                          : {shmsScinDidh.npassed}
pscinshould                    : {shmsScinShould.npassed}
pscinshoulde                   : {shmsScinShoulde.npassed}
pscinshouldh                   : {shmsScinShouldh.npassed}
SING FID TRACK EFFIC           : {shmsScinDid.npassed / (shmsScinShould.npassed+0.0001):%8.4f} +- {(sqrt(shmsScinShould.npassed-shmsScinDid.npassed) / (shmsScinShould.npassed+.0001)):%8.4f}
E SING FID TRACK EFFIC         : {shmsScinDide.npassed / (shmsScinShoulde.npassed+0.0001):%8.4f} +- {(sqrt(shmsScinShoulde.npassed-shmsScinDide.npassed) / (shmsScinShoulde.npassed+.0001)):%8.4f}
HADRON SING FID TRACK EFFIC    : {shmsScinDidh.npassed / (shmsScinShouldh.npassed+0.0001):%8.4f} +- {(sqrt(shmsScinShouldh.npassed-shmsScinDidh.npassed) / (shmsScinShouldh.npassed+.0001)):%8.4f}