*****************begin: hms_data_structures.cmn************************* * * include file hms_data_structures.cmn * * Author: D. F. Geesaman 1 September 1993 * * $Log: hms_data_structures.cmn,v $ * Revision 1.12.20.5 2008/07/29 16:53:39 puckett * increased max ntracks from 20 to 100, and added variable to remember the left-right combo of track hits * * Revision 1.12.20.4 2008/04/23 18:02:41 cdaq * *** empty log message *** * * Revision 1.12.20.3 2008/04/07 20:22:28 cdaq * re-enabled BAD_DRIFT to be non-zero * * Revision 1.12.20.2 2008/03/01 17:04:35 cdaq * updated for data using the fastbus crate * * Revision 1.12.20.1 2007/08/22 19:09:31 frw * added FPP * * Revision 1.13 2006/06/22 frw * added FPP definitions * * Revision 1.12 2003/09/05 20:39:18 jones * Merge in online03 changes (mkj) * * Revision 1.11 2003/04/01 13:55:08 jones * Add variables hntracks_max_fp and h_remove_sppt_if_one_y_plane to * hms_tracking.cmn * * Revision 1.10.2.2 2003/07/15 19:04:03 cdaq * add hsinplane * * Revision 1.10.2.1 2003/04/10 12:36:56 cdaq * comments added * * Revision 1.10 2003/01/02 18:34:51 jones * change HNTRACKS_MAX from 5 to 20 * * Revision 1.9 2002/12/20 21:52:34 jones * Modified by Hamlet for new HMS aerogel * * * Revision 1.9 2002/09/26 * (Hamlet) Add structures for HMS Aerogel * * Revision 1.8 1999/02/23 19:09:29 csa * Change some physics vars * * Revision 1.7 1999/01/21 21:40:31 saw * Extra shower counter tube modifications * * Revision 1.6 1998/12/17 22:02:41 saw * Support extra set of tubes on HMS shower counter * * Revision 1.5 1996/09/04 15:49:31 saw * (SAW) Double of all ' 's in comments * * Revision 1.4 1996/01/24 16:18:59 saw * (JRA) Cosmetic change * * Revision 1.3 1996/01/17 16:00:02 cdaq * (JRA) ADD HCER_RAW_ADC and HSCIN_FPTIME * * Revision 1.2 1995/08/11 16:28:46 cdaq * (CC) Add structure for # of photoelectrons in Cerenkov * * Revision 1.1 1995/05/22 18:41:15 cdaq * Initial revision * * * CTPTYPE=parm * * HTHETA_LAB HMS LAB ANGLE THETA (RADIANS) * HPHI_LAB HMS LAB ANGLE PHI * HPCENTRAL HMS CENTRAL MOMENUTM (GEV) * HBFIELD HMS B FIELD INCLUDING SIGN * REAL*4 HTHETA_LAB ! HMS LAB ANGLE THETA (RADIANS) REAL*4 HPHI_LAB ! HMS LAB ANGLE PHI REAL*4 HPCENTRAL ! HMS CENTRAL MOMENUTM (GEV) REAL*4 HBFIELD ! HMS B FIELD INCLUDING SIGN REAL*4 HPARTMASS ! EXPECTED MASS OF DETECTED PARTICLE IN HMS COMMON/HMS_SPECTROMETER/ & HTHETA_LAB, & HPHI_LAB, & HPCENTRAL, & HBFIELD, & HPARTMASS * * CTPTYPE=event * * HMS DECODED DATA * * FILLED BY G_decode_event_by_banks * HMS DRIFT CHAMBER HITS * EACH CHAMBER HIT (TDC VALUE) HAS A * PLANE NUMBER * WIRE NUMBER * TDC VALUE * * THE TOTAL NUMBER OF HITS IS GIVEN IN HDC_RAW_TOT_HITS * INTEGER*4 HMAX_DC_HITS ! MAXIUM NUMBER OF DRIFT CHAMBER HITS INTEGER*4 HMAX_NUM_DC_PLANES ! MAX NUMBER OF HMS DRIFT CHAMBER PLANES INTEGER*4 HMAX_NUM_CHAMBERS ! NUMBER OF HMS DRIFT CHAMBERS PARAMETER(HMAX_DC_HITS=3600) PARAMETER(HMAX_NUM_DC_PLANES=12) PARAMETER(HMAX_NUM_CHAMBERS=2) INTEGER*4 HDC_RAW_PLANE_NUM INTEGER*4 HDC_RAW_WIRE_NUM INTEGER*4 HDC_RAW_TDC INTEGER*4 HDC_RAW_TOT_HITS COMMON/HMS_RAW_DC/ 1 HDC_RAW_PLANE_NUM(HMAX_DC_HITS), 2 HDC_RAW_WIRE_NUM(HMAX_DC_HITS), 3 HDC_RAW_TDC(HMAX_DC_HITS), 4 HDC_RAW_TOT_HITS * * HMS DECODED DC DATA * * FILLED BY H_TRANS_DC TRANSLATION ROUTINE * HMS DRIFT CHAMBER HITS * EACH CHAMBER HIT (TDC VALUE) HAS A * PLANE NUMBER * WIRE NUMBER * TDC VALUE * DRIFT TIME * DRIFT DISTANCE * GENERALIZED COORDINATE OF HIT WIRE CENTER * GENERALIZED COORDINATE OF HIT PERPENDICULAR TO WIRE DIRECTION * * THE TOTAL NUMBER OF HITS IN EACH PLANE IS GIVEN IN HDC_HITS_PER_PLANE(I) * THE TOTAL NUMBER OF HITS IS GIVEN IN HDC_TOT_HITS * INTEGER*4 HDC_PLANE_NUM ! copied from HMS_RAW_DC INTEGER*4 HDC_WIRE_NUM ! copied from HMS_RAW_DC INTEGER*4 HDC_TDC ! copied from HMS_RAW_DC INTEGER*4 HDC_TOT_HITS REAL*4 HDC_DRIFT_TIME REAL*4 HDC_DRIFT_DIS REAL*4 HDC_WIRE_CENTER REAL*4 HDC_WIRE_COORD COMMON/HMS_DECODED_DC/ 1 HDC_DRIFT_TIME(HMAX_DC_HITS), 2 HDC_DRIFT_DIS(HMAX_DC_HITS), 3 HDC_WIRE_CENTER(HMAX_DC_HITS), 4 HDC_WIRE_COORD(HMAX_DC_HITS), 5 HDC_PLANE_NUM(HMAX_DC_HITS), 6 HDC_WIRE_NUM(HMAX_DC_HITS), 7 HDC_TDC(HMAX_DC_HITS), 9 HDC_TOT_HITS * * HMS RAW SCINTILLATOR HITS * FILLED BY g_decode_evebt_by_banks * EACH SCINTILLATOR HIT IS SPECIFIED BY A * SCINTILLATOR PLANE NUMBER * SCINTILLATOR COUNTER NUMBER * SCINTILLATOR ADC AT POSITIVE GENERALIZED COORDINATE END * SCINTILLATOR ADC AT NEGATIVE GENERALIZED COORDINATE END * SCINTILLATOR TDC AT POSITIVE GENERALIZED COORDINATE END * SCINTILLATOR TDC AT NEGATIVE GENERALIZED COORDINATE END * THE TOTAL NUMBER OF HITS IS GIVEN BY HSCIN_ALL_TOT_HITS INTEGER*4 HMAX_ALL_SCIN_HITS ! MAXIMUM TOTAL NUMBER OF SCIN HITS PARAMETER (HMAX_ALL_SCIN_HITS=53) ! Number of elements + 1 INTEGER*4 HNUM_ALL_SCIN_PLANES ! TOTAL NUMBER OF SCIN PLANES PARAMETER (HNUM_ALL_SCIN_PLANES=4) INTEGER*4 HSCIN_ALL_PLANE_NUM INTEGER*4 HSCIN_ALL_COUNTER_NUM INTEGER*4 HSCIN_ALL_ADC_POS INTEGER*4 HSCIN_ALL_ADC_NEG INTEGER*4 HSCIN_ALL_TDC_POS INTEGER*4 HSCIN_ALL_TDC_NEG INTEGER*4 HSCIN_ALL_TOT_HITS * COMMON/HMS_RAW_SCIN/ & HSCIN_ALL_PLANE_NUM(HMAX_ALL_SCIN_HITS), & HSCIN_ALL_COUNTER_NUM(HMAX_ALL_SCIN_HITS), & HSCIN_ALL_ADC_POS(HMAX_ALL_SCIN_HITS), & HSCIN_ALL_ADC_NEG(HMAX_ALL_SCIN_HITS), & HSCIN_ALL_TDC_POS(HMAX_ALL_SCIN_HITS), & HSCIN_ALL_TDC_NEG(HMAX_ALL_SCIN_HITS), & HSCIN_ALL_TOT_HITS * * HMS REAL SCINTILLATOR HITS (Hits with no TDC data stripped out) * FILLED BY H_strip_scin (which is called by h_trans_scin) * EACH SCINTILLATOR HIT IS SPECIFIED BY A * SCINTILLATOR PLANE NUMBER * SCINTILLATOR COUNTER NUMBER * SCINTILLATOR ADC AT POSITIVE GENERALIZED COORDINATE END * SCINTILLATOR ADC AT NEGATIVE GENERALIZED COORDINATE END * SCINTILLATOR TDC AT POSITIVE GENERALIZED COORDINATE END * SCINTILLATOR TDC AT NEGATIVE GENERALIZED COORDINATE END * THE TOTAL NUMBER OF HITS IS GIVEN BY HSCIN_TOT_HITS INTEGER*4 HMAX_SCIN_HITS ! MAXIMUM TOTAL NUMBER OF SCIN HITS PARAMETER (HMAX_SCIN_HITS=53) ! Number of elements + 1 INTEGER*4 HNUM_SCIN_PLANES ! TOTAL NUMBER OF SCIN PLANES PARAMETER (HNUM_SCIN_PLANES=4) INTEGER*4 HNUM_SCIN_ELEMENTS PARAMETER (HNUM_SCIN_ELEMENTS=16) INTEGER*4 HSCIN_PLANE_NUM INTEGER*4 HSCIN_COUNTER_NUM REAL*4 HSCIN_ADC_POS REAL*4 HSCIN_ADC_NEG INTEGER*4 HSCIN_TDC_POS INTEGER*4 HSCIN_TDC_NEG INTEGER*4 HSCIN_TOT_HITS INTEGER*4 HSCIN_SING_COUNTER ! DJM''s registered hit counter * COMMON/HMS_REAL_SCIN/ & HSCIN_PLANE_NUM(HMAX_SCIN_HITS), & HSCIN_COUNTER_NUM(HMAX_SCIN_HITS), & HSCIN_ADC_POS(HMAX_SCIN_HITS), & HSCIN_ADC_NEG(HMAX_SCIN_HITS), & HSCIN_TDC_POS(HMAX_SCIN_HITS), & HSCIN_TDC_NEG(HMAX_SCIN_HITS), & HSCIN_TOT_HITS, & HSCIN_SING_COUNTER(HNUM_SCIN_PLANES) * * * DECODED SCIN HITS * FILLED BY H_TRANS_SCIN * THIS USES SCINTILLATOR INFORMATION ONLY TO CALCUATE * HSCIN_APPROX_HIT_COORD GENERALIZED COORDINATE ALONG HIT * SCINTILLATOR DETERMINED FROM TDC INFO. * HSCIN_COR_ADC CORRECTED PULSE HEIGHT AT HIT * HSCIN_COR_TIME CORRECTED TIME AT HIT * THE TOTAL NUMBER OF HITS IN EACH PLANE IS GIVEN BY HSCIN_HITS_PER_PLANE * THE HSTART_TIME IS DEFINED AS THE TIME IF THE TRACK HAD GONE THROUGH * THE CENTER OF S1X. IT IS USED BY H_TRANS_DC FOR THE DRIFT TIME * CALCULATION. * HTWO_GOOD_TIMES IS A LOGICAL VARIABLE WHICH IS TRUE IF BOTH ENDS * OF THE SCINTILLATOR ARE HIT AND FALSE IF ONLY ONE END IS HIT. * HGOOD_START_TIME IS TRUE IF A START TIME WAS FOUND * REAL*4 HSCIN_ZPOS(HMAX_SCIN_HITS) REAL*4 HSCIN_CENTER_COORD(HMAX_SCIN_HITS) REAL*4 HSCIN_DEC_HIT_COORD(HMAX_SCIN_HITS) REAL*4 HSCIN_WIDTH(HMAX_SCIN_HITS) REAL*4 HSCIN_SLOP(HMAX_SCIN_HITS) REAL*4 HSCIN_COR_ADC(HMAX_SCIN_HITS) REAL*4 HSCIN_COR_TIME(HMAX_SCIN_HITS) REAL*4 HSTART_TIME INTEGER*4 HSTART_HITNUM INTEGER*4 HSTART_HITSIDE INTEGER*4 HSCIN_HITS_PER_PLANE(HNUM_SCIN_PLANES) LOGICAL*4 HTWO_GOOD_TIMES(HMAX_SCIN_HITS) LOGICAL*4 HGOOD_START_TIME integer*4 hgood_start_time_hitnum(hmax_scin_hits) real*4 hS1x_crude_track_coord(3) real*4 hS1y_crude_track_coord(3) real*4 hS1XY_crude_fptime logical htwo_good_starttime_hits real*4 hS1_crude_xtrack real*4 hS1_crude_ytrack real*4 hS1_crude_ztrack(2) COMMON/HMS_DECODED_SCIN/ & HSCIN_ZPOS, & HSCIN_CENTER_COORD, & HSCIN_WIDTH, & HSCIN_SLOP, & HSCIN_DEC_HIT_COORD, & HSCIN_COR_ADC, & HSCIN_COR_TIME, & HSTART_TIME, & HSCIN_HITS_PER_PLANE, & HSTART_HITNUM, & HSTART_HITSIDE, & HTWO_GOOD_TIMES, & HGOOD_START_TIME, & hgood_start_time_hitnum, & hS1x_crude_track_coord, & hS1y_crude_track_coord, & hS1XY_crude_fptime, & hS1_crude_xtrack, & hS1_crude_ytrack, & hS1_crude_ztrack, & htwo_good_starttime_hits * * * HMS CALORIMETER HITS * * ALLOW FOR NO SPARCIFICATION OF SHOWER COUNTER ELEMENTS * * EACH COUNTER HAS A * COLUMN NUMBER * ROW NUMBER * ADC VALUE AT Positive End (This end if only one end used) * ADC VALUE AT Negative End * * THE TOTAL NUMBER OF SHOWER HITS IS HCAL_TOT_HITS * INTEGER*4 HMAX_CAL_BLOCKS ! TOTAL NUMBER OF SHOWER BLOCKS PARAMETER (HMAX_CAL_BLOCKS=52) INTEGER*4 HMAX_CAL_ROWS !Number of calorimeter rows PARAMETER (HMAX_CAL_ROWS=13) INTEGER*4 HMAX_CAL_COLUMNS !Number of calorimeter columns PARAMETER (HMAX_CAL_COLUMNS=4) INTEGER*4 HCAL_TOT_HITS INTEGER*4 HCAL_POS_HITS INTEGER*4 HCAL_NEG_HITS INTEGER*4 HCAL_COLUMN(HMAX_CAL_BLOCKS) INTEGER*4 HCAL_ROW(HMAX_CAL_BLOCKS) INTEGER*4 HCAL_ADC_POS(HMAX_CAL_BLOCKS) INTEGER*4 HCAL_ADC_NEG(HMAX_CAL_BLOCKS) INTEGER*4 HCAL_ADC(HMAX_CAL_BLOCKS) equivalence (hcal_adc, hcal_adc_pos) ! For old code REAL*4 HCAL_REALADC_POS(HMAX_CAL_BLOCKS) REAL*4 HCAL_REALADC_NEG(HMAX_CAL_BLOCKS) REAL*4 HCAL_REALADC(HMAX_CAL_BLOCKS) equivalence (hcal_realadc, hcal_realadc_pos) COMMON/HMS_RAW_CAL/ & HCAL_COLUMN, & HCAL_ROW, & HCAL_ADC_POS, & HCAL_ADC_NEG, & HCAL_REALADC_POS, & HCAL_REALADC_NEG, & HCAL_TOT_HITS, & HCAL_POS_HITS, & HCAL_NEG_HITS * * DECODED CALORIMETER QUANTITIES * FILLED BY H_TRANS_CAL USING ONLY THE CALORIMETER INFORMATION * * X COORDINATE OF BLOCK CENTER * Z COORDINATE OF BLOCK CENTER * ENERGY DEPOSITED IN THE BLOCK * ENERGY DEPOSITED IN COLUMN #1 * #2 * #3 * #4 * TOTAL ENERGY IN THE CALORIMETER INTEGER*4 HNHITS_CAL !NUMBER OF CALORIMETER HITS ABOVE THRESHOLD REAL*4 HBLOCK_XC !X COORDINATE OF BLOCK CENTER REAL*4 HBLOCK_ZC !Z COORDINATE OF BLOCK CENTER REAL*4 HBLOCK_DE !ENERGY DEPOSITION IN THE BLOCKS REAL*4 HCAL_E1 !ENERGY DEPOSITION IN COLUMN #1 REAL*4 HCAL_E2 ! #2 REAL*4 HCAL_E3 ! #3 REAL*4 HCAL_E4 ! #4 REAL*4 HCAL_ET !TOTAL ENERGY IN THE CALORIMETER REAL*4 HCAL_E1_POS REAL*4 HCAL_E1_NEG REAL*4 HCAL_E2_POS REAL*4 HCAL_E2_NEG REAL*4 HBLOCK_DE_POS REAL*4 HBLOCK_DE_NEG COMMON/HMS_DECODED_CAL/ & HBLOCK_XC(HMAX_CAL_BLOCKS), & HBLOCK_ZC(HMAX_CAL_BLOCKS), & HBLOCK_DE(HMAX_CAL_BLOCKS), & HCAL_E1, & HCAL_E2, & HCAL_E3, & HCAL_E4, & HCAL_ET, & HCAL_E1_POS, & HCAL_E1_NEG, & HCAL_E2_POS, & HCAL_E2_NEG, & HBLOCK_DE_POS(HMAX_CAL_BLOCKS), & HBLOCK_DE_NEG(HMAX_CAL_BLOCKS), & HNHITS_CAL * * HMS CERENKOV HITS * FILLED BY G_decode_event_by_banks * * THERE ARE TWO CERENKOV PHOTOTUBES. EACH HIT HAS * TUBE NUMBER * ADC VALUE * THE TOTAL NUMBER OF PHOTOTUBE HITS IS HCER_TOT_HITS * HOWEVER TO MAKE THE DECODERS SYMMETRICAL TO A SCINT WE MUST ADD * A DUMMY PLANE NUMBER. INTEGER*4 HMAX_CER_HITS PARAMETER(HMAX_CER_HITS=2) INTEGER*4 HCER_TOT_HITS INTEGER*4 HCER_TUBE_NUM INTEGER*4 HCER_RAW_ADC INTEGER*4 HCER_PLANE COMMON/HMS_RAW_CER/ & HCER_TUBE_NUM(HMAX_CER_HITS), & HCER_RAW_ADC(HMAX_CER_HITS), & HCER_PLANE(HMAX_CER_HITS), & HCER_TOT_HITS * * DECODED CERENKOV QUANTITIES * FILLED BY H_TRANS_CER * INTEGER*4 HCER_NUM_HITS ! NUMBER OF CERENKOV HITS ABOVE THRESHOLD REAL*4 HCER_NPE ! ADC CONVERTED TO NUMBER OF PHOTOELECTRONS REAL*4 HCER_NPE_SUM ! SUM OVER TUBES OF NPE''S REAL*4 HCER_ADC ! PED SUBTRACTED ADC FOR EACH *TUBE* COMMON/HCER_DECODED_CER/ & HCER_NUM_HITS, & HCER_NPE(HMAX_CER_HITS), & HCER_NPE_SUM, & HCER_ADC(HMAX_CER_HITS) * *.......................................................................... * (Last revison 01 Dec'02; Hamlet) * * HMS AEROGEL HITS * FILLED BY G_decode_event_by_banks * * THERE ARE 16 AEROGEL PHOTOTUBES. We will pair tubes on the left and * right side so that are 8 "counters". * POS pmt's on the positive side of Y axis (as for Hodoscope) * * TUBE Row * ADC Left VALUE * ADC Right VALUE * THE TOTAL NUMBER OF PHOTOTUBE HITS IS HAERO_TOT_HITS * HOWEVER TO MAKE THE DECODERS SYMMETRICAL TO A SCINT WE MUST ADD * A DUMMY PLANE NUMBER. INTEGER*4 HMAX_AERO_HITS PARAMETER(HMAX_AERO_HITS=8) INTEGER*4 HNUM_AERO_BLOCKS PARAMETER(HNUM_AERO_BLOCKS=8) INTEGER*4 HAERO_TOT_HITS INTEGER*4 HAERO_PLANE INTEGER*4 HAERO_PAIR_NUM INTEGER*4 HAERO_ADC_POS INTEGER*4 HAERO_ADC_NEG INTEGER*4 HAERO_TDC_POS INTEGER*4 HAERO_TDC_NEG COMMON/HMS_RAW_AERO/ & HAERO_PLANE(HMAX_AERO_HITS), & HAERO_PAIR_NUM(HMAX_AERO_HITS), & HAERO_ADC_POS(HMAX_AERO_HITS), & HAERO_ADC_NEG(HMAX_AERO_HITS), & HAERO_TDC_POS(HMAX_AERO_HITS), & HAERO_TDC_NEG(HMAX_AERO_HITS), & HAERO_TOT_HITS * *.......................................................................... * * * HMS DETECTOR TRACK QUANTITIES * FILLED BY H_TRACK SUBROUTINE * INTEGER*4 HNTRACKS_MAX ! size of array PARAMETER (HNTRACKS_MAX=100) ! SET MAXIMUM TO 20 INTEGER*4 HNTRACKHITS_MAX ! MAXIMUM NUMBER OF HITS IN EACH TRACK PARAMETER (HNTRACKHITS_MAX=16) ! SET MAXIMUM TO 15 INTEGER*4 HNTRACKS_FP ! NUMBER OF FOCAL PLANE TRACKS FOUND * ALL THE FOLLOWING VARIABLES ARE ARRAYS * REAL*4 HX_FP ! X POSITION OF TRACK IN FOCAL PLANE REAL*4 HY_FP ! Y POSITION OF TRACK IN FOCAL PLANE REAL*4 HZ_FP ! Z POSITION OF TRACK IN FOCAL PLANE REAL*4 HXP_FP ! X SLOPE OF TRACK IN FOCAL PLANE REAL*4 HYP_FP ! Y SLOPE OF TRACK IN FOCAL PLANE REAL*4 HCHI2_FP ! FIT QUALITY IN FOCAL PLANE REAL*4 HCHI2PERDOF_FP ! fp chi2 per degree of freedom INTEGER*4 HNFREE_FP ! NUMBER OF DEGREES OF FREEDOM IN FIT INTEGER*4 HNTRACK_HITS ! LIST OF HITS ON EACH TRACK real*4 htrack_leftright ! left-right combination of hits on each track REAL*4 HDEL_FP ! FOCAL PLANE ERROR MATRIX REAL*4 HX_FP_rot ! x in rotated focal plane REAL*4 HY_FP_rot ! y in rotated f plane REAL*4 HXP_FP_rot ! x slope in rotated f plane REAL*4 HYP_FP_rot ! y slope in rot f plane * THE FOCAL PLANE ERROR MATRIX IS A 4 BY 4 BY HNTRACK_MAX ARRAY * THE FOUR INDECIES FOR EACH TRACK ARE X, XP, Y, YP * THE ERROR MATRIX FOR EACH TRACK IS SYMMETRIC ABOUT THE DIAGONAL * DELXX DELXXP DELXY DELXYP * DELXPX DELXPXP DELXPY DELXPYP * DELYPX DELYXP DELYY DELYYP * DELYPX DELYPXP DELYPY DELYPYP COMMON/HMS_FOCAL_PLANE/ 1 HX_FP(HNTRACKS_MAX), 2 HY_FP(HNTRACKS_MAX), 3 HZ_FP(HNTRACKS_MAX), 4 HXP_FP(HNTRACKS_MAX), 5 HYP_FP(HNTRACKS_MAX), 6 HCHI2_FP(HNTRACKS_MAX), 7 HDEL_FP(4,4,HNTRACKS_MAX), 8 HNTRACK_HITS(HNTRACKS_MAX,HNTRACKHITS_MAX+1), $ htrack_leftright(hntracks_max,hntrackhits_max), 9 HNFREE_FP(HNTRACKS_MAX), A HNTRACKS_FP,HCHI2PERDOF_FP(HNTRACKS_MAX), > HX_FP_rot(HNTRACKS_MAX), > HY_FP_rot(HNTRACKS_MAX), > HXP_FP_rot(HNTRACKS_MAX), > HYP_FP_rot(HNTRACKS_MAX) * HMS TARGET QUANTITIES * ASSUME THE SAME NUMBER OF MAXIMUM TRACKS AS IN THE FOCAL PLANE * HNTRACKS_MAX * * FILLED BY H_TARG_TRANS SUBROUTINE INTEGER*4 HNTRACKS_TAR ! NUMBER OF TARGET TRACKS FOUND * ALL THE FOLLOWING VARIABLES ARE ARRAYS * REAL*4 HX_TAR ! X POSITION OF TRACK AT TARGET REAL*4 HY_TAR ! Y POSITION OF TRACK AT TARGET REAL*4 HZ_TAR ! Z POSITION OF TRACK AT TARGET REAL*4 HXP_TAR ! X SLOPE OF TRACK AT TARGET REAL*4 HYP_TAR ! Y SLOPE OF TRACK AT TARGET REAL*4 HDELTA_TAR ! FRACTION TRACK MOMENTUM REAL*4 HP_TAR ! MOMENTUM OF TRACK AT TARGET REAL*4 HCHI2_TAR ! FIT QUALITY AT TARGET INTEGER*4 HNFREE_TAR ! NUMBER OF DEGREES OF FREEDOM IN FIT REAL*4 HDEL_TAR ! TARGET ERROR MATRIX * THE FOCAL PLANE ERROR MATRIX IS A 5 BY 5 BY HNTRACK_MAX ARRAY * THE FIVE INDECIES FOR EACH TRACK ARE X, Y , XP, YP and P * THE ERROR MATRIX FOR EACH TRACK IS SYMMETRIC ABOUT THE DIAGONAL * DELXX DELXXP DELXY DELXYP DELXP * DELXPX DELXPXP DELXPY DELXPYP DELXPP * DELYX DELYXPY DELYY DELYYP DELYP * DELYPX DELYPXP DELYPY DELYPYP DELYPP * DELPX DELPXP DELPY DELPXP DELPP INTEGER*4 HLINK_TAR_FP ! LINK POINTER TO FOCAL PLANE TRACK NUMBER COMMON/HMS_TARGET/ 1 HX_TAR(HNTRACKS_MAX), 2 HY_TAR(HNTRACKS_MAX), 3 HZ_TAR(HNTRACKS_MAX), 4 HXP_TAR(HNTRACKS_MAX), 5 HYP_TAR(HNTRACKS_MAX), 6 HDELTA_TAR(HNTRACKS_MAX), 7 HP_TAR(HNTRACKS_MAX), 8 HCHI2_TAR(HNTRACKS_MAX), 9 HDEL_TAR(5,5,HNTRACKS_MAX), A HNFREE_TAR(HNTRACKS_MAX), B HLINK_TAR_FP(HNTRACKS_MAX), C HNTRACKS_TAR * * * HMS_TRACK_TESTS * * PARTICLE ID INFORMATION FILLED BY H_TOF and H_CAL * THIS STORES THE RESULTS OF SHOWER AND SCINTILLATOR CALCULATIONS * FOR EACH OF THE TRACKS GENERATED BY H_TRACK * INTEGER*4 HNBLOCKS_CAL(HNTRACKS_MAX) REAL*4 HTRACK_E1(HNTRACKS_MAX) REAL*4 HTRACK_E2(HNTRACKS_MAX) REAL*4 HTRACK_E3(HNTRACKS_MAX) REAL*4 HTRACK_E4(HNTRACKS_MAX) REAL*4 HTRACK_ET(HNTRACKS_MAX) REAL*4 HTRACK_PRESHOWER_E(HNTRACKS_MAX) REAL*4 HTRACK_E1_POS(HNTRACKS_MAX) REAL*4 HTRACK_E1_NEG(HNTRACKS_MAX) REAL*4 HTRACK_E2_POS(HNTRACKS_MAX) REAL*4 HTRACK_E2_NEG(HNTRACKS_MAX) * INTEGER*4 HSCIN_HIT(HNTRACKS_MAX,HMAX_SCIN_HITS) INTEGER*4 HNUM_SCIN_HIT(HNTRACKS_MAX) INTEGER*4 HNUM_PMT_HIT(HNTRACKS_MAX) REAL*4 HDEDX(HNTRACKS_MAX,HMAX_SCIN_HITS) REAL*4 HBETA(HNTRACKS_MAX) REAL*4 HBETA_CHISQ(HNTRACKS_MAX) REAL*4 HTIME_AT_FP(HNTRACKS_MAX) REAL*4 HSCIN_FPTIME(HNTRACKS_MAX,HMAX_SCIN_HITS) * COMMON/HMS_TRACK_TESTS/ 1 HTRACK_E1, ! ENERGY IN FIRST COLUMN NEAR TRACK 2 HTRACK_E2, ! SECOND COLUMN 3 HTRACK_E3, ! THIRD COLUMN 4 HTRACK_E4, ! FOURTH COLUMN 5 HTRACK_ET, ! TOTAL SHOWER ENERGY ALONG TRACK 6 HTRACK_PRESHOWER_E, ! PRESHOWER ENERGY-Note definition is exp. dep. 7 HDEDX, ! 8 HBETA, ! VELOCITY OF TRACK 9 HBETA_CHISQ, ! CHISQ OF FIT TO BETA OF TRACK A HTIME_AT_FP, ! B HNBLOCKS_CAL, ! NUMBER OF SHOWER BLOCKS ON EACH TRACK C HSCIN_HIT, ! ARRAY OF SCIN HITS ASSOCIATED WITH D ! EACH TRACK E HNUM_SCIN_HIT, ! NUMBER OF HITS FOR EACH TRACK F HNUM_PMT_HIT, ! NUMBER OF PMT HITS FOR EACH TRACK G HSCIN_FPTIME, H HTRACK_E1_POS, I HTRACK_E1_NEG, J HTRACK_E2_POS, K HTRACK_E2_NEG * * HMS SINGLES PHYSICS COMMON BLOCKS * THESE ARE FILLED BY H_PHYSICS * * REAL*4 HSP ! Lab momentum of chosen track in GeV/c REAL*4 HSENERGY ! Lab total energy of chosen track in GeV REAL*4 HSCORRP ! electron momentum corrected for eloss REAL*4 HSCORRE ! electron energy corrected for eloss REAL*4 HSDELTA ! Spectrometer delta of chosen track REAL*4 HSTHETA ! Lab Scattering angle in radians REAL*4 HSPHI ! Lab Azymuthal angle in radians REAL*4 HSINPLANE ! In plane angle REAL*4 HSMINV ! Invariant Mass of remaing hadronic system REAL*4 HSZBEAM ! Lab Z coordinate of intersection of beam ! track with spectrometer ray REAL*4 HSDEDX(4) ! DEDX of chosen track in each scin plane REAL*4 HSBETA ! BETA of chosen track REAL*4 HSTRACK_ET ! Total shower energy of chosen track REAL*4 HSTRACK_PRESHOWER_E ! preshower of chosen track REAL*4 HSTRACK_E1_POS ! Shower energy E1_POS of chosen track REAL*4 HSTRACK_E1_NEG ! Shower energy E1_NEG of chosen track REAL*4 HSTRACK_E2_POS ! Shower energy E2_POS of chosen track REAL*4 HSTRACK_E2_NEG ! Shower energy E2_NEG of chosen track REAL*4 HSTIME_AT_FP REAL*4 HSX_FP ! X focal plane position REAL*4 HSY_FP REAL*4 HSXP_FP REAL*4 HSYP_FP REAL*4 HSCHI2PERDEG ! CHI2 per degree of freedom of chosen track. REAL*4 HSX_TAR REAL*4 HSY_TAR REAL*4 HSXP_TAR REAL*4 HSYP_TAR REAL*4 HSBETA_CHISQ * real*4 hsmass2 ! Mass squared real*4 hst ! invariant t real*4 hsu ! invariant u real*4 hseloss real*4 hsq3 ! Lab frame momentum transfer * real*4 hsthetaq, hsphiq ! Direction of q3 real*4 hsbigq2 ! Q**2 real*4 hsx ! fraction of nucleon p carried by quark real*4 hsy ! fraction of lepton''s E lost in lab real*4 hsw ! Invariant mass of recoil system real*4 hsw2 ! Invariant mass**2 of recoil system * INTEGER*4 HSNUM_FPTRACK ! Index of focal plane track chosen INTEGER*4 HSNUM_TARTRACK ! Index of target track chosen INTEGER*4 HSID_LUND ! LUND particle ID code -- not yet filled INTEGER*4 HSNFREE_FP INTEGER*4 HSNUM_SCIN_HIT ! # OF SCINTILLATORS ON TRACK INTEGER*4 HSNUM_PMT_HIT ! # OF HODOSCOPE PMTS ON TRACK * COMMON/HMS_PHYSICS_R4/ & HSP, & HSENERGY, & HSDELTA, & HSTHETA, & HSPHI, & HSINPLANE, & HSMINV, & HSZBEAM, & HSDEDX, & HSBETA, & HSTRACK_ET, & HSTRACK_PRESHOWER_E, & HSTRACK_E1_POS, & HSTRACK_E1_NEG, & HSTRACK_E2_POS, & HSTRACK_E2_NEG, & HSTIME_AT_FP, & HSX_FP , & HSY_FP , & HSXP_FP , & HSYP_FP , & HSCHI2PERDEG , & HSX_TAR , & HSY_TAR , & HSXP_TAR , & HSYP_TAR , & HSBETA_CHISQ, & hsmass2, & hst, & hsu, & hseloss, & hsq3, & hsbigq2, & hsx, & hsy, & hsw, & hsw2, & hscorrp, & hscorre * & hsthetaq,hsphiq * COMMON/HMS_PHYSICS_I4/ & HSNUM_FPTRACK, & HSNUM_TARTRACK, & HSID_LUND, & HSNFREE_FP, & HSNUM_SCIN_HIT, & HSNUM_PMT_HIT * * * Non-Hits data with HMS gates or starts. * (Energy SUMS, logic timing,...) * INTEGER HMAX_MISC_HITS PARAMETER(HMAX_MISC_HITS=100) INTEGER*4 HMISC_TOT_HITS INTEGER*4 HMISC_RAW_ADDR1 ! "Plane" (1=TDC,2=ADC) INTEGER*4 HMISC_RAW_ADDR2 ! "Counter" INTEGER*4 HMISC_RAW_DATA COMMON/H_RAW_MISC/ & HMISC_RAW_ADDR1(HMAX_MISC_HITS), & HMISC_RAW_ADDR2(HMAX_MISC_HITS), & HMISC_RAW_DATA(HMAX_MISC_HITS), & HMISC_TOT_HITS * * CTPTYPE=parm * * constants definitions for Foacl Plane Polarimeter (frw 2006/06/22) * these are used for array limits etc. * integer*4 H_FPP_N_DCSETS ! # of DC sets parameter (H_FPP_N_DCSETS=2) integer*4 H_FPP_N_DCINSET ! # of DCs in one set parameter (H_FPP_N_DCINSET=2) integer*4 H_FPP_N_DCLAYERS ! # of layers per DC parameter (H_FPP_N_DCLAYERS=3) integer*4 H_FPP_N_PLANES ! sets * dc-in-set * layers parameter (H_FPP_N_PLANES=12) integer*4 H_FPP_MAX_WIRES ! MAX # of wires per layer parameter (H_FPP_MAX_WIRES=104) integer*4 H_FPP_MAX_RAWperPLANE ! MAX # of raw FPP DC hits per plane parameter (H_FPP_MAX_RAWperPLANE=100) integer*4 H_FPP_MAX_RAWHITS ! MAX # of raw FPP DC hits total parameter (H_FPP_MAX_RAWHITS=2400) integer*4 H_FPP_MAX_CLUSTERS ! MAX # of clusters per layer parameter (H_FPP_MAX_CLUSTERS=15) integer*4 H_FPP_MAX_HITSperCLUSTER ! MAX # of hits to group into cluster hit parameter (H_FPP_MAX_HITSperCLUSTER=3) integer*4 H_FPP_MAX_TRACKS ! MAX # of tracks per DC set parameter (H_FPP_MAX_TRACKS=9) integer*4 H_FPP_MAX_FITPOINTS ! MAX # of space points to fit parameter (H_FPP_MAX_FITPOINTS=18) * readability constants real*4 H_FPP_BAD_COORD ! identifies invalid coordinate parameter (H_FPP_BAD_COORD=9999.9) real*4 H_FPP_BAD_TIME ! identifies invalid time parameter (H_FPP_BAD_TIME=9999.9) real*4 H_FPP_BAD_CHI2 ! identifies bad fit or no fit parameter (H_FPP_BAD_CHI2=9876.54321) real*4 H_FPP_BAD_DRIFT ! identifies bad drift distance parameter (H_FPP_BAD_DRIFT=-99.0) c logical FPP_CRATE_VME common /FPP_CRATE/ FPP_CRATE_VME * * CTPTYPE=event * integer*4 HFPP_raw_tot_hits ! actual # of total FPP hits integer*4 HFPP_raw_plane ! array of plane number of hits integer*4 HFPP_raw_wire ! array of wire number of hits integer*4 HFPP_raw_TDC ! array of TDC value of hits common/HMS_RAW_FPP/ HFPP_raw_tot_hits & , HFPP_raw_plane(H_FPP_MAX_RAWHITS) & , HFPP_raw_wire(H_FPP_MAX_RAWHITS) & , HFPP_raw_TDC(H_FPP_MAX_RAWHITS) * * CTPTYPE=parm * integer*4 H_FPP_noise_threshold ! MAX # of raw FPP hits b4 noisy common/HMS_FPPnoiseS/ H_FPP_noise_threshold * * CTPTYPE=event * logical*4 HFPP_noisy ! flag for FPP events bogged down by noise common/HMS_FPPnoiseE/ HFPP_noisy * * *******************end: hms_data_structures.cmn************************* * Local Variables: * mode: fortran * fortran-continuation-string: "&" * comment-column: 35 * End: