From 477c516060788780a114572912a04a795934e2f5 Mon Sep 17 00:00:00 2001 From: Carlos Yero <cyero002@fiu.edu> Date: Wed, 8 Mar 2017 12:59:56 -0500 Subject: [PATCH] Updating repo --- .gitignore | 6 +- .rootrc | 1 + CALIBRATION/.gitignore | 18 + CALIBRATION/hms_dc_calib/run_Cal.C | 68 + .../hms_dc_calib/scripts/get_LookUp_Values.C | 126 + .../hms_dc_calib/scripts/get_hdc_time_histo.C | 98 + .../get_hdc_time_histo_tzero_corrected.C | 107 + .../hms_dc_calib/scripts/get_wire_tzero.C | 409 ++ .../hms_dc_calib/scripts/update_hdcparam.C | 111 + .../hms_dc_calib/scripts/wire_drift_times.C | 305 ++ .../hms_dc_calib/scripts/wire_drift_times.h | 550 +++ CALIBRATION/hodo_calib/.gitignore | 4 + CALIBRATION/hodo_calib/Maketof | 1 + CALIBRATION/hodo_calib/README.md | 50 + CALIBRATION/hodo_calib/hmstofcal.inp | 4 + CALIBRATION/hodo_calib/shmstofcal.inp | 4 + CALIBRATION/hodo_calib/tofcal.f | 475 ++ CALIBRATION/hodo_calib/tofcal.inp | 4 + CALIBRATION/shms_dc_calib/run_Cal.C | 68 + .../shms_dc_calib/scripts/get_LookUp_Values.C | 126 + .../scripts/get_pdc_time_histo.C | 93 + .../get_pdc_time_histo_tzero_corrected.C | 107 + .../shms_dc_calib/scripts/get_wire_tzero.C | 397 ++ .../shms_dc_calib/scripts/input_RUN.txt | 1 + .../shms_dc_calib/scripts/update_pdcparam.C | 111 + .../shms_dc_calib/scripts/wire_drift_times.C | 282 ++ .../shms_dc_calib/scripts/wire_drift_times.h | 545 +++ DATFILES/SHMS_fr3_rec__order_3.dat | 61 + DATFILES/SHMS_fr3_rec__order_4.dat | 131 + DATFILES/SHMS_fr3_rec__order_5.dat | 257 ++ DATFILES/SHMS_fr3_rec__order_6.dat | 467 ++ DATFILES/hms_recon_coeff.dat | 170 + DBASE/general.param | 17 +- DBASE/standard.database | 2 - DBASE/standard.kinematics | 14 +- DEF-files/HMS/CAL/hcalana.def | 59 + DEF-files/HMS/CAL/hcalana_cuts.def | 13 + DEF-files/HMS/CER/hcerana.def | 15 + DEF-files/HMS/CER/hcerana_cuts.def | 13 + DEF-files/HMS/DC/hdcana.def | 42 +- DEF-files/HMS/DC/hdcana_cuts.def | 1 - DEF-files/HMS/EPICS/epics.def | 299 ++ DEF-files/HMS/GEN/hstackana.def | 189 + DEF-files/HMS/GEN/hstackana_cuts.def | 13 + DEF-files/HMS/GEN/hstackana_report.def | 196 + DEF-files/HMS/GEN/hstackana_report_cuts.def | 191 + DEF-files/HMS/HODO/hhodoana.def | 134 + DEF-files/HMS/HODO/hhodoana_cuts.def | 13 + DEF-files/HMS/RASTER/hms_raster_simple.def | 20 + .../HMS/RASTER/hms_raster_simple_cuts.def | 13 + DEF-files/HMS/TRIG/htrigana.def | 115 + DEF-files/HMS/TRIG/htrigana_cuts.def | 13 + DEF-files/SHMS/AERO/paeroana.def | 25 + DEF-files/SHMS/AERO/paeroana_cuts.def | 14 + DEF-files/SHMS/CAL/pcalana.def | 34 + DEF-files/SHMS/CAL/pcalana_cuts.def | 13 + DEF-files/SHMS/DC/pdcana.def | 126 +- DEF-files/SHMS/GEN/pstackana.def | 183 + DEF-files/SHMS/GEN/pstackana_cuts.def | 13 + DEF-files/SHMS/GEN/pstackana_report.def | 183 + DEF-files/SHMS/GEN/pstackana_report_cuts.def | 189 + DEF-files/SHMS/HGCER/phgcerana.def | 25 + DEF-files/SHMS/HGCER/phgcerana_cuts.def | 14 + DEF-files/SHMS/HODO/phodoana.def | 119 + DEF-files/SHMS/HODO/phodoana_cuts.def | 14 + DEF-files/SHMS/NGCER/pngcerana.def | 15 + DEF-files/SHMS/NGCER/pngcerana_cuts.def | 14 + DEF-files/SHMS/RASTER/shms_raster_simple.def | 20 + .../SHMS/RASTER/shms_raster_simple_cuts.def | 13 + DEF-files/SHMS/TRIG/ptrigana.def | 38 + DEF-files/SHMS/TRIG/ptrigana_cuts.def | 13 + MAPS/HMS/CRATE/db_crate1map.dat | 2 +- MAPS/HMS/DETEC/haero.map | 2 +- MAPS/HMS/DETEC/hcal.map | 6 +- MAPS/HMS/DETEC/hcal_htrig.map | 145 + MAPS/HMS/DETEC/hcer.map | 12 + MAPS/HMS/DETEC/hcer_htrig.map | 61 + MAPS/HMS/DETEC/hdc.map | 2252 ++++----- MAPS/HMS/DETEC/hdc_hhodo_htrig.map | 1442 ++++++ MAPS/HMS/DETEC/hdc_htrig.map | 1210 +++++ MAPS/HMS/DETEC/hhodo.map | 18 +- MAPS/HMS/DETEC/hhodo_htrig.map | 283 ++ MAPS/HMS/DETEC/hms_stack.map | 1546 +++++++ .../DETEC/hms_stack_spring17_current_run.map | 1544 +++++++ .../hms_stack_spring17_run_00001_00243.map | 1544 +++++++ MAPS/HMS/DETEC/hraster_simple.map | 18 + MAPS/HMS/DETEC/htrig.map | 21 +- MAPS/SHMS/DETEC/paero.map | 24 + MAPS/SHMS/DETEC/paero_ptrig.map | 83 + MAPS/SHMS/DETEC/pcal.map | 543 ++- MAPS/SHMS/DETEC/pdc.map | 2455 +++++----- MAPS/SHMS/DETEC/phgcer.map | 12 + MAPS/SHMS/DETEC/phgcer_ptrig.map | 71 + MAPS/SHMS/DETEC/phodo.map | 274 ++ MAPS/SHMS/DETEC/phodo_ptrig.map | 333 ++ MAPS/SHMS/DETEC/pngcer.map | 12 + MAPS/SHMS/DETEC/pngcer_ptrig.map | 71 + MAPS/SHMS/DETEC/praster_simple.map | 18 + MAPS/SHMS/DETEC/ptrig.map | 59 + MAPS/SHMS/DETEC/shms_stack.map | 2008 ++++++++ MAPS/db_cratemap.dat | 1 + MAPS/make_cratemap.sh | 2 +- MAPS/merge_list.txt | 10 +- MAPS/merge_maps.py | 21 +- PARAM/HMS/CER/hcer.param | 2 +- PARAM/HMS/DC/hdc.param | 33 - PARAM/HMS/DC/hdc.pos | 271 +- PARAM/HMS/DC/hdc_offsets.param | 3 +- PARAM/HMS/DC/hdc_test_stand.param | 28 +- PARAM/HMS/DC/hdc_tracking.param | 30 + PARAM/HMS/DC/hdeadwires.param | 2 + PARAM/HMS/DC/hdriftmap.param | 363 +- PARAM/HMS/GEN/hcana.param | 19 - PARAM/HMS/GEN/htracking.param | 48 +- PARAM/HMS/HODO/hhodo.param | 406 +- PARAM/HMS/HODO/hhodo.pos | 4 + PARAM/HMS/HODO/hhodo_3of4trigger.param | 191 + PARAM/HMS/HODO/hhodo_4of4trigger.param | 191 + PARAM/HMS/HODO/htofcal.param | 2 + PARAM/README.md | 218 + PARAM/SHMS/AERO/paero.param | 12 + PARAM/SHMS/CAL/pcal.param | 65 + PARAM/SHMS/DC/pdc.param | 34 +- PARAM/SHMS/DC/pdc.param.ori | 14 - PARAM/SHMS/DC/pdc.param.ori.dnd | 377 -- PARAM/SHMS/DC/pdc.pos | 204 +- PARAM/SHMS/DC/pdc_test_stand.param | 5 + PARAM/SHMS/DC/pdc_tracking.param | 27 + PARAM/SHMS/DC/pdriftmap.param | 350 +- PARAM/SHMS/GEN/pcana.param | 17 +- PARAM/SHMS/GEN/pdebug.param | 15 +- PARAM/SHMS/GEN/ptracking.param | 68 +- PARAM/SHMS/GEN/shmsflags.param | 10 +- PARAM/SHMS/HGCER/phgcer.param | 24 + PARAM/SHMS/HODO/phodo.param | 411 ++ PARAM/SHMS/HODO/phodo.pos | 101 + PARAM/SHMS/HODO/ptofcal.param | 2 + PARAM/SHMS/NGCER/pngcer.param | 24 + PARAM/TRIG/thms.param | 8 +- PARAM/TRIG/thms_raster.param | 7 + PARAM/TRIG/tshms.param | 8 + PARAM/TRIG/tshms_raster.param | 7 + SCRIPTS/HMS/hhodo_analysis.C | 140 + SCRIPTS/HMS/replay_epics_test.C | 110 + SCRIPTS/HMS/replay_hcal_test_stand.C | 94 + SCRIPTS/HMS/replay_hcer_test_stand.C | 104 + SCRIPTS/HMS/replay_hdc_test_stand.C | 37 +- SCRIPTS/HMS/replay_hhodo_test_stand.C | 104 + SCRIPTS/HMS/replay_hms.C | 117 + SCRIPTS/HMS/replay_hms_raster_simple.C | 100 + SCRIPTS/HMS/replay_hms_report.C | 121 + SCRIPTS/HMS/replay_htrig_test_stand.C | 97 + SCRIPTS/SHMS/replay_paero_test_stand.C | 104 + SCRIPTS/SHMS/replay_pcal_test_stand.C | 94 + SCRIPTS/SHMS/replay_pdc_test_stand.C | 12 +- SCRIPTS/SHMS/replay_phgcer_test_stand.C | 104 + SCRIPTS/SHMS/replay_phodo_test_stand.C | 104 + SCRIPTS/SHMS/replay_pngcer_test_stand.C | 104 + SCRIPTS/SHMS/replay_ptrig_test_stand.C | 97 + SCRIPTS/SHMS/replay_shms.C | 126 + SCRIPTS/SHMS/replay_shms_raster_simple.C | 100 + SCRIPTS/SHMS/replay_shms_report.C | 124 + TEMPLATES/dcana.template | 48 + TEMPLATES/hstackana.template | 64 + TEMPLATES/pstackana.template | 64 + onlineGUI/.gitignore | 3 + onlineGUI/.rootrc | 2 + onlineGUI/Config/HMS/GEN/hallc_onlana.cfg | 200 + onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg | 363 ++ .../Config/HMS/HODO/good_hhodo_2d_dis.cfg | 123 + onlineGUI/Config/HMS/HODO/raw_hhodo_1x.cfg | 327 ++ onlineGUI/Config/HMS/HODO/raw_hhodo_1y.cfg | 219 + onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg | 304 ++ onlineGUI/Config/HMS/HODO/raw_hhodo_2x.cfg | 327 ++ onlineGUI/Config/HMS/HODO/raw_hhodo_2y.cfg | 219 + onlineGUI/Config/HMS/HODO/raw_hhodoana.cfg | 130 + onlineGUI/Config/HMS/RASTER/simple_raster.cfg | 20 + onlineGUI/Config/SHMS/GEN/hallc_onlana.cfg | 191 + onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg | 367 ++ .../Config/SHMS/HODO/good_phodo_2d_dis.cfg | 293 ++ onlineGUI/Config/SHMS/HODO/raw_phodo_1x.cfg | 273 ++ onlineGUI/Config/SHMS/HODO/raw_phodo_1y.cfg | 270 ++ onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg | 306 ++ .../Config/SHMS/HODO/raw_phodo_2d_pad.cfg | 120 + onlineGUI/Config/SHMS/HODO/raw_phodo_2x.cfg | 291 ++ onlineGUI/Config/SHMS/HODO/raw_phodo_2y.cfg | 417 ++ onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg | 130 + .../Config/SHMS/RASTER/simple_raster.cfg | 20 + onlineGUI/Config/kpp.cfg | 121 + onlineGUI/Config/rawhmshodo.cfg | 243 + onlineGUI/Config/standard.cfg | 57 + onlineGUI/Macros/gooddraw_2d_hhodo.C | 286 ++ onlineGUI/Macros/gooddraw_2d_phodo.C | 325 ++ onlineGUI/Macros/hodo_efficiency.C | 24 + onlineGUI/Macros/kpp_analysis.C | 686 +++ onlineGUI/Macros/overlay.C | 54 + onlineGUI/Macros/rawdraw.C | 265 ++ onlineGUI/Macros/rawdraw_2d_hhodo.C | 275 ++ onlineGUI/Macros/rawdraw_2d_phodo.C | 377 ++ onlineGUI/Macros/rawdraw_hhodo.C | 349 ++ onlineGUI/Macros/rawdraw_phodo.C | 349 ++ onlineGUI/README.md | 37 + onlineGUI/onlineGUI_v1.2.1/Makefile | 27 +- onlineGUI/onlineGUI_v1.2.1/guiHOWTO2007.pdf | Bin 157338 -> 0 bytes onlineGUI/onlineGUI_v1.2.1/online.C | 4098 +++++++++-------- onlineGUI/onlineGUI_v1.2.1/online.h | 351 +- onlineGUI/onlineGUI_v1.2.1/onlineDict.C | 2058 --------- 207 files changed, 36105 insertions(+), 8259 deletions(-) create mode 100644 .rootrc create mode 100644 CALIBRATION/.gitignore create mode 100644 CALIBRATION/hms_dc_calib/run_Cal.C create mode 100644 CALIBRATION/hms_dc_calib/scripts/get_LookUp_Values.C create mode 100644 CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo.C create mode 100644 CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo_tzero_corrected.C create mode 100644 CALIBRATION/hms_dc_calib/scripts/get_wire_tzero.C create mode 100644 CALIBRATION/hms_dc_calib/scripts/update_hdcparam.C create mode 100644 CALIBRATION/hms_dc_calib/scripts/wire_drift_times.C create mode 100644 CALIBRATION/hms_dc_calib/scripts/wire_drift_times.h create mode 100644 CALIBRATION/hodo_calib/.gitignore create mode 100755 CALIBRATION/hodo_calib/Maketof create mode 100644 CALIBRATION/hodo_calib/README.md create mode 100644 CALIBRATION/hodo_calib/hmstofcal.inp create mode 100644 CALIBRATION/hodo_calib/shmstofcal.inp create mode 100644 CALIBRATION/hodo_calib/tofcal.f create mode 100644 CALIBRATION/hodo_calib/tofcal.inp create mode 100644 CALIBRATION/shms_dc_calib/run_Cal.C create mode 100644 CALIBRATION/shms_dc_calib/scripts/get_LookUp_Values.C create mode 100644 CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo.C create mode 100644 CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo_tzero_corrected.C create mode 100644 CALIBRATION/shms_dc_calib/scripts/get_wire_tzero.C create mode 100644 CALIBRATION/shms_dc_calib/scripts/input_RUN.txt create mode 100644 CALIBRATION/shms_dc_calib/scripts/update_pdcparam.C create mode 100644 CALIBRATION/shms_dc_calib/scripts/wire_drift_times.C create mode 100644 CALIBRATION/shms_dc_calib/scripts/wire_drift_times.h create mode 100644 DATFILES/SHMS_fr3_rec__order_3.dat create mode 100644 DATFILES/SHMS_fr3_rec__order_4.dat create mode 100644 DATFILES/SHMS_fr3_rec__order_5.dat create mode 100644 DATFILES/SHMS_fr3_rec__order_6.dat create mode 100644 DATFILES/hms_recon_coeff.dat create mode 100644 DEF-files/HMS/CAL/hcalana.def create mode 100644 DEF-files/HMS/CAL/hcalana_cuts.def create mode 100644 DEF-files/HMS/CER/hcerana.def create mode 100644 DEF-files/HMS/CER/hcerana_cuts.def create mode 100644 DEF-files/HMS/EPICS/epics.def create mode 100644 DEF-files/HMS/GEN/hstackana.def create mode 100644 DEF-files/HMS/GEN/hstackana_cuts.def create mode 100644 DEF-files/HMS/GEN/hstackana_report.def create mode 100644 DEF-files/HMS/GEN/hstackana_report_cuts.def create mode 100644 DEF-files/HMS/HODO/hhodoana.def create mode 100644 DEF-files/HMS/HODO/hhodoana_cuts.def create mode 100644 DEF-files/HMS/RASTER/hms_raster_simple.def create mode 100644 DEF-files/HMS/RASTER/hms_raster_simple_cuts.def create mode 100644 DEF-files/HMS/TRIG/htrigana.def create mode 100644 DEF-files/HMS/TRIG/htrigana_cuts.def create mode 100644 DEF-files/SHMS/AERO/paeroana.def create mode 100644 DEF-files/SHMS/AERO/paeroana_cuts.def create mode 100644 DEF-files/SHMS/CAL/pcalana.def create mode 100644 DEF-files/SHMS/CAL/pcalana_cuts.def create mode 100644 DEF-files/SHMS/GEN/pstackana.def create mode 100644 DEF-files/SHMS/GEN/pstackana_cuts.def create mode 100644 DEF-files/SHMS/GEN/pstackana_report.def create mode 100644 DEF-files/SHMS/GEN/pstackana_report_cuts.def create mode 100644 DEF-files/SHMS/HGCER/phgcerana.def create mode 100644 DEF-files/SHMS/HGCER/phgcerana_cuts.def create mode 100644 DEF-files/SHMS/HODO/phodoana.def create mode 100644 DEF-files/SHMS/HODO/phodoana_cuts.def create mode 100644 DEF-files/SHMS/NGCER/pngcerana.def create mode 100644 DEF-files/SHMS/NGCER/pngcerana_cuts.def create mode 100644 DEF-files/SHMS/RASTER/shms_raster_simple.def create mode 100644 DEF-files/SHMS/RASTER/shms_raster_simple_cuts.def create mode 100644 DEF-files/SHMS/TRIG/ptrigana.def create mode 100644 DEF-files/SHMS/TRIG/ptrigana_cuts.def create mode 100644 MAPS/HMS/DETEC/hcal_htrig.map create mode 100644 MAPS/HMS/DETEC/hcer.map create mode 100644 MAPS/HMS/DETEC/hcer_htrig.map create mode 100644 MAPS/HMS/DETEC/hdc_hhodo_htrig.map create mode 100644 MAPS/HMS/DETEC/hdc_htrig.map create mode 100644 MAPS/HMS/DETEC/hhodo_htrig.map create mode 100644 MAPS/HMS/DETEC/hms_stack.map create mode 100644 MAPS/HMS/DETEC/hms_stack_spring17_current_run.map create mode 100644 MAPS/HMS/DETEC/hms_stack_spring17_run_00001_00243.map create mode 100644 MAPS/HMS/DETEC/hraster_simple.map create mode 100644 MAPS/SHMS/DETEC/paero.map create mode 100644 MAPS/SHMS/DETEC/paero_ptrig.map create mode 100644 MAPS/SHMS/DETEC/phgcer.map create mode 100644 MAPS/SHMS/DETEC/phgcer_ptrig.map create mode 100644 MAPS/SHMS/DETEC/phodo.map create mode 100644 MAPS/SHMS/DETEC/phodo_ptrig.map create mode 100644 MAPS/SHMS/DETEC/pngcer.map create mode 100644 MAPS/SHMS/DETEC/pngcer_ptrig.map create mode 100644 MAPS/SHMS/DETEC/praster_simple.map create mode 100644 MAPS/SHMS/DETEC/ptrig.map create mode 100644 MAPS/SHMS/DETEC/shms_stack.map delete mode 100644 PARAM/HMS/DC/hdc.param create mode 100644 PARAM/HMS/DC/hdc_tracking.param create mode 100644 PARAM/HMS/HODO/hhodo_3of4trigger.param create mode 100644 PARAM/HMS/HODO/hhodo_4of4trigger.param create mode 100644 PARAM/HMS/HODO/htofcal.param create mode 100644 PARAM/README.md create mode 100644 PARAM/SHMS/AERO/paero.param create mode 100644 PARAM/SHMS/CAL/pcal.param delete mode 100644 PARAM/SHMS/DC/pdc.param.ori delete mode 100644 PARAM/SHMS/DC/pdc.param.ori.dnd create mode 100644 PARAM/SHMS/DC/pdc_test_stand.param create mode 100644 PARAM/SHMS/DC/pdc_tracking.param create mode 100644 PARAM/SHMS/HGCER/phgcer.param create mode 100644 PARAM/SHMS/HODO/phodo.param create mode 100644 PARAM/SHMS/HODO/phodo.pos create mode 100644 PARAM/SHMS/HODO/ptofcal.param create mode 100644 PARAM/SHMS/NGCER/pngcer.param create mode 100644 PARAM/TRIG/thms_raster.param create mode 100644 PARAM/TRIG/tshms.param create mode 100644 PARAM/TRIG/tshms_raster.param create mode 100644 SCRIPTS/HMS/hhodo_analysis.C create mode 100644 SCRIPTS/HMS/replay_epics_test.C create mode 100644 SCRIPTS/HMS/replay_hcal_test_stand.C create mode 100644 SCRIPTS/HMS/replay_hcer_test_stand.C create mode 100644 SCRIPTS/HMS/replay_hhodo_test_stand.C create mode 100644 SCRIPTS/HMS/replay_hms.C create mode 100644 SCRIPTS/HMS/replay_hms_raster_simple.C create mode 100644 SCRIPTS/HMS/replay_hms_report.C create mode 100644 SCRIPTS/HMS/replay_htrig_test_stand.C create mode 100644 SCRIPTS/SHMS/replay_paero_test_stand.C create mode 100644 SCRIPTS/SHMS/replay_pcal_test_stand.C create mode 100644 SCRIPTS/SHMS/replay_phgcer_test_stand.C create mode 100644 SCRIPTS/SHMS/replay_phodo_test_stand.C create mode 100644 SCRIPTS/SHMS/replay_pngcer_test_stand.C create mode 100644 SCRIPTS/SHMS/replay_ptrig_test_stand.C create mode 100644 SCRIPTS/SHMS/replay_shms.C create mode 100644 SCRIPTS/SHMS/replay_shms_raster_simple.C create mode 100644 SCRIPTS/SHMS/replay_shms_report.C create mode 100644 TEMPLATES/hstackana.template create mode 100644 TEMPLATES/pstackana.template create mode 100644 onlineGUI/.rootrc create mode 100644 onlineGUI/Config/HMS/GEN/hallc_onlana.cfg create mode 100644 onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg create mode 100644 onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodo_1x.cfg create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodo_1y.cfg create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodo_2x.cfg create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodo_2y.cfg create mode 100644 onlineGUI/Config/HMS/HODO/raw_hhodoana.cfg create mode 100644 onlineGUI/Config/HMS/RASTER/simple_raster.cfg create mode 100644 onlineGUI/Config/SHMS/GEN/hallc_onlana.cfg create mode 100644 onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg create mode 100644 onlineGUI/Config/SHMS/HODO/good_phodo_2d_dis.cfg create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_1x.cfg create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_1y.cfg create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_2d_pad.cfg create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_2x.cfg create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodo_2y.cfg create mode 100644 onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg create mode 100644 onlineGUI/Config/SHMS/RASTER/simple_raster.cfg create mode 100755 onlineGUI/Config/kpp.cfg create mode 100755 onlineGUI/Config/rawhmshodo.cfg create mode 100755 onlineGUI/Config/standard.cfg create mode 100644 onlineGUI/Macros/gooddraw_2d_hhodo.C create mode 100644 onlineGUI/Macros/gooddraw_2d_phodo.C create mode 100644 onlineGUI/Macros/hodo_efficiency.C create mode 100644 onlineGUI/Macros/kpp_analysis.C create mode 100755 onlineGUI/Macros/overlay.C create mode 100755 onlineGUI/Macros/rawdraw.C create mode 100644 onlineGUI/Macros/rawdraw_2d_hhodo.C create mode 100644 onlineGUI/Macros/rawdraw_2d_phodo.C create mode 100755 onlineGUI/Macros/rawdraw_hhodo.C create mode 100755 onlineGUI/Macros/rawdraw_phodo.C create mode 100644 onlineGUI/README.md delete mode 100644 onlineGUI/onlineGUI_v1.2.1/guiHOWTO2007.pdf mode change 100644 => 100755 onlineGUI/onlineGUI_v1.2.1/online.C mode change 100644 => 100755 onlineGUI/onlineGUI_v1.2.1/online.h delete mode 100644 onlineGUI/onlineGUI_v1.2.1/onlineDict.C diff --git a/.gitignore b/.gitignore index 60234d01..5d640234 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,8 @@ ROOTfiles/* #* hcana -raw \ No newline at end of file +raw +.root_history +data_files/* +root_files/* +REPORT_OUTPUT/* diff --git a/.rootrc b/.rootrc new file mode 100644 index 00000000..313d262d --- /dev/null +++ b/.rootrc @@ -0,0 +1 @@ +Rint.History: .root_history diff --git a/CALIBRATION/.gitignore b/CALIBRATION/.gitignore new file mode 100644 index 00000000..a9da3531 --- /dev/null +++ b/CALIBRATION/.gitignore @@ -0,0 +1,18 @@ +# +# Ignore file for calorimeter calibration code +# + +# Debug files +*.deb +# Monte Carlo results +*.r +*.pdf +*.cal_data +*.raw_data +*.root +# Parameter files generated by calibration +*.param +hms_dc_calib/data_files +*.d +hms_dc_calib/scripts/*.txt + diff --git a/CALIBRATION/hms_dc_calib/run_Cal.C b/CALIBRATION/hms_dc_calib/run_Cal.C new file mode 100644 index 00000000..94f7daf4 --- /dev/null +++ b/CALIBRATION/hms_dc_calib/run_Cal.C @@ -0,0 +1,68 @@ +//SCRIPT TO RUN OVER ALL HMS DC CALIBRATION SCRIPTS AT ONCE, AND UPDATE THE +//NECESSARY PARAMTER FILES hdriftmap.param and hdc.param +void run_Cal() +{ + + //User Input Run + int run_NUM; + cout << "Enter Run Number: " << endl; + cin >> run_NUM; + + //Create input file with run number + ofstream fout; + fout.open("scripts/input_RUN.txt"); + fout << run_NUM << endl; + fout.close(); + + + //Create root and data files Directories if they dont exist + char *dir_root = "mkdir ./root_files/"; + char *dir_data = "mkdir ./data_files/"; + + if (system(dir_root || dir_data) != 0) { + system(dir_root); + system(dir_data); + } + + //Create run Directories if they dont exist + char *dir0 = Form("mkdir ./root_files/run%d", run_NUM); + char *dir1 = Form("mkdir ./data_files/run%d", run_NUM); + + if (system(dir0 || dir1) != 0) { + system(dir0); + system(dir1); + } + + + + //change directories and execute scripts + gSystem->cd("./scripts"); + gSystem->Exec("root -l -q get_hdc_time_histo.C"); + + //Load and Loop over Make Class events to get individual drift times + gROOT->LoadMacro("wire_drift_times.C"); + gROOT->ProcessLine("wire_drift_times t"); //process line allows one to execute interactive root commands from a script, such as this one + gROOT->ProcessLine("t.Loop()"); + //gROOT->ProcessLine(".q"); + gROOT->Reset(); + + + +gSystem->cd("./scripts"); + + + //execute code to get t0 from each wire in each plane + gSystem->Exec("root -l -q -b get_wire_tzero.C"); + + //execute code to update hdc parameter file + gSystem->Exec("root -l -q update_hdcparam.C"); + + //execute code to get t0 corrected drift times + gSystem->Exec("root -l -q get_hdc_time_histo_tzero_corrected.C"); + + //execute code to update LookUp Table + gSystem->Exec("root -l -q get_LookUp_Values.C"); + + + +} diff --git a/CALIBRATION/hms_dc_calib/scripts/get_LookUp_Values.C b/CALIBRATION/hms_dc_calib/scripts/get_LookUp_Values.C new file mode 100644 index 00000000..e4a40276 --- /dev/null +++ b/CALIBRATION/hms_dc_calib/scripts/get_LookUp_Values.C @@ -0,0 +1,126 @@ +/*This code produces a lookup table necessary to convert drift times to +drift distances in the HMS drift chambers +*/ + +#define NPLANES 12 +#define TOTAL_BINS 137 + +void get_LookUp_Values() { + + + //Read Run Number from txt file + int run_NUM; + TString f0 = "input_RUN.txt"; + ifstream infile(f0); + infile >> run_NUM; + +//Open root file containing drift time histos + TFile *f = new TFile(Form("../root_files/run%d/hms_dc_t0_corrected_%d.root", run_NUM, run_NUM),"READ"); + + //Define histogram array + TH1F *h[NPLANES]; + + //Define the number Drift Chamber planes + TString plane_names[NPLANES]={"1x1", "1y1", "1u1", "1v1", "1y2", "1x2", "2x1", "2y1", "2u1", "2v1", "2y2", "2x2"}; + + //Declare bin properties + int bin_t0[NPLANES]; + int bin_final[NPLANES]; /*Array to store the bin number corresponding to last bin*/ + int bin_Content[NPLANES]; /*Array to store the content (# events) corresponding to the bin with maximum content*/ + double binContent_TOTAL[NPLANES]; /*Array to store sum of all bin contents for each plane*/ + double binSUM[NPLANES]; + int bin; + int binx; + double lookup_value[NPLANES]; /*Array to store lookup values for each plane*/ + + //Create an output file to store lookup values + ofstream ofs; + TString lookup_table = "../../../PARAM/HMS/DC/hdriftmap_new.param"; + ofs.open (lookup_table); + + +//Set headers for subsequent columns of data + ofs << Form("; Lookup Table: RUN %d", run_NUM) << "\n"; + ofs << "; number of bins in Carlos's time to distance lookup table" << "\n"; + ofs << Form("hdriftbins = %d", TOTAL_BINS+1) << "\n"; + ofs << "; number of 1st bin in Carlos's table in ns" << "\n"; + ofs << "hdrift1stbin=0" << "\n"; + ofs << "; bin size in ns" << "\n"; + ofs << "hdriftbinsz=2" << "\n"; + + + + //Loop over each plane of HMS Drift Chambers (DC1 & DC2) + + for (int ip=0; ip<NPLANES; ip++){ + + TString drift_time_histo = "hdc"+plane_names[ip]+"_time: t0_corr"; + + //Get drift time histograms from root file + h[ip] = (TH1F*)f->Get(drift_time_histo); + + //Get bin corresponding to t0 = 0 ns + bin_t0[ip] = h[ip]->GetXaxis()->FindBin(0.0); + + //Get final bin + bin_final[ip] = bin_t0[ip] + TOTAL_BINS; + + + + //Find total BIN Content over entire integration range + binContent_TOTAL[ip] = 0; //set counter to zero + + for (bin = bin_t0[ip]; bin <= bin_final[ip]; bin ++ ) { + + bin_Content[ip] = h[ip] -> GetBinContent(bin); + + binContent_TOTAL[ip] = bin_Content[ip] + binContent_TOTAL[ip]; + + // cout << "Bin: " << bin << endl; + // cout << "Content " << bin_Content[ip] << endl; + // cout << "Content SUM : " << binContent_TOTAL[ip] << endl; + } + + TString headers = "hwc" + plane_names[ip] + "fract="; + ofs << headers; + + //Calculate LookUp Value + + binSUM[ip] = 0.0; + int bin_count = 0; + + for (bin = bin_t0[ip]; bin <= bin_final[ip]; bin++) { + + bin_Content[ip] = h[ip] -> GetBinContent(bin); + binSUM[ip] = binSUM[ip] + bin_Content[ip]; + + + lookup_value[ip] = binSUM[ip] / binContent_TOTAL[ip]; + bin_count = bin_count + 1; + + if (bin_count < = 8 ) { + ofs << setprecision(5) << lookup_value[ip] << fixed << ","; + } + + else if (bin_count >8 && bin_count < 138) { + ofs << setprecision(5) << lookup_value[ip] << ((bin_count+1) % 10 ? "," : "\n") << fixed; + } + else { + ofs << setprecision(5) << lookup_value[ip] << fixed << endl; + } + + } + + } + +} + + + + + + + + + + diff --git a/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo.C b/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo.C new file mode 100644 index 00000000..b3bfee58 --- /dev/null +++ b/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo.C @@ -0,0 +1,98 @@ +//Script to add necessary drift time histograms/plane from original root file to new root file + + +#define NPLANES 12 + +void get_hdc_time_histo() +{ + +//Read Run Number from txt file +int run_NUM; +TString f0 = "input_RUN.txt"; +ifstream infile(f0); +infile >> run_NUM; + +//Create RUN Directories if they dont exist +char *dir0 = Form("mkdir ../root_files/run%d", run_NUM); +char *dir1 = Form("mkdir ../data_files/run%d", run_NUM); + +if (system(dir0 || dir1) != 0) { +system(dir0); +system(dir1); +} + +//open file +TFile *f = new TFile(Form("../../../ROOTfiles/test_%d.root", run_NUM), "READ"); + +//create new file + TFile *g = new TFile(Form("../root_files/run%d/hms_dc_time_%d.root", run_NUM, run_NUM), "RECREATE"); // create new file to store histo + +f->cd(); + +//Get the tree +TTree *tree = (TTree*)f->Get("T"); +TString SPECTROMETER="H"; +TString DETECTOR="dc"; +TString plane_names[NPLANES]={"1x1", "1y1", "1u1", "1v1", "1y2", "1x2", "2x1", "2y1", "2u1", "2v1", "2y2", "2x2"}; + +//Declare Variables to Loop Over +Int_t Ndata[NPLANES]; +Double_t hdc_time[NPLANES][1000]; + +//Declare Histogram array to store AVG drift times per plane +TH1F* h[NPLANES]; + +g->cd(); + +//Loop over each plane +for(Int_t ip=0; ip<NPLANES; ip++){ + TString base_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip]; + TString ndata_name = "Ndata."+base_name+".time"; + TString drift_time = base_name+".time"; + + TString drift_time_histo = "hdc"+plane_names[ip]+"_time"; + TString title = "hdc"+plane_names[ip]+"_drifttime"; + + //Set Branch Address + tree->SetBranchAddress(drift_time, &hdc_time[ip][0]); + tree->SetBranchAddress(ndata_name, &Ndata[ip]); /* Ndata represents number of triggers vs number of hits that each trigger produced. + A hit is refer to as when a trigger(traversing particle), ionizes the WC gas and ionized + electrons reach the rearest sense wire, producing a detectable signal in the O'scope */ + + //Create Histograms + h[ip] = new TH1F(drift_time_histo, title, 200, -50, 350); //set time to 400 ns/200 bins = 2ns/bin + } + + + +//Declare number of entries in the tree + Long64_t nentries = tree->GetEntries(); //number of triggers (particles that passed through all 4 hodo planes) + + //Loop over all entries + for(Long64_t i=0; i<nentries; i++) + { + tree->GetEntry(i); + + + //Loop over number of hits for each trigger in each DC plane + for(ip=0; ip<NPLANES; ip++){ + + + for(Int_t j=0; j<Ndata[ip]; j++){ + + h[ip]->Fill(hdc_time[ip][j]); + } + + } + + } + + + + + //Write histograms to file + g->Write(); + + + +} diff --git a/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo_tzero_corrected.C b/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo_tzero_corrected.C new file mode 100644 index 00000000..d847ce0b --- /dev/null +++ b/CALIBRATION/hms_dc_calib/scripts/get_hdc_time_histo_tzero_corrected.C @@ -0,0 +1,107 @@ +//Script to add t0 correction to HMS DC drift times + +#define NPLANES 12 + +void get_hdc_time_histo_tzero_corrected() +{ + + + //read run number from input file + int run_NUM; + TString f0 = "input_RUN.txt"; + ifstream infile(f0); + infile >> run_NUM; + + TString run = Form("run%d", run_NUM); + + + //open file + TFile *f = new TFile(Form("../../../ROOTfiles/test_%d.root", run_NUM), "READ"); + + //updates file + TFile *g = new TFile(Form("../root_files/run%d/hms_dc_t0_corrected_%d.root", run_NUM, run_NUM), "UPDATE"); // create new file to store histo + + f->cd(); + + //Get the tree + TTree *tree = (TTree*)f->Get("T"); + + TString SPECTROMETER="H"; + TString DETECTOR="dc"; + TString plane_names[NPLANES]={"1x1", "1y1", "1u1", "1v1", "1y2", "1x2", "2x1", "2y1", "2u1", "2v1", "2y2", "2x2"}; + + //Declare Variables to Loop Over + Int_t Ndata[NPLANES]; + Double_t hdc_time[NPLANES][1000]; + + //Declare Histogram array to store AVG drift times per plane + TH1F* h[NPLANES]; + + g->cd(); + + //Loop over each plane + for(Int_t ip=0; ip<NPLANES; ip++){ + TString base_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip]; + TString ndata_name = "Ndata."+base_name+".time"; + TString drift_time = base_name+".time"; + + TString drift_time_histo = "hdc"+plane_names[ip]+"_time: t0_corr"; + TString title = "hdc"+plane_names[ip]+"_drifttime: t0-corrected"; + + //Set Branch Address + tree->SetBranchAddress(drift_time, hdc_time[ip]); + tree->SetBranchAddress(ndata_name, &Ndata[ip]); /* Ndata represents number of triggers vs number of hits that each trigger produced. + A hit is refer to as when a trigger(traversing particle), ionizes the WC gas and ionized + electrons reach the rearest sense wire, producing a detectable signal in the O'scope */ + + //Create Histograms + h[ip] = new TH1F(drift_time_histo, title, 200, -50, 350); //set time to 400 ns/200 bins = 2ns/bin +} + + + //open and read tzero data file + ifstream ifs; + ifs.open("../data_files/" + run + "/tzero.dat"); + + double t_zero_offsets[NPLANES]; + + for (ip=0; ip < 12; ip++) { + ifs >> t_zero_offsets[ip]; //add tzero offsets to array + } + + //Declare number of entries in the tree + Long64_t nentries = tree->GetEntries(); //number of triggers (particles that passed through all 4 hodo planes) + + //Loop over all entries + for(Long64_t i=0; i<nentries; i++) + { + tree->GetEntry(i); + + + //Loop over number of hits for each trigger in each DC plane + for(ip=0; ip<NPLANES; ip++){ + + + + for(Int_t j=0; j<Ndata[ip]; j++){ + + h[ip]->Fill(hdc_time[ip][j] - t_zero_offsets[ip]); //add t0 offset correction + } + + + + + + } + +} + + + + +//Write histograms to file +g->Write(); + + + +} diff --git a/CALIBRATION/hms_dc_calib/scripts/get_wire_tzero.C b/CALIBRATION/hms_dc_calib/scripts/get_wire_tzero.C new file mode 100644 index 00000000..290d96ce --- /dev/null +++ b/CALIBRATION/hms_dc_calib/scripts/get_wire_tzero.C @@ -0,0 +1,409 @@ + + +/*Script to extract reference time "t0" for each sense wire in a given HMS Wire Chamber Plane with COSMIC RUNS. +20% (MAX BIN CONTENT) is calculated per wire, and the corresponding bin is fitted linearly about +/- +a certain number of bins and this fit is extrapolated to y=0(x-axis). The extrapolated value is take to be t0*/ + +#include <vector> +#include <TMath> + +#define NPLANES 12 + +void get_wire_tzero() +{ + using namespace std; + + int run_NUM; + TString f0 = "input_RUN.txt"; + ifstream infile(f0); + infile >> run_NUM; + + //check if tzero_weighted_avg text file exists (if it does, DELETE IT, otherwise new values will be appended to it, in addition to pre-existing tzero values) + std::ifstream stream(Form("../data_files/run%d/tzero_weighted_avg_run%d.txt",run_NUM, run_NUM)); + if (stream.good()) + { + gSystem->Exec(Form("rm ../data_files/run%d/tzero_weighted_avg_run%d.txt",run_NUM, run_NUM)); + } + + TString run = Form("run%d", run_NUM); + + //Declare plane names to loop over + TString plane_names[NPLANES]={"1x1", "1y1", "1u1", "1v1", "1y2", "1x2", "2x1", "2y1", "2u1", "2v1", "2y2", "2x2"}; + + //Declare a root file array to store individual DC cell drift times + TString root_file; + TFile *f[NPLANES]; + + int total_wires; //integer to store total sense wires for a plane chosen by the user + + //Loop over all planes + for (int ip = 0; ip < NPLANES; ip++){ + + //READ root file + root_file = "../root_files/"+run+"/hms_DC_"+plane_names[ip]+Form("_%d.root",run_NUM); + f[ip] = new TFile(root_file, "READ"); + + //Create a file output file stream object to write t0 values to data file + ofstream ofs; + TString t_zero_file = "../data_files/" + run + "/hdc_"+plane_names[ip]+Form("tzero_run%d.dat", run_NUM); + ofs.open (t_zero_file); + + //Set headers for subsequent columns of data + ofs << "#WIRE " << " " << "t0" << " " << "t0_err" << " " << " entries " << endl; + + //Create root file to store fitted wire drift times histos and "t0 vs. wirenum" + TString output_root_file = "../root_files/"+run+"/hmsDC_"+plane_names[ip]+Form("run%d_fitted_histos.root", run_NUM); + TFile *g = new TFile(output_root_file,"RECREATE"); + + f[ip]->cd(); //change to file containing the wire drift times histos + + int total_wires; //integer to store total sense wires for a plane chosen by the user + + //Set variables depending on which plane is being studied + if (ip == 0 || ip == 5 || ip == 6 || ip == 11) { + TH1F *cell_dt[113]; //declare array of histos to store drift times + total_wires=113; + + //Declare bin properties for given sense wires in a plane + + int bin_max[113]; /*Array to store the bin number corresponding to the drift time distribution peak*/ + int bin_maxContent[113]; /*Array to store the content (# events) corresponding to the bin with maximum content*/ + double time_max[113]; /*Array to store the x-axis(drift time (ns)) corresponding to bin_max*/ + double twenty_perc_maxContent[113]; /*Array to store 20% of maximum bin content (peak)*/ + double ref_time[113]; /*Array to store reference times for each sense wire*/ + + } + + else if (ip == 2 || ip == 3 || ip == 8 || ip == 9) { + TH1F *cell_dt[107]; + total_wires=107; + + int bin_max[107]; + int bin_maxContent[107]; + double time_max[107]; + double twenty_perc_maxContent[107]; + double ref_time[107]; + + } + + else if (ip == 1 || ip == 4 || ip == 7 || ip == 10) { + TH1F *cell_dt[52]; + total_wires=52; + + int bin_max[52]; + int bin_maxContent[52]; + double time_max[52]; + double twenty_perc_maxContent[52]; + double ref_time[52]; + + } + + + /*Get wire histos from root file and loop over each + sense wire of a plane in HMS Drift Chambers (DC1 or DC2)*/ + + for (int sensewire=1; sensewire<=total_wires; sensewire++){ + + //Get title of histos in root file + TString drift_time_histo = Form("wire_%d", sensewire); + + //Get drift time histograms from root file + cell_dt[sensewire-1] = (TH1F*)f[ip]->Get(drift_time_histo); + + + //Get bin with Maximum Content + bin_max[sensewire-1] = cell_dt[sensewire-1]->GetMaximumBin(); + + //Get content of bin_max + bin_maxContent[sensewire-1] = cell_dt[sensewire-1]->GetBinContent(bin_max[sensewire-1]); + + //Get time (ns) [x-axis] corresponding to bin_max + time_max[sensewire-1] = cell_dt[sensewire-1]->GetXaxis()->GetBinCenter(bin_max[sensewire-1]); + + //Calculate 20% of max content + twenty_perc_maxContent[sensewire-1] = bin_maxContent[sensewire-1] * 0.20; + + + } + + + + //****************************************************// + //Determine which bin has around 20% max_BinContent *// + //****************************************************// + + + //Declarations + int content_bin; //stores content for each bin + int counts; //a counter used to count the number of bins that have >20% max bin content for a plane + int bin; //store bin number + int j; //jth bin, used to loop over n bins + + //Declare vector arrays + vector<int> content; //stores bin content + vector <int> bin_num; //stores bin number + + + //Loop over each wire + for(sensewire=1; sensewire<=total_wires; sensewire++) { + + //Loop over each bin for individual wire drift time histo + for(bin=0; bin < bin_max[sensewire-1]; bin++) { + + content_bin = cell_dt[sensewire-1]->GetBinContent(bin); //get bin content for all bins in a wire + + content.push_back(content_bin); //add bin content to array + bin_num.push_back(bin); //add bin number to array + + + // check if 2 bin contents have been stored and examine if these contents exceed or not 20% of peak + if (content.size() == 2) { + + //initialize counter to count how many bin contents >= 20% + counts = 0; + + // Loop over 2 bin contents stored in array content + for (j=0; j<2; j++){ + + if(content[j] > = twenty_perc_maxContent[sensewire-1]){ + counts = counts+1; + + if(counts >= 2) { goto stop;} + + + } + + content.clear(); + bin_num.clear(); + + } + + } + } + + //Print the time(ns) and BIN NUM corresponding to 20% of MAX content + //if 2/2 elements exceeds 20% of Max content (for each plane) + + stop: + ref_time[sensewire-1] = cell_dt[sensewire-1] ->GetXaxis() -> GetBinCenter(bin_num[0]); //Get time corresponding ~20% Max BIN CONTENT + + //cout << " ******* " << "Wire " << sensewire << " ******* " << endl; + //cout << "time (20% of Max BIN): " << ref_time[sensewire-1] << " ns" << endl; + //cout << "BIN: " << bin_num[0] << endl; + + + //*********************************************************// + //*******Extract the "t0" Using a Fitting Procedure********// + //*********************************************************// + + //Declarations + int time_init; //start fit value + int time_final; //end fit value + int t_zero; + int entries; //entries for each wire + + double m; //slope + double y_int; //y-intercept + double m_err; + double y_int_err; + double t_zero_err; + + //Get time corresponding to bin (fit range) + time_init = cell_dt[sensewire-1] -> GetXaxis() -> GetBinCenter(bin_num[0]-5); //choose bin range over which to fit + time_final = cell_dt[sensewire-1] -> GetXaxis() -> GetBinCenter(bin_num[0]+5); + + //Create Fit Function + TF1* tZero_fit = new TF1("tZero_fit", "[0]*x + [1]", time_init, time_final); + + //Set Parameter Names and Values + tZero_fit->SetParName(0, "slope"); + tZero_fit->SetParName(1, "y-int"); + tZero_fit->SetParameter(0, 1.0); + tZero_fit->SetParameter(1, 1.0); + + //Fit Function in specified range + cell_dt[sensewire-1]->Fit("tZero_fit", "QR"); + + //Get Parameters and their errors + m = tZero_fit->GetParameter(0); + y_int = tZero_fit->GetParameter(1); + m_err = tZero_fit->GetParError(0); + y_int_err = tZero_fit->GetParError(1); + + //Calculate error on t0 using error propagation method of expanding partial derivatives + t_zero = - y_int/m; + t_zero_err = sqrt(y_int_err*y_int_err/(m*m) + y_int*y_int*m_err*m_err/(m*m*m*m) ); + entries = cell_dt[sensewire-1]->GetEntries(); //number of entries (triggers) per wire + + //Write "t0" values to file + ofs << sensewire << " " << t_zero << " " << t_zero_err << " " << entries << endl; + + //Change to output root file and write fitted histos to file + g->cd(); + cell_dt[sensewire-1]->Write(); + + } + + // Make Plot of t0 versus Wire Number + + TCanvas *t = new TCanvas("t", "", 2000,500); + t->SetGrid(); + + + TGraphErrors *graph = new TGraphErrors(t_zero_file, "%lg %lg %lg"); + graph->SetName("graph"); + TString title = "DC"+plane_names[ip]+": t0 versus sensewire"; + graph->SetTitle(title); + graph->SetMarkerStyle(20); + graph->SetMarkerColor(1); + graph->GetXaxis()->SetLimits(0., total_wires); + graph->GetXaxis()->SetTitle("Wire Number"); + graph->GetXaxis()->CenterTitle(); + graph->GetYaxis()->SetTitle("t-Zero (ns)"); + graph->GetYaxis()->CenterTitle(); + graph->GetYaxis()->SetRangeUser(-50.0, 50.0); + graph->Draw("AP"); + t->Update(); + t->Write(title); //write to a root file + + //close dat file + ofs.close(); + //save plots + //TString tzero_plots = "plots/"+run_NUM +"/hdc"+plane_names[ip]+Form("TESTING_tzero_v_wire_%d.eps", run); + //t->SaveAs(tzero_plots); + + + //*****************************************************************************************// + // CALCULATE THE "t0s" WEIGHTED AVERAGE FOR WIRE DRIFT TIMES WITH ENTRIES > = 300 // + //*****************************************************************************************// + + + //open t0 dat file + ifstream ifs; + ifs.open (t_zero_file); + string line; + + //open new data file to write updated t0 values + TString t_zero_file_corr = "../data_files/" + run + "/hdc_"+plane_names[ip]+Form("tzero_run%d_updated.txt", run_NUM); + ofs.open(t_zero_file_corr); + ofs << " #Wire " << " " << " t_zero " << " " << " t_zero_err " << " " << " entries " << endl; + + //Initialize variables related to weighted avg + double sum_NUM; //numerator of weighted avg + double sum_DEN; //denominator of weighted avg + double weighted_AVG; + double weighted_AVG_err; + + //set them to zero to start sum inside while loop + sum_NUM = 0.0; + sum_DEN = 0.0; + + weighted_AVG; + weighted_AVG_err; + + //read line bt line the t_zero_file + while(getline(ifs, line)) { + if(!line.length()|| line[0] == '#') + continue; + // sensewire = 0, t_zero = 0.0, t_zero_err = 0.0, entries = 0 ; //set values to zero + + sscanf(line.c_str(), "%d %d %lf %d", &sensewire, &t_zero, &t_zero_err, &entries); //assign each of the variables above a data in the t_zero_file + + //Check if entries for each sensewire exceeds a certain number of events + + if (entries>300 && t_zero < 30) { + + //Calculate the weighted average of t0s + sum_NUM = sum_NUM + t_zero/(t_zero_err*t_zero_err); + sum_DEN = sum_DEN + 1.0/(t_zero_err*t_zero_err); + + //cout << "sum_NUM : " << sum_NUM << endl; + //cout << "sum_DEN : " << sum_DEN << endl; + + + + + ofs << sensewire << " " << t_zero << " " << t_zero_err << " " << entries << endl; + + + + } + + } + + + + weighted_AVG = sum_NUM / sum_DEN; + weighted_AVG_err = sqrt( 1.0 / sum_DEN ); + + + + //open new data file to write weighted average of updated t_zero values + + TString t_zero_AVG = Form("../data_files/run%d/tzero_weighted_avg_run%d.txt", run_NUM, run_NUM); + + ofstream ofile; + ofile.open(t_zero_AVG, std::ofstream::out | std::ofstream::app); //open file in and output and append mode + + ofile << " #weighted_AVG " << " " << " DC plane: " << plane_names[ip] << endl; + ofile << weighted_AVG << endl; + + + + + + ifs.close(); + + // Make Plot of t0 versus Wire Number for entries > 300 events + + TCanvas *t1 = new TCanvas("t1", "", 2000,500); + t1->SetGrid(); + + //TString mygraph = "hdc"+plane_names[ip]+Form("_t_zero_run%d.txt", run); + TGraphErrors *graph1 = new TGraphErrors(t_zero_file_corr, "%lg %lg %lg"); + graph1->SetName("graph1"); + TString title1 = "hdc"+plane_names[ip]+": t0 versus sensewire_corrected"; + graph1->SetTitle(title1); + graph1->SetMarkerStyle(20); + graph1->SetMarkerColor(1); + //graph1->GetXaxis()->SetLimits(0., total_wires); + graph1->GetXaxis()->SetTitle("Wire Number"); + graph1->GetXaxis()->CenterTitle(); + graph1->GetYaxis()->SetTitle("t-Zero (ns)"); + graph1->GetYaxis()->CenterTitle(); + graph1->GetYaxis()->SetRangeUser(-50.0, 50.0); + graph1->Draw("AP"); + t1->Update(); + + // Draw TLine + TLine *wght_avg = new TLine(t1->GetUxmin(), weighted_AVG, t1->GetUxmax(), weighted_AVG); + wght_avg->SetLineColor(kRed); + wght_avg->SetLineWidth(2); + wght_avg->SetLineStyle(2); + wght_avg->Draw(); + + //Add text to canvas + TLatex* ltx1 = new TLatex(); + ltx1->DrawLatex(t1->GetUxmax()*0.75,40, Form("Weighted Average = %lf #pm %lf ns", weighted_AVG, weighted_AVG_err) ); + + t1->Write(title1); //write canvas to a root file + + ofs.close(); //close data file + + + + + + + + + + + } + + + + + + +} diff --git a/CALIBRATION/hms_dc_calib/scripts/update_hdcparam.C b/CALIBRATION/hms_dc_calib/scripts/update_hdcparam.C new file mode 100644 index 00000000..85acf3c9 --- /dev/null +++ b/CALIBRATION/hms_dc_calib/scripts/update_hdcparam.C @@ -0,0 +1,111 @@ +//This scirpt will produce an updated version of hdc.param file, with +//the necessary t-zero corrections +#define time_shift 1300.0 + +void update_hdcparam() +{ + + //read run number from input file + int run_NUM; + TString f0 = "input_RUN.txt"; + ifstream infile(f0); + infile >> run_NUM; + + TString run = Form("run%d", run_NUM); + + int lin_NUM = 0; + string t_zero[12]; + double tzero[12]; + string line; + //open t_zero file + ifstream ifs; + ifs.open("../data_files/"+ run +"/tzero_weighted_avg_" + run + ".txt"); + + +while (getline(ifs, line)) + { + + istringstream ss(line); + char id; + + if ( ss >> t_zero) + { + + if (id != '#') //skip comments + { + //count lines + lin_NUM = lin_NUM + 1; + cout << lin_NUM << endl; + t_zero[lin_NUM-1] = line; + tzero[lin_NUM-1] = atof(t_zero[lin_NUM-1].c_str()); // convert string to double + cout << tzero[lin_NUM-1] << endl; + } + + } + + } +ifs.close(); + +//Update hdc.param parameter file +TString hdc_param = "../../../PARAM/HMS/DC/hdc_new.param"; +ofstream ofs(hdc_param); + +ofs << ";---------------------------------------------------------------------" << endl; +ofs <<"; HMS_TRACKING"<< endl; +ofs <<"; CTP parameter file containing all tracking parameters for the HMS "<< endl; +ofs <<";----------------------------------------------------------------------"<< endl; +ofs <<"; sigma of wire chamber resolution for each plane "<< endl; +ofs <<" hdc_sigma = 0.020 "<< endl; +ofs <<" 0.020"<< endl; +ofs <<" 0.020"<< endl; +ofs <<" 0.020"<< endl; +ofs <<" 0.020"<< endl; +ofs <<" 0.020"<< endl; +ofs <<" 0.020"<< endl; +ofs <<" 0.020"<< endl; +ofs <<" 0.020"<< endl; +ofs <<" 0.020"<< endl; +ofs <<" 0.020"<< endl; +ofs <<" 0.020"<< endl; +ofs <<" hdc_tdc_min_win = -25000,-25000,-25000,-25000,-25000,-25000 "<< endl; +ofs <<" -25000,-25000,-25000,-25000,-25000,-25000 "<< endl; +ofs <<" hdc_tdc_max_win = 25000,25000,25000,25000,25000,25000 "<< endl; +ofs <<" 25000,25000,25000,25000,25000,25000 "<< endl; +ofs <<"; hms drift chamber tdc's time per channel "<< endl; +ofs <<" hdc_tdc_time_per_channel = -0.10 "<< endl; +ofs <<"; hms zero time for drift chambers !DECREASING this number moves the hdtime plots to LOWER time. "<< endl; +ofs <<"hdc_plane_time_zero = "; + + +//***************************************************************** +//output all t_0 corrected values to hdc.param +for (int i=0; i<12; i++) { +{ +if (i < = 5){ +ofs << time_shift - tzero[i] << ","; +} +if (i ==6) {ofs << "\n" << time_shift - tzero[6] << ",";} +else if (i>6 && i <11) { +ofs << time_shift - tzero[i] << ","; +} +if (i==11){ ofs << time_shift - tzero[i] << endl;} +} +} +//***************************************************************** +ofs << "\n"; +ofs <<"; Dave Abbott's wire velocity correction "<< endl; +ofs <<"hdc_wire_velocity = 12.0 "<< endl; +ofs <<"hdc_central_time = 7,9,3,4,6,5 "<< endl; +ofs << " 7,5,3,4,6,6" << endl; +ofs.close(); + +//create a t_zero data file copy in another directory that will also use these values +TString tzero_dat = "../data_files/" + run + "/tzero.dat"; +ofstream ofs(tzero_dat); + +for (int i=0; i<12; i++) +{ +ofs << tzero[i] << endl; +} + +} diff --git a/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.C b/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.C new file mode 100644 index 00000000..11c86b9c --- /dev/null +++ b/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.C @@ -0,0 +1,305 @@ +#define wire_drift_times_cxx +#include "wire_drift_times.h" +#include <TH2.h> +#include <TStyle.h> +#include <TCanvas.h> +#define NPLANES 12 + +void wire_drift_times::Loop() +{ +// In a ROOT session, you can do: +// Root > .L wire_drift_times.C +// Root > wire_drift_times t +// Root > t.GetEntry(12); // Fill t data members with entry number 12 +// Root > t.Show(); // Show values of entry 12 +// Root > t.Show(16); // Read and show values of entry 16 +// Root > t.Loop(); // Loop on all entries +// + +// This is the loop skeleton where: +// jentry is the global entry number in the chain +// ientry is the entry number in the current Tree +// Note that the argument to GetEntry must be: +// jentry for TChain::GetEntry +// ientry for TTree::GetEntry and TBranch::GetEntry +// +// To read only selected branches, Insert statements like: +// METHOD1: +// fChain->SetBranchStatus("*",0); // disable all branches +// fChain->SetBranchStatus("branchname",1); // activate branchname +// METHOD2: replace line +// fChain->GetEntry(jentry); //read all branches +//by b_branchname->GetEntry(ientry); //read only this branch + if (fChain == 0) return; + + Long64_t nentries = fChain->GetEntriesFast(); + +//Read Run Number from txt file +int run_NUM; +TString f0 = "input_RUN.txt"; +ifstream infile(f0); +infile >> run_NUM; + + TString run = Form("run%d", run_NUM); +//Declare plane names to loop over +TString plane_names[NPLANES]={"1x1", "1y1", "1u1", "1v1", "1y2", "1x2", "2x1", "2y1", "2u1", "2v1", "2y2", "2x2"}; + +//Declare a root file array to store individual DC cell drift times +TString root_file[NPLANES]; +TFile *g[NPLANES]; + +int total_wires; //integer to store total sense wires for a plane chosen by the user + + Long64_t nbytes = 0, nb = 0; + +//Loop over all planes +for (int ip = 0; ip < NPLANES; ip++){ + +//Initialize a root file array to store individual DC cell drift times +root_file[ip] = "../root_files/" + run + "/hms_DC_"+plane_names[ip]+Form("_%d.root", run_NUM); +g[ip] = new TFile(root_file[ip], "RECREATE"); +g[ip]->cd(); + +/*========================PLANES 1X1,1X2,2X1,2X2=====================================*/ + + //If specific planes are encountered, treat them as follows: + + if(ip==0 || ip==5 || ip==6 || ip==11) { + + total_wires = 113; + TH1F *cell_dt[113]; + TH2F *wire_vs_dt = new TH2F("wire_vs_dt", "", 200., -50., 350., 113., 0.,113.); + + //Initialize wire drift time histograms + for (int wirenum=1; wirenum<=total_wires; wirenum++){ + cell_dt[wirenum-1] = new TH1F(Form("wire_%d", wirenum), "", 200., -50., 350.); + } + + //Loop over all entries (triggers or events) + for (Long64_t jentry=0; jentry<nentries; jentry++) { + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) break; + nb = fChain->GetEntry(jentry); nbytes += nb; + // if (Cut(ientry) < 0) continue; + + if (ip==0) { + for (int i=0; i< Ndata_H_dc_1x1_wirenum; i++){ + wirenum = int(H_dc_1x1_wirenum[i]); + //cout << " wire num: " << H_dc_1x1_wirenum[i] << endl; + //cout << "Time: " << H_dc_1x1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_1x1_time[i]); + wire_vs_dt->Fill(H_dc_1x1_time[i], H_dc_1x1_wirenum[i]); + + } + } + + if (ip==5) { + for (int i=0; i< Ndata_H_dc_1x2_wirenum; i++){ + wirenum = int(H_dc_1x2_wirenum[i]); + //cout << " wire num: " << H_dc_1x2_wirenum[i] << endl; + //cout << "Time: " << H_dc_1x2_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_1x2_time[i]); + wire_vs_dt->Fill(H_dc_1x2_time[i], H_dc_1x2_wirenum[i]); + + } + } + + if (ip==6) { + for (int i=0; i< Ndata_H_dc_2x1_wirenum; i++){ + wirenum = int(H_dc_2x1_wirenum[i]); + //cout << " wire num: " << H_dc_2x1_wirenum[i] << endl; + //cout << "Time: " << H_dc_2x1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_2x1_time[i]); + wire_vs_dt->Fill(H_dc_2x1_time[i], H_dc_2x1_wirenum[i]); + + } + } + + if (ip==11) { + for (int i=0; i< Ndata_H_dc_2x2_wirenum; i++){ + wirenum = int(H_dc_2x2_wirenum[i]); + //cout << " wire num: " << H_dc_2x2_wirenum[i] << endl; + //cout << "Time: " << H_dc_2x2_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_2x2_time[i]); + wire_vs_dt->Fill(H_dc_2x2_time[i], H_dc_2x2_wirenum[i]); + + } + } + + + + } + } + + /*PLANE 1U1, 1V1, 2U1, 2V1*/ + //If specific planes are encountered, treat them as follows: + if(ip==2 || ip==3 || ip==8 || ip==9) { + + total_wires = 107; + TH1F *cell_dt[107]; + TH2F *wire_vs_dt = new TH2F("wire_vs_dt", "", 200., -50., 350., 107., 0.,107.); + + //Initialize wire drift time histograms + for (int wirenum=1; wirenum<=total_wires; wirenum++){ + cell_dt[wirenum-1] = new TH1F(Form("wire_%d", wirenum), "", 200., -50., 350.); + } + + //Loop over all entries (triggers or events) + for (Long64_t jentry=0; jentry<nentries; jentry++) { + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) break; + nb = fChain->GetEntry(jentry); nbytes += nb; + // if (Cut(ientry) < 0) continue; + + if (ip==2) { + for (int i=0; i< Ndata_H_dc_1u1_wirenum; i++){ + wirenum = int(H_dc_1u1_wirenum[i]); + //cout << " wire num: " << H_dc_1u1_wirenum[i] << endl; + //cout << "Time: " << H_dc_1u1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_1u1_time[i]); + wire_vs_dt->Fill(H_dc_1u1_time[i], H_dc_1u1_wirenum[i]); + + } + } + + if (ip==3) { + for (int i=0; i< Ndata_H_dc_1v1_wirenum; i++){ + wirenum = int(H_dc_1v1_wirenum[i]); + //cout << " wire num: " << H_dc_1v1_wirenum[i] << endl; + //cout << "Time: " << H_dc_1v1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_1v1_time[i]); + wire_vs_dt->Fill(H_dc_1v1_time[i], H_dc_1v1_wirenum[i]); + + } + } + + if (ip==8) { + for (int i=0; i< Ndata_H_dc_2u1_wirenum; i++){ + wirenum = int(H_dc_2u1_wirenum[i]); + //cout << " wire num: " << H_dc_2u1_wirenum[i] << endl; + //cout << "Time: " << H_dc_2u1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_2u1_time[i]); + wire_vs_dt->Fill(H_dc_2u1_time[i], H_dc_2u1_wirenum[i]); + + } + } + + if (ip==9) { + for (int i=0; i< Ndata_H_dc_2v1_wirenum; i++){ + wirenum = int(H_dc_2v1_wirenum[i]); + //cout << " wire num: " << H_dc_2v1_wirenum[i] << endl; + //cout << "Time: " << H_dc_2v1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_2v1_time[i]); + wire_vs_dt->Fill(H_dc_2v1_time[i], H_dc_2v1_wirenum[i]); + + } + } + + + + } + } + + /*PLANE 1Y1, 1Y2, 2Y1, 2Y2*/ + //If specific planes are encountered, treat them as follows: + if(ip==1 || ip==4 || ip==7 || ip==10) { + + total_wires = 52; + TH1F *cell_dt[52]; + TH2F *wire_vs_dt = new TH2F("wire_vs_dt", "", 200., -50., 350., 52., 0.,52.); + + //Initialize wire drift time histograms + for (int wirenum=1; wirenum<=total_wires; wirenum++){ + cell_dt[wirenum-1] = new TH1F(Form("wire_%d", wirenum), "", 200., -50., 350.); + } + + //Loop over all entries (triggers or events) + for (Long64_t jentry=0; jentry<nentries; jentry++) { + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) break; + nb = fChain->GetEntry(jentry); nbytes += nb; + // if (Cut(ientry) < 0) continue; + + if (ip==1) { + for (int i=0; i< Ndata_H_dc_1y1_wirenum; i++){ + wirenum = int(H_dc_1y1_wirenum[i]); + //cout << " wire num: " << H_dc_1y1_wirenum[i] << endl; + //cout << "Time: " << H_dc_1y1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_1y1_time[i]); + wire_vs_dt->Fill(H_dc_1y1_time[i], H_dc_1y1_wirenum[i]); + + } + } + + if (ip==4) { + for (int i=0; i< Ndata_H_dc_1y2_wirenum; i++){ + wirenum = int(H_dc_1y2_wirenum[i]); + //cout << " wire num: " << H_dc_1y2_wirenum[i] << endl; + //cout << "Time: " << H_dc_1y2_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_1y2_time[i]); + wire_vs_dt->Fill(H_dc_1y2_time[i], H_dc_1y2_wirenum[i]); + + } + } + + if (ip==7) { + for (int i=0; i< Ndata_H_dc_2y1_wirenum; i++){ + wirenum = int(H_dc_2y1_wirenum[i]); + //cout << " wire num: " << H_dc_2y1_wirenum[i] << endl; + //cout << "Time: " << H_dc_2y1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_2y1_time[i]); + wire_vs_dt->Fill(H_dc_2y1_time[i], H_dc_2y1_wirenum[i]); + + } + } + + if (ip==10) { + for (int i=0; i< Ndata_H_dc_2y2_wirenum; i++){ + wirenum = int(H_dc_2y2_wirenum[i]); + //cout << " wire num: " << H_dc_2y2_wirenum[i] << endl; + //cout << "Time: " << H_dc_2y2_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(H_dc_2y2_time[i]); + wire_vs_dt->Fill(H_dc_2y2_time[i], H_dc_2y2_wirenum[i]); + + } + } + + + + } + } + +//Write wire drift time histos to file +g[ip]->Write(); + cout << "EVERYTHING OK in plane:" << ip << endl; + +} + + + // cout << "\r \r" << (float)sensewire / total_wires * 100.0 << "%" << flush; + +} diff --git a/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.h b/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.h new file mode 100644 index 00000000..e0bafccd --- /dev/null +++ b/CALIBRATION/hms_dc_calib/scripts/wire_drift_times.h @@ -0,0 +1,550 @@ +////////////////////////////////////////////////////////// +// This class has been automatically generated on +// Sun Dec 18 12:03:19 2016 by ROOT version 5.34/18 +// from TTree T/Hall A Analyzer Output DST +// found on file: test_259.root +////////////////////////////////////////////////////////// + +#ifndef wire_drift_times_h +#define wire_drift_times_h + +#include <TROOT.h> +#include <TChain.h> +#include <TFile.h> + +// Header file for the classes stored in the TTree if any. + +// Fixed size dimensions of array or collections stored in the TTree if any. + +class wire_drift_times { +public : + TTree *fChain; //!pointer to the analyzed TTree or TChain + Int_t fCurrent; //!current Tree number in a TChain + + // Declaration of leaf types + Int_t Ndata_H_dc_1u1_dist; + Double_t H_dc_1u1_dist[107]; //[Ndata.H.dc.1u1.dist] + Int_t Ndata_H_dc_1u1_rawtdc; + Double_t H_dc_1u1_rawtdc[107]; //[Ndata.H.dc.1u1.rawtdc] + Int_t Ndata_H_dc_1u1_time; + Double_t H_dc_1u1_time[107]; //[Ndata.H.dc.1u1.time] + Int_t Ndata_H_dc_1u1_wirenum; + Double_t H_dc_1u1_wirenum[107]; //[Ndata.H.dc.1u1.wirenum] + Int_t Ndata_H_dc_1v1_dist; + Double_t H_dc_1v1_dist[107]; //[Ndata.H.dc.1v1.dist] + Int_t Ndata_H_dc_1v1_rawtdc; + Double_t H_dc_1v1_rawtdc[107]; //[Ndata.H.dc.1v1.rawtdc] + Int_t Ndata_H_dc_1v1_time; + Double_t H_dc_1v1_time[107]; //[Ndata.H.dc.1v1.time] + Int_t Ndata_H_dc_1v1_wirenum; + Double_t H_dc_1v1_wirenum[107]; //[Ndata.H.dc.1v1.wirenum] + Int_t Ndata_H_dc_1x1_dist; + Double_t H_dc_1x1_dist[113]; //[Ndata.H.dc.1x1.dist] + Int_t Ndata_H_dc_1x1_rawtdc; + Double_t H_dc_1x1_rawtdc[113]; //[Ndata.H.dc.1x1.rawtdc] + Int_t Ndata_H_dc_1x1_time; + Double_t H_dc_1x1_time[113]; //[Ndata.H.dc.1x1.time] + Int_t Ndata_H_dc_1x1_wirenum; + Double_t H_dc_1x1_wirenum[113]; //[Ndata.H.dc.1x1.wirenum] + Int_t Ndata_H_dc_1x2_dist; + Double_t H_dc_1x2_dist[113]; //[Ndata.H.dc.1x2.dist] + Int_t Ndata_H_dc_1x2_rawtdc; + Double_t H_dc_1x2_rawtdc[113]; //[Ndata.H.dc.1x2.rawtdc] + Int_t Ndata_H_dc_1x2_time; + Double_t H_dc_1x2_time[113]; //[Ndata.H.dc.1x2.time] + Int_t Ndata_H_dc_1x2_wirenum; + Double_t H_dc_1x2_wirenum[113]; //[Ndata.H.dc.1x2.wirenum] + Int_t Ndata_H_dc_1y1_dist; + Double_t H_dc_1y1_dist[52]; //[Ndata.H.dc.1y1.dist] + Int_t Ndata_H_dc_1y1_rawtdc; + Double_t H_dc_1y1_rawtdc[52]; //[Ndata.H.dc.1y1.rawtdc] + Int_t Ndata_H_dc_1y1_time; + Double_t H_dc_1y1_time[52]; //[Ndata.H.dc.1y1.time] + Int_t Ndata_H_dc_1y1_wirenum; + Double_t H_dc_1y1_wirenum[52]; //[Ndata.H.dc.1y1.wirenum] + Int_t Ndata_H_dc_1y2_dist; + Double_t H_dc_1y2_dist[52]; //[Ndata.H.dc.1y2.dist] + Int_t Ndata_H_dc_1y2_rawtdc; + Double_t H_dc_1y2_rawtdc[52]; //[Ndata.H.dc.1y2.rawtdc] + Int_t Ndata_H_dc_1y2_time; + Double_t H_dc_1y2_time[52]; //[Ndata.H.dc.1y2.time] + Int_t Ndata_H_dc_1y2_wirenum; + Double_t H_dc_1y2_wirenum[52]; //[Ndata.H.dc.1y2.wirenum] + Int_t Ndata_H_dc_2u1_dist; + Double_t H_dc_2u1_dist[107]; //[Ndata.H.dc.2u1.dist] + Int_t Ndata_H_dc_2u1_rawtdc; + Double_t H_dc_2u1_rawtdc[107]; //[Ndata.H.dc.2u1.rawtdc] + Int_t Ndata_H_dc_2u1_time; + Double_t H_dc_2u1_time[107]; //[Ndata.H.dc.2u1.time] + Int_t Ndata_H_dc_2u1_wirenum; + Double_t H_dc_2u1_wirenum[107]; //[Ndata.H.dc.2u1.wirenum] + Int_t Ndata_H_dc_2v1_dist; + Double_t H_dc_2v1_dist[107]; //[Ndata.H.dc.2v1.dist] + Int_t Ndata_H_dc_2v1_rawtdc; + Double_t H_dc_2v1_rawtdc[107]; //[Ndata.H.dc.2v1.rawtdc] + Int_t Ndata_H_dc_2v1_time; + Double_t H_dc_2v1_time[107]; //[Ndata.H.dc.2v1.time] + Int_t Ndata_H_dc_2v1_wirenum; + Double_t H_dc_2v1_wirenum[107]; //[Ndata.H.dc.2v1.wirenum] + Int_t Ndata_H_dc_2x1_dist; + Double_t H_dc_2x1_dist[113]; //[Ndata.H.dc.2x1.dist] + Int_t Ndata_H_dc_2x1_rawtdc; + Double_t H_dc_2x1_rawtdc[113]; //[Ndata.H.dc.2x1.rawtdc] + Int_t Ndata_H_dc_2x1_time; + Double_t H_dc_2x1_time[113]; //[Ndata.H.dc.2x1.time] + Int_t Ndata_H_dc_2x1_wirenum; + Double_t H_dc_2x1_wirenum[113]; //[Ndata.H.dc.2x1.wirenum] + Int_t Ndata_H_dc_2x2_dist; + Double_t H_dc_2x2_dist[113]; //[Ndata.H.dc.2x2.dist] + Int_t Ndata_H_dc_2x2_rawtdc; + Double_t H_dc_2x2_rawtdc[113]; //[Ndata.H.dc.2x2.rawtdc] + Int_t Ndata_H_dc_2x2_time; + Double_t H_dc_2x2_time[113]; //[Ndata.H.dc.2x2.time] + Int_t Ndata_H_dc_2x2_wirenum; + Double_t H_dc_2x2_wirenum[113]; //[Ndata.H.dc.2x2.wirenum] + Int_t Ndata_H_dc_2y1_dist; + Double_t H_dc_2y1_dist[52]; //[Ndata.H.dc.2y1.dist] + Int_t Ndata_H_dc_2y1_rawtdc; + Double_t H_dc_2y1_rawtdc[52]; //[Ndata.H.dc.2y1.rawtdc] + Int_t Ndata_H_dc_2y1_time; + Double_t H_dc_2y1_time[52]; //[Ndata.H.dc.2y1.time] + Int_t Ndata_H_dc_2y1_wirenum; + Double_t H_dc_2y1_wirenum[52]; //[Ndata.H.dc.2y1.wirenum] + Int_t Ndata_H_dc_2y2_dist; + Double_t H_dc_2y2_dist[52]; //[Ndata.H.dc.2y2.dist] + Int_t Ndata_H_dc_2y2_rawtdc; + Double_t H_dc_2y2_rawtdc[52]; //[Ndata.H.dc.2y2.rawtdc] + Int_t Ndata_H_dc_2y2_time; + Double_t H_dc_2y2_time[52]; //[Ndata.H.dc.2y2.time] + Int_t Ndata_H_dc_2y2_wirenum; + Double_t H_dc_2y2_wirenum[52]; //[Ndata.H.dc.2y2.wirenum] + Int_t Ndata_H_dc_residual; + Double_t H_dc_residual[12]; //[Ndata.H.dc.residual] + Int_t Ndata_H_dc_x; + Double_t H_dc_x[8]; //[Ndata.H.dc.x] + Int_t Ndata_H_dc_xp; + Double_t H_dc_xp[8]; //[Ndata.H.dc.xp] + Int_t Ndata_H_dc_y; + Double_t H_dc_y[8]; //[Ndata.H.dc.y] + Int_t Ndata_H_dc_yp; + Double_t H_dc_yp[8]; //[Ndata.H.dc.yp] + Double_t H_dc_1u1_nhit; + Double_t H_dc_1v1_nhit; + Double_t H_dc_1x1_nhit; + Double_t H_dc_1x2_nhit; + Double_t H_dc_1y1_nhit; + Double_t H_dc_1y2_nhit; + Double_t H_dc_2u1_nhit; + Double_t H_dc_2v1_nhit; + Double_t H_dc_2x1_nhit; + Double_t H_dc_2x2_nhit; + Double_t H_dc_2y1_nhit; + Double_t H_dc_2y2_nhit; + Double_t H_dc_Ch1_maxhits; + Double_t H_dc_Ch1_nhit; + Double_t H_dc_Ch1_spacepoints; + Double_t H_dc_Ch1_trawhit; + Double_t H_dc_Ch2_maxhits; + Double_t H_dc_Ch2_nhit; + Double_t H_dc_Ch2_spacepoints; + Double_t H_dc_Ch2_trawhit; + Double_t H_dc_nhit; + Double_t H_dc_nsp; + Double_t H_dc_ntrack; + Double_t H_dc_stubtest; + Double_t H_dc_tnhit; + Double_t H_dc_trawhit; + + //THaEvent *Event_Branch; + ULong64_t fEvtHdr_fEvtTime; + UInt_t fEvtHdr_fEvtNum; + Int_t fEvtHdr_fEvtType; + Int_t fEvtHdr_fEvtLen; + Int_t fEvtHdr_fHelicity; + Int_t fEvtHdr_fTargetPol; + Int_t fEvtHdr_fRun; + + // List of branches + TBranch *b_Ndata_H_dc_1u1_dist; //! + TBranch *b_H_dc_1u1_dist; //! + TBranch *b_Ndata_H_dc_1u1_rawtdc; //! + TBranch *b_H_dc_1u1_rawtdc; //! + TBranch *b_Ndata_H_dc_1u1_time; //! + TBranch *b_H_dc_1u1_time; //! + TBranch *b_Ndata_H_dc_1u1_wirenum; //! + TBranch *b_H_dc_1u1_wirenum; //! + TBranch *b_Ndata_H_dc_1v1_dist; //! + TBranch *b_H_dc_1v1_dist; //! + TBranch *b_Ndata_H_dc_1v1_rawtdc; //! + TBranch *b_H_dc_1v1_rawtdc; //! + TBranch *b_Ndata_H_dc_1v1_time; //! + TBranch *b_H_dc_1v1_time; //! + TBranch *b_Ndata_H_dc_1v1_wirenum; //! + TBranch *b_H_dc_1v1_wirenum; //! + TBranch *b_Ndata_H_dc_1x1_dist; //! + TBranch *b_H_dc_1x1_dist; //! + TBranch *b_Ndata_H_dc_1x1_rawtdc; //! + TBranch *b_H_dc_1x1_rawtdc; //! + TBranch *b_Ndata_H_dc_1x1_time; //! + TBranch *b_H_dc_1x1_time; //! + TBranch *b_Ndata_H_dc_1x1_wirenum; //! + TBranch *b_H_dc_1x1_wirenum; //! + TBranch *b_Ndata_H_dc_1x2_dist; //! + TBranch *b_H_dc_1x2_dist; //! + TBranch *b_Ndata_H_dc_1x2_rawtdc; //! + TBranch *b_H_dc_1x2_rawtdc; //! + TBranch *b_Ndata_H_dc_1x2_time; //! + TBranch *b_H_dc_1x2_time; //! + TBranch *b_Ndata_H_dc_1x2_wirenum; //! + TBranch *b_H_dc_1x2_wirenum; //! + TBranch *b_Ndata_H_dc_1y1_dist; //! + TBranch *b_H_dc_1y1_dist; //! + TBranch *b_Ndata_H_dc_1y1_rawtdc; //! + TBranch *b_H_dc_1y1_rawtdc; //! + TBranch *b_Ndata_H_dc_1y1_time; //! + TBranch *b_H_dc_1y1_time; //! + TBranch *b_Ndata_H_dc_1y1_wirenum; //! + TBranch *b_H_dc_1y1_wirenum; //! + TBranch *b_Ndata_H_dc_1y2_dist; //! + TBranch *b_H_dc_1y2_dist; //! + TBranch *b_Ndata_H_dc_1y2_rawtdc; //! + TBranch *b_H_dc_1y2_rawtdc; //! + TBranch *b_Ndata_H_dc_1y2_time; //! + TBranch *b_H_dc_1y2_time; //! + TBranch *b_Ndata_H_dc_1y2_wirenum; //! + TBranch *b_H_dc_1y2_wirenum; //! + TBranch *b_Ndata_H_dc_2u1_dist; //! + TBranch *b_H_dc_2u1_dist; //! + TBranch *b_Ndata_H_dc_2u1_rawtdc; //! + TBranch *b_H_dc_2u1_rawtdc; //! + TBranch *b_Ndata_H_dc_2u1_time; //! + TBranch *b_H_dc_2u1_time; //! + TBranch *b_Ndata_H_dc_2u1_wirenum; //! + TBranch *b_H_dc_2u1_wirenum; //! + TBranch *b_Ndata_H_dc_2v1_dist; //! + TBranch *b_H_dc_2v1_dist; //! + TBranch *b_Ndata_H_dc_2v1_rawtdc; //! + TBranch *b_H_dc_2v1_rawtdc; //! + TBranch *b_Ndata_H_dc_2v1_time; //! + TBranch *b_H_dc_2v1_time; //! + TBranch *b_Ndata_H_dc_2v1_wirenum; //! + TBranch *b_H_dc_2v1_wirenum; //! + TBranch *b_Ndata_H_dc_2x1_dist; //! + TBranch *b_H_dc_2x1_dist; //! + TBranch *b_Ndata_H_dc_2x1_rawtdc; //! + TBranch *b_H_dc_2x1_rawtdc; //! + TBranch *b_Ndata_H_dc_2x1_time; //! + TBranch *b_H_dc_2x1_time; //! + TBranch *b_Ndata_H_dc_2x1_wirenum; //! + TBranch *b_H_dc_2x1_wirenum; //! + TBranch *b_Ndata_H_dc_2x2_dist; //! + TBranch *b_H_dc_2x2_dist; //! + TBranch *b_Ndata_H_dc_2x2_rawtdc; //! + TBranch *b_H_dc_2x2_rawtdc; //! + TBranch *b_Ndata_H_dc_2x2_time; //! + TBranch *b_H_dc_2x2_time; //! + TBranch *b_Ndata_H_dc_2x2_wirenum; //! + TBranch *b_H_dc_2x2_wirenum; //! + TBranch *b_Ndata_H_dc_2y1_dist; //! + TBranch *b_H_dc_2y1_dist; //! + TBranch *b_Ndata_H_dc_2y1_rawtdc; //! + TBranch *b_H_dc_2y1_rawtdc; //! + TBranch *b_Ndata_H_dc_2y1_time; //! + TBranch *b_H_dc_2y1_time; //! + TBranch *b_Ndata_H_dc_2y1_wirenum; //! + TBranch *b_H_dc_2y1_wirenum; //! + TBranch *b_Ndata_H_dc_2y2_dist; //! + TBranch *b_H_dc_2y2_dist; //! + TBranch *b_Ndata_H_dc_2y2_rawtdc; //! + TBranch *b_H_dc_2y2_rawtdc; //! + TBranch *b_Ndata_H_dc_2y2_time; //! + TBranch *b_H_dc_2y2_time; //! + TBranch *b_Ndata_H_dc_2y2_wirenum; //! + TBranch *b_H_dc_2y2_wirenum; //! + TBranch *b_Ndata_H_dc_residual; //! + TBranch *b_H_dc_residual; //! + TBranch *b_Ndata_H_dc_x; //! + TBranch *b_H_dc_x; //! + TBranch *b_Ndata_H_dc_xp; //! + TBranch *b_H_dc_xp; //! + TBranch *b_Ndata_H_dc_y; //! + TBranch *b_H_dc_y; //! + TBranch *b_Ndata_H_dc_yp; //! + TBranch *b_H_dc_yp; //! + TBranch *b_H_dc_1u1_nhit; //! + TBranch *b_H_dc_1v1_nhit; //! + TBranch *b_H_dc_1x1_nhit; //! + TBranch *b_H_dc_1x2_nhit; //! + TBranch *b_H_dc_1y1_nhit; //! + TBranch *b_H_dc_1y2_nhit; //! + TBranch *b_H_dc_2u1_nhit; //! + TBranch *b_H_dc_2v1_nhit; //! + TBranch *b_H_dc_2x1_nhit; //! + TBranch *b_H_dc_2x2_nhit; //! + TBranch *b_H_dc_2y1_nhit; //! + TBranch *b_H_dc_2y2_nhit; //! + TBranch *b_H_dc_Ch1_maxhits; //! + TBranch *b_H_dc_Ch1_nhit; //! + TBranch *b_H_dc_Ch1_spacepoints; //! + TBranch *b_H_dc_Ch1_trawhit; //! + TBranch *b_H_dc_Ch2_maxhits; //! + TBranch *b_H_dc_Ch2_nhit; //! + TBranch *b_H_dc_Ch2_spacepoints; //! + TBranch *b_H_dc_Ch2_trawhit; //! + TBranch *b_H_dc_nhit; //! + TBranch *b_H_dc_nsp; //! + TBranch *b_H_dc_ntrack; //! + TBranch *b_H_dc_stubtest; //! + TBranch *b_H_dc_tnhit; //! + TBranch *b_H_dc_trawhit; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtTime; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtNum; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtType; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtLen; //! + TBranch *b_Event_Branch_fEvtHdr_fHelicity; //! + TBranch *b_Event_Branch_fEvtHdr_fTargetPol; //! + TBranch *b_Event_Branch_fEvtHdr_fRun; //! + + wire_drift_times(TTree *tree=0); + virtual ~wire_drift_times(); + virtual Int_t Cut(Long64_t entry); + virtual Int_t GetEntry(Long64_t entry); + virtual Long64_t LoadTree(Long64_t entry); + virtual void Init(TTree *tree); + virtual void Loop(); + virtual Bool_t Notify(); + virtual void Show(Long64_t entry = -1); +}; + +#endif + +#ifdef wire_drift_times_cxx +wire_drift_times::wire_drift_times(TTree *tree) : fChain(0) +{ +// if parameter tree is not specified (or zero), connect the file +// used to generate this class and read the Tree. + if (tree == 0) { + int run_NUM; + TString f0 = "input_RUN.txt"; + ifstream infile(f0); + infile >> run_NUM; + + TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject(Form("../../../ROOTfiles/test_%d.root", run_NUM)); + if (!f || !f->IsOpen()) { + f = new TFile(Form("../../../ROOTfiles/test_%d.root", run_NUM)); + } + f->GetObject("T",tree); + + } + Init(tree); +} + +wire_drift_times::~wire_drift_times() +{ + if (!fChain) return; + delete fChain->GetCurrentFile(); +} + +Int_t wire_drift_times::GetEntry(Long64_t entry) +{ +// Read contents of entry. + if (!fChain) return 0; + return fChain->GetEntry(entry); +} +Long64_t wire_drift_times::LoadTree(Long64_t entry) +{ +// Set the environment to read one entry + if (!fChain) return -5; + Long64_t centry = fChain->LoadTree(entry); + if (centry < 0) return centry; + if (fChain->GetTreeNumber() != fCurrent) { + fCurrent = fChain->GetTreeNumber(); + Notify(); + } + return centry; +} + +void wire_drift_times::Init(TTree *tree) +{ + // The Init() function is called when the selector needs to initialize + // a new tree or chain. Typically here the branch addresses and branch + // pointers of the tree will be set. + // It is normally not necessary to make changes to the generated + // code, but the routine can be extended by the user if needed. + // Init() will be called many times when running on PROOF + // (once per file to be processed). + + // Set branch addresses and branch pointers + if (!tree) return; + fChain = tree; + fCurrent = -1; + fChain->SetMakeClass(1); + + fChain->SetBranchAddress("Ndata.H.dc.1u1.dist", &Ndata_H_dc_1u1_dist, &b_Ndata_H_dc_1u1_dist); + fChain->SetBranchAddress("H.dc.1u1.dist", H_dc_1u1_dist, &b_H_dc_1u1_dist); + fChain->SetBranchAddress("Ndata.H.dc.1u1.rawtdc", &Ndata_H_dc_1u1_rawtdc, &b_Ndata_H_dc_1u1_rawtdc); + fChain->SetBranchAddress("H.dc.1u1.rawtdc", H_dc_1u1_rawtdc, &b_H_dc_1u1_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.1u1.time", &Ndata_H_dc_1u1_time, &b_Ndata_H_dc_1u1_time); + fChain->SetBranchAddress("H.dc.1u1.time", H_dc_1u1_time, &b_H_dc_1u1_time); + fChain->SetBranchAddress("Ndata.H.dc.1u1.wirenum", &Ndata_H_dc_1u1_wirenum, &b_Ndata_H_dc_1u1_wirenum); + fChain->SetBranchAddress("H.dc.1u1.wirenum", H_dc_1u1_wirenum, &b_H_dc_1u1_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.1v1.dist", &Ndata_H_dc_1v1_dist, &b_Ndata_H_dc_1v1_dist); + fChain->SetBranchAddress("H.dc.1v1.dist", H_dc_1v1_dist, &b_H_dc_1v1_dist); + fChain->SetBranchAddress("Ndata.H.dc.1v1.rawtdc", &Ndata_H_dc_1v1_rawtdc, &b_Ndata_H_dc_1v1_rawtdc); + fChain->SetBranchAddress("H.dc.1v1.rawtdc", H_dc_1v1_rawtdc, &b_H_dc_1v1_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.1v1.time", &Ndata_H_dc_1v1_time, &b_Ndata_H_dc_1v1_time); + fChain->SetBranchAddress("H.dc.1v1.time", H_dc_1v1_time, &b_H_dc_1v1_time); + fChain->SetBranchAddress("Ndata.H.dc.1v1.wirenum", &Ndata_H_dc_1v1_wirenum, &b_Ndata_H_dc_1v1_wirenum); + fChain->SetBranchAddress("H.dc.1v1.wirenum", H_dc_1v1_wirenum, &b_H_dc_1v1_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.1x1.dist", &Ndata_H_dc_1x1_dist, &b_Ndata_H_dc_1x1_dist); + fChain->SetBranchAddress("H.dc.1x1.dist", H_dc_1x1_dist, &b_H_dc_1x1_dist); + fChain->SetBranchAddress("Ndata.H.dc.1x1.rawtdc", &Ndata_H_dc_1x1_rawtdc, &b_Ndata_H_dc_1x1_rawtdc); + fChain->SetBranchAddress("H.dc.1x1.rawtdc", H_dc_1x1_rawtdc, &b_H_dc_1x1_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.1x1.time", &Ndata_H_dc_1x1_time, &b_Ndata_H_dc_1x1_time); + fChain->SetBranchAddress("H.dc.1x1.time", H_dc_1x1_time, &b_H_dc_1x1_time); + fChain->SetBranchAddress("Ndata.H.dc.1x1.wirenum", &Ndata_H_dc_1x1_wirenum, &b_Ndata_H_dc_1x1_wirenum); + fChain->SetBranchAddress("H.dc.1x1.wirenum", H_dc_1x1_wirenum, &b_H_dc_1x1_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.1x2.dist", &Ndata_H_dc_1x2_dist, &b_Ndata_H_dc_1x2_dist); + fChain->SetBranchAddress("H.dc.1x2.dist", H_dc_1x2_dist, &b_H_dc_1x2_dist); + fChain->SetBranchAddress("Ndata.H.dc.1x2.rawtdc", &Ndata_H_dc_1x2_rawtdc, &b_Ndata_H_dc_1x2_rawtdc); + fChain->SetBranchAddress("H.dc.1x2.rawtdc", H_dc_1x2_rawtdc, &b_H_dc_1x2_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.1x2.time", &Ndata_H_dc_1x2_time, &b_Ndata_H_dc_1x2_time); + fChain->SetBranchAddress("H.dc.1x2.time", H_dc_1x2_time, &b_H_dc_1x2_time); + fChain->SetBranchAddress("Ndata.H.dc.1x2.wirenum", &Ndata_H_dc_1x2_wirenum, &b_Ndata_H_dc_1x2_wirenum); + fChain->SetBranchAddress("H.dc.1x2.wirenum", H_dc_1x2_wirenum, &b_H_dc_1x2_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.1y1.dist", &Ndata_H_dc_1y1_dist, &b_Ndata_H_dc_1y1_dist); + fChain->SetBranchAddress("H.dc.1y1.dist", H_dc_1y1_dist, &b_H_dc_1y1_dist); + fChain->SetBranchAddress("Ndata.H.dc.1y1.rawtdc", &Ndata_H_dc_1y1_rawtdc, &b_Ndata_H_dc_1y1_rawtdc); + fChain->SetBranchAddress("H.dc.1y1.rawtdc", H_dc_1y1_rawtdc, &b_H_dc_1y1_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.1y1.time", &Ndata_H_dc_1y1_time, &b_Ndata_H_dc_1y1_time); + fChain->SetBranchAddress("H.dc.1y1.time", H_dc_1y1_time, &b_H_dc_1y1_time); + fChain->SetBranchAddress("Ndata.H.dc.1y1.wirenum", &Ndata_H_dc_1y1_wirenum, &b_Ndata_H_dc_1y1_wirenum); + fChain->SetBranchAddress("H.dc.1y1.wirenum", H_dc_1y1_wirenum, &b_H_dc_1y1_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.1y2.dist", &Ndata_H_dc_1y2_dist, &b_Ndata_H_dc_1y2_dist); + fChain->SetBranchAddress("H.dc.1y2.dist", H_dc_1y2_dist, &b_H_dc_1y2_dist); + fChain->SetBranchAddress("Ndata.H.dc.1y2.rawtdc", &Ndata_H_dc_1y2_rawtdc, &b_Ndata_H_dc_1y2_rawtdc); + fChain->SetBranchAddress("H.dc.1y2.rawtdc", H_dc_1y2_rawtdc, &b_H_dc_1y2_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.1y2.time", &Ndata_H_dc_1y2_time, &b_Ndata_H_dc_1y2_time); + fChain->SetBranchAddress("H.dc.1y2.time", H_dc_1y2_time, &b_H_dc_1y2_time); + fChain->SetBranchAddress("Ndata.H.dc.1y2.wirenum", &Ndata_H_dc_1y2_wirenum, &b_Ndata_H_dc_1y2_wirenum); + fChain->SetBranchAddress("H.dc.1y2.wirenum", H_dc_1y2_wirenum, &b_H_dc_1y2_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.2u1.dist", &Ndata_H_dc_2u1_dist, &b_Ndata_H_dc_2u1_dist); + fChain->SetBranchAddress("H.dc.2u1.dist", H_dc_2u1_dist, &b_H_dc_2u1_dist); + fChain->SetBranchAddress("Ndata.H.dc.2u1.rawtdc", &Ndata_H_dc_2u1_rawtdc, &b_Ndata_H_dc_2u1_rawtdc); + fChain->SetBranchAddress("H.dc.2u1.rawtdc", H_dc_2u1_rawtdc, &b_H_dc_2u1_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.2u1.time", &Ndata_H_dc_2u1_time, &b_Ndata_H_dc_2u1_time); + fChain->SetBranchAddress("H.dc.2u1.time", H_dc_2u1_time, &b_H_dc_2u1_time); + fChain->SetBranchAddress("Ndata.H.dc.2u1.wirenum", &Ndata_H_dc_2u1_wirenum, &b_Ndata_H_dc_2u1_wirenum); + fChain->SetBranchAddress("H.dc.2u1.wirenum", H_dc_2u1_wirenum, &b_H_dc_2u1_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.2v1.dist", &Ndata_H_dc_2v1_dist, &b_Ndata_H_dc_2v1_dist); + fChain->SetBranchAddress("H.dc.2v1.dist", H_dc_2v1_dist, &b_H_dc_2v1_dist); + fChain->SetBranchAddress("Ndata.H.dc.2v1.rawtdc", &Ndata_H_dc_2v1_rawtdc, &b_Ndata_H_dc_2v1_rawtdc); + fChain->SetBranchAddress("H.dc.2v1.rawtdc", H_dc_2v1_rawtdc, &b_H_dc_2v1_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.2v1.time", &Ndata_H_dc_2v1_time, &b_Ndata_H_dc_2v1_time); + fChain->SetBranchAddress("H.dc.2v1.time", H_dc_2v1_time, &b_H_dc_2v1_time); + fChain->SetBranchAddress("Ndata.H.dc.2v1.wirenum", &Ndata_H_dc_2v1_wirenum, &b_Ndata_H_dc_2v1_wirenum); + fChain->SetBranchAddress("H.dc.2v1.wirenum", H_dc_2v1_wirenum, &b_H_dc_2v1_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.2x1.dist", &Ndata_H_dc_2x1_dist, &b_Ndata_H_dc_2x1_dist); + fChain->SetBranchAddress("H.dc.2x1.dist", H_dc_2x1_dist, &b_H_dc_2x1_dist); + fChain->SetBranchAddress("Ndata.H.dc.2x1.rawtdc", &Ndata_H_dc_2x1_rawtdc, &b_Ndata_H_dc_2x1_rawtdc); + fChain->SetBranchAddress("H.dc.2x1.rawtdc", H_dc_2x1_rawtdc, &b_H_dc_2x1_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.2x1.time", &Ndata_H_dc_2x1_time, &b_Ndata_H_dc_2x1_time); + fChain->SetBranchAddress("H.dc.2x1.time", H_dc_2x1_time, &b_H_dc_2x1_time); + fChain->SetBranchAddress("Ndata.H.dc.2x1.wirenum", &Ndata_H_dc_2x1_wirenum, &b_Ndata_H_dc_2x1_wirenum); + fChain->SetBranchAddress("H.dc.2x1.wirenum", H_dc_2x1_wirenum, &b_H_dc_2x1_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.2x2.dist", &Ndata_H_dc_2x2_dist, &b_Ndata_H_dc_2x2_dist); + fChain->SetBranchAddress("H.dc.2x2.dist", H_dc_2x2_dist, &b_H_dc_2x2_dist); + fChain->SetBranchAddress("Ndata.H.dc.2x2.rawtdc", &Ndata_H_dc_2x2_rawtdc, &b_Ndata_H_dc_2x2_rawtdc); + fChain->SetBranchAddress("H.dc.2x2.rawtdc", H_dc_2x2_rawtdc, &b_H_dc_2x2_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.2x2.time", &Ndata_H_dc_2x2_time, &b_Ndata_H_dc_2x2_time); + fChain->SetBranchAddress("H.dc.2x2.time", H_dc_2x2_time, &b_H_dc_2x2_time); + fChain->SetBranchAddress("Ndata.H.dc.2x2.wirenum", &Ndata_H_dc_2x2_wirenum, &b_Ndata_H_dc_2x2_wirenum); + fChain->SetBranchAddress("H.dc.2x2.wirenum", H_dc_2x2_wirenum, &b_H_dc_2x2_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.2y1.dist", &Ndata_H_dc_2y1_dist, &b_Ndata_H_dc_2y1_dist); + fChain->SetBranchAddress("H.dc.2y1.dist", H_dc_2y1_dist, &b_H_dc_2y1_dist); + fChain->SetBranchAddress("Ndata.H.dc.2y1.rawtdc", &Ndata_H_dc_2y1_rawtdc, &b_Ndata_H_dc_2y1_rawtdc); + fChain->SetBranchAddress("H.dc.2y1.rawtdc", H_dc_2y1_rawtdc, &b_H_dc_2y1_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.2y1.time", &Ndata_H_dc_2y1_time, &b_Ndata_H_dc_2y1_time); + fChain->SetBranchAddress("H.dc.2y1.time", H_dc_2y1_time, &b_H_dc_2y1_time); + fChain->SetBranchAddress("Ndata.H.dc.2y1.wirenum", &Ndata_H_dc_2y1_wirenum, &b_Ndata_H_dc_2y1_wirenum); + fChain->SetBranchAddress("H.dc.2y1.wirenum", H_dc_2y1_wirenum, &b_H_dc_2y1_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.2y2.dist", &Ndata_H_dc_2y2_dist, &b_Ndata_H_dc_2y2_dist); + fChain->SetBranchAddress("H.dc.2y2.dist", H_dc_2y2_dist, &b_H_dc_2y2_dist); + fChain->SetBranchAddress("Ndata.H.dc.2y2.rawtdc", &Ndata_H_dc_2y2_rawtdc, &b_Ndata_H_dc_2y2_rawtdc); + fChain->SetBranchAddress("H.dc.2y2.rawtdc", H_dc_2y2_rawtdc, &b_H_dc_2y2_rawtdc); + fChain->SetBranchAddress("Ndata.H.dc.2y2.time", &Ndata_H_dc_2y2_time, &b_Ndata_H_dc_2y2_time); + fChain->SetBranchAddress("H.dc.2y2.time", H_dc_2y2_time, &b_H_dc_2y2_time); + fChain->SetBranchAddress("Ndata.H.dc.2y2.wirenum", &Ndata_H_dc_2y2_wirenum, &b_Ndata_H_dc_2y2_wirenum); + fChain->SetBranchAddress("H.dc.2y2.wirenum", H_dc_2y2_wirenum, &b_H_dc_2y2_wirenum); + fChain->SetBranchAddress("Ndata.H.dc.residual", &Ndata_H_dc_residual, &b_Ndata_H_dc_residual); + fChain->SetBranchAddress("H.dc.residual", H_dc_residual, &b_H_dc_residual); + fChain->SetBranchAddress("Ndata.H.dc.x", &Ndata_H_dc_x, &b_Ndata_H_dc_x); + fChain->SetBranchAddress("H.dc.x", H_dc_x, &b_H_dc_x); + fChain->SetBranchAddress("Ndata.H.dc.xp", &Ndata_H_dc_xp, &b_Ndata_H_dc_xp); + fChain->SetBranchAddress("H.dc.xp", H_dc_xp, &b_H_dc_xp); + fChain->SetBranchAddress("Ndata.H.dc.y", &Ndata_H_dc_y, &b_Ndata_H_dc_y); + fChain->SetBranchAddress("H.dc.y", H_dc_y, &b_H_dc_y); + fChain->SetBranchAddress("Ndata.H.dc.yp", &Ndata_H_dc_yp, &b_Ndata_H_dc_yp); + fChain->SetBranchAddress("H.dc.yp", H_dc_yp, &b_H_dc_yp); + fChain->SetBranchAddress("H.dc.1u1.nhit", &H_dc_1u1_nhit, &b_H_dc_1u1_nhit); + fChain->SetBranchAddress("H.dc.1v1.nhit", &H_dc_1v1_nhit, &b_H_dc_1v1_nhit); + fChain->SetBranchAddress("H.dc.1x1.nhit", &H_dc_1x1_nhit, &b_H_dc_1x1_nhit); + fChain->SetBranchAddress("H.dc.1x2.nhit", &H_dc_1x2_nhit, &b_H_dc_1x2_nhit); + fChain->SetBranchAddress("H.dc.1y1.nhit", &H_dc_1y1_nhit, &b_H_dc_1y1_nhit); + fChain->SetBranchAddress("H.dc.1y2.nhit", &H_dc_1y2_nhit, &b_H_dc_1y2_nhit); + fChain->SetBranchAddress("H.dc.2u1.nhit", &H_dc_2u1_nhit, &b_H_dc_2u1_nhit); + fChain->SetBranchAddress("H.dc.2v1.nhit", &H_dc_2v1_nhit, &b_H_dc_2v1_nhit); + fChain->SetBranchAddress("H.dc.2x1.nhit", &H_dc_2x1_nhit, &b_H_dc_2x1_nhit); + fChain->SetBranchAddress("H.dc.2x2.nhit", &H_dc_2x2_nhit, &b_H_dc_2x2_nhit); + fChain->SetBranchAddress("H.dc.2y1.nhit", &H_dc_2y1_nhit, &b_H_dc_2y1_nhit); + fChain->SetBranchAddress("H.dc.2y2.nhit", &H_dc_2y2_nhit, &b_H_dc_2y2_nhit); + fChain->SetBranchAddress("H.dc.Ch1.maxhits", &H_dc_Ch1_maxhits, &b_H_dc_Ch1_maxhits); + fChain->SetBranchAddress("H.dc.Ch1.nhit", &H_dc_Ch1_nhit, &b_H_dc_Ch1_nhit); + fChain->SetBranchAddress("H.dc.Ch1.spacepoints", &H_dc_Ch1_spacepoints, &b_H_dc_Ch1_spacepoints); + fChain->SetBranchAddress("H.dc.Ch1.trawhit", &H_dc_Ch1_trawhit, &b_H_dc_Ch1_trawhit); + fChain->SetBranchAddress("H.dc.Ch2.maxhits", &H_dc_Ch2_maxhits, &b_H_dc_Ch2_maxhits); + fChain->SetBranchAddress("H.dc.Ch2.nhit", &H_dc_Ch2_nhit, &b_H_dc_Ch2_nhit); + fChain->SetBranchAddress("H.dc.Ch2.spacepoints", &H_dc_Ch2_spacepoints, &b_H_dc_Ch2_spacepoints); + fChain->SetBranchAddress("H.dc.Ch2.trawhit", &H_dc_Ch2_trawhit, &b_H_dc_Ch2_trawhit); + fChain->SetBranchAddress("H.dc.nhit", &H_dc_nhit, &b_H_dc_nhit); + fChain->SetBranchAddress("H.dc.nsp", &H_dc_nsp, &b_H_dc_nsp); + fChain->SetBranchAddress("H.dc.ntrack", &H_dc_ntrack, &b_H_dc_ntrack); + fChain->SetBranchAddress("H.dc.stubtest", &H_dc_stubtest, &b_H_dc_stubtest); + fChain->SetBranchAddress("H.dc.tnhit", &H_dc_tnhit, &b_H_dc_tnhit); + fChain->SetBranchAddress("H.dc.trawhit", &H_dc_trawhit, &b_H_dc_trawhit); + fChain->SetBranchAddress("fEvtHdr.fEvtTime", &fEvtHdr_fEvtTime, &b_Event_Branch_fEvtHdr_fEvtTime); + fChain->SetBranchAddress("fEvtHdr.fEvtNum", &fEvtHdr_fEvtNum, &b_Event_Branch_fEvtHdr_fEvtNum); + fChain->SetBranchAddress("fEvtHdr.fEvtType", &fEvtHdr_fEvtType, &b_Event_Branch_fEvtHdr_fEvtType); + fChain->SetBranchAddress("fEvtHdr.fEvtLen", &fEvtHdr_fEvtLen, &b_Event_Branch_fEvtHdr_fEvtLen); + fChain->SetBranchAddress("fEvtHdr.fHelicity", &fEvtHdr_fHelicity, &b_Event_Branch_fEvtHdr_fHelicity); + fChain->SetBranchAddress("fEvtHdr.fTargetPol", &fEvtHdr_fTargetPol, &b_Event_Branch_fEvtHdr_fTargetPol); + fChain->SetBranchAddress("fEvtHdr.fRun", &fEvtHdr_fRun, &b_Event_Branch_fEvtHdr_fRun); + Notify(); +} + +Bool_t wire_drift_times::Notify() +{ + // The Notify() function is called when a new file is opened. This + // can be either for a new TTree in a TChain or when when a new TTree + // is started when using PROOF. It is normally not necessary to make changes + // to the generated code, but the routine can be extended by the + // user if needed. The return value is currently not used. + + return kTRUE; +} + +void wire_drift_times::Show(Long64_t entry) +{ +// Print contents of entry. +// If entry is not specified, print current entry + if (!fChain) return; + fChain->Show(entry); +} +Int_t wire_drift_times::Cut(Long64_t entry) +{ +// This function may be called from Loop. +// returns 1 if entry is accepted. +// returns -1 otherwise. + return 1; +} +#endif // #ifdef wire_drift_times_cxx diff --git a/CALIBRATION/hodo_calib/.gitignore b/CALIBRATION/hodo_calib/.gitignore new file mode 100644 index 00000000..016c0321 --- /dev/null +++ b/CALIBRATION/hodo_calib/.gitignore @@ -0,0 +1,4 @@ +*.37 +tofcal.param +tofcal.parampass1 +tofcal diff --git a/CALIBRATION/hodo_calib/Maketof b/CALIBRATION/hodo_calib/Maketof new file mode 100755 index 00000000..41260f4b --- /dev/null +++ b/CALIBRATION/hodo_calib/Maketof @@ -0,0 +1 @@ +gfortran -W -ff2c -fbounds-check -fno-automatic -fdefault-real-8 tofcal.f -L$CERN_ROOT/lib -lmathlib -lpacklib -lkernlib -o tofcal diff --git a/CALIBRATION/hodo_calib/README.md b/CALIBRATION/hodo_calib/README.md new file mode 100644 index 00000000..9a7869d3 --- /dev/null +++ b/CALIBRATION/hodo_calib/README.md @@ -0,0 +1,50 @@ +Hodoscope Calibrations +============================================ +This is directory contains the code for calibrating the hodoscope timing +in SHMS and HMS + +Directory structure +---------------------- +* tofcal.f : Fortran code which execute the calibration. +* Maketof : Script to compile tofcal.f and make executable tofcal +* tofcal.inp : Input file for tofcal.f +* shmstofcal.inp : Version of tofcal.inp for SHMS +* hmstofcal.inp : Version of tofcal.inp for HMS + + + +Compiling code +-------------- +* Execute ./Maketof + +Running code +----------- +* First replay data with either +** HMS: gHcParms->Load("PARAM/HMS/HODO/htofcal.param"); +** SHMS: gHcParms->Load("PARAM/HMS/HODO/ptofcal.param"); +* The replay should put the new file : hfort.37 or pfort.37 in the CALIBRATION/hodo_calib directory +* Copy either hmstofcal.inp or shmstofcal.inp to tofcal.inp +* Execute ./tofcal +* Print out info on the initial chi2 of data and final chi2 of the fit. +* Creates file tofcal.param +* Edit the parameters in tofcal.param into either PARAM/HMS/HODO/hhodo.param or PARAM/SHMS/HODO/phodo.param + +Brief decription of code +------------------------ +* The code fits tcorr = time - offset - path * velocity - adccor / sqrt(ADC) +* Uses paddle 10 positive PMT on plane 1 as the reference PMT ( offset fixed at 0) +* To get data file name. Reads-in the input file: tofcal.inp +* Opens data file + * "0" line separates events + * Should have pair of neg and pos PMTs for each paddle + * Format is : iside ipl ipad tdcval_uncorr pathl zcor tdcval_corr adcval + * iside = 1,2 for pos and neg PMT + * ipl = plane number + * tdcval_uncorr = raw time in ns. The program uses this in optimization. + * pathl = distance for focal plane to the paddle using the track + * zcor = time (ns) for the particle to go from focal plane to paddle. Correction subtracted from tdcval_uncrr + * tdcval_corr = the corrected time in ns. Not used by program. Just gives the initial chi2. + * adcval = ADC value used in fit +* Loops through data determines the number of hits in each PMT. Will only include PMT if the number of hits > 100. +* Again loops through the data filling array with time difference between all pairs PMTs, pathl and adcval. +* Use the CERNLIB routine deqn to invert the matrix and determine the fit parameters. diff --git a/CALIBRATION/hodo_calib/hmstofcal.inp b/CALIBRATION/hodo_calib/hmstofcal.inp new file mode 100644 index 00000000..74c9201d --- /dev/null +++ b/CALIBRATION/hodo_calib/hmstofcal.inp @@ -0,0 +1,4 @@ +hfort.37 + + + diff --git a/CALIBRATION/hodo_calib/shmstofcal.inp b/CALIBRATION/hodo_calib/shmstofcal.inp new file mode 100644 index 00000000..dfa7acf8 --- /dev/null +++ b/CALIBRATION/hodo_calib/shmstofcal.inp @@ -0,0 +1,4 @@ +pfort.37 + + + diff --git a/CALIBRATION/hodo_calib/tofcal.f b/CALIBRATION/hodo_calib/tofcal.f new file mode 100644 index 00000000..0239fbed --- /dev/null +++ b/CALIBRATION/hodo_calib/tofcal.f @@ -0,0 +1,475 @@ + program tofcal +! Fit TOF for Hall C HMS or SOS with the form for each PMT: +! tcorr = time - offset - path * velocity - adccor / sqrt(ADC) +! where offset, velocity, and adccor are parameters +! April 10, 2005 P. Bosted +! Input file: tofcal.inp should contain name of data file to be fit +! First xter of file name should be "h" for HMS data +! and "s" for SOS. +! To generate an input file, set xdumptof = 1 in xdebug.param in +! the PARAM directory, where x=h for HMS, x=s for SOS +! The HMS output will be in fort.37, and the SOS in fort.38 +! The output parameters will be in tofcal.param. Insert these +! into the xhodo.param file that you are using. Make sure to +! erase the old values of sigma, or put the new ones after the +! old ones, so that they get used properly +! Normal values of invadc_offset are between -50 and 50, +! normal values of invadc_velocity are between 12 and 17 (50 is +! default if not enough data for the fit), and normal values of +! shodo_pos_invadc_adc are 20 to 50. Normal values of the sigmas +! are 0.3 to 0.8 nsec. + + implicit none + integer i,j,k,n,nparam,ipn,ipl,idt,idet(1000),nhit(200) + integer ip1(200),ip2(200),ip3(200),ifail,nhit0(200) + integer ipdet(600),iptyp(600),iwork(1000),k1,k2,k3,k4,k5,k6 + real*8 tr(1000),p(1000),zc(1000),tc1(1000),p2(1000),hival,dtc + real*8 ax(1000,1000),bx(1000),sum1(200),sum2(200),sum3(200) + real*8 mean0(200),sig0(200),mean(200),sig(200),dt,adc(1000) + real*8 toff(200),vel(200),quad(200),chisq,df,ttol,adcmin(200) + real*8 avtime,ntime + integer thist(200,10),iloop,adchist(200,18),phist(200,18) + integer thistf(200,50),adchistf(200,50) + integer adchistpm(200,20,2) + + character*80 string + character*40 filename + + open(unit=7,file='tofcal.inp') + read(7,'(a)') filename +c open(unit=8,file='tofcal.out') + open(unit=11,file='tofcal.parampass1') + open(unit=12,file='tofcal.param') +c open(unit=13,file='tofcal.adchist') +c write(13,'(1x,'' xv'',50f5.0)') (20.*(j-0.5),j=1,50) +c open(unit=14,file='tofcal.tdchist') +c write(14,'(1x,'' xv'',50f5.1)') (-5.0+0.2*(j-0.5),j=1,50) + +! first see how many hits per PMT: need at least 100 for fitting +! also make ADC histograms + open(unit=9,file=filename,err=998) + if(filename(1:1).ne.'h'.and.filename(1:1).ne.'p') then + write(6,'(1x,''error, input file name '', + > '' should start with h or p'')') + goto 999 + endif + write(*,*) ' filling adc histograms' + do i=1,10000000 + n=0 + do j=1,1000 + read(9,'(a)',end=10) string + read(string,'(1x,i1)') k + if(k.eq.0) goto 9 + n=n+1 + read(string,'(1x,i1,2i3,5f10.3)') ipn,ipl,idt, + > tr(n),p(n),zc(n),tc1(n),adc(n) + k = min(18, max(1, int((adc(n)/20.)+1))) + idet(n) = 100*(ipn-1) + 20*(ipl-1) + idt + adchist(idet(n), k) = adchist(idet(n), k) + 1 + k = min(50, max(1, int((adc(n)/20.)+1))) + adchistf(idet(n), k) = adchistf(idet(n), k) + 1 + nhit0(idet(n)) = nhit0(idet(n)) + 1. + enddo + 9 continue + enddo + +! find more or less where threshold is + 10 do i=1,200 + adcmin(i)=50. + if(nhit0(i).gt.0.) then +c write(13,'(i3,50i4)') i,(min(999,adchistf(i,j)),j=1,50) + hival=0. + k=0 + do j=1,17 + if(adchist(i,j).gt.hival) then + hival = adchist(i,j) + k = j + endif + enddo +c for test +c do n=1,max(1,k) +c if(adchist(i,n).lt.hival/20.) adcmin(i)=20.*(n-0.5) +c enddo +c write(13,'(1x,''adcmin='',f6.1)') adcmin(i) + endif + enddo + close(unit=9) + do i=1,200 + sum1(i)=0. + sum2(i)=0. + sum3(i)=0. + enddo + +! Do everything twice, 2nd time with tighter tolerance (ttol) on +! time differences, based on first pass + ttol=10.0 + do iloop=1,2 + write(*,*) ' loop = ',iloop +! Initialize the fitting arrays + do i=1,1000 + if(i.le.200) nhit(i)=0 + bx(i)=0. + do j=1,1000 + ax(i,j)=0. + enddo + enddo + +! read in data + open(unit=9,file=filename) + nparam=0 + chisq=0. + df=0. + do i=1,10000000 + n=0 + do j=1,1000 + read(9,'(a)',end=12) string + read(string,'(1x,i1)') k + if(k.eq.0) goto 11 + n=n+1 + read(string,'(1x,i1,2i3,5f10.3)') ipn,ipl,idt, + > tr(n),p(n),zc(n),tc1(n),adc(n) +! linearize the detector numbers + idet(n) = 100*(ipn-1) + 20*(ipl-1) + idt + if(idet(n).lt.1.or.idet(n).gt.200) write(6,'(1x, + > ''error! '',4i4)') ipn,ipl,idt,idet(n) + +! correct raw times for zpos using betap + tr(n) = tr(n)- zc(n) + +! remember path**2 or sqrt(p) or adc + p(n) = min(200., max(0., p(n))) +c adc(n) = min(500, max(0., adc(n))) + p2(n) = 1./sqrt(max(20., adc(n))) + k = min(18, max(1, int(p(n)/7.)+1)) + phist(idet(n), k) = phist(idet(n), k) + 1 +! ignore hits from paddles that are rarely hit + if(nhit0(idet(n)).lt.100) n=n-1 + enddo + +! Loop over all pairs, if at least 6 + 11 if(n.ge.6) then +! see if this is first time a detector is used + do j=1,n + nhit(idet(j))=nhit(idet(j))+1 + +! If first time detector used, assign corresponding parameters +! Note that detector had has a fixed time offset (ip1) of zero +! since all times are relative) + if(nhit(idet(j)).eq.1) then + if(idet(j).eq.10) then + ip1(idet(j))=0 + else + +! fixed time offsets + nparam=nparam+1 + ip1(idet(j))=nparam + ipdet(nparam)=idet(j) + iptyp(nparam)=1 + endif + +! linear term in path + nparam=nparam+1 + ip2(idet(j))=nparam + ipdet(nparam)=idet(j) + iptyp(nparam)=2 + +! quadratic term for path**2 + nparam=nparam+1 + ip3(idet(j))=nparam + ipdet(nparam)=idet(j) + iptyp(nparam)=3 + k=idet(j) +c write(8,'(1x,i3,4i5)') k,nhit(k),ip1(k),ip2(k),ip3(k) + endif + enddo ! loop over n + +! now loop over all pairs in fill in the matrix +! also accumulate sums to get means and sigmas for each detector +! of original corrected times as read in from the file + do j=1,n-1 + do k=j+1,n + dt = tc1(j)-tc1(k) + dtc = dt + if(iloop.eq.1.or.abs(dt).lt.ttol) then + idt = min(10,max(1,int((dt+5.))+1)) + thist(idet(j),idt) = thist(idet(j),idt) + 1 + chisq = chisq + dt**2 + df = df + 1 + sum1(idet(j)) = sum1(idet(j)) + 1. + sum2(idet(j)) = sum2(idet(j)) + dt + sum3(idet(j)) = sum3(idet(j)) + dt**2 + dt = tc1(k)-tc1(j) + idt = min(10,max(1,int((dt+5.))+1)) + thist(idet(k),idt) = thist(idet(k),idt) + 1 + sum1(idet(k)) = sum1(idet(k)) + 1. + sum2(idet(k)) = sum2(idet(k)) + dt + sum3(idet(k)) = sum3(idet(k)) + dt**2 + endif + k1 = idet(j) + k2 = idet(k) + dt = (tr(j) + toff(k1) + vel(k1)*p(j) + quad(k1)*p2(j))- + > (tr(k) + toff(k2) + vel(k2)*p(k) + quad(k2)*p2(k)) + if(iloop.eq.1.or.abs(dt).lt.ttol) then + k1=ip1(idet(j)) + k2=ip1(idet(k)) + k3=ip2(idet(j)) + k4=ip2(idet(k)) + k5=ip3(idet(j)) + k6=ip3(idet(k)) + if(k1.gt.0) then + bx(k1) = bx(k1) - (tr(j)-tr(k)) + ax(k1,k1) = ax(k1,k1) + 1. + ax(k1,k3) = ax(k1,k3) + p(j) + ax(k1,k4) = ax(k1,k4) - p(k) + ax(k1,k5) = ax(k1,k5) + p2(j) + ax(k1,k6) = ax(k1,k6) - p2(k) + ax(k3,k1) = ax(k3,k1) + p(j) + ax(k4,k1) = ax(k4,k1) - p(k) + ax(k5,k1) = ax(k5,k1) + p2(j) + ax(k6,k1) = ax(k6,k1) - p2(k) + endif + if(k1.gt.0.and.k2.gt.0) then + ax(k1,k2) = ax(k1,k2) - 1. + ax(k2,k1) = ax(k2,k1) - 1. + endif + if(k2.gt.0) then + bx(k2) = bx(k2) + (tr(j)-tr(k)) + ax(k2,k2) = ax(k2,k2) + 1. + ax(k2,k3) = ax(k2,k3) - p(j) + ax(k2,k4) = ax(k2,k4) + p(k) + ax(k2,k5) = ax(k2,k5) - p2(j) + ax(k2,k6) = ax(k2,k6) + p2(k) + ax(k3,k2) = ax(k3,k2) - p(j) + ax(k4,k2) = ax(k4,k2) + p(k) + ax(k5,k2) = ax(k5,k2) - p2(j) + ax(k6,k2) = ax(k6,k2) + p2(k) + endif + bx(k3) = bx(k3) - (tr(j)-tr(k)) * p(j) + bx(k4) = bx(k4) + (tr(j)-tr(k)) * p(k) + bx(k5) = bx(k5) - (tr(j)-tr(k)) * p2(j) + bx(k6) = bx(k6) + (tr(j)-tr(k)) * p2(k) + ax(k3,k3) = ax(k3,k3) + p(j)*p(j) + ax(k3,k4) = ax(k3,k4) - p(k)*p(j) + ax(k3,k5) = ax(k3,k5) + p2(j)*p(j) + ax(k3,k6) = ax(k3,k6) - p2(k)*p(j) + ax(k4,k3) = ax(k4,k3) - p(j)*p(k) + ax(k4,k4) = ax(k4,k4) + p(k)*p(k) + ax(k4,k5) = ax(k4,k5) - p2(j)*p(k) + ax(k4,k6) = ax(k4,k6) + p2(k)*p(k) + ax(k5,k3) = ax(k5,k3) + p(j)*p2(j) + ax(k5,k4) = ax(k5,k4) - p(k)*p2(j) + ax(k5,k5) = ax(k5,k5) + p2(j)*p2(j) + ax(k5,k6) = ax(k5,k6) - p2(k)*p2(j) + ax(k6,k3) = ax(k6,k3) - p(j)*p2(k) + ax(k6,k4) = ax(k6,k4) + p(k)*p2(k) + ax(k6,k5) = ax(k6,k5) - p2(j)*p2(k) + ax(k6,k6) = ax(k6,k6) + p2(k)*p2(k) + endif + enddo + enddo + endif ! if n>1 + enddo ! loop over reading in data + 12 close(unit=9) + +! Histograms + if(iloop.eq.1) then + do i=1,200 + if(sum1(i).gt.0.) then +c write(13,'(i3,18i4)') i,(phist(i,j),j=1,18) + endif + enddo + endif +! see how many hits per detector and get mean, sigma of original corr. times + do i=1,200 + if(sum1(i).gt.0.) then + mean0(i)=sum2(i)/sum1(i) + sig0(i)=sqrt(sum3(i)/sum1(i) - mean0(i)**2) + endif +c write(8,'(1x,i3,i5,2f6.2,10i5)') i,nhit(i), +c > mean0(i),sig0(i),(min(9999,thist(i,j)),j=1,10) + sum1(i)=0. + sum2(i)=0. + sum3(i)=0. + do j=1,10 + thist(i,j)=0 + enddo + enddo + df = max(1., df - nparam) + write(6,'(1x,''initial chi2/d.f.='',f8.3,'' for '',f7.0, + > '' deg. freedom'')') chisq/df,df +c write(8,'(1x,''initial chi2/d.f.='',f8.3,'' for '',f7.0, +c > '' deg. freedom'')') chisq/df,df + +! find the solutions + call deqn (nparam,ax,1000,iwork,ifail,1,bx) +c write(8,'(1x,''ifail='',i10)') ifail + +! association of parameters with detectors + do i=1,nparam + if(iptyp(i).eq.1) toff(ipdet(i))=bx(i) + if(iptyp(i).eq.2) vel(ipdet(i))=bx(i) + if(iptyp(i).eq.3) quad(ipdet(i))=bx(i) + enddo + +! write solutions + write(10 + iloop,'(/''; use '',a, + > ''tofusinginvadc=1 if want invadc_offset''/ + > ''; invadc_linear, and invadc_adc to be used''/ + > a,''tofusinginvadc=1'')') + > filename(1:1),filename(1:1) + write(10+iloop,'(/a,''hodo_pos_invadc_offset ='',3(f8.2,'',''), + > f8.2)') filename(1:1),(-1.0*toff(i),i=1,80,20) + do j=2,16 + write(10+iloop,'(1x,'' '',3(f8.2,'',''), + > f8.2)')(-1.0*toff(i),i=j,79+j,20) + enddo + + write(10+iloop,'(/a,''hodo_neg_invadc_offset ='',3(f8.2,'',''), + > f8.2)')filename(1:1),(-1.0*toff(i),i=101,180,20) + do j=2,16 + write(10+iloop,'(1x,'' '',3(f8.2,'',''), + > f8.2)')(-1.0*toff(i),i=100+j,179+j,20) + enddo + + write(10+iloop,'(/a,''hodo_pos_invadc_linear ='',3(f8.2,'',''), + > f8.2)')filename(1:1),( -1./min(-1./15.,vel(i)),i=1,80,20) + do j=2,16 + write(10+iloop,'(1x,'' '',3(f8.2,'',''), + > f8.2)')(-1./min(-1./15.,vel(i)),i=j,79+j,20) + enddo + + write(10+iloop,'(/a,''hodo_neg_invadc_linear ='',3(f8.2,'',''), + > f8.2)')filename(1:1),( -1./min(-1./15.,vel(i)),i=101,180,20) + do j=2,16 + write(10+iloop,'(1x,'' '',3(f8.2,'',''), + > f8.2)')(-1./min(-1./15.,vel(i)),i=100+j,179+j,20) + enddo + + write(10+iloop,'(/a,''hodo_pos_invadc_adc='',3(f9.2,'',''), + > f9.2)')filename(1:1),(-1.*quad(i),i=1,80,20) + do j=2,16 + write(10+iloop,'(1x,'' '',3(f9.2,'',''), + > f9.2)')(-1.*quad(i),i=j,79+j,20) + enddo + + write(10+iloop,'(/a,''hodo_neg_invadc_adc='',3(f9.2,'',''), + > f9.2)')filename(1:1),(-1.0*quad(i),i=101,180,20) + do j=2,16 + write(10+iloop,'(1x,'' '',3(f9.2,'',''), + > f9.2)')(-1.*quad(i),i=100+j,179+j,20) + enddo + + +! read in data again and look at sigmas relative to average fp time + chisq = 0. + df = 0. + open(unit=9,file=filename) + do i=1,10000000 + n=0 + do j=1,1000 + read(9,'(a)',end=14) string + read(string,'(1x,i1)') k + if(k.eq.0) goto 13 + n=n+1 + read(string,'(1x,i1,2i3,5f10.3)') ipn,ipl,idt, + > tr(n),p(n),zc(n),tc1(n),adc(n) + idet(n) = 100*(ipn-1) + 20*(ipl-1) + idt + tr(n) = tr(n)- zc(n) + p(n) = min(200., max(0., p(n))) +c adc(n) = min(500, max(0., adc(n))) + p2(n) = 1./sqrt(max(20., adc(n))) +! ignore hits from paddles that are rarely hit + k1 = idet(n) + dt = (tr(n) + toff(k1) + vel(k1)*p(n) + quad(k1)*p2(n)) + if(nhit0(idet(n)).lt.100) n=n-1 + enddo +! Loop over all pairs, if at least 6 hits + 13 if(n.ge.6) then + do j=1,n + avtime=0. + ntime=0. + do k=1,n + if(k.ne.j) then + k1 = idet(j) + k2 = idet(k) + dt = (tr(k) + toff(k2) + vel(k2)*p(k) + quad(k2)*p2(k)) + avtime = avtime + dt + ntime = ntime + 1. + endif + enddo + avtime = avtime / ntime + dt = (tr(j) + toff(k1) + vel(k1)*p(j) + quad(k1)*p2(j))- + > avtime + if(iloop.eq.2) then + idt = min(50,max(1,int((dt+ 5.)/0.2)+1)) + thistf(idet(j),idt) = thistf(idet(j),idt) + 1 + idt = max(1,min(20, int(adc(j)/50.)+1)) + if(dt.gt.0.) adchistpm(idet(j),idt,1)= + > adchistpm(idet(j),idt,1)+1 + if(dt.le.0.) adchistpm(idet(j),idt,2)= + > adchistpm(idet(j),idt,2)+1 + endif + if(iloop.eq.1.or.abs(dt).lt.ttol) then + idt = min(10,max(1,int((dt+ 5.))+1)) + thist(idet(j),idt) = thist(idet(j),idt) + 1 + chisq = chisq + dt**2 + df = df + 1 + sum1(idet(j)) = sum1(idet(j)) + 1. + sum2(idet(j)) = sum2(idet(j)) + dt + sum3(idet(j)) = sum3(idet(j)) + dt**2 + endif + enddo + endif ! if n>5 + enddo ! loop over reading in data + 14 close(unit=9) +! see how many hits per detector and get mean, sigma of original corr. times + do i=1,200 + sig(i)=100. + if(sum1(i).gt.0.) then + mean(i)=sum2(i)/sum1(i) + sig(i)=sqrt(sum3(i)/sum1(i) - mean(i)**2) + endif +c write(8,'(1x,i3,i5,2f6.2,10i5)') i,nhit(i), +c > mean(i),sig(i),(min(9999,thist(i,j)),j=1,10) +c if(iloop.eq.2) +c > write(14,'(1x,i3,50i5)') i,(min(9999,thistf(i,j)),j=1,50) + sum1(i)=0. + sum2(i)=0. + sum3(i)=0. + do j=1,10 + thist(i,j)=0 + enddo + enddo + df = max(1., df - nparam) + write(6,'(1x,'' final chi2/d.f.='',f8.3,'' for '',f7.0, + > '' deg. freedom'')') chisq/df,df +c write(8,'(1x,'' final chi2/d.f.='',f8.3,'' for '',f7.0, +c > '' deg. freedom'')') chisq/df,df + + write(10+iloop,'(/a,''hodo_pos_sigma ='',3(f8.2,'',''), + > f8.2)')filename(1:1),(sig(i),i= 1, 80,20) + do j=2,16 + write(10+iloop,'(1x,'' '',3(f8.2,'',''), + > f8.2)')(sig(i),i= j, 79+j,20) + enddo + write(10+iloop,'(/a,''hodo_neg_sigma ='',3(f8.2,'',''), + > f8.2)')filename(1:1),(sig(i),i=101,180,20) + do j=2,16 + write(10+iloop,'(1x,'' '',3(f8.2,'',''), + > f8.2)')(sig(i),i=100+j,179+j,20) + enddo + + enddo ! loop over time tolerance + + do i=1,200 +c write(15,'(1x,i3,20i4)') i,(adchistpm(i,j,1),j=1,20) +c write(15,'(1x,i3,20i4)') i,(adchistpm(i,j,2),j=1,20) + enddo + + goto 999 + + 998 write(6,'(1x,''error, cant find file '',a)') filename + + 999 stop + end + diff --git a/CALIBRATION/hodo_calib/tofcal.inp b/CALIBRATION/hodo_calib/tofcal.inp new file mode 100644 index 00000000..dfa7acf8 --- /dev/null +++ b/CALIBRATION/hodo_calib/tofcal.inp @@ -0,0 +1,4 @@ +pfort.37 + + + diff --git a/CALIBRATION/shms_dc_calib/run_Cal.C b/CALIBRATION/shms_dc_calib/run_Cal.C new file mode 100644 index 00000000..8d08d80b --- /dev/null +++ b/CALIBRATION/shms_dc_calib/run_Cal.C @@ -0,0 +1,68 @@ +//SCRIPT TO RUN OVER ALL HMS DC CALIBRATION SCRIPTS AT ONCE, AND UPDATE THE +//NECESSARY PARAMTER FILES hdriftmap.param and hdc.param +void run_Cal() +{ + + //User Input Run + int run_NUM; + cout << "Enter Run Number: " << endl; + cin >> run_NUM; + + //Create input file with run number + ofstream fout; + fout.open("scripts/input_RUN.txt"); + fout << run_NUM << endl; + fout.close(); + + + //Create root and data files Directories if they dont exist + char *dir_root = "mkdir ./root_files/"; + char *dir_data = "mkdir ./data_files/"; + + if (system(dir_root || dir_data) != 0) { + system(dir_root); + system(dir_data); + } + + //Create run Directories if they dont exist + char *dir0 = Form("mkdir ./root_files/run%d", run_NUM); + char *dir1 = Form("mkdir ./data_files/run%d", run_NUM); + + if (system(dir0 || dir1) != 0) { + system(dir0); + system(dir1); + } + + + + //change directories and execute scripts + gSystem->cd("./scripts"); + gSystem->Exec("root -l -q get_pdc_time_histo.C"); + + //Load and Loop over Make Class events to get individual drift times + gROOT->LoadMacro("wire_drift_times.C"); + gROOT->ProcessLine("wire_drift_times t"); //process line allows one to execute interactive root commands from a script, such as this one + gROOT->ProcessLine("t.Loop()"); + //gROOT->ProcessLine(".q"); + gROOT->Reset(); + + + +gSystem->cd("./scripts"); + + + //execute code to get t0 from each wire in each plane + gSystem->Exec("root -l -q -b get_wire_tzero.C"); + + //execute code to update pdc parameter file + gSystem->Exec("root -l -q update_pdcparam.C"); + + //execute code to get t0 corrected drift times + gSystem->Exec("root -l -q get_pdc_time_histo_tzero_corrected.C"); + + //execute code to update LookUp Table + gSystem->Exec("root -l -q get_LookUp_Values.C"); + + + +} diff --git a/CALIBRATION/shms_dc_calib/scripts/get_LookUp_Values.C b/CALIBRATION/shms_dc_calib/scripts/get_LookUp_Values.C new file mode 100644 index 00000000..52f7457e --- /dev/null +++ b/CALIBRATION/shms_dc_calib/scripts/get_LookUp_Values.C @@ -0,0 +1,126 @@ +/*This code produces a lookup table necessary to convert drift times to + drift distances in the shms drift chambers +*/ + +#define NPLANES 12 +#define TOTAL_BINS 137 + +void get_LookUp_Values() { + + + //Read Run Number from txt file + int run_NUM; + TString f0 = "input_RUN.txt"; + ifstream infile(f0); + infile >> run_NUM; + + //Open root file containing drift time histos + TFile *f = new TFile(Form("../root_files/run%d/shms_dc_t0_corrected_%d.root", run_NUM, run_NUM),"READ"); + + //Define histogram array + TH1F *h[NPLANES]; + + //Define the number Drift Chamber planes + TString plane_names[NPLANES]={"1u1", "1u2", "1x1", "1x2", "1v1", "1v2", "2v2", "2v1", "2x2", "2x1", "2u2", "2u1"}; + + //Declare bin properties + int bin_t0[NPLANES]; + int bin_final[NPLANES]; /*Array to store the bin number corresponding to last bin*/ + int bin_Content[NPLANES]; /*Array to store the content (# events) corresponding to the bin with maximum content*/ + double binContent_TOTAL[NPLANES]; /*Array to store sum of all bin contents for each plane*/ + double binSUM[NPLANES]; + int bin; + int binx; + double lookup_value[NPLANES]; /*Array to store lookup values for each plane*/ + + //Create an output file to store lookup values + ofstream ofs; + TString lookup_table = "../../../PARAM/SHMS/DC/pdriftmap_new.param"; + ofs.open (lookup_table); + + + //Set headers for subsequent columns of data + ofs << Form("; Lookup Table: RUN %d", run_NUM) << "\n"; + ofs << "; number of bins in Carlos's time to distance lookup table" << "\n"; + ofs << Form("pdriftbins = %d", TOTAL_BINS+1) << "\n"; + ofs << "; number of 1st bin in Carlos's table in ns" << "\n"; + ofs << "pdrift1stbin=0" << "\n"; + ofs << "; bin size in ns" << "\n"; + ofs << "pdriftbinsz=2" << "\n"; + + + + //Loop over each plane of shms Drift Chambers (DC1 & DC2) + + for (int ip=0; ip<NPLANES; ip++){ + + TString drift_time_histo = "pdc"+plane_names[ip]+"_time: t0_corr"; + + //Get drift time histograms from root file + h[ip] = (TH1F*)f->Get(drift_time_histo); + + //Get bin corresponding to t0 = 0 ns + bin_t0[ip] = h[ip]->GetXaxis()->FindBin(0.0); + + //Get final bin + bin_final[ip] = bin_t0[ip] + TOTAL_BINS; + + + + //Find total BIN Content over entire integration range + binContent_TOTAL[ip] = 0; //set counter to zero + + for (bin = bin_t0[ip]; bin <= bin_final[ip]; bin ++ ) { + + bin_Content[ip] = h[ip] -> GetBinContent(bin); + + binContent_TOTAL[ip] = bin_Content[ip] + binContent_TOTAL[ip]; + + // cout << "Bin: " << bin << endl; + // cout << "Content " << bin_Content[ip] << endl; + // cout << "Content SUM : " << binContent_TOTAL[ip] << endl; + } + + TString headers = "pwc" + plane_names[ip] + "fract="; + ofs << headers; + + //Calculate LookUp Value + + binSUM[ip] = 0.0; + int bin_count = 0; + + for (bin = bin_t0[ip]; bin <= bin_final[ip]; bin++) { + + bin_Content[ip] = h[ip] -> GetBinContent(bin); + binSUM[ip] = binSUM[ip] + bin_Content[ip]; + + + lookup_value[ip] = binSUM[ip] / binContent_TOTAL[ip]; + bin_count = bin_count + 1; + + if (bin_count < = 8 ) { + ofs << setprecision(5) << lookup_value[ip] << fixed << ","; + } + + else if (bin_count >8 && bin_count < 138) { + ofs << setprecision(5) << lookup_value[ip] << ((bin_count+1) % 10 ? "," : "\n") << fixed; + } + else { + ofs << setprecision(5) << lookup_value[ip] << fixed << endl; + } + + } + + } + +} + + + + + + + + + + diff --git a/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo.C b/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo.C new file mode 100644 index 00000000..87669b2b --- /dev/null +++ b/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo.C @@ -0,0 +1,93 @@ +//Script to add necessary drift time histograms/plane from original root file to new root file + + +#define NPLANES 12 + +void get_pdc_time_histo() +{ + + //Read Run Number from txt file + int run_NUM; + TString f0 = "input_RUN.txt"; + ifstream infile(f0); + infile >> run_NUM; + + TString file_name = "../../../ROOTfiles/shms_replay_%d.root"; + + //Create RUN Directories if they dont exist + char *dir0 = Form("mkdir -p ../root_files/run%d", run_NUM); + char *dir1 = Form("mkdir -p ../data_files/run%d", run_NUM); + + if (system(dir0 || dir1) != 0) { + system(dir0); + system(dir1); + } + + //open file + TFile *f = new TFile(Form(file_name.Data(), run_NUM), "READ"); + + //create new file + TFile *g = new TFile(Form("../root_files/run%d/shms_dc_time_%d.root", run_NUM, run_NUM), "RECREATE"); // create new file to store histo + + f->cd(); + + //Get the tree + TTree *tree = (TTree*)f->Get("T"); + TString SPECTROMETER="P"; + TString DETECTOR="dc"; + TString plane_names[NPLANES]={"1u1", "1u2", "1x1", "1x2", "1v1", "1v2", "2v2", "2v1", "2x2", "2x1", "2u2", "2u1"}; + + //Declare Variables to Loop Over + Int_t Ndata[NPLANES]; + Double_t pdc_time[NPLANES][1000]; + + //Declare Histogram array to store AVG drift times per plane + TH1F* h[NPLANES]; + + g->cd(); + + //Loop over each plane + for(Int_t ip=0; ip<NPLANES; ip++){ + TString base_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip]; + TString ndata_name = "Ndata."+base_name+".time"; + TString drift_time = base_name+".time"; + + TString drift_time_histo = "pdc"+plane_names[ip]+"_time"; + TString title = "pdc"+plane_names[ip]+"_drifttime"; + + //Set Branch Address + tree->SetBranchAddress(drift_time, &pdc_time[ip][0]); + tree->SetBranchAddress(ndata_name, &Ndata[ip]); /* Ndata represents number of triggers vs number of hits that each trigger produced. + A hit is refer to as when a trigger(traversing particle), ionizes the WC gas and ionized + electrons reach the rearest sense wire, producing a detectable signal in the O'scope */ + + //Create Histograms + h[ip] = new TH1F(drift_time_histo, title, 200, -50, 350); //set time to 400 ns/200 bins = 2ns/bin + } + + + //Declare number of entries in the tree + Long64_t nentries = tree->GetEntries(); //number of triggers (particles that passed through all 4 hodo planes) + + //Loop over all entries + for(Long64_t i=0; i<nentries; i++) + { + tree->GetEntry(i); + + + //Loop over number of hits for each trigger in each DC plane + for(ip=0; ip<NPLANES; ip++){ + + + for(Int_t j=0; j<Ndata[ip]; j++){ + + h[ip]->Fill(pdc_time[ip][j]); + } + + } + + } + + //Write histograms to file + g->Write(); +} diff --git a/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo_tzero_corrected.C b/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo_tzero_corrected.C new file mode 100644 index 00000000..fa028104 --- /dev/null +++ b/CALIBRATION/shms_dc_calib/scripts/get_pdc_time_histo_tzero_corrected.C @@ -0,0 +1,107 @@ +//Script to add t0 correction to SHMS DC drift times + +#define NPLANES 12 + +void get_pdc_time_histo_tzero_corrected() +{ + + + //read run number from input file + int run_NUM; + TString f0 = "input_RUN.txt"; + ifstream infile(f0); + infile >> run_NUM; + + TString run = Form("run%d", run_NUM); + + + //open file + TFile *f = new TFile(Form("../../../ROOTfiles/shms_replay_%d.root", run_NUM), "READ"); + + //updates file + TFile *g = new TFile(Form("../root_files/run%d/shms_dc_t0_corrected_%d.root", run_NUM, run_NUM), "UPDATE"); // create new file to store histo + + f->cd(); + + //Get the tree + TTree *tree = (TTree*)f->Get("T"); + + TString SPECTROMETER="P"; + TString DETECTOR="dc"; + TString plane_names[NPLANES]={"1u1", "1u2", "1x1", "1x2", "1v1", "1v2", "2v2", "2v1", "2x2", "2x1", "2u2", "2u1"}; + + //Declare Variables to Loop Over + Int_t Ndata[NPLANES]; + Double_t pdc_time[NPLANES][1000]; + + //Declare Histogram array to store AVG drift times per plane + TH1F* h[NPLANES]; + + g->cd(); + + //Loop over each plane + for(Int_t ip=0; ip<NPLANES; ip++){ + TString base_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip]; + TString ndata_name = "Ndata."+base_name+".time"; + TString drift_time = base_name+".time"; + + TString drift_time_histo = "pdc"+plane_names[ip]+"_time: t0_corr"; + TString title = "pdc"+plane_names[ip]+"_drifttime: t0-corrected"; + + //Set Branch Address + tree->SetBranchAddress(drift_time, pdc_time[ip]); + tree->SetBranchAddress(ndata_name, &Ndata[ip]); /* Ndata represents number of triggers vs number of hits that each trigger produced. + A hit is refer to as when a trigger(traversing particle), ionizes the WC gas and ionized + electrons reach the rearest sense wire, producing a detectable signal in the O'scope */ + + //Create Histograms + h[ip] = new TH1F(drift_time_histo, title, 200, -50, 350); //set time to 400 ns/200 bins = 2ns/bin +} + + + //open and read tzero data file + ifstream ifs; + ifs.open("../data_files/" + run + "/tzero.dat"); + + double t_zero_offsets[NPLANES]; + + for (ip=0; ip < 12; ip++) { + ifs >> t_zero_offsets[ip]; //add tzero offsets to array + } + + //Declare number of entries in the tree + Long64_t nentries = tree->GetEntries(); //number of triggers (particles that passed through all 4 hodo planes) + + //Loop over all entries + for(Long64_t i=0; i<nentries; i++) + { + tree->GetEntry(i); + + + //Loop over number of hits for each trigger in each DC plane + for(ip=0; ip<NPLANES; ip++){ + + + + for(Int_t j=0; j<Ndata[ip]; j++){ + + h[ip]->Fill(pdc_time[ip][j] - t_zero_offsets[ip]); //add t0 offset correction + } + + + + + + } + +} + + + + +//Write histograms to file +g->Write(); + + + +} diff --git a/CALIBRATION/shms_dc_calib/scripts/get_wire_tzero.C b/CALIBRATION/shms_dc_calib/scripts/get_wire_tzero.C new file mode 100644 index 00000000..1c6974e2 --- /dev/null +++ b/CALIBRATION/shms_dc_calib/scripts/get_wire_tzero.C @@ -0,0 +1,397 @@ + + +/*Script to extract reference time "t0" for each sense wire in a given HMS Wire Chamber Plane with COSMIC RUNS. +20% (MAX BIN CONTENT) is calculated per wire, and the corresponding bin is fitted linearly about +/- +a certain number of bins and this fit is extrapolated to y=0(x-axis). The extrapolated value is take to be t0*/ + +#include <vector> +#include <TMath> + +#define NPLANES 12 + +void get_wire_tzero() +{ + using namespace std; + + int run_NUM; + TString f0 = "input_RUN.txt"; + ifstream infile(f0); + infile >> run_NUM; + + //check if tzero_weighted_avg text file exists (if it does, DELETE IT, otherwise new values will be appended to it, in addition to pre-existing tzero values) + std::ifstream stream(Form("../data_files/run%d/tzero_weighted_avg_run%d.txt",run_NUM, run_NUM)); + if (stream.good()) + { + gSystem->Exec(Form("rm ../data_files/run%d/tzero_weighted_avg_run%d.txt",run_NUM, run_NUM)); + } + + TString run = Form("run%d", run_NUM); + + //Declare plane names to loop over + TString plane_names[NPLANES]={"1u1", "1u2", "1x1", "1x2", "1v1", "1v2", "2v2", "2v1", "2x2", "2x1", "2u2", "2u1"}; + + //Declare a root file array to store individual DC cell drift times + TString root_file; + TFile *f[NPLANES]; + + int total_wires; //integer to store total sense wires for a plane chosen by the user + + //Loop over all planes + for (int ip = 0; ip < NPLANES; ip++){ + + //READ root file + root_file = "../root_files/"+run+"/shms_DC_"+plane_names[ip]+Form("_%d.root",run_NUM); + f[ip] = new TFile(root_file, "READ"); + + //Create a file output file stream object to write t0 values to data file + ofstream ofs; + TString t_zero_file = "../data_files/" + run + "/hdc_"+plane_names[ip]+Form("tzero_run%d.dat", run_NUM); + ofs.open (t_zero_file); + + //Set headers for subsequent columns of data + ofs << "#WIRE " << " " << "t0" << " " << "t0_err" << " " << " entries " << endl; + + //Create root file to store fitted wire drift times histos and "t0 vs. wirenum" + TString output_root_file = "../root_files/"+run+"/shmsDC_"+plane_names[ip]+Form("run%d_fitted_histos.root", run_NUM); + TFile *g = new TFile(output_root_file,"RECREATE"); + + f[ip]->cd(); //change to file containing the wire drift times histos + + int total_wires; //integer to store total sense wires for a plane chosen by the user + + //Set variables depending on which plane is being studied + if(ip == 0 || ip == 1 || ip == 4 || ip == 5 || ip == 6 || ip == 7 || ip == 10 || ip == 11) { + TH1F *cell_dt[107]; //declare array of histos to store drift times + total_wires=107; + + //Declare bin properties for given sense wires in a plane + + int bin_max[107]; /*Array to store the bin number corresponding to the drift time distribution peak*/ + int bin_maxContent[107]; /*Array to store the content (# events) corresponding to the bin with maximum content*/ + double time_max[107]; /*Array to store the x-axis(drift time (ns)) corresponding to bin_max*/ + double twenty_perc_maxContent[107]; /*Array to store 20% of maximum bin content (peak)*/ + double ref_time[107]; /*Array to store reference times for each sense wire*/ + + } + + else if(ip == 2 || ip == 3 || ip == 8 || ip == 9) { + TH1F *cell_dt[79]; + total_wires=79; + + int bin_max[79]; + int bin_maxContent[79]; + double time_max[79]; + double twenty_perc_maxContent[79]; + double ref_time[79]; + + } + + + /*Get wire histos from root file and loop over each + sense wire of a plane in shms Drift Chambers (DC1 or DC2)*/ + + for (int sensewire=1; sensewire<=total_wires; sensewire++){ + + //Get title of histos in root file + TString drift_time_histo = Form("wire_%d", sensewire); + + //Get drift time histograms from root file + cell_dt[sensewire-1] = (TH1F*)f[ip]->Get(drift_time_histo); + + + //Get bin with Maximum Content + bin_max[sensewire-1] = cell_dt[sensewire-1]->GetMaximumBin(); + + //Get content of bin_max + bin_maxContent[sensewire-1] = cell_dt[sensewire-1]->GetBinContent(bin_max[sensewire-1]); + + //Get time (ns) [x-axis] corresponding to bin_max + time_max[sensewire-1] = cell_dt[sensewire-1]->GetXaxis()->GetBinCenter(bin_max[sensewire-1]); + + //Calculate 20% of max content + twenty_perc_maxContent[sensewire-1] = bin_maxContent[sensewire-1] * 0.20; + + + } + + + + //****************************************************// + //Determine which bin has around 20% max_BinContent *// + //****************************************************// + + + //Declarations + int content_bin; //stores content for each bin + int counts; //a counter used to count the number of bins that have >20% max bin content for a plane + int bin; //store bin number + int j; //jth bin, used to loop over n bins + + //Declare vector arrays + vector<int> content; //stores bin content + vector <int> bin_num; //stores bin number + + + //Loop over each wire + for(sensewire=1; sensewire<=total_wires; sensewire++) { + + //Loop over each bin for individual wire drift time histo + for(bin=0; bin < bin_max[sensewire-1]; bin++) { + + content_bin = cell_dt[sensewire-1]->GetBinContent(bin); //get bin content for all bins in a wire + + content.push_back(content_bin); //add bin content to array + bin_num.push_back(bin); //add bin number to array + + + // check if 2 bin contents have been stored and examine if these contents exceed or not 20% of peak + if (content.size() == 2) { + + //initialize counter to count how many bin contents >= 20% + counts = 0; + + // Loop over 2 bin contents stored in array content + for (j=0; j<2; j++){ + + if(content[j] > = twenty_perc_maxContent[sensewire-1]){ + counts = counts+1; + + if(counts >= 2) { goto stop;} + + + } + + content.clear(); + bin_num.clear(); + + } + + } + } + + //Print the time(ns) and BIN NUM corresponding to 20% of MAX content + //if 2/2 elements exceeds 20% of Max content (for each plane) + + stop: + ref_time[sensewire-1] = cell_dt[sensewire-1] ->GetXaxis() -> GetBinCenter(bin_num[0]); //Get time corresponding ~20% Max BIN CONTENT + + //cout << " ******* " << "Wire " << sensewire << " ******* " << endl; + //cout << "time (20% of Max BIN): " << ref_time[sensewire-1] << " ns" << endl; + //cout << "BIN: " << bin_num[0] << endl; + + + //*********************************************************// + //*******Extract the "t0" Using a Fitting Procedure********// + //*********************************************************// + + //Declarations + int time_init; //start fit value + int time_final; //end fit value + int t_zero; + int entries; //entries for each wire + + double m; //slope + double y_int; //y-intercept + double m_err; + double y_int_err; + double t_zero_err; + + //Get time corresponding to bin (fit range) + time_init = cell_dt[sensewire-1] -> GetXaxis() -> GetBinCenter(bin_num[0]-5); //choose bin range over which to fit + time_final = cell_dt[sensewire-1] -> GetXaxis() -> GetBinCenter(bin_num[0]+5); + + //Create Fit Function + TF1* tZero_fit = new TF1("tZero_fit", "[0]*x + [1]", time_init, time_final); + + //Set Parameter Names and Values + tZero_fit->SetParName(0, "slope"); + tZero_fit->SetParName(1, "y-int"); + tZero_fit->SetParameter(0, 1.0); + tZero_fit->SetParameter(1, 1.0); + + //Fit Function in specified range + cell_dt[sensewire-1]->Fit("tZero_fit", "QR"); + + //Get Parameters and their errors + m = tZero_fit->GetParameter(0); + y_int = tZero_fit->GetParameter(1); + m_err = tZero_fit->GetParError(0); + y_int_err = tZero_fit->GetParError(1); + + //Calculate error on t0 using error propagation method of expanding partial derivatives + t_zero = - y_int/m; + t_zero_err = sqrt(y_int_err*y_int_err/(m*m) + y_int*y_int*m_err*m_err/(m*m*m*m) ); + entries = cell_dt[sensewire-1]->GetEntries(); //number of entries (triggers) per wire + + //Write "t0" values to file + ofs << sensewire << " " << t_zero << " " << t_zero_err << " " << entries << endl; + + //Change to output root file and write fitted histos to file + g->cd(); + cell_dt[sensewire-1]->Write(); + + } + + // Make Plot of t0 versus Wire Number + + TCanvas *t = new TCanvas("t", "", 2000,500); + t->SetGrid(); + + + TGraphErrors *graph = new TGraphErrors(t_zero_file, "%lg %lg %lg"); + graph->SetName("graph"); + TString title = "DC"+plane_names[ip]+": t0 versus sensewire"; + graph->SetTitle(title); + graph->SetMarkerStyle(20); + graph->SetMarkerColor(1); + graph->GetXaxis()->SetLimits(0., total_wires); + graph->GetXaxis()->SetTitle("Wire Number"); + graph->GetXaxis()->CenterTitle(); + graph->GetYaxis()->SetTitle("t-Zero (ns)"); + graph->GetYaxis()->CenterTitle(); + graph->GetYaxis()->SetRangeUser(-50.0, 50.0); + graph->Draw("AP"); + t->Update(); + t->Write(title); //write to a root file + + //close dat file + ofs.close(); + //save plots + //TString tzero_plots = "plots/"+run_NUM +"/hdc"+plane_names[ip]+Form("TESTING_tzero_v_wire_%d.eps", run); + //t->SaveAs(tzero_plots); + + + //*****************************************************************************************// + // CALCULATE THE "t0s" WEIGHTED AVERAGE FOR WIRE DRIFT TIMES WITH ENTRIES > = 300 // + //*****************************************************************************************// + + + //open t0 dat file + ifstream ifs; + ifs.open (t_zero_file); + string line; + + //open new data file to write updated t0 values + TString t_zero_file_corr = "../data_files/" + run + "/hdc_"+plane_names[ip]+Form("tzero_run%d_updated.txt", run_NUM); + ofs.open(t_zero_file_corr); + ofs << " #Wire " << " " << " t_zero " << " " << " t_zero_err " << " " << " entries " << endl; + + //Initialize variables related to weighted avg + double sum_NUM; //numerator of weighted avg + double sum_DEN; //denominator of weighted avg + double weighted_AVG; + double weighted_AVG_err; + + //set them to zero to start sum inside while loop + sum_NUM = 0.0; + sum_DEN = 0.0; + + weighted_AVG; + weighted_AVG_err; + + //read line bt line the t_zero_file + while(getline(ifs, line)) { + if(!line.length()|| line[0] == '#') + continue; + // sensewire = 0, t_zero = 0.0, t_zero_err = 0.0, entries = 0 ; //set values to zero + + sscanf(line.c_str(), "%d %d %lf %d", &sensewire, &t_zero, &t_zero_err, &entries); //assign each of the variables above a data in the t_zero_file + + //Check if entries for each sensewire exceeds a certain number of events + + if (entries>300 && t_zero < 30) { + + //Calculate the weighted average of t0s + sum_NUM = sum_NUM + t_zero/(t_zero_err*t_zero_err); + sum_DEN = sum_DEN + 1.0/(t_zero_err*t_zero_err); + + //cout << "sum_NUM : " << sum_NUM << endl; + //cout << "sum_DEN : " << sum_DEN << endl; + + + + + ofs << sensewire << " " << t_zero << " " << t_zero_err << " " << entries << endl; + + + + } + + } + + + + weighted_AVG = sum_NUM / sum_DEN; + weighted_AVG_err = sqrt( 1.0 / sum_DEN ); + + + + //open new data file to write weighted average of updated t_zero values + + TString t_zero_AVG = Form("../data_files/run%d/tzero_weighted_avg_run%d.txt", run_NUM, run_NUM); + + ofstream ofile; + ofile.open(t_zero_AVG, std::ofstream::out | std::ofstream::app); //open file in and output and append mode + + ofile << " #weighted_AVG " << " " << " DC plane: " << plane_names[ip] << endl; + ofile << weighted_AVG << endl; + + + + + + ifs.close(); + + // Make Plot of t0 versus Wire Number for entries > 300 events + + TCanvas *t1 = new TCanvas("t1", "", 2000,500); + t1->SetGrid(); + + //TString mygraph = "hdc"+plane_names[ip]+Form("_t_zero_run%d.txt", run); + TGraphErrors *graph1 = new TGraphErrors(t_zero_file_corr, "%lg %lg %lg"); + graph1->SetName("graph1"); + TString title1 = "hdc"+plane_names[ip]+": t0 versus sensewire_corrected"; + graph1->SetTitle(title1); + graph1->SetMarkerStyle(20); + graph1->SetMarkerColor(1); + //graph1->GetXaxis()->SetLimits(0., total_wires); + graph1->GetXaxis()->SetTitle("Wire Number"); + graph1->GetXaxis()->CenterTitle(); + graph1->GetYaxis()->SetTitle("t-Zero (ns)"); + graph1->GetYaxis()->CenterTitle(); + graph1->GetYaxis()->SetRangeUser(-50.0, 50.0); + graph1->Draw("AP"); + t1->Update(); + + // Draw TLine + TLine *wght_avg = new TLine(t1->GetUxmin(), weighted_AVG, t1->GetUxmax(), weighted_AVG); + wght_avg->SetLineColor(kRed); + wght_avg->SetLineWidth(2); + wght_avg->SetLineStyle(2); + wght_avg->Draw(); + + //Add text to canvas + TLatex* ltx1 = new TLatex(); + ltx1->DrawLatex(t1->GetUxmax()*0.75,40, Form("Weighted Average = %lf #pm %lf ns", weighted_AVG, weighted_AVG_err) ); + + t1->Write(title1); //write canvas to a root file + + ofs.close(); //close data file + + + + + + + + + + + } + + + + + + +} diff --git a/CALIBRATION/shms_dc_calib/scripts/input_RUN.txt b/CALIBRATION/shms_dc_calib/scripts/input_RUN.txt new file mode 100644 index 00000000..ce9cd490 --- /dev/null +++ b/CALIBRATION/shms_dc_calib/scripts/input_RUN.txt @@ -0,0 +1 @@ +437 diff --git a/CALIBRATION/shms_dc_calib/scripts/update_pdcparam.C b/CALIBRATION/shms_dc_calib/scripts/update_pdcparam.C new file mode 100644 index 00000000..bc10993b --- /dev/null +++ b/CALIBRATION/shms_dc_calib/scripts/update_pdcparam.C @@ -0,0 +1,111 @@ +//This scirpt will produce an updated version of hdc.param file, with +//the necessary t-zero corrections +#define time_shift 1280.0 + +void update_pdcparam() +{ + + //read run number from input file + int run_NUM; + TString f0 = "input_RUN.txt"; + ifstream infile(f0); + infile >> run_NUM; + + TString run = Form("run%d", run_NUM); + + int lin_NUM = 0; + string t_zero[12]; + double tzero[12]; + string line; + //open t_zero file + ifstream ifs; + ifs.open("../data_files/"+ run +"/tzero_weighted_avg_" + run + ".txt"); + + +while (getline(ifs, line)) + { + + istringstream ss(line); + char id; + + if ( ss >> t_zero) + { + + if (id != '#') //skip comments + { + //count lines + lin_NUM = lin_NUM + 1; + cout << lin_NUM << endl; + t_zero[lin_NUM-1] = line; + tzero[lin_NUM-1] = atof(t_zero[lin_NUM-1].c_str()); // convert string to double + cout << tzero[lin_NUM-1] << endl; + } + + } + + } +ifs.close(); + +//Update pdc.param parameter file +TString pdc_param = "../../../PARAM/SHMS/DC/pdc_tracking_new.param"; +ofstream ofs(pdc_param); + +// ofs << ";---------------------------------------------------------------------" << endl; +// ofs <<"; SHMS_TRACKING"<< endl; +// ofs <<"; CTP parameter file containing all tracking parameters for the SHMS "<< endl; +// ofs <<";----------------------------------------------------------------------"<< endl; +// ofs <<"; sigma of wire chamber resolution for each plane "<< endl; +// ofs <<" pdc_sigma = 0.020 "<< endl; +// ofs <<" 0.020"<< endl; +// ofs <<" 0.020"<< endl; +// ofs <<" 0.020"<< endl; +// ofs <<" 0.020"<< endl; +// ofs <<" 0.020"<< endl; +// ofs <<" 0.020"<< endl; +// ofs <<" 0.020"<< endl; +// ofs <<" 0.020"<< endl; +// ofs <<" 0.020"<< endl; +// ofs <<" 0.020"<< endl; +// ofs <<" 0.020"<< endl; +// ofs <<" pdc_tdc_min_win = -25000,-25000,-25000,-25000,-25000,-25000 "<< endl; +// ofs <<" -25000,-25000,-25000,-25000,-25000,-25000 "<< endl; +// ofs <<" pdc_tdc_max_win = 25000,25000,25000,25000,25000,25000 "<< endl; +// ofs <<" 25000,25000,25000,25000,25000,25000 "<< endl; +// ofs <<"; hms drift chamber tdc's time per channel "<< endl; +// ofs <<" pdc_tdc_time_per_channel = -0.10 "<< endl; +// ofs <<"; hms zero time for drift chambers !DECREASING this number moves the hdtime plots to LOWER time. "<< endl; +// ofs <<"pdc_plane_time_zero = "; + + +//***************************************************************** +//output all t_0 corrected values to pdc.param +for (int i=0; i<12; i++) { +{ +if (i < = 5){ +ofs << time_shift - tzero[i] << ","; +} +if (i ==6) {ofs << "\n" << time_shift - tzero[6] << ",";} +else if (i>6 && i <11) { +ofs << time_shift - tzero[i] << ","; +} +if (i==11){ ofs << time_shift - tzero[i] << endl;} +} +} +//***************************************************************** +// ofs << "\n"; +// ofs <<"; Dave Abbott's wire velocity correction "<< endl; +// ofs <<"pdc_wire_velocity = 12.0 "<< endl; +// ofs <<"pdc_central_time = 7,9,3,4,6,5 "<< endl; +// ofs << " 7,5,3,4,6,6" << endl; +ofs.close(); + +//create a t_zero data file copy in another directory that will also use these values +TString tzero_dat = "../data_files/" + run + "/tzero.dat"; +ofstream ofs(tzero_dat); + +for (int i=0; i<12; i++) +{ +ofs << tzero[i] << endl; +} + +} diff --git a/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.C b/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.C new file mode 100644 index 00000000..7d8cb945 --- /dev/null +++ b/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.C @@ -0,0 +1,282 @@ +#define wire_drift_times_cxx +#include "wire_drift_times.h" +#include <TH2.h> +#include <TStyle.h> +#include <TCanvas.h> +#define NPLANES 12 + +void wire_drift_times::Loop() +{ + // In a ROOT session, you can do: + // Root > .L wire_drift_times.C + // Root > wire_drift_times t + // Root > t.GetEntry(12); // Fill t data members with entry number 12 + // Root > t.Show(); // Show values of entry 12 + // Root > t.Show(16); // Read and show values of entry 16 + // Root > t.Loop(); // Loop on all entries + // + + // This is the loop skeleton where: + // jentry is the global entry number in the chain + // ientry is the entry number in the current Tree + // Note that the argument to GetEntry must be: + // jentry for TChain::GetEntry + // ientry for TTree::GetEntry and TBranch::GetEntry + // + // To read only selected branches, Insert statements like: + // METHOD1: + // fChain->SetBranchStatus("*",0); // disable all branches + // fChain->SetBranchStatus("branchname",1); // activate branchname + // METHOD2: replace line + // fChain->GetEntry(jentry); //read all branches + //by b_branchname->GetEntry(ientry); //read only this branch + if (fChain == 0) return; + + Long64_t nentries = fChain->GetEntriesFast(); + + //Read Run Number from txt file + int run_NUM; + TString f0 = "input_RUN.txt"; + ifstream infile(f0); + infile >> run_NUM; + + TString run = Form("run%d", run_NUM); + //Declare plane names to loop over + TString plane_names[NPLANES]={"1u1", "1u2", "1x1", "1x2", "1v1", "1v2", "2v2", "2v1", "2x2", "2x1", "2u2", "2u1"}; + + //Declare a root file array to store individual DC cell drift times + TString root_file[NPLANES]; + TFile *g[NPLANES]; + + //integer to store total sense wires for a plane chosen by the user + static const Int_t total_wires_x = 79; + static const Int_t total_wires_uv = 107; + + Long64_t nbytes = 0, nb = 0; + + //Loop over all planes + for (int ip = 0; ip < NPLANES; ip++){ + + //Initialize a root file array to store individual DC cell drift times + root_file[ip] = "../root_files/" + run + "/shms_DC_"+plane_names[ip]+Form("_%d.root", run_NUM); + g[ip] = new TFile(root_file[ip], "RECREATE"); + g[ip]->cd(); + + /*========================PLANES 1X1,1X2,2X1,2X2=====================================*/ + + //If specific planes are encountered, treat them as follows: + + /*PLANE 1U1, 1V1, 2U1, 2V1*/ + //If specific planes are encountered, treat them as follows: + if(ip == 0 || ip == 1 || ip == 4 || ip == 5 || ip == 6 || ip == 7 || ip == 10 || ip == 11) { + + TH1F *cell_dt[total_wires_uv]; + TH2F *wire_vs_dt = new TH2F("wire_vs_dt", "", 200., -50., 350., 107., 0.,107.); + + //Initialize wire drift time histograms + for (int wirenum=1; wirenum<=total_wires_uv; wirenum++){ + cell_dt[wirenum-1] = new TH1F(Form("wire_%d", wirenum), "", 200., -50., 350.); + } + + //Loop over all entries (triggers or events) + for (Long64_t jentry=0; jentry<nentries; jentry++) { + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) break; + nb = fChain->GetEntry(jentry); nbytes += nb; + // if (Cut(ientry) < 0) continue; + + if (ip == 0) { + for (int i=0; i< Ndata_P_dc_1u1_wirenum; i++){ + wirenum = int(P_dc_1u1_wirenum[i]); + //cout << " wire num: " << P_dc_1u1_wirenum[i] << endl; + //cout << "Time: " << P_dc_1u1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_1u1_time[i]); + wire_vs_dt->Fill(P_dc_1u1_time[i], P_dc_1u1_wirenum[i]); + + } + } + + if (ip == 1) { + for (int i=0; i< Ndata_P_dc_1u2_wirenum; i++){ + wirenum = int(P_dc_1u2_wirenum[i]); + //cout << " wire num: " << P_dc_1u2_wirenum[i] << endl; + //cout << "Time: " << P_dc_1u2_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_1u2_time[i]); + wire_vs_dt->Fill(P_dc_1u2_time[i], P_dc_1u2_wirenum[i]); + + } + } + + if (ip == 4) { + for (int i=0; i< Ndata_P_dc_1v1_wirenum; i++){ + wirenum = int(P_dc_1v1_wirenum[i]); + //cout << " wire num: " << P_dc_1v1_wirenum[i] << endl; + //cout << "Time: " << P_dc_1v1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_1v1_time[i]); + wire_vs_dt->Fill(P_dc_1v1_time[i], P_dc_1v1_wirenum[i]); + + } + } + + if (ip == 5) { + for (int i=0; i< Ndata_P_dc_1v2_wirenum; i++){ + wirenum = int(P_dc_1v2_wirenum[i]); + //cout << " wire num: " << P_dc_1v2_wirenum[i] << endl; + //cout << "Time: " << P_dc_1v2_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_1v2_time[i]); + wire_vs_dt->Fill(P_dc_1v2_time[i], P_dc_1v2_wirenum[i]); + + } + } + + if (ip == 6) { + for (int i=0; i< Ndata_P_dc_2v2_wirenum; i++){ + wirenum = int(P_dc_2v2_wirenum[i]); + //cout << " wire num: " << P_dc_2v2_wirenum[i] << endl; + //cout << "Time: " << P_dc_2v2_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_2v2_time[i]); + wire_vs_dt->Fill(P_dc_2v2_time[i], P_dc_2v2_wirenum[i]); + + } + } + + if (ip == 7) { + for (int i=0; i< Ndata_P_dc_2v1_wirenum; i++){ + wirenum = int(P_dc_2v1_wirenum[i]); + //cout << " wire num: " << P_dc_2v1_wirenum[i] << endl; + //cout << "Time: " << P_dc_2v1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_2v1_time[i]); + wire_vs_dt->Fill(P_dc_2v1_time[i], P_dc_2v1_wirenum[i]); + + } + } + + if (ip == 10) { + for (int i=0; i< Ndata_P_dc_2u2_wirenum; i++){ + wirenum = int(P_dc_2u2_wirenum[i]); + //cout << " wire num: " << P_dc_2u2_wirenum[i] << endl; + //cout << "Time: " << P_dc_2u2_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_2u2_time[i]); + wire_vs_dt->Fill(P_dc_2u2_time[i], P_dc_2u2_wirenum[i]); + + } + } + + if (ip == 11) { + for (int i=0; i< Ndata_P_dc_2u1_wirenum; i++){ + wirenum = int(P_dc_2u1_wirenum[i]); + //cout << " wire num: " << P_dc_2u1_wirenum[i] << endl; + //cout << "Time: " << P_dc_2u1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_2u1_time[i]); + wire_vs_dt->Fill(P_dc_2u1_time[i], P_dc_2u1_wirenum[i]); + + } + } + + + + } + } + + if(ip == 2 || ip == 3 || ip == 8 || ip == 9) { + + TH1F *cell_dt[total_wires_x]; + TH2F *wire_vs_dt = new TH2F("wire_vs_dt", "", 200., -50., 350., 79., 0., 79.); + + //Initialize wire drift time histograms + for (int wirenum=1; wirenum<=total_wires_x; wirenum++){ + cell_dt[wirenum-1] = new TH1F(Form("wire_%d", wirenum), "", 200., -50., 350.); + } + + //Loop over all entries (triggers or events) + for (Long64_t jentry=0; jentry<nentries; jentry++) { + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) break; + nb = fChain->GetEntry(jentry); nbytes += nb; + // if (Cut(ientry) < 0) continue; + + if (ip == 2) { + for (int i=0; i< Ndata_P_dc_1x1_wirenum; i++){ + wirenum = int(P_dc_1x1_wirenum[i]); + //cout << " wire num: " << P_dc_1x1_wirenum[i] << endl; + //cout << "Time: " << P_dc_1x1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_1x1_time[i]); + wire_vs_dt->Fill(P_dc_1x1_time[i], P_dc_1x1_wirenum[i]); + + } + } + + if (ip == 3) { + for (int i=0; i< Ndata_P_dc_1x2_wirenum; i++){ + wirenum = int(P_dc_1x2_wirenum[i]); + //cout << " wire num: " << P_dc_1x2_wirenum[i] << endl; + //cout << "Time: " << P_dc_1x2_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_1x2_time[i]); + wire_vs_dt->Fill(P_dc_1x2_time[i], P_dc_1x2_wirenum[i]); + + } + } + + if (ip == 8) { + for (int i=0; i< Ndata_P_dc_2x2_wirenum; i++){ + wirenum = int(P_dc_2x2_wirenum[i]); + //cout << " wire num: " << P_dc_2x2_wirenum[i] << endl; + //cout << "Time: " << P_dc_2x2_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_2x2_time[i]); + wire_vs_dt->Fill(P_dc_2x2_time[i], P_dc_2x2_wirenum[i]); + + } + } + + if (ip == 9) { + for (int i=0; i< Ndata_P_dc_2x1_wirenum; i++){ + wirenum = int(P_dc_2x1_wirenum[i]); + //cout << " wire num: " << P_dc_2x1_wirenum[i] << endl; + //cout << "Time: " << P_dc_2x1_time[i] << endl; + + //Fill the Histograms + cell_dt[wirenum-1]->Fill(P_dc_2x1_time[i]); + wire_vs_dt->Fill(P_dc_2x1_time[i], P_dc_2x1_wirenum[i]); + + } + } + + + + } + } + + + + //Write wire drift time histos to file + g[ip]->Write(); + cout << "EVERYTHING OK in plane:" << ip << endl; + + } + + + // cout << "\r \r" << (float)sensewire / total_wires * 100.0 << "%" << flush; + +} diff --git a/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.h b/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.h new file mode 100644 index 00000000..0e6c0b22 --- /dev/null +++ b/CALIBRATION/shms_dc_calib/scripts/wire_drift_times.h @@ -0,0 +1,545 @@ +////////////////////////////////////////////////////////// +// This class has been automatically generated on +// Tue Mar 7 17:30:40 2017 by ROOT version 5.34/36 +// from TTree T/Hall A Analyzer Output DST +// found on file: ROOTfiles/pdc_replay_437.root +////////////////////////////////////////////////////////// + +#ifndef wire_drift_times_h +#define wire_drift_times_h + +#include <TROOT.h> +#include <TChain.h> +#include <TFile.h> + +// Header file for the classes stored in the TTree if any. + +// Fixed size dimensions of array or collections stored in the TTree if any. + +class wire_drift_times { +public : + + TTree *fChain; //!pointer to the analyzed TTree or TChain + Int_t fCurrent; //!current Tree number in a TChain + + // Declaration of leaf types + Int_t Ndata_P_dc_1u1_dist; + Double_t P_dc_1u1_dist[107]; //[Ndata.P.dc.1u1.dist] + Int_t Ndata_P_dc_1u1_rawtdc; + Double_t P_dc_1u1_rawtdc[107]; //[Ndata.P.dc.1u1.rawtdc] + Int_t Ndata_P_dc_1u1_time; + Double_t P_dc_1u1_time[107]; //[Ndata.P.dc.1u1.time] + Int_t Ndata_P_dc_1u1_wirenum; + Double_t P_dc_1u1_wirenum[107]; //[Ndata.P.dc.1u1.wirenum] + Int_t Ndata_P_dc_1u2_dist; + Double_t P_dc_1u2_dist[107]; //[Ndata.P.dc.1u2.dist] + Int_t Ndata_P_dc_1u2_rawtdc; + Double_t P_dc_1u2_rawtdc[107]; //[Ndata.P.dc.1u2.rawtdc] + Int_t Ndata_P_dc_1u2_time; + Double_t P_dc_1u2_time[107]; //[Ndata.P.dc.1u2.time] + Int_t Ndata_P_dc_1u2_wirenum; + Double_t P_dc_1u2_wirenum[107]; //[Ndata.P.dc.1u2.wirenum] + Int_t Ndata_P_dc_1v1_dist; + Double_t P_dc_1v1_dist[107]; //[Ndata.P.dc.1v1.dist] + Int_t Ndata_P_dc_1v1_rawtdc; + Double_t P_dc_1v1_rawtdc[107]; //[Ndata.P.dc.1v1.rawtdc] + Int_t Ndata_P_dc_1v1_time; + Double_t P_dc_1v1_time[107]; //[Ndata.P.dc.1v1.time] + Int_t Ndata_P_dc_1v1_wirenum; + Double_t P_dc_1v1_wirenum[107]; //[Ndata.P.dc.1v1.wirenum] + Int_t Ndata_P_dc_1v2_dist; + Double_t P_dc_1v2_dist[107]; //[Ndata.P.dc.1v2.dist] + Int_t Ndata_P_dc_1v2_rawtdc; + Double_t P_dc_1v2_rawtdc[107]; //[Ndata.P.dc.1v2.rawtdc] + Int_t Ndata_P_dc_1v2_time; + Double_t P_dc_1v2_time[107]; //[Ndata.P.dc.1v2.time] + Int_t Ndata_P_dc_1v2_wirenum; + Double_t P_dc_1v2_wirenum[107]; //[Ndata.P.dc.1v2.wirenum] + Int_t Ndata_P_dc_1x1_dist; + Double_t P_dc_1x1_dist[80]; //[Ndata.P.dc.1x1.dist] + Int_t Ndata_P_dc_1x1_rawtdc; + Double_t P_dc_1x1_rawtdc[80]; //[Ndata.P.dc.1x1.rawtdc] + Int_t Ndata_P_dc_1x1_time; + Double_t P_dc_1x1_time[80]; //[Ndata.P.dc.1x1.time] + Int_t Ndata_P_dc_1x1_wirenum; + Double_t P_dc_1x1_wirenum[80]; //[Ndata.P.dc.1x1.wirenum] + Int_t Ndata_P_dc_1x2_dist; + Double_t P_dc_1x2_dist[80]; //[Ndata.P.dc.1x2.dist] + Int_t Ndata_P_dc_1x2_rawtdc; + Double_t P_dc_1x2_rawtdc[80]; //[Ndata.P.dc.1x2.rawtdc] + Int_t Ndata_P_dc_1x2_time; + Double_t P_dc_1x2_time[80]; //[Ndata.P.dc.1x2.time] + Int_t Ndata_P_dc_1x2_wirenum; + Double_t P_dc_1x2_wirenum[80]; //[Ndata.P.dc.1x2.wirenum] + Int_t Ndata_P_dc_2u1_dist; + Double_t P_dc_2u1_dist[107]; //[Ndata.P.dc.2u1.dist] + Int_t Ndata_P_dc_2u1_rawtdc; + Double_t P_dc_2u1_rawtdc[107]; //[Ndata.P.dc.2u1.rawtdc] + Int_t Ndata_P_dc_2u1_time; + Double_t P_dc_2u1_time[107]; //[Ndata.P.dc.2u1.time] + Int_t Ndata_P_dc_2u1_wirenum; + Double_t P_dc_2u1_wirenum[107]; //[Ndata.P.dc.2u1.wirenum] + Int_t Ndata_P_dc_2u2_dist; + Double_t P_dc_2u2_dist[107]; //[Ndata.P.dc.2u2.dist] + Int_t Ndata_P_dc_2u2_rawtdc; + Double_t P_dc_2u2_rawtdc[107]; //[Ndata.P.dc.2u2.rawtdc] + Int_t Ndata_P_dc_2u2_time; + Double_t P_dc_2u2_time[107]; //[Ndata.P.dc.2u2.time] + Int_t Ndata_P_dc_2u2_wirenum; + Double_t P_dc_2u2_wirenum[107]; //[Ndata.P.dc.2u2.wirenum] + Int_t Ndata_P_dc_2v1_dist; + Double_t P_dc_2v1_dist[107]; //[Ndata.P.dc.2v1.dist] + Int_t Ndata_P_dc_2v1_rawtdc; + Double_t P_dc_2v1_rawtdc[107]; //[Ndata.P.dc.2v1.rawtdc] + Int_t Ndata_P_dc_2v1_time; + Double_t P_dc_2v1_time[107]; //[Ndata.P.dc.2v1.time] + Int_t Ndata_P_dc_2v1_wirenum; + Double_t P_dc_2v1_wirenum[107]; //[Ndata.P.dc.2v1.wirenum] + Int_t Ndata_P_dc_2v2_dist; + Double_t P_dc_2v2_dist[107]; //[Ndata.P.dc.2v2.dist] + Int_t Ndata_P_dc_2v2_rawtdc; + Double_t P_dc_2v2_rawtdc[107]; //[Ndata.P.dc.2v2.rawtdc] + Int_t Ndata_P_dc_2v2_time; + Double_t P_dc_2v2_time[107]; //[Ndata.P.dc.2v2.time] + Int_t Ndata_P_dc_2v2_wirenum; + Double_t P_dc_2v2_wirenum[107]; //[Ndata.P.dc.2v2.wirenum] + Int_t Ndata_P_dc_2x1_dist; + Double_t P_dc_2x1_dist[80]; //[Ndata.P.dc.2x1.dist] + Int_t Ndata_P_dc_2x1_rawtdc; + Double_t P_dc_2x1_rawtdc[80]; //[Ndata.P.dc.2x1.rawtdc] + Int_t Ndata_P_dc_2x1_time; + Double_t P_dc_2x1_time[80]; //[Ndata.P.dc.2x1.time] + Int_t Ndata_P_dc_2x1_wirenum; + Double_t P_dc_2x1_wirenum[80]; //[Ndata.P.dc.2x1.wirenum] + Int_t Ndata_P_dc_2x2_dist; + Double_t P_dc_2x2_dist[80]; //[Ndata.P.dc.2x2.dist] + Int_t Ndata_P_dc_2x2_rawtdc; + Double_t P_dc_2x2_rawtdc[80]; //[Ndata.P.dc.2x2.rawtdc] + Int_t Ndata_P_dc_2x2_time; + Double_t P_dc_2x2_time[80]; //[Ndata.P.dc.2x2.time] + Int_t Ndata_P_dc_2x2_wirenum; + Double_t P_dc_2x2_wirenum[80]; //[Ndata.P.dc.2x2.wirenum] + Int_t Ndata_P_dc_residual; + Double_t P_dc_residual[12]; //[Ndata.P.dc.residual] + Int_t Ndata_P_dc_x; + Double_t P_dc_x[10]; //[Ndata.P.dc.x] + Int_t Ndata_P_dc_xp; + Double_t P_dc_xp[10]; //[Ndata.P.dc.xp] + Int_t Ndata_P_dc_y; + Double_t P_dc_y[10]; //[Ndata.P.dc.y] + Int_t Ndata_P_dc_yp; + Double_t P_dc_yp[10]; //[Ndata.P.dc.yp] + Double_t P_dc_1u1_nhit; + Double_t P_dc_1u2_nhit; + Double_t P_dc_1v1_nhit; + Double_t P_dc_1v2_nhit; + Double_t P_dc_1x1_nhit; + Double_t P_dc_1x2_nhit; + Double_t P_dc_2u1_nhit; + Double_t P_dc_2u2_nhit; + Double_t P_dc_2v1_nhit; + Double_t P_dc_2v2_nhit; + Double_t P_dc_2x1_nhit; + Double_t P_dc_2x2_nhit; + Double_t P_dc_Ch1_maxhits; + Double_t P_dc_Ch1_nhit; + Double_t P_dc_Ch1_spacepoints; + Double_t P_dc_Ch1_trawhit; + Double_t P_dc_Ch2_maxhits; + Double_t P_dc_Ch2_nhit; + Double_t P_dc_Ch2_spacepoints; + Double_t P_dc_Ch2_trawhit; + Double_t P_dc_nhit; + Double_t P_dc_nsp; + Double_t P_dc_ntrack; + Double_t P_dc_stubtest; + Double_t P_dc_tnhit; + Double_t P_dc_trawhit; + //THaEvent *Event_Branch; + ULong64_t fEvtHdr_fEvtTime; + UInt_t fEvtHdr_fEvtNum; + Int_t fEvtHdr_fEvtType; + Int_t fEvtHdr_fEvtLen; + Int_t fEvtHdr_fHelicity; + Int_t fEvtHdr_fTargetPol; + Int_t fEvtHdr_fRun; + + // List of branches + TBranch *b_Ndata_P_dc_1u1_dist; //! + TBranch *b_P_dc_1u1_dist; //! + TBranch *b_Ndata_P_dc_1u1_rawtdc; //! + TBranch *b_P_dc_1u1_rawtdc; //! + TBranch *b_Ndata_P_dc_1u1_time; //! + TBranch *b_P_dc_1u1_time; //! + TBranch *b_Ndata_P_dc_1u1_wirenum; //! + TBranch *b_P_dc_1u1_wirenum; //! + TBranch *b_Ndata_P_dc_1u2_dist; //! + TBranch *b_P_dc_1u2_dist; //! + TBranch *b_Ndata_P_dc_1u2_rawtdc; //! + TBranch *b_P_dc_1u2_rawtdc; //! + TBranch *b_Ndata_P_dc_1u2_time; //! + TBranch *b_P_dc_1u2_time; //! + TBranch *b_Ndata_P_dc_1u2_wirenum; //! + TBranch *b_P_dc_1u2_wirenum; //! + TBranch *b_Ndata_P_dc_1v1_dist; //! + TBranch *b_P_dc_1v1_dist; //! + TBranch *b_Ndata_P_dc_1v1_rawtdc; //! + TBranch *b_P_dc_1v1_rawtdc; //! + TBranch *b_Ndata_P_dc_1v1_time; //! + TBranch *b_P_dc_1v1_time; //! + TBranch *b_Ndata_P_dc_1v1_wirenum; //! + TBranch *b_P_dc_1v1_wirenum; //! + TBranch *b_Ndata_P_dc_1v2_dist; //! + TBranch *b_P_dc_1v2_dist; //! + TBranch *b_Ndata_P_dc_1v2_rawtdc; //! + TBranch *b_P_dc_1v2_rawtdc; //! + TBranch *b_Ndata_P_dc_1v2_time; //! + TBranch *b_P_dc_1v2_time; //! + TBranch *b_Ndata_P_dc_1v2_wirenum; //! + TBranch *b_P_dc_1v2_wirenum; //! + TBranch *b_Ndata_P_dc_1x1_dist; //! + TBranch *b_P_dc_1x1_dist; //! + TBranch *b_Ndata_P_dc_1x1_rawtdc; //! + TBranch *b_P_dc_1x1_rawtdc; //! + TBranch *b_Ndata_P_dc_1x1_time; //! + TBranch *b_P_dc_1x1_time; //! + TBranch *b_Ndata_P_dc_1x1_wirenum; //! + TBranch *b_P_dc_1x1_wirenum; //! + TBranch *b_Ndata_P_dc_1x2_dist; //! + TBranch *b_P_dc_1x2_dist; //! + TBranch *b_Ndata_P_dc_1x2_rawtdc; //! + TBranch *b_P_dc_1x2_rawtdc; //! + TBranch *b_Ndata_P_dc_1x2_time; //! + TBranch *b_P_dc_1x2_time; //! + TBranch *b_Ndata_P_dc_1x2_wirenum; //! + TBranch *b_P_dc_1x2_wirenum; //! + TBranch *b_Ndata_P_dc_2u1_dist; //! + TBranch *b_P_dc_2u1_dist; //! + TBranch *b_Ndata_P_dc_2u1_rawtdc; //! + TBranch *b_P_dc_2u1_rawtdc; //! + TBranch *b_Ndata_P_dc_2u1_time; //! + TBranch *b_P_dc_2u1_time; //! + TBranch *b_Ndata_P_dc_2u1_wirenum; //! + TBranch *b_P_dc_2u1_wirenum; //! + TBranch *b_Ndata_P_dc_2u2_dist; //! + TBranch *b_P_dc_2u2_dist; //! + TBranch *b_Ndata_P_dc_2u2_rawtdc; //! + TBranch *b_P_dc_2u2_rawtdc; //! + TBranch *b_Ndata_P_dc_2u2_time; //! + TBranch *b_P_dc_2u2_time; //! + TBranch *b_Ndata_P_dc_2u2_wirenum; //! + TBranch *b_P_dc_2u2_wirenum; //! + TBranch *b_Ndata_P_dc_2v1_dist; //! + TBranch *b_P_dc_2v1_dist; //! + TBranch *b_Ndata_P_dc_2v1_rawtdc; //! + TBranch *b_P_dc_2v1_rawtdc; //! + TBranch *b_Ndata_P_dc_2v1_time; //! + TBranch *b_P_dc_2v1_time; //! + TBranch *b_Ndata_P_dc_2v1_wirenum; //! + TBranch *b_P_dc_2v1_wirenum; //! + TBranch *b_Ndata_P_dc_2v2_dist; //! + TBranch *b_P_dc_2v2_dist; //! + TBranch *b_Ndata_P_dc_2v2_rawtdc; //! + TBranch *b_P_dc_2v2_rawtdc; //! + TBranch *b_Ndata_P_dc_2v2_time; //! + TBranch *b_P_dc_2v2_time; //! + TBranch *b_Ndata_P_dc_2v2_wirenum; //! + TBranch *b_P_dc_2v2_wirenum; //! + TBranch *b_Ndata_P_dc_2x1_dist; //! + TBranch *b_P_dc_2x1_dist; //! + TBranch *b_Ndata_P_dc_2x1_rawtdc; //! + TBranch *b_P_dc_2x1_rawtdc; //! + TBranch *b_Ndata_P_dc_2x1_time; //! + TBranch *b_P_dc_2x1_time; //! + TBranch *b_Ndata_P_dc_2x1_wirenum; //! + TBranch *b_P_dc_2x1_wirenum; //! + TBranch *b_Ndata_P_dc_2x2_dist; //! + TBranch *b_P_dc_2x2_dist; //! + TBranch *b_Ndata_P_dc_2x2_rawtdc; //! + TBranch *b_P_dc_2x2_rawtdc; //! + TBranch *b_Ndata_P_dc_2x2_time; //! + TBranch *b_P_dc_2x2_time; //! + TBranch *b_Ndata_P_dc_2x2_wirenum; //! + TBranch *b_P_dc_2x2_wirenum; //! + TBranch *b_Ndata_P_dc_residual; //! + TBranch *b_P_dc_residual; //! + TBranch *b_Ndata_P_dc_x; //! + TBranch *b_P_dc_x; //! + TBranch *b_Ndata_P_dc_xp; //! + TBranch *b_P_dc_xp; //! + TBranch *b_Ndata_P_dc_y; //! + TBranch *b_P_dc_y; //! + TBranch *b_Ndata_P_dc_yp; //! + TBranch *b_P_dc_yp; //! + TBranch *b_P_dc_1u1_nhit; //! + TBranch *b_P_dc_1u2_nhit; //! + TBranch *b_P_dc_1v1_nhit; //! + TBranch *b_P_dc_1v2_nhit; //! + TBranch *b_P_dc_1x1_nhit; //! + TBranch *b_P_dc_1x2_nhit; //! + TBranch *b_P_dc_2u1_nhit; //! + TBranch *b_P_dc_2u2_nhit; //! + TBranch *b_P_dc_2v1_nhit; //! + TBranch *b_P_dc_2v2_nhit; //! + TBranch *b_P_dc_2x1_nhit; //! + TBranch *b_P_dc_2x2_nhit; //! + TBranch *b_P_dc_Ch1_maxhits; //! + TBranch *b_P_dc_Ch1_nhit; //! + TBranch *b_P_dc_Ch1_spacepoints; //! + TBranch *b_P_dc_Ch1_trawhit; //! + TBranch *b_P_dc_Ch2_maxhits; //! + TBranch *b_P_dc_Ch2_nhit; //! + TBranch *b_P_dc_Ch2_spacepoints; //! + TBranch *b_P_dc_Ch2_trawhit; //! + TBranch *b_P_dc_nhit; //! + TBranch *b_P_dc_nsp; //! + TBranch *b_P_dc_ntrack; //! + TBranch *b_P_dc_stubtest; //! + TBranch *b_P_dc_tnhit; //! + TBranch *b_P_dc_trawhit; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtTime; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtNum; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtType; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtLen; //! + TBranch *b_Event_Branch_fEvtHdr_fHelicity; //! + TBranch *b_Event_Branch_fEvtHdr_fTargetPol; //! + TBranch *b_Event_Branch_fEvtHdr_fRun; //! + + wire_drift_times(TTree *tree=0); + virtual ~wire_drift_times(); + virtual Int_t Cut(Long64_t entry); + virtual Int_t GetEntry(Long64_t entry); + virtual Long64_t LoadTree(Long64_t entry); + virtual void Init(TTree *tree); + virtual void Loop(); + virtual Bool_t Notify(); + virtual void Show(Long64_t entry = -1); +}; + +#endif + +#ifdef wire_drift_times_cxx +wire_drift_times::wire_drift_times(TTree *tree) : fChain(0) +{ +// if parameter tree is not specified (or zero), connect the file +// used to generate this class and read the Tree. + if (tree == 0) { + TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("../../../ROOTfiles/shms_replay_437.root"); + if (!f || !f->IsOpen()) { + f = new TFile("../../../ROOTfiles/shms_replay_437.root"); + } + f->GetObject("T",tree); + + } + Init(tree); +} + +wire_drift_times::~wire_drift_times() +{ + if (!fChain) return; + delete fChain->GetCurrentFile(); +} + +Int_t wire_drift_times::GetEntry(Long64_t entry) +{ +// Read contents of entry. + if (!fChain) return 0; + return fChain->GetEntry(entry); +} +Long64_t wire_drift_times::LoadTree(Long64_t entry) +{ +// Set the environment to read one entry + if (!fChain) return -5; + Long64_t centry = fChain->LoadTree(entry); + if (centry < 0) return centry; + if (fChain->GetTreeNumber() != fCurrent) { + fCurrent = fChain->GetTreeNumber(); + Notify(); + } + return centry; +} + +void wire_drift_times::Init(TTree *tree) +{ + // The Init() function is called when the selector needs to initialize + // a new tree or chain. Typically here the branch addresses and branch + // pointers of the tree will be set. + // It is normally not necessary to make changes to the generated + // code, but the routine can be extended by the user if needed. + // Init() will be called many times when running on PROOF + // (once per file to be processed). + + // Set branch addresses and branch pointers + if (!tree) return; + fChain = tree; + fCurrent = -1; + fChain->SetMakeClass(1); + + fChain->SetBranchAddress("Ndata.P.dc.1u1.dist", &Ndata_P_dc_1u1_dist, &b_Ndata_P_dc_1u1_dist); + fChain->SetBranchAddress("P.dc.1u1.dist", P_dc_1u1_dist, &b_P_dc_1u1_dist); + fChain->SetBranchAddress("Ndata.P.dc.1u1.rawtdc", &Ndata_P_dc_1u1_rawtdc, &b_Ndata_P_dc_1u1_rawtdc); + fChain->SetBranchAddress("P.dc.1u1.rawtdc", P_dc_1u1_rawtdc, &b_P_dc_1u1_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.1u1.time", &Ndata_P_dc_1u1_time, &b_Ndata_P_dc_1u1_time); + fChain->SetBranchAddress("P.dc.1u1.time", P_dc_1u1_time, &b_P_dc_1u1_time); + fChain->SetBranchAddress("Ndata.P.dc.1u1.wirenum", &Ndata_P_dc_1u1_wirenum, &b_Ndata_P_dc_1u1_wirenum); + fChain->SetBranchAddress("P.dc.1u1.wirenum", P_dc_1u1_wirenum, &b_P_dc_1u1_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.1u2.dist", &Ndata_P_dc_1u2_dist, &b_Ndata_P_dc_1u2_dist); + fChain->SetBranchAddress("P.dc.1u2.dist", P_dc_1u2_dist, &b_P_dc_1u2_dist); + fChain->SetBranchAddress("Ndata.P.dc.1u2.rawtdc", &Ndata_P_dc_1u2_rawtdc, &b_Ndata_P_dc_1u2_rawtdc); + fChain->SetBranchAddress("P.dc.1u2.rawtdc", P_dc_1u2_rawtdc, &b_P_dc_1u2_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.1u2.time", &Ndata_P_dc_1u2_time, &b_Ndata_P_dc_1u2_time); + fChain->SetBranchAddress("P.dc.1u2.time", P_dc_1u2_time, &b_P_dc_1u2_time); + fChain->SetBranchAddress("Ndata.P.dc.1u2.wirenum", &Ndata_P_dc_1u2_wirenum, &b_Ndata_P_dc_1u2_wirenum); + fChain->SetBranchAddress("P.dc.1u2.wirenum", P_dc_1u2_wirenum, &b_P_dc_1u2_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.1v1.dist", &Ndata_P_dc_1v1_dist, &b_Ndata_P_dc_1v1_dist); + fChain->SetBranchAddress("P.dc.1v1.dist", P_dc_1v1_dist, &b_P_dc_1v1_dist); + fChain->SetBranchAddress("Ndata.P.dc.1v1.rawtdc", &Ndata_P_dc_1v1_rawtdc, &b_Ndata_P_dc_1v1_rawtdc); + fChain->SetBranchAddress("P.dc.1v1.rawtdc", P_dc_1v1_rawtdc, &b_P_dc_1v1_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.1v1.time", &Ndata_P_dc_1v1_time, &b_Ndata_P_dc_1v1_time); + fChain->SetBranchAddress("P.dc.1v1.time", P_dc_1v1_time, &b_P_dc_1v1_time); + fChain->SetBranchAddress("Ndata.P.dc.1v1.wirenum", &Ndata_P_dc_1v1_wirenum, &b_Ndata_P_dc_1v1_wirenum); + fChain->SetBranchAddress("P.dc.1v1.wirenum", P_dc_1v1_wirenum, &b_P_dc_1v1_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.1v2.dist", &Ndata_P_dc_1v2_dist, &b_Ndata_P_dc_1v2_dist); + fChain->SetBranchAddress("P.dc.1v2.dist", P_dc_1v2_dist, &b_P_dc_1v2_dist); + fChain->SetBranchAddress("Ndata.P.dc.1v2.rawtdc", &Ndata_P_dc_1v2_rawtdc, &b_Ndata_P_dc_1v2_rawtdc); + fChain->SetBranchAddress("P.dc.1v2.rawtdc", P_dc_1v2_rawtdc, &b_P_dc_1v2_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.1v2.time", &Ndata_P_dc_1v2_time, &b_Ndata_P_dc_1v2_time); + fChain->SetBranchAddress("P.dc.1v2.time", P_dc_1v2_time, &b_P_dc_1v2_time); + fChain->SetBranchAddress("Ndata.P.dc.1v2.wirenum", &Ndata_P_dc_1v2_wirenum, &b_Ndata_P_dc_1v2_wirenum); + fChain->SetBranchAddress("P.dc.1v2.wirenum", P_dc_1v2_wirenum, &b_P_dc_1v2_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.1x1.dist", &Ndata_P_dc_1x1_dist, &b_Ndata_P_dc_1x1_dist); + fChain->SetBranchAddress("P.dc.1x1.dist", P_dc_1x1_dist, &b_P_dc_1x1_dist); + fChain->SetBranchAddress("Ndata.P.dc.1x1.rawtdc", &Ndata_P_dc_1x1_rawtdc, &b_Ndata_P_dc_1x1_rawtdc); + fChain->SetBranchAddress("P.dc.1x1.rawtdc", P_dc_1x1_rawtdc, &b_P_dc_1x1_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.1x1.time", &Ndata_P_dc_1x1_time, &b_Ndata_P_dc_1x1_time); + fChain->SetBranchAddress("P.dc.1x1.time", P_dc_1x1_time, &b_P_dc_1x1_time); + fChain->SetBranchAddress("Ndata.P.dc.1x1.wirenum", &Ndata_P_dc_1x1_wirenum, &b_Ndata_P_dc_1x1_wirenum); + fChain->SetBranchAddress("P.dc.1x1.wirenum", P_dc_1x1_wirenum, &b_P_dc_1x1_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.1x2.dist", &Ndata_P_dc_1x2_dist, &b_Ndata_P_dc_1x2_dist); + fChain->SetBranchAddress("P.dc.1x2.dist", P_dc_1x2_dist, &b_P_dc_1x2_dist); + fChain->SetBranchAddress("Ndata.P.dc.1x2.rawtdc", &Ndata_P_dc_1x2_rawtdc, &b_Ndata_P_dc_1x2_rawtdc); + fChain->SetBranchAddress("P.dc.1x2.rawtdc", P_dc_1x2_rawtdc, &b_P_dc_1x2_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.1x2.time", &Ndata_P_dc_1x2_time, &b_Ndata_P_dc_1x2_time); + fChain->SetBranchAddress("P.dc.1x2.time", P_dc_1x2_time, &b_P_dc_1x2_time); + fChain->SetBranchAddress("Ndata.P.dc.1x2.wirenum", &Ndata_P_dc_1x2_wirenum, &b_Ndata_P_dc_1x2_wirenum); + fChain->SetBranchAddress("P.dc.1x2.wirenum", P_dc_1x2_wirenum, &b_P_dc_1x2_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.2u1.dist", &Ndata_P_dc_2u1_dist, &b_Ndata_P_dc_2u1_dist); + fChain->SetBranchAddress("P.dc.2u1.dist", P_dc_2u1_dist, &b_P_dc_2u1_dist); + fChain->SetBranchAddress("Ndata.P.dc.2u1.rawtdc", &Ndata_P_dc_2u1_rawtdc, &b_Ndata_P_dc_2u1_rawtdc); + fChain->SetBranchAddress("P.dc.2u1.rawtdc", P_dc_2u1_rawtdc, &b_P_dc_2u1_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.2u1.time", &Ndata_P_dc_2u1_time, &b_Ndata_P_dc_2u1_time); + fChain->SetBranchAddress("P.dc.2u1.time", P_dc_2u1_time, &b_P_dc_2u1_time); + fChain->SetBranchAddress("Ndata.P.dc.2u1.wirenum", &Ndata_P_dc_2u1_wirenum, &b_Ndata_P_dc_2u1_wirenum); + fChain->SetBranchAddress("P.dc.2u1.wirenum", P_dc_2u1_wirenum, &b_P_dc_2u1_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.2u2.dist", &Ndata_P_dc_2u2_dist, &b_Ndata_P_dc_2u2_dist); + fChain->SetBranchAddress("P.dc.2u2.dist", P_dc_2u2_dist, &b_P_dc_2u2_dist); + fChain->SetBranchAddress("Ndata.P.dc.2u2.rawtdc", &Ndata_P_dc_2u2_rawtdc, &b_Ndata_P_dc_2u2_rawtdc); + fChain->SetBranchAddress("P.dc.2u2.rawtdc", P_dc_2u2_rawtdc, &b_P_dc_2u2_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.2u2.time", &Ndata_P_dc_2u2_time, &b_Ndata_P_dc_2u2_time); + fChain->SetBranchAddress("P.dc.2u2.time", P_dc_2u2_time, &b_P_dc_2u2_time); + fChain->SetBranchAddress("Ndata.P.dc.2u2.wirenum", &Ndata_P_dc_2u2_wirenum, &b_Ndata_P_dc_2u2_wirenum); + fChain->SetBranchAddress("P.dc.2u2.wirenum", P_dc_2u2_wirenum, &b_P_dc_2u2_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.2v1.dist", &Ndata_P_dc_2v1_dist, &b_Ndata_P_dc_2v1_dist); + fChain->SetBranchAddress("P.dc.2v1.dist", P_dc_2v1_dist, &b_P_dc_2v1_dist); + fChain->SetBranchAddress("Ndata.P.dc.2v1.rawtdc", &Ndata_P_dc_2v1_rawtdc, &b_Ndata_P_dc_2v1_rawtdc); + fChain->SetBranchAddress("P.dc.2v1.rawtdc", P_dc_2v1_rawtdc, &b_P_dc_2v1_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.2v1.time", &Ndata_P_dc_2v1_time, &b_Ndata_P_dc_2v1_time); + fChain->SetBranchAddress("P.dc.2v1.time", P_dc_2v1_time, &b_P_dc_2v1_time); + fChain->SetBranchAddress("Ndata.P.dc.2v1.wirenum", &Ndata_P_dc_2v1_wirenum, &b_Ndata_P_dc_2v1_wirenum); + fChain->SetBranchAddress("P.dc.2v1.wirenum", P_dc_2v1_wirenum, &b_P_dc_2v1_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.2v2.dist", &Ndata_P_dc_2v2_dist, &b_Ndata_P_dc_2v2_dist); + fChain->SetBranchAddress("P.dc.2v2.dist", P_dc_2v2_dist, &b_P_dc_2v2_dist); + fChain->SetBranchAddress("Ndata.P.dc.2v2.rawtdc", &Ndata_P_dc_2v2_rawtdc, &b_Ndata_P_dc_2v2_rawtdc); + fChain->SetBranchAddress("P.dc.2v2.rawtdc", P_dc_2v2_rawtdc, &b_P_dc_2v2_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.2v2.time", &Ndata_P_dc_2v2_time, &b_Ndata_P_dc_2v2_time); + fChain->SetBranchAddress("P.dc.2v2.time", P_dc_2v2_time, &b_P_dc_2v2_time); + fChain->SetBranchAddress("Ndata.P.dc.2v2.wirenum", &Ndata_P_dc_2v2_wirenum, &b_Ndata_P_dc_2v2_wirenum); + fChain->SetBranchAddress("P.dc.2v2.wirenum", P_dc_2v2_wirenum, &b_P_dc_2v2_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.2x1.dist", &Ndata_P_dc_2x1_dist, &b_Ndata_P_dc_2x1_dist); + fChain->SetBranchAddress("P.dc.2x1.dist", P_dc_2x1_dist, &b_P_dc_2x1_dist); + fChain->SetBranchAddress("Ndata.P.dc.2x1.rawtdc", &Ndata_P_dc_2x1_rawtdc, &b_Ndata_P_dc_2x1_rawtdc); + fChain->SetBranchAddress("P.dc.2x1.rawtdc", P_dc_2x1_rawtdc, &b_P_dc_2x1_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.2x1.time", &Ndata_P_dc_2x1_time, &b_Ndata_P_dc_2x1_time); + fChain->SetBranchAddress("P.dc.2x1.time", P_dc_2x1_time, &b_P_dc_2x1_time); + fChain->SetBranchAddress("Ndata.P.dc.2x1.wirenum", &Ndata_P_dc_2x1_wirenum, &b_Ndata_P_dc_2x1_wirenum); + fChain->SetBranchAddress("P.dc.2x1.wirenum", P_dc_2x1_wirenum, &b_P_dc_2x1_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.2x2.dist", &Ndata_P_dc_2x2_dist, &b_Ndata_P_dc_2x2_dist); + fChain->SetBranchAddress("P.dc.2x2.dist", P_dc_2x2_dist, &b_P_dc_2x2_dist); + fChain->SetBranchAddress("Ndata.P.dc.2x2.rawtdc", &Ndata_P_dc_2x2_rawtdc, &b_Ndata_P_dc_2x2_rawtdc); + fChain->SetBranchAddress("P.dc.2x2.rawtdc", P_dc_2x2_rawtdc, &b_P_dc_2x2_rawtdc); + fChain->SetBranchAddress("Ndata.P.dc.2x2.time", &Ndata_P_dc_2x2_time, &b_Ndata_P_dc_2x2_time); + fChain->SetBranchAddress("P.dc.2x2.time", P_dc_2x2_time, &b_P_dc_2x2_time); + fChain->SetBranchAddress("Ndata.P.dc.2x2.wirenum", &Ndata_P_dc_2x2_wirenum, &b_Ndata_P_dc_2x2_wirenum); + fChain->SetBranchAddress("P.dc.2x2.wirenum", P_dc_2x2_wirenum, &b_P_dc_2x2_wirenum); + fChain->SetBranchAddress("Ndata.P.dc.residual", &Ndata_P_dc_residual, &b_Ndata_P_dc_residual); + fChain->SetBranchAddress("P.dc.residual", P_dc_residual, &b_P_dc_residual); + fChain->SetBranchAddress("Ndata.P.dc.x", &Ndata_P_dc_x, &b_Ndata_P_dc_x); + fChain->SetBranchAddress("P.dc.x", P_dc_x, &b_P_dc_x); + fChain->SetBranchAddress("Ndata.P.dc.xp", &Ndata_P_dc_xp, &b_Ndata_P_dc_xp); + fChain->SetBranchAddress("P.dc.xp", P_dc_xp, &b_P_dc_xp); + fChain->SetBranchAddress("Ndata.P.dc.y", &Ndata_P_dc_y, &b_Ndata_P_dc_y); + fChain->SetBranchAddress("P.dc.y", P_dc_y, &b_P_dc_y); + fChain->SetBranchAddress("Ndata.P.dc.yp", &Ndata_P_dc_yp, &b_Ndata_P_dc_yp); + fChain->SetBranchAddress("P.dc.yp", P_dc_yp, &b_P_dc_yp); + fChain->SetBranchAddress("P.dc.1u1.nhit", &P_dc_1u1_nhit, &b_P_dc_1u1_nhit); + fChain->SetBranchAddress("P.dc.1u2.nhit", &P_dc_1u2_nhit, &b_P_dc_1u2_nhit); + fChain->SetBranchAddress("P.dc.1v1.nhit", &P_dc_1v1_nhit, &b_P_dc_1v1_nhit); + fChain->SetBranchAddress("P.dc.1v2.nhit", &P_dc_1v2_nhit, &b_P_dc_1v2_nhit); + fChain->SetBranchAddress("P.dc.1x1.nhit", &P_dc_1x1_nhit, &b_P_dc_1x1_nhit); + fChain->SetBranchAddress("P.dc.1x2.nhit", &P_dc_1x2_nhit, &b_P_dc_1x2_nhit); + fChain->SetBranchAddress("P.dc.2u1.nhit", &P_dc_2u1_nhit, &b_P_dc_2u1_nhit); + fChain->SetBranchAddress("P.dc.2u2.nhit", &P_dc_2u2_nhit, &b_P_dc_2u2_nhit); + fChain->SetBranchAddress("P.dc.2v1.nhit", &P_dc_2v1_nhit, &b_P_dc_2v1_nhit); + fChain->SetBranchAddress("P.dc.2v2.nhit", &P_dc_2v2_nhit, &b_P_dc_2v2_nhit); + fChain->SetBranchAddress("P.dc.2x1.nhit", &P_dc_2x1_nhit, &b_P_dc_2x1_nhit); + fChain->SetBranchAddress("P.dc.2x2.nhit", &P_dc_2x2_nhit, &b_P_dc_2x2_nhit); + fChain->SetBranchAddress("P.dc.Ch1.maxhits", &P_dc_Ch1_maxhits, &b_P_dc_Ch1_maxhits); + fChain->SetBranchAddress("P.dc.Ch1.nhit", &P_dc_Ch1_nhit, &b_P_dc_Ch1_nhit); + fChain->SetBranchAddress("P.dc.Ch1.spacepoints", &P_dc_Ch1_spacepoints, &b_P_dc_Ch1_spacepoints); + fChain->SetBranchAddress("P.dc.Ch1.trawhit", &P_dc_Ch1_trawhit, &b_P_dc_Ch1_trawhit); + fChain->SetBranchAddress("P.dc.Ch2.maxhits", &P_dc_Ch2_maxhits, &b_P_dc_Ch2_maxhits); + fChain->SetBranchAddress("P.dc.Ch2.nhit", &P_dc_Ch2_nhit, &b_P_dc_Ch2_nhit); + fChain->SetBranchAddress("P.dc.Ch2.spacepoints", &P_dc_Ch2_spacepoints, &b_P_dc_Ch2_spacepoints); + fChain->SetBranchAddress("P.dc.Ch2.trawhit", &P_dc_Ch2_trawhit, &b_P_dc_Ch2_trawhit); + fChain->SetBranchAddress("P.dc.nhit", &P_dc_nhit, &b_P_dc_nhit); + fChain->SetBranchAddress("P.dc.nsp", &P_dc_nsp, &b_P_dc_nsp); + fChain->SetBranchAddress("P.dc.ntrack", &P_dc_ntrack, &b_P_dc_ntrack); + fChain->SetBranchAddress("P.dc.stubtest", &P_dc_stubtest, &b_P_dc_stubtest); + fChain->SetBranchAddress("P.dc.tnhit", &P_dc_tnhit, &b_P_dc_tnhit); + fChain->SetBranchAddress("P.dc.trawhit", &P_dc_trawhit, &b_P_dc_trawhit); + fChain->SetBranchAddress("fEvtHdr.fEvtTime", &fEvtHdr_fEvtTime, &b_Event_Branch_fEvtHdr_fEvtTime); + fChain->SetBranchAddress("fEvtHdr.fEvtNum", &fEvtHdr_fEvtNum, &b_Event_Branch_fEvtHdr_fEvtNum); + fChain->SetBranchAddress("fEvtHdr.fEvtType", &fEvtHdr_fEvtType, &b_Event_Branch_fEvtHdr_fEvtType); + fChain->SetBranchAddress("fEvtHdr.fEvtLen", &fEvtHdr_fEvtLen, &b_Event_Branch_fEvtHdr_fEvtLen); + fChain->SetBranchAddress("fEvtHdr.fHelicity", &fEvtHdr_fHelicity, &b_Event_Branch_fEvtHdr_fHelicity); + fChain->SetBranchAddress("fEvtHdr.fTargetPol", &fEvtHdr_fTargetPol, &b_Event_Branch_fEvtHdr_fTargetPol); + fChain->SetBranchAddress("fEvtHdr.fRun", &fEvtHdr_fRun, &b_Event_Branch_fEvtHdr_fRun); + Notify(); +} + +Bool_t wire_drift_times::Notify() +{ + // The Notify() function is called when a new file is opened. This + // can be either for a new TTree in a TChain or when when a new TTree + // is started when using PROOF. It is normally not necessary to make changes + // to the generated code, but the routine can be extended by the + // user if needed. The return value is currently not used. + + return kTRUE; +} + +void wire_drift_times::Show(Long64_t entry) +{ +// Print contents of entry. +// If entry is not specified, print current entry + if (!fChain) return; + fChain->Show(entry); +} +Int_t wire_drift_times::Cut(Long64_t entry) +{ +// This function may be called from Loop. +// returns 1 if entry is accepted. +// returns -1 otherwise. + return 1; +} +#endif // #ifdef wire_drift_times_cxx diff --git a/DATFILES/SHMS_fr3_rec__order_3.dat b/DATFILES/SHMS_fr3_rec__order_3.dat new file mode 100644 index 00000000..c5f2181d --- /dev/null +++ b/DATFILES/SHMS_fr3_rec__order_3.dat @@ -0,0 +1,61 @@ +! SHMS reconstruction optics +! made with Cosy from `shms-2011-26cm-monte.fox` +! order: 3 +! 2017/03/02 + ------------------------------------------------------------------------------ + 0.271575341 -0.562369031E-01 0.319566081E-01 0.610081290 10000 + -1.40168967 0.324549705E-02-0.184425300E-02-0.352085004E-01 01000 + 0.00000000 -0.614627877 0.268258711 0.00000000 00100 + 0.00000000 -0.334494693E-01 -1.61240146 0.00000000 00010 + 0.292838822 -0.779452895E-01 0.442923940E-01 0.845582884 00001 + -0.461777083 0.133175413 -0.795465554E-01 -1.10941840 20000 + 2.31345901 -0.651650790 0.410139672 7.40765439 11000 + 0.313171813 -0.189779813 0.503365420E-02 1.07619090 02000 + 0.832253162E-02 3.25891656 -0.623172327 0.130538752E-01 10100 + -0.429553235E-01-0.337197013 0.115900052 -0.673753442E-01 01100 + 0.123978840E-02 0.104304505E-02-0.173094061E-02 0.293611475E-02 00200 + -0.346040884E-01 -34.2794401 6.37461563 -0.337822756E-01 10010 + 0.178603084 2.78206786 -0.304747320 0.174361437 01010 + 0.628665995E-01-0.824087278E-01 0.307462429E-01 0.154433455 00110 + -1.40937257 0.301926273 -0.187978799 -2.47726546 10001 + 3.33484635 -0.862548006 0.574689551 10.5041926 01001 + 0.130450160E-01 4.51258325 -0.861523847 0.259132153E-01 00101 + -0.372584164 0.399413222 -0.891791733E-01-0.402593585 00020 + -0.618394302E-01 -47.7437685 8.94535901 -0.107744042 00011 + -1.06632062 0.166741451 -0.107916204 -1.30229160 00002 + 2.02204786 -0.537494821 0.320946553 4.39751589 30000 + -17.7287121 4.88024882 -2.93121031 -45.2936945 21000 + 41.4726095 -12.1033754 7.27184134 135.859531 12000 + -19.2547522 6.35601113 -3.56945324 -68.6229278 03000 + -0.639687330E-01 -12.8390163 2.47275279 -0.116142488 20100 + 0.383562426 75.4946872 -14.1477166 0.765093581 11100 + -0.277071263 -83.0427890 15.0668682 -0.857237446 02100 + 0.521382345 -0.660319024E-01 0.836917529E-01 1.62277288 10200 + -2.71588574 0.417636863 -0.374384882 -8.42602578 01200 + 0.379937962E-04 -2.22772445 0.411212109 0.595931979E-04 00300 + 0.401258847 134.208982 -25.7567354 0.723062757 20010 + -2.21408761 -779.349257 145.964199 -4.18430354 11010 + 0.744454923 871.241762 -162.500709 2.34060679 02010 + -11.1502022 2.11028391 -1.81145056 -34.1647857 10110 + 56.9030538 -11.4096323 8.30827966 175.204252 01110 + 0.176859767E-02 71.0256213 -13.2910486 0.286760156E-02 00210 + 8.25911531 -1.83293852 1.12279865 14.9915931 20001 + -47.6174637 11.2343899 -6.91073184 -102.172282 11001 + 55.1407020 -14.8476604 8.99669952 167.425329 02001 + -0.200203452 -29.7959889 5.79495205 -0.355610730 10101 + 0.581102351 92.6441192 -17.5793543 1.10085095 01101 + 0.674591396 0.105565721E-01 0.737030600E-01 1.59446569 00201 + 59.0337400 -14.8057660 9.71260964 178.996897 10020 + -300.510217 74.3557252 -46.1380542 -914.862611 01020 + -0.194284386E-01 -753.743934 142.021236 -0.257293020E-01 00120 + 1.26360425 313.950247 -60.8321033 2.32007781 10011 + -3.37979081 -961.090841 181.666941 -6.43192219 01011 + -14.6993850 0.949357085 -1.68119853 -34.2620511 00111 + 11.3392101 -2.12339845 1.34371762 17.7676078 10002 + -33.1512599 6.62921723 -4.19625684 -59.3627787 01002 + -0.156245518 -18.1815608 3.55438555 -0.262047136 00102 + 0.474746171E-01 2656.39369 -502.850206 0.463471419E-01 00030 + 78.9827113 -11.1025866 9.41992841 183.089209 00021 + 0.994119583 193.354137 -37.7652046 1.77029229 00012 + 5.21699886 -0.833070758 0.548672097 7.31883656 00003 + ------------------------------------------------------------------------------ diff --git a/DATFILES/SHMS_fr3_rec__order_4.dat b/DATFILES/SHMS_fr3_rec__order_4.dat new file mode 100644 index 00000000..f76564f4 --- /dev/null +++ b/DATFILES/SHMS_fr3_rec__order_4.dat @@ -0,0 +1,131 @@ +! SHMS reconstruction optics +! made with Cosy from `shms-2011-26cm-monte.fox` +! order: 4 +! 2017/03/02 + ------------------------------------------------------------------------------ + 0.271575341 -0.562369031E-01 0.319566081E-01 0.610081290 10000 + -1.40168967 0.324549705E-02-0.184425300E-02-0.352085004E-01 01000 + 0.00000000 -0.614627877 0.268258711 0.00000000 00100 + 0.00000000 -0.334494694E-01 -1.61240146 0.00000000 00010 + 0.292838822 -0.779452895E-01 0.442923940E-01 0.845582884 00001 + -0.461777083 0.133175413 -0.795465553E-01 -1.10941840 20000 + 2.31345901 -0.651650789 0.410139671 7.40765439 11000 + 0.313171813 -0.189779816 0.503365581E-02 1.07619090 02000 + 0.832253162E-02 3.25891656 -0.623172327 0.130538752E-01 10100 + -0.429553235E-01-0.337197013 0.115900052 -0.673753442E-01 01100 + 0.123978942E-02 0.104304463E-02-0.173094037E-02 0.293611934E-02 00200 + -0.346040884E-01 -34.2794401 6.37461563 -0.337822756E-01 10010 + 0.178603084 2.78206786 -0.304747320 0.174361437 01010 + 0.628665828E-01-0.824087197E-01 0.307462384E-01 0.154433368 00110 + -1.40937257 0.301926272 -0.187978799 -2.47726546 10001 + 3.33484635 -0.862548003 0.574689548 10.5041926 01001 + 0.130450160E-01 4.51258325 -0.861523847 0.259132153E-01 00101 + -0.372584092 0.399413185 -0.891791525E-01-0.402593189 00020 + -0.618394303E-01 -47.7437685 8.94535901 -0.107744042 00011 + -1.06632062 0.166741450 -0.107916202 -1.30229160 00002 + 2.02204786 -0.537494821 0.320946553 4.39751589 30000 + -17.7287121 4.88024881 -2.93121031 -45.2936945 21000 + 41.4726095 -12.1033754 7.27184134 135.859531 12000 + -19.2547522 6.35601113 -3.56945324 -68.6229278 03000 + -0.639687330E-01 -12.8390163 2.47275279 -0.116142488 20100 + 0.383562426 75.4946872 -14.1477166 0.765093581 11100 + -0.277071263 -83.0427890 15.0668682 -0.857237446 02100 + 0.521382339 -0.660319006E-01 0.836917518E-01 1.62277287 10200 + -2.71588573 0.417636857 -0.374384878 -8.42602572 01200 + 0.379938274E-04 -2.22772443 0.411212104 0.595932468E-04 00300 + 0.401258847 134.208982 -25.7567354 0.723062757 20010 + -2.21408761 -779.349257 145.964199 -4.18430354 11010 + 0.744454923 871.241762 -162.500709 2.34060679 02010 + -11.1502021 2.11028387 -1.81145055 -34.1647855 10110 + 56.9030534 -11.4096322 8.30827960 175.204251 01110 + 0.176859702E-02 71.0256206 -13.2910484 0.286760063E-02 00210 + 8.25911531 -1.83293852 1.12279865 14.9915931 20001 + -47.6174637 11.2343899 -6.91073183 -102.172282 11001 + 55.1407020 -14.8476603 8.99669951 167.425329 02001 + -0.200203452 -29.7959889 5.79495205 -0.355610730 10101 + 0.581102351 92.6441192 -17.5793543 1.10085095 01101 + 0.674591387 0.105565741E-01 0.737030589E-01 1.59446567 00201 + 59.0337395 -14.8057659 9.71260956 178.996896 10020 + -300.510215 74.3557247 -46.1380539 -914.862606 01020 + -0.194284343E-01 -753.743927 142.021235 -0.257292965E-01 00120 + 1.26360425 313.950247 -60.8321033 2.32007781 10011 + -3.37979081 -961.090841 181.666941 -6.43192219 01011 + -14.6993848 0.949357049 -1.68119850 -34.2620508 00111 + 11.3392100 -2.12339844 1.34371761 17.7676078 10002 + -33.1512599 6.62921721 -4.19625682 -59.3627787 01002 + -0.156245518 -18.1815608 3.55438555 -0.262047136 00102 + 0.474746080E-01 2656.39367 -502.850202 0.463471330E-01 00030 + 78.9827105 -11.1025864 9.41992832 183.089208 00021 + 0.994119584 193.354137 -37.7652046 1.77029229 00012 + 5.21699886 -0.833070754 0.548672093 7.31883655 00003 + -10.2310470 2.58793363 -1.55296721 -20.8818053 40000 + 122.346406 -31.8016932 19.1514013 274.803183 31000 + -484.927223 130.536709 -78.8502838 -1239.39171 22000 + 698.547701 -196.026028 118.569038 2117.59464 13000 + -253.197685 71.4733330 -43.2279696 -793.955820 04000 + 0.478755489 50.8042228 -9.90654419 0.873955482 30100 + -4.37397264 -447.898534 86.2746229 -8.66132024 21100 + 11.4763945 1021.87912 -193.798068 25.5532707 12100 + -8.48802044 -353.060335 66.8753150 -21.2396696 03100 + -3.36720856 -0.838236137E-01-0.415102089 -7.72252748 20200 + 24.0878684 -0.495441583E-01 2.90836969 60.9325014 11200 + -34.4455156 1.63349895 -4.69517143 -108.631838 02200 + 0.442912824E-01 12.5587081 -2.42559825 0.848367227E-01 10300 + -0.230283981 -47.3794478 9.03448084 -0.440507240 01300 + 0.283577483E-02-0.143540814E-01-0.547824335E-02 0.852019165E-02 00400 + -3.26791035 -534.506885 103.795498 -5.92725409 30010 + 28.6301188 4659.91444 -893.080659 56.0463947 21010 + -70.6746261 -10463.9773 1970.57194 -152.877065 12010 + 51.0546659 3328.38500 -620.439421 110.384945 03010 + 70.5111913 -3.43784621 9.33042294 161.394208 20110 + -496.879282 38.6458465 -65.4747054 -1255.15132 11110 + 692.837995 -91.3622773 104.349749 2188.94307 02110 + -1.25350163 -400.576726 77.1331104 -2.34946862 10210 + 6.41379070 1464.94648 -277.703944 12.0388384 01210 + 0.616071108E-01 0.431663756 0.233010610 0.205151913 00310 + -53.7324212 12.0470375 -7.36030184 -98.1457887 30001 + 479.946011 -111.483955 68.2857468 965.271814 21001 + -1264.83188 310.320248 -190.049701 -2920.57582 12001 + 908.437630 -243.926965 148.585766 2640.79125 03001 + 2.09423955 181.634158 -35.4615615 3.66998998 20101 + -12.4222735 -1095.06205 211.310694 -23.6481174 11101 + 15.9439662 1318.52165 -249.844514 34.4087498 02101 + -9.04889731 -0.981106252 -0.821042459 -17.5288402 10201 + 32.7896220 1.98193201 3.03790517 68.2379234 01201 + 0.669006161E-01 13.8708530 -2.68487436 0.137585092 00301 + -364.345369 44.3259006 -51.4824086 -832.969309 20020 + 2544.78208 -394.818493 363.991885 6417.23262 11020 + -3471.80737 769.376790 -575.098054 -10993.0813 02020 + 11.3713563 4214.76797 -808.266433 20.7767758 10120 + -57.8302273 -15048.6461 2835.73628 -105.832362 01120 + -2.94126789 -4.06795828 -3.57808305 -9.18394603 00220 + -14.3642114 -1918.69584 373.400431 -25.3958401 20011 + 81.1943805 11438.0513 -2198.62554 156.120611 11011 + -97.3240701 -13566.1443 2554.66748 -212.552115 02011 + 190.592395 5.72007104 19.3473584 369.014697 10111 + -681.345877 11.0581498 -71.0735626 -1421.30507 01111 + -1.91822029 -449.741669 86.8561920 -3.88665845 00211 + -106.687061 21.3753199 -13.3322724 -177.074890 20002 + 635.350738 -132.444105 82.7053122 1158.01320 11002 + -835.125874 186.172717 -115.959664 -1741.61113 02002 + 3.06174899 221.985076 -43.3397534 5.08551026 10102 + -8.92400515 -682.419547 131.944729 -16.1898306 01102 + -5.93441915 -1.10073089 -0.387050717 -10.1072756 00202 + -32.9889804 -14661.6002 2798.56486 -58.1276687 10030 + 167.517882 51368.8943 -9618.43653 295.415008 01030 + 28.3941058 9.68440912 23.4686858 87.2909201 00130 + -991.039515 46.5410861 -111.012273 -1919.22414 10021 + 3518.02262 -329.920257 408.281903 7348.25893 01021 + 17.6373144 4803.10768 -924.194977 35.2966403 00121 + -21.1299702 -2355.14589 458.851005 -35.7625112 10012 + 58.3993981 7153.37736 -1379.14932 108.523448 01012 + 125.953372 12.6540917 9.76198657 213.987872 00112 + -95.1280312 17.1315503 -10.9364018 -145.190535 10003 + 284.630982 -53.3887762 34.0723953 475.442592 01003 + 1.49562799 92.8494452 -18.0995701 2.34278439 00103 + -79.5213480 20.8879779 -54.9235969 -242.773246 00040 + -51.9910231 -16946.9750 3246.45578 -102.509862 00031 + -659.873281 -11.7721902 -58.9266855 -1119.21453 00022 + -10.4011417 -989.993417 192.843488 -16.7150638 00013 + -32.1638309 5.22805783 -3.42382893 -45.5409473 00004 + ------------------------------------------------------------------------------ diff --git a/DATFILES/SHMS_fr3_rec__order_5.dat b/DATFILES/SHMS_fr3_rec__order_5.dat new file mode 100644 index 00000000..5179911b --- /dev/null +++ b/DATFILES/SHMS_fr3_rec__order_5.dat @@ -0,0 +1,257 @@ +! SHMS reconstruction optics +! made with Cosy from `shms-2011-26cm-monte.fox` +! order: 5 +! 2017/03/02 + ------------------------------------------------------------------------------ + 0.271575341 -0.562369031E-01 0.319566081E-01 0.610081289 10000 + -1.40168967 0.324549698E-02-0.184425296E-02-0.352084997E-01 01000 + 0.00000000 -0.614627877 0.268258711 0.00000000 00100 + 0.00000000 -0.334494674E-01 -1.61240146 0.00000000 00010 + 0.292838822 -0.779452895E-01 0.442923940E-01 0.845582884 00001 + -0.461777082 0.133175413 -0.795465553E-01 -1.10941840 20000 + 2.31345901 -0.651650789 0.410139671 7.40765439 11000 + 0.313171815 -0.189779816 0.503365625E-02 1.07619091 02000 + 0.832253162E-02 3.25891656 -0.623172326 0.130538752E-01 10100 + -0.429553235E-01-0.337197010 0.115900052 -0.673753442E-01 01100 + 0.123978942E-02 0.104304463E-02-0.173094037E-02 0.293611934E-02 00200 + -0.346040884E-01 -34.2794401 6.37461563 -0.337822756E-01 10010 + 0.178603084 2.78206782 -0.304747312 0.174361437 01010 + 0.628665828E-01-0.824087197E-01 0.307462384E-01 0.154433368 00110 + -1.40937257 0.301926272 -0.187978798 -2.47726545 10001 + 3.33484635 -0.862548002 0.574689547 10.5041925 01001 + 0.130450160E-01 4.51258325 -0.861523847 0.259132153E-01 00101 + -0.372584092 0.399413185 -0.891791525E-01-0.402593189 00020 + -0.618394303E-01 -47.7437684 8.94535901 -0.107744042 00011 + -1.06632062 0.166741450 -0.107916202 -1.30229160 00002 + 2.02204786 -0.537494821 0.320946553 4.39751589 30000 + -17.7287122 4.88024881 -2.93121031 -45.2936945 21000 + 41.4726098 -12.1033754 7.27184134 135.859531 12000 + -19.2547528 6.35601114 -3.56945325 -68.6229279 03000 + -0.639687329E-01 -12.8390162 2.47275278 -0.116142488 20100 + 0.383562426 75.4946868 -14.1477165 0.765093581 11100 + -0.277071262 -83.0427880 15.0668680 -0.857237445 02100 + 0.521382349 -0.660319017E-01 0.836917524E-01 1.62277288 10200 + -2.71588577 0.417636863 -0.374384882 -8.42602578 01200 + 0.379938273E-04 -2.22772442 0.411212102 0.595932467E-04 00300 + 0.401258847 134.208981 -25.7567352 0.723062756 20010 + -2.21408761 -779.349251 145.964198 -4.18430354 11010 + 0.744454921 871.241749 -162.500706 2.34060678 02010 + -11.1502023 2.11028391 -1.81145056 -34.1647858 10110 + 56.9030546 -11.4096324 8.30827969 175.204252 01110 + 0.176859702E-02 71.0256202 -13.2910484 0.286760063E-02 00210 + 8.25911533 -1.83293852 1.12279865 14.9915932 20001 + -47.6174640 11.2343899 -6.91073184 -102.172283 11001 + 55.1407027 -14.8476604 8.99669956 167.425330 02001 + -0.200203451 -29.7959888 5.79495202 -0.355610730 10101 + 0.581102350 92.6441184 -17.5793541 1.10085095 01101 + 0.674591404 0.105565714E-01 0.737030604E-01 1.59446570 00201 + 59.0337410 -14.8057661 9.71260968 178.996899 10020 + -300.510223 74.3557258 -46.1380545 -914.862619 01020 + -0.194284343E-01 -753.743922 142.021234 -0.257292965E-01 00120 + 1.26360425 313.950245 -60.8321028 2.32007780 10011 + -3.37979080 -961.090831 181.666938 -6.43192218 01011 + -14.6993853 0.949357116 -1.68119854 -34.2620515 00111 + 11.3392101 -2.12339845 1.34371761 17.7676078 10002 + -33.1512601 6.62921725 -4.19625684 -59.3627791 01002 + -0.156245518 -18.1815606 3.55438552 -0.262047136 00102 + 0.474746080E-01 2656.39365 -502.850198 0.463471331E-01 00030 + 78.9827133 -11.1025869 9.41992856 183.089213 00021 + 0.994119583 193.354135 -37.7652042 1.77029229 00012 + 5.21699889 -0.833070759 0.548672095 7.31883661 00003 + -10.2310470 2.58793362 -1.55296720 -20.8818053 40000 + 122.346406 -31.8016930 19.1514013 274.803184 31000 + -484.927225 130.536708 -78.8502835 -1239.39171 22000 + 698.547705 -196.026025 118.569037 2117.59465 13000 + -253.197685 71.4733280 -43.2279683 -793.955821 04000 + 0.478755489 50.8042226 -9.90654415 0.873955482 30100 + -4.37397264 -447.898533 86.2746226 -8.66132023 21100 + 11.4763945 1021.87911 -193.798067 25.5532707 12100 + -8.48802047 -353.060336 66.8753151 -21.2396696 03100 + -3.36720859 -0.838236058E-01-0.415102092 -7.72252752 20200 + 24.0878686 -0.495442242E-01 2.90836971 60.9325017 11200 + -34.4455158 1.63349908 -4.69517149 -108.631838 02200 + 0.442912829E-01 12.5587082 -2.42559826 0.848367234E-01 10300 + -0.230283983 -47.3794481 9.03448090 -0.440507243 01300 + 0.283577623E-02-0.143540811E-01-0.547824347E-02 0.852018881E-02 00400 + -3.26791034 -534.506883 103.795497 -5.92725408 30010 + 28.6301187 4659.91443 -893.080655 56.0463946 21010 + -70.6746258 -10463.9772 1970.57193 -152.877065 12010 + 51.0546655 3328.38501 -620.439424 110.384945 03010 + 70.5111920 -3.43784640 9.33042304 161.394209 20110 + -496.879287 38.6458480 -65.4747062 -1255.15133 11110 + 692.838002 -91.3622801 104.349751 2188.94309 02110 + -1.25350164 -400.576729 77.1331109 -2.34946863 10210 + 6.41379076 1464.94649 -277.703946 12.0388385 01210 + 0.616071012E-01 0.431663751 0.233010610 0.205151952 00310 + -53.7324214 12.0470374 -7.36030183 -98.1457889 30001 + 479.946013 -111.483954 68.2857467 965.271817 21001 + -1264.83189 310.320245 -190.049701 -2920.57583 12001 + 908.437639 -243.926958 148.585765 2640.79126 03001 + 2.09423955 181.634158 -35.4615614 3.66998997 20101 + -12.4222735 -1095.06205 211.310693 -23.6481174 11101 + 15.9439662 1318.52165 -249.844514 34.4087498 02101 + -9.04889740 -0.981106225 -0.821042471 -17.5288403 10201 + 32.7896223 1.98193189 3.03790521 68.2379240 01201 + 0.669006170E-01 13.8708532 -2.68487439 0.137585094 00301 + -364.345374 44.3259017 -51.4824092 -832.969317 20020 + 2544.78211 -394.818501 363.991890 6417.23269 11020 + -3471.80741 769.376804 -575.098061 -10993.0814 02020 + 11.3713564 4214.76800 -808.266439 20.7767760 10120 + -57.8302278 -15048.6462 2835.73631 -105.832362 01120 + -2.94126792 -4.06795824 -3.57808304 -9.18394633 00220 + -14.3642114 -1918.69583 373.400429 -25.3958400 20011 + 81.1943803 11438.0513 -2198.62553 156.120610 11011 + -97.3240697 -13566.1443 2554.66747 -212.552114 02011 + 190.592397 5.72007042 19.3473587 369.014700 10111 + -681.345885 11.0581522 -71.0735638 -1421.30508 01111 + -1.91822032 -449.741675 86.8561930 -3.88665848 00211 + -106.687061 21.3753198 -13.3322724 -177.074891 20002 + 635.350743 -132.444104 82.7053121 1158.01320 11002 + -835.125883 186.172714 -115.959663 -1741.61114 02002 + 3.06174899 221.985076 -43.3397533 5.08551026 10102 + -8.92400516 -682.419546 131.944729 -16.1898306 01102 + -5.93441922 -1.10073087 -0.387050726 -10.1072757 00202 + -32.9889805 -14661.6003 2798.56489 -58.1276688 10030 + 167.517883 51368.8950 -9618.43666 295.415008 01030 + 28.3941064 9.68440896 23.4686857 87.2909218 00130 + -991.039530 46.5410894 -111.012275 -1919.22417 10021 + 3518.02268 -329.920270 408.281910 7348.25903 01021 + 17.6373146 4803.10775 -924.194990 35.2966406 00121 + -21.1299702 -2355.14588 458.851003 -35.7625111 10012 + 58.3993979 7153.37734 -1379.14931 108.523448 01012 + 125.953374 12.6540913 9.76198680 213.987875 00112 + -95.1280319 17.1315501 -10.9364018 -145.190536 10003 + 284.630985 -53.3887753 34.0723952 475.442597 01003 + 1.49562799 92.8494449 -18.0995700 2.34278440 00103 + -79.5213500 20.8879780 -54.9235967 -242.773250 00040 + -51.9910235 -16946.9753 3246.45584 -102.509863 00031 + -659.873293 -11.7721877 -58.9266869 -1119.21455 00022 + -10.4011417 -989.993413 192.843487 -16.7150638 00013 + -32.1638312 5.22805774 -3.42382892 -45.5409478 00004 + 56.9874052 -14.0280263 8.44406126 113.166389 50000 + -862.148504 217.000788 -130.924262 -1835.65902 41000 + 4799.47652 -1241.60187 750.626149 11147.8478 32000 + -11898.1698 3183.83477 -1927.63729 -30857.8307 23000 + 12434.6516 -3462.29213 2097.50161 36948.2031 14000 + -3990.49244 1146.30283 -695.128709 -12945.5677 05000 + -3.44477032 -249.145828 48.6057862 -6.29724345 40100 + 41.7714168 3027.67374 -585.679647 81.4344326 31100 + -171.531494 -12177.5931 2329.03675 -364.018985 22100 + 270.625730 17725.3388 -3335.70768 643.261694 13100 + -126.957714 -6539.67012 1198.52782 -351.996902 04100 + 23.2462346 2.43155837 2.29253668 49.3366366 30200 + -234.783393 -17.9606079 -23.9389059 -539.518291 21200 + 704.178643 25.5892552 77.1664334 1824.75535 12200 + -576.444408 12.2697306 -71.2693576 -1828.16626 03200 + -0.598599182 -84.4603491 16.4396122 -1.13912510 20300 + 4.45817688 605.281820 -116.354654 8.83333001 11300 + -7.03512063 -915.661182 172.660638 -15.2093916 02300 + 1.06762704 0.374255924 0.119161486 2.95562701 10400 + -5.59540997 -1.56625339 -0.450286240 -15.4431799 01400 + 0.217197000E-03-0.960608366 0.168448980 0.411150714E-03 00500 + 24.1580478 2632.70126 -511.988836 43.9432023 40010 + -283.128549 -31772.9550 6125.08862 -549.087000 31010 + 1107.42109 126922.676 -24183.7800 2337.09747 22010 + -1621.47504 -183964.370 34490.9352 -3824.14748 13010 + 659.869151 68870.4014 -12630.8408 1800.59807 04010 + -485.210604 -16.1842214 -53.1948724 -1031.03277 30110 + 4859.46831 25.5791673 551.405275 11180.9997 21110 + -14433.5182 504.059994 -1757.92419 -37456.4033 12110 + 11677.5132 -1058.56813 1592.31596 37107.0771 03110 + 16.8661919 2683.74362 -521.349453 31.9458035 20210 + -123.178207 -18974.1474 3639.79305 -243.290295 11210 + 187.528059 28293.7118 -5322.14179 406.182661 02210 + -47.5232327 -12.3285624 -5.60088482 -130.920636 10310 + 244.431098 48.5160794 21.8048230 674.824538 01310 + 0.431976467E-02 59.8136908 -11.0319431 0.864761359E-02 00410 + 367.377567 -82.6824915 50.4619769 673.160709 40001 + -4435.92025 1023.92370 -626.038427 -8711.03977 31001 + 18493.3531 -4415.47173 2702.05022 39666.9109 22001 + -30567.4222 7638.46524 -4671.44742 -73617.1308 13001 + 16038.4954 -4252.36261 2593.32705 45293.5060 04001 + -19.4043828 -1193.12161 232.740037 -34.0166755 30101 + 174.493103 10939.1238 -2117.64680 326.128670 21101 + -473.155134 -29745.1369 5698.26365 -962.418162 12101 + 370.379831 22233.4059 -4191.91515 845.592924 03101 + 91.0190854 14.9697702 6.95171402 172.875986 20201 + -613.410062 -77.7304058 -50.4260848 -1251.62438 11201 + 926.799756 71.2278125 85.5228150 2115.72110 02201 + -1.75130753 -195.741237 38.1734565 -3.26332266 10301 + 6.40012284 720.989443 -139.129269 12.2486999 01301 + 1.27109344 0.743554964 0.743139297E-01 3.18869907 00401 + 2499.68930 -92.0884395 300.960890 5321.22948 30020 + -24933.5577 1656.32226 -3115.41289 -57451.6252 21020 + 73661.4307 -7942.31534 9882.57243 191450.910 12020 + -59184.9250 9591.30798 -8838.09084 -188552.036 03020 + -153.998922 -28195.2434 5464.23299 -290.242072 20120 + 1103.92870 197369.539 -37773.2044 2170.71865 11120 + -1613.20094 -291108.369 54629.3971 -3496.90704 02120 + 775.584342 138.679038 96.0710850 2130.83121 10220 + -3940.62199 -489.398388 -384.097382 -10885.0526 01220 + -0.294033498 -1413.02750 264.755228 -0.557828885 00320 + 136.908065 12637.7063 -2459.05241 240.570548 30011 + -1189.00726 -115052.551 22210.8941 -2230.01537 21011 + 3074.10115 310484.814 -59292.1644 6282.87279 12011 + -2245.00467 -230632.952 43325.6304 -5153.99079 03011 + -1905.33134 -170.893713 -168.479423 -3624.81709 20111 + 12735.6104 676.510595 1202.37578 26046.1290 11111 + -19041.3456 -89.1798916 -1996.87135 -43631.5482 02111 + 49.6705800 6260.46872 -1218.72438 92.3424360 10211 + -177.736416 -22749.9325 4381.96994 -340.054305 01211 + -57.1634358 -26.8276872 -3.97845276 -142.039230 00311 + 955.320788 -197.644075 122.452961 1629.28796 30002 + -8645.71138 1838.09648 -1140.13038 -15786.8327 21002 + 24022.7123 -5306.89371 3290.49341 47910.1278 12002 + -19860.1945 4633.69315 -2864.62252 -44514.6215 03002 + -41.0518476 -2186.45130 426.114423 -68.7276992 20102 + 244.190268 13439.4172 -2601.50144 436.382642 11102 + -328.503492 -18478.6624 3543.14182 -639.758333 02102 + 118.919180 25.8939262 6.86989890 205.981939 10202 + -404.064248 -69.2253993 -26.3853981 -745.324679 01202 + -1.26449657 -114.704160 22.3668870 -2.26605584 00302 + 455.464686 98107.3191 -18964.7244 853.218781 20030 + -3197.09543 -682046.123 130223.471 -6246.78311 11030 + 4428.96802 998321.180 -186937.682 9597.92772 02030 + -5526.58960 -579.618541 -717.130860 -15173.1141 10130 + 27890.3721 1516.19385 2940.47657 77117.8731 01130 + 4.12740865 16022.0792 -3013.04039 7.64253774 00230 + 9846.83071 160.286895 986.066875 18773.2629 20021 + -65566.5962 1354.63778 -6982.87458 -134372.683 11021 + 97426.3918 -6713.28525 11450.7709 223931.713 02021 + -456.872353 -66175.1137 12853.5558 -848.384005 10121 + 1601.78891 238078.392 -45760.3184 3063.93531 01121 + 939.888077 347.481304 74.9163503 2324.91804 00221 + 291.291280 23217.1250 -4516.92215 491.395891 20012 + -1672.25515 -141679.134 27370.4460 -3018.96270 11012 + 2145.08264 193215.095 -36959.2643 4231.12527 02012 + -2498.26487 -348.210426 -176.637168 -4332.69216 10112 + 8422.08921 801.803136 657.778824 15569.9687 01112 + 36.1334242 3694.59848 -719.338793 64.6877708 00212 + 1253.94055 -239.430298 150.769632 2004.15183 20003 + -7573.08007 1487.60127 -937.185346 -12941.0765 11003 + 10531.1436 -2156.83420 1356.43726 19652.8353 02003 + -38.7031132 -1815.97136 353.365535 -61.7810020 10103 + 114.627679 5618.04358 -1086.75763 195.570480 01103 + 51.7940111 13.8809432 2.15620301 83.1013912 00203 + 14564.2549 511.990977 1974.52369 40035.0881 10040 + -73363.6784 943.163943 -8305.08084 -203174.862 01040 + -22.8085734 -88027.5212 16535.0877 -41.2193059 00140 + 1362.71596 231613.917 -44879.3389 2529.02565 10031 + -4667.45713 -827371.337 158681.295 -8926.39149 01031 + -6733.37773 -1886.39701 -600.492321 -16647.5823 00131 + 12959.2913 812.675183 1078.63618 22515.2213 10022 + -43542.1228 -835.654469 -3950.38443 -80648.1551 01022 + -335.014584 -39308.1721 7638.29187 -600.384561 00122 + 276.145232 19334.5383 -3758.95614 445.849699 10013 + -788.763635 -59372.6331 11471.8453 -1366.71593 01013 + -1092.59778 -202.863258 -60.5394738 -1753.76896 00113 + 831.520392 -146.935766 94.1466613 1252.09492 10004 + -2518.45211 457.879726 -293.345340 -4046.44792 01004 + -13.7319298 -575.917403 111.835289 -20.8987165 00104 + 44.4270743 188823.510 -35350.8790 78.3118688 00050 + 17812.3889 3504.86325 1749.96339 44166.2643 00041 + 1008.09985 138438.014 -26843.5381 1811.48774 00032 + 5691.22754 599.924140 391.062451 9145.39260 00023 + 98.5289267 6149.62744 -1194.22453 152.056469 00014 + 223.021664 -36.5318347 23.8422660 317.711926 00005 + ------------------------------------------------------------------------------ diff --git a/DATFILES/SHMS_fr3_rec__order_6.dat b/DATFILES/SHMS_fr3_rec__order_6.dat new file mode 100644 index 00000000..3974aa1d --- /dev/null +++ b/DATFILES/SHMS_fr3_rec__order_6.dat @@ -0,0 +1,467 @@ +! SHMS reconstruction optics +! made with Cosy from `shms-2011-26cm-monte.fox` +! order: 6 +! 2017/03/02 + ------------------------------------------------------------------------------ + 0.271575341 -0.562369031E-01 0.319566081E-01 0.610081289 10000 + -1.40168967 0.324549698E-02-0.184425296E-02-0.352084997E-01 01000 + 0.00000000 -0.614627877 0.268258711 0.00000000 00100 + 0.00000000 -0.334494674E-01 -1.61240146 0.00000000 00010 + 0.292838822 -0.779452895E-01 0.442923940E-01 0.845582884 00001 + -0.461777082 0.133175412 -0.795465553E-01 -1.10941840 20000 + 2.31345901 -0.651650789 0.410139671 7.40765439 11000 + 0.313171816 -0.189779817 0.503365657E-02 1.07619091 02000 + 0.832253162E-02 3.25891656 -0.623172326 0.130538752E-01 10100 + -0.429553235E-01-0.337197010 0.115900052 -0.673753442E-01 01100 + 0.123978944E-02 0.104304462E-02-0.173094037E-02 0.293611941E-02 00200 + -0.346040884E-01 -34.2794401 6.37461563 -0.337822756E-01 10010 + 0.178603084 2.78206782 -0.304747312 0.174361437 01010 + 0.628665824E-01-0.824087196E-01 0.307462383E-01 0.154433366 00110 + -1.40937257 0.301926272 -0.187978798 -2.47726545 10001 + 3.33484635 -0.862548001 0.574689548 10.5041925 01001 + 0.130450160E-01 4.51258325 -0.861523847 0.259132153E-01 00101 + -0.372584091 0.399413184 -0.891791521E-01-0.402593181 00020 + -0.618394303E-01 -47.7437684 8.94535901 -0.107744042 00011 + -1.06632062 0.166741450 -0.107916203 -1.30229160 00002 + 2.02204786 -0.537494821 0.320946553 4.39751589 30000 + -17.7287122 4.88024881 -2.93121031 -45.2936945 21000 + 41.4726098 -12.1033754 7.27184133 135.859531 12000 + -19.2547528 6.35601114 -3.56945325 -68.6229279 03000 + -0.639687329E-01 -12.8390162 2.47275278 -0.116142488 20100 + 0.383562426 75.4946868 -14.1477165 0.765093581 11100 + -0.277071262 -83.0427880 15.0668680 -0.857237445 02100 + 0.521382349 -0.660319016E-01 0.836917524E-01 1.62277288 10200 + -2.71588577 0.417636863 -0.374384881 -8.42602577 01200 + 0.379938280E-04 -2.22772442 0.411212102 0.595932479E-04 00300 + 0.401258847 134.208981 -25.7567352 0.723062756 20010 + -2.21408761 -779.349251 145.964198 -4.18430354 11010 + 0.744454921 871.241749 -162.500706 2.34060678 02010 + -11.1502023 2.11028390 -1.81145056 -34.1647858 10110 + 56.9030546 -11.4096324 8.30827969 175.204252 01110 + 0.176859701E-02 71.0256202 -13.2910484 0.286760060E-02 00210 + 8.25911533 -1.83293852 1.12279865 14.9915932 20001 + -47.6174640 11.2343899 -6.91073184 -102.172283 11001 + 55.1407027 -14.8476604 8.99669956 167.425330 02001 + -0.200203451 -29.7959888 5.79495202 -0.355610730 10101 + 0.581102350 92.6441184 -17.5793541 1.10085095 01101 + 0.674591404 0.105565714E-01 0.737030604E-01 1.59446570 00201 + 59.0337410 -14.8057661 9.71260968 178.996899 10020 + -300.510223 74.3557258 -46.1380545 -914.862618 01020 + -0.194284342E-01 -753.743922 142.021234 -0.257292963E-01 00120 + 1.26360425 313.950245 -60.8321028 2.32007780 10011 + -3.37979080 -961.090831 181.666938 -6.43192218 01011 + -14.6993853 0.949357116 -1.68119854 -34.2620515 00111 + 11.3392101 -2.12339845 1.34371761 17.7676078 10002 + -33.1512601 6.62921725 -4.19625684 -59.3627791 01002 + -0.156245518 -18.1815606 3.55438552 -0.262047135 00102 + 0.474746078E-01 2656.39365 -502.850198 0.463471329E-01 00030 + 78.9827133 -11.1025869 9.41992856 183.089213 00021 + 0.994119583 193.354135 -37.7652042 1.77029229 00012 + 5.21699889 -0.833070758 0.548672097 7.31883661 00003 + -10.2310470 2.58793363 -1.55296720 -20.8818053 40000 + 122.346406 -31.8016931 19.1514013 274.803184 31000 + -484.927225 130.536708 -78.8502836 -1239.39171 22000 + 698.547705 -196.026026 118.569037 2117.59465 13000 + -253.197685 71.4733299 -43.2279688 -793.955821 04000 + 0.478755489 50.8042226 -9.90654415 0.873955482 30100 + -4.37397264 -447.898533 86.2746226 -8.66132023 21100 + 11.4763945 1021.87911 -193.798067 25.5532707 12100 + -8.48802047 -353.060336 66.8753151 -21.2396696 03100 + -3.36720859 -0.838236063E-01-0.415102092 -7.72252752 20200 + 24.0878685 -0.495442198E-01 2.90836971 60.9325017 11200 + -34.4455158 1.63349907 -4.69517148 -108.631838 02200 + 0.442912828E-01 12.5587082 -2.42559826 0.848367234E-01 10300 + -0.230283983 -47.3794481 9.03448089 -0.440507243 01300 + 0.283577733E-02-0.143540800E-01-0.547824407E-02 0.852017739E-02 00400 + -3.26791034 -534.506883 103.795497 -5.92725407 30010 + 28.6301187 4659.91443 -893.080655 56.0463946 21010 + -70.6746258 -10463.9772 1970.57193 -152.877065 12010 + 51.0546655 3328.38501 -620.439424 110.384945 03010 + 70.5111920 -3.43784639 9.33042303 161.394209 20110 + -496.879287 38.6458479 -65.4747061 -1255.15133 11110 + 692.838001 -91.3622799 104.349751 2188.94309 02110 + -1.25350164 -400.576728 77.1331109 -2.34946863 10210 + 6.41379076 1464.94649 -277.703946 12.0388385 01210 + 0.616070570E-01 0.431663738 0.233010617 0.205152083 00310 + -53.7324214 12.0470375 -7.36030184 -98.1457889 30001 + 479.946013 -111.483955 68.2857468 965.271817 21001 + -1264.83189 310.320246 -190.049701 -2920.57583 12001 + 908.437639 -243.926960 148.585765 2640.79126 03001 + 2.09423955 181.634158 -35.4615614 3.66998997 20101 + -12.4222735 -1095.06205 211.310693 -23.6481174 11101 + 15.9439662 1318.52165 -249.844514 34.4087498 02101 + -9.04889740 -0.981106226 -0.821042471 -17.5288403 10201 + 32.7896223 1.98193190 3.03790521 68.2379240 01201 + 0.669006170E-01 13.8708532 -2.68487439 0.137585094 00301 + -364.345374 44.3259017 -51.4824091 -832.969317 20020 + 2544.78211 -394.818501 363.991889 6417.23269 11020 + -3471.80741 769.376803 -575.098061 -10993.0814 02020 + 11.3713564 4214.76800 -808.266439 20.7767759 10120 + -57.8302278 -15048.6462 2835.73631 -105.832362 01120 + -2.94126738 -4.06795826 -3.57808303 -9.18394609 00220 + -14.3642114 -1918.69583 373.400429 -25.3958400 20011 + 81.1943803 11438.0513 -2198.62553 156.120610 11011 + -97.3240696 -13566.1443 2554.66747 -212.552114 02011 + 190.592397 5.72007044 19.3473587 369.014700 10111 + -681.345885 11.0581522 -71.0735638 -1421.30508 01111 + -1.91822032 -449.741674 86.8561930 -3.88665848 00211 + -106.687061 21.3753198 -13.3322724 -177.074891 20002 + 635.350743 -132.444105 82.7053122 1158.01320 11002 + -835.125883 186.172715 -115.959663 -1741.61114 02002 + 3.06174899 221.985076 -43.3397533 5.08551026 10102 + -8.92400515 -682.419546 131.944729 -16.1898306 01102 + -5.93441922 -1.10073087 -0.387050727 -10.1072757 00202 + -32.9889805 -14661.6003 2798.56489 -58.1276688 10030 + 167.517883 51368.8950 -9618.43665 295.415008 01030 + 28.3941035 9.68440966 23.4686853 87.2909141 00130 + -991.039530 46.5410893 -111.012275 -1919.22416 10021 + 3518.02268 -329.920269 408.281910 7348.25903 01021 + 17.6373146 4803.10774 -924.194989 35.2966405 00121 + -21.1299702 -2355.14588 458.851003 -35.7625111 10012 + 58.3993979 7153.37734 -1379.14931 108.523448 01012 + 125.953374 12.6540913 9.76198680 213.987875 00112 + -95.1280319 17.1315502 -10.9364018 -145.190536 10003 + 284.630985 -53.3887756 34.0723952 475.442597 01003 + 1.49562799 92.8494449 -18.0995700 2.34278439 00103 + -79.5213439 20.8879758 -54.9235955 -242.773226 00040 + -51.9910235 -16946.9753 3246.45584 -102.509862 00031 + -659.873293 -11.7721877 -58.9266869 -1119.21455 00022 + -10.4011416 -989.993413 192.843487 -16.7150638 00013 + -32.1638312 5.22805775 -3.42382897 -45.5409478 00004 + 56.9874052 -14.0280264 8.44406126 113.166389 50000 + -862.148504 217.000788 -130.924262 -1835.65902 41000 + 4799.47652 -1241.60187 750.626149 11147.8478 32000 + -11898.1698 3183.83478 -1927.63729 -30857.8307 23000 + 12434.6516 -3462.29214 2097.50161 36948.2031 14000 + -3990.49244 1146.30283 -695.128709 -12945.5677 05000 + -3.44477032 -249.145828 48.6057862 -6.29724345 40100 + 41.7714168 3027.67374 -585.679647 81.4344326 31100 + -171.531494 -12177.5931 2329.03675 -364.018985 22100 + 270.625730 17725.3388 -3335.70768 643.261693 13100 + -126.957714 -6539.67012 1198.52782 -351.996902 04100 + 23.2462346 2.43155837 2.29253668 49.3366365 30200 + -234.783393 -17.9606079 -23.9389058 -539.518291 21200 + 704.178643 25.5892554 77.1664333 1824.75535 12200 + -576.444408 12.2697305 -71.2693576 -1828.16626 03200 + -0.598599181 -84.4603491 16.4396122 -1.13912509 20300 + 4.45817688 605.281819 -116.354654 8.83333001 11300 + -7.03512062 -915.661181 172.660638 -15.2093915 02300 + 1.06762705 0.374255925 0.119161485 2.95562699 10400 + -5.59541001 -1.56625339 -0.450286237 -15.4431799 01400 + 0.217197036E-03-0.960608428 0.168448991 0.411150773E-03 00500 + 24.1580478 2632.70126 -511.988836 43.9432023 40010 + -283.128549 -31772.9550 6125.08862 -549.087000 31010 + 1107.42109 126922.676 -24183.7800 2337.09747 22010 + -1621.47504 -183964.370 34490.9352 -3824.14748 13010 + 659.869151 68870.4014 -12630.8408 1800.59807 04010 + -485.210604 -16.1842215 -53.1948723 -1031.03277 30110 + 4859.46831 25.5791678 551.405274 11180.9997 21110 + -14433.5182 504.059993 -1757.92419 -37456.4033 12110 + 11677.5132 -1058.56813 1592.31596 37107.0770 03110 + 16.8661919 2683.74362 -521.349453 31.9458035 20210 + -123.178207 -18974.1474 3639.79305 -243.290295 11210 + 187.528059 28293.7117 -5322.14179 406.182661 02210 + -47.5232327 -12.3285625 -5.60088479 -130.920635 10310 + 244.431098 48.5160796 21.8048229 674.824535 01310 + 0.431976306E-02 59.8136922 -11.0319433 0.864761108E-02 00410 + 367.377567 -82.6824917 50.4619769 673.160709 40001 + -4435.92025 1023.92371 -626.038428 -8711.03977 31001 + 18493.3531 -4415.47174 2702.05023 39666.9109 22001 + -30567.4222 7638.46527 -4671.44743 -73617.1309 13001 + 16038.4954 -4252.36263 2593.32705 45293.5060 04001 + -19.4043828 -1193.12161 232.740037 -34.0166755 30101 + 174.493103 10939.1238 -2117.64680 326.128670 21101 + -473.155134 -29745.1369 5698.26365 -962.418162 12101 + 370.379830 22233.4059 -4191.91514 845.592924 03101 + 91.0190854 14.9697702 6.95171401 172.875986 20201 + -613.410062 -77.7304059 -50.4260848 -1251.62438 11201 + 926.799755 71.2278127 85.5228149 2115.72110 02201 + -1.75130753 -195.741237 38.1734565 -3.26332266 10301 + 6.40012284 720.989443 -139.129269 12.2486999 01301 + 1.27109345 0.743554961 0.743139310E-01 3.18869908 00401 + 2499.68930 -92.0884393 300.960890 5321.22947 30020 + -24933.5577 1656.32226 -3115.41289 -57451.6252 21020 + 73661.4307 -7942.31533 9882.57243 191450.910 12020 + -59184.9250 9591.30797 -8838.09084 -188552.036 03020 + -153.998922 -28195.2434 5464.23299 -290.242072 20120 + 1103.92870 197369.539 -37773.2044 2170.71865 11120 + -1613.20094 -291108.369 54629.3971 -3496.90704 02120 + 775.584340 138.679038 96.0710844 2130.83120 10220 + -3940.62199 -489.398391 -384.097380 -10885.0526 01220 + -0.294033474 -1413.02750 264.755228 -0.557828849 00320 + 136.908065 12637.7063 -2459.05241 240.570548 30011 + -1189.00726 -115052.551 22210.8941 -2230.01537 21011 + 3074.10115 310484.814 -59292.1644 6282.87278 12011 + -2245.00467 -230632.952 43325.6304 -5153.99079 03011 + -1905.33134 -170.893713 -168.479422 -3624.81709 20111 + 12735.6104 676.510596 1202.37578 26046.1290 11111 + -19041.3456 -89.1798936 -1996.87135 -43631.5482 02111 + 49.6705799 6260.46871 -1218.72438 92.3424359 10211 + -177.736415 -22749.9325 4381.96993 -340.054304 01211 + -57.1634358 -26.8276872 -3.97845276 -142.039230 00311 + 955.320788 -197.644076 122.452961 1629.28796 30002 + -8645.71138 1838.09648 -1140.13038 -15786.8327 21002 + 24022.7123 -5306.89373 3290.49342 47910.1278 12002 + -19860.1945 4633.69317 -2864.62253 -44514.6215 03002 + -41.0518476 -2186.45130 426.114423 -68.7276992 20102 + 244.190268 13439.4172 -2601.50144 436.382641 11102 + -328.503492 -18478.6624 3543.14182 -639.758333 02102 + 118.919180 25.8939262 6.86989890 205.981939 10202 + -404.064248 -69.2253994 -26.3853981 -745.324679 01202 + -1.26449657 -114.704160 22.3668870 -2.26605583 00302 + 455.464686 98107.3190 -18964.7244 853.218781 20030 + -3197.09543 -682046.122 130223.471 -6246.78311 11030 + 4428.96802 998321.180 -186937.682 9597.92772 02030 + -5526.58958 -579.618546 -717.130857 -15173.1140 10130 + 27890.3720 1516.19387 2940.47656 77117.8729 01130 + 4.12740847 16022.0791 -3013.04037 7.64253749 00230 + 9846.83071 160.286896 986.066874 18773.2629 20021 + -65566.5962 1354.63778 -6982.87458 -134372.683 11021 + 97426.3918 -6713.28524 11450.7709 223931.713 02021 + -456.872352 -66175.1137 12853.5558 -848.384005 10121 + 1601.78891 238078.392 -45760.3183 3063.93531 01121 + 939.888074 347.481305 74.9163500 2324.91803 00221 + 291.291280 23217.1250 -4516.92215 491.395891 20012 + -1672.25515 -141679.134 27370.4460 -3018.96270 11012 + 2145.08264 193215.095 -36959.2643 4231.12527 02012 + -2498.26487 -348.210426 -176.637168 -4332.69216 10112 + 8422.08921 801.803137 657.778824 15569.9687 01112 + 36.1334242 3694.59848 -719.338793 64.6877707 00212 + 1253.94055 -239.430299 150.769632 2004.15183 20003 + -7573.08007 1487.60128 -937.185348 -12941.0765 11003 + 10531.1436 -2156.83421 1356.43726 19652.8353 02003 + -38.7031132 -1815.97136 353.365535 -61.7810020 10103 + 114.627679 5618.04358 -1086.75763 195.570480 01103 + 51.7940111 13.8809432 2.15620301 83.1013911 00203 + 14564.2549 511.990989 1974.52368 40035.0880 10040 + -73363.6783 943.163905 -8305.08081 -203174.862 01040 + -22.8085727 -88027.5206 16535.0876 -41.2193050 00140 + 1362.71596 231613.917 -44879.3389 2529.02565 10031 + -4667.45713 -827371.336 158681.295 -8926.39148 01031 + -6733.37771 -1886.39702 -600.492319 -16647.5823 00131 + 12959.2913 812.675184 1078.63618 22515.2213 10022 + -43542.1228 -835.654472 -3950.38443 -80648.1551 01022 + -335.014584 -39308.1721 7638.29187 -600.384561 00122 + 276.145231 19334.5383 -3758.95614 445.849699 10013 + -788.763634 -59372.6331 11471.8453 -1366.71593 01013 + -1092.59778 -202.863258 -60.5394739 -1753.76896 00113 + 831.520392 -146.935767 94.1466614 1252.09492 10004 + -2518.45211 457.879729 -293.345341 -4046.44792 01004 + -13.7319298 -575.917403 111.835290 -20.8987165 00104 + 44.4270733 188823.509 -35350.8788 78.3118677 00050 + 17812.3888 3504.86326 1749.96338 44166.2642 00041 + 1008.09985 138438.013 -26843.5381 1811.48774 00032 + 5691.22754 599.924140 391.062452 9145.39260 00023 + 98.5289265 6149.62744 -1194.22453 152.056469 00014 + 223.021664 -36.5318350 23.8422661 317.711927 00005 + -337.509421 81.6690258 -49.2617602 -659.137367 60000 + 6169.95253 -1520.50640 918.686058 12722.8287 51000 + -44127.0838 11112.0226 -6723.79442 -97050.4358 42000 + 155261.663 -40106.9530 24296.3619 368769.310 33000 + -276171.572 73467.5756 -44534.7771 -718591.526 24000 + 226512.842 -62138.0595 37666.3267 652354.848 15000 + -63524.4817 17751.8330 -10755.0866 -195042.521 06000 + 24.9420003 1358.26113 -264.765068 45.6728748 50100 + -379.438571 -20851.0155 4040.85803 -731.664091 41100 + 2146.01352 117772.368 -22661.5093 4408.71191 32100 + -5520.61754 -295846.695 56432.3573 -12262.3287 23100 + 6266.38364 312285.994 -58992.1443 15305.8228 14100 + -2416.99690 -100973.290 19009.6203 -6557.31355 05100 + -163.939003 -24.2249119 -13.7418705 -332.988638 40200 + 2155.48125 264.587658 190.851498 4648.92093 31200 + -9824.71852 -900.537539 -934.098157 -22900.4151 22200 + 17790.3436 962.687020 1850.03300 45981.6308 13200 + -10135.4333 -157.642729 -1165.76371 -30190.6185 04200 + 6.40165855 562.077852 -109.803026 12.0768168 30300 + -66.1662168 -5746.38383 1114.03232 -130.513661 21300 + 207.666368 17516.7162 -3362.84788 437.347336 12300 + -189.624810 -14570.2465 2761.35172 -441.147684 03300 + -14.7395288 -6.55587229 -0.857932819 -33.2781508 20400 + 119.166950 47.7810308 6.57698941 279.214578 11400 + -221.208276 -73.6488157 -13.0490725 -552.769264 02400 + 0.141193922 28.3486333 -5.52133125 0.294871034 10500 + -0.739550573 -137.736836 26.6468572 -1.54068404 01500 + 0.663821717E-02-0.292282081E-01-0.685243335E-02 0.183880324E-01 00600 + -177.500317 -14384.0536 2797.13749 -323.756192 50010 + 2629.21922 219668.159 -42462.0795 5050.98425 41010 + -14365.4126 -1233948.64 236785.803 -29408.7283 32010 + 35297.0981 3082641.66 -586317.046 78106.0835 23010 + -37652.5447 -3237914.43 609927.433 -91328.3919 14010 + 13418.8024 1042654.03 -195970.897 35486.4684 05010 + 3417.82552 265.682233 326.932669 6954.03929 40110 + -44669.9428 -2355.30012 -4491.15050 -96501.2091 31110 + 202298.949 4353.99422 21710.5147 472200.968 22110 + -363804.541 5829.43736 -42385.8582 -941044.256 13110 + 205878.079 -11124.0556 26291.6694 612541.416 04110 + -180.585787 -17803.9616 3472.76578 -339.956144 30210 + 1841.57644 180347.032 -34907.8878 3627.10234 21210 + -5680.25088 -543841.772 104233.947 -11954.0142 12210 + 5070.27597 446228.396 -84424.4034 11790.2958 03210 + 634.404830 232.972915 43.6445380 1432.50677 20310 + -5063.06871 -1649.13534 -335.212421 -11879.4713 11310 + 9245.09527 2397.56327 655.769878 23173.1833 02310 + -7.36643811 -1579.27929 307.466031 -15.1897919 10410 + 37.9141084 7445.84304 -1438.32955 78.2244836 01410 + -0.257965911E-01 1.92995391 0.479028702 -0.639159835E-01 00510 + -2584.00456 582.551712 -355.323904 -4740.40665 50001 + 39298.5107 -9036.87305 5519.51951 76098.9622 41001 + -224600.782 52936.3245 -32361.0810 -464126.096 32001 + 592594.575 -144034.914 88066.9824 1325237.15 23001 + -703642.501 177668.973 -108541.863 -1733311.25 14001 + 289523.871 -76442.1109 46607.3011 801909.021 05001 + 171.366300 8177.07333 -1592.63584 301.918300 40101 + -2071.51631 -100610.315 19490.2615 -3842.85050 31101 + 8730.42538 428499.538 -82456.1605 17258.8152 22101 + -14884.6921 -725274.088 138390.777 -31845.7525 13101 + 8408.11416 389530.782 -73556.8676 19837.2672 04101 + -842.787534 -162.725736 -56.8544714 -1582.16058 30201 + 8303.79449 1352.53440 609.876245 16510.5316 21201 + -25249.0913 -3193.88880 -2054.58631 -54194.3776 12201 + 22893.2540 1900.20407 2111.22207 54674.1791 03201 + 27.0316737 1998.31058 -390.287858 49.3222225 20301 + -184.425555 -13722.0709 2661.65813 -350.649939 11301 + 287.116975 21308.6214 -4096.26285 580.917280 02301 + -37.3112347 -21.0015636 -0.897914468 -76.9285178 10401 + 151.317332 74.7531764 4.11494043 318.964868 01401 + 0.202769495 30.2331068 -5.88796213 0.436694982 00501 + -17587.1377 -156.280046 -1884.81597 -35854.0189 40020 + 229212.728 -3975.34694 25765.7717 495962.115 31020 + -1034637.43 51479.8793 -123746.842 -2417778.11 22020 + 1853650.43 -163572.127 239511.816 4796859.79 13020 + -1045080.43 132322.680 -147041.474 -3105205.67 04020 + 1658.24845 186672.374 -36346.4127 3114.25570 30120 + -16691.7704 -1877327.25 362723.241 -32803.7435 21120 + 50561.8464 5611939.39 -1073680.74 106216.375 12120 + -44018.5085 -4551427.75 859622.058 -102140.440 03120 + -10104.4784 -2974.37562 -796.944491 -22827.6414 20220 + 79874.1254 20246.6876 6140.24499 187607.419 11220 + -144005.115 -26894.7501 -11912.7141 -361645.823 02220 + 149.968417 34500.6823 -6705.98983 305.836375 10320 + -762.417317 -159327.429 30717.8616 -1558.73880 01320 + -7.99340888 -51.1898738 -13.5083168 -22.2192265 00420 + -1225.99117 -86741.7389 16863.7524 -2160.92218 40011 + 14427.9285 1061738.37 -205276.247 26801.3511 31011 + -58757.6319 -4496739.61 863460.139 -116445.222 22011 + 95770.9980 7567322.12 -1440589.01 205629.240 13011 + -50939.7547 -4042813.45 761583.751 -120549.058 04011 + 17603.6062 2123.05127 1407.44247 33106.6478 30111 + -172427.593 -15684.1371 -14823.3285 -343526.127 21111 + 520888.003 28695.3100 48957.6963 1120469.36 12111 + -468862.927 -5697.23284 -49220.0813 -1122179.05 03111 + -765.513173 -63520.1008 12389.6989 -1396.02291 20211 + 5149.75287 432299.671 -83736.7084 9796.91407 11211 + -7873.99255 -663909.955 127439.186 -15965.7466 02211 + 1613.86758 771.319684 58.8609056 3324.30489 10311 + -6467.46023 -2670.49190 -255.272830 -13645.6536 01311 + -10.6714338 -1706.82838 332.400292 -22.6869511 00411 + -8307.77721 1751.33298 -1080.93561 -14393.9191 40002 + 100990.725 -21739.2343 13431.2298 184597.138 31002 + -432658.952 95679.0308 -59129.2996 -843999.823 22002 + 760933.671 -174270.406 107609.515 1608307.31 13002 + -451904.883 108307.418 -66724.3293 -1055406.75 04002 + 472.030506 19997.6838 -3890.26712 798.986266 30102 + -4258.79397 -184894.469 35790.4938 -7592.89212 21102 + 11907.3432 527206.935 -101424.652 22640.8153 12102 + -10100.0135 -449577.721 85806.4019 -20816.8043 03102 + -1632.83012 -381.837757 -86.9907352 -2859.46239 20202 + 10744.1931 2140.58088 646.815838 19866.7672 11202 + -16389.3533 -2593.02815 -1132.79865 -32626.5353 02202 + 37.8906387 2403.65549 -469.030805 66.4572105 10302 + -128.688324 -8328.19426 1615.23824 -234.816534 01302 + -23.3447879 -15.7808640 0.140422724 -44.7517896 00402 + -4957.48714 -648572.771 126041.796 -9281.46512 30030 + 49184.7374 6486980.90 -1251025.26 96346.0648 21030 + -145838.861 -19256914.0 3677539.94 -305373.704 12030 + 123094.577 15461814.2 -2915181.63 284307.477 03030 + 70730.0907 15889.5293 6266.52605 159935.913 20130 + -555417.326 -101691.484 -48498.5080 -1305679.49 11130 + 991909.304 113523.998 93702.8764 2493446.31 02130 + -1494.13719 -371188.363 71989.0634 -3015.30705 10230 + 7534.78239 1689981.50 -325102.948 15261.0842 01230 + 207.674911 703.111076 198.286347 574.274576 00330 + -90773.0493 -4492.34824 -8358.72815 -171070.144 30021 + 886718.132 16975.4486 87186.7405 1769950.20 21021 + -2669629.67 46230.1854 -284618.902 -5752745.84 12021 + 2392888.08 -145146.640 282113.066 5736310.79 03021 + 7059.90249 668296.112 -130144.078 12873.1625 20121 + -46842.7664 -4516507.68 873447.231 -89171.2400 11121 + 70282.7632 6874077.44 -1317368.03 142803.885 02121 + -25815.2650 -10295.8733 -1242.87709 -53177.1348 10221 + 102585.336 34445.8746 5254.12594 216649.602 01221 + 219.095183 37683.0862 -7327.76600 461.013378 00321 + -3393.41553 -212500.640 41289.2662 -5765.02534 30012 + 29804.4054 1954505.69 -377830.150 53417.3031 21012 + -80536.9470 -5541292.88 1064409.08 -154240.057 12012 + 65347.7036 4696733.73 -894837.631 135932.040 03012 + 34178.1500 5434.18255 2267.56660 59950.6026 20112 + -223591.100 -28040.1053 -16365.2776 -414276.519 11112 + 338802.033 28959.3181 27809.6770 676214.021 02112 + -1077.54145 -76679.7699 14946.3835 -1890.75087 10212 + 3606.93612 263412.585 -51029.5073 6595.02830 01212 + 1015.29084 592.484282 8.20075288 1941.20820 00312 + -14365.6218 2839.70410 -1774.74828 -23610.6460 30003 + 130965.288 -26455.5293 16544.7788 226928.950 21003 + -374059.983 77769.8317 -48617.0587 -691609.278 12003 + 328902.263 -71074.5328 44348.6893 659518.154 03003 + 652.161938 24823.5317 -4821.84148 1060.18439 20103 + -3910.69703 -153385.617 29658.9208 -6698.78207 11103 + 5448.34179 219536.196 -42209.7638 9963.42354 02103 + -1413.59529 -383.785034 -57.5508466 -2327.09606 10203 + 4670.86292 1087.45155 225.973269 8089.23473 01203 + 17.6346643 975.818447 -190.130005 29.6690161 00303 + -183924.331 -28852.8070 -18045.7097 -416444.410 20040 + 1438434.46 163362.056 140473.189 3383978.86 11040 + -2551665.74 -106415.122 -271135.085 -6415600.89 02040 + 7302.74474 1972821.46 -381642.768 14579.2423 10140 + -36657.5315 -8898952.51 1707833.83 -73483.0430 01140 + -2175.05662 -5311.84078 -1603.87269 -6007.61457 00240 + -21209.0205 -2329895.12 452944.968 -38672.3331 20031 + 138561.452 15662602.7 -3023874.18 263933.892 11031 + -203283.282 -23665607.2 4527816.53 -413925.411 02031 + 181392.769 58714.7591 10758.6544 373987.886 10131 + -716976.732 -187263.224 -44887.2281 -1515652.86 01131 + -2201.83137 -409031.792 79365.4214 -4592.66778 00231 + -176644.880 -15134.5199 -13958.4913 -310447.445 20022 + 1152575.16 59732.9884 99111.0885 2139588.84 11022 + -1740290.75 -20636.2200 -165383.383 -3480739.10 02022 + 9982.55610 809570.698 -157583.466 17539.2487 10122 + -32941.7143 -2762573.40 534436.695 -60391.8490 01122 + -16316.0991 -8129.29890 -346.099830 -31164.7061 00222 + -4709.52647 -264255.328 51302.0600 -7702.93391 20013 + 27490.4291 1624244.44 -313848.496 47481.5267 11013 + -37015.2808 -2311075.34 443941.033 -68441.8066 02013 + 29659.9168 5760.88724 1610.88607 48887.7088 10113 + -97443.0097 -15300.9514 -6022.19164 -169062.287 01113 + -503.807057 -31248.0631 6083.20505 -848.357650 00213 + -14097.2967 2618.55236 -1658.22785 -22058.4120 20004 + 85748.3259 -16284.0107 10315.0712 141335.343 11004 + -122535.595 23985.9656 -15178.2043 -215444.364 02004 + 452.285970 15632.2122 -3031.17822 706.372115 10104 + -1354.33952 -48464.4070 9358.41128 -2229.12072 01104 + -461.310351 -141.747667 -13.5328724 -718.613115 00204 + -14031.7529 -4153001.37 801208.549 -27675.6400 10050 + 70308.6512 18633564.6 -3567214.63 139236.158 01050 + 10488.1364 21073.1351 6790.07897 28974.1546 00150 + -473330.646 -118811.500 -33206.7342 -977502.799 10041 + 1865936.73 350707.714 137683.006 3948436.37 01041 + 10861.8563 2190696.50 -423975.896 22472.9245 00141 + -30137.8060 -2832205.08 550458.433 -53056.4741 10032 + 97865.6010 9616345.95 -1857581.69 180024.697 01032 + 115107.461 48086.7498 3876.94812 219934.456 00132 + -153677.710 -18238.9718 -10371.0668 -253716.333 10023 + 503633.306 41103.2065 37777.1894 875263.447 01023 + 4689.87602 331115.470 -64385.3192 7913.81400 00123 + -3280.03181 -166726.115 32333.5776 -5163.55590 10014 + 9560.12486 514135.395 -99277.1707 15904.0890 01014 + 9705.05790 2207.54137 421.666012 15129.2855 00114 + -7446.63559 1301.66374 -835.773381 -11125.7182 10005 + 22687.8400 -4055.00951 2603.63779 35670.5595 01005 + 126.039234 3992.79874 -772.708985 189.244304 00105 + -19153.6536 -34549.9585 -11759.5285 -52952.1358 00060 + -21085.8334 -4643214.05 896106.937 -43260.9298 00051 + -301430.771 -102577.628 -13781.5750 -576762.648 00042 + -14232.3527 -1162531.02 225761.270 -24091.7874 00033 + -50422.1309 -7541.88723 -2879.34175 -78698.1384 00024 + -917.782159 -42671.8753 8265.09481 -1390.91123 00015 + -1654.74395 272.439207 -177.483318 -2366.21348 00006 + ------------------------------------------------------------------------------ diff --git a/DATFILES/hms_recon_coeff.dat b/DATFILES/hms_recon_coeff.dat new file mode 100644 index 00000000..3743bbc0 --- /dev/null +++ b/DATFILES/hms_recon_coeff.dat @@ -0,0 +1,170 @@ +! recostruction matrix elements for HMS, tune HMS-100 +! <theta y phi delta | nmpq>;(x**n xp**m y**p yp**q) +! as of 02/20/97, no z offset included: this statement is obsolete +! created: 06/28/98 +! zeroth order matrix elements from fitting: +! <theta|> -4.7276368293E-03 rad +! <y|> -1.1606458055E-04 m +! <phi|> 4.8280702357E-05 rad +! <p|> -3.8725980576E-03 % +! <theta y phi delta | nmpq>;(x**n xp**m y**p yp**q) + --------------------------------------------------------------------- + .342704157 .183629749E-01 -.742670280E-02 .256021141 1000 + -3.02138749 -.152502758 .472422058E-01 .130192976 0100 + -.673199668E-02 -.407567405 .258501913 .278565265E-02 0010 + .110287597 -.483378951 -2.16704420 .407874298E-01 0001 + -.495779826 -.548491564E-01 .147936777E-01 -.318166729 2000 + 4.49999138 .451213193 -.151686093 3.07552684 1100 + .796294361 1.48286554 -.303847305 -.297352223E-01 1010 + .261524802 -20.7938893 5.00402934 -.249121889 1001 + -1.65128983 -.995337651 .536837816 2.14776190 0200 + -6.47649939 .226936328 -.123499047 -.266124530 0110 + -3.98529962 -6.32858639 1.39991277 4.27708696 0101 + .113653600E-01 .690088486E-01 -.437114986E-01 -.438953228E-01 0020 + .881941403 .227473684 -.628899349E-01 .475605891 0011 + -3.71740449 3.93769576 .113368630 -3.53478948 0002 + 1.95723299 -.820253354E-01 .103519807 .936834319 3000 + -31.4466915 2.57527314 -2.51407447 -13.5405899 2100 + -5.89608158 -3.50686592 .471876566 -.312542194E-01 2010 + 40.5129114 58.0458860 -12.5399800 -2.74488175 2001 + 156.932838 -23.8014414 21.1502247 51.8797642 1200 + 57.3250219 40.7718723 -7.13532706 .284008412 1110 + -298.395506 -639.340672 173.523125 10.6819836 1101 + 1.88702326 .266847247 .271167866 .954315611 1020 + -24.4326614 -33.6584609 -.114525239 .434687181 1011 + 180.539265 53.7698885 3.76822635 31.9077575 1002 + -279.667300 64.3177661 -60.6190378 -20.4989850 0300 + -64.0800162 -86.2289723 11.5806188 3.95564331 0210 + -247.924962 1524.67217 -483.832639 -46.7762650 0201 + -21.7150970 -13.4646889 .401043380 -7.06883817 0120 + 211.296709 323.699221 -6.72775908 25.6924121 0111 + -1440.32950 361.536621 -384.751537 -467.898102 0102 + -.656643228 3.62511407 -1.27960041 -.358205667 0030 + -1.58376006 67.9025208 -22.9733471 -3.15593520 0021 + 23.7224929 -987.049261 560.285176 34.1790370 0012 + -180.294278 5983.27702 -3518.42552 -71.5085362 0003 + -4.16665084 1.49723155 -.759630854 -2.30278775 4000 + 69.1944845 -46.6812620 21.8666725 58.0248309 3100 + 18.5878217 3.69400020 .602106657E-01 -1.46212838 3010 + -227.551196 -96.3179597 .489353421 20.4063547 3001 + -243.511203 535.564222 -239.722086 -491.562374 2200 + -230.021793 -40.7163893 .940804015 47.2957535 2110 + 3150.68103 1424.96519 38.5622615 -521.870646 2101 + -10.2926426 -3.56149925 -1.10754304 -1.00472512 2020 + 138.770921 263.397128 -15.7671082 -26.1090659 2011 + -211.394983 -1895.91500 234.605250 406.369321 2002 + -832.967425 -2704.20708 1207.70554 1718.29721 1300 + 429.578554 -234.967423 -20.3231936 -432.372956 1210 + -11612.7737 -2668.84972 -1176.05843 4021.85608 1201 + 130.736123 70.7440580 5.42914965 16.7434624 1120 + -1905.84788 -3551.03419 224.098878 343.660595 1111 + 363.670026 16804.9474 -2673.42755 -4586.96491 1102 + 6.91955519 -9.98074257 7.57861652 4.98155457 1030 + -114.693315 63.5563817 -65.8809200 -36.5101930 1021 + 710.699660 4980.54374 -780.431756 60.2646297 1012 + -7520.04385 -13187.0100 2486.26739 536.066295 1003 + 4347.54210 5161.66425 -2427.09769 -1950.10403 0400 + 1156.75126 1725.44332 188.803395 1323.39948 0310 + 12047.3853 -8815.37699 3407.72589 -11081.6594 0301 + -26.9308548 60.3544886 -47.8411214 -67.2731587 0220 + 826.904198 4520.84740 916.341424 -974.052221 0211 + 19983.2818 7167.34390 -4225.20780 9358.46286 0202 + -26.0105902 -188.661888 54.6866678 -37.4367181 0130 + 648.226508 2521.63446 -1052.88888 292.436840 0121 + -8498.59600 -31139.3846 8203.03704 -697.205971 0112 + 63967.4235 128236.246 -24237.5465 -2336.48364 0103 + -1.07911254 1.22231630 -.173675833 3.83526317 0040 + 9.94134973 258.488500 -10.9579494 -84.9391998 0031 + 158.508425 -2684.84975 -3.07844063 726.975013 0022 + -3017.64724 14872.1349 -469.458295 -1667.46714 0013 + 466.801936 -55258.4859 4661.52259 3912.11649 0004 + 1.88180503 -2.54978699 1.02249535 4.96781903 5000 + 27.9678707 85.1165188 -25.6500831 -214.635508 4100 + -19.6018738 -1.90234997 -2.26475906 3.07907961 4010 + 338.908065 -3.13670480 84.7364876 -48.5819865 4001 + -1595.43911 -986.185572 116.663362 3438.51266 3200 + 256.718721 -2.53553430 86.9081338 -71.7570318 3110 + -5619.82737 2554.66160 -3220.55423 1952.97191 3101 + 5.63505956 5.65523837 -.178636671 -9.82929708 3020 + 28.4611788 -535.882022 112.200518 63.7792928 3011 + -3335.14896 6481.34708 -841.916671 -2407.64911 3002 + 17748.8967 4446.27557 1781.86526 -27888.4078 2300 + -365.812295 713.968459 -1184.61359 175.230779 2210 + 26149.2365 -61279.3626 44610.2113 -20776.5089 2201 + 82.8634399 -82.7911036 40.7995535 223.223395 2120 + -4711.16007 7972.91446 -3042.34279 -1765.82660 2111 + 111837.314 -122751.891 25531.4588 55520.9916 2102 + -13.8546171 -44.6122707 -1.49148927 7.53241271 2030 + 379.629516 2219.19103 -283.396915 -8.69875712 2021 + -2940.77125 -39662.7132 6848.07035 332.501630 2012 + -4833.05018 291262.775 -40868.2995 -930.899000 2003 + -75870.6114 -3035.26190 -19402.1263 118850.529 1400 + -1090.33337 -5565.51679 8155.50571 3660.70792 1310 + -76601.8398 456263.377 -281440.652 79440.7749 1301 + -2721.78279 -512.627944 -452.280825 -1934.55934 1220 + 83864.4298 5816.23957 23306.1137 11961.6529 1211 + -1306713.82 400125.281 -216284.553 -418149.697 1202 + 100.956187 1309.56623 -226.290462 -173.118732 1130 + -4032.82257 -56824.1834 10616.2930 1607.73072 1121 + 79840.4758 782713.236 -150889.930 -14254.2451 1112 + -330377.607 -4233718.14 646182.662 39788.7678 1103 + 6.06681234 7.12938618 -.220192683 -1.11240314 1040 + -243.665570 -948.255482 153.244584 165.982247 1031 + 7181.11150 25876.5416 -2553.92502 -3998.95843 1022 + -75005.8412 -104271.766 -23488.8683 29493.1698 1013 + 124433.465 -149264.761 219376.542 -13196.6766 1004 + 113262.801 -18667.6651 53113.3093 -209797.800 0500 + -11632.6603 7242.92619 -21110.0334 -18679.7717 0410 + 301044.558 -1035121.76 655646.504 -71841.5676 0401 + 8371.11263 2221.54910 1543.28892 6295.96049 0320 + -258028.488 -135832.589 -66162.4672 -36062.5709 0311 + 4218622.48 128274.356 663799.998 1118597.09 0302 + -167.926507 -3321.19532 237.754153 1077.44822 0230 + 15453.6273 205593.650 -24454.8426 -11675.9844 0221 + -438724.451 -3267312.69 463392.237 52657.7588 0212 + 2249544.29 17936516.3 -2298746.48 -118752.747 0203 + -25.5889867 -61.6539042 41.8282483 -107.686882 0140 + 1866.01089 -1606.56535 -3207.84127 946.869731 0131 + -71480.9824 -31234.8373 79600.1247 25102.1443 0122 + 814034.645 434180.428 -606101.312 -259877.198 0113 + -2102030.39 -1584569.00 1583206.11 303094.278 0104 + -3.59866781 -19.7084031 -18.4827350 -1.36754912 0050 + 50.9893561 384.737475 1103.07001 164.395576 0041 + 1986.13677 18001.7932 -34498.4820 90.2668576 0032 + -30037.4064 -584192.598 674006.856 1100.41524 0023 + 20801.9238 6212983.14 -6436686.94 -17333.4694 0014 + 408508.663 -23722308.6 22707746.7 30963.1531 0005 + 0.0 0.000000000E+00 0.000000000E+00 0.768177700 00001 + 0.0 0.000000000E+00 0.000000000E+00 -1.24824954 10001 + 0.0 0.000000000E+00 0.000000000E+00 7.18980365 01001 + 0.0 0.000000000E+00 0.000000000E+00 -1.79480024 00002 + 0.0 0.000000000E+00 0.000000000E+00 4.30979026 20001 + 0.0 0.000000000E+00 0.000000000E+00 -47.5141035 11001 + 0.0 0.000000000E+00 0.000000000E+00 127.404997 02001 + 0.0 0.000000000E+00 0.000000000E+00 1.52132362 00201 + 0.0 0.000000000E+00 0.000000000E+00 -44.8420242 00111 + 0.0 0.000000000E+00 0.000000000E+00 13.9035869 10002 + 0.0 0.000000000E+00 0.000000000E+00 -75.1770025 01002 + 0.0 0.000000000E+00 0.000000000E+00 332.945301 00021 + 0.000000000E+00 412.398418 -118.551680 0.000000000E+00 00012 + 0.0 0.000000000E+00 0.000000000E+00 15.5951865 00003 + 0.0 0.000000000E+00 0.000000000E+00 -15.7177358 30001 + 0.0 0.000000000E+00 0.000000000E+00 249.924995 21001 + 0.0 0.000000000E+00 0.000000000E+00 -1205.61003 12001 + 0.0 0.000000000E+00 0.000000000E+00 1650.70638 03001 + 0.0 0.000000000E+00 0.000000000E+00 -8.63945412 10201 + 0.0 0.000000000E+00 0.000000000E+00 51.7345340 01201 + 0.0 0.000000000E+00 0.000000000E+00 246.328770 10111 + 0.0 0.000000000E+00 0.000000000E+00 -1468.88025 01111 + 0.0 0.000000000E+00 0.000000000E+00 -77.6962058 20002 + 0.0 0.000000000E+00 0.000000000E+00 808.267218 11002 + 0.0 0.000000000E+00 0.000000000E+00 -1887.27393 02002 + 0.0 0.000000000E+00 0.000000000E+00 -13.1721627 00202 + 0.0 0.000000000E+00 0.000000000E+00 -1758.72381 10021 + 0.0 0.000000000E+00 0.000000000E+00 10443.6142 01021 + 0.0 0.000000000E+00 0.000000000E+00 377.176889 00112 + 0.0 0.000000000E+00 0.000000000E+00 -174.332974 10003 + 0.0 0.000000000E+00 0.000000000E+00 893.518077 01003 + 0.0 0.000000000E+00 0.000000000E+00 -2708.57078 00022 + 0.0 0.000000000E+00 0.000000000E+00 -149.156349 00004 + --------------------------------------------------------------------- diff --git a/DBASE/general.param b/DBASE/general.param index 4132af98..b41241af 100644 --- a/DBASE/general.param +++ b/DBASE/general.param @@ -1,5 +1,7 @@ #real raddeg raddeg=3.14159265/180 +#real cminch +cminch=2.54 ; General Hall-C parameter files #include "PARAM/GEN/genflags.param" @@ -14,14 +16,14 @@ raddeg=3.14159265/180 #include "PARAM/HMS/GEN/hmsflags.param" #include "PARAM/HMS/GEN/htracking.param" -; HMS detector specific paramter files +; HMS detector specific paramter files #include "PARAM/HMS/AERO/haero.param" #include "PARAM/HMS/CAL/hcal.pos" #include "PARAM/HMS/CAL/hcal.param" #include "PARAM/HMS/CER/hcer.param" -#include "PARAM/HMS/DC/hdc_offsets.param" -#include "PARAM/HMS/DC/hdc.pos" #include "PARAM/HMS/DC/hdc.param" +#include "PARAM/HMS/DC/hdc.pos" +#include "PARAM/HMS/DC/hdc_tracking.param" #include "PARAM/HMS/DC/hdriftmap.param" #include "PARAM/HMS/HODO/hhodo.pos" #include "PARAM/HMS/HODO/hhodo.param" @@ -34,6 +36,13 @@ raddeg=3.14159265/180 #include "PARAM/SHMS/GEN/ptracking.param" ; SHMS detector specific paramter files -#include "PARAM/SHMS/DC/pdc.pos" +#include "PARAM/SHMS/AERO/paero.param" +#include "PARAM/SHMS/CAL/pcal.param" +#include "PARAM/SHMS/HGCER/phgcer.param" +#include "PARAM/SHMS/NGCER/pngcer.param" #include "PARAM/SHMS/DC/pdc.param" +#include "PARAM/SHMS/DC/pdc.pos" +#include "PARAM/SHMS/DC/pdc_tracking.param" #include "PARAM/SHMS/DC/pdriftmap.param" +#include "PARAM/SHMS/HODO/phodo.pos" +#include "PARAM/SHMS/HODO/phodo.param" diff --git a/DBASE/standard.database b/DBASE/standard.database index 4fd1440e..c894b7b3 100644 --- a/DBASE/standard.database +++ b/DBASE/standard.database @@ -1,5 +1,3 @@ 0-99999 g_ctp_parm_filename ="DBASE/general.param" -g_decode_map_filename ="MAPS/HMS/hdc.map" -g_decode_map_filename ="MAPS/SHMS/pdc.map" g_ctp_kinematics_filename ="DBASE/standard.kinematics" diff --git a/DBASE/standard.kinematics b/DBASE/standard.kinematics index 332dde9d..defaf2c4 100644 --- a/DBASE/standard.kinematics +++ b/DBASE/standard.kinematics @@ -1,9 +1,9 @@ 1-99999 -gpbeam=999 -gtarg_num = 999 -htheta_lab = 999 -stheta_lab = 999 -hpcentral = 999 -spcentral = 999 +gpbeam=6. +gtarg_num = 1 +htheta_lab = 15. +ptheta_lab = 15. +hpcentral = 2. +ppcentral = 2. hpartmass = 0.00051099 -spartmass = 0.00051099 +ppartmass = 0.00051099 diff --git a/DEF-files/HMS/CAL/hcalana.def b/DEF-files/HMS/CAL/hcalana.def new file mode 100644 index 00000000..b3f449ac --- /dev/null +++ b/DEF-files/HMS/CAL/hcalana.def @@ -0,0 +1,59 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block H.cal.* + +TH1F hcal_hA_pos_occu 'HMS hA+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.posAdcCounter 13 0.5 13.5 +TH1F hcal_hA_neg_occu 'HMS hA- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.negAdcCounter 13 0.5 13.5 +TH1F hcal_hB_pos_occu 'HMS hB+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.posAdcCounter 13 0.5 13.5 +TH1F hcal_hB_neg_occu 'HMS hB- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.negAdcCounter 13 0.5 13.5 +TH1F hcal_hC_pos_occu 'HMS hC+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.3ta.posAdcCounter 13 0.5 13.5 +TH1F hcal_hD_pos_occu 'HMS hD+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.4ta.posAdcCounter 13 0.5 13.5 + +TH2F hcal_hA_pos_rawped_vs_blk 'HMS hA+ Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPedRaw 13 0.5 13.5 400 0 4000 +TH2F hcal_hA_neg_rawped_vs_blk 'HMS hA- Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPedRaw 13 0.5 13.5 400 0 4000 +TH2F hcal_hB_pos_rawped_vs_blk 'HMS hB+ Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPedRaw 13 0.5 13.5 400 0 4000 +TH2F hcal_hB_neg_rawped_vs_blk 'HMS hB- Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPedRaw 13 0.5 13.5 400 0 4000 +TH2F hcal_hC_pos_rawped_vs_blk 'HMS hC+ Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPedRaw 13 0.5 13.5 400 0 4000 +TH2F hcal_hD_pos_rawped_vs_blk 'HMS hD+ Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPedRaw 13 0.5 13.5 400 0 4000 + +TH2F hcal_hA_pos_rawpint_vs_blk 'HMS hA+ Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000 +TH2F hcal_hA_neg_rawpint_vs_blk 'HMS hA- Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseIntRaw 13 0.5 13.5 4000 0 40000 +TH2F hcal_hB_pos_rawpint_vs_blk 'HMS hB+ Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000 +TH2F hcal_hB_neg_rawpint_vs_blk 'HMS hB- Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseIntRaw 13 0.5 13.5 4000 0 40000 +TH2F hcal_hC_pos_rawpint_vs_blk 'HMS hC+ Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000 +TH2F hcal_hD_pos_rawpint_vs_blk 'HMS hD+ Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000 + +TH2F hcal_hA_pos_rawpamp_vs_blk 'HMS hA+ Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100 +TH2F hcal_hA_neg_rawpamp_vs_blk 'HMS hA- Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseAmpRaw 13 0.5 13.5 410 0 4100 +TH2F hcal_hB_pos_rawpamp_vs_blk 'HMS hB+ Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100 +TH2F hcal_hB_neg_rawpamp_vs_blk 'HMS hB- Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseAmpRaw 13 0.5 13.5 410 0 4100 +TH2F hcal_hC_pos_rawpamp_vs_blk 'HMS hC+ Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100 +TH2F hcal_hD_pos_rawpamp_vs_blk 'HMS hD+ Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100 + +TH2F hcal_hA_pos_rawptime_vs_blk 'HMS hA+ Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000 +TH2F hcal_hA_neg_rawptime_vs_blk 'HMS hA- Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000 +TH2F hcal_hB_pos_rawptime_vs_blk 'HMS hB+ Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000 +TH2F hcal_hB_neg_rawptime_vs_blk 'HMS hB- Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000 +TH2F hcal_hC_pos_rawptime_vs_blk 'HMS hC+ Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000 +TH2F hcal_hD_pos_rawptime_vs_blk 'HMS hD+ Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseTimeRaw 13 0.5 13.5 4000 0 40000 + +TH2F hcal_hA_pos_pped_vs_blk 'HMS hA+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPed 13 0.5 13.5 400 0 4000 +TH2F hcal_hA_neg_pped_vs_blk 'HMS hA- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPed 13 0.5 13.5 400 0 4000 +TH2F hcal_hB_pos_pped_vs_blk 'HMS hB+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPed 13 0.5 13.5 400 0 4000 +TH2F hcal_hB_neg_pped_vs_blk 'HMS hB- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPed 13 0.5 13.5 400 0 4000 +TH2F hcal_hC_pos_pped_vs_blk 'HMS hC+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPed 13 0.5 13.5 400 0 4000 +TH2F hcal_hD_pos_pped_vs_blk 'HMS hD+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPed 13 0.5 13.5 400 0 4000 + +TH2F hcal_hA_pos_pi_vs_blk 'HMS hA+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hA_neg_pi_vs_blk 'HMS hA- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hB_pos_pi_vs_blk 'HMS hB+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hB_neg_pi_vs_blk 'HMS hB- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hC_pos_pi_vs_blk 'HMS hC+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hD_pos_pi_vs_blk 'HMS hD+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000 + +TH2F hcal_hA_pos_pamp_vs_blk 'HMS hA+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseAmp 13 0.5 13.5 410 0 4100 +TH2F hcal_hA_neg_pamp_vs_blk 'HMS hA- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseAmp 13 0.5 13.5 410 0 4100 +TH2F hcal_hB_pos_pamp_vs_blk 'HMS hB+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseAmp 13 0.5 13.5 410 0 4100 +TH2F hcal_hB_neg_pamp_vs_blk 'HMS hB- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseAmp 13 0.5 13.5 410 0 4100 +TH2F hcal_hC_pos_pamp_vs_blk 'HMS hC+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseAmp 13 0.5 13.5 410 0 4100 +TH2F hcal_hD_pos_pamp_vs_blk 'HMS hD+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseAmp 13 0.5 13.5 410 0 4100 diff --git a/DEF-files/HMS/CAL/hcalana_cuts.def b/DEF-files/HMS/CAL/hcalana_cuts.def new file mode 100644 index 00000000..3af34a5e --- /dev/null +++ b/DEF-files/HMS/CAL/hcalana_cuts.def @@ -0,0 +1,13 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 diff --git a/DEF-files/HMS/CER/hcerana.def b/DEF-files/HMS/CER/hcerana.def new file mode 100644 index 00000000..644b2234 --- /dev/null +++ b/DEF-files/HMS/CER/hcerana.def @@ -0,0 +1,15 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block H.cer.* +block T.hms.* + +TH1F hcer_occu 'HMS Cherenkov ADC Occupancy; PMT Number; Number of ADC Hits' H.cer.adcCounter 2 0.5 2.5 + +TH2F hcer_rawped 'HMS Cherenkov Raw Pulse Pedestal; PMT Number; Raw Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPedRaw 2 0.5 2.5 400 0 4000 +TH2F hcer_rawpint 'HMS Cherenkov Raw Pulse Integral; PMT Number; Raw Pulse Integral / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseIntRaw 2 0.5 2.5 4000 0 40000 +TH2F hcer_rawpamp 'HMS Cherenkov Raw Pulse Amplitude; PMT Number; Raw Pulse Amplitude / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseAmpRaw 2 0.5 2.5 410 0 4100 +TH2F hcer_rawptime 'HMS Cherenkov Raw Pulse Time; PMT Number; Raw Pulse Time / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseTimeRaw 2 0.5 2.5 400 0 4000 + +TH2F hcer_ped 'HMS Cherenkov Pulse Pedestal; PMT Number; Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPed 2 0.5 2.5 400 0 4000 +TH2F hcer_pint 'HMS Cherenkov Pulse Integral; PMT Number; Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseInt 2 0.5 2.5 4000 0 40000 +TH2F hcer_pamp 'HMS Cherenkov Pulse Amplitude; PMT Number; Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseAmp 2 0.5 2.5 410 0 4100 \ No newline at end of file diff --git a/DEF-files/HMS/CER/hcerana_cuts.def b/DEF-files/HMS/CER/hcerana_cuts.def new file mode 100644 index 00000000..3af34a5e --- /dev/null +++ b/DEF-files/HMS/CER/hcerana_cuts.def @@ -0,0 +1,13 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 diff --git a/DEF-files/HMS/DC/hdcana.def b/DEF-files/HMS/DC/hdcana.def index 3d3045e5..80e2415f 100644 --- a/DEF-files/HMS/DC/hdcana.def +++ b/DEF-files/HMS/DC/hdcana.def @@ -1,7 +1,21 @@ # See $ANALYZER/examples/output_example.def for examples # block H.dc.* -#block H.scin.* +block T.hms.* + +TH1F hdc_ref1 'HDC Reference Time 1; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime 15000 0 15000 +TH1F hdc_ref2 'HDC Reference Time 2; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF2_tdcTime 15000 0 15000 +TH1F hdc_ref3 'HDC Reference Time 3; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF3_tdcTime 15000 0 15000 +TH1F hdc_ref4 'HDC Reference Time 4; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF4_tdcTime 15000 0 15000 + +TH1F hdc_refdiff_1m2 'HDC Reference time 1 minus 2; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime-T.hms.hDCREF2_tdcTime 2000 -1000 1000 +TH1F hdc_refdiff_1m3 'HDC Reference time 1 minus 3; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime-T.hms.hDCREF3_tdcTime 2000 -1000 1000 +TH1F hdc_refdiff_1m4 'HDC Reference time 1 minus 4; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime-T.hms.hDCREF4_tdcTime 2000 -1000 1000 + +TH1F hdc_refdiff_2m3 'HDC Reference time 2 minus 3; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF2_tdcTime-T.hms.hDCREF3_tdcTime 2000 -1000 1000 +TH1F hdc_refdiff_2m4 'HDC Reference time 2 minus 4; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF2_tdcTime-T.hms.hDCREF4_tdcTime 2000 -1000 1000 + +TH1F hdc_refdiff_3m4 'HDC Reference time 3 minus 4; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF3_tdcTime-T.hms.hDCREF4_tdcTime 2000 -1000 1000 TH1F hdc1x1_wm 'HDC 1X1 Wiremap' H.dc.1x1.wirenum 113 0.5 113.5 TH1F hdc1y1_wm 'HDC 1Y1 Wiremap' H.dc.1y1.wirenum 52 0.5 52.5 @@ -17,19 +31,19 @@ TH1F hdc2v1_wm 'HDC 2V1 Wiremap' H.dc.2v1.wirenum 107 0.5 107.5 TH1F hdc2y2_wm 'HDC 2Y2 Wiremap' H.dc.2y2.wirenum 52 0.5 52.5 TH1F hdc2x2_wm 'HDC 2X2 Wiremap' H.dc.2x2.wirenum 113 0.5 113.5 -TH2F hdc1x1_wire_num_vs_raw_tdc 'HDC 1X1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1x1.wirenum H.dc.1x1.rawtdc 113 0.5 113.5 5000 0 50000 -TH2F hdc1y1_wire_num_vs_raw_tdc 'HDC 1Y1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1y1.wirenum H.dc.1y1.rawtdc 52 0.5 52.5 5000 0 50000 -TH2F hdc1u1_wire_num_vs_raw_tdc 'HDC 1U1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1u1.wirenum H.dc.1u1.rawtdc 107 0.5 107.5 5000 0 50000 -TH2F hdc1v1_wire_num_vs_raw_tdc 'HDC 1V1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1v1.wirenum H.dc.1v1.rawtdc 107 0.5 107.5 5000 0 50000 -TH2F hdc1y2_wire_num_vs_raw_tdc 'HDC 1Y2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1y2.wirenum H.dc.1y2.rawtdc 52 0.5 52.5 5000 0 50000 -TH2F hdc1x2_wire_num_vs_raw_tdc 'HDC 1X2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1x2.wirenum H.dc.1x2.rawtdc 113 0.5 113.5 5000 0 50000 - -TH2F hdc2x1_wire_num_vs_raw_tdc 'HDC 2X1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2x1.wirenum H.dc.2x1.rawtdc 113 0.5 113.5 5000 0 50000 -TH2F hdc2y1_wire_num_vs_raw_tdc 'HDC 2Y1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2y1.wirenum H.dc.2y1.rawtdc 52 0.5 52.5 5000 0 50000 -TH2F hdc2u1_wire_num_vs_raw_tdc 'HDC 2U1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2u1.wirenum H.dc.2u1.rawtdc 107 0.5 107.5 5000 0 50000 -TH2F hdc2v1_wire_num_vs_raw_tdc 'HDC 2V1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2v1.wirenum H.dc.2v1.rawtdc 107 0.5 107.5 5000 0 50000 -TH2F hdc2y2_wire_num_vs_raw_tdc 'HDC 2Y2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2y2.wirenum H.dc.2y2.rawtdc 52 0.5 52.5 5000 0 50000 -TH2F hdc2x2_wire_num_vs_raw_tdc 'HDC 2X2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2x2.wirenum H.dc.2x2.rawtdc 113 0.5 113.5 5000 0 50000 +TH2F hdc1x1_wire_num_vs_raw_tdc 'HDC 1X1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1x1.wirenum H.dc.1x1.rawtdc 113 0.5 113.5 10000 -50000 50000 +TH2F hdc1y1_wire_num_vs_raw_tdc 'HDC 1Y1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1y1.wirenum H.dc.1y1.rawtdc 52 0.5 52.5 10000 -50000 50000 +TH2F hdc1u1_wire_num_vs_raw_tdc 'HDC 1U1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1u1.wirenum H.dc.1u1.rawtdc 107 0.5 107.5 10000 -50000 50000 +TH2F hdc1v1_wire_num_vs_raw_tdc 'HDC 1V1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1v1.wirenum H.dc.1v1.rawtdc 107 0.5 107.5 10000 -50000 50000 +TH2F hdc1y2_wire_num_vs_raw_tdc 'HDC 1Y2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1y2.wirenum H.dc.1y2.rawtdc 52 0.5 52.5 10000 -50000 50000 +TH2F hdc1x2_wire_num_vs_raw_tdc 'HDC 1X2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.1x2.wirenum H.dc.1x2.rawtdc 113 0.5 113.5 10000 -50000 50000 + +TH2F hdc2x1_wire_num_vs_raw_tdc 'HDC 2X1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2x1.wirenum H.dc.2x1.rawtdc 113 0.5 113.5 10000 -50000 50000 +TH2F hdc2y1_wire_num_vs_raw_tdc 'HDC 2Y1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2y1.wirenum H.dc.2y1.rawtdc 52 0.5 52.5 10000 -50000 50000 +TH2F hdc2u1_wire_num_vs_raw_tdc 'HDC 2U1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2u1.wirenum H.dc.2u1.rawtdc 107 0.5 107.5 10000 -50000 50000 +TH2F hdc2v1_wire_num_vs_raw_tdc 'HDC 2V1 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2v1.wirenum H.dc.2v1.rawtdc 107 0.5 107.5 10000 -50000 50000 +TH2F hdc2y2_wire_num_vs_raw_tdc 'HDC 2Y2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2y2.wirenum H.dc.2y2.rawtdc 52 0.5 52.5 10000 -50000 50000 +TH2F hdc2x2_wire_num_vs_raw_tdc 'HDC 2X2 Wiremap; Wire Number; Raw TDC Value (clicks)' H.dc.2x2.wirenum H.dc.2x2.rawtdc 113 0.5 113.5 10000 -50000 50000 TH2F hdc1x1_wire_num_vs_tdc_time 'HDC 1X1 Wiremap; Wire Number; TDC Time (ns)' H.dc.1x1.wirenum H.dc.1x1.time 113 0.5 113.5 6000 -1000 5000 TH2F hdc1y1_wire_num_vs_tdc_time 'HDC 1Y1 Wiremap; Wire Number; TDC Time (ns)' H.dc.1y1.wirenum H.dc.1y1.time 52 0.5 52.5 6000 -1000 5000 diff --git a/DEF-files/HMS/DC/hdcana_cuts.def b/DEF-files/HMS/DC/hdcana_cuts.def index 5add84a3..3af34a5e 100644 --- a/DEF-files/HMS/DC/hdcana_cuts.def +++ b/DEF-files/HMS/DC/hdcana_cuts.def @@ -11,4 +11,3 @@ CoarseTracking_master 1 Block: CoarseReconstruct CourseReconstruct 0 - diff --git a/DEF-files/HMS/EPICS/epics.def b/DEF-files/HMS/EPICS/epics.def new file mode 100644 index 00000000..4389a675 --- /dev/null +++ b/DEF-files/HMS/EPICS/epics.def @@ -0,0 +1,299 @@ +# See $ANALYZER/examples/output_example.def for examples +# +begin epics +C1068_QDAC01 40908 # Pockels Cell POS HV +C1068_QDAC07 32800 # IA Cell Setpoint Hall A DAC 07 A0 +C1068_QDAC08 32800 # IA Cell Setpoint Hall A DAC 08 A1 +C1068_QDAC09 32800 # IA Cell Setpoint Hall A DAC 09 A2 +C1068_QDAC10 32800 # IA Cell Setpoint Hall A DAC 10 A3 +C1068_QDAC11 33411 # IA Cell Setpoint Hall C DAC 11 A0 +C1068_QDAC12 33411 # IA Cell Setpoint Hall C DAC 12 A1 +C1068_QDAC13 33411 # IA Cell Setpoint Hall C DAC 13 A2 +C1068_QDAC14 33411 # IA Cell Setpoint Hall C DAC 14 A3 +CFI60DLP 15.1522 # "dirty flowrate" at ESR (warm return) g/s +CFI6711C 15.0215 # 4k flow, g/s +CFI6731C 0 # 15k Flow g/s +COLPOS1 0 # Collimator Block 1 +COLPOS2 0 # Collimator Block 2 +COLPOS3 0 # Collimator Block 3 +COLPOS4 0 # Collimator Block 4 +COLPOS5 0 # Collimator Block 5 +COLPOS6 0 # Collimator Block 6 +COLPOS7 0 # Collimator Block 7 +CPI671SC 3.14437 # 4K Supply pressure at ESR atm +CPI672 1.22453 # 5K return pressure at ESR atm +CPI673 1.39524 # 15K Supply pressure at ESR atm +CPI9541 1.08368 # 20K return pressure at ESR atm +CTD6614 14.59 # Hall A 15K supply temp K +CTD671SC 4.11 # 4K Supply temp at ESR K +CTD672 4.5 # 5K return temp at ESR K +CTD673 220.43 # 15K Supply temp at ESR K +CTD9541 264.79 # 20K return temp at ESR K +HALLC:p 6390.9 # Tiefenback energy +EHCFR_ENERGY 8.519 # - +EHCFR_LIPRC disabled # Master Focus Location: 1=G0, 0=Pivot +EHCFR_LIXWidth 1 # - +EHCFR_LIYWidth 1 # - +FB_A:FB_On Off # +FB_A:status:mbbi2.B7 1 # +FB_A:use_RF RF Off # +FB_C:CORR:C1_value.B 0 # - +FB_C:CORR:C2_value.B 0 # - +FB_C:CORR:C3_value.B 0 # - +FB_C:CORR:C4_value.B 0 # - +FB_C:FB_On Off # +FB_C:status:mbbi2.B7 1 # +FB_C:use_RF RF Off # +HELCLOCKd Free Clock # Helicity Clock Read +HELCLOCKs Free Clock # Helicity Clock Set +HELDELAYd No Delay # Helicity Delay Read +HELDELAYs No Delay # Helicity Delay Set +HELFREQ 29.5596 # Helicity Frequency +HELPATTERNd Quartet # Helicity Pattern Read +HELPATTERNs Quartet # Helicity Pattern Set +HELTSETTLEd 500 # Helicity Settle Read +HELTSTABLEd 33330 # Helicity Stable Read +HWienAngle 0 # Horizontal Wien Angle +IBC1H04CRCUR2 0 # Hall A MPS BCM Current uA +IBC3H00CRCUR4 0 # Hall C MPS BCM Current uA +IFY0I06I not inserted # PolCup position: FC1 (is/is not) inserted +IFY0I06R retracted # PolCup position: FC1 (is/is not) retracted +IFY0L03I not inserted # PolCup position: FC2 (is/is not) inserted +IFY0L03R retracted # PolCup position: FC2 (is/is not) retracted +IFY1I07I not inserted # PolCup position: PolCup (is/is not) inserted +IFY1I07R retracted # PolCup position: PolCup (is/is not) retracted +IGL1I00AI17 2.98413 # Dummy Helicity Pockels Cell Voltage V +IGL1I00AI22 0 # G0 X PZT Voltage V +IGL1I00AI23 0 # G0 Y PZT Voltage V +IGL1I00AI24 0 # IA Voltage V +IGL1I00AI25 0 # Hall A X PZT Voltage V +IGL1I00AI26 0 # Hall A Y PZT Voltage V +IGL1I00AI27 0 # Hall A IA Voltage V +IGL1I00AI7 3.44322 # Gun 2 PITA Voltage Positive V +IGL1I00AI8 3.15507 # Gun 2 PITA Voltage Negative V +IGL1I00DAC2 0 # Hall B Control Level +IGL1I00DAC3 0 # Hall B Seed Level +IGL1I00DAC5 0 # Horizontal Wien Electrode Voltage +IGL1I00DAC6 0 # Vertical Wien Electrode Voltage +IGL1I00DI24_24M IN # Beam Half-wave plate Read(off=out) () -- +IGL1I00DIOFLRD 13119 # Carlini insertable waveplate state (1 +IGL1I00DIOHWTB.B2 0 # Carlini insertable waveplate state (0=in,1=out) +IGL1I00OD16_16 IN # Beam Half-wave plate Set(off=out) +IGL1I00OD16_4 POSITIVE # Vertical Wien HV Polarity +IGL1I00OD16_8 ON # Pockels Cell ON/OFF +IGL1I00OD16_9 POSITIVE # Horizontal Wien HV Polarity +IGL1I00PStrans 0 # Injector transmission +IGLdac2:G2Ch3Pos 0 # Gun2: PC (PITA) POS +IGLdac2:G2Ch4Neg 0 # Gun2: PC (PITA) NEG +pgunFreqDiv:A:frequency 500 # Hall A Laser Frequency: 0: 500 MHz, 1: 250 MHz +pgunFreqDiv:C:frequency 250 # Hall C Laser Frequency: 0: 500 MHz, 1: 250 MHz +IHA3H07AIR 72.8365 # monitor +IHA3H07BIR 83.6352 # monitor +IOCSE14:PassSel;r Auto Select # Auto Select +IOCSE14:SEEGainMod;r Auto Gain # Auto Gain +IOCSE14:SEEProcMod;r SEE Norm Ops # SEE Norm Ops +IOCSE17:PassSel;r Auto Select # Auto Select +IOCSE17:SEEGainMod;r Auto Gain # Auto Gain +IOCSE17:SEEProcMod;r SEE Norm Ops # SEE Norm Ops +IOCSE18:PassSel;r Auto Select # Auto Select +IOCSE18:SEEGainMod;r Auto Gain # Auto Gain +IOCSE18:SEEProcMod;r SEE Norm Ops # SEE Norm Ops +IOCSE20:PassSel;r Auto Select # Auto Select +IOCSE20:SEEGainMod;r Auto Gain # Auto Gain +IOCSE20:SEEProcMod;r SEE Norm Ops # SEE Norm Ops +IPM2C24A.IENG 0.121083 # Hall B Beam Current (2C24A) +IPM3C00.XPOS 0 # This should be added, stripline bpm x position , BPM POSITION +IPM3C00.YPOS 0 # This should be added, stripline bpm x position +IPM3C01.XPOS 0 # +IPM3C01.YPOS 0 # +IPM3C02.XPOS 0 # +IPM3C02.YPOS 0 # +IPM3C03.XPOS 0 # +IPM3C03.YPOS 0 # +IPM3C04.XPOS 0 # +IPM3C04.YPOS 0 # +IPM3C05.XPOS 0 # +IPM3C05.YPOS 0 # +IPM3C06.XPOS 0 # +IPM3C06.YPOS 0 # +IPM3C07.XPOS 0 # +IPM3C07.YPOS 0 # +IPM3C07A.XPOS 0 # +IPM3C07A.YPOS 0 # +IPM3C08.XPOS 0 # +IPM3C08.YPOS 0 # +IPM3C10.XPOS 0 # +IPM3C10.YPOS 0 # +IPM3C11.XPOS 0 # +IPM3C11.YPOS 0 # +IPM3C12.XPOS 0 # +IPM3C12.YPOS 0 # +IPM3C14.XPOS 0 # +IPM3C14.YPOS 0 # +IPM3C16.XPOS 0 # +IPM3C16.YPOS 0 # +IPM3C17.XIFG 3000 # stripline bpm x position auto-gain, BPM Position Auto-Gain +IPM3C17.XPOS 0 # +IPM3C17.XSOF 0.223 # stripline bpm x position offset, BPM Position OffSet +IPM3C17.YIFG 3000 # stripline bpm y position auto-gain +IPM3C17.YPOS 0 # +IPM3C17.YSOF -0.356 # stripline bpm y position offset +IPM3C18.XIFG 3000 # +IPM3C18.XPOS 0 # +IPM3C18.XSOF -0.049 # +IPM3C18.YIFG 3000 # +IPM3C18.YPOS 0 # +IPM3C18.YSOF -0.225 # +IPM3C19.XIFG 3000 # +IPM3C19.XPOS 0 # +IPM3C19.XSOF 0.003 # +IPM3C19.YIFG 3000 # +IPM3C19.YPOS 0 # +IPM3C19.YSOF 0.015 # +IPM3C20.XIFG 3000 # +IPM3C20.XPOS 0 # +IPM3C20.XSOF 0.11 # +IPM3C20.YIFG 3000 # +IPM3C20.YPOS 0 # +IPM3C20.YSOF -0.52 # +IPM3C21.XIFG 3000 # +IPM3C21.XPOS 0 # +IPM3C21.XSOF 0.04 # +IPM3C21.YIFG 3000 # +IPM3C21.YPOS 0 # +IPM3C21.YSOF -0.56 # +IPM3H02.XIFG 3000 # +IPM3H02.XPOS 0 # +IPM3H02.XSOF 0 # +IPM3H02.YIFG 3000 # +IPM3H02.YPOS 0 # +IPM3H02.YSOF 0 # +IPM3H04.XIFG 3000 # +IPM3H04.XPOS 0 # +IPM3H04.XSOF 0 # +IPM3H04.YIFG 3000 # +IPM3H04.YPOS 0 # +IPM3H04.YSOF 0 # +IPM3H07A.XIFG 3000 # +IPM3H07A.XPOF -9999 # BPM XXXX OffSet (looks like offset but don't know) +IPM3H07A.XPOS 0 # +IPM3H07A.XRAW 0 # BPM RAW +IPM3H07A.XSOF 0.4 # +IPM3H07A.YIFG 3000 # +IPM3H07A.YPOF -9999 # +IPM3H07A.YPOS 0 # +IPM3H07A.YRAW 0 # +IPM3H07A.YSOF 0.2 # +IPM3H07B.XIFG 3000 # +IPM3H07B.XPOF -9999 # +IPM3H07B.XPOS 0 # +IPM3H07B.XRAW 0 # +IPM3H07B.XSOF 0.2 # +IPM3H07B.YIFG 3000 # +IPM3H07B.YPOF -9999 # +IPM3H07B.YPOS 0 # +IPM3H07B.YRAW 0 # +IPM3H07B.YSOF 0.2 # +IPM3H07C.XIFG 3000 # +IPM3H07C.XPOF -9999 # +IPM3H07C.XPOS 0 # +IPM3H07C.XRAW 0 # +IPM3H07C.XSOF 0.6 # +IPM3H07C.YIFG 3000 # +IPM3H07C.YPOF -9999 # +IPM3H07C.YPOS 0 # +IPM3H07C.YRAW 0 # +IPM3H07C.YSOF 0 # +IPM3H08.XPOF new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, Big BPM target down stream, +IPM3H08.XPOS new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H08.XRAW new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H08.XSOF new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H08.YPOF new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, Big BPM target down stream, +IPM3H08.YPOS new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H08.YRAW new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H08.YSOF new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H09.XIFG new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H09.XPOF new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, Big BPM target down stream, +IPM3H09.XPOS new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H09.XRAW new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H09.XSOF new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H09.YIFG new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H09.YPOF new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, Big BPM target down stream, +IPM3H09.YPOS new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H09.YRAW new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3H09.YSOF new Big BPMs at downstream # offline in the Transports , Halls BPM Overwiew, +IPM3P01.XPOS *** not connected # Hall-C Compton Control, offline in the Transports , Halls BPM Overwiew, Compton +IPM3P01.YPOS *** not connected # Hall-C Compton Control, offline in the Transports , Halls BPM Overwiew, Compton +IPM3P02A.XIFG 3000 # +IPM3P02A.XPOS 0 # Hall-C Compton Control, +IPM3P02A.XSOF -0.48 # +IPM3P02A.YIFG 3000 # +IPM3P02A.YPOS 0 # Hall-C Compton Control, +IPM3P02A.YSOF -0.4 # +IPM3P02B.XIFG 3000 # +IPM3P02B.XPOS 0 # Hall-C Compton Control, +IPM3P02B.XSOF 0 # +IPM3P02B.YIFG 3000 # +IPM3P02B.YPOS 0 # Hall-C Compton Control, +IPM3P02B.YSOF 0.07 # +IPM3P03.XIFG *** not connected # offline in the Transports , Halls BPM Overwiew, +IPM3P03.XPOS *** not connected # Hall-C Compton Control, offline in the Transports , Halls BPM Overwiew, Compton +IPM3P03.XSOF *** not connected # offline in the Transports , Halls BPM Overwiew, Compton +IPM3P03.YIFG *** not connected # offline in the Transports , Halls BPM Overwiew, Compton +IPM3P03.YPOS *** not connected # Hall-C Compton Control, offline in the Transports , Halls BPM Overwiew, Compton +IPM3P03.YSOF *** not connected # offline in the Transports , Halls BPM Overwiew, Compton +ISL0I04DT In # Master Slit Setting +MFG1I04A.BDL 978 # First Solenoid BDL (G-cm) +MFG1I04B.BDL -977.988 # Second Solenoid BDL (G-cm) +MWF0I02.BDL -7.66356e-06 # Horizontal Wien BDL (G-cm) +MWF1I04.BDL 9.37619e-06 # Vertical Wien BDL (G-cm) +OXSS_MGFD 0 # Persistent Field (T) +OXSS_RDF 0 # Leads Field +Phi_FG 0.000516931 # Solenoids Angle (Phi_FG) +R00PGSET 0.7 # Prebuncher Setting +SMRPOSA -1.03809 # Hall A Slit Position (Hall A Chopper Slit Readback) -- +SMRPOSB 8 # Hall B Chopper Slit Position Readback +SMRPOSC 8 # Hall C Chopper Slit Position Readback +TARGPOS 0 # Target position X +VWienAngle 0 # Vertical Wien Angle +WienAngle 0 # Wien Filter Angle Setting degrees +cdipc_xpos 5e-05 # Pockels Cell X Stage +cdipc_ypos 0.0762 # Pockels Cell Y Stage +hac_bcm_average 0.0608161 # Hall A BCM Current uA +halla_photocurrent 0 # Hall A photocurrent uA +halla_transmission 0 # Hall A Independent Transmission % +hallb_transmission 0 # Hall B Independent Transmission % +hallc_photocurrent 0 # Hall C photocurrent uA +hel_even_1 0 # MHE0L01V Even Setpoint +hel_even_2 0 # MHE0L02H Even Setpoint +hel_even_3 0 # MHE0L03V Even Setpoint +hel_even_4 0 # MHE0L04H Even Setpoint +hel_mag_status.D -1 # Hel State Asymmetry +hel_odd_1 0 # MHE0L01V Even Setpoint +hel_odd_2 0 # MHE0L02H Even Setpoint +hel_odd_3 0 # MHE0L03V Even Setpoint +hel_odd_4 0 # MHE0L04H Even Setpoint +ibcm1 0.00964451 # Hall C Beam Current (monitor # 1): careful, this is also in target epics +ibcm17 -5.58226 # Hall C Beam Current (monitor # 3): careful, this is also in target epics +ibcm2 0.000827091 # Hall C Beam Current (monitor # 2): careful, this is also in target epics +itov1out 0.021978 # A1 Slit Current +itov2out 0.175824 # A2 Slit Current +itov3out 0 # Master Slit Current +itov4out 0 # INJ Faraday cup (PCup, FC1, FC2, Dump) Current +itov5out 0 # A3 Slit Current +itov7out 0.029304 # A4 Slit Current +iunser 2477.15 # Hall C Beam Current (unser) +laser_a_wavelength 0 # Hall A laser wavelength nm +laser_b_wavelength 0 # Hall B laser wavelength nm +laser_c_wavelength 0 # Hall C laser wavelength nm +psub_aa_pos 280.021 # Hall A Laser Attenuator (Hall A Laser Attenuator Setting) -- +psub_ab_pos 190.797 # Hall B Laser Attenuator Setting +psub_ac_pos 120.01 # Hall C Laser Attenuator Setting +psub_cx_pos 10500 # Wafer X Stage (X laser position on cathode) -- +psub_cy_pos 11500 # Wafer Y Stage (Y laser position on cathode) -- +psub_pl_pos 0.168 # Rotating waveplate (Rotatable Half Wave Plate Setting) -- +qe_halla 0.4498 # Hall A Quantum Efficiency % +qe_hallb 0.423 # Hall B Quantum Efficiency % +qe_hallc 0.4578 # Hall C Quantum Efficiency % +scaler_calc1 0.0711763 # Hall B Beam Current (Faraday Cup) nA +end epics diff --git a/DEF-files/HMS/GEN/hstackana.def b/DEF-files/HMS/GEN/hstackana.def new file mode 100644 index 00000000..582d5fdc --- /dev/null +++ b/DEF-files/HMS/GEN/hstackana.def @@ -0,0 +1,189 @@ +# See $ANALYZER/examples/output_example.def for examples +# +#block * +block T.hms.* +block H.dc.* +block H.tr.* +block H.hod.* +block H.cer.* +block H.cal.* +#block H.gtr.* + +# Drift Chambers +TH1F hdc_ref1 'HMS DC Reference Time Slot 5 Channel 111; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime 3000 12000 15000 +TH1F hdc_ref2 'HMS DC Reference Time Slot 8 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF2_tdcTime 3000 12000 15000 +TH1F hdc_ref3 'HMS DC Reference Time Slot 10 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF3_tdcTime 3000 12000 15000 +TH1F hdc_ref4 'HMS DC Reference Time Slot 17 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF4_tdcTime 3000 12000 15000 + +TH1F hdc1x1_wirenum 'HMS DC 1X1 Wiremap; Wire Number; Number of Entries' H.dc.1x1.wirenum 113 0.5 113.5 +TH1F hdc1y1_wirenum 'HMS DC 1Y1 Wiremap; Wire Number; Number of Entries' H.dc.1y1.wirenum 52 0.5 52.5 +TH1F hdc1u1_wirenum 'HMS DC 1U1 Wiremap; Wire Number; Number of Entries' H.dc.1u1.wirenum 107 0.5 107.5 +TH1F hdc1v1_wirenum 'HMS DC 1V1 Wiremap; Wire Number; Number of Entries' H.dc.1v1.wirenum 107 0.5 107.5 +TH1F hdc1y2_wirenum 'HMS DC 1Y2 Wiremap; Wire Number; Number of Entries' H.dc.1y2.wirenum 52 0.5 52.5 +TH1F hdc1x2_wirenum 'HMS DC 1X2 Wiremap; Wire Number; Number of Entries' H.dc.1x2.wirenum 113 0.5 113.5 + +TH1F hdc2x1_wirenum 'HMS DC 2X1 Wiremap; Wire Number; Number of Entries' H.dc.2x1.wirenum 113 0.5 113.5 +TH1F hdc2y1_wirenum 'HMS DC 2Y1 Wiremap; Wire Number; Number of Entries' H.dc.2y1.wirenum 52 0.5 52.5 +TH1F hdc2u1_wirenum 'HMS DC 2U1 Wiremap; Wire Number; Number of Entries' H.dc.2u1.wirenum 107 0.5 107.5 +TH1F hdc2v1_wirenum 'HMS DC 2V1 Wiremap; Wire Number; Number of Entries' H.dc.2v1.wirenum 107 0.5 107.5 +TH1F hdc2y2_wirenum 'HMS DC 2Y2 Wiremap; Wire Number; Number of Entries' H.dc.2y2.wirenum 52 0.5 52.5 +TH1F hdc2x2_wirenum 'HMS DC 2X2 Wiremap; Wire Number; Number of Entries' H.dc.2x2.wirenum 113 0.5 113.5 + +TH2F hdc1x1_wirenum_vs_tdc 'HMS DC 1X1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1x1.wirenum H.dc.1x1.time 113 0.5 113.5 2000 -500 1500 +TH2F hdc1y1_wirenum_vs_tdc 'HMS DC 1Y1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1y1.wirenum H.dc.1y1.time 52 0.5 52.5 2000 -500 1500 +TH2F hdc1u1_wirenum_vs_tdc 'HMS DC 1U1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1u1.wirenum H.dc.1u1.time 107 0.5 107.5 2000 -500 1500 +TH2F hdc1v1_wirenum_vs_tdc 'HMS DC 1V1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1v1.wirenum H.dc.1v1.time 107 0.5 107.5 2000 -500 1500 +TH2F hdc1y2_wirenum_vs_tdc 'HMS DC 1Y2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1y2.wirenum H.dc.1y2.time 52 0.5 52.5 2000 -500 1500 +TH2F hdc1x2_wirenum_vs_tdc 'HMS DC 1X2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1x2.wirenum H.dc.1x2.time 113 0.5 113.5 2000 -500 1500 + +TH2F hdc2x1_wirenum_vs_tdc 'HMS DC 2X1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2x1.wirenum H.dc.2x1.time 113 0.5 113.5 2000 -500 1500 +TH2F hdc2y1_wirenum_vs_tdc 'HMS DC 2Y1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2y1.wirenum H.dc.2y1.time 52 0.5 52.5 2000 -500 1500 +TH2F hdc2u1_wirenum_vs_tdc 'HMS DC 2U1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2u1.wirenum H.dc.2u1.time 107 0.5 107.5 2000 -500 1500 +TH2F hdc2v1_wirenum_vs_tdc 'HMS DC 2V1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2v1.wirenum H.dc.2v1.time 107 0.5 107.5 2000 -500 1500 +TH2F hdc2y2_wirenum_vs_tdc 'HMS DC 2Y2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2y2.wirenum H.dc.2y2.time 52 0.5 52.5 2000 -500 1500 +TH2F hdc2x2_wirenum_vs_tdc 'HMS DC 2X2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2x2.wirenum H.dc.2x2.time 113 0.5 113.5 2000 -500 1500 + +TH2F hdc1x1_wirenum_vs_resid 'HMS DC 1X1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1x1.wirenum H.dc.residual[0] 113 0.5 113.5 200 -1.0 1.0 +TH2F hdc1y1_wirenum_vs_resid 'HMS DC 1Y1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1y1.wirenum H.dc.residual[1] 52 0.5 52.5 200 -1.0 1.0 +TH2F hdc1u1_wirenum_vs_resid 'HMS DC 1U1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1u1.wirenum H.dc.residual[2] 107 0.5 107.5 200 -1.0 1.0 +TH2F hdc1v1_wirenum_vs_resid 'HMS DC 1V1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1v1.wirenum H.dc.residual[3] 107 0.5 107.5 200 -1.0 1.0 +TH2F hdc1y2_wirenum_vs_resid 'HMS DC 1Y2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1y2.wirenum H.dc.residual[4] 52 0.5 52.5 200 -1.0 1.0 +TH2F hdc1x2_wirenum_vs_resid 'HMS DC 1X2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1x2.wirenum H.dc.residual[5] 113 0.5 113.5 200 -1.0 1.0 + +TH2F hdc2x1_wirenum_vs_resid 'HMS DC 2X1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2x1.wirenum H.dc.residual[6] 113 0.5 113.5 200 -1.0 1.0 +TH2F hdc2y1_wirenum_vs_resid 'HMS DC 2Y1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2y1.wirenum H.dc.residual[7] 52 0.5 52.5 200 -1.0 1.0 +TH2F hdc2u1_wirenum_vs_resid 'HMS DC 2U1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2u1.wirenum H.dc.residual[8] 107 0.5 107.5 200 -1.0 1.0 +TH2F hdc2v1_wirenum_vs_resid 'HMS DC 2V1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2v1.wirenum H.dc.residual[9] 107 0.5 107.5 200 -1.0 1.0 +TH2F hdc2y2_wirenum_vs_resid 'HMS DC 2Y2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2y2.wirenum H.dc.residual[10] 52 0.5 52.5 200 -1.0 1.0 +TH2F hdc2x2_wirenum_vs_resid 'HMS DC 2X2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2x2.wirenum H.dc.residual[11] 113 0.5 113.5 200 -1.0 1.0 + +TH2F hdc_xfp_vs_yxp 'HMS DC Xfp vs Yxp; Yfp (cm) / 1 cm; Xfp (cm) / 1 cm' H.dc.y H.dc.x 100 -50 50 100 -50 50 +TH2F hdc_xfpp_vs_yxpp 'HMS DC Xfpp vs Yxpp; Yfpp; Xfpp' H.dc.yp H.dc.xp 100 -1 1 100 -1 1 + +# Hodoscopes (Positive/Left) +TH1F hhodo_1x_pos_adc_occu 'HMS Hodoscope 1X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posAdcCounter 16 0.5 16.5 +TH1F hhodo_1y_pos_adc_occu 'HMS Hodoscope 1Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posAdcCounter 10 0.5 10.5 +TH1F hhodo_2x_pos_adc_occu 'HMS Hodoscope 2X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posAdcCounter 16 0.5 16.5 +TH1F hhodo_2y_pos_adc_occu 'HMS Hodoscope 2Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posAdcCounter 10 0.5 10.5 +TH1F hhodo_1x_pos_tdc_occu 'HMS Hodoscope 1X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posTdcCounter 16 0.5 16.5 +TH1F hhodo_1y_pos_tdc_occu 'HMS Hodoscope 1Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posTdcCounter 10 0.5 10.5 +TH1F hhodo_2x_pos_tdc_occu 'HMS Hodoscope 2X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posTdcCounter 16 0.5 16.5 +TH1F hhodo_2y_pos_tdc_occu 'HMS Hodoscope 2Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posTdcCounter 10 0.5 10.5 +TH2F hhodo_1x_pos_ped_vs_pad 'HMS Hodoscope 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1x.posAdcCounter H.hod.1x.posAdcPed 16 0.5 16.5 1000 0 1000 +TH2F hhodo_1y_pos_ped_vs_pad 'HMS Hodoscope 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1y.posAdcCounter H.hod.1y.posAdcPed 10 0.5 10.5 1000 0 1000 +TH2F hhodo_2x_pos_ped_vs_pad 'HMS Hodoscope 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2x.posAdcCounter H.hod.2x.posAdcPed 16 0.5 16.5 1000 0 1000 +TH2F hhodo_2y_pos_ped_vs_pad 'HMS Hodoscope 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2y.posAdcCounter H.hod.2y.posAdcPed 10 0.5 10.5 1000 0 1000 +TH2F hhodo_1x_pos_pi_vs_pad 'HMS Hodoscope 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.GoodPaddle H.hod.1x.GoodPosAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_1y_pos_pi_vs_pad 'HMS Hodoscope 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.GoodPaddle H.hod.1y.GoodPosAdcPulseInt 10 0.5 10.5 4000 0 40000 +TH2F hhodo_2x_pos_pi_vs_pad 'HMS Hodoscope 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.GoodPaddle H.hod.2x.GoodPosAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_2y_pos_pi_vs_pad 'HMS Hodoscope 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.GoodPaddle H.hod.2y.GoodPosAdcPulseInt 10 0.5 10.5 4000 0 40000 +TH2F hhodo_1x_pos_pamp_vs_pad 'HMS Hodoscope 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1x.GoodPaddle H.hod.1x.GoodPosAdcPulseAmp 16 0.5 16.5 4100 0 4100 +TH2F hhodo_1y_pos_pamp_vs_pad 'HMS Hodoscope 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1y.GoodPaddle H.hod.1y.GoodPosAdcPulseAmp 10 0.5 10.5 4100 0 4100 +TH2F hhodo_2x_pos_pamp_vs_pad 'HMS Hodoscope 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2x.GoodPaddle H.hod.2x.GoodPosAdcPulseAmp 16 0.5 16.5 4100 0 4100 +TH2F hhodo_2y_pos_pamp_vs_pad 'HMS Hodoscope 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2y.GoodPaddle H.hod.2y.GoodPosAdcPulseAmp 10 0.5 10.5 4100 0 4100 +TH2F hhodo_1x_pos_tdc_time_vs_pad 'HMS Hodoscope 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1x.GoodPaddle H.hod.1x.GoodPosTdcChan 16 0.5 16.5 3500 -500 3000 +TH2F hhodo_1y_pos_tdc_time_vs_pad 'HMS Hodoscope 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1y.GoodPaddle H.hod.1y.GoodPosTdcChan 10 0.5 10.5 3500 -500 3000 +TH2F hhodo_2x_pos_tdc_time_vs_pad 'HMS Hodoscope 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2x.GoodPaddle H.hod.2x.GoodPosTdcChan 16 0.5 16.5 3500 -500 3000 +TH2F hhodo_2y_pos_tdc_time_vs_pad 'HMS Hodoscope 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2y.GoodPaddle H.hod.2y.GoodPosTdcChan 10 0.5 10.5 3500 -500 3000 + +# Hodoscopes (Negative/Right) +TH1F hhodo_1x_neg_adc_occu 'HMS Hodoscope 1X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negAdcCounter 16 0.5 16.5 +TH1F hhodo_1y_neg_adc_occu 'HMS Hodoscope 1Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negAdcCounter 10 0.5 10.5 +TH1F hhodo_2x_neg_adc_occu 'HMS Hodoscope 2X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negAdcCounter 16 0.5 16.5 +TH1F hhodo_2y_neg_adc_occu 'HMS Hodoscope 2Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negAdcCounter 10 0.5 10.5 +TH1F hhodo_1x_neg_tdc_occu 'HMS Hodoscope 1X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negTdcCounter 16 0.5 16.5 +TH1F hhodo_1y_neg_tdc_occu 'HMS Hodoscope 1Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negTdcCounter 10 0.5 10.5 +TH1F hhodo_2x_neg_tdc_occu 'HMS Hodoscope 2X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negTdcCounter 16 0.5 16.5 +TH1F hhodo_2y_neg_tdc_occu 'HMS Hodoscope 2Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negTdcCounter 10 0.5 10.5 +TH2F hhodo_1x_neg_ped_vs_pad 'HMS Hodoscope 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1x.negAdcCounter H.hod.1x.negAdcPed 16 0.5 16.5 1000 0 1000 +TH2F hhodo_1y_neg_ped_vs_pad 'HMS Hodoscope 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1y.negAdcCounter H.hod.1y.negAdcPed 10 0.5 10.5 1000 0 1000 +TH2F hhodo_2x_neg_ped_vs_pad 'HMS Hodoscope 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2x.negAdcCounter H.hod.2x.negAdcPed 16 0.5 16.5 1000 0 1000 +TH2F hhodo_2y_neg_ped_vs_pad 'HMS Hodoscope 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2y.negAdcCounter H.hod.2y.negAdcPed 10 0.5 10.5 1000 0 1000 +TH2F hhodo_1x_neg_pi_vs_pad 'HMS Hodoscope 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.GoodPaddle H.hod.1x.GoodNegAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_1y_neg_pi_vs_pad 'HMS Hodoscope 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.GoodPaddle H.hod.1y.GoodNegAdcPulseInt 10 0.5 10.5 4000 0 40000 +TH2F hhodo_2x_neg_pi_vs_pad 'HMS Hodoscope 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.GoodPaddle H.hod.2x.GoodNegAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_2y_neg_pi_vs_pad 'HMS Hodoscope 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.GoodPaddle H.hod.2y.GoodNegAdcPulseInt 10 0.5 10.5 4000 0 40000 +TH2F hhodo_1x_neg_pamp_vs_pad 'HMS Hodoscope 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1x.GoodPaddle H.hod.1x.GoodNegAdcPulseAmp 16 0.5 16.5 4100 0 4100 +TH2F hhodo_1y_neg_pamp_vs_pad 'HMS Hodoscope 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1y.GoodPaddle H.hod.1y.GoodNegAdcPulseAmp 10 0.5 10.5 4100 0 4100 +TH2F hhodo_2x_neg_pamp_vs_pad 'HMS Hodoscope 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2x.GoodPaddle H.hod.2x.GoodNegAdcPulseAmp 16 0.5 16.5 4100 0 4100 +TH2F hhodo_2y_neg_pamp_vs_pad 'HMS Hodoscope 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2y.GoodPaddle H.hod.2y.GoodNegAdcPulseAmp 10 0.5 10.5 4100 0 4100 +TH2F hhodo_1x_neg_tdc_time_vs_pad 'HMS Hodoscope 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1x.GoodPaddle H.hod.1x.GoodNegTdcChan 16 0.5 16.5 3500 -500 3000 +TH2F hhodo_1y_neg_tdc_time_vs_pad 'HMS Hodoscope 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1y.GoodPaddle H.hod.1y.GoodNegTdcChan 10 0.5 10.5 3500 -500 3000 +TH2F hhodo_2x_neg_tdc_time_vs_pad 'HMS Hodoscope 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2x.GoodPaddle H.hod.2x.GoodNegTdcChan 16 0.5 16.5 3500 -500 3000 +TH2F hhodo_2y_neg_tdc_time_vs_pad 'HMS Hodoscope 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2y.GoodPaddle H.hod.2y.GoodNegTdcChan 10 0.5 10.5 3500 -500 3000 + +# Cherenkov +TH1F hgcer_occu 'HMS Cherenkov ADC Occupancy; PMT Number; Number of ADC Hits' H.cer.adcCounter 2 0.5 2.5 +TH2F hgcer_ped_vs_cntr 'HMS Cherenkov Pulse Pedestal; PMT Number; Pulse Pedestal / 1 ADC Units' H.cer.adcCounter H.cer.adcPed 2 0.5 2.5 1000 0 1000 +TH2F hgcer_pi_vs_cntr 'HMS Cherenkov Pulse Integral; PMT Number; Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseInt 2 0.5 2.5 4000 0 40000 +TH2F hgcer_pamp_vs_cntr 'HMS Cherenkov Pulse Amplitude; PMT Number; Pulse Pedestal / 1 ADC Units' H.cer.adcCounter H.cer.adcPulseAmp 2 0.5 2.5 4100 0 4100 + +# Pre-Shower +TH1F hcal_hA_pos_occu 'HMS hA+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.posAdcCounter 13 0.5 13.5 +TH2F hcal_hA_pos_ped_blk 'HMS hA+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hA_pos_pi_blk 'HMS hA+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hA_pos_pamp_blk 'HMS hA+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +TH1F hcal_hA_neg_occu 'HMS hA- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.negAdcCounter 13 0.5 13.5 +TH2F hcal_hA_neg_ped_blk 'HMS hA- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hA_neg_pi_blk 'HMS hA- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hA_neg_pamp_blk 'HMS hA- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +TH1F hcal_hB_pos_occu 'HMS hB+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.posAdcCounter 13 0.5 13.5 +TH2F hcal_hB_pos_ped_blk 'HMS hB+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hB_pos_pi_blk 'HMS hB+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hB_pos_pamp_blk 'HMS hB+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +TH1F hcal_hB_neg_occu 'HMS hB- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.negAdcCounter 13 0.5 13.5 +TH2F hcal_hB_neg_ped_blk 'HMS hB- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hB_neg_pi_blk 'HMS hB- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hB_neg_pamp_blk 'HMS hB- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +# Shower +TH1F hcal_hC_occu 'HMS hC+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.3ta.posAdcCounter 13 0.5 13.5 +TH2F hcal_hC_ped_blk 'HMS hC+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hC_pi_blk 'HMS hC+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hC_pamp_blk 'HMS hC+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +TH1F hcal_hD_occu 'HMS hD+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.4ta.posAdcCounter 13 0.5 13.5 +TH2F hcal_hD_ped_blk 'HMS hD+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hD_pi_blk 'HMS hD+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hD_pamp_blk 'HMS hD+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +# Trigger Apparatus +TH1F htrig_hCERsum_pped 'HMS Cherenkov Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hCERSUM_adcPed 1000 0 1000 +TH1F htrig_hCERsum_pint 'HMS Cherenkov Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hCERSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hCERsum_pamp 'HMS Cherenkov Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hCERSUM_adcPulseAmp 4100 0 4100 +TH1F htrig_hCERsum_tdc_time 'HMS Cherenkov Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hCERSUM_tdcTime 4000 0 4000 + +TH1F htrig_hAsum_pped 'HMS hA Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hASUM_adcPed 1000 0 1000 +TH1F htrig_hAsum_pint 'HMS hA Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hASUM_adcPulseInt 4000 0 40000 +TH1F htrig_hAsum_pamp 'HMS hA Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hASUM_adcPulseAmp 4100 0 4100 +TH1F htrig_hAsum_tdc_time 'HMS hA Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hASUM_tdcTime 4000 0 4000 + +TH1F htrig_hBsum_pped 'HMS hB Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hBSUM_adcPed 1000 0 1000 +TH1F htrig_hBsum_pint 'HMS hB Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hBSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hBsum_pamp 'HMS hB Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hBSUM_adcPulseAmp 4100 0 4100 +TH1F htrig_hBsum_tdc_time 'HMS hB Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hBSUM_tdcTime 4000 0 4000 + +TH1F htrig_hCsum_pped 'HMS hC Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hCSUM_adcPed 1000 0 1000 +TH1F htrig_hCsum_pint 'HMS hC Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hCSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hCsum_pamp 'HMS hC Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hCSUM_adcPulseAmp 4100 0 4100 +TH1F htrig_hCsum_tdc_time 'HMS hC Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hCSUM_tdcTime 4000 0 4000 + +TH1F htrig_hDsum_pped 'HMS hD Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hDSUM_adcPed 1000 0 1000 +TH1F htrig_hDsum_pint 'HMS hD Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hDSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hDsum_pamp 'HMS hD Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hDSUM_adcPulseAmp 4100 0 4100 +TH1F htrig_hDsum_tdc_time 'HMS hD Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hDSUM_tdcTime 4000 0 4000 + +TH1F htrig_hpreShwr_adc_pped 'HMS Pre-Shower Sum Pulse Pedestal; Pulse Pedestal (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hPSHWR_adcPed 1000 0 1000 +TH1F htrig_hpreShwr_adc_pint 'HMS Pre-Shower Sum Pulse Integral; Pulse Integral (ADC Units); Number of Entries / 10 ADC Units;' T.hms.hPSHWR_adcPulseInt 4000 0 40000 +TH1F htrig_hpreShwr_adc_pamp 'HMS Pre-Shower Sum Pulse Amplitude; Pulse Amplitude (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hPSHWR_adcPulseAmp 4100 0 4100 + +TH1F htrig_hshwr_adc_pped 'HMS Shower Pulse Pedestal; Pulse Pedestal (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hSHWR_adcPed 1000 0 1000 +TH1F htrig_hshwr_adc_pint 'HMS Shower Pulse Integral; Pulse Integral (ADC Units); Number of Entries / 10 ADC Units;' T.hms.hSHWR_adcPulseInt 4000 0 40000 +TH1F htrig_hshwr_adc_pamp 'HMS Shower Pulse Amplitude; Pulse Amplitude (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hSHWR_adcPulseAmp 4100 0 4100 + +TH1F htrig_hpreShwrLow_tdc 'HMS Pre-Shower Low TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hPSHWRLO_tdcTime 4000 0 4000 +TH1F htrig_hpreShwrHigh_tdc 'HMS Pre-Shower High TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hPSHWRHI_tdcTime 4000 0 4000 +TH1F htrig_hshwr_tdc 'HMS Shower TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hSHWR_tdcTime 4000 0 4000 diff --git a/DEF-files/HMS/GEN/hstackana_cuts.def b/DEF-files/HMS/GEN/hstackana_cuts.def new file mode 100644 index 00000000..3af34a5e --- /dev/null +++ b/DEF-files/HMS/GEN/hstackana_cuts.def @@ -0,0 +1,13 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 diff --git a/DEF-files/HMS/GEN/hstackana_report.def b/DEF-files/HMS/GEN/hstackana_report.def new file mode 100644 index 00000000..4c8cbc0f --- /dev/null +++ b/DEF-files/HMS/GEN/hstackana_report.def @@ -0,0 +1,196 @@ +# See $ANALYZER/examples/output_example.def for examples +# +#block * +block T.hms.* +block H.dc.* +block H.tr.* +block H.hod.* +block H.cer.* +block H.cal.* +block H.gtr.* + +# Drift Chambers +TH1F hdc_ref1 'HMS DC Reference Time Slot 5 Channel 111; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF1_tdcTime 3000 12000 15000 +TH1F hdc_ref2 'HMS DC Reference Time Slot 8 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF2_tdcTime 3000 12000 15000 +TH1F hdc_ref3 'HMS DC Reference Time Slot 10 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF3_tdcTime 3000 12000 15000 +TH1F hdc_ref4 'HMS DC Reference Time Slot 17 Channel 127; TDC Time (Clicks); Number of Entries / 1 click' T.hms.hDCREF4_tdcTime 3000 12000 15000 + +TH1F hdc1x1_wirenum 'HMS DC 1X1 Wiremap; Wire Number; Number of Entries' H.dc.1x1.wirenum 113 0.5 113.5 +TH1F hdc1y1_wirenum 'HMS DC 1Y1 Wiremap; Wire Number; Number of Entries' H.dc.1y1.wirenum 52 0.5 52.5 +TH1F hdc1u1_wirenum 'HMS DC 1U1 Wiremap; Wire Number; Number of Entries' H.dc.1u1.wirenum 107 0.5 107.5 +TH1F hdc1v1_wirenum 'HMS DC 1V1 Wiremap; Wire Number; Number of Entries' H.dc.1v1.wirenum 107 0.5 107.5 +TH1F hdc1y2_wirenum 'HMS DC 1Y2 Wiremap; Wire Number; Number of Entries' H.dc.1y2.wirenum 52 0.5 52.5 +TH1F hdc1x2_wirenum 'HMS DC 1X2 Wiremap; Wire Number; Number of Entries' H.dc.1x2.wirenum 113 0.5 113.5 + +TH1F hdc2x1_wirenum 'HMS DC 2X1 Wiremap; Wire Number; Number of Entries' H.dc.2x1.wirenum 113 0.5 113.5 +TH1F hdc2y1_wirenum 'HMS DC 2Y1 Wiremap; Wire Number; Number of Entries' H.dc.2y1.wirenum 52 0.5 52.5 +TH1F hdc2u1_wirenum 'HMS DC 2U1 Wiremap; Wire Number; Number of Entries' H.dc.2u1.wirenum 107 0.5 107.5 +TH1F hdc2v1_wirenum 'HMS DC 2V1 Wiremap; Wire Number; Number of Entries' H.dc.2v1.wirenum 107 0.5 107.5 +TH1F hdc2y2_wirenum 'HMS DC 2Y2 Wiremap; Wire Number; Number of Entries' H.dc.2y2.wirenum 52 0.5 52.5 +TH1F hdc2x2_wirenum 'HMS DC 2X2 Wiremap; Wire Number; Number of Entries' H.dc.2x2.wirenum 113 0.5 113.5 + +TH2F hdc1x1_wirenum_vs_tdc 'HMS DC 1X1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1x1.wirenum H.dc.1x1.time 113 0.5 113.5 2000 -500 1500 +TH2F hdc1y1_wirenum_vs_tdc 'HMS DC 1Y1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1y1.wirenum H.dc.1y1.time 52 0.5 52.5 2000 -500 1500 +TH2F hdc1u1_wirenum_vs_tdc 'HMS DC 1U1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1u1.wirenum H.dc.1u1.time 107 0.5 107.5 2000 -500 1500 +TH2F hdc1v1_wirenum_vs_tdc 'HMS DC 1V1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1v1.wirenum H.dc.1v1.time 107 0.5 107.5 2000 -500 1500 +TH2F hdc1y2_wirenum_vs_tdc 'HMS DC 1Y2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1y2.wirenum H.dc.1y2.time 52 0.5 52.5 2000 -500 1500 +TH2F hdc1x2_wirenum_vs_tdc 'HMS DC 1X2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.1x2.wirenum H.dc.1x2.time 113 0.5 113.5 2000 -500 1500 + +TH2F hdc2x1_wirenum_vs_tdc 'HMS DC 2X1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2x1.wirenum H.dc.2x1.time 113 0.5 113.5 2000 -500 1500 +TH2F hdc2y1_wirenum_vs_tdc 'HMS DC 2Y1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2y1.wirenum H.dc.2y1.time 52 0.5 52.5 2000 -500 1500 +TH2F hdc2u1_wirenum_vs_tdc 'HMS DC 2U1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2u1.wirenum H.dc.2u1.time 107 0.5 107.5 2000 -500 1500 +TH2F hdc2v1_wirenum_vs_tdc 'HMS DC 2V1 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2v1.wirenum H.dc.2v1.time 107 0.5 107.5 2000 -500 1500 +TH2F hdc2y2_wirenum_vs_tdc 'HMS DC 2Y2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2y2.wirenum H.dc.2y2.time 52 0.5 52.5 2000 -500 1500 +TH2F hdc2x2_wirenum_vs_tdc 'HMS DC 2X2 Wire Number vs. TDC; Wire Number; TDC Time (ns)' H.dc.2x2.wirenum H.dc.2x2.time 113 0.5 113.5 2000 -500 1500 + +TH2F hdc1x1_wirenum_vs_resid 'HMS DC 1X1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1x1.wirenum H.dc.residual[0] 113 0.5 113.5 200 -1.0 1.0 +TH2F hdc1y1_wirenum_vs_resid 'HMS DC 1Y1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1y1.wirenum H.dc.residual[1] 52 0.5 52.5 200 -1.0 1.0 +TH2F hdc1u1_wirenum_vs_resid 'HMS DC 1U1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1u1.wirenum H.dc.residual[2] 107 0.5 107.5 200 -1.0 1.0 +TH2F hdc1v1_wirenum_vs_resid 'HMS DC 1V1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1v1.wirenum H.dc.residual[3] 107 0.5 107.5 200 -1.0 1.0 +TH2F hdc1y2_wirenum_vs_resid 'HMS DC 1Y2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1y2.wirenum H.dc.residual[4] 52 0.5 52.5 200 -1.0 1.0 +TH2F hdc1x2_wirenum_vs_resid 'HMS DC 1X2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.1x2.wirenum H.dc.residual[5] 113 0.5 113.5 200 -1.0 1.0 + +TH2F hdc2x1_wirenum_vs_resid 'HMS DC 2X1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2x1.wirenum H.dc.residual[6] 113 0.5 113.5 200 -1.0 1.0 +TH2F hdc2y1_wirenum_vs_resid 'HMS DC 2Y1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2y1.wirenum H.dc.residual[7] 52 0.5 52.5 200 -1.0 1.0 +TH2F hdc2u1_wirenum_vs_resid 'HMS DC 2U1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2u1.wirenum H.dc.residual[8] 107 0.5 107.5 200 -1.0 1.0 +TH2F hdc2v1_wirenum_vs_resid 'HMS DC 2V1 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2v1.wirenum H.dc.residual[9] 107 0.5 107.5 200 -1.0 1.0 +TH2F hdc2y2_wirenum_vs_resid 'HMS DC 2Y2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2y2.wirenum H.dc.residual[10] 52 0.5 52.5 200 -1.0 1.0 +TH2F hdc2x2_wirenum_vs_resid 'HMS DC 2X2 Wire Number vs. Residuals; Wire Number; Residuals (mm)' H.dc.2x2.wirenum H.dc.residual[11] 113 0.5 113.5 200 -1.0 1.0 + +TH2F hdc_xfp_vs_yxp 'HMS DC Xfp vs Yxp; Yfp (cm) / 1 cm; Xfp (cm) / 1 cm' H.dc.y H.dc.x 100 -50 50 100 -50 50 +TH2F hdc_xfpp_vs_yxpp 'HMS DC Xfpp vs Yxpp; Yfpp; Xfpp' H.dc.yp H.dc.xp 100 -1 1 100 -1 1 + +# Hodoscopes (Positive/Left) +TH1F hhodo_1x_pos_adc_occu 'HMS Hodoscope 1X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posAdcCounter 16 0.5 16.5 +TH1F hhodo_1y_pos_adc_occu 'HMS Hodoscope 1Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posAdcCounter 10 0.5 10.5 +TH1F hhodo_2x_pos_adc_occu 'HMS Hodoscope 2X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posAdcCounter 16 0.5 16.5 +TH1F hhodo_2y_pos_adc_occu 'HMS Hodoscope 2Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posAdcCounter 10 0.5 10.5 +TH1F hhodo_1x_pos_tdc_occu 'HMS Hodoscope 1X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posTdcCounter 16 0.5 16.5 +TH1F hhodo_1y_pos_tdc_occu 'HMS Hodoscope 1Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posTdcCounter 10 0.5 10.5 +TH1F hhodo_2x_pos_tdc_occu 'HMS Hodoscope 2X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posTdcCounter 16 0.5 16.5 +TH1F hhodo_2y_pos_tdc_occu 'HMS Hodoscope 2Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posTdcCounter 10 0.5 10.5 +TH2F hhodo_1x_pos_ped_vs_pad 'HMS Hodoscope 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1x.posAdcCounter H.hod.1x.posAdcPed 16 0.5 16.5 1000 0 1000 +TH2F hhodo_1y_pos_ped_vs_pad 'HMS Hodoscope 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1y.posAdcCounter H.hod.1y.posAdcPed 10 0.5 10.5 1000 0 1000 +TH2F hhodo_2x_pos_ped_vs_pad 'HMS Hodoscope 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2x.posAdcCounter H.hod.2x.posAdcPed 16 0.5 16.5 1000 0 1000 +TH2F hhodo_2y_pos_ped_vs_pad 'HMS Hodoscope 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2y.posAdcCounter H.hod.2y.posAdcPed 10 0.5 10.5 1000 0 1000 +TH2F hhodo_1x_pos_pi_vs_pad 'HMS Hodoscope 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.GoodPaddle H.hod.1x.GoodPosAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_1y_pos_pi_vs_pad 'HMS Hodoscope 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.GoodPaddle H.hod.1y.GoodPosAdcPulseInt 10 0.5 10.5 4000 0 40000 +TH2F hhodo_2x_pos_pi_vs_pad 'HMS Hodoscope 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.GoodPaddle H.hod.2x.GoodPosAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_2y_pos_pi_vs_pad 'HMS Hodoscope 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.GoodPaddle H.hod.2y.GoodPosAdcPulseInt 10 0.5 10.5 4000 0 40000 +TH2F hhodo_1x_pos_pamp_vs_pad 'HMS Hodoscope 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1x.GoodPaddle H.hod.1x.GoodPosAdcPulseAmp 16 0.5 16.5 4100 0 4100 +TH2F hhodo_1y_pos_pamp_vs_pad 'HMS Hodoscope 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1y.GoodPaddle H.hod.1y.GoodPosAdcPulseAmp 10 0.5 10.5 4100 0 4100 +TH2F hhodo_2x_pos_pamp_vs_pad 'HMS Hodoscope 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2x.GoodPaddle H.hod.2x.GoodPosAdcPulseAmp 16 0.5 16.5 4100 0 4100 +TH2F hhodo_2y_pos_pamp_vs_pad 'HMS Hodoscope 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2y.GoodPaddle H.hod.2y.GoodPosAdcPulseAmp 10 0.5 10.5 4100 0 4100 +TH2F hhodo_1x_pos_tdc_time_vs_pad 'HMS Hodoscope 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1x.GoodPaddle H.hod.1x.GoodPosTdcChan 16 0.5 16.5 3500 -500 3000 +TH2F hhodo_1y_pos_tdc_time_vs_pad 'HMS Hodoscope 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1y.GoodPaddle H.hod.1y.GoodPosTdcChan 10 0.5 10.5 3500 -500 3000 +TH2F hhodo_2x_pos_tdc_time_vs_pad 'HMS Hodoscope 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2x.GoodPaddle H.hod.2x.GoodPosTdcChan 16 0.5 16.5 3500 -500 3000 +TH2F hhodo_2y_pos_tdc_time_vs_pad 'HMS Hodoscope 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2y.GoodPaddle H.hod.2y.GoodPosTdcChan 10 0.5 10.5 3500 -500 3000 + +# Hodoscopes (Negative/Right) +TH1F hhodo_1x_neg_adc_occu 'HMS Hodoscope 1X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negAdcCounter 16 0.5 16.5 +TH1F hhodo_1y_neg_adc_occu 'HMS Hodoscope 1Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negAdcCounter 10 0.5 10.5 +TH1F hhodo_2x_neg_adc_occu 'HMS Hodoscope 2X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negAdcCounter 16 0.5 16.5 +TH1F hhodo_2y_neg_adc_occu 'HMS Hodoscope 2Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negAdcCounter 10 0.5 10.5 +TH1F hhodo_1x_neg_tdc_occu 'HMS Hodoscope 1X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negTdcCounter 16 0.5 16.5 +TH1F hhodo_1y_neg_tdc_occu 'HMS Hodoscope 1Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negTdcCounter 10 0.5 10.5 +TH1F hhodo_2x_neg_tdc_occu 'HMS Hodoscope 2X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negTdcCounter 16 0.5 16.5 +TH1F hhodo_2y_neg_tdc_occu 'HMS Hodoscope 2Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negTdcCounter 10 0.5 10.5 +TH2F hhodo_1x_neg_ped_vs_pad 'HMS Hodoscope 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1x.negAdcCounter H.hod.1x.negAdcPed 16 0.5 16.5 1000 0 1000 +TH2F hhodo_1y_neg_ped_vs_pad 'HMS Hodoscope 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.1y.negAdcCounter H.hod.1y.negAdcPed 10 0.5 10.5 1000 0 1000 +TH2F hhodo_2x_neg_ped_vs_pad 'HMS Hodoscope 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2x.negAdcCounter H.hod.2x.negAdcPed 16 0.5 16.5 1000 0 1000 +TH2F hhodo_2y_neg_ped_vs_pad 'HMS Hodoscope 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' H.hod.2y.negAdcCounter H.hod.2y.negAdcPed 10 0.5 10.5 1000 0 1000 +TH2F hhodo_1x_neg_pi_vs_pad 'HMS Hodoscope 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.GoodPaddle H.hod.1x.GoodNegAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_1y_neg_pi_vs_pad 'HMS Hodoscope 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.GoodPaddle H.hod.1y.GoodNegAdcPulseInt 10 0.5 10.5 4000 0 40000 +TH2F hhodo_2x_neg_pi_vs_pad 'HMS Hodoscope 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.GoodPaddle H.hod.2x.GoodNegAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_2y_neg_pi_vs_pad 'HMS Hodoscope 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.GoodPaddle H.hod.2y.GoodNegAdcPulseInt 10 0.5 10.5 4000 0 40000 +TH2F hhodo_1x_neg_pamp_vs_pad 'HMS Hodoscope 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1x.GoodPaddle H.hod.1x.GoodNegAdcPulseAmp 16 0.5 16.5 4100 0 4100 +TH2F hhodo_1y_neg_pamp_vs_pad 'HMS Hodoscope 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.1y.GoodPaddle H.hod.1y.GoodNegAdcPulseAmp 10 0.5 10.5 4100 0 4100 +TH2F hhodo_2x_neg_pamp_vs_pad 'HMS Hodoscope 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2x.GoodPaddle H.hod.2x.GoodNegAdcPulseAmp 16 0.5 16.5 4100 0 4100 +TH2F hhodo_2y_neg_pamp_vs_pad 'HMS Hodoscope 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' H.hod.2y.GoodPaddle H.hod.2y.GoodNegAdcPulseAmp 10 0.5 10.5 4100 0 4100 +TH2F hhodo_1x_neg_tdc_time_vs_pad 'HMS Hodoscope 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1x.GoodPaddle H.hod.1x.GoodNegTdcChan 16 0.5 16.5 3500 -500 3000 +TH2F hhodo_1y_neg_tdc_time_vs_pad 'HMS Hodoscope 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.1y.GoodPaddle H.hod.1y.GoodNegTdcChan 10 0.5 10.5 3500 -500 3000 +TH2F hhodo_2x_neg_tdc_time_vs_pad 'HMS Hodoscope 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2x.GoodPaddle H.hod.2x.GoodNegTdcChan 16 0.5 16.5 3500 -500 3000 +TH2F hhodo_2y_neg_tdc_time_vs_pad 'HMS Hodoscope 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' H.hod.2y.GoodPaddle H.hod.2y.GoodNegTdcChan 10 0.5 10.5 3500 -500 3000 + +# Cherenkov +TH1F hgcer_occu 'HMS Cherenkov ADC Occupancy; PMT Number; Number of ADC Hits' H.cer.adcCounter 2 0.5 2.5 +TH2F hgcer_ped_vs_cntr 'HMS Cherenkov Pulse Pedestal; PMT Number; Pulse Pedestal / 1 ADC Units' H.cer.adcCounter H.cer.adcPed 2 0.5 2.5 1000 0 1000 +TH2F hgcer_pi_vs_cntr 'HMS Cherenkov Pulse Integral; PMT Number; Pulse Pedestal / 10 ADC Units' H.cer.adcCounter H.cer.adcPulseInt 2 0.5 2.5 4000 0 40000 +TH2F hgcer_pamp_vs_cntr 'HMS Cherenkov Pulse Amplitude; PMT Number; Pulse Pedestal / 1 ADC Units' H.cer.adcCounter H.cer.adcPulseAmp 2 0.5 2.5 4100 0 4100 + +# +TH1F hgcer_pmt1_adc 'HMS Cherenkov PMT 1 ; ADC (chan) ; Counts' H.cer.adc_p[0] 1000 0. 100000. H.cer.adc_hit[0]==1 +TH1F hgcer_pmt2_adc 'HMS Cherenkov PMT 2 ; ADC (chan) ; Counts' H.cer.adc_p[1] 1000 0. 100000. H.cer.adc_hit[1]==1 +TH1F hgcer_pmt1_nphe 'HMS Cherenkov PMT 1 ; N_Phe ; Counts' H.cer.npe[0] 500 0. 100. H.cer.adc_hit[0]==1 +TH1F hgcer_pmt2_nphe 'HMS Cherenkov PMT 2 ; N_Phe ; Counts' H.cer.npe[1] 500 0. 100. H.cer.adc_hit[1]==1 + + +# Pre-Shower +TH1F hcal_hA_pos_occu 'HMS hA+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.posAdcCounter 13 0.5 13.5 +TH2F hcal_hA_pos_ped_blk 'HMS hA+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hA_pos_pi_blk 'HMS hA+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hA_pos_pamp_blk 'HMS hA+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.1pr.posAdcCounter H.cal.1pr.posAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +TH1F hcal_hA_neg_occu 'HMS hA- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.1pr.negAdcCounter 13 0.5 13.5 +TH2F hcal_hA_neg_ped_blk 'HMS hA- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hA_neg_pi_blk 'HMS hA- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hA_neg_pamp_blk 'HMS hA- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.1pr.negAdcCounter H.cal.1pr.negAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +TH1F hcal_hB_pos_occu 'HMS hB+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.posAdcCounter 13 0.5 13.5 +TH2F hcal_hB_pos_ped_blk 'HMS hB+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hB_pos_pi_blk 'HMS hB+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hB_pos_pamp_blk 'HMS hB+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.2ta.posAdcCounter H.cal.2ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +TH1F hcal_hB_neg_occu 'HMS hB- ADC Occupancy; Block Number; Number of ADC Hits' H.cal.2ta.negAdcCounter 13 0.5 13.5 +TH2F hcal_hB_neg_ped_blk 'HMS hB- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hB_neg_pi_blk 'HMS hB- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hB_neg_pamp_blk 'HMS hB- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.2ta.negAdcCounter H.cal.2ta.negAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +# Shower +TH1F hcal_hC_occu 'HMS hC+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.3ta.posAdcCounter 13 0.5 13.5 +TH2F hcal_hC_ped_blk 'HMS hC+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hC_pi_blk 'HMS hC+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hC_pamp_blk 'HMS hC+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.3ta.posAdcCounter H.cal.3ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +TH1F hcal_hD_occu 'HMS hD+ ADC Occupancy; Block Number; Number of ADC Hits' H.cal.4ta.posAdcCounter 13 0.5 13.5 +TH2F hcal_hD_ped_blk 'HMS hD+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F hcal_hD_pi_blk 'HMS hD+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F hcal_hD_pamp_blk 'HMS hD+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Units' H.cal.4ta.posAdcCounter H.cal.4ta.posAdcPulseAmp 13 0.5 13.5 4100 0 4100 + +# Trigger Apparatus +TH1F htrig_hCERsum_pped 'HMS Cherenkov Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hCERSUM_adcPed 1000 0 1000 +TH1F htrig_hCERsum_pint 'HMS Cherenkov Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hCERSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hCERsum_pamp 'HMS Cherenkov Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hCERSUM_adcPulseAmp 4100 0 4100 +TH1F htrig_hCERsum_tdc_time 'HMS Cherenkov Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hCERSUM_tdcTime 4000 0 4000 + +TH1F htrig_hAsum_pped 'HMS hA Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hASUM_adcPed 1000 0 1000 +TH1F htrig_hAsum_pint 'HMS hA Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hASUM_adcPulseInt 4000 0 40000 +TH1F htrig_hAsum_pamp 'HMS hA Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hASUM_adcPulseAmp 4100 0 4100 +TH1F htrig_hAsum_tdc_time 'HMS hA Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hASUM_tdcTime 4000 0 4000 + +TH1F htrig_hBsum_pped 'HMS hB Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hBSUM_adcPed 1000 0 1000 +TH1F htrig_hBsum_pint 'HMS hB Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hBSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hBsum_pamp 'HMS hB Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hBSUM_adcPulseAmp 4100 0 4100 +TH1F htrig_hBsum_tdc_time 'HMS hB Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hBSUM_tdcTime 4000 0 4000 + +TH1F htrig_hCsum_pped 'HMS hC Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hCSUM_adcPed 1000 0 1000 +TH1F htrig_hCsum_pint 'HMS hC Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hCSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hCsum_pamp 'HMS hC Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hCSUM_adcPulseAmp 4100 0 4100 +TH1F htrig_hCsum_tdc_time 'HMS hC Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hCSUM_tdcTime 4000 0 4000 + +TH1F htrig_hDsum_pped 'HMS hD Sum Pulse Pedestal; Pulse Pedestal; Number of Entries / 1 ADC Unit' T.hms.hDSUM_adcPed 1000 0 1000 +TH1F htrig_hDsum_pint 'HMS hD Sum Pulse Integral; Pulse Integral; Number of Entries / 10 ADC Units' T.hms.hDSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hDsum_pamp 'HMS hD Sum Pulse Amplitude; Pulse Amplitude; Number of Entries / 1 ADC Unit' T.hms.hDSUM_adcPulseAmp 4100 0 4100 +TH1F htrig_hDsum_tdc_time 'HMS hD Sum TDC Time; TDC Time (TDC Clicks); Number of Entries / 1 TDC Clicks' T.hms.hDSUM_tdcTime 4000 0 4000 + +TH1F htrig_hpreShwr_adc_pped 'HMS Pre-Shower Sum Pulse Pedestal; Pulse Pedestal (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hPSHWR_adcPed 1000 0 1000 +TH1F htrig_hpreShwr_adc_pint 'HMS Pre-Shower Sum Pulse Integral; Pulse Integral (ADC Units); Number of Entries / 10 ADC Units;' T.hms.hPSHWR_adcPulseInt 4000 0 40000 +TH1F htrig_hpreShwr_adc_pamp 'HMS Pre-Shower Sum Pulse Amplitude; Pulse Amplitude (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hPSHWR_adcPulseAmp 4100 0 4100 + +TH1F htrig_hshwr_adc_pped 'HMS Shower Pulse Pedestal; Pulse Pedestal (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hSHWR_adcPed 1000 0 1000 +TH1F htrig_hshwr_adc_pint 'HMS Shower Pulse Integral; Pulse Integral (ADC Units); Number of Entries / 10 ADC Units;' T.hms.hSHWR_adcPulseInt 4000 0 40000 +TH1F htrig_hshwr_adc_pamp 'HMS Shower Pulse Amplitude; Pulse Amplitude (ADC Units); Number of Entries / 1 ADC Units;' T.hms.hSHWR_adcPulseAmp 4100 0 4100 + +TH1F htrig_hpreShwrLow_tdc 'HMS Pre-Shower Low TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hPSHWRLO_tdcTime 4000 0 4000 +TH1F htrig_hpreShwrHigh_tdc 'HMS Pre-Shower High TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hPSHWRHI_tdcTime 4000 0 4000 +TH1F htrig_hshwr_tdc 'HMS Shower TDC Time; TDC Time (TDC Units); Number of Entries / 1 TDC Units;' T.hms.hSHWR_tdcTime 4000 0 4000 diff --git a/DEF-files/HMS/GEN/hstackana_report_cuts.def b/DEF-files/HMS/GEN/hstackana_report_cuts.def new file mode 100644 index 00000000..535972d6 --- /dev/null +++ b/DEF-files/HMS/GEN/hstackana_report_cuts.def @@ -0,0 +1,191 @@ +# Demo cuts for hodtest +# + +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 g.evtyp==1||g.evtyp==3 +shmscoin_event g.evtyp==2||g.evtyp==3 +all_event g.evtyp==1||g.evtyp==2||g.evtyp==3 +RawDecode_master 1 + +Block: Decode +Decode_master HMS_event + +Block: CoarseTracking +CoarseTracking_master HMS_event + +all_trigs g.evtyp==1 || g.evtyp==2 || g.evtyp==3 +hms_shms_trig g.evtyp==1 || g.evtyp==2 +hms_coin_trig g.evtyp==1 || g.evtyp==3 + +cer_pmt1_good H.cer.adc_hit[0]==1 +cer_pmt2_good H.cer.adc_hit[1]==1 + + +hmsDC1Planes_large (H.dc.1x1.nhit+H.dc.1y1.nhit+H.dc.1u1.nhit+H.dc.1v1.nhit+H.dc.1x2.nhit+H.dc.1y2.nhit) >20 +hmsDC2Planes_large (H.dc.2x1.nhit+H.dc.2y1.nhit+H.dc.2u1.nhit+H.dc.2v1.nhit+H.dc.2x2.nhit+H.dc.2y2.nhit) >20 + +hmsDC1_1hit_x1 H.dc.1x1.nhit == 1 +hmsDC1_1hit_y1 H.dc.1y1.nhit == 1 +hmsDC1_1hit_u1 H.dc.1u1.nhit == 1 +hmsDC1_1hit_v1 H.dc.1v1.nhit == 1 +hmsDC1_1hit_y2 H.dc.1y2.nhit == 1 +hmsDC1_1hit_x2 H.dc.1x2.nhit == 1 + +hmsDC2_1hit_x1 H.dc.2x1.nhit == 1 +hmsDC2_1hit_y1 H.dc.2y1.nhit == 1 +hmsDC2_1hit_u1 H.dc.2u1.nhit == 1 +hmsDC2_1hit_v1 H.dc.2v1.nhit == 1 +hmsDC2_1hit_y2 H.dc.2y2.nhit == 1 +hmsDC2_1hit_x2 H.dc.2x2.nhit == 1 + +h1hit1 H.dc.1x1.nhit >= 1 +h1hit2 H.dc.1y1.nhit >= 1 +h1hit3 H.dc.1u1.nhit >= 1 +h1hit4 H.dc.1v1.nhit >= 1 +h1hit5 H.dc.1y2.nhit >= 1 +h1hit6 H.dc.1x2.nhit >= 1 + +h2hit1 H.dc.2x1.nhit >= 1 +h2hit2 H.dc.2y1.nhit >= 1 +h2hit3 H.dc.2u1.nhit >= 1 +h2hit4 H.dc.2v1.nhit >= 1 +h2hit5 H.dc.2y2.nhit >= 1 +h2hit6 H.dc.2x2.nhit >= 1 + +hmsDC1Planes6hits (H.dc.1x1.nhit+H.dc.1y1.nhit+H.dc.1u1.nhit+H.dc.1v1.nhit+H.dc.1x2.nhit+H.dc.1y2.nhit) ==6 +hmsDC2Planes6hits (H.dc.2x1.nhit+H.dc.2y1.nhit+H.dc.2u1.nhit+H.dc.2v1.nhit+H.dc.2x2.nhit+H.dc.2y2.nhit )==6 +hmsDC1_5hits_x1 hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2 +hmsDC1_6hits_x1 h1hit1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2 +hmsDC1_5hits_y1 hmsDC1_1hit_x1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2 +hmsDC1_6hits_y1 h1hit2&&hmsDC1_1hit_x1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2 +hmsDC1_5hits_u1 hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2 +hmsDC1_6hits_u1 h1hit3&&hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2 +hmsDC1_5hits_v1 hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2 +hmsDC1_6hits_v1 h1hit4&&hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_x2&&hmsDC1_1hit_y2 +hmsDC1_5hits_x2 hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_y2 +hmsDC1_6hits_x2 h1hit6&&hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_y2 +hmsDC1_5hits_y2 hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2 +hmsDC1_6hits_y2 h1hit5&&hmsDC1_1hit_x1&&hmsDC1_1hit_y1&&hmsDC1_1hit_u1&&hmsDC1_1hit_v1&&hmsDC1_1hit_x2 + +hmsDC2_5hits_x1 hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2 +hmsDC2_6hits_x1 h2hit1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2 +hmsDC2_5hits_y1 hmsDC2_1hit_x1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2 +hmsDC2_6hits_y1 h2hit2&&hmsDC2_1hit_x1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2 +hmsDC2_5hits_u1 hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2 +hmsDC2_6hits_u1 h2hit3&&hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2 +hmsDC2_5hits_v1 hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2 +hmsDC2_6hits_v1 h2hit4&&hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_x2&&hmsDC2_1hit_y2 +hmsDC2_5hits_x2 hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_y2 +hmsDC2_6hits_x2 h2hit6&&hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_y2 +hmsDC2_5hits_y2 hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2 +hmsDC2_6hits_y2 h2hit5&&hmsDC2_1hit_x1&&hmsDC2_1hit_y1&&hmsDC2_1hit_u1&&hmsDC2_1hit_v1&&hmsDC2_1hit_x2 + + + + +hms1HitsLt H.dc.Ch1.nhit <= H.dc.Ch1.maxhits && g.evtyp==1 +hms2HitsLt H.dc.Ch2.nhit <= H.dc.Ch2.maxhits && g.evtyp==1 +hmsHitsLt H.dc.Ch1.nhit <= H.dc.Ch1.maxhits && H.dc.Ch2.nhit <= H.dc.Ch2.maxhits && g.evtyp==1 +hmsDC1PlanesGT (h1hit1 + h1hit2 + h1hit3 + h1hit4 + h1hit5 + h1hit6 )>=5 +hmsDC2PlanesGT (h2hit1 + h2hit2 + h2hit3 + h2hit4 + h2hit5 + h2hit6 )>=5 +hmsPlanesGT hmsDC1PlanesGT && hmsDC2PlanesGT +hmsHitsPlanes (H.dc.Ch1.nhit <= H.dc.Ch1.maxhits) && (H.dc.Ch2.nhit <= H.dc.Ch2.maxhits) && hmsPlanesGT +hSpacePoints H.dc.Ch1.spacepoints >= 1 && H.dc.Ch2.spacepoints >=1 +hSpacePointsStub H.dc.stubtest==1 && H.dc.Ch1.spacepoints >=1 && H.dc.Ch2.spacepoints >=1 +hFoundTrack H.dc.ntrack>0 +hStubLT H.dc.stubtest==1 +f1HSpacePoints hms1HitsLt && hmsDC1PlanesGT && H.dc.Ch1.spacepoints==0 && g.evtyp==1 +f2HSpacePoints hms2HitsLt && hmsDC2PlanesGT && H.dc.Ch2.spacepoints==0 && g.evtyp==1 +hTest1 hmsHitsPlanes && (!hSpacePoints) +hTest2 hSpacePoints && (!hStubLT) + + + + + + +Block: CoarseReconstruct +CoarseReconstruct_master HMS_event + +Block: Tracking +Tracking_master HMS_event + +Block: Reconstruct +Reconstruct_master HMS_event + +HMSScinGood H.hod.goodscinhit == 1 + +HMSScinShould HMSScinGood && H.cal.etotnorm > 0.7 && H.cer.npesum > 2.0 +HMSScinShoulde HMSScinGood && H.cer.npesum > 2.0 +HMSScinShouldh H.hod.goodscinhit == 1 && g.evtyp == 1 + +HMSScinDid HMSScinShould && H.dc.ntrack > 0 +HMSScinDide HMSScinShoulde && H.dc.ntrack > 0 +HMSScinDidh HMSScinShouldh && H.dc.ntrack > 0 + + + +goodHDC1x1 H.dc.1x1.nhit > 0 && H.dc.1x1.nhit < 3 +goodHDC1y1 H.dc.1y1.nhit > 0 && H.dc.1y1.nhit < 3 +goodHDC1u1 H.dc.1u1.nhit > 0 && H.dc.1u1.nhit < 3 +goodHDC1v1 H.dc.1v1.nhit > 0 && H.dc.1v1.nhit < 3 +goodHDC1y2 H.dc.1y2.nhit > 0 && H.dc.1y2.nhit < 3 +goodHDC1x2 H.dc.1x2.nhit > 0 && H.dc.1x2.nhit < 3 + +goodHDC2x1 H.dc.2x1.nhit > 0 && H.dc.2x1.nhit < 3 +goodHDC2y1 H.dc.2y1.nhit > 0 && H.dc.2y1.nhit < 3 +goodHDC2u1 H.dc.2u1.nhit > 0 && H.dc.2u1.nhit < 3 +goodHDC2v1 H.dc.2v1.nhit > 0 && H.dc.2v1.nhit < 3 +goodHDC2y2 H.dc.2y2.nhit > 0 && H.dc.2y2.nhit < 3 +goodHDC2x2 H.dc.2x2.nhit > 0 && H.dc.2x2.nhit < 3 + +goodHDC1 goodHDC1x1 && goodHDC1y1 && goodHDC1u1 && goodHDC1v1 && goodHDC1y2 && goodHDC1x2 +goodHDC2 goodHDC2x1 && goodHDC2y1 && goodHDC2u1 && goodHDC2v1 && goodHDC2y2 && goodHDC2x2 +bothGood goodHDC1 && goodHDC2 + +realhdc1x1 goodHDC1x1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) +realhdc1y1 goodHDC1y1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) +realhdc1u1 goodHDC1u1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) +realhdc1v1 goodHDC1v1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) +realhdc1y2 goodHDC1y2 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) +realhdc2x2 goodHDC1x2 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) +realhdc2x1 goodHDC2x1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) +realhdc2y1 goodHDC2y1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) +realhdc2u1 goodHDC2u1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) +realhdc2v1 goodHDC2v1 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) +realhdc2y2 goodHDC2y2 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) +realhdc2x2 goodHDC2x2 && ((H.dc.Ch1.spacepoints+H.dc.Ch2.spacepoints)>0) + +hFound1Track H.dc.ntrack == 1 +hFound2Track H.dc.ntrack == 2 +hFound3Track H.dc.ntrack == 3 +hFound4Track H.dc.ntrack == 4 + +hCleanTrack H.gtr.index > -1 +1hCleanTrack H.gtr.index == 0 +2hCleanTrack H.gtr.index == 1 +3hCleanTrack H.gtr.index == 2 +4hCleanTrack H.gtr.index == 3 + +anyhs1x H.hod.1x.nhits > 0 +anyhs1y H.hod.1y.nhits > 0 +anyhs2x H.hod.2x.nhits > 0 +anyhs2y H.hod.2y.nhits > 0 + +goodhs1x H.hod.1x.nhits > 0 && H.hod.1x.nhits < 3 +goodhs1y H.hod.1y.nhits > 0 && H.hod.1y.nhits < 3 +goodhs1 goodhs1x && goodhs1y +goodhs2x H.hod.2x.nhits > 0 && H.hod.2x.nhits < 3 +goodhs2y H.hod.2y.nhits > 0 && H.hod.2y.nhits < 3 +goodhs2 goodhs2x && goodhs2y +goodhs1s2 goodhs1 && goodhs2 + +Block: Physics +Physics_master HMS_event diff --git a/DEF-files/HMS/HODO/hhodoana.def b/DEF-files/HMS/HODO/hhodoana.def new file mode 100644 index 00000000..f6b7a485 --- /dev/null +++ b/DEF-files/HMS/HODO/hhodoana.def @@ -0,0 +1,134 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block H.hod.* +block T.hms.* + +TH1F hhodo_1x_multi 'HMS 1X Multiplicity; Number of Hits; Counts' H.hod.1x.nhits 16 0.5 16.5 +TH1F hhodo_1y_multi 'HMS 1Y Multiplicity; Number of Hits; Counts' H.hod.1y.nhits 10 0.5 10.5 +TH1F hhodo_2x_multi 'HMS 2X Multiplicity; Number of Hits; Counts' H.hod.2x.nhits 16 0.5 16.5 +TH1F hhodo_2y_multi 'HMS 2Y Multiplicity; Number of Hits; Counts' H.hod.2y.nhits 10 0.5 10.5 + +TH1F hhodo_1x_pos_adc_occu 'HMS 1X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posAdcCounter 16 0.5 16.5 +TH1F hhodo_1y_pos_adc_occu 'HMS 1Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posAdcCounter 10 0.5 10.5 +TH1F hhodo_2x_pos_adc_occu 'HMS 2X+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posAdcCounter 16 0.5 16.5 +TH1F hhodo_2y_pos_adc_occu 'HMS 2Y+ ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posAdcCounter 10 0.5 10.5 + +TH1F hhodo_1x_neg_adc_occu 'HMS 1X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negAdcCounter 16 0.5 16.5 +TH1F hhodo_1y_neg_adc_occu 'HMS 1Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negAdcCounter 10 0.5 10.5 +TH1F hhodo_2x_neg_adc_occu 'HMS 2X- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negAdcCounter 16 0.5 16.5 +TH1F hhodo_2y_neg_adc_occu 'HMS 2Y- ADC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negAdcCounter 10 0.5 10.5 + +TH1F hhodo_1x_pos_tdc_occu 'HMS 1X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.posTdcCounter 16 0.5 16.5 +TH1F hhodo_1y_pos_tdc_occu 'HMS 1Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.posTdcCounter 10 0.5 10.5 +TH1F hhodo_2x_pos_tdc_occu 'HMS 2X+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.posTdcCounter 16 0.5 16.5 +TH1F hhodo_2y_pos_tdc_occu 'HMS 2Y+ TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.posTdcCounter 10 0.5 10.5 + +TH1F hhodo_1x_neg_tdc_occu 'HMS 1X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1x.negTdcCounter 16 0.5 16.5 +TH1F hhodo_1y_neg_tdc_occu 'HMS 1Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.1y.negTdcCounter 10 0.5 10.5 +TH1F hhodo_2x_neg_tdc_occu 'HMS 2X- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2x.negTdcCounter 16 0.5 16.5 +TH1F hhodo_2y_neg_tdc_occu 'HMS 2Y- TDC Occupancy; Paddle Number; Number of Hits' H.hod.2y.negTdcCounter 10 0.5 10.5 + +TH2F hhodo_1x_pos_rawped_vs_pad 'HMS 1X+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.1x.posAdcCounter H.hod.1x.posAdcPedRaw 16 0.5 16.5 400 0 4000 +TH2F hhodo_1y_pos_rawped_vs_pad 'HMS 1Y+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.1y.posAdcCounter H.hod.1y.posAdcPedRaw 10 0.5 10.5 400 0 4000 +TH2F hhodo_2x_pos_rawped_vs_pad 'HMS 2X+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.2x.posAdcCounter H.hod.2x.posAdcPedRaw 16 0.5 16.5 400 0 4000 +TH2F hhodo_2y_pos_rawped_vs_pad 'HMS 2Y+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.2y.posAdcCounter H.hod.2y.posAdcPedRaw 10 0.5 10.5 400 0 4000 + +TH2F hhodo_1x_neg_rawped_vs_pad 'HMS 1X- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.1x.negAdcCounter H.hod.1x.negAdcPedRaw 16 0.5 16.5 400 0 4000 +TH2F hhodo_1y_neg_rawped_vs_pad 'HMS 1Y- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.1y.negAdcCounter H.hod.1y.negAdcPedRaw 10 0.5 10.5 400 0 4000 +TH2F hhodo_2x_neg_rawped_vs_pad 'HMS 2X- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.2x.negAdcCounter H.hod.2x.negAdcPedRaw 16 0.5 16.5 400 0 4000 +TH2F hhodo_2y_neg_rawped_vs_pad 'HMS 2Y- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' H.hod.2y.negAdcCounter H.hod.2y.negAdcPedRaw 10 0.5 10.5 400 0 4000 + + +TH2F hhodo_1x_pos_rawpi_vs_pad 'HMS 1X+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.1x.posAdcCounter H.hod.1x.posAdcPulseIntRaw 16 0.5 16.5 2000 0 20000 +TH2F hhodo_1y_pos_rawpi_vs_pad 'HMS 1Y+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.1y.posAdcCounter H.hod.1y.posAdcPulseIntRaw 10 0.5 10.5 2000 0 20000 +TH2F hhodo_2x_pos_rawpi_vs_pad 'HMS 2X+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.2x.posAdcCounter H.hod.2x.posAdcPulseIntRaw 16 0.5 16.5 2000 0 20000 +TH2F hhodo_2y_pos_rawpi_vs_pad 'HMS 2Y+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.2y.posAdcCounter H.hod.2y.posAdcPulseIntRaw 10 0.5 10.5 2000 0 20000 + +TH2F hhodo_1x_neg_rawpi_vs_pad 'HMS 1X- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.1x.negAdcCounter H.hod.1x.negAdcPulseIntRaw 16 0.5 16.5 2000 0 20000 +TH2F hhodo_1y_neg_rawpi_vs_pad 'HMS 1Y- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.1y.negAdcCounter H.hod.1y.negAdcPulseIntRaw 10 0.5 10.5 2000 0 20000 +TH2F hhodo_2x_neg_rawpi_vs_pad 'HMS 2X- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.2x.negAdcCounter H.hod.2x.negAdcPulseIntRaw 16 0.5 16.5 2000 0 20000 +TH2F hhodo_2y_neg_rawpi_vs_pad 'HMS 2Y- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' H.hod.2y.negAdcCounter H.hod.2y.negAdcPulseIntRaw 10 0.5 10.5 2000 0 20000 + +TH2F hhodo_1x_pos_rawpamp_vs_pad 'HMS 1X+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.1x.posAdcCounter H.hod.1x.posAdcPulseAmpRaw 16 0.5 16.5 410 0 4100 +TH2F hhodo_1y_pos_rawpamp_vs_pad 'HMS 1Y+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.1y.posAdcCounter H.hod.1y.posAdcPulseAmpRaw 10 0.5 10.5 410 0 4100 +TH2F hhodo_2x_pos_rawpamp_vs_pad 'HMS 2X+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.2x.posAdcCounter H.hod.2x.posAdcPulseAmpRaw 16 0.5 16.5 410 0 4100 +TH2F hhodo_2y_pos_rawpamp_vs_pad 'HMS 2Y+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.2y.posAdcCounter H.hod.2y.posAdcPulseAmpRaw 10 0.5 10.5 410 0 4100 + +TH2F hhodo_1x_neg_rawpamp_vs_pad 'HMS 1X- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.1x.negAdcCounter H.hod.1x.negAdcPulseAmpRaw 16 0.5 16.5 410 0 4100 +TH2F hhodo_1y_neg_rawpamp_vs_pad 'HMS 1Y- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.1y.negAdcCounter H.hod.1y.negAdcPulseAmpRaw 10 0.5 10.5 410 0 4100 +TH2F hhodo_2x_neg_rawpamp_vs_pad 'HMS 2X- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.2x.negAdcCounter H.hod.2x.negAdcPulseAmpRaw 16 0.5 16.5 410 0 4100 +TH2F hhodo_2y_neg_rawpamp_vs_pad 'HMS 2Y- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' H.hod.2y.negAdcCounter H.hod.2y.negAdcPulseAmpRaw 10 0.5 10.5 410 0 4100 + +TH2F hhodo_1x_pos_rawptime_vs_pad 'HMS 1X+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.1x.posAdcCounter H.hod.1x.posAdcPulseTimeRaw 16 0.5 16.5 410 0 4100 +TH2F hhodo_1y_pos_rawptime_vs_pad 'HMS 1Y+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.1y.posAdcCounter H.hod.1y.posAdcPulseTimeRaw 10 0.5 10.5 410 0 4100 +TH2F hhodo_2x_pos_rawptime_vs_pad 'HMS 2X+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.2x.posAdcCounter H.hod.2x.posAdcPulseTimeRaw 16 0.5 16.5 410 0 4100 +TH2F hhodo_2y_pos_rawptime_vs_pad 'HMS 2Y+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.2y.posAdcCounter H.hod.2y.posAdcPulseTimeRaw 10 0.5 10.5 410 0 4100 + +TH2F hhodo_1x_neg_rawptime_vs_pad 'HMS 1X- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.1x.negAdcCounter H.hod.1x.negAdcPulseTimeRaw 16 0.5 16.5 410 0 4100 +TH2F hhodo_1y_neg_rawptime_vs_pad 'HMS 1Y- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.1y.negAdcCounter H.hod.1y.negAdcPulseTimeRaw 10 0.5 10.5 410 0 4100 +TH2F hhodo_2x_neg_rawptime_vs_pad 'HMS 2X- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.2x.negAdcCounter H.hod.2x.negAdcPulseTimeRaw 16 0.5 16.5 410 0 4100 +TH2F hhodo_2y_neg_rawptime_vs_pad 'HMS 2Y- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' H.hod.2y.negAdcCounter H.hod.2y.negAdcPulseTimeRaw 10 0.5 10.5 410 0 4100 + +TH2F hhodo_1x_pos_raw_tdc_time_vs_pad 'HMS 1X+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.1x.posTdcCounter H.hod.1x.posTdcTimeRaw 16 0.5 16.5 800 0 8000 +TH2F hhodo_1y_pos_raw_tdc_time_vs_pad 'HMS 1Y+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.1y.posTdcCounter H.hod.1y.posTdcTimeRaw 10 0.5 10.5 800 0 8000 +TH2F hhodo_2x_pos_raw_tdc_time_vs_pad 'HMS 2X+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.2x.posTdcCounter H.hod.2x.posTdcTimeRaw 16 0.5 16.5 800 0 8000 +TH2F hhodo_2y_pos_raw_tdc_time_vs_pad 'HMS 2Y+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.2y.posTdcCounter H.hod.2y.posTdcTimeRaw 10 0.5 10.5 800 0 8000 + +TH2F hhodo_1x_neg_raw_tdc_time_vs_pad 'HMS 1X- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.1x.negTdcCounter H.hod.1x.negTdcTimeRaw 16 0.5 16.5 800 0 8000 +TH2F hhodo_1y_neg_raw_tdc_time_vs_pad 'HMS 1Y- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.1y.negTdcCounter H.hod.1y.negTdcTimeRaw 10 0.5 10.5 800 0 8000 +TH2F hhodo_2x_neg_raw_tdc_time_vs_pad 'HMS 2X- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.2x.negTdcCounter H.hod.2x.negTdcTimeRaw 16 0.5 16.5 800 0 8000 +TH2F hhodo_2y_neg_raw_tdc_time_vs_pad 'HMS 2Y- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' H.hod.2y.negTdcCounter H.hod.2y.negTdcTimeRaw 10 0.5 10.5 800 0 8000 + + +TH2F hhodo_1x_pos_pi_vs_pad 'HMS 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.posAdcCounter H.hod.1x.posAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_1y_pos_pi_vs_pad 'HMS 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.posAdcCounter H.hod.1y.posAdcPulseInt 10 0.5 10.5 4000 0 40000 +TH2F hhodo_2x_pos_pi_vs_pad 'HMS 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.posAdcCounter H.hod.2x.posAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_2y_pos_pi_vs_pad 'HMS 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.posAdcCounter H.hod.2y.posAdcPulseInt 10 0.5 10.5 4000 0 40000 + +TH2F hhodo_1x_neg_pi_vs_pad 'HMS 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1x.negAdcCounter H.hod.1x.negAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_1y_neg_pi_vs_pad 'HMS 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.1y.negAdcCounter H.hod.1y.negAdcPulseInt 10 0.5 10.5 4000 0 40000 +TH2F hhodo_2x_neg_pi_vs_pad 'HMS 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2x.negAdcCounter H.hod.2x.negAdcPulseInt 16 0.5 16.5 4000 0 40000 +TH2F hhodo_2y_neg_pi_vs_pad 'HMS 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' H.hod.2y.negAdcCounter H.hod.2y.negAdcPulseInt 10 0.5 10.5 4000 0 40000 + + +TH2F hhodo_1x_pos_ped_vs_pad 'HMS 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.1x.posAdcCounter H.hod.1x.posAdcPed 16 0.5 16.5 100 0 1000 +TH2F hhodo_1y_pos_ped_vs_pad 'HMS 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.1y.posAdcCounter H.hod.1y.posAdcPed 10 0.5 10.5 100 0 1000 +TH2F hhodo_2x_pos_ped_vs_pad 'HMS 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.2x.posAdcCounter H.hod.2x.posAdcPed 16 0.5 16.5 100 0 1000 +TH2F hhodo_2y_pos_ped_vs_pad 'HMS 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.2y.posAdcCounter H.hod.2y.posAdcPed 10 0.5 10.5 100 0 1000 + +TH2F hhodo_1x_neg_ped_vs_pad 'HMS 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.1x.negAdcCounter H.hod.1x.negAdcPed 16 0.5 16.5 100 0 1000 +TH2F hhodo_1y_neg_ped_vs_pad 'HMS 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.1y.negAdcCounter H.hod.1y.negAdcPed 10 0.5 10.5 100 0 1000 +TH2F hhodo_2x_neg_ped_vs_pad 'HMS 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.2x.negAdcCounter H.hod.2x.negAdcPed 16 0.5 16.5 100 0 1000 +TH2F hhodo_2y_neg_ped_vs_pad 'HMS 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' H.hod.2y.negAdcCounter H.hod.2y.negAdcPed 10 0.5 10.5 100 0 1000 + + +TH2F hhodo_1x_pos_pamp_vs_pad 'HMS 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.1x.posAdcCounter H.hod.1x.posAdcPulseAmp 16 0.5 16.5 410 0 4100 +TH2F hhodo_1y_pos_pamp_vs_pad 'HMS 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.1y.posAdcCounter H.hod.1y.posAdcPulseAmp 10 0.5 10.5 410 0 4100 +TH2F hhodo_2x_pos_pamp_vs_pad 'HMS 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.2x.posAdcCounter H.hod.2x.posAdcPulseAmp 16 0.5 16.5 410 0 4100 +TH2F hhodo_2y_pos_pamp_vs_pad 'HMS 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.2y.posAdcCounter H.hod.2y.posAdcPulseAmp 10 0.5 10.5 410 0 4100 + +TH2F hhodo_1x_neg_pamp_vs_pad 'HMS 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.1x.negAdcCounter H.hod.1x.negAdcPulseAmp 16 0.5 16.5 410 0 4100 +TH2F hhodo_1y_neg_pamp_vs_pad 'HMS 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.1y.negAdcCounter H.hod.1y.negAdcPulseAmp 10 0.5 10.5 410 0 4100 +TH2F hhodo_2x_neg_pamp_vs_pad 'HMS 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.2x.negAdcCounter H.hod.2x.negAdcPulseAmp 16 0.5 16.5 410 0 4100 +TH2F hhodo_2y_neg_pamp_vs_pad 'HMS 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' H.hod.2y.negAdcCounter H.hod.2y.negAdcPulseAmp 10 0.5 10.5 410 0 4100 + +TH2F hhodo_1x_pos_tdc_time_vs_pad 'HMS 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.1x.posTdcCounter H.hod.1x.posTdcTime 16 0.5 16.5 200 -2000 0 +TH2F hhodo_1y_pos_tdc_time_vs_pad 'HMS 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.1y.posTdcCounter H.hod.1y.posTdcTime 10 0.5 10.5 200 -2000 0 +TH2F hhodo_2x_pos_tdc_time_vs_pad 'HMS 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.2x.posTdcCounter H.hod.2x.posTdcTime 16 0.5 16.5 200 -2000 0 +TH2F hhodo_2y_pos_tdc_time_vs_pad 'HMS 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.2y.posTdcCounter H.hod.2y.posTdcTime 10 0.5 10.5 200 -2000 0 + +TH2F hhodo_1x_neg_tdc_time_vs_pad 'HMS 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.1x.negTdcCounter H.hod.1x.negTdcTime 16 0.5 16.5 200 -2000 0 +TH2F hhodo_1y_neg_tdc_time_vs_pad 'HMS 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.1y.negTdcCounter H.hod.1y.negTdcTime 10 0.5 10.5 200 -2000 0 +TH2F hhodo_2x_neg_tdc_time_vs_pad 'HMS 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.2x.negTdcCounter H.hod.2x.negTdcTime 16 0.5 16.5 200 -2000 0 +TH2F hhodo_2y_neg_tdc_time_vs_pad 'HMS 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' H.hod.2y.negTdcCounter H.hod.2y.negTdcTime 10 0.5 10.5 200 -2000 0 + +TH1F hbetanottrack 'HMS beta (no track)' H.hod.betanotrack 100 -1.2 1.2 +TH1F hstarttime ' HMS starttime' H.hod.starttime 500 0 50 +TH1F hfptime ' HMS Focal plane time (all hits) ' H.hod.fpHitsTime 500 0 50 +TH1F hhodo_1x_fptime 'HMS 1X ; Focal plane time (ns); Counts' H.hod.1x.fptime 500 0 50 +TH1F hhodo_1y_fptime 'HMS 1Y ; Focal plane time (ns); Counts' H.hod.1y.fptime 500 0 50 +TH1F hhodo_2x_fptime 'HMS 2X ; Focal plane time (ns); Counts' H.hod.2x.fptime 500 0 50 +TH1F hhodo_2y_fptime 'HMS 2Y ; Focal plane time (ns); Counts' H.hod.2y.fptime 500 0 50 + + + diff --git a/DEF-files/HMS/HODO/hhodoana_cuts.def b/DEF-files/HMS/HODO/hhodoana_cuts.def new file mode 100644 index 00000000..3af34a5e --- /dev/null +++ b/DEF-files/HMS/HODO/hhodoana_cuts.def @@ -0,0 +1,13 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 diff --git a/DEF-files/HMS/RASTER/hms_raster_simple.def b/DEF-files/HMS/RASTER/hms_raster_simple.def new file mode 100644 index 00000000..40b70735 --- /dev/null +++ b/DEF-files/HMS/RASTER/hms_raster_simple.def @@ -0,0 +1,20 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block T.hms.* +# 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.hms.hFRXA_adcPulseIntRaw*(1./4096.)/25. +formula FRXB_V T.hms.hFRXB_adcPulseIntRaw*(1./4096.)/25. +formula FRYA_V T.hms.hFRYA_adcPulseIntRaw*(1./4096.)/25. +formula FRYB_V T.hms.hFRYB_adcPulseIntRaw*(1./4096.)/25. +TH1F hFRXA 'HMS FRXA; FRXA RAW ADC (chan); Counts' T.hms.hFRXA_adcPulseIntRaw 1000 0 100000 +TH1F hFRXA_V 'HMS FRXA; FRXA RAW ADC (Volts); Counts' FRXA_V 1000 0 1.0 +TH1F hFRXB 'HMS FRXB; FRXB RAW ADC (chan); Counts' T.hms.hFRXB_adcPulseIntRaw 1000 0 100000 +TH1F hFRXB_V 'HMS FRXB; FRXB RAW ADC (Volts); Counts' FRXB_V 1000 0 1.0 +TH1F hFRYA 'HMS FRYA; FRYA RAW ADC (chan); Counts' T.hms.hFRYA_adcPulseIntRaw 1000 0 100000 +TH1F hFRYA_V 'HMS FRYA; FRYA RAW ADC (Volts); Counts' FRYA_V 1000 0 1.0 +TH1F hFRYB 'HMS FRYB; FRYB RAW ADC (chan); Counts' T.hms.hFRYB_adcPulseIntRaw 1000 0 100000 +TH1F hFRYB_V 'HMS FRYB; FRYB RAW ADC (Volts); Counts' FRYB_V 1000 0 1.0 +TH2F hFRA_XvsY 'HMSFRA_XvsY ; FRXA RAW ADC (Volts); FRYA RAW ADC (Volts)' FRXA_V FRYA_V 1000 0 1.0 1000 0 1.0 +TH2F hFRB_XvsY 'HMSFRB_XvsY ; FRXB RAW ADC (Volts); FRYB RAW ADC (Volts)' FRXB_V FRYB_V 1000 0 1.0 1000 0 1.0 + diff --git a/DEF-files/HMS/RASTER/hms_raster_simple_cuts.def b/DEF-files/HMS/RASTER/hms_raster_simple_cuts.def new file mode 100644 index 00000000..3af34a5e --- /dev/null +++ b/DEF-files/HMS/RASTER/hms_raster_simple_cuts.def @@ -0,0 +1,13 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 diff --git a/DEF-files/HMS/TRIG/htrigana.def b/DEF-files/HMS/TRIG/htrigana.def new file mode 100644 index 00000000..0ee87d78 --- /dev/null +++ b/DEF-files/HMS/TRIG/htrigana.def @@ -0,0 +1,115 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block T.hms.* + +TH1F htrig_h1x_tdc 'HMS h1X TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h1X_tdcTimeRaw 1500 0 1500 +TH1F htrig_h1y_tdc 'HMS h1Y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h1Y_tdcTimeRaw 1500 0 1500 +TH1F htrig_h2x_tdc 'HMS h2X TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h2X_tdcTimeRaw 1500 0 1500 +TH1F htrig_h2y_tdc 'HMS h2Y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h2Y_tdcTimeRaw 1500 0 1500 + +TH1F htrig_h1T_tdc 'HMS h1X/h1Y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h1T_tdcTimeRaw 1500 0 1500 +TH1F htrig_h2T_tdc 'HMS h2X/h2Y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.h2T_tdcTimeRaw 1500 0 1500 + +TH1F htrig_hT1_tdc 'HMS h1X/h1Y/h2X/h2Y Coincidence TDC Time (Slot 2); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hT1_tdcTimeRaw 1500 0 1500 +TH1F htrig_hT2_tdc 'HMS h1X/h1Y/h2X/h2Y Coincidence TDC Time (Slot 20); Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hT2_tdcTimeRaw 1500 0 1500 + +TH1F htrig_hdc_ref1 'HMS HDC Reference Time 1; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDCREF1_tdcTimeRaw 15000 0 15000 +TH1F htrig_hdc_ref2 'HMS HDC Reference Time 2; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDCREF2_tdcTimeRaw 15000 0 15000 +TH1F htrig_hdc_ref3 'HMS HDC Reference Time 3; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDCREF3_tdcTimeRaw 15000 0 15000 +TH1F htrig_hdc_ref4 'HMS HDC Reference Time 4; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDCREF4_tdcTimeRaw 15000 0 15000 + +TH1F htrig_hasum_adc_rawpped 'HMS hAsum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPedRaw 500 0 5000 +TH1F htrig_hasum_adc_rawpi 'HMS hAsum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPulseIntRaw 4000 0 40000 +TH1F htrig_hasum_adc_rawpamp 'HMS hAsum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPulseAmpRaw 410 0 4100 +TH1F htrig_hasum_adc_rawptime 'HMS hAsum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPulseTimeRaw 2000 0 20000 +TH1F htrig_hasum_rawtdc 'HMS hAsum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hASUM_tdcTimeRaw 4000 0 40000 + +TH1F htrig_hasum_adc_pped 'HMS hAsum Pulse Pedestal; Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPed 500 0 5000 +TH1F htrig_hasum_adc_pi 'HMS hAsum Pulse Integral; Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPulseInt 4000 0 40000 +TH1F htrig_hasum_adc_pamp 'HMS hAsum Pulse Amplitude; Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hASUM_adcPulseAmp 410 0 4100 +TH1F htrig_hasum_tdc 'HMS hAsum TDC Time; TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hASUM_tdcTime 4000 0 40000 + +TH1F htrig_hbsum_adc_rawpped 'HMS hBsum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPedRaw 500 0 5000 +TH1F htrig_hbsum_adc_rawpi 'HMS hBsum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPulseIntRaw 4000 0 40000 +TH1F htrig_hbsum_adc_rawpamp 'HMS hBsum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPulseAmpRaw 410 0 4100 +TH1F htrig_hbsum_adc_rawptime 'HMS hBsum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPulseTimeRaw 2000 0 20000 +TH1F htrig_hbsum_rawtdc 'HMS hBsum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hBSUM_tdcTimeRaw 4000 0 40000 + +TH1F htrig_hbsum_adc_pped 'HMS hBsum Pulse Pedestal; Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPed 500 0 5000 +TH1F htrig_hbsum_adc_pi 'HMS hBsum Pulse Integral; Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hbsum_adc_pamp 'HMS hBsum Pulse Amplitude; Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hBSUM_adcPulseAmp 410 0 4100 +TH1F htrig_hbsum_tdc 'HMS hBsum TDC Time; TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hBSUM_tdcTime 4000 0 40000 + +TH1F htrig_hcsum_adc_rawpped 'HMS hCsum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPedRaw 500 0 5000 +TH1F htrig_hcsum_adc_rawpi 'HMS hCsum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPulseIntRaw 4000 0 40000 +TH1F htrig_hcsum_adc_rawpamp 'HMS hCsum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPulseAmpRaw 410 0 4100 +TH1F htrig_hcsum_adc_rawptime 'HMS hCsum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPulseTimeRaw 2000 0 20000 +TH1F htrig_hcsum_rawtdc 'HMS hCsum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hCSUM_tdcTimeRaw 4000 0 40000 + +TH1F htrig_hcsum_adc_pped 'HMS hCsum Pulse Pedestal; Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPed 500 0 5000 +TH1F htrig_hcsum_adc_pi 'HMS hCsum Pulse Integral; Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hcsum_adc_pamp 'HMS hCsum Pulse Amplitude; Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hCSUM_adcPulseAmp 410 0 4100 +TH1F htrig_hcsum_tdc 'HMS hCsum TDC Time; TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hCSUM_tdcTime 4000 0 40000 + +TH1F htrig_hdsum_adc_rawpped 'HMS hDsum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPedRaw 500 0 5000 +TH1F htrig_hdsum_adc_rawpi 'HMS hDsum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPulseIntRaw 4000 0 40000 +TH1F htrig_hdsum_adc_rawpamp 'HMS hDsum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPulseAmpRaw 410 0 4100 +TH1F htrig_hdsum_adc_rawptime 'HMS hDsum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPulseTimeRaw 2000 0 20000 +TH1F htrig_hdsum_rawtdc 'HMS hDsum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDSUM_tdcTimeRaw 4000 0 40000 + +TH1F htrig_hdsum_adc_pped 'HMS hDsum Pulse Pedestal; Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPed 500 0 5000 +TH1F htrig_hdsum_adc_pi 'HMS hDsum Pulse Integral; Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hdsum_adc_pamp 'HMS hDsum Pulse Amplitude; Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hDSUM_adcPulseAmp 410 0 4100 +TH1F htrig_hdsum_tdc 'HMS hDsum TDC Time; TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hDSUM_tdcTime 4000 0 40000 + +TH1F htrig_hpreShwr_adc_rawpped 'HMS Pre-Shower Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPedRaw 500 0 5000 +TH1F htrig_hpreShwr_adc_rawpi 'HMS Pre-Shower Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPulseIntRaw 4000 0 40000 +TH1F htrig_hpreShwr_adc_rawpamp 'HMS Pre-Shower Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPulseAmpRaw 410 0 4100 +TH1F htrig_hpreShwr_adc_rawptime 'HMS Pre-Shower Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPulseTimeRaw 2000 0 20000 +TH1F htrig_hpreShwr_rawtdc 'HMS Pre-Shower Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hPSHWR_tdcTimeRaw 4000 0 40000 + +TH1F htrig_hpreShwr_adc_pped 'HMS Pre-Shower Pulse Pedestal; Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPed 500 0 5000 +TH1F htrig_hpreShwr_adc_pi 'HMS Pre-Shower Pulse Integral; Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPulseInt 4000 0 40000 +TH1F htrig_hpreShwr_adc_pamp 'HMS Pre-Shower Pulse Amplitude; Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hPSHWR_adcPulseAmp 410 0 4100 +TH1F htrig_hpreShwr_tdc 'HMS Pre-Shower TDC Time; TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hPSHWR_tdcTime 4000 0 40000 + +TH1F htrig_hpreShwrLow_tdc 'HMS hpreShwrLow TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hPSHWRLO_tdcTimeRaw 4000 0 40000 +TH1F htrig_hpreShwrHigh_tdc 'HMS hpreShwrHigh TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hPSHWRHI_tdcTimeRaw 4000 0 40000 + +TH1F htrig_hshwr_adc_rawpped 'HMS Shower Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPedRaw 500 0 5000 +TH1F htrig_hshwr_adc_rawpi 'HMS Shower Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPulseIntRaw 4000 0 40000 +TH1F htrig_hshwr_adc_rawpamp 'HMS Shower Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPulseAmpRaw 410 0 4100 +TH1F htrig_hshwr_adc_rawptime 'HMS Shower Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPulseTimeRaw 2000 0 20000 +TH1F htrig_hshwr_rawtdc 'HMS Shower Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hSHWR_tdcTimeRaw 4000 0 40000 + +TH1F htrig_hshwr_adc_pped 'HMS Shower Pulse Pedestal; Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPed 500 0 5000 +TH1F htrig_hshwr_adc_pi 'HMS Shower Pulse Integral; Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPulseInt 4000 0 40000 +TH1F htrig_hshwr_adc_pamp 'HMS Shower Pulse Amplitude; Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hSHWR_adcPulseAmp 410 0 4100 +TH1F htrig_hshwr_tdc 'HMS Shower TDC Time; TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hSHWR_tdcTime 4000 0 40000 + +TH1F htrig_hcersum_adc_rawpped 'HMS Cherenkov Sum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPedRaw 500 0 5000 +TH1F htrig_hcersum_adc_rawpi 'HMS Cherenkov Sum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPulseIntRaw 4000 0 40000 +TH1F htrig_hcersum_adc_rawpamp 'HMS Cherenkov Sum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPulseAmpRaw 410 0 4100 +TH1F htrig_hcersum_adc_rawptime 'HMS Cherenkov Sum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPulseTimeRaw 2000 0 20000 +TH1F htrig_hcersum_rawtdc 'HMS Cherenkov Sum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hCERSUM_tdcTimeRaw 4000 0 40000 + +TH1F htrig_hcersum_adc_pped 'HMS Cherenkov Sum Pulse Pedestal; Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPed 500 0 5000 +TH1F htrig_hcersum_adc_pi 'HMS Cherenkov Sum Pulse Integral; Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPulseInt 4000 0 40000 +TH1F htrig_hcersum_adc_pamp 'HMS Cherenkov Sum Pulse Amplitude; Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hCERSUM_adcPulseAmp 410 0 4100 +TH1F htrig_hcersum_tdc 'HMS Cherenkov Sum TDC Time; TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hCERSUM_tdcTime 4000 0 40000 + +TH1F htrig_haersum_adc_rawpped 'HMS Aerogel Sum Raw Pulse Pedestal; Raw Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPedRaw 500 0 5000 +TH1F htrig_haersum_adc_rawpi 'HMS Aerogel Sum Raw Pulse Integral; Raw Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPulseIntRaw 4000 0 40000 +TH1F htrig_haersum_adc_rawpamp 'HMS Aerogel Sum Raw Pulse Amplitude; Raw Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPulseAmpRaw 410 0 4100 +TH1F htrig_haersum_adc_rawptime 'HMS Aerogel Sum Raw Pulse Time; Raw Pulse Time (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPulseTimeRaw 2000 0 20000 +TH1F htrig_haersum_rawtdc 'HMS Aerogel Sum Raw TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hAERSUM_tdcTimeRaw 4000 0 40000 + +TH1F htrig_haersum_adc_pped 'HMS Aerogel Sum Pulse Pedestal; Pulse Pedestal (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPed 500 0 5000 +TH1F htrig_haersum_adc_pi 'HMS Aerogel Sum Pulse Integral; Pulse Integral (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPulseInt 4000 0 40000 +TH1F htrig_haersum_adc_pamp 'HMS Aerogel Sum Pulse Amplitude; Pulse Amplitude (ADC Units); Counts / 10 ADC Units;' T.hms.hAERSUM_adcPulseAmp 410 0 4100 +TH1F htrig_haersum_tdc 'HMS Aerogel Sum TDC Time; TDC Time (TDC Units); Counts / 10 TDC Units;' T.hms.hAERSUM_tdcTime 4000 0 40000 + + + + + diff --git a/DEF-files/HMS/TRIG/htrigana_cuts.def b/DEF-files/HMS/TRIG/htrigana_cuts.def new file mode 100644 index 00000000..3af34a5e --- /dev/null +++ b/DEF-files/HMS/TRIG/htrigana_cuts.def @@ -0,0 +1,13 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 diff --git a/DEF-files/SHMS/AERO/paeroana.def b/DEF-files/SHMS/AERO/paeroana.def new file mode 100644 index 00000000..9cff8d08 --- /dev/null +++ b/DEF-files/SHMS/AERO/paeroana.def @@ -0,0 +1,25 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block P.aero.* +block T.shms.* + +TH1F paero_neg_occu 'SHMS Aero- Occupancy; Counter Number; Number of Entries' P.aero.negAdcCounter 7 0.5 7.5 +TH1F paero_pos_occu 'SHMS Aero+ Occupancy; Counter Number; Number of Entries' P.aero.posAdcCounter 7 0.5 7.5 + +TH2F paero_neg_rawped_vs_cntr 'SHMS Aero- Raw Pulse Pedestal vs. Counter Number; Counter Number; Raw Pulse Pedestal / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPedRaw 7 0.5 7.5 1000 0 10000 +TH2F paero_neg_rawpi_vs_cntr 'SHMS Aero- Raw Pulse Integral vs. Counter Number; Counter Number; Raw Pulse Integral / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseIntRaw 7 0.5 7.5 4000 0 40000 +TH2F paero_neg_rawamp_vs_cntr 'SHMS Aero- Raw Pulse Amplitude vs. Counter Number; Counter Number; Raw Pulse Amplitude / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseAmpRaw 7 0.5 7.5 410 0 4100 +TH2F paero_neg_rawptime_vs_cntr 'SHMS Aero- Raw Pulse Time vs. Counter Number; Counter Number; Raw Pulse Time / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseTimeRaw 7 0.5 7.5 1000 0 10000 + +TH2F paero_pos_rawped_vs_cntr 'SHMS Aero+ Raw Pulse Pedestal vs. Counter Number; Counter Number; Raw Pulse Pedestal / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPedRaw 7 0.5 7.5 1000 0 10000 +TH2F paero_pos_rawpi_vs_cntr 'SHMS Aero+ Raw Pulse Integral vs. Counter Number; Counter Number; Raw Pulse Integral / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseIntRaw 7 0.5 7.5 4000 0 40000 +TH2F paero_pos_rawamp_vs_cntr 'SHMS Aero+ Raw Pulse Amplitude vs. Counter Number; Counter Number; Raw Pulse Amplitude / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseAmpRaw 7 0.5 7.5 410 0 4100 +TH2F paero_pos_rawptime_vs_cntr 'SHMS Aero+ Raw Pulse Time vs. Counter Number; Counter Number; Raw Pulse Time / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseTimeRaw 7 0.5 7.5 1000 0 10000 + +TH2F paero_neg_ped_vs_cntr 'SHMS Aero- Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPed 7 0.5 7.5 1000 0 10000 +TH2F paero_neg_pi_vs_cntr 'SHMS Aero- Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseInt 7 0.5 7.5 4000 0 40000 +TH2F paero_neg_amp_vs_cntr 'SHMS Aero- Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseAmp 7 0.5 7.5 410 0 4100 + +TH2F paero_pos_ped_vs_cntr 'SHMS Aero+ Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPed 7 0.5 7.5 1000 0 10000 +TH2F paero_pos_pi_vs_cntr 'SHMS Aero+ Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseInt 7 0.5 7.5 4000 0 40000 +TH2F paero_pos_amp_vs_cntr 'SHMS Aero+ Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseAmp 7 0.5 7.5 410 0 4100 diff --git a/DEF-files/SHMS/AERO/paeroana_cuts.def b/DEF-files/SHMS/AERO/paeroana_cuts.def new file mode 100644 index 00000000..5add84a3 --- /dev/null +++ b/DEF-files/SHMS/AERO/paeroana_cuts.def @@ -0,0 +1,14 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 + diff --git a/DEF-files/SHMS/CAL/pcalana.def b/DEF-files/SHMS/CAL/pcalana.def new file mode 100644 index 00000000..b2d2fb78 --- /dev/null +++ b/DEF-files/SHMS/CAL/pcalana.def @@ -0,0 +1,34 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block P.cal.* + +TH1F pcal_prshwr_neg_occu 'SHMS Preshower- Occupancy; Block Number; Number of Entries' P.cal.pr.negAdcCounter 14 0.5 14.5 +TH1F pcal_prshwr_pos_occu 'SHMS Preshower+ Occupancy; Block Number; Number of Entries' P.cal.pr.posAdcCounter 14 0.5 14.5 +TH1F pcal_shwr_occu 'SHMS Shower Occupancy; Block Number; Number of Entries' P.cal.fly.adcCounter 224 0.5 224.5 + +TH2F pcal_prshwr_neg_rawped_blk 'SHMS Preshower- Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPedRaw 14 0.5 14.5 400 0 4000 +TH2F pcal_prshwr_neg_rawpi_blk 'SHMS Preshower- Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseIntRaw 14 0.5 14.5 4000 0 40000 +TH2F pcal_prshwr_neg_rawamp_blk 'SHMS Preshower- Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseAmpRaw 14 0.5 14.5 410 0 4100 +TH2F pcal_prshwr_neg_rawptime_blk 'SHMS Preshower- Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseTimeRaw 14 0.5 14.5 4000 0 40000 + +TH2F pcal_prshwr_pos_rawped_blk 'SHMS Preshower+ Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPedRaw 14 0.5 14.5 400 0 4000 +TH2F pcal_prshwr_pos_rawpi_blk 'SHMS Preshower+ Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseIntRaw 14 0.5 14.5 4000 0 40000 +TH2F pcal_prshwr_pos_rawamp_blk 'SHMS Preshower+ Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseAmpRaw 14 0.5 14.5 410 0 4100 +TH2F pcal_prshwr_pos_rawptime_blk 'SHMS Preshower+ Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseTimeRaw 14 0.5 14.5 4000 0 40000 + +TH2F pcal_pshwr_neg_ped_blk 'SHMS Preshower- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPed 14 0.5 14.5 400 0 4000 +TH2F pcal_prshwr_neg_pi_blk 'SHMS Preshower- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F pcal_prshwr_neg_amp_blk 'SHMS Preshower- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseAmp 14 0.5 14.5 410 0 4100 + +TH2F pcal_prshwr_pos_ped_blk 'SHMS Preshower+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPed 14 0.5 14.5 400 0 4000 +TH2F pcal_prshwr_pos_pi_blk 'SHMS Preshower+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F pcal_prshwr_pos_amp_blk 'SHMS Preshower+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseAmp 14 0.5 14.5 410 0 4100 + +TH2F pcal_shwr_rawped_blk 'SHMS Shower Raw Pulse Pedestal vs. Block Number; Block Number; Raw Pulse Pedestal / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPedRaw 224 0.5 224.5 400 0 4000 +TH2F pcal_shwr_rawpi_blk 'SHMS Shower Raw Pulse Integral vs. Block Number; Block Number; Raw Pulse Integral / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseIntRaw 224 0.5 224.5 4000 0 40000 +TH2F pcal_shwr_rawamp_blk 'SHMS Shower Raw Pulse Amplitude vs. Block Number; Block Number; Raw Pulse Amplitude / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseAmpRaw 224 0.5 224.5 410 0 4100 +TH2F pcal_shwr_rawptime_blk 'SHMS Shower Raw Pulse Time vs. Block Number; Block Number; Raw Pulse Time / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseTimeRaw 224 0.5 224.5 4000 0 40000 + +TH2F pcal_shwr_ped_blk 'SHMS Shower Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPed 224 0.5 224.5 400 0 4000 +TH2F pcal_shwr_pi_blk 'SHMS Shower Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseInt 224 0.5 224.5 4000 0 40000 +TH2F pcal_shwr_amp_blk 'SHMS Shower Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseAmp 224 0.5 224.5 410 0 4100 \ No newline at end of file diff --git a/DEF-files/SHMS/CAL/pcalana_cuts.def b/DEF-files/SHMS/CAL/pcalana_cuts.def new file mode 100644 index 00000000..3af34a5e --- /dev/null +++ b/DEF-files/SHMS/CAL/pcalana_cuts.def @@ -0,0 +1,13 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 diff --git a/DEF-files/SHMS/DC/pdcana.def b/DEF-files/SHMS/DC/pdcana.def index e08edbfb..8488e1b4 100644 --- a/DEF-files/SHMS/DC/pdcana.def +++ b/DEF-files/SHMS/DC/pdcana.def @@ -2,62 +2,78 @@ # block P.dc.* -TH1F pdc1u1_wm 'PDC 1U1 Wiremap' P.dc.1u1.wirenum 107 0.5 107.5 -TH1F pdc1u2_wm 'PDC 1U2 Wiremap' P.dc.1u2.wirenum 107 0.5 107.5 -TH1F pdc1x1_wm 'PDC 1X1 Wiremap' P.dc.1x1.wirenum 79 0.5 79.5 -TH1F pdc1x2_wm 'PDC 1X2 Wiremap' P.dc.1x2.wirenum 79 0.5 79.5 -TH1F pdc1v1_wm 'PDC 1V1 Wiremap' P.dc.1v1.wirenum 107 0.5 107.5 -TH1F pdc1v2_wm 'PDC 1V2 Wiremap' P.dc.1v2.wirenum 107 0.5 107.5 - -TH1F pdc2v2_wm 'PDC 2V2 Wiremap' P.dc.2v2.wirenum 107 0.5 107.5 -TH1F pdc2v1_wm 'PDC 2V1 Wiremap' P.dc.2v1.wirenum 107 0.5 107.5 -TH1F pdc2x2_wm 'PDC 2X2 Wiremap' P.dc.2x2.wirenum 79 0.5 79.5 -TH1F pdc2x1_wm 'PDC 2X1 Wiremap' P.dc.2x1.wirenum 79 0.5 79.5 -TH1F pdc2u2_wm 'PDC 2U2 Wiremap' P.dc.2u2.wirenum 107 0.5 107.5 -TH1F pdc2u2_wm 'PDC 2U1 Wiremap' P.dc.2u1.wirenum 107 0.5 107.5 - -TH2F pdc1u1_wire_num_vs_raw_tdc 'PDC 1U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1u1.wirenum P.dc.1u1.rawtdc 107 0.5 107.5 5000 0 50000 -TH2F pdc1u2_wire_num_vs_raw_tdc 'PDC 1U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1u2.wirenum P.dc.1u2.rawtdc 107 0.5 107.5 5000 0 50000 -TH2F pdc1x1_wire_num_vs_raw_tdc 'PDC 1X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1x1.wirenum P.dc.1x1.rawtdc 79 0.5 79.5 5000 0 50000 -TH2F pdc1x2_wire_num_vs_raw_tdc 'PDC 1X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1x2.wirenum P.dc.1x2.rawtdc 79 0.5 79.5 5000 0 50000 -TH2F pdc1v1_wire_num_vs_raw_tdc 'PDC 1V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1v1.wirenum P.dc.1v1.rawtdc 107 0.5 107.5 5000 0 50000 -TH2F pdc1v2_wire_num_vs_raw_tdc 'PDC 1V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1v2.wirenum P.dc.1v2.rawtdc 107 0.5 107.5 5000 0 50000 - -TH2F pdc2v2_wire_num_vs_raw_tdc 'PDC 2V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2v2.wirenum P.dc.2v2.rawtdc 107 0.5 107.5 5000 0 50000 -TH2F pdc2v1_wire_num_vs_raw_tdc 'PDC 2V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2v1.wirenum P.dc.2v1.rawtdc 107 0.5 107.5 5000 0 50000 -TH2F pdc2x2_wire_num_vs_raw_tdc 'PDC 2X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2x2.wirenum P.dc.2x2.rawtdc 79 0.5 79.5 5000 0 50000 -TH2F pdc2x1_wire_num_vs_raw_tdc 'PDC 2X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2x1.wirenum P.dc.2x1.rawtdc 79 0.5 79.5 5000 0 50000 -TH2F pdc2u2_wire_num_vs_raw_tdc 'PDC 2U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2u2.wirenum P.dc.2u2.rawtdc 107 0.5 107.5 5000 0 50000 -TH2F pdc2u1_wire_num_vs_raw_tdc 'PDC 2U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2u1.wirenum P.dc.2u1.rawtdc 107 0.5 107.5 5000 0 50000 - -TH2F pdc1u1_wire_num_vs_tdc_time 'PDC 1U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1u1.wirenum P.dc.1u1.time 107 0.5 107.5 6000 -1000 5000 -TH2F pdc1u2_wire_num_vs_tdc_time 'PDC 1U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1u2.wirenum P.dc.1u2.time 107 0.5 107.5 6000 -1000 5000 -TH2F pdc1x1_wire_num_vs_tdc_time 'PDC 1X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1x1.wirenum P.dc.1x1.time 79 0.5 79.5 6000 -1000 5000 -TH2F pdc1x2_wire_num_vs_tdc_time 'PDC 1X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1x2.wirenum P.dc.1x2.time 79 0.5 79.5 6000 -1000 5000 -TH2F pdc1v1_wire_num_vs_tdc_time 'PDC 1V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1v1.wirenum P.dc.1v1.time 107 0.5 107.5 6000 -1000 5000 -TH2F pdc1v2_wire_num_vs_tdc_time 'PDC 1V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.1v2.wirenum P.dc.1v2.time 107 0.5 107.5 6000 -1000 5000 - -TH2F pdc2v2_wire_num_vs_tdc_time 'PDC 2V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2v2.wirenum P.dc.2v2.time 107 0.5 107.5 6000 -1000 5000 -TH2F pdc2v1_wire_num_vs_tdc_time 'PDC 2V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2v1.wirenum P.dc.2v1.time 107 0.5 107.5 6000 -1000 5000 -TH2F pdc2x2_wire_num_vs_tdc_time 'PDC 2X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2x2.wirenum P.dc.2x2.time 79 0.5 79.5 6000 -1000 5000 -TH2F pdc2x1_wire_num_vs_tdc_time 'PDC 2X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2x1.wirenum P.dc.2x1.time 79 0.5 79.5 6000 -1000 5000 -TH2F pdc2u2_wire_num_vs_tdc_time 'PDC 2U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2u2.wirenum P.dc.2u2.time 107 0.5 107.5 6000 -1000 5000 -TH2F pdc2u1_wire_num_vs_tdc_time 'PDC 2U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (ns)' P.dc.2u1.wirenum P.dc.2u1.time 107 0.5 107.5 6000 -1000 5000 - -TH2F pdc1u1_wire_num_vs_ddist 'PDC 1U1 Wiremap vs. Raw TDC; 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_wire_num_vs_ddist 'PDC 1U2 Wiremap vs. Raw TDC; 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_wire_num_vs_ddist 'PDC 1X1 Wiremap vs. Raw TDC; 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_wire_num_vs_ddist 'PDC 1X2 Wiremap vs. Raw TDC; 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_wire_num_vs_ddist 'PDC 1V1 Wiremap vs. Raw TDC; 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_wire_num_vs_ddist 'PDC 1V2 Wiremap vs. Raw TDC; 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_wire_num_vs_ddist 'PDC 2U2 Wiremap vs. Raw TDC; 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_wire_num_vs_ddist 'PDC 2U1 Wiremap vs. Raw TDC; 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_wire_num_vs_ddist 'PDC 2X2 Wiremap vs. Raw TDC; 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_wire_num_vs_ddist 'PDC 2X1 Wiremap vs. Raw TDC; 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_wire_num_vs_ddist 'PDC 2V2 Wiremap vs. Raw TDC; 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_wire_num_vs_ddist 'PDC 2V1 Wiremap vs. Raw TDC; Wire Number; Drift Distance (cm)' P.dc.2v1.wirenum P.dc.2v1.dist 107 0.5 107.5 300 -0.1 0.6 +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 + +TH2F pdc1u1_wirenum_vs_raw_tdc 'PDC 1U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1u1.wirenum P.dc.1u1.rawtdc 107 0.5 107.5 5000 -25000 25000 +TH2F pdc1u2_wirenum_vs_raw_tdc 'PDC 1U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1u2.wirenum P.dc.1u2.rawtdc 107 0.5 107.5 5000 -25000 25000 +TH2F pdc1x1_wirenum_vs_raw_tdc 'PDC 1X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1x1.wirenum P.dc.1x1.rawtdc 79 0.5 79.5 5000 -25000 25000 +TH2F pdc1x2_wirenum_vs_raw_tdc 'PDC 1X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1x2.wirenum P.dc.1x2.rawtdc 79 0.5 79.5 5000 -25000 25000 +TH2F pdc1v1_wirenum_vs_raw_tdc 'PDC 1V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1v1.wirenum P.dc.1v1.rawtdc 107 0.5 107.5 5000 -25000 25000 +TH2F pdc1v2_wirenum_vs_raw_tdc 'PDC 1V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.1v2.wirenum P.dc.1v2.rawtdc 107 0.5 107.5 5000 -25000 25000 + +TH2F pdc2v2_wirenum_vs_raw_tdc 'PDC 2V2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2v2.wirenum P.dc.2v2.rawtdc 107 0.5 107.5 5000 -25000 25000 +TH2F pdc2v1_wirenum_vs_raw_tdc 'PDC 2V1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2v1.wirenum P.dc.2v1.rawtdc 107 0.5 107.5 5000 -25000 25000 +TH2F pdc2x2_wirenum_vs_raw_tdc 'PDC 2X2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2x2.wirenum P.dc.2x2.rawtdc 79 0.5 79.5 5000 -25000 25000 +TH2F pdc2x1_wirenum_vs_raw_tdc 'PDC 2X1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2x1.wirenum P.dc.2x1.rawtdc 79 0.5 79.5 5000 -25000 25000 +TH2F pdc2u2_wirenum_vs_raw_tdc 'PDC 2U2 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2u2.wirenum P.dc.2u2.rawtdc 107 0.5 107.5 5000 -25000 25000 +TH2F pdc2u1_wirenum_vs_raw_tdc 'PDC 2U1 Wiremap vs. Raw TDC; Wire Number; Raw TDC Value (clicks)' P.dc.2u1.wirenum P.dc.2u1.rawtdc 107 0.5 107.5 5000 -25000 25000 + +TH2F pdc1u1_wirenum_vs_tdc 'SHMS DC 1U1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1u1.wirenum P.dc.1u1.time 107 0.5 107.5 500 0 500 +TH2F pdc1u2_wirenum_vs_tdc 'SHMS DC 1U2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1u2.wirenum P.dc.1u2.time 107 0.5 107.5 500 0 500 +TH2F pdc1x1_wirenum_vs_tdc 'SHMS DC 1X1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1x1.wirenum P.dc.1x1.time 79 0.5 79.5 500 0 500 +TH2F pdc1x2_wirenum_vs_tdc 'SHMS DC 1X2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1x2.wirenum P.dc.1x2.time 79 0.5 79.5 500 0 500 +TH2F pdc1v1_wirenum_vs_tdc 'SHMS DC 1V1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1v1.wirenum P.dc.1v1.time 107 0.5 107.5 500 0 500 +TH2F pdc1v2_wirenum_vs_tdc 'SHMS DC 1V2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.1v2.wirenum P.dc.1v2.time 107 0.5 107.5 500 0 500 + +TH2F pdc2v2_wirenum_vs_tdc 'SHMS DC 2V2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2v2.wirenum P.dc.2v2.time 107 0.5 107.5 500 0 500 +TH2F pdc2v1_wirenum_vs_tdc 'SHMS DC 2V1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2v1.wirenum P.dc.2v1.time 107 0.5 107.5 500 0 500 +TH2F pdc2x2_wirenum_vs_tdc 'SHMS DC 2X2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2x2.wirenum P.dc.2x2.time 79 0.5 79.5 500 0 500 +TH2F pdc2x1_wirenum_vs_tdc 'SHMS DC 2X1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2x1.wirenum P.dc.2x1.time 79 0.5 79.5 500 0 500 +TH2F pdc2u2_wirenum_vs_tdc 'SHMS DC 2U2 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2u2.wirenum P.dc.2u2.time 107 0.5 107.5 500 0 500 +TH2F pdc2u1_wirenum_vs_tdc 'SHMS DC 2U1 Wire Number vs. TDC; Wire Number; TDC Value (ns)' P.dc.2u1.wirenum P.dc.2u1.time 107 0.5 107.5 500 0 500 + +TH2F pdc1u1_wirenum_vs_ddist 'PDC 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 'PDC 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 'PDC 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 'PDC 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 'PDC 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 'PDC 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 'PDC 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 'PDC 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 'PDC 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 'PDC 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 'PDC 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 'PDC 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 + +TH2F pdc1u1_wirenum_vs_resid 'SHMS 1U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u1.wirenum P.dc.residual[0] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1u2_wirenum_vs_resid 'SHMS 1U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u2.wirenum P.dc.residual[1] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1x1_wirenum_vs_resid 'SHMS 1X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x1.wirenum P.dc.residual[2] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc1x2_wirenum_vs_resid 'SHMS 1X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x2.wirenum P.dc.residual[3] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc1v1_wirenum_vs_resid 'SHMS 1V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v1.wirenum P.dc.residual[4] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1v2_wirenum_vs_resid 'SHMS 1V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v2.wirenum P.dc.residual[5] 107 0.5 107.5 200 -1.0 1.0 + +TH2F pdc2v2_wirenum_vs_resid 'SHMS 2V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v2.wirenum P.dc.residual[6] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2v1_wirenum_vs_resid 'SHMS 2V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v1.wirenum P.dc.residual[7] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2x2_wirenum_vs_resid 'SHMS 2X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x2.wirenum P.dc.residual[8] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc2x1_wirenum_vs_resid 'SHMS 2X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x1.wirenum P.dc.residual[9] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc2u2_wirenum_vs_resid 'SHMS 2U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u2.wirenum P.dc.residual[10] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2u1_wirenum_vs_resid 'SHMS 2U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u1.wirenum P.dc.residual[11] 107 0.5 107.5 200 -1.0 1.0 + +TH2F pdc_xfp_vs_yxp 'SHMS DC Xfp vs Yxp; Yfp (cm) / 1 mm; Xfp (cm) / 1 mm' P.dc.y P.dc.x 1000 -50 50 1000 -50 50 +TH2F pdc_xfpp_vs_yxpp 'SHMS DC Xfpp vs Yxpp; Yfpp; Xfpp' P.dc.yp P.dc.xp 100 -1 1 100 -1 1 diff --git a/DEF-files/SHMS/GEN/pstackana.def b/DEF-files/SHMS/GEN/pstackana.def new file mode 100644 index 00000000..c330a2c2 --- /dev/null +++ b/DEF-files/SHMS/GEN/pstackana.def @@ -0,0 +1,183 @@ +# See $ANALYZER/examples/output_example.def for examples +# +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.* + +# Noble Gas Cherenkov +TH1F pngcer_occu 'SHMS Noble Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.ngcer.adcCounter 4 0.5 4.5 +TH2F pngcer_ped_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 1 ADC Unit' P.ngcer.adcCounter P.ngcer.adcPed 4 0.5 4.5 1000 0 1000 +TH2F pngcer_pi_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseInt 4 0.5 4.5 4000 0 40000 +TH2F pngcer_amp_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 1 ADC Unit' P.ngcer.adcCounter P.ngcer.adcPulseAmp 4 0.5 4.5 4100 0 4100 + +# Drift Chambers +TH1F 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 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 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 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 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 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 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 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 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 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 + +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 + +TH2F pdc1u1_wirenum_vs_tdc 'SHMS DC 1U1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1u1.wirenum P.dc.1u1.time 107 0.5 107.5 600 -100 500 +TH2F pdc1u2_wirenum_vs_tdc 'SHMS DC 1U2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1u2.wirenum P.dc.1u2.time 107 0.5 107.5 600 -100 500 +TH2F pdc1x1_wirenum_vs_tdc 'SHMS DC 1X1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1x1.wirenum P.dc.1x1.time 79 0.5 79.5 600 -100 500 +TH2F pdc1x2_wirenum_vs_tdc 'SHMS DC 1X2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1x2.wirenum P.dc.1x2.time 79 0.5 79.5 600 -100 500 +TH2F pdc1v1_wirenum_vs_tdc 'SHMS DC 1V1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1v1.wirenum P.dc.1v1.time 107 0.5 107.5 600 -100 500 +TH2F pdc1v2_wirenum_vs_tdc 'SHMS DC 1V2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1v2.wirenum P.dc.1v2.time 107 0.5 107.5 600 -100 500 + +TH2F pdc2v2_wirenum_vs_tdc 'SHMS DC 2V2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2v2.wirenum P.dc.2v2.time 107 0.5 107.5 600 -100 500 +TH2F pdc2v1_wirenum_vs_tdc 'SHMS DC 2V1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2v1.wirenum P.dc.2v1.time 107 0.5 107.5 600 -100 500 +TH2F pdc2x2_wirenum_vs_tdc 'SHMS DC 2X2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2x2.wirenum P.dc.2x2.time 79 0.5 79.5 600 -100 500 +TH2F pdc2x1_wirenum_vs_tdc 'SHMS DC 2X1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2x1.wirenum P.dc.2x1.time 79 0.5 79.5 600 -100 500 +TH2F pdc2u2_wirenum_vs_tdc 'SHMS DC 2U2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2u2.wirenum P.dc.2u2.time 107 0.5 107.5 600 -100 500 +TH2F pdc2u1_wirenum_vs_tdc 'SHMS DC 2U1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2u1.wirenum P.dc.2u1.time 107 0.5 107.5 600 -100 500 + +TH2F pdc1u1_wirenum_vs_resid 'SHMS 1U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u1.wirenum P.dc.residual[0] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1u2_wirenum_vs_resid 'SHMS 1U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u2.wirenum P.dc.residual[1] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1x1_wirenum_vs_resid 'SHMS 1X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x1.wirenum P.dc.residual[2] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc1x2_wirenum_vs_resid 'SHMS 1X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x2.wirenum P.dc.residual[3] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc1v1_wirenum_vs_resid 'SHMS 1V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v1.wirenum P.dc.residual[4] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1v2_wirenum_vs_resid 'SHMS 1V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v2.wirenum P.dc.residual[5] 107 0.5 107.5 200 -1.0 1.0 + +TH2F pdc2v2_wirenum_vs_resid 'SHMS 2V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v2.wirenum P.dc.residual[6] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2v1_wirenum_vs_resid 'SHMS 2V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v1.wirenum P.dc.residual[7] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2x2_wirenum_vs_resid 'SHMS 2X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x2.wirenum P.dc.residual[8] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc2x1_wirenum_vs_resid 'SHMS 2X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x1.wirenum P.dc.residual[9] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc2u2_wirenum_vs_resid 'SHMS 2U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u2.wirenum P.dc.residual[10] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2u1_wirenum_vs_resid 'SHMS 2U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u1.wirenum P.dc.residual[11] 107 0.5 107.5 200 -1.0 1.0 + +TH2F pdc_xfp_vs_yxp 'SHMS DC Xfp vs Yxp; Yfp (cm) / 1 cm; Xfp (cm) / 1 cm' P.dc.y P.dc.x 100 -50 50 100 -50 50 +TH2F pdc_xfpp_vs_yxpp 'SHMS DC Xfpp vs Yxpp; Yfpp; Xfpp' P.dc.yp P.dc.xp 100 -1 1 100 -1 1 + +# Hodoscopes (Positive/Left) +TH1F phodo_1x_pos_adc_occu 'SHMS Hodoscope 1X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posAdcCounter 13 0.5 13.5 +TH1F phodo_1y_pos_adc_occu 'SHMS Hodoscope 1Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posAdcCounter 13 0.5 13.5 +TH1F phodo_2x_pos_adc_occu 'SHMS Hodoscope 2X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posAdcCounter 14 0.5 14.5 +TH1F phodo_2y_pos_adc_occu 'SHMS Hodoscope 2Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posAdcCounter 21 0.5 21.5 +TH1F phodo_1x_pos_tdc_occu 'SHMS Hodoscope 1X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posTdcCounter 13 0.5 13.5 +TH1F phodo_1y_pos_tdc_occu 'SHMS Hodoscope 1Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posTdcCounter 13 0.5 13.5 +TH1F phodo_2x_pos_tdc_occu 'SHMS Hodoscope 2X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posTdcCounter 14 0.5 14.5 +TH1F phodo_2y_pos_tdc_occu 'SHMS Hodoscope 2Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posTdcCounter 21 0.5 21.5 +TH2F phodo_1x_pos_ped_vs_pad 'SHMS Hodoscope 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1x.posAdcCounter P.hod.1x.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F phodo_1y_pos_ped_vs_pad 'SHMS Hodoscope 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1y.posAdcCounter P.hod.1y.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F phodo_2x_pos_ped_vs_pad 'SHMS Hodoscope 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2x.posAdcCounter P.hod.2x.posAdcPed 14 0.5 14.5 1000 0 1000 +TH2F phodo_2y_pos_ped_vs_pad 'SHMS Hodoscope 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2y.posAdcCounter P.hod.2y.posAdcPed 21 0.5 21.5 1000 0 1000 +TH2F phodo_1x_pos_pi_vs_pad 'SHMS Hodoscope 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.GoodPaddle P.hod.1x.GoodPosAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_1y_pos_pi_vs_pad 'SHMS Hodoscope 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.GoodPaddle P.hod.1y.GoodPosAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_2x_pos_pi_vs_pad 'SHMS Hodoscope 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.GoodPaddle P.hod.2x.GoodPosAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F phodo_2y_pos_pi_vs_pad 'SHMS Hodoscope 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.GoodPaddle P.hod.2y.GoodPosAdcPulseInt 21 0.5 21.5 4000 0 40000 +TH2F phodo_1x_pos_pamp_vs_pad 'SHMS Hodoscope 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1x.GoodPaddle P.hod.1x.GoodPosAdcPulseAmp 13 0.5 13.5 4100 0 4100 +TH2F phodo_1y_pos_pamp_vs_pad 'SHMS Hodoscope 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1y.GoodPaddle P.hod.1y.GoodPosAdcPulseAmp 13 0.5 13.5 4100 0 4100 +TH2F phodo_2x_pos_pamp_vs_pad 'SHMS Hodoscope 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2x.GoodPaddle P.hod.2x.GoodPosAdcPulseAmp 14 0.5 14.5 4100 0 4100 +TH2F phodo_2y_pos_pamp_vs_pad 'SHMS Hodoscope 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2y.GoodPaddle P.hod.2y.GoodPosAdcPulseAmp 21 0.5 21.5 4100 0 4100 +TH2F phodo_1x_pos_tdc_time_vs_pad 'SHMS Hodoscope 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1x.GoodPaddle P.hod.1x.GoodPosTdcChan 13 0.5 13.5 3500 -500 3000 +TH2F phodo_1y_pos_tdc_time_vs_pad 'SHMS Hodoscope 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1y.GoodPaddle P.hod.1y.GoodPosTdcChan 13 0.5 13.5 3500 -500 3000 +TH2F phodo_2x_pos_tdc_time_vs_pad 'SHMS Hodoscope 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2x.GoodPaddle P.hod.2x.GoodPosTdcChan 14 0.5 14.5 3500 -500 3000 +TH2F phodo_2y_pos_tdc_time_vs_pad 'SHMS Hodoscope 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2y.GoodPaddle P.hod.2y.GoodPosTdcChan 21 0.5 21.5 3500 -500 3000 + +# Hodoscopes (Negative/Right) +TH1F phodo_1x_neg_adc_occu 'SHMS Hodoscope 1X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negAdcCounter 13 0.5 13.5 +TH1F phodo_1y_neg_adc_occu 'SHMS Hodoscope 1Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negAdcCounter 13 0.5 13.5 +TH1F phodo_2x_neg_adc_occu 'SHMS Hodoscope 2X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negAdcCounter 14 0.5 14.5 +TH1F phodo_2y_neg_adc_occu 'SHMS Hodoscope 2Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negAdcCounter 21 0.5 21.5 +TH1F phodo_1x_neg_tdc_occu 'SHMS Hodoscope 1X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negTdcCounter 13 0.5 13.5 +TH1F phodo_1y_neg_tdc_occu 'SHMS Hodoscope 1Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negTdcCounter 13 0.5 13.5 +TH1F phodo_2x_neg_tdc_occu 'SHMS Hodoscope 2X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negTdcCounter 14 0.5 14.5 +TH1F phodo_2y_neg_tdc_occu 'SHMS Hodoscope 2Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negTdcCounter 21 0.5 21.5 +TH2F phodo_1x_neg_ped_vs_pad 'SHMS Hodoscope 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1x.negAdcCounter P.hod.1x.negAdcPed 13 0.5 13.5 1000 0 1000 +TH2F phodo_1y_neg_ped_vs_pad 'SHMS Hodoscope 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1y.negAdcCounter P.hod.1y.negAdcPed 13 0.5 13.5 1000 0 1000 +TH2F phodo_2x_neg_ped_vs_pad 'SHMS Hodoscope 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2x.negAdcCounter P.hod.2x.negAdcPed 14 0.5 14.5 1000 0 1000 +TH2F phodo_2y_neg_ped_vs_pad 'SHMS Hodoscope 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2y.negAdcCounter P.hod.2y.negAdcPed 21 0.5 21.5 1000 0 1000 +TH2F phodo_1x_neg_pi_vs_pad 'SHMS Hodoscope 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.GoodPaddle P.hod.1x.GoodNegAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_1y_neg_pi_vs_pad 'SHMS Hodoscope 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.GoodPaddle P.hod.1y.GoodNegAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_2x_neg_pi_vs_pad 'SHMS Hodoscope 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.GoodPaddle P.hod.2x.GoodNegAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F phodo_2y_neg_pi_vs_pad 'SHMS Hodoscope 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.GoodPaddle P.hod.2y.GoodNegAdcPulseInt 21 0.5 21.5 4000 0 40000 +TH2F phodo_1x_neg_pamp_vs_pad 'SHMS Hodoscope 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1x.GoodPaddle P.hod.1x.GoodNegAdcPulseAmp 13 0.5 13.5 4100 0 4100 +TH2F phodo_1y_neg_pamp_vs_pad 'SHMS Hodoscope 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1y.GoodPaddle P.hod.1y.GoodNegAdcPulseAmp 13 0.5 13.5 4100 0 4100 +TH2F phodo_2x_neg_pamp_vs_pad 'SHMS Hodoscope 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2x.GoodPaddle P.hod.2x.GoodNegAdcPulseAmp 14 0.5 14.5 4100 0 4100 +TH2F phodo_2y_neg_pamp_vs_pad 'SHMS Hodoscope 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2y.GoodPaddle P.hod.2y.GoodNegAdcPulseAmp 21 0.5 21.5 4100 0 4100 +TH2F phodo_1x_neg_tdc_time_vs_pad 'SHMS Hodoscope 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1x.GoodPaddle P.hod.1x.GoodNegTdcChan 13 0.5 13.5 3500 -500 3000 +TH2F phodo_1y_neg_tdc_time_vs_pad 'SHMS Hodoscope 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1y.GoodPaddle P.hod.1y.GoodNegTdcChan 13 0.5 13.5 3500 -500 3000 +TH2F phodo_2x_neg_tdc_time_vs_pad 'SHMS Hodoscope 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2x.GoodPaddle P.hod.2x.GoodNegTdcChan 14 0.5 14.5 3500 -500 3000 +TH2F phodo_2y_neg_tdc_time_vs_pad 'SHMS Hodoscope 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2y.GoodPaddle P.hod.2y.GoodNegTdcChan 21 0.5 21.5 3500 -500 3000 + +# Heavy Gas Cherenkov +TH1F phgcer_occu 'SHMS Heavy Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.hgcer.adcCounter 4 0.5 4.5 +TH2F phgcer_ped_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 1 ADC Unit' P.hgcer.adcCounter P.hgcer.adcPed 4 0.5 4.5 1000 0 10000 +TH2F phgcer_pi_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseInt 4 0.5 4.5 4000 0 40000 +TH2F phgcer_amp_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 1 ADC Unit' P.hgcer.adcCounter P.hgcer.adcPulseAmp 4 0.5 4.5 4100 0 4100 + +# Aerogel +TH1F paero_pos_occu 'SHMS Aero+ Occupancy; Counter Number; Number of Entries' P.aero.posAdcCounter 7 0.5 7.5 +TH2F paero_pos_ped_vs_cntr 'SHMS Aero+ Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 1 ADC Unit' P.aero.posAdcCounter P.aero.posAdcPed 7 0.5 7.5 1000 0 1000 +TH2F paero_pos_pi_vs_cntr 'SHMS Aero+ Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseInt 7 0.5 7.5 4000 0 40000 +TH2F paero_pos_amp_vs_cntr 'SHMS Aero+ Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 1 ADC Unit' P.aero.posAdcCounter P.aero.posAdcPulseAmp 7 0.5 7.5 4100 0 4100 +TH1F paero_neg_occu 'SHMS Aero- Occupancy; Counter Number; Number of Entries' P.aero.negAdcCounter 7 0.5 7.5 +TH2F paero_neg_ped_vs_cntr 'SHMS Aero- Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 1 ADC Unit' P.aero.negAdcCounter P.aero.negAdcPed 7 0.5 7.5 1000 0 1000 +TH2F paero_neg_pi_vs_cntr 'SHMS Aero- Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseInt 7 0.5 7.5 4000 0 40000 +TH2F paero_neg_amp_vs_cntr 'SHMS Aero- Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 1 ADC Unit' P.aero.negAdcCounter P.aero.negAdcPulseAmp 7 0.5 7.5 4100 0 4100 + +# Pre-Shower Calorimeter +TH1F pcal_prshwr_pos_occu 'SHMS Preshower+ Occupancy; Block Number; Number of Entries' P.cal.pr.posAdcCounter 14 0.5 14.5 +TH2F pcal_prshwr_pos_ped_blk 'SHMS Preshower+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.pr.posAdcCounter P.cal.pr.posAdcPed 14 0.5 14.5 1000 0 1000 +TH2F pcal_prshwr_pos_pi_blk 'SHMS Preshower+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F pcal_prshwr_pos_amp_blk 'SHMS Preshower+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseAmp 14 0.5 14.5 4100 0 4100 +TH1F pcal_prshwr_neg_occu 'SHMS Preshower- Occupancy; Block Number; Number of Entries' P.cal.pr.negAdcCounter 14 0.5 14.5 +TH2F pcal_prshwr_neg_ped_blk 'SHMS Preshower- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.pr.negAdcCounter P.cal.pr.negAdcPed 14 0.5 14.5 1000 0 1000 +TH2F pcal_prshwr_neg_pi_blk 'SHMS Preshower- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F pcal_prshwr_neg_amp_blk 'SHMS Preshower- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseAmp 14 0.5 14.5 4100 0 4100 + +# Shower Calorimeter +TH1F pcal_shwr_occu 'SHMS Shower Occupancy; Block Number; Number of Entries' P.cal.fly.adcCounter 224 0.5 224.5 +TH2F pcal_shwr_ped_blk 'SHMS Shower Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.fly.adcCounter P.cal.fly.adcPed 224 0.5 224.5 1000 0 1000 +TH2F pcal_shwr_pi_blk 'SHMS Shower Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseInt 224 0.5 224.5 4000 0 40000 +TH2F pcal_shwr_amp_blk 'SHMS Shower Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.fly.adcCounter P.cal.fly.adcPulseAmp 224 0.5 224.5 4100 0 4100 + +# 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 '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 diff --git a/DEF-files/SHMS/GEN/pstackana_cuts.def b/DEF-files/SHMS/GEN/pstackana_cuts.def new file mode 100644 index 00000000..3af34a5e --- /dev/null +++ b/DEF-files/SHMS/GEN/pstackana_cuts.def @@ -0,0 +1,13 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 diff --git a/DEF-files/SHMS/GEN/pstackana_report.def b/DEF-files/SHMS/GEN/pstackana_report.def new file mode 100644 index 00000000..6d9be51d --- /dev/null +++ b/DEF-files/SHMS/GEN/pstackana_report.def @@ -0,0 +1,183 @@ +# See $ANALYZER/examples/output_example.def for examples +# +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.* + +# Noble Gas Cherenkov +TH1F pngcer_occu 'SHMS Noble Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.ngcer.adcCounter 4 0.5 4.5 +TH2F pngcer_ped_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 1 ADC Unit' P.ngcer.adcCounter P.ngcer.adcPed 4 0.5 4.5 1000 0 1000 +TH2F pngcer_pi_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseInt 4 0.5 4.5 4000 0 40000 +TH2F pngcer_amp_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 1 ADC Unit' P.ngcer.adcCounter P.ngcer.adcPulseAmp 4 0.5 4.5 4100 0 4100 + +# Drift Chambers +TH1F 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 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 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 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 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 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 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 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 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 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 + +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 + +TH2F pdc1u1_wirenum_vs_tdc 'SHMS DC 1U1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1u1.wirenum P.dc.1u1.time 107 0.5 107.5 500 0 500 +TH2F pdc1u2_wirenum_vs_tdc 'SHMS DC 1U2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1u2.wirenum P.dc.1u2.time 107 0.5 107.5 500 0 500 +TH2F pdc1x1_wirenum_vs_tdc 'SHMS DC 1X1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1x1.wirenum P.dc.1x1.time 79 0.5 79.5 500 0 500 +TH2F pdc1x2_wirenum_vs_tdc 'SHMS DC 1X2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1x2.wirenum P.dc.1x2.time 79 0.5 79.5 500 0 500 +TH2F pdc1v1_wirenum_vs_tdc 'SHMS DC 1V1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1v1.wirenum P.dc.1v1.time 107 0.5 107.5 500 0 500 +TH2F pdc1v2_wirenum_vs_tdc 'SHMS DC 1V2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.1v2.wirenum P.dc.1v2.time 107 0.5 107.5 500 0 500 + +TH2F pdc2v2_wirenum_vs_tdc 'SHMS DC 2V2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2v2.wirenum P.dc.2v2.time 107 0.5 107.5 500 0 500 +TH2F pdc2v1_wirenum_vs_tdc 'SHMS DC 2V1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2v1.wirenum P.dc.2v1.time 107 0.5 107.5 500 0 500 +TH2F pdc2x2_wirenum_vs_tdc 'SHMS DC 2X2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2x2.wirenum P.dc.2x2.time 79 0.5 79.5 500 0 500 +TH2F pdc2x1_wirenum_vs_tdc 'SHMS DC 2X1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2x1.wirenum P.dc.2x1.time 79 0.5 79.5 500 0 500 +TH2F pdc2u2_wirenum_vs_tdc 'SHMS DC 2U2 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2u2.wirenum P.dc.2u2.time 107 0.5 107.5 500 0 500 +TH2F pdc2u1_wirenum_vs_tdc 'SHMS DC 2U1 Wire Number vs. TDC; Wire Number; TDC Time (ns) / 1 ns' P.dc.2u1.wirenum P.dc.2u1.time 107 0.5 107.5 500 0 500 + +TH2F pdc1u1_wirenum_vs_resid 'SHMS 1U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u1.wirenum P.dc.residual[0] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1u2_wirenum_vs_resid 'SHMS 1U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1u2.wirenum P.dc.residual[1] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1x1_wirenum_vs_resid 'SHMS 1X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x1.wirenum P.dc.residual[2] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc1x2_wirenum_vs_resid 'SHMS 1X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1x2.wirenum P.dc.residual[3] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc1v1_wirenum_vs_resid 'SHMS 1V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v1.wirenum P.dc.residual[4] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc1v2_wirenum_vs_resid 'SHMS 1V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.1v2.wirenum P.dc.residual[5] 107 0.5 107.5 200 -1.0 1.0 + +TH2F pdc2v2_wirenum_vs_resid 'SHMS 2V2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v2.wirenum P.dc.residual[6] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2v1_wirenum_vs_resid 'SHMS 2V1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2v1.wirenum P.dc.residual[7] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2x2_wirenum_vs_resid 'SHMS 2X2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x2.wirenum P.dc.residual[8] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc2x1_wirenum_vs_resid 'SHMS 2X1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2x1.wirenum P.dc.residual[9] 79 0.5 79.5 200 -1.0 1.0 +TH2F pdc2u2_wirenum_vs_resid 'SHMS 2U2 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u2.wirenum P.dc.residual[10] 107 0.5 107.5 200 -1.0 1.0 +TH2F pdc2u1_wirenum_vs_resid 'SHMS 2U1 DC Wire Number vs. Residuals; Wire Number; Residuals (mm)' P.dc.2u1.wirenum P.dc.residual[11] 107 0.5 107.5 200 -1.0 1.0 + +TH2F pdc_xfp_vs_yxp 'SHMS DC Xfp vs Yxp; Yfp (cm) / 1 cm; Xfp (cm) / 1 cm' P.dc.y P.dc.x 100 -50 50 100 -50 50 +TH2F pdc_xfpp_vs_yxpp 'SHMS DC Xfpp vs Yxpp; Yfpp; Xfpp' P.dc.yp P.dc.xp 100 -1 1 100 -1 1 + +# Hodoscopes (Positive/Left) +TH1F phodo_1x_pos_adc_occu 'SHMS Hodoscope 1X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posAdcCounter 13 0.5 13.5 +TH1F phodo_1y_pos_adc_occu 'SHMS Hodoscope 1Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posAdcCounter 13 0.5 13.5 +TH1F phodo_2x_pos_adc_occu 'SHMS Hodoscope 2X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posAdcCounter 14 0.5 14.5 +TH1F phodo_2y_pos_adc_occu 'SHMS Hodoscope 2Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posAdcCounter 21 0.5 21.5 +TH1F phodo_1x_pos_tdc_occu 'SHMS Hodoscope 1X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posTdcCounter 13 0.5 13.5 +TH1F phodo_1y_pos_tdc_occu 'SHMS Hodoscope 1Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posTdcCounter 13 0.5 13.5 +TH1F phodo_2x_pos_tdc_occu 'SHMS Hodoscope 2X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posTdcCounter 14 0.5 14.5 +TH1F phodo_2y_pos_tdc_occu 'SHMS Hodoscope 2Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posTdcCounter 21 0.5 21.5 +TH2F phodo_1x_pos_ped_vs_pad 'SHMS Hodoscope 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1x.posAdcCounter P.hod.1x.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F phodo_1y_pos_ped_vs_pad 'SHMS Hodoscope 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1y.posAdcCounter P.hod.1y.posAdcPed 13 0.5 13.5 1000 0 1000 +TH2F phodo_2x_pos_ped_vs_pad 'SHMS Hodoscope 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2x.posAdcCounter P.hod.2x.posAdcPed 14 0.5 14.5 1000 0 1000 +TH2F phodo_2y_pos_ped_vs_pad 'SHMS Hodoscope 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2y.posAdcCounter P.hod.2y.posAdcPed 21 0.5 21.5 1000 0 1000 +TH2F phodo_1x_pos_pi_vs_pad 'SHMS Hodoscope 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.GoodPaddle P.hod.1x.GoodPosAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_1y_pos_pi_vs_pad 'SHMS Hodoscope 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.GoodPaddle P.hod.1y.GoodPosAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_2x_pos_pi_vs_pad 'SHMS Hodoscope 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.GoodPaddle P.hod.2x.GoodPosAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F phodo_2y_pos_pi_vs_pad 'SHMS Hodoscope 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.GoodPaddle P.hod.2y.GoodPosAdcPulseInt 21 0.5 21.5 4000 0 40000 +TH2F phodo_1x_pos_pamp_vs_pad 'SHMS Hodoscope 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1x.GoodPaddle P.hod.1x.GoodPosAdcPulseAmp 13 0.5 13.5 4100 0 4100 +TH2F phodo_1y_pos_pamp_vs_pad 'SHMS Hodoscope 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1y.GoodPaddle P.hod.1y.GoodPosAdcPulseAmp 13 0.5 13.5 4100 0 4100 +TH2F phodo_2x_pos_pamp_vs_pad 'SHMS Hodoscope 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2x.GoodPaddle P.hod.2x.GoodPosAdcPulseAmp 14 0.5 14.5 4100 0 4100 +TH2F phodo_2y_pos_pamp_vs_pad 'SHMS Hodoscope 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2y.GoodPaddle P.hod.2y.GoodPosAdcPulseAmp 21 0.5 21.5 4100 0 4100 +TH2F phodo_1x_pos_tdc_time_vs_pad 'SHMS Hodoscope 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1x.GoodPaddle P.hod.1x.GoodPosTdcChan 13 0.5 13.5 3500 -500 3000 +TH2F phodo_1y_pos_tdc_time_vs_pad 'SHMS Hodoscope 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1y.GoodPaddle P.hod.1y.GoodPosTdcChan 13 0.5 13.5 3500 -500 3000 +TH2F phodo_2x_pos_tdc_time_vs_pad 'SHMS Hodoscope 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2x.GoodPaddle P.hod.2x.GoodPosTdcChan 14 0.5 14.5 3500 -500 3000 +TH2F phodo_2y_pos_tdc_time_vs_pad 'SHMS Hodoscope 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2y.GoodPaddle P.hod.2y.GoodPosTdcChan 21 0.5 21.5 3500 -500 3000 + +# Hodoscopes (Negative/Right) +TH1F phodo_1x_neg_adc_occu 'SHMS Hodoscope 1X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negAdcCounter 13 0.5 13.5 +TH1F phodo_1y_neg_adc_occu 'SHMS Hodoscope 1Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negAdcCounter 13 0.5 13.5 +TH1F phodo_2x_neg_adc_occu 'SHMS Hodoscope 2X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negAdcCounter 14 0.5 14.5 +TH1F phodo_2y_neg_adc_occu 'SHMS Hodoscope 2Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negAdcCounter 21 0.5 21.5 +TH1F phodo_1x_neg_tdc_occu 'SHMS Hodoscope 1X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negTdcCounter 13 0.5 13.5 +TH1F phodo_1y_neg_tdc_occu 'SHMS Hodoscope 1Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negTdcCounter 13 0.5 13.5 +TH1F phodo_2x_neg_tdc_occu 'SHMS Hodoscope 2X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negTdcCounter 14 0.5 14.5 +TH1F phodo_2y_neg_tdc_occu 'SHMS Hodoscope 2Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negTdcCounter 21 0.5 21.5 +TH2F phodo_1x_neg_ped_vs_pad 'SHMS Hodoscope 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1x.negAdcCounter P.hod.1x.negAdcPed 13 0.5 13.5 1000 0 1000 +TH2F phodo_1y_neg_ped_vs_pad 'SHMS Hodoscope 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.1y.negAdcCounter P.hod.1y.negAdcPed 13 0.5 13.5 1000 0 1000 +TH2F phodo_2x_neg_ped_vs_pad 'SHMS Hodoscope 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2x.negAdcCounter P.hod.2x.negAdcPed 14 0.5 14.5 1000 0 1000 +TH2F phodo_2y_neg_ped_vs_pad 'SHMS Hodoscope 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 1 ADC Unit' P.hod.2y.negAdcCounter P.hod.2y.negAdcPed 21 0.5 21.5 1000 0 1000 +TH2F phodo_1x_neg_pi_vs_pad 'SHMS Hodoscope 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.GoodPaddle P.hod.1x.GoodNegAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_1y_neg_pi_vs_pad 'SHMS Hodoscope 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.GoodPaddle P.hod.1y.GoodNegAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_2x_neg_pi_vs_pad 'SHMS Hodoscope 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.GoodPaddle P.hod.2x.GoodNegAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F phodo_2y_neg_pi_vs_pad 'SHMS Hodoscope 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.GoodPaddle P.hod.2y.GoodNegAdcPulseInt 21 0.5 21.5 4000 0 40000 +TH2F phodo_1x_neg_pamp_vs_pad 'SHMS Hodoscope 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1x.GoodPaddle P.hod.1x.GoodNegAdcPulseAmp 13 0.5 13.5 4100 0 4100 +TH2F phodo_1y_neg_pamp_vs_pad 'SHMS Hodoscope 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.1y.GoodPaddle P.hod.1y.GoodNegAdcPulseAmp 13 0.5 13.5 4100 0 4100 +TH2F phodo_2x_neg_pamp_vs_pad 'SHMS Hodoscope 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2x.GoodPaddle P.hod.2x.GoodNegAdcPulseAmp 14 0.5 14.5 4100 0 4100 +TH2F phodo_2y_neg_pamp_vs_pad 'SHMS Hodoscope 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 1 ADC Unit' P.hod.2y.GoodPaddle P.hod.2y.GoodNegAdcPulseAmp 21 0.5 21.5 4100 0 4100 +TH2F phodo_1x_neg_tdc_time_vs_pad 'SHMS Hodoscope 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1x.GoodPaddle P.hod.1x.GoodNegTdcChan 13 0.5 13.5 3500 -500 3000 +TH2F phodo_1y_neg_tdc_time_vs_pad 'SHMS Hodoscope 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.1y.GoodPaddle P.hod.1y.GoodNegTdcChan 13 0.5 13.5 3500 -500 3000 +TH2F phodo_2x_neg_tdc_time_vs_pad 'SHMS Hodoscope 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2x.GoodPaddle P.hod.2x.GoodNegTdcChan 14 0.5 14.5 3500 -500 3000 +TH2F phodo_2y_neg_tdc_time_vs_pad 'SHMS Hodoscope 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns) / 1 ns' P.hod.2y.GoodPaddle P.hod.2y.GoodNegTdcChan 21 0.5 21.5 3500 -500 3000 + +# Heavy Gas Cherenkov +TH1F phgcer_occu 'SHMS Heavy Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.hgcer.adcCounter 4 0.5 4.5 +TH2F phgcer_ped_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 1 ADC Unit' P.hgcer.adcCounter P.hgcer.adcPed 4 0.5 4.5 1000 0 10000 +TH2F phgcer_pi_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseInt 4 0.5 4.5 4000 0 40000 +TH2F phgcer_amp_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 1 ADC Unit' P.hgcer.adcCounter P.hgcer.adcPulseAmp 4 0.5 4.5 4100 0 4100 + +# Aerogel +TH1F paero_pos_occu 'SHMS Aero+ Occupancy; Counter Number; Number of Entries' P.aero.posAdcCounter 7 0.5 7.5 +TH2F paero_pos_ped_vs_cntr 'SHMS Aero+ Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 1 ADC Unit' P.aero.posAdcCounter P.aero.posAdcPed 7 0.5 7.5 1000 0 1000 +TH2F paero_pos_pi_vs_cntr 'SHMS Aero+ Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.aero.posAdcCounter P.aero.posAdcPulseInt 7 0.5 7.5 4000 0 40000 +TH2F paero_pos_amp_vs_cntr 'SHMS Aero+ Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 1 ADC Unit' P.aero.posAdcCounter P.aero.posAdcPulseAmp 7 0.5 7.5 4100 0 4100 +TH1F paero_neg_occu 'SHMS Aero- Occupancy; Counter Number; Number of Entries' P.aero.negAdcCounter 7 0.5 7.5 +TH2F paero_neg_ped_vs_cntr 'SHMS Aero- Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 1 ADC Unit' P.aero.negAdcCounter P.aero.negAdcPed 7 0.5 7.5 1000 0 1000 +TH2F paero_neg_pi_vs_cntr 'SHMS Aero- Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.aero.negAdcCounter P.aero.negAdcPulseInt 7 0.5 7.5 4000 0 40000 +TH2F paero_neg_amp_vs_cntr 'SHMS Aero- Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 1 ADC Unit' P.aero.negAdcCounter P.aero.negAdcPulseAmp 7 0.5 7.5 4100 0 4100 + +# Pre-Shower Calorimeter +TH1F pcal_prshwr_pos_occu 'SHMS Preshower+ Occupancy; Block Number; Number of Entries' P.cal.pr.posAdcCounter 14 0.5 14.5 +TH2F pcal_prshwr_pos_ped_blk 'SHMS Preshower+ Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.pr.posAdcCounter P.cal.pr.posAdcPed 14 0.5 14.5 1000 0 1000 +TH2F pcal_prshwr_pos_pi_blk 'SHMS Preshower+ Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F pcal_prshwr_pos_amp_blk 'SHMS Preshower+ Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.pr.posAdcCounter P.cal.pr.posAdcPulseAmp 14 0.5 14.5 4100 0 4100 +TH1F pcal_prshwr_neg_occu 'SHMS Preshower- Occupancy; Block Number; Number of Entries' P.cal.pr.negAdcCounter 14 0.5 14.5 +TH2F pcal_prshwr_neg_ped_blk 'SHMS Preshower- Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.pr.negAdcCounter P.cal.pr.negAdcPed 14 0.5 14.5 1000 0 1000 +TH2F pcal_prshwr_neg_pi_blk 'SHMS Preshower- Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F pcal_prshwr_neg_amp_blk 'SHMS Preshower- Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.pr.negAdcCounter P.cal.pr.negAdcPulseAmp 14 0.5 14.5 4100 0 4100 + +# Shower Calorimeter +TH1F pcal_shwr_occu 'SHMS Shower Occupancy; Block Number; Number of Entries' P.cal.fly.adcCounter 224 0.5 224.5 +TH2F pcal_shwr_ped_blk 'SHMS Shower Pulse Pedestal vs. Block Number; Block Number; Pulse Pedestal / 1 ADC Unit' P.cal.fly.adcCounter P.cal.fly.adcPed 224 0.5 224.5 1000 0 1000 +TH2F pcal_shwr_pi_blk 'SHMS Shower Pulse Integral vs. Block Number; Block Number; Pulse Integral / 10 ADC Units' P.cal.fly.adcCounter P.cal.fly.adcPulseInt 224 0.5 224.5 4000 0 40000 +TH2F pcal_shwr_amp_blk 'SHMS Shower Pulse Amplitude vs. Block Number; Block Number; Pulse Amplitude / 1 ADC Unit' P.cal.fly.adcCounter P.cal.fly.adcPulseAmp 224 0.5 224.5 4100 0 4100 + +# 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 '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 \ No newline at end of file diff --git a/DEF-files/SHMS/GEN/pstackana_report_cuts.def b/DEF-files/SHMS/GEN/pstackana_report_cuts.def new file mode 100644 index 00000000..d012b948 --- /dev/null +++ b/DEF-files/SHMS/GEN/pstackana_report_cuts.def @@ -0,0 +1,189 @@ +# Demo cuts for hodtest +# + +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 g.evtyp==1||g.evtyp==3 +shmscoin_event g.evtyp==2||g.evtyp==3 +all_event g.evtyp==1||g.evtyp==2||g.evtyp==3 +RawDecode_master 1 + +Block: Decode +Decode_master HMS_event + +Block: CoarseTracking +CoarseTracking_master HMS_event + +all_trigs g.evtyp==1 || g.evtyp==2 || g.evtyp==3 +hms_shms_trig g.evtyp==1 || g.evtyp==2 +hms_coin_trig g.evtyp==1 || g.evtyp==3 + + +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 + +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 + +h1hit1 P.dc.1x1.nhit >= 1 +h1hit2 P.dc.1u1.nhit >= 1 +h1hit3 P.dc.1u2.nhit >= 1 +h1hit4 P.dc.1v1.nhit >= 1 +h1hit5 P.dc.1v2.nhit >= 1 +h1hit6 P.dc.1x2.nhit >= 1 + +h2hit1 P.dc.2x1.nhit >= 1 +h2hit2 P.dc.2u1.nhit >= 1 +h2hit3 P.dc.2u2.nhit >= 1 +h2hit4 P.dc.2v1.nhit >= 1 +h2hit5 P.dc.2v2.nhit >= 1 +h2hit6 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 h1hit1&&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 h1hit2&&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 h1hit3&&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 h1hit4&&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 h1hit5&&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 h1hit6&&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 h2hit1&&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 h2hit2&&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 h2hit3&&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 h2hit4&&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 h2hit5&&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 h2hit6&&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 (h1hit1 + h1hit2 + h1hit3 + h1hit4 + h1hit5 + h1hit6 )>=5 +shmsDC2PlanesGT (h2hit1 + h2hit2 + h2hit3 + h2hit4 + h2hit5 + h2hit6 )>=5 +shmsPlanesGT shmsDC1PlanesGT && shmsDC2PlanesGT +shmsHitsPlanes (P.dc.Ch1.nhit <= P.dc.Ch1.maxhits) && (P.dc.Ch2.nhit <= P.dc.Ch2.maxhits) && shmsPlanesGT +hSpacePoints P.dc.Ch1.spacepoints >= 1 && P.dc.Ch2.spacepoints >=1 +hSpacePointsStub P.dc.stubtest==1 && P.dc.Ch1.spacepoints >=1 && P.dc.Ch2.spacepoints >=1 +hFoundTrack P.dc.ntrack>0 +hStubLT P.dc.stubtest==1 +f1HSpacePoints shms1HitsLt && shmsDC1PlanesGT && P.dc.Ch1.spacepoints==0 && g.evtyp==1 +f2HSpacePoints shms2HitsLt && shmsDC2PlanesGT && P.dc.Ch2.spacepoints==0 && g.evtyp==1 +hTest1 shmsHitsPlanes && (!hSpacePoints) +hTest2 hSpacePoints && (!hStubLT) + + + + + + +Block: CoarseReconstruct +CoarseReconstruct_master shms_event + +Block: Tracking +Tracking_master shms_event + +Block: Reconstruct +Reconstruct_master shms_event + +shmsScinGood P.hod.goodscinhit == 1 + +shmsScinShould shmsScinGood && P.cal.etotnorm > 0.7 && P.hgcer.npesum > 2.0 +shmsScinShoulde shmsScinGood && P.hgcer.npesum > 2.0 +shmsScinShouldh P.hod.goodscinhit == 1 && g.evtyp == 1 + +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) +realhdc2x2 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) + +hFound1Track P.dc.ntrack == 1 +hFound2Track P.dc.ntrack == 2 +hFound3Track P.dc.ntrack == 3 +hFound4Track P.dc.ntrack == 4 + +hCleanTrack P.gtr.index > -1 +1hCleanTrack P.gtr.index == 0 +2hCleanTrack P.gtr.index == 1 +3hCleanTrack P.gtr.index == 2 +4hCleanTrack P.gtr.index == 3 + +anyhs1x P.hod.1x.nhits > 0 +anyhs1y P.hod.1y.nhits > 0 +anyhs2x P.hod.2x.nhits > 0 +anyhs2y P.hod.2y.nhits > 0 + +goodhs1x P.hod.1x.nhits > 0 && P.hod.1x.nhits < 3 +goodhs1y P.hod.1y.nhits > 0 && P.hod.1y.nhits < 3 +goodhs1 goodhs1x && goodhs1y +goodhs2x P.hod.2x.nhits > 0 && P.hod.2x.nhits < 3 +goodhs2y P.hod.2y.nhits > 0 && P.hod.2y.nhits < 3 +goodhs2 goodhs2x && goodhs2y +goodhs1s2 goodhs1 && goodhs2 + +Block: Physics +Physics_master shms_event diff --git a/DEF-files/SHMS/HGCER/phgcerana.def b/DEF-files/SHMS/HGCER/phgcerana.def new file mode 100644 index 00000000..f5ce4416 --- /dev/null +++ b/DEF-files/SHMS/HGCER/phgcerana.def @@ -0,0 +1,25 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block P.hgcer.* +block T.shms.* + +TH1F phgcer_occu 'SHMS Heavy Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.hgcer.adcCounter 4 0.5 4.5 +TH1F phgcer_occu 'SHMS Heavy Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.hgcer.adcCounter 4 0.5 4.5 + +TH2F phgcer_rawped_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Pedestal vs. Counter Number; Counter Number; Raw Pulse Pedestal / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPedRaw 4 0.5 4.5 1000 0 10000 +TH2F phgcer_rawpi_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Integral vs. Counter Number; Counter Number; Raw Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseIntRaw 4 0.5 4.5 4000 0 40000 +TH2F phgcer_rawamp_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Amplitude vs. Counter Number; Counter Number; Raw Pulse Amplitude / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseAmpRaw 4 0.5 4.5 410 0 4100 +TH2F phgcer_rawptime_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Time vs. Counter Number; Counter Number; Raw Pulse Time / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseTimeRaw 4 0.5 4.5 1000 0 10000 + +TH2F phgcer_rawped_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Pedestal vs. Counter Number; Counter Number; Raw Pulse Pedestal / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPedRaw 4 0.5 4.5 1000 0 10000 +TH2F phgcer_rawpi_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Integral vs. Counter Number; Counter Number; Raw Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseIntRaw 4 0.5 4.5 4000 0 40000 +TH2F phgcer_rawamp_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Amplitude vs. Counter Number; Counter Number; Raw Pulse Amplitude / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseAmpRaw 4 0.5 4.5 410 0 4100 +TH2F phgcer_rawptime_vs_cntr 'SHMS Heavy Gas Cherenkov Raw Pulse Time vs. Counter Number; Counter Number; Raw Pulse Time / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseTimeRaw 4 0.5 4.5 1000 0 10000 + +TH2F phgcer_ped_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPed 4 0.5 4.5 1000 0 10000 +TH2F phgcer_pi_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseInt 4 0.5 4.5 4000 0 40000 +TH2F phgcer_amp_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseAmp 4 0.5 4.5 410 0 4100 + +TH2F phgcer_ped_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPed 4 0.5 4.5 1000 0 10000 +TH2F phgcer_pi_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseInt 4 0.5 4.5 4000 0 40000 +TH2F phgcer_amp_vs_cntr 'SHMS Heavy Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 10 ADC Units' P.hgcer.adcCounter P.hgcer.adcPulseAmp 4 0.5 4.5 410 0 4100 diff --git a/DEF-files/SHMS/HGCER/phgcerana_cuts.def b/DEF-files/SHMS/HGCER/phgcerana_cuts.def new file mode 100644 index 00000000..5add84a3 --- /dev/null +++ b/DEF-files/SHMS/HGCER/phgcerana_cuts.def @@ -0,0 +1,14 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 + diff --git a/DEF-files/SHMS/HODO/phodoana.def b/DEF-files/SHMS/HODO/phodoana.def new file mode 100644 index 00000000..78dd5219 --- /dev/null +++ b/DEF-files/SHMS/HODO/phodoana.def @@ -0,0 +1,119 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block P.hod.* +block T.shms.* + +TH1F phodo_1x_multi 'SHMS 1X Multiplicity; Number of Hits; Counts' P.hod.1x.nhits 13 0.5 13.5 +TH1F phodo_1y_multi 'SHMS 1Y Multiplicity; Number of Hits; Counts' P.hod.1y.nhits 13 0.5 13.5 +TH1F phodo_2x_multi 'SHMS 2X Multiplicity; Number of Hits; Counts' P.hod.2x.nhits 14 0.5 14.5 +TH1F phodo_2y_multi 'SHMS 2Y Multiplicity; Number of Hits; Counts' P.hod.2y.nhits 21 0.5 21.5 + +TH1F phodo_1x_pos_adc_occu 'SHMS 1X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posAdcCounter 13 0.5 13.5 +TH1F phodo_1y_pos_adc_occu 'SHMS 1Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posAdcCounter 13 0.5 13.5 +TH1F phodo_2x_pos_adc_occu 'SHMS 2X+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posAdcCounter 14 0.5 14.5 +TH1F phodo_2y_pos_adc_occu 'SHMS 2Y+ ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posAdcCounter 21 0.5 21.5 + +TH1F phodo_1x_neg_adc_occu 'SHMS 1X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negAdcCounter 13 0.5 13.5 +TH1F phodo_1y_neg_adc_occu 'SHMS 1Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negAdcCounter 13 0.5 13.5 +TH1F phodo_2x_neg_adc_occu 'SHMS 2X- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negAdcCounter 14 0.5 14.5 +TH1F phodo_2y_neg_adc_occu 'SHMS 2Y- ADC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negAdcCounter 21 0.5 21.5 + +TH1F phodo_1x_pos_tdc_occu 'SHMS 1X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.posTdcCounter 13 0.5 13.5 +TH1F phodo_1y_pos_tdc_occu 'SHMS 1Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.posTdcCounter 13 0.5 13.5 +TH1F phodo_2x_pos_tdc_occu 'SHMS 2X+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.posTdcCounter 14 0.5 14.5 +TH1F phodo_2y_pos_tdc_occu 'SHMS 2Y+ TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.posTdcCounter 21 0.5 21.5 + +TH1F phodo_1x_neg_tdc_occu 'SHMS 1X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1x.negTdcCounter 13 0.5 13.5 +TH1F phodo_1y_neg_tdc_occu 'SHMS 1Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.1y.negTdcCounter 13 0.5 13.5 +TH1F phodo_2x_neg_tdc_occu 'SHMS 2X- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2x.negTdcCounter 14 0.5 14.5 +TH1F phodo_2y_neg_tdc_occu 'SHMS 2Y- TDC Occupancy; Paddle Number; Number of Hits' P.hod.2y.negTdcCounter 21 0.5 21.5 + +TH2F phodo_1x_pos_rawped_vs_pad 'SHMS 1X+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.1x.posAdcCounter P.hod.1x.posAdcPedRaw 13 0.5 13.5 400 0 4000 +TH2F phodo_1y_pos_rawped_vs_pad 'SHMS 1Y+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.1y.posAdcCounter P.hod.1y.posAdcPedRaw 13 0.5 13.5 400 0 4000 +TH2F phodo_2x_pos_rawped_vs_pad 'SHMS 2X+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.2x.posAdcCounter P.hod.2x.posAdcPedRaw 14 0.5 14.5 400 0 4000 +TH2F phodo_2y_pos_rawped_vs_pad 'SHMS 2Y+ Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.2y.posAdcCounter P.hod.2y.posAdcPedRaw 21 0.5 21.5 400 0 4000 + +TH2F phodo_1x_neg_rawped_vs_pad 'SHMS 1X- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.1x.negAdcCounter P.hod.1x.negAdcPedRaw 13 0.5 13.5 400 0 4000 +TH2F phodo_1y_neg_rawped_vs_pad 'SHMS 1Y- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.1y.negAdcCounter P.hod.1y.negAdcPedRaw 13 0.5 13.5 400 0 4000 +TH2F phodo_2x_neg_rawped_vs_pad 'SHMS 2X- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.2x.negAdcCounter P.hod.2x.negAdcPedRaw 14 0.5 14.5 400 0 4000 +TH2F phodo_2y_neg_rawped_vs_pad 'SHMS 2Y- Raw Pulse Pedestal vs. Paddle Number; Paddle Number; Raw Pulse Pedestal / 10 ADC Units' P.hod.2y.negAdcCounter P.hod.2y.negAdcPedRaw 21 0.5 21.5 400 0 4000 + +TH2F phodo_1x_pos_rawpi_vs_pad 'SHMS 1X+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.1x.posAdcCounter P.hod.1x.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000 +TH2F phodo_1y_pos_rawpi_vs_pad 'SHMS 1Y+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.1y.posAdcCounter P.hod.1y.posAdcPulseIntRaw 13 0.5 13.5 4000 0 40000 +TH2F phodo_2x_pos_rawpi_vs_pad 'SHMS 2X+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.2x.posAdcCounter P.hod.2x.posAdcPulseIntRaw 14 0.5 14.5 4000 0 40000 +TH2F phodo_2y_pos_rawpi_vs_pad 'SHMS 2Y+ Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.2y.posAdcCounter P.hod.2y.posAdcPulseIntRaw 21 0.5 21.5 4000 0 40000 + +TH2F phodo_1x_neg_rawpi_vs_pad 'SHMS 1X- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.1x.negAdcCounter P.hod.1x.negAdcPulseIntRaw 13 0.5 13.5 4000 0 40000 +TH2F phodo_1y_neg_rawpi_vs_pad 'SHMS 1Y- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.1y.negAdcCounter P.hod.1y.negAdcPulseIntRaw 13 0.5 13.5 4000 0 40000 +TH2F phodo_2x_neg_rawpi_vs_pad 'SHMS 2X- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.2x.negAdcCounter P.hod.2x.negAdcPulseIntRaw 14 0.5 14.5 4000 0 40000 +TH2F phodo_2y_neg_rawpi_vs_pad 'SHMS 2Y- Raw Pulse Integral vs. Paddle Number; Paddle Number; Raw Pulse Integral / 10 ADC Units' P.hod.2y.negAdcCounter P.hod.2y.negAdcPulseIntRaw 21 0.5 21.5 4000 0 40000 + +TH2F phodo_1x_pos_rawpamp_vs_pad 'SHMS 1X+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.1x.posAdcCounter P.hod.1x.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100 +TH2F phodo_1y_pos_rawpamp_vs_pad 'SHMS 1Y+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.1y.posAdcCounter P.hod.1y.posAdcPulseAmpRaw 13 0.5 13.5 410 0 4100 +TH2F phodo_2x_pos_rawpamp_vs_pad 'SHMS 2X+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.2x.posAdcCounter P.hod.2x.posAdcPulseAmpRaw 14 0.5 14.5 410 0 4100 +TH2F phodo_2y_pos_rawpamp_vs_pad 'SHMS 2Y+ Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.2y.posAdcCounter P.hod.2y.posAdcPulseAmpRaw 21 0.5 21.5 410 0 4100 + +TH2F phodo_1x_neg_rawpamp_vs_pad 'SHMS 1X- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.1x.negAdcCounter P.hod.1x.negAdcPulseAmpRaw 13 0.5 13.5 410 0 4100 +TH2F phodo_1y_neg_rawpamp_vs_pad 'SHMS 1Y- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.1y.negAdcCounter P.hod.1y.negAdcPulseAmpRaw 13 0.5 13.5 410 0 4100 +TH2F phodo_2x_neg_rawpamp_vs_pad 'SHMS 2X- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.2x.negAdcCounter P.hod.2x.negAdcPulseAmpRaw 14 0.5 14.5 410 0 4100 +TH2F phodo_2y_neg_rawpamp_vs_pad 'SHMS 2Y- Raw Pulse Amplitude vs. Paddle Number; Paddle Number; Raw Pulse Amplitude / 10 ADC Units' P.hod.2y.negAdcCounter P.hod.2y.negAdcPulseAmpRaw 21 0.5 21.5 410 0 4100 + +TH2F phodo_1x_pos_rawptime_vs_pad 'SHMS 1X+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.1x.posAdcCounter P.hod.1x.posAdcPulseTimeRaw 13 0.5 13.5 410 0 4100 +TH2F phodo_1y_pos_rawptime_vs_pad 'SHMS 1Y+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.1y.posAdcCounter P.hod.1y.posAdcPulseTimeRaw 13 0.5 13.5 410 0 4100 +TH2F phodo_2x_pos_rawptime_vs_pad 'SHMS 2X+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.2x.posAdcCounter P.hod.2x.posAdcPulseTimeRaw 14 0.5 14.5 410 0 4100 +TH2F phodo_2y_pos_rawptime_vs_pad 'SHMS 2Y+ Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.2y.posAdcCounter P.hod.2y.posAdcPulseTimeRaw 21 0.5 21.5 410 0 4100 + +TH2F phodo_1x_neg_rawptime_vs_pad 'SHMS 1X- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.1x.negAdcCounter P.hod.1x.negAdcPulseTimeRaw 13 0.5 13.5 410 0 4100 +TH2F phodo_1y_neg_rawptime_vs_pad 'SHMS 1Y- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.1y.negAdcCounter P.hod.1y.negAdcPulseTimeRaw 13 0.5 13.5 410 0 4100 +TH2F phodo_2x_neg_rawptime_vs_pad 'SHMS 2X- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.2x.negAdcCounter P.hod.2x.negAdcPulseTimeRaw 14 0.5 14.5 410 0 4100 +TH2F phodo_2y_neg_rawptime_vs_pad 'SHMS 2Y- Raw Pulse Time vs. Paddle Number; Paddle Number; Raw Pulse Time / 10 ADC Units' P.hod.2y.negAdcCounter P.hod.2y.negAdcPulseTimeRaw 21 0.5 21.5 410 0 4100 + +TH2F phodo_1x_pos_raw_tdc_time_vs_pad 'SHMS 1X+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.1x.posTdcCounter P.hod.1x.posTdcTimeRaw 13 0.5 13.5 200 0 2000 +TH2F phodo_1y_pos_raw_tdc_time_vs_pad 'SHMS 1Y+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.1y.posTdcCounter P.hod.1y.posTdcTimeRaw 13 0.5 13.5 200 0 2000 +TH2F phodo_2x_pos_raw_tdc_time_vs_pad 'SHMS 2X+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.2x.posTdcCounter P.hod.2x.posTdcTimeRaw 14 0.5 14.5 200 0 2000 +TH2F phodo_2y_pos_raw_tdc_time_vs_pad 'SHMS 2Y+ Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.2y.posTdcCounter P.hod.2y.posTdcTimeRaw 21 0.5 21.5 200 0 2000 + +TH2F phodo_1x_neg_raw_tdc_time_vs_pad 'SHMS 1X- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.1x.negTdcCounter P.hod.1x.negTdcTimeRaw 13 0.5 13.5 200 0 2000 +TH2F phodo_1y_neg_raw_tdc_time_vs_pad 'SHMS 1Y- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.1y.negTdcCounter P.hod.1y.negTdcTimeRaw 13 0.5 13.5 200 0 2000 +TH2F phodo_2x_neg_raw_tdc_time_vs_pad 'SHMS 2X- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.2x.negTdcCounter P.hod.2x.negTdcTimeRaw 14 0.5 14.5 200 0 2000 +TH2F phodo_2y_neg_raw_tdc_time_vs_pad 'SHMS 2Y- Raw TDC Time vs. Paddle Number; Paddle Number; Raw TDC Time / 10 ADC Units' P.hod.2y.negTdcCounter P.hod.2y.negTdcTimeRaw 21 0.5 21.5 200 0 2000 + +TH2F phodo_1x_pos_ped_vs_pad 'SHMS 1X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.1x.posAdcCounter P.hod.1x.posAdcPed 13 0.5 13.5 400 0 4000 +TH2F phodo_1y_pos_ped_vs_pad 'SHMS 1Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.1y.posAdcCounter P.hod.1y.posAdcPed 13 0.5 13.5 400 0 4000 +TH2F phodo_2x_pos_ped_vs_pad 'SHMS 2X+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.2x.posAdcCounter P.hod.2x.posAdcPed 14 0.5 14.5 400 0 4000 +TH2F phodo_2y_pos_ped_vs_pad 'SHMS 2Y+ Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.2y.posAdcCounter P.hod.2y.posAdcPed 21 0.5 21.5 400 0 4000 + +TH2F phodo_1x_neg_ped_vs_pad 'SHMS 1X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.1x.negAdcCounter P.hod.1x.negAdcPed 13 0.5 13.5 400 0 4000 +TH2F phodo_1y_neg_ped_vs_pad 'SHMS 1Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.1y.negAdcCounter P.hod.1y.negAdcPed 13 0.5 13.5 400 0 4000 +TH2F phodo_2x_neg_ped_vs_pad 'SHMS 2X- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.2x.negAdcCounter P.hod.2x.negAdcPed 14 0.5 14.5 400 0 4000 +TH2F phodo_2y_neg_ped_vs_pad 'SHMS 2Y- Pulse Pedestal vs. Paddle Number; Paddle Number; Pulse Pedestal / 10 ADC Units' P.hod.2y.negAdcCounter P.hod.2y.negAdcPed 21 0.5 21.5 400 0 4000 + +TH2F phodo_1x_pos_pi_vs_pad 'SHMS 1X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.posAdcCounter P.hod.1x.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_1y_pos_pi_vs_pad 'SHMS 1Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.posAdcCounter P.hod.1y.posAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_2x_pos_pi_vs_pad 'SHMS 2X+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.posAdcCounter P.hod.2x.posAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F phodo_2y_pos_pi_vs_pad 'SHMS 2Y+ Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.posAdcCounter P.hod.2y.posAdcPulseInt 21 0.5 21.5 4000 0 40000 + +TH2F phodo_1x_neg_pi_vs_pad 'SHMS 1X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1x.negAdcCounter P.hod.1x.negAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_1y_neg_pi_vs_pad 'SHMS 1Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.1y.negAdcCounter P.hod.1y.negAdcPulseInt 13 0.5 13.5 4000 0 40000 +TH2F phodo_2x_neg_pi_vs_pad 'SHMS 2X- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2x.negAdcCounter P.hod.2x.negAdcPulseInt 14 0.5 14.5 4000 0 40000 +TH2F phodo_2y_neg_pi_vs_pad 'SHMS 2Y- Pulse Integral vs. Paddle Number; Paddle Number; Pulse Integral / 10 ADC Units' P.hod.2y.negAdcCounter P.hod.2y.negAdcPulseInt 21 0.5 21.5 4000 0 40000 + +TH2F phodo_1x_pos_pamp_vs_pad 'SHMS 1X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.1x.posAdcCounter P.hod.1x.posAdcPulseAmp 13 0.5 13.5 410 0 4100 +TH2F phodo_1y_pos_pamp_vs_pad 'SHMS 1Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.1y.posAdcCounter P.hod.1y.posAdcPulseAmp 13 0.5 13.5 410 0 4100 +TH2F phodo_2x_pos_pamp_vs_pad 'SHMS 2X+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.2x.posAdcCounter P.hod.2x.posAdcPulseAmp 14 0.5 14.5 410 0 4100 +TH2F phodo_2y_pos_pamp_vs_pad 'SHMS 2Y+ Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.2y.posAdcCounter P.hod.2y.posAdcPulseAmp 21 0.5 21.5 410 0 4100 + +TH2F phodo_1x_neg_pamp_vs_pad 'SHMS 1X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.1x.negAdcCounter P.hod.1x.negAdcPulseAmp 13 0.5 13.5 410 0 4100 +TH2F phodo_1y_neg_pamp_vs_pad 'SHMS 1Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.1y.negAdcCounter P.hod.1y.negAdcPulseAmp 13 0.5 13.5 410 0 4100 +TH2F phodo_2x_neg_pamp_vs_pad 'SHMS 2X- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.2x.negAdcCounter P.hod.2x.negAdcPulseAmp 14 0.5 14.5 410 0 4100 +TH2F phodo_2y_neg_pamp_vs_pad 'SHMS 2Y- Pulse Amplitude vs. Paddle Number; Paddle Number; Pulse Amplitude / 10 ADC Units' P.hod.2y.negAdcCounter P.hod.2y.negAdcPulseAmp 21 0.5 21.5 410 0 4100 + +TH2F phodo_1x_pos_tdc_time_vs_pad 'SHMS 1X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.1x.posTdcCounter P.hod.1x.posTdcTime 13 0.5 13.5 200 -2000 0 +TH2F phodo_1y_pos_tdc_time_vs_pad 'SHMS 1Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.1y.posTdcCounter P.hod.1y.posTdcTime 13 0.5 13.5 200 -2000 0 +TH2F phodo_2x_pos_tdc_time_vs_pad 'SHMS 2X+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.2x.posTdcCounter P.hod.2x.posTdcTime 14 0.5 14.5 200 -2000 0 +TH2F phodo_2y_pos_tdc_time_vs_pad 'SHMS 2Y+ TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.2y.posTdcCounter P.hod.2y.posTdcTime 21 0.5 21.5 200 -2000 0 + +TH2F phodo_1x_neg_tdc_time_vs_pad 'SHMS 1X- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.1x.negTdcCounter P.hod.1x.negTdcTime 13 0.5 13.5 200 -2000 0 +TH2F phodo_1y_neg_tdc_time_vs_pad 'SHMS 1Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.1y.negTdcCounter P.hod.1y.negTdcTime 13 0.5 13.5 200 -2000 0 +TH2F phodo_2x_neg_tdc_time_vs_pad 'SHMS 2X- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.2x.negTdcCounter P.hod.2x.negTdcTime 14 0.5 14.5 200 -2000 0 +TH2F phodo_2y_neg_tdc_time_vs_pad 'SHMS 2Y- TDC Time vs. Paddle Number; Paddle Number; TDC Time / 10 ADC Units' P.hod.2y.negTdcCounter P.hod.2y.negTdcTime 21 0.5 21.5 200 -2000 0 \ No newline at end of file diff --git a/DEF-files/SHMS/HODO/phodoana_cuts.def b/DEF-files/SHMS/HODO/phodoana_cuts.def new file mode 100644 index 00000000..5add84a3 --- /dev/null +++ b/DEF-files/SHMS/HODO/phodoana_cuts.def @@ -0,0 +1,14 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 + diff --git a/DEF-files/SHMS/NGCER/pngcerana.def b/DEF-files/SHMS/NGCER/pngcerana.def new file mode 100644 index 00000000..d069b91a --- /dev/null +++ b/DEF-files/SHMS/NGCER/pngcerana.def @@ -0,0 +1,15 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block P.ngcer.* +block T.shms.* + +TH1F pngcer_occu 'SHMS Noble Gas Cherenkov Occupancy; Counter Number; Number of Entries' P.ngcer.adcCounter 4 0.5 4.5 + +TH2F pngcer_rawped_vs_cntr 'SHMS Noble Gas Cherenkov Raw Pulse Pedestal vs. Counter Number; Counter Number; Raw Pulse Pedestal / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPedRaw 4 0.5 4.5 1000 0 10000 +TH2F pngcer_rawpi_vs_cntr 'SHMS Noble Gas Cherenkov Raw Pulse Integral vs. Counter Number; Counter Number; Raw Pulse Integral / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseIntRaw 4 0.5 4.5 4000 0 40000 +TH2F pngcer_rawamp_vs_cntr 'SHMS Noble Gas Cherenkov Raw Pulse Amplitude vs. Counter Number; Counter Number; Raw Pulse Amplitude / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseAmpRaw 4 0.5 4.5 410 0 4100 +TH2F pngcer_rawptime_vs_cntr 'SHMS Noble Gas Cherenkov Raw Pulse Time vs. Counter Number; Counter Number; Raw Pulse Time / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseTimeRaw 4 0.5 4.5 1000 0 10000 + +TH2F pngcer_ped_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Pedestal vs. Counter Number; Counter Number; Pulse Pedestal / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPed 4 0.5 4.5 1000 0 10000 +TH2F pngcer_pi_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Integral vs. Counter Number; Counter Number; Pulse Integral / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseInt 4 0.5 4.5 4000 0 40000 +TH2F pngcer_amp_vs_cntr 'SHMS Noble Gas Cherenkov Pulse Amplitude vs. Counter Number; Counter Number; Pulse Amplitude / 10 ADC Units' P.ngcer.adcCounter P.ngcer.adcPulseAmp 4 0.5 4.5 410 0 4100 \ No newline at end of file diff --git a/DEF-files/SHMS/NGCER/pngcerana_cuts.def b/DEF-files/SHMS/NGCER/pngcerana_cuts.def new file mode 100644 index 00000000..5add84a3 --- /dev/null +++ b/DEF-files/SHMS/NGCER/pngcerana_cuts.def @@ -0,0 +1,14 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 + diff --git a/DEF-files/SHMS/RASTER/shms_raster_simple.def b/DEF-files/SHMS/RASTER/shms_raster_simple.def new file mode 100644 index 00000000..c8d3aff7 --- /dev/null +++ b/DEF-files/SHMS/RASTER/shms_raster_simple.def @@ -0,0 +1,20 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block T.shms.* +# 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 + diff --git a/DEF-files/SHMS/RASTER/shms_raster_simple_cuts.def b/DEF-files/SHMS/RASTER/shms_raster_simple_cuts.def new file mode 100644 index 00000000..3af34a5e --- /dev/null +++ b/DEF-files/SHMS/RASTER/shms_raster_simple_cuts.def @@ -0,0 +1,13 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 diff --git a/DEF-files/SHMS/TRIG/ptrigana.def b/DEF-files/SHMS/TRIG/ptrigana.def new file mode 100644 index 00000000..cfa66389 --- /dev/null +++ b/DEF-files/SHMS/TRIG/ptrigana.def @@ -0,0 +1,38 @@ +# See $ANALYZER/examples/output_example.def for examples +# +block T.shms.* + +TH1F ptrig_p1x_tdc 'SHMS p1x TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1X_tdcTime 250 0 2500 +TH1F ptrig_p1y_tdc 'SHMS p1y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1Y_tdcTime 250 0 2500 +TH1F ptrig_p2x_tdc 'SHMS p2x TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2X_tdcTime 250 0 2500 +TH1F ptrig_p2y_tdc 'SHMS p2y TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2Y_tdcTime 250 0 2500 + +TH1F ptrig_p1T_tdc 'SHMS p1x/p1y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p1T_tdcTime 250 0 2500 +TH1F ptrig_p2T_tdc 'SHMS p2x/p2y Coincidence TDC Time; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.p2T_tdcTime 250 0 2500 + +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 250 0 2500 +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 250 0 2500 +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 250 0 2500 + +TH1F ptrig_hdc_ref1 'SHMS HDC Reference Time 1; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF1_tdcTime 1500 0 15000 +TH1F ptrig_hdc_ref2 'SHMS HDC Reference Time 2; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF2_tdcTime 1500 0 15000 +TH1F ptrig_hdc_ref3 'SHMS HDC Reference Time 3; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF3_tdcTime 1500 0 15000 +TH1F ptrig_hdc_ref4 'SHMS HDC Reference Time 4; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF4_tdcTime 1500 0 15000 +TH1F ptrig_hdc_ref5 'SHMS HDC Reference Time 5; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF5_tdcTime 1500 0 15000 +TH1F ptrig_hdc_ref6 'SHMS HDC Reference Time 6; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF6_tdcTime 1500 0 15000 +TH1F ptrig_hdc_ref7 'SHMS HDC Reference Time 7; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF7_tdcTime 1500 0 15000 +TH1F ptrig_hdc_ref8 'SHMS HDC Reference Time 8; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF8_tdcTime 1500 0 15000 +TH1F ptrig_hdc_ref9 'SHMS HDC Reference Time 9; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF9_tdcTime 1500 0 15000 +TH1F ptrig_hdc_ref10 'SHMS HDC Reference Time 10; Raw TDC Time (TDC Units); Counts / 10 TDC Units;' T.shms.pDCREF10_tdcTime 1500 0 15000 + +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 diff --git a/DEF-files/SHMS/TRIG/ptrigana_cuts.def b/DEF-files/SHMS/TRIG/ptrigana_cuts.def new file mode 100644 index 00000000..3af34a5e --- /dev/null +++ b/DEF-files/SHMS/TRIG/ptrigana_cuts.def @@ -0,0 +1,13 @@ +Block: RawDecode + +Pedestal_event 0 +RawDecode_master 1 + +Block: Decode +Decode_master 1 + +Block: CoarseTracking +CoarseTracking_master 1 + +Block: CoarseReconstruct +CourseReconstruct 0 diff --git a/MAPS/HMS/CRATE/db_crate1map.dat b/MAPS/HMS/CRATE/db_crate1map.dat index 1716cb80..e7f21b55 100644 --- a/MAPS/HMS/CRATE/db_crate1map.dat +++ b/MAPS/HMS/CRATE/db_crate1map.dat @@ -16,4 +16,4 @@ 17 250 250 18 250 250 19 250 250 - 20 1190 1190 \ No newline at end of file + 20 1190 1190 diff --git a/MAPS/HMS/DETEC/haero.map b/MAPS/HMS/DETEC/haero.map index a3170886..9c877a40 100644 --- a/MAPS/HMS/DETEC/haero.map +++ b/MAPS/HMS/DETEC/haero.map @@ -24,4 +24,4 @@ SLOT=17 4, 1, 5, 0! hAER05+ 5, 1, 6, 0! hAER06+ 6, 1, 7, 0! hAER07+ - 7, 1, 8, 0! hAER08+ \ No newline at end of file + 7, 1, 8, 0! hAER08+ diff --git a/MAPS/HMS/DETEC/hcal.map b/MAPS/HMS/DETEC/hcal.map index 33d9b104..c79bed6a 100644 --- a/MAPS/HMS/DETEC/hcal.map +++ b/MAPS/HMS/DETEC/hcal.map @@ -36,7 +36,7 @@ SLOT=4 8, 1, 12, 1! hA12- 9, 1, 13, 1! hA13- 10, 2, 1, 0! hB01+ - 11, 2, 2, 0! hB02+ + 11, 2, 2, 0! hB02+ 12, 2, 3, 0! hB03+ 13, 2, 4, 0! hB04+ 14, 2, 5, 0! hB05+ @@ -78,7 +78,7 @@ SLOT=6 14, 3, 11, 0! hC11+ 15, 3, 12, 0! hC12+ SLOT=7 -! chan plane row sig +! chan plane row sig 0, 3, 13, 0! hC13+ 1, 4, 1, 0! hD01+ 2, 4, 2, 0! hD02+ @@ -92,4 +92,4 @@ SLOT=7 10, 4, 10, 0! hD10+ 11, 4, 11, 0! hD11+ 12, 4, 12, 0! hD12+ - 13, 4, 13, 0! hD13+ \ No newline at end of file + 13, 4, 13, 0! hD13+ diff --git a/MAPS/HMS/DETEC/hcal_htrig.map b/MAPS/HMS/DETEC/hcal_htrig.map new file mode 100644 index 00000000..3c34c7d2 --- /dev/null +++ b/MAPS/HMS/DETEC/hcal_htrig.map @@ -0,0 +1,145 @@ +! THMS_ID=10 :: ADC,TDC +! HCAL_ID=15 :: ADC,TDC + + +DETECTOR=10 + +ROC=1 + +SLOT=17 + 8, 1, 1, 0 ! hASUM + 9, 1, 2, 0 ! hBSUM + 10, 1, 3, 0 ! hCSUM + 11, 1, 4, 0 ! hDSUM + 12, 1, 5, 0 ! hPSHWR + 13, 1, 6, 0 ! hSHWR + 14, 1, 7, 0 ! hAERSUM + 15, 1, 8, 0 ! hCERSUM + +SLOT=2 + 0, 2, 1, 1 ! h1X + 1, 2, 2, 1 ! h1Y + 2, 2, 3, 1 ! h2X + 3, 2, 4, 1 ! h2Y + 4, 2, 5, 1 ! h1T + 5, 2, 6, 1 ! h2T + 6, 2, 7, 1 ! hT1 + 7, 2, 8, 1 ! hASUM + 8, 2, 9, 1 ! hBSUM + 9, 2, 10, 1 ! hCSUM + 10, 2, 11, 1 ! hDSUM + 11, 2, 12, 1 ! hPSHWRLO + 12, 2, 13, 1 ! hPSHWRHI + 13, 2, 14, 1 ! hSHWR + 14, 2, 15, 1 ! hAERSUM + 15, 2, 16, 1 ! hCERSUM + +SLOT=20 + 127, 2, 17, 1 ! hT2 + +ROC=3 + +SLOT=5 + 111, 2, 18, 1 ! hDCREF1 + +SLOT=8 + 127, 2, 19, 1 ! hDCREF2 + +SLOT=10 + 127, 2, 20, 1 ! hDCREF3 + +SLOT=17 + 127, 2, 21, 1 ! hDCREF4 + + +DETECTOR=15 + +ROC=1 + +SLOT=3 + 0, 1, 1, 0 ! hA01+ + 1, 1, 2, 0 ! hA02+ + 2, 1, 3, 0 ! hA03+ + 3, 1, 4, 0 ! hA04+ + 4, 1, 5, 0 ! hA05+ + 5, 1, 6, 0 ! hA06+ + 6, 1, 7, 0 ! hA07+ + 7, 1, 8, 0 ! hA08+ + 8, 1, 9, 0 ! hA09+ + 9, 1, 10, 0 ! hA10+ + 10, 1, 11, 0 ! hA11+ + 11, 1, 12, 0 ! hA12+ + 12, 1, 13, 0 ! hA13+ + 13, 1, 1, 1 ! hA01- + 14, 1, 2, 1 ! hA02- + 15, 1, 3, 1 ! hA03- + +SLOT=4 + 0, 1, 4, 1 ! hA04- + 1, 1, 5, 1 ! hA05- + 2, 1, 6, 1 ! hA06- + 3, 1, 7, 1 ! hA07- + 4, 1, 8, 1 ! hA08- + 5, 1, 9, 1 ! hA09- + 6, 1, 10, 1 ! hA10- + 7, 1, 11, 1 ! hA11- + 8, 1, 12, 1 ! hA12- + 9, 1, 13, 1 ! hA13- + 10, 2, 1, 0 ! hB01+ + 11, 2, 2, 0 ! hB02+ + 12, 2, 3, 0 ! hB03+ + 13, 2, 4, 0 ! hB04+ + 14, 2, 5, 0 ! hB05+ + 15, 2, 6, 0 ! hB06+ + +SLOT=5 + 0, 2, 7, 0 ! hB07+ + 1, 2, 8, 0 ! hB08+ + 2, 2, 9, 0 ! hB09+ + 3, 2, 10, 0 ! hB10+ + 4, 2, 11, 0 ! hB11+ + 5, 2, 12, 0 ! hB12+ + 6, 2, 13, 0 ! hB13+ + 7, 2, 1, 1 ! hB01- + 8, 2, 2, 1 ! hB02- + 9, 2, 3, 1 ! hB03- + 10, 2, 4, 1 ! hB04- + 11, 2, 5, 1 ! hB05- + 12, 2, 6, 1 ! hB06- + 13, 2, 7, 1 ! hB07- + 14, 2, 8, 1 ! hB08- + 15, 2, 9, 1 ! hB09- + +SLOT=6 + 0, 2, 10, 1 ! hB10- + 1, 2, 11, 1 ! hB11- + 2, 2, 12, 1 ! hB12- + 3, 2, 13, 1 ! hB13- + 4, 3, 1, 0 ! hC01+ + 5, 3, 2, 0 ! hC02+ + 6, 3, 3, 0 ! hC03+ + 7, 3, 4, 0 ! hC04+ + 8, 3, 5, 0 ! hC05+ + 9, 3, 6, 0 ! hC06+ + 10, 3, 7, 0 ! hC07+ + 11, 3, 8, 0 ! hC08+ + 12, 3, 9, 0 ! hC09+ + 13, 3, 10, 0 ! hC10+ + 14, 3, 11, 0 ! hC11+ + 15, 3, 12, 0 ! hC12+ + +SLOT=7 + 0, 3, 13, 0 ! hC13+ + 1, 4, 1, 0 ! hD01+ + 2, 4, 2, 0 ! hD02+ + 3, 4, 3, 0 ! hD03+ + 4, 4, 4, 0 ! hD04+ + 5, 4, 5, 0 ! hD05+ + 6, 4, 6, 0 ! hD06+ + 7, 4, 7, 0 ! hD07+ + 8, 4, 8, 0 ! hD08+ + 9, 4, 9, 0 ! hD09+ + 10, 4, 10, 0 ! hD10+ + 11, 4, 11, 0 ! hD11+ + 12, 4, 12, 0 ! hD12+ + 13, 4, 13, 0 ! hD13+ diff --git a/MAPS/HMS/DETEC/hcer.map b/MAPS/HMS/DETEC/hcer.map new file mode 100644 index 00000000..805bd365 --- /dev/null +++ b/MAPS/HMS/DETEC/hcer.map @@ -0,0 +1,12 @@ +!HMS: +! HCER_ID= 14 (TDC),ADC + +ROC=1 +detector=14 + +!F250 modules +SLOT=7 +! chan plane tube sig + 14, 1, 1, 0! hCER01 + 15, 1, 2, 0! hCER02 + diff --git a/MAPS/HMS/DETEC/hcer_htrig.map b/MAPS/HMS/DETEC/hcer_htrig.map new file mode 100644 index 00000000..f46b6ef6 --- /dev/null +++ b/MAPS/HMS/DETEC/hcer_htrig.map @@ -0,0 +1,61 @@ +! THMS_ID=10 :: ADC,TDC +! HCER_ID=14 :: (TDC),ADC + + +DETECTOR=10 + +ROC=1 + +SLOT=17 + 8, 1, 1, 0 ! hASUM + 9, 1, 2, 0 ! hBSUM + 10, 1, 3, 0 ! hCSUM + 11, 1, 4, 0 ! hDSUM + 12, 1, 5, 0 ! hPSHWR + 13, 1, 6, 0 ! hSHWR + 14, 1, 7, 0 ! hAERSUM + 15, 1, 8, 0 ! hCERSUM + +SLOT=2 + 0, 2, 1, 1 ! h1X + 1, 2, 2, 1 ! h1Y + 2, 2, 3, 1 ! h2X + 3, 2, 4, 1 ! h2Y + 4, 2, 5, 1 ! h1T + 5, 2, 6, 1 ! h2T + 6, 2, 7, 1 ! hT1 + 7, 2, 8, 1 ! hASUM + 8, 2, 9, 1 ! hBSUM + 9, 2, 10, 1 ! hCSUM + 10, 2, 11, 1 ! hDSUM + 11, 2, 12, 1 ! hPSHWRLO + 12, 2, 13, 1 ! hPSHWRHI + 13, 2, 14, 1 ! hSHWR + 14, 2, 15, 1 ! hAERSUM + 15, 2, 16, 1 ! hCERSUM + +SLOT=20 + 127, 2, 17, 1 ! hT2 + +ROC=3 + +SLOT=5 + 111, 2, 18, 1 ! hDCREF1 + +SLOT=8 + 127, 2, 19, 1 ! hDCREF2 + +SLOT=10 + 127, 2, 20, 1 ! hDCREF3 + +SLOT=17 + 127, 2, 21, 1 ! hDCREF4 + + +DETECTOR=14 + +ROC=1 + +SLOT=7 + 14, 1, 1, 0 ! hCER01 + 15, 1, 2, 0 ! hCER02 diff --git a/MAPS/HMS/DETEC/hdc.map b/MAPS/HMS/DETEC/hdc.map index 74b3017e..4311a238 100644 --- a/MAPS/HMS/DETEC/hdc.map +++ b/MAPS/HMS/DETEC/hdc.map @@ -1,1141 +1,1159 @@ -!HMS: -! HDC_ID= 11 TDC +! HDC_ID=11 :: TDC + + +DETECTOR=11 ! HMS chambers ROC=3 -detector=11 ! HMS chambers -! Caen 1190 VME Modules >> DC1 SLOT=5 -! channel,plane,wire -96,3,1 ! Plane U, wire 1 -97,3,2 ! Plane U, wire 2 -98,3,3 ! Plane U, wire 3 -99,3,4 ! Plane U, wire 4 -100,3,5 ! Plane U, wire 5 -101,3,6 ! Plane U, wire 6 -102,3,7 ! Plane U, wire 7 -103,3,8 ! Plane U, wire 8 -104,3,9 ! Plane U, wire 9 -105,3,10 ! Plane U, wire 10 -106,3,11 ! Plane U, wire 11 -107,3,12 ! Plane U, wire 12 -108,3,13 ! Plane U, wire 13 -109,3,14 ! Plane U, wire 14 -110,1,113 ! Plane X, wire 113 -80,3,15 ! Plane U, wire 15 -81,3,16 ! Plane U, wire 16 -82,3,17 ! Plane U, wire 17 -83,3,18 ! Plane U, wire 18 -84,3,19 ! Plane U, wire 19 -85,3,20 ! Plane U, wire 20 -86,3,21 ! Plane U, wire 21 -87,3,22 ! Plane U, wire 22 -88,3,23 ! Plane U, wire 23 -89,3,24 ! Plane U, wire 24 -90,3,25 ! Plane U, wire 25 -91,3,26 ! Plane U, wire 26 -92,3,27 ! Plane U, wire 27 -93,3,28 ! Plane U, wire 28 -94,3,29 ! Plane U, wire 29 -64,3,30 ! Plane U, wire 30 -65,3,31 ! Plane U, wire 31 -66,3,32 ! Plane U, wire 32 -67,3,33 ! Plane U, wire 33 -68,3,34 ! Plane U, wire 34 -69,3,35 ! Plane U, wire 35 -70,3,36 ! Plane U, wire 36 -71,3,37 ! Plane U, wire 37 -72,3,38 ! Plane U, wire 38 -73,3,39 ! Plane U, wire 39 -74,3,40 ! Plane U, wire 40 -75,3,41 ! Plane U, wire 41 -76,3,42 ! Plane U, wire 42 -77,3,43 ! Plane U, wire 43 -78,3,44 ! Plane U, wire 44 -79,3,45 ! Plane U, wire 45 -48,3,46 ! Plane U, wire 46 -49,3,47 ! Plane U, wire 47 -50,3,48 ! Plane U, wire 48 -51,3,49 ! Plane U, wire 49 -52,3,50 ! Plane U, wire 50 -53,3,51 ! Plane U, wire 51 -54,3,52 ! Plane U, wire 52 -55,3,53 ! Plane U, wire 53 -56,3,54 ! Plane U, wire 54 -57,3,55 ! Plane U, wire 55 -58,3,56 ! Plane U, wire 56 -59,3,57 ! Plane U, wire 57 -60,3,58 ! Plane U, wire 58 -61,3,59 ! Plane U, wire 59 -62,3,60 ! Plane U, wire 60 -32,3,61 ! Plane U, wire 61 -33,3,62 ! Plane U, wire 62 -34,3,63 ! Plane U, wire 63 -35,3,64 ! Plane U, wire 64 -36,3,65 ! Plane U, wire 65 -37,3,66 ! Plane U, wire 66 -38,3,67 ! Plane U, wire 67 -39,3,68 ! Plane U, wire 68 -40,3,69 ! Plane U, wire 69 -41,3,70 ! Plane U, wire 70 -42,3,71 ! Plane U, wire 71 -43,3,72 ! Plane U, wire 72 -44,3,73 ! Plane U, wire 73 -45,3,74 ! Plane U, wire 74 -46,3,75 ! Plane U, wire 75 -47,3,76 ! Plane U, wire 76 -16,3,77 ! Plane U, wire 77 -17,3,78 ! Plane U, wire 78 -18,3,79 ! Plane U, wire 79 -19,3,80 ! Plane U, wire 80 -20,3,81 ! Plane U, wire 81 -21,3,82 ! Plane U, wire 82 -22,3,83 ! Plane U, wire 83 -23,3,84 ! Plane U, wire 84 -24,3,85 ! Plane U, wire 85 -25,3,86 ! Plane U, wire 86 -26,3,87 ! Plane U, wire 87 -27,3,88 ! Plane U, wire 88 -28,3,89 ! Plane U, wire 89 -29,3,90 ! Plane U, wire 90 -30,3,91 ! Plane U, wire 91 -0,3,92 ! Plane U, wire 92 -1,3,93 ! Plane U, wire 93 -2,3,94 ! Plane U, wire 94 -3,3,95 ! Plane U, wire 95 -4,3,96 ! Plane U, wire 96 -5,3,97 ! Plane U, wire 97 -6,3,98 ! Plane U, wire 98 -7,3,99 ! Plane U, wire 99 -8,3,100 ! Plane U, wire 100 -9,3,101 ! Plane U, wire 101 -10,3,102 ! Plane U, wire 102 -11,3,103 ! Plane U, wire 103 -12,3,104 ! Plane U, wire 104 -13,3,105 ! Plane U, wire 105 -14,3,106 ! Plane U, wire 106 -15,3,107 ! Plane U, wire 107 +REFINDEX=0 + 111,1000, 0, 0 + 96, 3, 1 ! Plane U, wire 1 + 97, 3, 2 ! Plane U, wire 2 + 98, 3, 3 ! Plane U, wire 3 + 99, 3, 4 ! Plane U, wire 4 + 100, 3, 5 ! Plane U, wire 5 + 101, 3, 6 ! Plane U, wire 6 + 102, 3, 7 ! Plane U, wire 7 + 103, 3, 8 ! Plane U, wire 8 + 104, 3, 9 ! Plane U, wire 9 + 105, 3, 10 ! Plane U, wire 10 + 106, 3, 11 ! Plane U, wire 11 + 107, 3, 12 ! Plane U, wire 12 + 108, 3, 13 ! Plane U, wire 13 + 109, 3, 14 ! Plane U, wire 14 + 110, 1, 113 ! Plane X, wire 113 + 80, 3, 15 ! Plane U, wire 15 + 81, 3, 16 ! Plane U, wire 16 + 82, 3, 17 ! Plane U, wire 17 + 83, 3, 18 ! Plane U, wire 18 + 84, 3, 19 ! Plane U, wire 19 + 85, 3, 20 ! Plane U, wire 20 + 86, 3, 21 ! Plane U, wire 21 + 87, 3, 22 ! Plane U, wire 22 + 88, 3, 23 ! Plane U, wire 23 + 89, 3, 24 ! Plane U, wire 24 + 90, 3, 25 ! Plane U, wire 25 + 91, 3, 26 ! Plane U, wire 26 + 92, 3, 27 ! Plane U, wire 27 + 93, 3, 28 ! Plane U, wire 28 + 94, 3, 29 ! Plane U, wire 29 + 64, 3, 30 ! Plane U, wire 30 + 65, 3, 31 ! Plane U, wire 31 + 66, 3, 32 ! Plane U, wire 32 + 67, 3, 33 ! Plane U, wire 33 + 68, 3, 34 ! Plane U, wire 34 + 69, 3, 35 ! Plane U, wire 35 + 70, 3, 36 ! Plane U, wire 36 + 71, 3, 37 ! Plane U, wire 37 + 72, 3, 38 ! Plane U, wire 38 + 73, 3, 39 ! Plane U, wire 39 + 74, 3, 40 ! Plane U, wire 40 + 75, 3, 41 ! Plane U, wire 41 + 76, 3, 42 ! Plane U, wire 42 + 77, 3, 43 ! Plane U, wire 43 + 78, 3, 44 ! Plane U, wire 44 + 79, 3, 45 ! Plane U, wire 45 + 48, 3, 46 ! Plane U, wire 46 + 49, 3, 47 ! Plane U, wire 47 + 50, 3, 48 ! Plane U, wire 48 + 51, 3, 49 ! Plane U, wire 49 + 52, 3, 50 ! Plane U, wire 50 + 53, 3, 51 ! Plane U, wire 51 + 54, 3, 52 ! Plane U, wire 52 + 55, 3, 53 ! Plane U, wire 53 + 56, 3, 54 ! Plane U, wire 54 + 57, 3, 55 ! Plane U, wire 55 + 58, 3, 56 ! Plane U, wire 56 + 59, 3, 57 ! Plane U, wire 57 + 60, 3, 58 ! Plane U, wire 58 + 61, 3, 59 ! Plane U, wire 59 + 62, 3, 60 ! Plane U, wire 60 + 32, 3, 61 ! Plane U, wire 61 + 33, 3, 62 ! Plane U, wire 62 + 34, 3, 63 ! Plane U, wire 63 + 35, 3, 64 ! Plane U, wire 64 + 36, 3, 65 ! Plane U, wire 65 + 37, 3, 66 ! Plane U, wire 66 + 38, 3, 67 ! Plane U, wire 67 + 39, 3, 68 ! Plane U, wire 68 + 40, 3, 69 ! Plane U, wire 69 + 41, 3, 70 ! Plane U, wire 70 + 42, 3, 71 ! Plane U, wire 71 + 43, 3, 72 ! Plane U, wire 72 + 44, 3, 73 ! Plane U, wire 73 + 45, 3, 74 ! Plane U, wire 74 + 46, 3, 75 ! Plane U, wire 75 + 47, 3, 76 ! Plane U, wire 76 + 16, 3, 77 ! Plane U, wire 77 + 17, 3, 78 ! Plane U, wire 78 + 18, 3, 79 ! Plane U, wire 79 + 19, 3, 80 ! Plane U, wire 80 + 20, 3, 81 ! Plane U, wire 81 + 21, 3, 82 ! Plane U, wire 82 + 22, 3, 83 ! Plane U, wire 83 + 23, 3, 84 ! Plane U, wire 84 + 24, 3, 85 ! Plane U, wire 85 + 25, 3, 86 ! Plane U, wire 86 + 26, 3, 87 ! Plane U, wire 87 + 27, 3, 88 ! Plane U, wire 88 + 28, 3, 89 ! Plane U, wire 89 + 29, 3, 90 ! Plane U, wire 90 + 30, 3, 91 ! Plane U, wire 91 + 0, 3, 92 ! Plane U, wire 92 + 1, 3, 93 ! Plane U, wire 93 + 2, 3, 94 ! Plane U, wire 94 + 3, 3, 95 ! Plane U, wire 95 + 4, 3, 96 ! Plane U, wire 96 + 5, 3, 97 ! Plane U, wire 97 + 6, 3, 98 ! Plane U, wire 98 + 7, 3, 99 ! Plane U, wire 99 + 8, 3, 100 ! Plane U, wire 100 + 9, 3, 101 ! Plane U, wire 101 + 10, 3, 102 ! Plane U, wire 102 + 11, 3, 103 ! Plane U, wire 103 + 12, 3, 104 ! Plane U, wire 104 + 13, 3, 105 ! Plane U, wire 105 + 14, 3, 106 ! Plane U, wire 106 + 15, 3, 107 ! Plane U, wire 107 + SLOT=7 -! channel,plane,wire -96,4,1 ! Plane V, wire 1 -97,4,2 ! Plane V, wire 2 -98,4,3 ! Plane V, wire 3 -99,4,4 ! Plane V, wire 4 -100,4,5 ! Plane V, wire 5 -101,4,6 ! Plane V, wire 6 -102,4,7 ! Plane V, wire 7 -103,4,8 ! Plane V, wire 8 -104,4,9 ! Plane V, wire 9 -105,4,10 ! Plane V, wire 10 -106,4,11 ! Plane V, wire 11 -107,4,12 ! Plane V, wire 12 -108,4,13 ! Plane V, wire 13 -109,4,14 ! Plane V, wire 14 -110,6,113 ! Plane X', wire 113 -112,4,15 ! Plane V, wire 15 -113,4,16 ! Plane V, wire 16 -114,4,17 ! Plane V, wire 17 -115,4,18 ! Plane V, wire 18 -116,4,19 ! Plane V, wire 19 -117,4,20 ! Plane V, wire 20 -118,4,21 ! Plane V, wire 21 -119,4,22 ! Plane V, wire 22 -120,4,23 ! Plane V, wire 23 -121,4,24 ! Plane V, wire 24 -122,4,25 ! Plane V, wire 25 -123,4,26 ! Plane V, wire 26 -124,4,27 ! Plane V, wire 27 -125,4,28 ! Plane V, wire 28 -126,4,29 ! Plane V, wire 29 +REFINDEX=0 + 96, 4, 1 ! Plane V, wire 1 + 97, 4, 2 ! Plane V, wire 2 + 98, 4, 3 ! Plane V, wire 3 + 99, 4, 4 ! Plane V, wire 4 + 100, 4, 5 ! Plane V, wire 5 + 101, 4, 6 ! Plane V, wire 6 + 102, 4, 7 ! Plane V, wire 7 + 103, 4, 8 ! Plane V, wire 8 + 104, 4, 9 ! Plane V, wire 9 + 105, 4, 10 ! Plane V, wire 10 + 106, 4, 11 ! Plane V, wire 11 + 107, 4, 12 ! Plane V, wire 12 + 108, 4, 13 ! Plane V, wire 13 + 109, 4, 14 ! Plane V, wire 14 + 110, 6, 113 ! Plane X', wire 113 + 112, 4, 15 ! Plane V, wire 15 + 113, 4, 16 ! Plane V, wire 16 + 114, 4, 17 ! Plane V, wire 17 + 115, 4, 18 ! Plane V, wire 18 + 116, 4, 19 ! Plane V, wire 19 + 117, 4, 20 ! Plane V, wire 20 + 118, 4, 21 ! Plane V, wire 21 + 119, 4, 22 ! Plane V, wire 22 + 120, 4, 23 ! Plane V, wire 23 + 121, 4, 24 ! Plane V, wire 24 + 122, 4, 25 ! Plane V, wire 25 + 123, 4, 26 ! Plane V, wire 26 + 124, 4, 27 ! Plane V, wire 27 + 125, 4, 28 ! Plane V, wire 28 + 126, 4, 29 ! Plane V, wire 29 + SLOT=8 -! channel,plane,wire -0,4,30 ! Plane V, wire 30 -1,4,31 ! Plane V, wire 31 -2,4,32 ! Plane V, wire 32 -3,4,33 ! Plane V, wire 33 -4,4,34 ! Plane V, wire 34 -5,4,35 ! Plane V, wire 35 -6,4,36 ! Plane V, wire 36 -7,4,37 ! Plane V, wire 37 -8,4,38 ! Plane V, wire 38 -9,4,39 ! Plane V, wire 39 -10,4,40 ! Plane V, wire 40 -11,4,41 ! Plane V, wire 41 -12,4,42 ! Plane V, wire 42 -13,4,43 ! Plane V, wire 43 -14,4,44 ! Plane V, wire 44 -15,4,45 ! Plane V, wire 45 -16,4,46 ! Plane V, wire 46 -17,4,47 ! Plane V, wire 47 -18,4,48 ! Plane V, wire 48 -19,4,49 ! Plane V, wire 49 -20,4,50 ! Plane V, wire 50 -21,4,51 ! Plane V, wire 51 -22,4,52 ! Plane V, wire 52 -23,4,53 ! Plane V, wire 53 -24,4,54 ! Plane V, wire 54 -25,4,55 ! Plane V, wire 55 -26,4,56 ! Plane V, wire 56 -27,4,57 ! Plane V, wire 57 -28,4,58 ! Plane V, wire 58 -29,4,59 ! Plane V, wire 59 -30,4,60 ! Plane V, wire 60 -32,4,61 ! Plane V, wire 61 -33,4,62 ! Plane V, wire 62 -34,4,63 ! Plane V, wire 63 -35,4,64 ! Plane V, wire 64 -36,4,65 ! Plane V, wire 65 -37,4,66 ! Plane V, wire 66 -38,4,67 ! Plane V, wire 67 -39,4,68 ! Plane V, wire 68 -40,4,69 ! Plane V, wire 69 -41,4,70 ! Plane V, wire 70 -42,4,71 ! Plane V, wire 71 -43,4,72 ! Plane V, wire 72 -44,4,73 ! Plane V, wire 73 -45,4,74 ! Plane V, wire 74 -46,4,75 ! Plane V, wire 75 -47,4,76 ! Plane V, wire 76 -48,4,77 ! Plane V, wire 77 -49,4,78 ! Plane V, wire 78 -50,4,79 ! Plane V, wire 79 -51,4,80 ! Plane V, wire 80 -52,4,81 ! Plane V, wire 81 -53,4,82 ! Plane V, wire 82 -54,4,83 ! Plane V, wire 83 -55,4,84 ! Plane V, wire 84 -56,4,85 ! Plane V, wire 85 -57,4,86 ! Plane V, wire 86 -58,4,87 ! Plane V, wire 87 -59,4,88 ! Plane V, wire 88 -60,4,89 ! Plane V, wire 89 -61,4,90 ! Plane V, wire 90 -62,4,91 ! Plane V, wire 91 +REFINDEX=0 + 127,1000, 0, 1 + 0, 4, 30 ! Plane V, wire 30 + 1, 4, 31 ! Plane V, wire 31 + 2, 4, 32 ! Plane V, wire 32 + 3, 4, 33 ! Plane V, wire 33 + 4, 4, 34 ! Plane V, wire 34 + 5, 4, 35 ! Plane V, wire 35 + 6, 4, 36 ! Plane V, wire 36 + 7, 4, 37 ! Plane V, wire 37 + 8, 4, 38 ! Plane V, wire 38 + 9, 4, 39 ! Plane V, wire 39 + 10, 4, 40 ! Plane V, wire 40 + 11, 4, 41 ! Plane V, wire 41 + 12, 4, 42 ! Plane V, wire 42 + 13, 4, 43 ! Plane V, wire 43 + 14, 4, 44 ! Plane V, wire 44 + 15, 4, 45 ! Plane V, wire 45 + 16, 4, 46 ! Plane V, wire 46 + 17, 4, 47 ! Plane V, wire 47 + 18, 4, 48 ! Plane V, wire 48 + 19, 4, 49 ! Plane V, wire 49 + 20, 4, 50 ! Plane V, wire 50 + 21, 4, 51 ! Plane V, wire 51 + 22, 4, 52 ! Plane V, wire 52 + 23, 4, 53 ! Plane V, wire 53 + 24, 4, 54 ! Plane V, wire 54 + 25, 4, 55 ! Plane V, wire 55 + 26, 4, 56 ! Plane V, wire 56 + 27, 4, 57 ! Plane V, wire 57 + 28, 4, 58 ! Plane V, wire 58 + 29, 4, 59 ! Plane V, wire 59 + 30, 4, 60 ! Plane V, wire 60 + 32, 4, 61 ! Plane V, wire 61 + 33, 4, 62 ! Plane V, wire 62 + 34, 4, 63 ! Plane V, wire 63 + 35, 4, 64 ! Plane V, wire 64 + 36, 4, 65 ! Plane V, wire 65 + 37, 4, 66 ! Plane V, wire 66 + 38, 4, 67 ! Plane V, wire 67 + 39, 4, 68 ! Plane V, wire 68 + 40, 4, 69 ! Plane V, wire 69 + 41, 4, 70 ! Plane V, wire 70 + 42, 4, 71 ! Plane V, wire 71 + 43, 4, 72 ! Plane V, wire 72 + 44, 4, 73 ! Plane V, wire 73 + 45, 4, 74 ! Plane V, wire 74 + 46, 4, 75 ! Plane V, wire 75 + 47, 4, 76 ! Plane V, wire 76 + 48, 4, 77 ! Plane V, wire 77 + 49, 4, 78 ! Plane V, wire 78 + 50, 4, 79 ! Plane V, wire 79 + 51, 4, 80 ! Plane V, wire 80 + 52, 4, 81 ! Plane V, wire 81 + 53, 4, 82 ! Plane V, wire 82 + 54, 4, 83 ! Plane V, wire 83 + 55, 4, 84 ! Plane V, wire 84 + 56, 4, 85 ! Plane V, wire 85 + 57, 4, 86 ! Plane V, wire 86 + 58, 4, 87 ! Plane V, wire 87 + 59, 4, 88 ! Plane V, wire 88 + 60, 4, 89 ! Plane V, wire 89 + 61, 4, 90 ! Plane V, wire 90 + 62, 4, 91 ! Plane V, wire 91 + SLOT=4 -! channel,plane,wire -96,4,92 ! Plane V, wire 92 -97,4,93 ! Plane V, wire 93 -98,4,94 ! Plane V, wire 94 -99,4,95 ! Plane V, wire 95 -100,4,96 ! Plane V, wire 96 -101,4,97 ! Plane V, wire 97 -102,4,98 ! Plane V, wire 98 -103,4,99 ! Plane V, wire 99 -104,4,100 ! Plane V, wire 100 -105,4,101 ! Plane V, wire 101 -106,4,102 ! Plane V, wire 102 -107,4,103 ! Plane V, wire 103 -108,4,104 ! Plane V, wire 104 -109,4,105 ! Plane V, wire 105 -110,4,106 ! Plane V, wire 106 -111,4,107 ! Plane V, wire 107 -80,1,1 ! Plane X, wire 1 -81,1,2 ! Plane X, wire 2 -82,1,3 ! Plane X, wire 3 -83,1,4 ! Plane X, wire 4 -84,1,5 ! Plane X, wire 5 -85,1,6 ! Plane X, wire 6 -86,1,7 ! Plane X, wire 7 -87,1,8 ! Plane X, wire 8 -88,1,9 ! Plane X, wire 9 -89,1,10 ! Plane X, wire 10 -90,1,11 ! Plane X, wire 11 -91,1,12 ! Plane X, wire 12 -92,1,13 ! Plane X, wire 13 -93,1,14 ! Plane X, wire 14 -94,1,15 ! Plane X, wire 15 -95,1,16 ! Plane X, wire 16 -64,1,17 ! Plane X, wire 17 -65,1,18 ! Plane X, wire 18 -66,1,19 ! Plane X, wire 19 -67,1,20 ! Plane X, wire 20 -68,1,21 ! Plane X, wire 21 -69,1,22 ! Plane X, wire 22 -70,1,23 ! Plane X, wire 23 -71,1,24 ! Plane X, wire 24 -72,1,25 ! Plane X, wire 25 -73,1,26 ! Plane X, wire 26 -74,1,27 ! Plane X, wire 27 -75,1,28 ! Plane X, wire 28 -76,1,29 ! Plane X, wire 29 -77,1,30 ! Plane X, wire 30 -78,1,31 ! Plane X, wire 31 -79,1,32 ! Plane X, wire 32 -48,1,33 ! Plane X, wire 33 -49,1,34 ! Plane X, wire 34 -50,1,35 ! Plane X, wire 35 -51,1,36 ! Plane X, wire 36 -52,1,37 ! Plane X, wire 37 -53,1,38 ! Plane X, wire 38 -54,1,39 ! Plane X, wire 39 -55,1,40 ! Plane X, wire 40 -56,1,41 ! Plane X, wire 41 -57,1,42 ! Plane X, wire 42 -58,1,43 ! Plane X, wire 43 -59,1,44 ! Plane X, wire 44 -60,1,45 ! Plane X, wire 45 -61,1,46 ! Plane X, wire 46 -62,1,47 ! Plane X, wire 47 -63,1,48 ! Plane X, wire 48 -32,1,49 ! Plane X, wire 49 -33,1,50 ! Plane X, wire 50 -34,1,51 ! Plane X, wire 51 -35,1,52 ! Plane X, wire 52 -36,1,53 ! Plane X, wire 53 -37,1,54 ! Plane X, wire 54 -38,1,55 ! Plane X, wire 55 -39,1,56 ! Plane X, wire 56 -40,1,57 ! Plane X, wire 57 -41,1,58 ! Plane X, wire 58 -42,1,59 ! Plane X, wire 59 -43,1,60 ! Plane X, wire 60 -44,1,61 ! Plane X, wire 61 -45,1,62 ! Plane X, wire 62 -46,1,63 ! Plane X, wire 63 -47,1,64 ! Plane X, wire 64 -16,1,65 ! Plane X, wire 65 -17,1,66 ! Plane X, wire 66 -18,1,67 ! Plane X, wire 67 -19,1,68 ! Plane X, wire 68 -20,1,69 ! Plane X, wire 69 -21,1,70 ! Plane X, wire 70 -22,1,71 ! Plane X, wire 71 -23,1,72 ! Plane X, wire 72 -24,1,73 ! Plane X, wire 73 -25,1,74 ! Plane X, wire 74 -26,1,75 ! Plane X, wire 75 -27,1,76 ! Plane X, wire 76 -28,1,77 ! Plane X, wire 77 -29,1,78 ! Plane X, wire 78 -30,1,79 ! Plane X, wire 79 -31,1,80 ! Plane X, wire 80 -0,1,81 ! Plane X, wire 81 -1,1,82 ! Plane X, wire 82 -2,1,83 ! Plane X, wire 83 -3,1,84 ! Plane X, wire 84 -4,1,85 ! Plane X, wire 85 -5,1,86 ! Plane X, wire 86 -6,1,87 ! Plane X, wire 87 -7,1,88 ! Plane X, wire 88 -8,1,89 ! Plane X, wire 89 -9,1,90 ! Plane X, wire 90 -10,1,91 ! Plane X, wire 91 -11,1,92 ! Plane X, wire 92 -12,1,93 ! Plane X, wire 93 -13,1,94 ! Plane X, wire 94 -14,1,95 ! Plane X, wire 95 -15,1,96 ! Plane X, wire 96 +REFINDEX=0 + 96, 4, 92 ! Plane V, wire 92 + 97, 4, 93 ! Plane V, wire 93 + 98, 4, 94 ! Plane V, wire 94 + 99, 4, 95 ! Plane V, wire 95 + 100, 4, 96 ! Plane V, wire 96 + 101, 4, 97 ! Plane V, wire 97 + 102, 4, 98 ! Plane V, wire 98 + 103, 4, 99 ! Plane V, wire 99 + 104, 4, 100 ! Plane V, wire 100 + 105, 4, 101 ! Plane V, wire 101 + 106, 4, 102 ! Plane V, wire 102 + 107, 4, 103 ! Plane V, wire 103 + 108, 4, 104 ! Plane V, wire 104 + 109, 4, 105 ! Plane V, wire 105 + 110, 4, 106 ! Plane V, wire 106 + 111, 4, 107 ! Plane V, wire 107 + 80, 1, 1 ! Plane X, wire 1 + 81, 1, 2 ! Plane X, wire 2 + 82, 1, 3 ! Plane X, wire 3 + 83, 1, 4 ! Plane X, wire 4 + 84, 1, 5 ! Plane X, wire 5 + 85, 1, 6 ! Plane X, wire 6 + 86, 1, 7 ! Plane X, wire 7 + 87, 1, 8 ! Plane X, wire 8 + 88, 1, 9 ! Plane X, wire 9 + 89, 1, 10 ! Plane X, wire 10 + 90, 1, 11 ! Plane X, wire 11 + 91, 1, 12 ! Plane X, wire 12 + 92, 1, 13 ! Plane X, wire 13 + 93, 1, 14 ! Plane X, wire 14 + 94, 1, 15 ! Plane X, wire 15 + 95, 1, 16 ! Plane X, wire 16 + 64, 1, 17 ! Plane X, wire 17 + 65, 1, 18 ! Plane X, wire 18 + 66, 1, 19 ! Plane X, wire 19 + 67, 1, 20 ! Plane X, wire 20 + 68, 1, 21 ! Plane X, wire 21 + 69, 1, 22 ! Plane X, wire 22 + 70, 1, 23 ! Plane X, wire 23 + 71, 1, 24 ! Plane X, wire 24 + 72, 1, 25 ! Plane X, wire 25 + 73, 1, 26 ! Plane X, wire 26 + 74, 1, 27 ! Plane X, wire 27 + 75, 1, 28 ! Plane X, wire 28 + 76, 1, 29 ! Plane X, wire 29 + 77, 1, 30 ! Plane X, wire 30 + 78, 1, 31 ! Plane X, wire 31 + 79, 1, 32 ! Plane X, wire 32 + 48, 1, 33 ! Plane X, wire 33 + 49, 1, 34 ! Plane X, wire 34 + 50, 1, 35 ! Plane X, wire 35 + 51, 1, 36 ! Plane X, wire 36 + 52, 1, 37 ! Plane X, wire 37 + 53, 1, 38 ! Plane X, wire 38 + 54, 1, 39 ! Plane X, wire 39 + 55, 1, 40 ! Plane X, wire 40 + 56, 1, 41 ! Plane X, wire 41 + 57, 1, 42 ! Plane X, wire 42 + 58, 1, 43 ! Plane X, wire 43 + 59, 1, 44 ! Plane X, wire 44 + 60, 1, 45 ! Plane X, wire 45 + 61, 1, 46 ! Plane X, wire 46 + 62, 1, 47 ! Plane X, wire 47 + 63, 1, 48 ! Plane X, wire 48 + 32, 1, 49 ! Plane X, wire 49 + 33, 1, 50 ! Plane X, wire 50 + 34, 1, 51 ! Plane X, wire 51 + 35, 1, 52 ! Plane X, wire 52 + 36, 1, 53 ! Plane X, wire 53 + 37, 1, 54 ! Plane X, wire 54 + 38, 1, 55 ! Plane X, wire 55 + 39, 1, 56 ! Plane X, wire 56 + 40, 1, 57 ! Plane X, wire 57 + 41, 1, 58 ! Plane X, wire 58 + 42, 1, 59 ! Plane X, wire 59 + 43, 1, 60 ! Plane X, wire 60 + 44, 1, 61 ! Plane X, wire 61 + 45, 1, 62 ! Plane X, wire 62 + 46, 1, 63 ! Plane X, wire 63 + 47, 1, 64 ! Plane X, wire 64 + 16, 1, 65 ! Plane X, wire 65 + 17, 1, 66 ! Plane X, wire 66 + 18, 1, 67 ! Plane X, wire 67 + 19, 1, 68 ! Plane X, wire 68 + 20, 1, 69 ! Plane X, wire 69 + 21, 1, 70 ! Plane X, wire 70 + 22, 1, 71 ! Plane X, wire 71 + 23, 1, 72 ! Plane X, wire 72 + 24, 1, 73 ! Plane X, wire 73 + 25, 1, 74 ! Plane X, wire 74 + 26, 1, 75 ! Plane X, wire 75 + 27, 1, 76 ! Plane X, wire 76 + 28, 1, 77 ! Plane X, wire 77 + 29, 1, 78 ! Plane X, wire 78 + 30, 1, 79 ! Plane X, wire 79 + 31, 1, 80 ! Plane X, wire 80 + 0, 1, 81 ! Plane X, wire 81 + 1, 1, 82 ! Plane X, wire 82 + 2, 1, 83 ! Plane X, wire 83 + 3, 1, 84 ! Plane X, wire 84 + 4, 1, 85 ! Plane X, wire 85 + 5, 1, 86 ! Plane X, wire 86 + 6, 1, 87 ! Plane X, wire 87 + 7, 1, 88 ! Plane X, wire 88 + 8, 1, 89 ! Plane X, wire 89 + 9, 1, 90 ! Plane X, wire 90 + 10, 1, 91 ! Plane X, wire 91 + 11, 1, 92 ! Plane X, wire 92 + 12, 1, 93 ! Plane X, wire 93 + 13, 1, 94 ! Plane X, wire 94 + 14, 1, 95 ! Plane X, wire 95 + 15, 1, 96 ! Plane X, wire 96 + SLOT=7 -! channel,plane,wire -80,1,97 ! Plane X, wire 97 -81,1,98 ! Plane X, wire 98 -82,1,99 ! Plane X, wire 99 -83,1,100 ! Plane X, wire 100 -84,1,101 ! Plane X, wire 101 -85,1,102 ! Plane X, wire 102 -86,1,103 ! Plane X, wire 103 -87,1,104 ! Plane X, wire 104 -88,1,105 ! Plane X, wire 105 -89,1,106 ! Plane X, wire 106 -90,1,107 ! Plane X, wire 107 -91,1,108 ! Plane X, wire 108 -92,1,109 ! Plane X, wire 109 -93,1,110 ! Plane X, wire 110 -94,1,111 ! Plane X, wire 111 -95,1,112 ! Plane X, wire 112 +REFINDEX=0 + 80, 1, 97 ! Plane X, wire 97 + 81, 1, 98 ! Plane X, wire 98 + 82, 1, 99 ! Plane X, wire 99 + 83, 1, 100 ! Plane X, wire 100 + 84, 1, 101 ! Plane X, wire 101 + 85, 1, 102 ! Plane X, wire 102 + 86, 1, 103 ! Plane X, wire 103 + 87, 1, 104 ! Plane X, wire 104 + 88, 1, 105 ! Plane X, wire 105 + 89, 1, 106 ! Plane X, wire 106 + 90, 1, 107 ! Plane X, wire 107 + 91, 1, 108 ! Plane X, wire 108 + 92, 1, 109 ! Plane X, wire 109 + 93, 1, 110 ! Plane X, wire 110 + 94, 1, 111 ! Plane X, wire 111 + 95, 1, 112 ! Plane X, wire 112 + SLOT=4 -! channel,plane,wire -112,6,1 ! Plane X', wire 1 -113,6,2 ! Plane X', wire 2 -114,6,3 ! Plane X', wire 3 -115,6,4 ! Plane X', wire 4 -116,6,5 ! Plane X', wire 5 -117,6,6 ! Plane X', wire 6 -118,6,7 ! Plane X', wire 7 -119,6,8 ! Plane X', wire 8 -120,6,9 ! Plane X', wire 9 -121,6,10 ! Plane X', wire 10 -122,6,11 ! Plane X', wire 11 -123,6,12 ! Plane X', wire 12 -124,6,13 ! Plane X', wire 13 -125,6,14 ! Plane X', wire 14 -126,6,15 ! Plane X', wire 15 -127,6,16 ! Plane X', wire 16 +REFINDEX=0 + 112, 6, 1 ! Plane X', wire 1 + 113, 6, 2 ! Plane X', wire 2 + 114, 6, 3 ! Plane X', wire 3 + 115, 6, 4 ! Plane X', wire 4 + 116, 6, 5 ! Plane X', wire 5 + 117, 6, 6 ! Plane X', wire 6 + 118, 6, 7 ! Plane X', wire 7 + 119, 6, 8 ! Plane X', wire 8 + 120, 6, 9 ! Plane X', wire 9 + 121, 6, 10 ! Plane X', wire 10 + 122, 6, 11 ! Plane X', wire 11 + 123, 6, 12 ! Plane X', wire 12 + 124, 6, 13 ! Plane X', wire 13 + 125, 6, 14 ! Plane X', wire 14 + 126, 6, 15 ! Plane X', wire 15 + 127, 6, 16 ! Plane X', wire 16 + SLOT=5 -! channel,plane,wire -112,6,17 ! Plane X', wire 17 -113,6,18 ! Plane X', wire 18 -114,6,19 ! Plane X', wire 19 -115,6,20 ! Plane X', wire 20 -116,6,21 ! Plane X', wire 21 -117,6,22 ! Plane X', wire 22 -118,6,23 ! Plane X', wire 23 -119,6,24 ! Plane X', wire 24 -120,6,25 ! Plane X', wire 25 -121,6,26 ! Plane X', wire 26 -122,6,27 ! Plane X', wire 27 -123,6,28 ! Plane X', wire 28 -124,6,29 ! Plane X', wire 29 -125,6,30 ! Plane X', wire 30 -126,6,31 ! Plane X', wire 31 -127,6,32 ! Plane X', wire 32 +REFINDEX=0 + 112, 6, 17 ! Plane X', wire 17 + 113, 6, 18 ! Plane X', wire 18 + 114, 6, 19 ! Plane X', wire 19 + 115, 6, 20 ! Plane X', wire 20 + 116, 6, 21 ! Plane X', wire 21 + 117, 6, 22 ! Plane X', wire 22 + 118, 6, 23 ! Plane X', wire 23 + 119, 6, 24 ! Plane X', wire 24 + 120, 6, 25 ! Plane X', wire 25 + 121, 6, 26 ! Plane X', wire 26 + 122, 6, 27 ! Plane X', wire 27 + 123, 6, 28 ! Plane X', wire 28 + 124, 6, 29 ! Plane X', wire 29 + 125, 6, 30 ! Plane X', wire 30 + 126, 6, 31 ! Plane X', wire 31 + 127, 6, 32 ! Plane X', wire 32 + SLOT=7 -! channel,plane,wire -0,6,33 ! Plane X', wire 33 -1,6,34 ! Plane X', wire 34 -2,6,35 ! Plane X', wire 35 -3,6,36 ! Plane X', wire 36 -4,6,37 ! Plane X', wire 37 -5,6,38 ! Plane X', wire 38 -6,6,39 ! Plane X', wire 39 -7,6,40 ! Plane X', wire 40 -8,6,41 ! Plane X', wire 41 -9,6,42 ! Plane X', wire 42 -10,6,43 ! Plane X', wire 43 -11,6,44 ! Plane X', wire 44 -12,6,45 ! Plane X', wire 45 -13,6,46 ! Plane X', wire 46 -14,6,47 ! Plane X', wire 47 -15,6,48 ! Plane X', wire 48 -16,6,49 ! Plane X', wire 49 -17,6,50 ! Plane X', wire 50 -18,6,51 ! Plane X', wire 51 -19,6,52 ! Plane X', wire 52 -20,6,53 ! Plane X', wire 53 -21,6,54 ! Plane X', wire 54 -22,6,55 ! Plane X', wire 55 -23,6,56 ! Plane X', wire 56 -24,6,57 ! Plane X', wire 57 -25,6,58 ! Plane X', wire 58 -26,6,59 ! Plane X', wire 59 -27,6,60 ! Plane X', wire 60 -28,6,61 ! Plane X', wire 61 -29,6,62 ! Plane X', wire 62 -30,6,63 ! Plane X', wire 63 -31,6,64 ! Plane X', wire 64 -32,6,65 ! Plane X', wire 65 -33,6,66 ! Plane X', wire 66 -34,6,67 ! Plane X', wire 67 -35,6,68 ! Plane X', wire 68 -36,6,69 ! Plane X', wire 69 -37,6,70 ! Plane X', wire 70 -38,6,71 ! Plane X', wire 71 -39,6,72 ! Plane X', wire 72 -40,6,73 ! Plane X', wire 73 -41,6,74 ! Plane X', wire 74 -42,6,75 ! Plane X', wire 75 -43,6,76 ! Plane X', wire 76 -44,6,77 ! Plane X', wire 77 -45,6,78 ! Plane X', wire 78 -46,6,79 ! Plane X', wire 79 -47,6,80 ! Plane X', wire 80 -48,6,81 ! Plane X', wire 81 -49,6,82 ! Plane X', wire 82 -50,6,83 ! Plane X', wire 83 -51,6,84 ! Plane X', wire 84 -52,6,85 ! Plane X', wire 85 -53,6,86 ! Plane X', wire 86 -54,6,87 ! Plane X', wire 87 -55,6,88 ! Plane X', wire 88 -56,6,89 ! Plane X', wire 89 -57,6,90 ! Plane X', wire 90 -58,6,91 ! Plane X', wire 91 -59,6,92 ! Plane X', wire 92 -60,6,93 ! Plane X', wire 93 -61,6,94 ! Plane X', wire 94 -62,6,95 ! Plane X', wire 95 -63,6,96 ! Plane X', wire 96 -64,6,97 ! Plane X', wire 97 -65,6,98 ! Plane X', wire 98 -66,6,99 ! Plane X', wire 99 -67,6,100 ! Plane X', wire 100 -68,6,101 ! Plane X', wire 101 -69,6,102 ! Plane X', wire 102 -70,6,103 ! Plane X', wire 103 -71,6,104 ! Plane X', wire 104 -72,6,105 ! Plane X', wire 105 -73,6,106 ! Plane X', wire 106 -74,6,107 ! Plane X', wire 107 -75,6,108 ! Plane X', wire 108 -76,6,109 ! Plane X', wire 109 -77,6,110 ! Plane X', wire 110 -78,6,111 ! Plane X', wire 111 -79,6,112 ! Plane X', wire 112 +REFINDEX=0 + 0, 6, 33 ! Plane X', wire 33 + 1, 6, 34 ! Plane X', wire 34 + 2, 6, 35 ! Plane X', wire 35 + 3, 6, 36 ! Plane X', wire 36 + 4, 6, 37 ! Plane X', wire 37 + 5, 6, 38 ! Plane X', wire 38 + 6, 6, 39 ! Plane X', wire 39 + 7, 6, 40 ! Plane X', wire 40 + 8, 6, 41 ! Plane X', wire 41 + 9, 6, 42 ! Plane X', wire 42 + 10, 6, 43 ! Plane X', wire 43 + 11, 6, 44 ! Plane X', wire 44 + 12, 6, 45 ! Plane X', wire 45 + 13, 6, 46 ! Plane X', wire 46 + 14, 6, 47 ! Plane X', wire 47 + 15, 6, 48 ! Plane X', wire 48 + 16, 6, 49 ! Plane X', wire 49 + 17, 6, 50 ! Plane X', wire 50 + 18, 6, 51 ! Plane X', wire 51 + 19, 6, 52 ! Plane X', wire 52 + 20, 6, 53 ! Plane X', wire 53 + 21, 6, 54 ! Plane X', wire 54 + 22, 6, 55 ! Plane X', wire 55 + 23, 6, 56 ! Plane X', wire 56 + 24, 6, 57 ! Plane X', wire 57 + 25, 6, 58 ! Plane X', wire 58 + 26, 6, 59 ! Plane X', wire 59 + 27, 6, 60 ! Plane X', wire 60 + 28, 6, 61 ! Plane X', wire 61 + 29, 6, 62 ! Plane X', wire 62 + 30, 6, 63 ! Plane X', wire 63 + 31, 6, 64 ! Plane X', wire 64 + 32, 6, 65 ! Plane X', wire 65 + 33, 6, 66 ! Plane X', wire 66 + 34, 6, 67 ! Plane X', wire 67 + 35, 6, 68 ! Plane X', wire 68 + 36, 6, 69 ! Plane X', wire 69 + 37, 6, 70 ! Plane X', wire 70 + 38, 6, 71 ! Plane X', wire 71 + 39, 6, 72 ! Plane X', wire 72 + 40, 6, 73 ! Plane X', wire 73 + 41, 6, 74 ! Plane X', wire 74 + 42, 6, 75 ! Plane X', wire 75 + 43, 6, 76 ! Plane X', wire 76 + 44, 6, 77 ! Plane X', wire 77 + 45, 6, 78 ! Plane X', wire 78 + 46, 6, 79 ! Plane X', wire 79 + 47, 6, 80 ! Plane X', wire 80 + 48, 6, 81 ! Plane X', wire 81 + 49, 6, 82 ! Plane X', wire 82 + 50, 6, 83 ! Plane X', wire 83 + 51, 6, 84 ! Plane X', wire 84 + 52, 6, 85 ! Plane X', wire 85 + 53, 6, 86 ! Plane X', wire 86 + 54, 6, 87 ! Plane X', wire 87 + 55, 6, 88 ! Plane X', wire 88 + 56, 6, 89 ! Plane X', wire 89 + 57, 6, 90 ! Plane X', wire 90 + 58, 6, 91 ! Plane X', wire 91 + 59, 6, 92 ! Plane X', wire 92 + 60, 6, 93 ! Plane X', wire 93 + 61, 6, 94 ! Plane X', wire 94 + 62, 6, 95 ! Plane X', wire 95 + 63, 6, 96 ! Plane X', wire 96 + 64, 6, 97 ! Plane X', wire 97 + 65, 6, 98 ! Plane X', wire 98 + 66, 6, 99 ! Plane X', wire 99 + 67, 6, 100 ! Plane X', wire 100 + 68, 6, 101 ! Plane X', wire 101 + 69, 6, 102 ! Plane X', wire 102 + 70, 6, 103 ! Plane X', wire 103 + 71, 6, 104 ! Plane X', wire 104 + 72, 6, 105 ! Plane X', wire 105 + 73, 6, 106 ! Plane X', wire 106 + 74, 6, 107 ! Plane X', wire 107 + 75, 6, 108 ! Plane X', wire 108 + 76, 6, 109 ! Plane X', wire 109 + 77, 6, 110 ! Plane X', wire 110 + 78, 6, 111 ! Plane X', wire 111 + 79, 6, 112 ! Plane X', wire 112 + SLOT=8 -! channel,plane,wire -64,2,1 ! Plane Y, wire 1 -65,2,2 ! Plane Y, wire 2 -66,2,3 ! Plane Y, wire 3 -67,2,4 ! Plane Y, wire 4 -68,2,5 ! Plane Y, wire 5 -69,2,6 ! Plane Y, wire 6 -70,2,7 ! Plane Y, wire 7 -71,2,8 ! Plane Y, wire 8 -72,2,9 ! Plane Y, wire 9 -73,2,10 ! Plane Y, wire 10 -74,2,11 ! Plane Y, wire 11 -75,2,12 ! Plane Y, wire 12 -76,2,13 ! Plane Y, wire 13 -80,2,14 ! Plane Y, wire 14 -81,2,15 ! Plane Y, wire 15 -82,2,16 ! Plane Y, wire 16 -83,2,17 ! Plane Y, wire 17 -84,2,18 ! Plane Y, wire 18 -85,2,19 ! Plane Y, wire 19 -86,2,20 ! Plane Y, wire 20 -87,2,21 ! Plane Y, wire 21 -88,2,22 ! Plane Y, wire 22 -89,2,23 ! Plane Y, wire 23 -90,2,24 ! Plane Y, wire 24 -91,2,25 ! Plane Y, wire 25 -92,2,26 ! Plane Y, wire 26 -96,2,27 ! Plane Y, wire 27 -97,2,28 ! Plane Y, wire 28 -98,2,29 ! Plane Y, wire 29 -99,2,30 ! Plane Y, wire 30 -100,2,31 ! Plane Y, wire 31 -101,2,32 ! Plane Y, wire 32 -102,2,33 ! Plane Y, wire 33 -103,2,34 ! Plane Y, wire 34 -104,2,35 ! Plane Y, wire 35 -105,2,36 ! Plane Y, wire 36 -106,2,37 ! Plane Y, wire 37 -107,2,38 ! Plane Y, wire 38 -108,2,39 ! Plane Y, wire 39 -112,2,40 ! Plane Y, wire 40 -113,2,41 ! Plane Y, wire 41 -114,2,42 ! Plane Y, wire 42 -115,2,43 ! Plane Y, wire 43 -116,2,44 ! Plane Y, wire 44 -117,2,45 ! Plane Y, wire 45 -118,2,46 ! Plane Y, wire 46 -119,2,47 ! Plane Y, wire 47 -120,2,48 ! Plane Y, wire 48 -121,2,49 ! Plane Y, wire 49 -122,2,50 ! Plane Y, wire 50 -123,2,51 ! Plane Y, wire 51 -124,2,52 ! Plane Y, wire 52 +REFINDEX=0 + 64, 2, 1 ! Plane Y, wire 1 + 65, 2, 2 ! Plane Y, wire 2 + 66, 2, 3 ! Plane Y, wire 3 + 67, 2, 4 ! Plane Y, wire 4 + 68, 2, 5 ! Plane Y, wire 5 + 69, 2, 6 ! Plane Y, wire 6 + 70, 2, 7 ! Plane Y, wire 7 + 71, 2, 8 ! Plane Y, wire 8 + 72, 2, 9 ! Plane Y, wire 9 + 73, 2, 10 ! Plane Y, wire 10 + 74, 2, 11 ! Plane Y, wire 11 + 75, 2, 12 ! Plane Y, wire 12 + 76, 2, 13 ! Plane Y, wire 13 + 80, 2, 14 ! Plane Y, wire 14 + 81, 2, 15 ! Plane Y, wire 15 + 82, 2, 16 ! Plane Y, wire 16 + 83, 2, 17 ! Plane Y, wire 17 + 84, 2, 18 ! Plane Y, wire 18 + 85, 2, 19 ! Plane Y, wire 19 + 86, 2, 20 ! Plane Y, wire 20 + 87, 2, 21 ! Plane Y, wire 21 + 88, 2, 22 ! Plane Y, wire 22 + 89, 2, 23 ! Plane Y, wire 23 + 90, 2, 24 ! Plane Y, wire 24 + 91, 2, 25 ! Plane Y, wire 25 + 92, 2, 26 ! Plane Y, wire 26 + 96, 2, 27 ! Plane Y, wire 27 + 97, 2, 28 ! Plane Y, wire 28 + 98, 2, 29 ! Plane Y, wire 29 + 99, 2, 30 ! Plane Y, wire 30 + 100, 2, 31 ! Plane Y, wire 31 + 101, 2, 32 ! Plane Y, wire 32 + 102, 2, 33 ! Plane Y, wire 33 + 103, 2, 34 ! Plane Y, wire 34 + 104, 2, 35 ! Plane Y, wire 35 + 105, 2, 36 ! Plane Y, wire 36 + 106, 2, 37 ! Plane Y, wire 37 + 107, 2, 38 ! Plane Y, wire 38 + 108, 2, 39 ! Plane Y, wire 39 + 112, 2, 40 ! Plane Y, wire 40 + 113, 2, 41 ! Plane Y, wire 41 + 114, 2, 42 ! Plane Y, wire 42 + 115, 2, 43 ! Plane Y, wire 43 + 116, 2, 44 ! Plane Y, wire 44 + 117, 2, 45 ! Plane Y, wire 45 + 118, 2, 46 ! Plane Y, wire 46 + 119, 2, 47 ! Plane Y, wire 47 + 120, 2, 48 ! Plane Y, wire 48 + 121, 2, 49 ! Plane Y, wire 49 + 122, 2, 50 ! Plane Y, wire 50 + 123, 2, 51 ! Plane Y, wire 51 + 124, 2, 52 ! Plane Y, wire 52 + SLOT=10 -! channel,plane,wire -0,5,1 ! Plane Y', wire 1 -1,5,2 ! Plane Y', wire 2 -2,5,3 ! Plane Y', wire 3 -3,5,4 ! Plane Y', wire 4 -4,5,5 ! Plane Y', wire 5 -5,5,6 ! Plane Y', wire 6 -6,5,7 ! Plane Y', wire 7 -7,5,8 ! Plane Y', wire 8 -8,5,9 ! Plane Y', wire 9 -9,5,10 ! Plane Y', wire 10 -10,5,11 ! Plane Y', wire 11 -11,5,12 ! Plane Y', wire 12 -12,5,13 ! Plane Y', wire 13 -16,5,14 ! Plane Y', wire 14 -17,5,15 ! Plane Y', wire 15 -18,5,16 ! Plane Y', wire 16 -19,5,17 ! Plane Y', wire 17 -20,5,18 ! Plane Y', wire 18 -21,5,19 ! Plane Y', wire 19 -22,5,20 ! Plane Y', wire 20 -23,5,21 ! Plane Y', wire 21 -24,5,22 ! Plane Y', wire 22 -25,5,23 ! Plane Y', wire 23 -26,5,24 ! Plane Y', wire 24 -27,5,25 ! Plane Y', wire 25 -28,5,26 ! Plane Y', wire 26 -32,5,27 ! Plane Y', wire 27 -33,5,28 ! Plane Y', wire 28 -34,5,29 ! Plane Y', wire 29 -35,5,30 ! Plane Y', wire 30 -36,5,31 ! Plane Y', wire 31 -37,5,32 ! Plane Y', wire 32 -38,5,33 ! Plane Y', wire 33 -39,5,34 ! Plane Y', wire 34 -40,5,35 ! Plane Y', wire 35 -41,5,36 ! Plane Y', wire 36 -42,5,37 ! Plane Y', wire 37 -43,5,38 ! Plane Y', wire 38 -44,5,39 ! Plane Y', wire 39 -48,5,40 ! Plane Y', wire 40 -49,5,41 ! Plane Y', wire 41 -50,5,42 ! Plane Y', wire 42 -51,5,43 ! Plane Y', wire 43 -52,5,44 ! Plane Y', wire 44 -53,5,45 ! Plane Y', wire 45 -54,5,46 ! Plane Y', wire 46 -55,5,47 ! Plane Y', wire 47 -56,5,48 ! Plane Y', wire 48 -57,5,49 ! Plane Y', wire 49 -58,5,50 ! Plane Y', wire 50 -59,5,51 ! Plane Y', wire 51 -60,5,52 ! Plane Y', wire 52 +REFINDEX=0 + 127,1000, 0, 2 + 0, 5, 1 ! Plane Y', wire 1 + 1, 5, 2 ! Plane Y', wire 2 + 2, 5, 3 ! Plane Y', wire 3 + 3, 5, 4 ! Plane Y', wire 4 + 4, 5, 5 ! Plane Y', wire 5 + 5, 5, 6 ! Plane Y', wire 6 + 6, 5, 7 ! Plane Y', wire 7 + 7, 5, 8 ! Plane Y', wire 8 + 8, 5, 9 ! Plane Y', wire 9 + 9, 5, 10 ! Plane Y', wire 10 + 10, 5, 11 ! Plane Y', wire 11 + 11, 5, 12 ! Plane Y', wire 12 + 12, 5, 13 ! Plane Y', wire 13 + 16, 5, 14 ! Plane Y', wire 14 + 17, 5, 15 ! Plane Y', wire 15 + 18, 5, 16 ! Plane Y', wire 16 + 19, 5, 17 ! Plane Y', wire 17 + 20, 5, 18 ! Plane Y', wire 18 + 21, 5, 19 ! Plane Y', wire 19 + 22, 5, 20 ! Plane Y', wire 20 + 23, 5, 21 ! Plane Y', wire 21 + 24, 5, 22 ! Plane Y', wire 22 + 25, 5, 23 ! Plane Y', wire 23 + 26, 5, 24 ! Plane Y', wire 24 + 27, 5, 25 ! Plane Y', wire 25 + 28, 5, 26 ! Plane Y', wire 26 + 32, 5, 27 ! Plane Y', wire 27 + 33, 5, 28 ! Plane Y', wire 28 + 34, 5, 29 ! Plane Y', wire 29 + 35, 5, 30 ! Plane Y', wire 30 + 36, 5, 31 ! Plane Y', wire 31 + 37, 5, 32 ! Plane Y', wire 32 + 38, 5, 33 ! Plane Y', wire 33 + 39, 5, 34 ! Plane Y', wire 34 + 40, 5, 35 ! Plane Y', wire 35 + 41, 5, 36 ! Plane Y', wire 36 + 42, 5, 37 ! Plane Y', wire 37 + 43, 5, 38 ! Plane Y', wire 38 + 44, 5, 39 ! Plane Y', wire 39 + 48, 5, 40 ! Plane Y', wire 40 + 49, 5, 41 ! Plane Y', wire 41 + 50, 5, 42 ! Plane Y', wire 42 + 51, 5, 43 ! Plane Y', wire 43 + 52, 5, 44 ! Plane Y', wire 44 + 53, 5, 45 ! Plane Y', wire 45 + 54, 5, 46 ! Plane Y', wire 46 + 55, 5, 47 ! Plane Y', wire 47 + 56, 5, 48 ! Plane Y', wire 48 + 57, 5, 49 ! Plane Y', wire 49 + 58, 5, 50 ! Plane Y', wire 50 + 59, 5, 51 ! Plane Y', wire 51 + 60, 5, 52 ! Plane Y', wire 52 -! Caen 1190 VME Modules >> DC2 SLOT=16 -! channel,plane,wire -96,9,1 ! Plane U, wire 1 -97,9,2 ! Plane U, wire 2 -98,9,3 ! Plane U, wire 3 -99,9,4 ! Plane U, wire 4 -100,9,5 ! Plane U, wire 5 -101,9,6 ! Plane U, wire 6 -102,9,7 ! Plane U, wire 7 -103,9,8 ! Plane U, wire 8 -104,9,9 ! Plane U, wire 9 -105,9,10 ! Plane U, wire 10 -106,9,11 ! Plane U, wire 11 -107,9,12 ! Plane U, wire 12 -108,9,13 ! Plane U, wire 13 -109,9,14 ! Plane U, wire 14 -110,7,113 ! Plane X, wire 113 -112,9,15 ! Plane U, wire 15 -113,9,16 ! Plane U, wire 16 -114,9,17 ! Plane U, wire 17 -115,9,18 ! Plane U, wire 18 -116,9,19 ! Plane U, wire 19 -117,9,20 ! Plane U, wire 20 -118,9,21 ! Plane U, wire 21 -119,9,22 ! Plane U, wire 22 -120,9,23 ! Plane U, wire 23 -121,9,24 ! Plane U, wire 24 -122,9,25 ! Plane U, wire 25 -123,9,26 ! Plane U, wire 26 -124,9,27 ! Plane U, wire 27 -125,9,28 ! Plane U, wire 28 -126,9,29 ! Plane U, wire 29 +REFINDEX=0 + 96, 9, 1 ! Plane U, wire 1 + 97, 9, 2 ! Plane U, wire 2 + 98, 9, 3 ! Plane U, wire 3 + 99, 9, 4 ! Plane U, wire 4 + 100, 9, 5 ! Plane U, wire 5 + 101, 9, 6 ! Plane U, wire 6 + 102, 9, 7 ! Plane U, wire 7 + 103, 9, 8 ! Plane U, wire 8 + 104, 9, 9 ! Plane U, wire 9 + 105, 9, 10 ! Plane U, wire 10 + 106, 9, 11 ! Plane U, wire 11 + 107, 9, 12 ! Plane U, wire 12 + 108, 9, 13 ! Plane U, wire 13 + 109, 9, 14 ! Plane U, wire 14 + 110, 7, 113 ! Plane X, wire 113 + 112, 9, 15 ! Plane U, wire 15 + 113, 9, 16 ! Plane U, wire 16 + 114, 9, 17 ! Plane U, wire 17 + 115, 9, 18 ! Plane U, wire 18 + 116, 9, 19 ! Plane U, wire 19 + 117, 9, 20 ! Plane U, wire 20 + 118, 9, 21 ! Plane U, wire 21 + 119, 9, 22 ! Plane U, wire 22 + 120, 9, 23 ! Plane U, wire 23 + 121, 9, 24 ! Plane U, wire 24 + 122, 9, 25 ! Plane U, wire 25 + 123, 9, 26 ! Plane U, wire 26 + 124, 9, 27 ! Plane U, wire 27 + 125, 9, 28 ! Plane U, wire 28 + 126, 9, 29 ! Plane U, wire 29 + SLOT=14 -! channel,plane,wire -0,9,30 ! Plane U, wire 30 -1,9,31 ! Plane U, wire 31 -2,9,32 ! Plane U, wire 32 -3,9,33 ! Plane U, wire 33 -4,9,34 ! Plane U, wire 34 -5,9,35 ! Plane U, wire 35 -6,9,36 ! Plane U, wire 36 -7,9,37 ! Plane U, wire 37 -8,9,38 ! Plane U, wire 38 -9,9,39 ! Plane U, wire 39 -10,9,40 ! Plane U, wire 40 -11,9,41 ! Plane U, wire 41 -12,9,42 ! Plane U, wire 42 -13,9,43 ! Plane U, wire 43 -14,9,44 ! Plane U, wire 44 -15,9,45 ! Plane U, wire 45 -32,9,46 ! Plane U, wire 46 -33,9,47 ! Plane U, wire 47 -34,9,48 ! Plane U, wire 48 -35,9,49 ! Plane U, wire 49 -36,9,50 ! Plane U, wire 50 -37,9,51 ! Plane U, wire 51 -38,9,52 ! Plane U, wire 52 -39,9,53 ! Plane U, wire 53 -40,9,54 ! Plane U, wire 54 -41,9,55 ! Plane U, wire 55 -42,9,56 ! Plane U, wire 56 -43,9,57 ! Plane U, wire 57 -44,9,58 ! Plane U, wire 58 -45,9,59 ! Plane U, wire 59 -46,9,60 ! Plane U, wire 60 -48,9,61 ! Plane U, wire 61 -49,9,62 ! Plane U, wire 62 -50,9,63 ! Plane U, wire 63 -51,9,64 ! Plane U, wire 64 -52,9,65 ! Plane U, wire 65 -53,9,66 ! Plane U, wire 66 -54,9,67 ! Plane U, wire 67 -55,9,68 ! Plane U, wire 68 -56,9,69 ! Plane U, wire 69 -57,9,70 ! Plane U, wire 70 -58,9,71 ! Plane U, wire 71 -59,9,72 ! Plane U, wire 72 -60,9,73 ! Plane U, wire 73 -61,9,74 ! Plane U, wire 74 -62,9,75 ! Plane U, wire 75 -63,9,76 ! Plane U, wire 76 -64,9,77 ! Plane U, wire 77 -65,9,78 ! Plane U, wire 78 -66,9,79 ! Plane U, wire 79 -67,9,80 ! Plane U, wire 80 -68,9,81 ! Plane U, wire 81 -69,9,82 ! Plane U, wire 82 -70,9,83 ! Plane U, wire 83 -71,9,84 ! Plane U, wire 84 -72,9,85 ! Plane U, wire 85 -73,9,86 ! Plane U, wire 86 -74,9,87 ! Plane U, wire 87 -75,9,88 ! Plane U, wire 88 -76,9,89 ! Plane U, wire 89 -77,9,90 ! Plane U, wire 90 -78,9,91 ! Plane U, wire 91 -80,9,92 ! Plane U, wire 92 -81,9,93 ! Plane U, wire 93 -82,9,94 ! Plane U, wire 94 -83,9,95 ! Plane U, wire 95 -84,9,96 ! Plane U, wire 96 -85,9,97 ! Plane U, wire 97 -86,9,98 ! Plane U, wire 98 -87,9,99 ! Plane U, wire 99 -88,9,100 ! Plane U, wire 100 -89,9,101 ! Plane U, wire 101 -90,9,102 ! Plane U, wire 102 -91,9,103 ! Plane U, wire 103 -92,9,104 ! Plane U, wire 104 -93,9,105 ! Plane U, wire 105 -94,9,106 ! Plane U, wire 106 -95,9,107 ! Plane U, wire 107 +REFINDEX=0 + 0, 9, 30 ! Plane U, wire 30 + 1, 9, 31 ! Plane U, wire 31 + 2, 9, 32 ! Plane U, wire 32 + 3, 9, 33 ! Plane U, wire 33 + 4, 9, 34 ! Plane U, wire 34 + 5, 9, 35 ! Plane U, wire 35 + 6, 9, 36 ! Plane U, wire 36 + 7, 9, 37 ! Plane U, wire 37 + 8, 9, 38 ! Plane U, wire 38 + 9, 9, 39 ! Plane U, wire 39 + 10, 9, 40 ! Plane U, wire 40 + 11, 9, 41 ! Plane U, wire 41 + 12, 9, 42 ! Plane U, wire 42 + 13, 9, 43 ! Plane U, wire 43 + 14, 9, 44 ! Plane U, wire 44 + 15, 9, 45 ! Plane U, wire 45 + 32, 9, 46 ! Plane U, wire 46 + 33, 9, 47 ! Plane U, wire 47 + 34, 9, 48 ! Plane U, wire 48 + 35, 9, 49 ! Plane U, wire 49 + 36, 9, 50 ! Plane U, wire 50 + 37, 9, 51 ! Plane U, wire 51 + 38, 9, 52 ! Plane U, wire 52 + 39, 9, 53 ! Plane U, wire 53 + 40, 9, 54 ! Plane U, wire 54 + 41, 9, 55 ! Plane U, wire 55 + 42, 9, 56 ! Plane U, wire 56 + 43, 9, 57 ! Plane U, wire 57 + 44, 9, 58 ! Plane U, wire 58 + 45, 9, 59 ! Plane U, wire 59 + 46, 9, 60 ! Plane U, wire 60 + 48, 9, 61 ! Plane U, wire 61 + 49, 9, 62 ! Plane U, wire 62 + 50, 9, 63 ! Plane U, wire 63 + 51, 9, 64 ! Plane U, wire 64 + 52, 9, 65 ! Plane U, wire 65 + 53, 9, 66 ! Plane U, wire 66 + 54, 9, 67 ! Plane U, wire 67 + 55, 9, 68 ! Plane U, wire 68 + 56, 9, 69 ! Plane U, wire 69 + 57, 9, 70 ! Plane U, wire 70 + 58, 9, 71 ! Plane U, wire 71 + 59, 9, 72 ! Plane U, wire 72 + 60, 9, 73 ! Plane U, wire 73 + 61, 9, 74 ! Plane U, wire 74 + 62, 9, 75 ! Plane U, wire 75 + 63, 9, 76 ! Plane U, wire 76 + 64, 9, 77 ! Plane U, wire 77 + 65, 9, 78 ! Plane U, wire 78 + 66, 9, 79 ! Plane U, wire 79 + 67, 9, 80 ! Plane U, wire 80 + 68, 9, 81 ! Plane U, wire 81 + 69, 9, 82 ! Plane U, wire 82 + 70, 9, 83 ! Plane U, wire 83 + 71, 9, 84 ! Plane U, wire 84 + 72, 9, 85 ! Plane U, wire 85 + 73, 9, 86 ! Plane U, wire 86 + 74, 9, 87 ! Plane U, wire 87 + 75, 9, 88 ! Plane U, wire 88 + 76, 9, 89 ! Plane U, wire 89 + 77, 9, 90 ! Plane U, wire 90 + 78, 9, 91 ! Plane U, wire 91 + 80, 9, 92 ! Plane U, wire 92 + 81, 9, 93 ! Plane U, wire 93 + 82, 9, 94 ! Plane U, wire 94 + 83, 9, 95 ! Plane U, wire 95 + 84, 9, 96 ! Plane U, wire 96 + 85, 9, 97 ! Plane U, wire 97 + 86, 9, 98 ! Plane U, wire 98 + 87, 9, 99 ! Plane U, wire 99 + 88, 9, 100 ! Plane U, wire 100 + 89, 9, 101 ! Plane U, wire 101 + 90, 9, 102 ! Plane U, wire 102 + 91, 9, 103 ! Plane U, wire 103 + 92, 9, 104 ! Plane U, wire 104 + 93, 9, 105 ! Plane U, wire 105 + 94, 9, 106 ! Plane U, wire 106 + 95, 9, 107 ! Plane U, wire 107 + SLOT=16 -! channel,plane,wire -80,10,1 ! Plane V, wire 1 -81,10,2 ! Plane V, wire 2 -82,10,3 ! Plane V, wire 3 -83,10,4 ! Plane V, wire 4 -84,10,5 ! Plane V, wire 5 -85,10,6 ! Plane V, wire 6 -86,10,7 ! Plane V, wire 7 -87,10,8 ! Plane V, wire 8 -88,10,9 ! Plane V, wire 9 -89,10,10 ! Plane V, wire 10 -90,10,11 ! Plane V, wire 11 -91,10,12 ! Plane V, wire 12 -92,10,13 ! Plane V, wire 13 -93,10,14 ! Plane V, wire 14 -94,12,113 ! Plane X', wire 113 +REFINDEX=0 + 80, 10, 1 ! Plane V, wire 1 + 81, 10, 2 ! Plane V, wire 2 + 82, 10, 3 ! Plane V, wire 3 + 83, 10, 4 ! Plane V, wire 4 + 84, 10, 5 ! Plane V, wire 5 + 85, 10, 6 ! Plane V, wire 6 + 86, 10, 7 ! Plane V, wire 7 + 87, 10, 8 ! Plane V, wire 8 + 88, 10, 9 ! Plane V, wire 9 + 89, 10, 10 ! Plane V, wire 10 + 90, 10, 11 ! Plane V, wire 11 + 91, 10, 12 ! Plane V, wire 12 + 92, 10, 13 ! Plane V, wire 13 + 93, 10, 14 ! Plane V, wire 14 + 94, 12, 113 ! Plane X', wire 113 + SLOT=14 -! channel,plane,wire -96,10,15 ! Plane V, wire 15 -97,10,16 ! Plane V, wire 16 -98,10,17 ! Plane V, wire 17 -99,10,18 ! Plane V, wire 18 -100,10,19 ! Plane V, wire 19 -101,10,20 ! Plane V, wire 20 -102,10,21 ! Plane V, wire 21 -103,10,22 ! Plane V, wire 22 -104,10,23 ! Plane V, wire 23 -105,10,24 ! Plane V, wire 24 -106,10,25 ! Plane V, wire 25 -107,10,26 ! Plane V, wire 26 -108,10,27 ! Plane V, wire 27 -109,10,28 ! Plane V, wire 28 -110,10,29 ! Plane V, wire 29 -112,10,30 ! Plane V, wire 30 -113,10,31 ! Plane V, wire 31 -114,10,32 ! Plane V, wire 32 -115,10,33 ! Plane V, wire 33 -116,10,34 ! Plane V, wire 34 -117,10,35 ! Plane V, wire 35 -118,10,36 ! Plane V, wire 36 -119,10,37 ! Plane V, wire 37 -120,10,38 ! Plane V, wire 38 -121,10,39 ! Plane V, wire 39 -122,10,40 ! Plane V, wire 40 -123,10,41 ! Plane V, wire 41 -124,10,42 ! Plane V, wire 42 -125,10,43 ! Plane V, wire 43 -126,10,44 ! Plane V, wire 44 -127,10,45 ! Plane V, wire 45 +REFINDEX=0 + 96, 10, 15 ! Plane V, wire 15 + 97, 10, 16 ! Plane V, wire 16 + 98, 10, 17 ! Plane V, wire 17 + 99, 10, 18 ! Plane V, wire 18 + 100, 10, 19 ! Plane V, wire 19 + 101, 10, 20 ! Plane V, wire 20 + 102, 10, 21 ! Plane V, wire 21 + 103, 10, 22 ! Plane V, wire 22 + 104, 10, 23 ! Plane V, wire 23 + 105, 10, 24 ! Plane V, wire 24 + 106, 10, 25 ! Plane V, wire 25 + 107, 10, 26 ! Plane V, wire 26 + 108, 10, 27 ! Plane V, wire 27 + 109, 10, 28 ! Plane V, wire 28 + 110, 10, 29 ! Plane V, wire 29 + 112, 10, 30 ! Plane V, wire 30 + 113, 10, 31 ! Plane V, wire 31 + 114, 10, 32 ! Plane V, wire 32 + 115, 10, 33 ! Plane V, wire 33 + 116, 10, 34 ! Plane V, wire 34 + 117, 10, 35 ! Plane V, wire 35 + 118, 10, 36 ! Plane V, wire 36 + 119, 10, 37 ! Plane V, wire 37 + 120, 10, 38 ! Plane V, wire 38 + 121, 10, 39 ! Plane V, wire 39 + 122, 10, 40 ! Plane V, wire 40 + 123, 10, 41 ! Plane V, wire 41 + 124, 10, 42 ! Plane V, wire 42 + 125, 10, 43 ! Plane V, wire 43 + 126, 10, 44 ! Plane V, wire 44 + 127, 10, 45 ! Plane V, wire 45 + SLOT=17 -! channel,plane,wire -0,10,46 ! Plane V, wire 46 -1,10,47 ! Plane V, wire 47 -2,10,48 ! Plane V, wire 48 -3,10,49 ! Plane V, wire 49 -4,10,50 ! Plane V, wire 50 -5,10,51 ! Plane V, wire 51 -6,10,52 ! Plane V, wire 52 -7,10,53 ! Plane V, wire 53 -8,10,54 ! Plane V, wire 54 -9,10,55 ! Plane V, wire 55 -10,10,56 ! Plane V, wire 56 -11,10,57 ! Plane V, wire 57 -12,10,58 ! Plane V, wire 58 -13,10,59 ! Plane V, wire 59 -14,10,60 ! Plane V, wire 60 -16,10,61 ! Plane V, wire 61 -17,10,62 ! Plane V, wire 62 -18,10,63 ! Plane V, wire 63 -19,10,64 ! Plane V, wire 64 -20,10,65 ! Plane V, wire 65 -21,10,66 ! Plane V, wire 66 -22,10,67 ! Plane V, wire 67 -23,10,68 ! Plane V, wire 68 -24,10,69 ! Plane V, wire 69 -25,10,70 ! Plane V, wire 70 -26,10,71 ! Plane V, wire 71 -27,10,72 ! Plane V, wire 72 -28,10,73 ! Plane V, wire 73 -29,10,74 ! Plane V, wire 74 -30,10,75 ! Plane V, wire 75 -31,10,76 ! Plane V, wire 76 -32,10,77 ! Plane V, wire 77 -33,10,78 ! Plane V, wire 78 -34,10,79 ! Plane V, wire 79 -35,10,80 ! Plane V, wire 80 -36,10,81 ! Plane V, wire 81 -37,10,82 ! Plane V, wire 82 -38,10,83 ! Plane V, wire 83 -39,10,84 ! Plane V, wire 84 -40,10,85 ! Plane V, wire 85 -41,10,86 ! Plane V, wire 86 -42,10,87 ! Plane V, wire 87 -43,10,88 ! Plane V, wire 88 -44,10,89 ! Plane V, wire 89 -45,10,90 ! Plane V, wire 90 -46,10,91 ! Plane V, wire 91 -48,10,92 ! Plane V, wire 92 -49,10,93 ! Plane V, wire 93 -50,10,94 ! Plane V, wire 94 -51,10,95 ! Plane V, wire 95 -52,10,96 ! Plane V, wire 96 -53,10,97 ! Plane V, wire 97 -54,10,98 ! Plane V, wire 98 -55,10,99 ! Plane V, wire 99 -56,10,100 ! Plane V, wire 100 -57,10,101 ! Plane V, wire 101 -58,10,102 ! Plane V, wire 102 -59,10,103 ! Plane V, wire 103 -60,10,104 ! Plane V, wire 104 -61,10,105 ! Plane V, wire 105 -62,10,106 ! Plane V, wire 106 -63,10,107 ! Plane V, wire 107 +REFINDEX=0 + 127,1000, 0, 3 + 0, 10, 46 ! Plane V, wire 46 + 1, 10, 47 ! Plane V, wire 47 + 2, 10, 48 ! Plane V, wire 48 + 3, 10, 49 ! Plane V, wire 49 + 4, 10, 50 ! Plane V, wire 50 + 5, 10, 51 ! Plane V, wire 51 + 6, 10, 52 ! Plane V, wire 52 + 7, 10, 53 ! Plane V, wire 53 + 8, 10, 54 ! Plane V, wire 54 + 9, 10, 55 ! Plane V, wire 55 + 10, 10, 56 ! Plane V, wire 56 + 11, 10, 57 ! Plane V, wire 57 + 12, 10, 58 ! Plane V, wire 58 + 13, 10, 59 ! Plane V, wire 59 + 14, 10, 60 ! Plane V, wire 60 + 16, 10, 61 ! Plane V, wire 61 + 17, 10, 62 ! Plane V, wire 62 + 18, 10, 63 ! Plane V, wire 63 + 19, 10, 64 ! Plane V, wire 64 + 20, 10, 65 ! Plane V, wire 65 + 21, 10, 66 ! Plane V, wire 66 + 22, 10, 67 ! Plane V, wire 67 + 23, 10, 68 ! Plane V, wire 68 + 24, 10, 69 ! Plane V, wire 69 + 25, 10, 70 ! Plane V, wire 70 + 26, 10, 71 ! Plane V, wire 71 + 27, 10, 72 ! Plane V, wire 72 + 28, 10, 73 ! Plane V, wire 73 + 29, 10, 74 ! Plane V, wire 74 + 30, 10, 75 ! Plane V, wire 75 + 31, 10, 76 ! Plane V, wire 76 + 32, 10, 77 ! Plane V, wire 77 + 33, 10, 78 ! Plane V, wire 78 + 34, 10, 79 ! Plane V, wire 79 + 35, 10, 80 ! Plane V, wire 80 + 36, 10, 81 ! Plane V, wire 81 + 37, 10, 82 ! Plane V, wire 82 + 38, 10, 83 ! Plane V, wire 83 + 39, 10, 84 ! Plane V, wire 84 + 40, 10, 85 ! Plane V, wire 85 + 41, 10, 86 ! Plane V, wire 86 + 42, 10, 87 ! Plane V, wire 87 + 43, 10, 88 ! Plane V, wire 88 + 44, 10, 89 ! Plane V, wire 89 + 45, 10, 90 ! Plane V, wire 90 + 46, 10, 91 ! Plane V, wire 91 + 48, 10, 92 ! Plane V, wire 92 + 49, 10, 93 ! Plane V, wire 93 + 50, 10, 94 ! Plane V, wire 94 + 51, 10, 95 ! Plane V, wire 95 + 52, 10, 96 ! Plane V, wire 96 + 53, 10, 97 ! Plane V, wire 97 + 54, 10, 98 ! Plane V, wire 98 + 55, 10, 99 ! Plane V, wire 99 + 56, 10, 100 ! Plane V, wire 100 + 57, 10, 101 ! Plane V, wire 101 + 58, 10, 102 ! Plane V, wire 102 + 59, 10, 103 ! Plane V, wire 103 + 60, 10, 104 ! Plane V, wire 104 + 61, 10, 105 ! Plane V, wire 105 + 62, 10, 106 ! Plane V, wire 106 + 63, 10, 107 ! Plane V, wire 107 + SLOT=13 -! channel,plane,wire -0,7,1 ! Plane X, wire 1 -1,7,2 ! Plane X, wire 2 -2,7,3 ! Plane X, wire 3 -3,7,4 ! Plane X, wire 4 -4,7,5 ! Plane X, wire 5 -5,7,6 ! Plane X, wire 6 -6,7,7 ! Plane X, wire 7 -7,7,8 ! Plane X, wire 8 -8,7,9 ! Plane X, wire 9 -9,7,10 ! Plane X, wire 10 -10,7,11 ! Plane X, wire 11 -11,7,12 ! Plane X, wire 12 -12,7,13 ! Plane X, wire 13 -13,7,14 ! Plane X, wire 14 -14,7,15 ! Plane X, wire 15 -15,7,16 ! Plane X, wire 16 -16,7,17 ! Plane X, wire 17 -17,7,18 ! Plane X, wire 18 -18,7,19 ! Plane X, wire 19 -19,7,20 ! Plane X, wire 20 -20,7,21 ! Plane X, wire 21 -21,7,22 ! Plane X, wire 22 -22,7,23 ! Plane X, wire 23 -23,7,24 ! Plane X, wire 24 -24,7,25 ! Plane X, wire 25 -25,7,26 ! Plane X, wire 26 -26,7,27 ! Plane X, wire 27 -27,7,28 ! Plane X, wire 28 -28,7,29 ! Plane X, wire 29 -29,7,30 ! Plane X, wire 30 -30,7,31 ! Plane X, wire 31 -31,7,32 ! Plane X, wire 32 -32,7,33 ! Plane X, wire 33 -33,7,34 ! Plane X, wire 34 -34,7,35 ! Plane X, wire 35 -35,7,36 ! Plane X, wire 36 -36,7,37 ! Plane X, wire 37 -37,7,38 ! Plane X, wire 38 -38,7,39 ! Plane X, wire 39 -39,7,40 ! Plane X, wire 40 -40,7,41 ! Plane X, wire 41 -41,7,42 ! Plane X, wire 42 -42,7,43 ! Plane X, wire 43 -43,7,44 ! Plane X, wire 44 -44,7,45 ! Plane X, wire 45 -45,7,46 ! Plane X, wire 46 -46,7,47 ! Plane X, wire 47 -47,7,48 ! Plane X, wire 48 -48,7,49 ! Plane X, wire 49 -49,7,50 ! Plane X, wire 50 -50,7,51 ! Plane X, wire 51 -51,7,52 ! Plane X, wire 52 -52,7,53 ! Plane X, wire 53 -53,7,54 ! Plane X, wire 54 -54,7,55 ! Plane X, wire 55 -55,7,56 ! Plane X, wire 56 -56,7,57 ! Plane X, wire 57 -57,7,58 ! Plane X, wire 58 -58,7,59 ! Plane X, wire 59 -59,7,60 ! Plane X, wire 60 -60,7,61 ! Plane X, wire 61 -61,7,62 ! Plane X, wire 62 -62,7,63 ! Plane X, wire 63 -63,7,64 ! Plane X, wire 64 -64,7,65 ! Plane X, wire 65 -65,7,66 ! Plane X, wire 66 -66,7,67 ! Plane X, wire 67 -67,7,68 ! Plane X, wire 68 -68,7,69 ! Plane X, wire 69 -69,7,70 ! Plane X, wire 70 -70,7,71 ! Plane X, wire 71 -71,7,72 ! Plane X, wire 72 -72,7,73 ! Plane X, wire 73 -73,7,74 ! Plane X, wire 74 -74,7,75 ! Plane X, wire 75 -75,7,76 ! Plane X, wire 76 -76,7,77 ! Plane X, wire 77 -77,7,78 ! Plane X, wire 78 -78,7,79 ! Plane X, wire 79 -79,7,80 ! Plane X, wire 80 -80,7,81 ! Plane X, wire 81 -81,7,82 ! Plane X, wire 82 -82,7,83 ! Plane X, wire 83 -83,7,84 ! Plane X, wire 84 -84,7,85 ! Plane X, wire 85 -85,7,86 ! Plane X, wire 86 -86,7,87 ! Plane X, wire 87 -87,7,88 ! Plane X, wire 88 -88,7,89 ! Plane X, wire 89 -89,7,90 ! Plane X, wire 90 -90,7,91 ! Plane X, wire 91 -91,7,92 ! Plane X, wire 92 -92,7,93 ! Plane X, wire 93 -93,7,94 ! Plane X, wire 94 -94,7,95 ! Plane X, wire 95 -95,7,96 ! Plane X, wire 96 -96,7,97 ! Plane X, wire 97 -97,7,98 ! Plane X, wire 98 -98,7,99 ! Plane X, wire 99 -99,7,100 ! Plane X, wire 100 -100,7,101 ! Plane X, wire 101 -101,7,102 ! Plane X, wire 102 -102,7,103 ! Plane X, wire 103 -103,7,104 ! Plane X, wire 104 -104,7,105 ! Plane X, wire 105 -105,7,106 ! Plane X, wire 106 -106,7,107 ! Plane X, wire 107 -107,7,108 ! Plane X, wire 108 -108,7,109 ! Plane X, wire 109 -109,7,110 ! Plane X, wire 110 -110,7,111 ! Plane X, wire 111 -111,7,112 ! Plane X, wire 112 -112,12,1 ! Plane X', wire 1 -113,12,2 ! Plane X', wire 2 -114,12,3 ! Plane X', wire 3 -115,12,4 ! Plane X', wire 4 -116,12,5 ! Plane X', wire 5 -117,12,6 ! Plane X', wire 6 -118,12,7 ! Plane X', wire 7 -119,12,8 ! Plane X', wire 8 -120,12,9 ! Plane X', wire 9 -121,12,10 ! Plane X', wire 10 -122,12,11 ! Plane X', wire 11 -123,12,12 ! Plane X', wire 12 -124,12,13 ! Plane X', wire 13 -125,12,14 ! Plane X', wire 14 -126,12,15 ! Plane X', wire 15 -127,12,16 ! Plane X', wire 16 -SLOT=14 -! channel,plane,wire -16,12,17 ! Plane X', wire 17 -17,12,18 ! Plane X', wire 18 -18,12,19 ! Plane X', wire 19 -19,12,20 ! Plane X', wire 20 -20,12,21 ! Plane X', wire 21 -21,12,22 ! Plane X', wire 22 -22,12,23 ! Plane X', wire 23 -23,12,24 ! Plane X', wire 24 -24,12,25 ! Plane X', wire 25 -25,12,26 ! Plane X', wire 26 -26,12,27 ! Plane X', wire 27 -27,12,28 ! Plane X', wire 28 -28,12,29 ! Plane X', wire 29 -29,12,30 ! Plane X', wire 30 -30,12,31 ! Plane X', wire 31 -31,12,32 ! Plane X', wire 32 -SLOT=16 -! channel,plane,wire -0,12,33 ! Plane X', wire 33 -1,12,34 ! Plane X', wire 34 -2,12,35 ! Plane X', wire 35 -3,12,36 ! Plane X', wire 36 -4,12,37 ! Plane X', wire 37 -5,12,38 ! Plane X', wire 38 -6,12,39 ! Plane X', wire 39 -7,12,40 ! Plane X', wire 40 -8,12,41 ! Plane X', wire 41 -9,12,42 ! Plane X', wire 42 -10,12,43 ! Plane X', wire 43 -11,12,44 ! Plane X', wire 44 -12,12,45 ! Plane X', wire 45 -13,12,46 ! Plane X', wire 46 -14,12,47 ! Plane X', wire 47 -15,12,48 ! Plane X', wire 48 -16,12,49 ! Plane X', wire 49 -17,12,50 ! Plane X', wire 50 -18,12,51 ! Plane X', wire 51 -19,12,52 ! Plane X', wire 52 -20,12,53 ! Plane X', wire 53 -21,12,54 ! Plane X', wire 54 -22,12,55 ! Plane X', wire 55 -23,12,56 ! Plane X', wire 56 -24,12,57 ! Plane X', wire 57 -25,12,58 ! Plane X', wire 58 -26,12,59 ! Plane X', wire 59 -27,12,60 ! Plane X', wire 60 -28,12,61 ! Plane X', wire 61 -29,12,62 ! Plane X', wire 62 -30,12,63 ! Plane X', wire 63 -31,12,64 ! Plane X', wire 64 -32,12,65 ! Plane X', wire 65 -33,12,66 ! Plane X', wire 66 -34,12,67 ! Plane X', wire 67 -35,12,68 ! Plane X', wire 68 -36,12,69 ! Plane X', wire 69 -37,12,70 ! Plane X', wire 70 -38,12,71 ! Plane X', wire 71 -39,12,72 ! Plane X', wire 72 -40,12,73 ! Plane X', wire 73 -41,12,74 ! Plane X', wire 74 -42,12,75 ! Plane X', wire 75 -43,12,76 ! Plane X', wire 76 -44,12,77 ! Plane X', wire 77 -45,12,78 ! Plane X', wire 78 -46,12,79 ! Plane X', wire 79 -47,12,80 ! Plane X', wire 80 -48,12,81 ! Plane X', wire 81 -49,12,82 ! Plane X', wire 82 -50,12,83 ! Plane X', wire 83 -51,12,84 ! Plane X', wire 84 -52,12,85 ! Plane X', wire 85 -53,12,86 ! Plane X', wire 86 -54,12,87 ! Plane X', wire 87 -55,12,88 ! Plane X', wire 88 -56,12,89 ! Plane X', wire 89 -57,12,90 ! Plane X', wire 90 -58,12,91 ! Plane X', wire 91 -59,12,92 ! Plane X', wire 92 -60,12,93 ! Plane X', wire 93 -61,12,94 ! Plane X', wire 94 -62,12,95 ! Plane X', wire 95 -63,12,96 ! Plane X', wire 96 -64,12,97 ! Plane X', wire 97 -65,12,98 ! Plane X', wire 98 -66,12,99 ! Plane X', wire 99 -67,12,100 ! Plane X', wire 100 -68,12,101 ! Plane X', wire 101 -69,12,102 ! Plane X', wire 102 -70,12,103 ! Plane X', wire 103 -71,12,104 ! Plane X', wire 104 -72,12,105 ! Plane X', wire 105 -73,12,106 ! Plane X', wire 106 -74,12,107 ! Plane X', wire 107 -75,12,108 ! Plane X', wire 108 -76,12,109 ! Plane X', wire 109 -77,12,110 ! Plane X', wire 110 -78,12,111 ! Plane X', wire 111 -79,12,112 ! Plane X', wire 112 -SLOT=17 -! channel,plane,wire -64,8,1 ! Plane Y, wire 1 -65,8,2 ! Plane Y, wire 2 -66,8,3 ! Plane Y, wire 3 -67,8,4 ! Plane Y, wire 4 -68,8,5 ! Plane Y, wire 5 -69,8,6 ! Plane Y, wire 6 -70,8,7 ! Plane Y, wire 7 -71,8,8 ! Plane Y, wire 8 -72,8,9 ! Plane Y, wire 9 -73,8,10 ! Plane Y, wire 10 -74,8,11 ! Plane Y, wire 11 -75,8,12 ! Plane Y, wire 12 -76,8,13 ! Plane Y, wire 13 -80,8,14 ! Plane Y, wire 14 -81,8,15 ! Plane Y, wire 15 -82,8,16 ! Plane Y, wire 16 -83,8,17 ! Plane Y, wire 17 -84,8,18 ! Plane Y, wire 18 -85,8,19 ! Plane Y, wire 19 -86,8,20 ! Plane Y, wire 20 -87,8,21 ! Plane Y, wire 21 -88,8,22 ! Plane Y, wire 22 -89,8,23 ! Plane Y, wire 23 -90,8,24 ! Plane Y, wire 24 -91,8,25 ! Plane Y, wire 25 -92,8,26 ! Plane Y, wire 26 -96,8,27 ! Plane Y, wire 27 -97,8,28 ! Plane Y, wire 28 -98,8,29 ! Plane Y, wire 29 -99,8,30 ! Plane Y, wire 30 -100,8,31 ! Plane Y, wire 31 -101,8,32 ! Plane Y, wire 32 -102,8,33 ! Plane Y, wire 33 -103,8,34 ! Plane Y, wire 34 -104,8,35 ! Plane Y, wire 35 -105,8,36 ! Plane Y, wire 36 -106,8,37 ! Plane Y, wire 37 -107,8,38 ! Plane Y, wire 38 -108,8,39 ! Plane Y, wire 39 -112,8,40 ! Plane Y, wire 40 -113,8,41 ! Plane Y, wire 41 -114,8,42 ! Plane Y, wire 42 -115,8,43 ! Plane Y, wire 43 -116,8,44 ! Plane Y, wire 44 -117,8,45 ! Plane Y, wire 45 -118,8,46 ! Plane Y, wire 46 -119,8,47 ! Plane Y, wire 47 -120,8,48 ! Plane Y, wire 48 -121,8,49 ! Plane Y, wire 49 -122,8,50 ! Plane Y, wire 50 -123,8,51 ! Plane Y, wire 51 -124,8,52 ! Plane Y, wire 52 -SLOT=10 -! channel,plane,wire -64,11,1 ! Plane Y', wire 1 -65,11,2 ! Plane Y', wire 2 -66,11,3 ! Plane Y', wire 3 -67,11,4 ! Plane Y', wire 4 -68,11,5 ! Plane Y', wire 5 -69,11,6 ! Plane Y', wire 6 -70,11,7 ! Plane Y', wire 7 -71,11,8 ! Plane Y', wire 8 -72,11,9 ! Plane Y', wire 9 -73,11,10 ! Plane Y', wire 10 -74,11,11 ! Plane Y', wire 11 -75,11,12 ! Plane Y', wire 12 -76,11,13 ! Plane Y', wire 13 -80,11,14 ! Plane Y', wire 14 -81,11,15 ! Plane Y', wire 15 -82,11,16 ! Plane Y', wire 16 -83,11,17 ! Plane Y', wire 17 -84,11,18 ! Plane Y', wire 18 -85,11,19 ! Plane Y', wire 19 -86,11,20 ! Plane Y', wire 20 -87,11,21 ! Plane Y', wire 21 -88,11,22 ! Plane Y', wire 22 -89,11,23 ! Plane Y', wire 23 -90,11,24 ! Plane Y', wire 24 -91,11,25 ! Plane Y', wire 25 -92,11,26 ! Plane Y', wire 26 -96,11,27 ! Plane Y', wire 27 -97,11,28 ! Plane Y', wire 28 -98,11,29 ! Plane Y', wire 29 -99,11,30 ! Plane Y', wire 30 -100,11,31 ! Plane Y', wire 31 -101,11,32 ! Plane Y', wire 32 -102,11,33 ! Plane Y', wire 33 -103,11,34 ! Plane Y', wire 34 -104,11,35 ! Plane Y', wire 35 -105,11,36 ! Plane Y', wire 36 -106,11,37 ! Plane Y', wire 37 -107,11,38 ! Plane Y', wire 38 -108,11,39 ! Plane Y', wire 39 -112,11,40 ! Plane Y', wire 40 -113,11,41 ! Plane Y', wire 41 -114,11,42 ! Plane Y', wire 42 -115,11,43 ! Plane Y', wire 43 -116,11,44 ! Plane Y', wire 44 -117,11,45 ! Plane Y', wire 45 -118,11,46 ! Plane Y', wire 46 -119,11,47 ! Plane Y', wire 47 -120,11,48 ! Plane Y', wire 48 -121,11,49 ! Plane Y', wire 49 -122,11,50 ! Plane Y', wire 50 -123,11,51 ! Plane Y', wire 51 -124,11,52 ! Plane Y', wire 52 +REFINDEX=0 + 0, 7, 1 ! Plane X, wire 1 + 1, 7, 2 ! Plane X, wire 2 + 2, 7, 3 ! Plane X, wire 3 + 3, 7, 4 ! Plane X, wire 4 + 4, 7, 5 ! Plane X, wire 5 + 5, 7, 6 ! Plane X, wire 6 + 6, 7, 7 ! Plane X, wire 7 + 7, 7, 8 ! Plane X, wire 8 + 8, 7, 9 ! Plane X, wire 9 + 9, 7, 10 ! Plane X, wire 10 + 10, 7, 11 ! Plane X, wire 11 + 11, 7, 12 ! Plane X, wire 12 + 12, 7, 13 ! Plane X, wire 13 + 13, 7, 14 ! Plane X, wire 14 + 14, 7, 15 ! Plane X, wire 15 + 15, 7, 16 ! Plane X, wire 16 + 16, 7, 17 ! Plane X, wire 17 + 17, 7, 18 ! Plane X, wire 18 + 18, 7, 19 ! Plane X, wire 19 + 19, 7, 20 ! Plane X, wire 20 + 20, 7, 21 ! Plane X, wire 21 + 21, 7, 22 ! Plane X, wire 22 + 22, 7, 23 ! Plane X, wire 23 + 23, 7, 24 ! Plane X, wire 24 + 24, 7, 25 ! Plane X, wire 25 + 25, 7, 26 ! Plane X, wire 26 + 26, 7, 27 ! Plane X, wire 27 + 27, 7, 28 ! Plane X, wire 28 + 28, 7, 29 ! Plane X, wire 29 + 29, 7, 30 ! Plane X, wire 30 + 30, 7, 31 ! Plane X, wire 31 + 31, 7, 32 ! Plane X, wire 32 + 32, 7, 33 ! Plane X, wire 33 + 33, 7, 34 ! Plane X, wire 34 + 34, 7, 35 ! Plane X, wire 35 + 35, 7, 36 ! Plane X, wire 36 + 36, 7, 37 ! Plane X, wire 37 + 37, 7, 38 ! Plane X, wire 38 + 38, 7, 39 ! Plane X, wire 39 + 39, 7, 40 ! Plane X, wire 40 + 40, 7, 41 ! Plane X, wire 41 + 41, 7, 42 ! Plane X, wire 42 + 42, 7, 43 ! Plane X, wire 43 + 43, 7, 44 ! Plane X, wire 44 + 44, 7, 45 ! Plane X, wire 45 + 45, 7, 46 ! Plane X, wire 46 + 46, 7, 47 ! Plane X, wire 47 + 47, 7, 48 ! Plane X, wire 48 + 48, 7, 49 ! Plane X, wire 49 + 49, 7, 50 ! Plane X, wire 50 + 50, 7, 51 ! Plane X, wire 51 + 51, 7, 52 ! Plane X, wire 52 + 52, 7, 53 ! Plane X, wire 53 + 53, 7, 54 ! Plane X, wire 54 + 54, 7, 55 ! Plane X, wire 55 + 55, 7, 56 ! Plane X, wire 56 + 56, 7, 57 ! Plane X, wire 57 + 57, 7, 58 ! Plane X, wire 58 + 58, 7, 59 ! Plane X, wire 59 + 59, 7, 60 ! Plane X, wire 60 + 60, 7, 61 ! Plane X, wire 61 + 61, 7, 62 ! Plane X, wire 62 + 62, 7, 63 ! Plane X, wire 63 + 63, 7, 64 ! Plane X, wire 64 + 64, 7, 65 ! Plane X, wire 65 + 65, 7, 66 ! Plane X, wire 66 + 66, 7, 67 ! Plane X, wire 67 + 67, 7, 68 ! Plane X, wire 68 + 68, 7, 69 ! Plane X, wire 69 + 69, 7, 70 ! Plane X, wire 70 + 70, 7, 71 ! Plane X, wire 71 + 71, 7, 72 ! Plane X, wire 72 + 72, 7, 73 ! Plane X, wire 73 + 73, 7, 74 ! Plane X, wire 74 + 74, 7, 75 ! Plane X, wire 75 + 75, 7, 76 ! Plane X, wire 76 + 76, 7, 77 ! Plane X, wire 77 + 77, 7, 78 ! Plane X, wire 78 + 78, 7, 79 ! Plane X, wire 79 + 79, 7, 80 ! Plane X, wire 80 + 80, 7, 81 ! Plane X, wire 81 + 81, 7, 82 ! Plane X, wire 82 + 82, 7, 83 ! Plane X, wire 83 + 83, 7, 84 ! Plane X, wire 84 + 84, 7, 85 ! Plane X, wire 85 + 85, 7, 86 ! Plane X, wire 86 + 86, 7, 87 ! Plane X, wire 87 + 87, 7, 88 ! Plane X, wire 88 + 88, 7, 89 ! Plane X, wire 89 + 89, 7, 90 ! Plane X, wire 90 + 90, 7, 91 ! Plane X, wire 91 + 91, 7, 92 ! Plane X, wire 92 + 92, 7, 93 ! Plane X, wire 93 + 93, 7, 94 ! Plane X, wire 94 + 94, 7, 95 ! Plane X, wire 95 + 95, 7, 96 ! Plane X, wire 96 + 96, 7, 97 ! Plane X, wire 97 + 97, 7, 98 ! Plane X, wire 98 + 98, 7, 99 ! Plane X, wire 99 + 99, 7, 100 ! Plane X, wire 100 + 100, 7, 101 ! Plane X, wire 101 + 101, 7, 102 ! Plane X, wire 102 + 102, 7, 103 ! Plane X, wire 103 + 103, 7, 104 ! Plane X, wire 104 + 104, 7, 105 ! Plane X, wire 105 + 105, 7, 106 ! Plane X, wire 106 + 106, 7, 107 ! Plane X, wire 107 + 107, 7, 108 ! Plane X, wire 108 + 108, 7, 109 ! Plane X, wire 109 + 109, 7, 110 ! Plane X, wire 110 + 110, 7, 111 ! Plane X, wire 111 + 111, 7, 112 ! Plane X, wire 112 + 112, 12, 1 ! Plane X', wire 1 + 113, 12, 2 ! Plane X', wire 2 + 114, 12, 3 ! Plane X', wire 3 + 115, 12, 4 ! Plane X', wire 4 + 116, 12, 5 ! Plane X', wire 5 + 117, 12, 6 ! Plane X', wire 6 + 118, 12, 7 ! Plane X', wire 7 + 119, 12, 8 ! Plane X', wire 8 + 120, 12, 9 ! Plane X', wire 9 + 121, 12, 10 ! Plane X', wire 10 + 122, 12, 11 ! Plane X', wire 11 + 123, 12, 12 ! Plane X', wire 12 + 124, 12, 13 ! Plane X', wire 13 + 125, 12, 14 ! Plane X', wire 14 + 126, 12, 15 ! Plane X', wire 15 + 127, 12, 16 ! Plane X', wire 16 +SLOT=14 +REFINDEX=0 + 16, 12, 17 ! Plane X', wire 17 + 17, 12, 18 ! Plane X', wire 18 + 18, 12, 19 ! Plane X', wire 19 + 19, 12, 20 ! Plane X', wire 20 + 20, 12, 21 ! Plane X', wire 21 + 21, 12, 22 ! Plane X', wire 22 + 22, 12, 23 ! Plane X', wire 23 + 23, 12, 24 ! Plane X', wire 24 + 24, 12, 25 ! Plane X', wire 25 + 25, 12, 26 ! Plane X', wire 26 + 26, 12, 27 ! Plane X', wire 27 + 27, 12, 28 ! Plane X', wire 28 + 28, 12, 29 ! Plane X', wire 29 + 29, 12, 30 ! Plane X', wire 30 + 30, 12, 31 ! Plane X', wire 31 + 31, 12, 32 ! Plane X', wire 32 +SLOT=16 +REFINDEX=0 + 0, 12, 33 ! Plane X', wire 33 + 1, 12, 34 ! Plane X', wire 34 + 2, 12, 35 ! Plane X', wire 35 + 3, 12, 36 ! Plane X', wire 36 + 4, 12, 37 ! Plane X', wire 37 + 5, 12, 38 ! Plane X', wire 38 + 6, 12, 39 ! Plane X', wire 39 + 7, 12, 40 ! Plane X', wire 40 + 8, 12, 41 ! Plane X', wire 41 + 9, 12, 42 ! Plane X', wire 42 + 10, 12, 43 ! Plane X', wire 43 + 11, 12, 44 ! Plane X', wire 44 + 12, 12, 45 ! Plane X', wire 45 + 13, 12, 46 ! Plane X', wire 46 + 14, 12, 47 ! Plane X', wire 47 + 15, 12, 48 ! Plane X', wire 48 + 16, 12, 49 ! Plane X', wire 49 + 17, 12, 50 ! Plane X', wire 50 + 18, 12, 51 ! Plane X', wire 51 + 19, 12, 52 ! Plane X', wire 52 + 20, 12, 53 ! Plane X', wire 53 + 21, 12, 54 ! Plane X', wire 54 + 22, 12, 55 ! Plane X', wire 55 + 23, 12, 56 ! Plane X', wire 56 + 24, 12, 57 ! Plane X', wire 57 + 25, 12, 58 ! Plane X', wire 58 + 26, 12, 59 ! Plane X', wire 59 + 27, 12, 60 ! Plane X', wire 60 + 28, 12, 61 ! Plane X', wire 61 + 29, 12, 62 ! Plane X', wire 62 + 30, 12, 63 ! Plane X', wire 63 + 31, 12, 64 ! Plane X', wire 64 + 32, 12, 65 ! Plane X', wire 65 + 33, 12, 66 ! Plane X', wire 66 + 34, 12, 67 ! Plane X', wire 67 + 35, 12, 68 ! Plane X', wire 68 + 36, 12, 69 ! Plane X', wire 69 + 37, 12, 70 ! Plane X', wire 70 + 38, 12, 71 ! Plane X', wire 71 + 39, 12, 72 ! Plane X', wire 72 + 40, 12, 73 ! Plane X', wire 73 + 41, 12, 74 ! Plane X', wire 74 + 42, 12, 75 ! Plane X', wire 75 + 43, 12, 76 ! Plane X', wire 76 + 44, 12, 77 ! Plane X', wire 77 + 45, 12, 78 ! Plane X', wire 78 + 46, 12, 79 ! Plane X', wire 79 + 47, 12, 80 ! Plane X', wire 80 + 48, 12, 81 ! Plane X', wire 81 + 49, 12, 82 ! Plane X', wire 82 + 50, 12, 83 ! Plane X', wire 83 + 51, 12, 84 ! Plane X', wire 84 + 52, 12, 85 ! Plane X', wire 85 + 53, 12, 86 ! Plane X', wire 86 + 54, 12, 87 ! Plane X', wire 87 + 55, 12, 88 ! Plane X', wire 88 + 56, 12, 89 ! Plane X', wire 89 + 57, 12, 90 ! Plane X', wire 90 + 58, 12, 91 ! Plane X', wire 91 + 59, 12, 92 ! Plane X', wire 92 + 60, 12, 93 ! Plane X', wire 93 + 61, 12, 94 ! Plane X', wire 94 + 62, 12, 95 ! Plane X', wire 95 + 63, 12, 96 ! Plane X', wire 96 + 64, 12, 97 ! Plane X', wire 97 + 65, 12, 98 ! Plane X', wire 98 + 66, 12, 99 ! Plane X', wire 99 + 67, 12, 100 ! Plane X', wire 100 + 68, 12, 101 ! Plane X', wire 101 + 69, 12, 102 ! Plane X', wire 102 + 70, 12, 103 ! Plane X', wire 103 + 71, 12, 104 ! Plane X', wire 104 + 72, 12, 105 ! Plane X', wire 105 + 73, 12, 106 ! Plane X', wire 106 + 74, 12, 107 ! Plane X', wire 107 + 75, 12, 108 ! Plane X', wire 108 + 76, 12, 109 ! Plane X', wire 109 + 77, 12, 110 ! Plane X', wire 110 + 78, 12, 111 ! Plane X', wire 111 + 79, 12, 112 ! Plane X', wire 112 +SLOT=17 +REFINDEX=0 + 64, 8, 1 ! Plane Y, wire 1 + 65, 8, 2 ! Plane Y, wire 2 + 66, 8, 3 ! Plane Y, wire 3 + 67, 8, 4 ! Plane Y, wire 4 + 68, 8, 5 ! Plane Y, wire 5 + 69, 8, 6 ! Plane Y, wire 6 + 70, 8, 7 ! Plane Y, wire 7 + 71, 8, 8 ! Plane Y, wire 8 + 72, 8, 9 ! Plane Y, wire 9 + 73, 8, 10 ! Plane Y, wire 10 + 74, 8, 11 ! Plane Y, wire 11 + 75, 8, 12 ! Plane Y, wire 12 + 76, 8, 13 ! Plane Y, wire 13 + 80, 8, 14 ! Plane Y, wire 14 + 81, 8, 15 ! Plane Y, wire 15 + 82, 8, 16 ! Plane Y, wire 16 + 83, 8, 17 ! Plane Y, wire 17 + 84, 8, 18 ! Plane Y, wire 18 + 85, 8, 19 ! Plane Y, wire 19 + 86, 8, 20 ! Plane Y, wire 20 + 87, 8, 21 ! Plane Y, wire 21 + 88, 8, 22 ! Plane Y, wire 22 + 89, 8, 23 ! Plane Y, wire 23 + 90, 8, 24 ! Plane Y, wire 24 + 91, 8, 25 ! Plane Y, wire 25 + 92, 8, 26 ! Plane Y, wire 26 + 96, 8, 27 ! Plane Y, wire 27 + 97, 8, 28 ! Plane Y, wire 28 + 98, 8, 29 ! Plane Y, wire 29 + 99, 8, 30 ! Plane Y, wire 30 + 100, 8, 31 ! Plane Y, wire 31 + 101, 8, 32 ! Plane Y, wire 32 + 102, 8, 33 ! Plane Y, wire 33 + 103, 8, 34 ! Plane Y, wire 34 + 104, 8, 35 ! Plane Y, wire 35 + 105, 8, 36 ! Plane Y, wire 36 + 106, 8, 37 ! Plane Y, wire 37 + 107, 8, 38 ! Plane Y, wire 38 + 108, 8, 39 ! Plane Y, wire 39 + 112, 8, 40 ! Plane Y, wire 40 + 113, 8, 41 ! Plane Y, wire 41 + 114, 8, 42 ! Plane Y, wire 42 + 115, 8, 43 ! Plane Y, wire 43 + 116, 8, 44 ! Plane Y, wire 44 + 117, 8, 45 ! Plane Y, wire 45 + 118, 8, 46 ! Plane Y, wire 46 + 119, 8, 47 ! Plane Y, wire 47 + 120, 8, 48 ! Plane Y, wire 48 + 121, 8, 49 ! Plane Y, wire 49 + 122, 8, 50 ! Plane Y, wire 50 + 123, 8, 51 ! Plane Y, wire 51 + 124, 8, 52 ! Plane Y, wire 52 +SLOT=10 +REFINDEX=0 + 127,1000, 0, 1 + 64, 11, 1 ! Plane Y', wire 1 + 65, 11, 2 ! Plane Y', wire 2 + 66, 11, 3 ! Plane Y', wire 3 + 67, 11, 4 ! Plane Y', wire 4 + 68, 11, 5 ! Plane Y', wire 5 + 69, 11, 6 ! Plane Y', wire 6 + 70, 11, 7 ! Plane Y', wire 7 + 71, 11, 8 ! Plane Y', wire 8 + 72, 11, 9 ! Plane Y', wire 9 + 73, 11, 10 ! Plane Y', wire 10 + 74, 11, 11 ! Plane Y', wire 11 + 75, 11, 12 ! Plane Y', wire 12 + 76, 11, 13 ! Plane Y', wire 13 + 80, 11, 14 ! Plane Y', wire 14 + 81, 11, 15 ! Plane Y', wire 15 + 82, 11, 16 ! Plane Y', wire 16 + 83, 11, 17 ! Plane Y', wire 17 + 84, 11, 18 ! Plane Y', wire 18 + 85, 11, 19 ! Plane Y', wire 19 + 86, 11, 20 ! Plane Y', wire 20 + 87, 11, 21 ! Plane Y', wire 21 + 88, 11, 22 ! Plane Y', wire 22 + 89, 11, 23 ! Plane Y', wire 23 + 90, 11, 24 ! Plane Y', wire 24 + 91, 11, 25 ! Plane Y', wire 25 + 92, 11, 26 ! Plane Y', wire 26 + 96, 11, 27 ! Plane Y', wire 27 + 97, 11, 28 ! Plane Y', wire 28 + 98, 11, 29 ! Plane Y', wire 29 + 99, 11, 30 ! Plane Y', wire 30 + 100, 11, 31 ! Plane Y', wire 31 + 101, 11, 32 ! Plane Y', wire 32 + 102, 11, 33 ! Plane Y', wire 33 + 103, 11, 34 ! Plane Y', wire 34 + 104, 11, 35 ! Plane Y', wire 35 + 105, 11, 36 ! Plane Y', wire 36 + 106, 11, 37 ! Plane Y', wire 37 + 107, 11, 38 ! Plane Y', wire 38 + 108, 11, 39 ! Plane Y', wire 39 + 112, 11, 40 ! Plane Y', wire 40 + 113, 11, 41 ! Plane Y', wire 41 + 114, 11, 42 ! Plane Y', wire 42 + 115, 11, 43 ! Plane Y', wire 43 + 116, 11, 44 ! Plane Y', wire 44 + 117, 11, 45 ! Plane Y', wire 45 + 118, 11, 46 ! Plane Y', wire 46 + 119, 11, 47 ! Plane Y', wire 47 + 120, 11, 48 ! Plane Y', wire 48 + 121, 11, 49 ! Plane Y', wire 49 + 122, 11, 50 ! Plane Y', wire 50 + 123, 11, 51 ! Plane Y', wire 51 + 124, 11, 52 ! Plane Y', wire 52 diff --git a/MAPS/HMS/DETEC/hdc_hhodo_htrig.map b/MAPS/HMS/DETEC/hdc_hhodo_htrig.map new file mode 100644 index 00000000..a9a77537 --- /dev/null +++ b/MAPS/HMS/DETEC/hdc_hhodo_htrig.map @@ -0,0 +1,1442 @@ +! THMS_ID=10 :: ADC,TDC +! HDC_ID=11 :: ADC,TDC +! HSCIN_ID=13 :: ADC,TDC + + +DETECTOR=10 + +ROC=1 + +SLOT=17 + 8, 1, 1, 0 ! hASUM + 9, 1, 2, 0 ! hBSUM + 10, 1, 3, 0 ! hCSUM + 11, 1, 4, 0 ! hDSUM + 12, 1, 5, 0 ! hPSHWR + 13, 1, 6, 0 ! hSHWR + 14, 1, 7, 0 ! hAERSUM + 15, 1, 8, 0 ! hCERSUM + +SLOT=2 + 0, 2, 1, 1 ! h1X + 1, 2, 2, 1 ! h1Y + 2, 2, 3, 1 ! h2X + 3, 2, 4, 1 ! h2Y + 4, 2, 5, 1 ! h1T + 5, 2, 6, 1 ! h2T + 6, 2, 7, 1 ! hT1 + 7, 2, 8, 1 ! hASUM + 8, 2, 9, 1 ! hBSUM + 9, 2, 10, 1 ! hCSUM + 10, 2, 11, 1 ! hDSUM + 11, 2, 12, 1 ! hPSHWRLO + 12, 2, 13, 1 ! hPSHWRHI + 13, 2, 14, 1 ! hSHWR + 14, 2, 15, 1 ! hAERSUM + 15, 2, 16, 1 ! hCERSUM + +SLOT=20 + 127, 2, 17, 1 ! hT2 + +ROC=3 + +SLOT=5 + 111, 2, 18, 1 ! hDCREF1 + +SLOT=8 + 127, 2, 19, 1 ! hDCREF2 + +SLOT=10 + 127, 2, 20, 1 ! hDCREF3 + +SLOT=17 + 127, 2, 21, 1 ! hDCREF4 + + +DETECTOR=11 ! HMS chambers + +ROC=3 + +SLOT=5 +REFINDEX=0 + 111,1000, 0, 0 + 96, 3, 1 ! Plane U, wire 1 + 97, 3, 2 ! Plane U, wire 2 + 98, 3, 3 ! Plane U, wire 3 + 99, 3, 4 ! Plane U, wire 4 + 100, 3, 5 ! Plane U, wire 5 + 101, 3, 6 ! Plane U, wire 6 + 102, 3, 7 ! Plane U, wire 7 + 103, 3, 8 ! Plane U, wire 8 + 104, 3, 9 ! Plane U, wire 9 + 105, 3, 10 ! Plane U, wire 10 + 106, 3, 11 ! Plane U, wire 11 + 107, 3, 12 ! Plane U, wire 12 + 108, 3, 13 ! Plane U, wire 13 + 109, 3, 14 ! Plane U, wire 14 + 110, 1, 113 ! Plane X, wire 113 + 80, 3, 15 ! Plane U, wire 15 + 81, 3, 16 ! Plane U, wire 16 + 82, 3, 17 ! Plane U, wire 17 + 83, 3, 18 ! Plane U, wire 18 + 84, 3, 19 ! Plane U, wire 19 + 85, 3, 20 ! Plane U, wire 20 + 86, 3, 21 ! Plane U, wire 21 + 87, 3, 22 ! Plane U, wire 22 + 88, 3, 23 ! Plane U, wire 23 + 89, 3, 24 ! Plane U, wire 24 + 90, 3, 25 ! Plane U, wire 25 + 91, 3, 26 ! Plane U, wire 26 + 92, 3, 27 ! Plane U, wire 27 + 93, 3, 28 ! Plane U, wire 28 + 94, 3, 29 ! Plane U, wire 29 + 64, 3, 30 ! Plane U, wire 30 + 65, 3, 31 ! Plane U, wire 31 + 66, 3, 32 ! Plane U, wire 32 + 67, 3, 33 ! Plane U, wire 33 + 68, 3, 34 ! Plane U, wire 34 + 69, 3, 35 ! Plane U, wire 35 + 70, 3, 36 ! Plane U, wire 36 + 71, 3, 37 ! Plane U, wire 37 + 72, 3, 38 ! Plane U, wire 38 + 73, 3, 39 ! Plane U, wire 39 + 74, 3, 40 ! Plane U, wire 40 + 75, 3, 41 ! Plane U, wire 41 + 76, 3, 42 ! Plane U, wire 42 + 77, 3, 43 ! Plane U, wire 43 + 78, 3, 44 ! Plane U, wire 44 + 79, 3, 45 ! Plane U, wire 45 + 48, 3, 46 ! Plane U, wire 46 + 49, 3, 47 ! Plane U, wire 47 + 50, 3, 48 ! Plane U, wire 48 + 51, 3, 49 ! Plane U, wire 49 + 52, 3, 50 ! Plane U, wire 50 + 53, 3, 51 ! Plane U, wire 51 + 54, 3, 52 ! Plane U, wire 52 + 55, 3, 53 ! Plane U, wire 53 + 56, 3, 54 ! Plane U, wire 54 + 57, 3, 55 ! Plane U, wire 55 + 58, 3, 56 ! Plane U, wire 56 + 59, 3, 57 ! Plane U, wire 57 + 60, 3, 58 ! Plane U, wire 58 + 61, 3, 59 ! Plane U, wire 59 + 62, 3, 60 ! Plane U, wire 60 + 32, 3, 61 ! Plane U, wire 61 + 33, 3, 62 ! Plane U, wire 62 + 34, 3, 63 ! Plane U, wire 63 + 35, 3, 64 ! Plane U, wire 64 + 36, 3, 65 ! Plane U, wire 65 + 37, 3, 66 ! Plane U, wire 66 + 38, 3, 67 ! Plane U, wire 67 + 39, 3, 68 ! Plane U, wire 68 + 40, 3, 69 ! Plane U, wire 69 + 41, 3, 70 ! Plane U, wire 70 + 42, 3, 71 ! Plane U, wire 71 + 43, 3, 72 ! Plane U, wire 72 + 44, 3, 73 ! Plane U, wire 73 + 45, 3, 74 ! Plane U, wire 74 + 46, 3, 75 ! Plane U, wire 75 + 47, 3, 76 ! Plane U, wire 76 + 16, 3, 77 ! Plane U, wire 77 + 17, 3, 78 ! Plane U, wire 78 + 18, 3, 79 ! Plane U, wire 79 + 19, 3, 80 ! Plane U, wire 80 + 20, 3, 81 ! Plane U, wire 81 + 21, 3, 82 ! Plane U, wire 82 + 22, 3, 83 ! Plane U, wire 83 + 23, 3, 84 ! Plane U, wire 84 + 24, 3, 85 ! Plane U, wire 85 + 25, 3, 86 ! Plane U, wire 86 + 26, 3, 87 ! Plane U, wire 87 + 27, 3, 88 ! Plane U, wire 88 + 28, 3, 89 ! Plane U, wire 89 + 29, 3, 90 ! Plane U, wire 90 + 30, 3, 91 ! Plane U, wire 91 + 0, 3, 92 ! Plane U, wire 92 + 1, 3, 93 ! Plane U, wire 93 + 2, 3, 94 ! Plane U, wire 94 + 3, 3, 95 ! Plane U, wire 95 + 4, 3, 96 ! Plane U, wire 96 + 5, 3, 97 ! Plane U, wire 97 + 6, 3, 98 ! Plane U, wire 98 + 7, 3, 99 ! Plane U, wire 99 + 8, 3, 100 ! Plane U, wire 100 + 9, 3, 101 ! Plane U, wire 101 + 10, 3, 102 ! Plane U, wire 102 + 11, 3, 103 ! Plane U, wire 103 + 12, 3, 104 ! Plane U, wire 104 + 13, 3, 105 ! Plane U, wire 105 + 14, 3, 106 ! Plane U, wire 106 + 15, 3, 107 ! Plane U, wire 107 + +SLOT=7 +REFINDEX=0 + 96, 4, 1 ! Plane V, wire 1 + 97, 4, 2 ! Plane V, wire 2 + 98, 4, 3 ! Plane V, wire 3 + 99, 4, 4 ! Plane V, wire 4 + 100, 4, 5 ! Plane V, wire 5 + 101, 4, 6 ! Plane V, wire 6 + 102, 4, 7 ! Plane V, wire 7 + 103, 4, 8 ! Plane V, wire 8 + 104, 4, 9 ! Plane V, wire 9 + 105, 4, 10 ! Plane V, wire 10 + 106, 4, 11 ! Plane V, wire 11 + 107, 4, 12 ! Plane V, wire 12 + 108, 4, 13 ! Plane V, wire 13 + 109, 4, 14 ! Plane V, wire 14 + 110, 6, 113 ! Plane X', wire 113 + 112, 4, 15 ! Plane V, wire 15 + 113, 4, 16 ! Plane V, wire 16 + 114, 4, 17 ! Plane V, wire 17 + 115, 4, 18 ! Plane V, wire 18 + 116, 4, 19 ! Plane V, wire 19 + 117, 4, 20 ! Plane V, wire 20 + 118, 4, 21 ! Plane V, wire 21 + 119, 4, 22 ! Plane V, wire 22 + 120, 4, 23 ! Plane V, wire 23 + 121, 4, 24 ! Plane V, wire 24 + 122, 4, 25 ! Plane V, wire 25 + 123, 4, 26 ! Plane V, wire 26 + 124, 4, 27 ! Plane V, wire 27 + 125, 4, 28 ! Plane V, wire 28 + 126, 4, 29 ! Plane V, wire 29 + +SLOT=8 +REFINDEX=0 + 127,1000, 0, 1 + 0, 4, 30 ! Plane V, wire 30 + 1, 4, 31 ! Plane V, wire 31 + 2, 4, 32 ! Plane V, wire 32 + 3, 4, 33 ! Plane V, wire 33 + 4, 4, 34 ! Plane V, wire 34 + 5, 4, 35 ! Plane V, wire 35 + 6, 4, 36 ! Plane V, wire 36 + 7, 4, 37 ! Plane V, wire 37 + 8, 4, 38 ! Plane V, wire 38 + 9, 4, 39 ! Plane V, wire 39 + 10, 4, 40 ! Plane V, wire 40 + 11, 4, 41 ! Plane V, wire 41 + 12, 4, 42 ! Plane V, wire 42 + 13, 4, 43 ! Plane V, wire 43 + 14, 4, 44 ! Plane V, wire 44 + 15, 4, 45 ! Plane V, wire 45 + 16, 4, 46 ! Plane V, wire 46 + 17, 4, 47 ! Plane V, wire 47 + 18, 4, 48 ! Plane V, wire 48 + 19, 4, 49 ! Plane V, wire 49 + 20, 4, 50 ! Plane V, wire 50 + 21, 4, 51 ! Plane V, wire 51 + 22, 4, 52 ! Plane V, wire 52 + 23, 4, 53 ! Plane V, wire 53 + 24, 4, 54 ! Plane V, wire 54 + 25, 4, 55 ! Plane V, wire 55 + 26, 4, 56 ! Plane V, wire 56 + 27, 4, 57 ! Plane V, wire 57 + 28, 4, 58 ! Plane V, wire 58 + 29, 4, 59 ! Plane V, wire 59 + 30, 4, 60 ! Plane V, wire 60 + 32, 4, 61 ! Plane V, wire 61 + 33, 4, 62 ! Plane V, wire 62 + 34, 4, 63 ! Plane V, wire 63 + 35, 4, 64 ! Plane V, wire 64 + 36, 4, 65 ! Plane V, wire 65 + 37, 4, 66 ! Plane V, wire 66 + 38, 4, 67 ! Plane V, wire 67 + 39, 4, 68 ! Plane V, wire 68 + 40, 4, 69 ! Plane V, wire 69 + 41, 4, 70 ! Plane V, wire 70 + 42, 4, 71 ! Plane V, wire 71 + 43, 4, 72 ! Plane V, wire 72 + 44, 4, 73 ! Plane V, wire 73 + 45, 4, 74 ! Plane V, wire 74 + 46, 4, 75 ! Plane V, wire 75 + 47, 4, 76 ! Plane V, wire 76 + 48, 4, 77 ! Plane V, wire 77 + 49, 4, 78 ! Plane V, wire 78 + 50, 4, 79 ! Plane V, wire 79 + 51, 4, 80 ! Plane V, wire 80 + 52, 4, 81 ! Plane V, wire 81 + 53, 4, 82 ! Plane V, wire 82 + 54, 4, 83 ! Plane V, wire 83 + 55, 4, 84 ! Plane V, wire 84 + 56, 4, 85 ! Plane V, wire 85 + 57, 4, 86 ! Plane V, wire 86 + 58, 4, 87 ! Plane V, wire 87 + 59, 4, 88 ! Plane V, wire 88 + 60, 4, 89 ! Plane V, wire 89 + 61, 4, 90 ! Plane V, wire 90 + 62, 4, 91 ! Plane V, wire 91 + +SLOT=4 +REFINDEX=0 + 96, 4, 92 ! Plane V, wire 92 + 97, 4, 93 ! Plane V, wire 93 + 98, 4, 94 ! Plane V, wire 94 + 99, 4, 95 ! Plane V, wire 95 + 100, 4, 96 ! Plane V, wire 96 + 101, 4, 97 ! Plane V, wire 97 + 102, 4, 98 ! Plane V, wire 98 + 103, 4, 99 ! Plane V, wire 99 + 104, 4, 100 ! Plane V, wire 100 + 105, 4, 101 ! Plane V, wire 101 + 106, 4, 102 ! Plane V, wire 102 + 107, 4, 103 ! Plane V, wire 103 + 108, 4, 104 ! Plane V, wire 104 + 109, 4, 105 ! Plane V, wire 105 + 110, 4, 106 ! Plane V, wire 106 + 111, 4, 107 ! Plane V, wire 107 + 80, 1, 1 ! Plane X, wire 1 + 81, 1, 2 ! Plane X, wire 2 + 82, 1, 3 ! Plane X, wire 3 + 83, 1, 4 ! Plane X, wire 4 + 84, 1, 5 ! Plane X, wire 5 + 85, 1, 6 ! Plane X, wire 6 + 86, 1, 7 ! Plane X, wire 7 + 87, 1, 8 ! Plane X, wire 8 + 88, 1, 9 ! Plane X, wire 9 + 89, 1, 10 ! Plane X, wire 10 + 90, 1, 11 ! Plane X, wire 11 + 91, 1, 12 ! Plane X, wire 12 + 92, 1, 13 ! Plane X, wire 13 + 93, 1, 14 ! Plane X, wire 14 + 94, 1, 15 ! Plane X, wire 15 + 95, 1, 16 ! Plane X, wire 16 + 64, 1, 17 ! Plane X, wire 17 + 65, 1, 18 ! Plane X, wire 18 + 66, 1, 19 ! Plane X, wire 19 + 67, 1, 20 ! Plane X, wire 20 + 68, 1, 21 ! Plane X, wire 21 + 69, 1, 22 ! Plane X, wire 22 + 70, 1, 23 ! Plane X, wire 23 + 71, 1, 24 ! Plane X, wire 24 + 72, 1, 25 ! Plane X, wire 25 + 73, 1, 26 ! Plane X, wire 26 + 74, 1, 27 ! Plane X, wire 27 + 75, 1, 28 ! Plane X, wire 28 + 76, 1, 29 ! Plane X, wire 29 + 77, 1, 30 ! Plane X, wire 30 + 78, 1, 31 ! Plane X, wire 31 + 79, 1, 32 ! Plane X, wire 32 + 48, 1, 33 ! Plane X, wire 33 + 49, 1, 34 ! Plane X, wire 34 + 50, 1, 35 ! Plane X, wire 35 + 51, 1, 36 ! Plane X, wire 36 + 52, 1, 37 ! Plane X, wire 37 + 53, 1, 38 ! Plane X, wire 38 + 54, 1, 39 ! Plane X, wire 39 + 55, 1, 40 ! Plane X, wire 40 + 56, 1, 41 ! Plane X, wire 41 + 57, 1, 42 ! Plane X, wire 42 + 58, 1, 43 ! Plane X, wire 43 + 59, 1, 44 ! Plane X, wire 44 + 60, 1, 45 ! Plane X, wire 45 + 61, 1, 46 ! Plane X, wire 46 + 62, 1, 47 ! Plane X, wire 47 + 63, 1, 48 ! Plane X, wire 48 + 32, 1, 49 ! Plane X, wire 49 + 33, 1, 50 ! Plane X, wire 50 + 34, 1, 51 ! Plane X, wire 51 + 35, 1, 52 ! Plane X, wire 52 + 36, 1, 53 ! Plane X, wire 53 + 37, 1, 54 ! Plane X, wire 54 + 38, 1, 55 ! Plane X, wire 55 + 39, 1, 56 ! Plane X, wire 56 + 40, 1, 57 ! Plane X, wire 57 + 41, 1, 58 ! Plane X, wire 58 + 42, 1, 59 ! Plane X, wire 59 + 43, 1, 60 ! Plane X, wire 60 + 44, 1, 61 ! Plane X, wire 61 + 45, 1, 62 ! Plane X, wire 62 + 46, 1, 63 ! Plane X, wire 63 + 47, 1, 64 ! Plane X, wire 64 + 16, 1, 65 ! Plane X, wire 65 + 17, 1, 66 ! Plane X, wire 66 + 18, 1, 67 ! Plane X, wire 67 + 19, 1, 68 ! Plane X, wire 68 + 20, 1, 69 ! Plane X, wire 69 + 21, 1, 70 ! Plane X, wire 70 + 22, 1, 71 ! Plane X, wire 71 + 23, 1, 72 ! Plane X, wire 72 + 24, 1, 73 ! Plane X, wire 73 + 25, 1, 74 ! Plane X, wire 74 + 26, 1, 75 ! Plane X, wire 75 + 27, 1, 76 ! Plane X, wire 76 + 28, 1, 77 ! Plane X, wire 77 + 29, 1, 78 ! Plane X, wire 78 + 30, 1, 79 ! Plane X, wire 79 + 31, 1, 80 ! Plane X, wire 80 + 0, 1, 81 ! Plane X, wire 81 + 1, 1, 82 ! Plane X, wire 82 + 2, 1, 83 ! Plane X, wire 83 + 3, 1, 84 ! Plane X, wire 84 + 4, 1, 85 ! Plane X, wire 85 + 5, 1, 86 ! Plane X, wire 86 + 6, 1, 87 ! Plane X, wire 87 + 7, 1, 88 ! Plane X, wire 88 + 8, 1, 89 ! Plane X, wire 89 + 9, 1, 90 ! Plane X, wire 90 + 10, 1, 91 ! Plane X, wire 91 + 11, 1, 92 ! Plane X, wire 92 + 12, 1, 93 ! Plane X, wire 93 + 13, 1, 94 ! Plane X, wire 94 + 14, 1, 95 ! Plane X, wire 95 + 15, 1, 96 ! Plane X, wire 96 + +SLOT=7 +REFINDEX=0 + 80, 1, 97 ! Plane X, wire 97 + 81, 1, 98 ! Plane X, wire 98 + 82, 1, 99 ! Plane X, wire 99 + 83, 1, 100 ! Plane X, wire 100 + 84, 1, 101 ! Plane X, wire 101 + 85, 1, 102 ! Plane X, wire 102 + 86, 1, 103 ! Plane X, wire 103 + 87, 1, 104 ! Plane X, wire 104 + 88, 1, 105 ! Plane X, wire 105 + 89, 1, 106 ! Plane X, wire 106 + 90, 1, 107 ! Plane X, wire 107 + 91, 1, 108 ! Plane X, wire 108 + 92, 1, 109 ! Plane X, wire 109 + 93, 1, 110 ! Plane X, wire 110 + 94, 1, 111 ! Plane X, wire 111 + 95, 1, 112 ! Plane X, wire 112 + +SLOT=4 +REFINDEX=0 + 112, 6, 1 ! Plane X', wire 1 + 113, 6, 2 ! Plane X', wire 2 + 114, 6, 3 ! Plane X', wire 3 + 115, 6, 4 ! Plane X', wire 4 + 116, 6, 5 ! Plane X', wire 5 + 117, 6, 6 ! Plane X', wire 6 + 118, 6, 7 ! Plane X', wire 7 + 119, 6, 8 ! Plane X', wire 8 + 120, 6, 9 ! Plane X', wire 9 + 121, 6, 10 ! Plane X', wire 10 + 122, 6, 11 ! Plane X', wire 11 + 123, 6, 12 ! Plane X', wire 12 + 124, 6, 13 ! Plane X', wire 13 + 125, 6, 14 ! Plane X', wire 14 + 126, 6, 15 ! Plane X', wire 15 + 127, 6, 16 ! Plane X', wire 16 + +SLOT=5 +REFINDEX=0 + 112, 6, 17 ! Plane X', wire 17 + 113, 6, 18 ! Plane X', wire 18 + 114, 6, 19 ! Plane X', wire 19 + 115, 6, 20 ! Plane X', wire 20 + 116, 6, 21 ! Plane X', wire 21 + 117, 6, 22 ! Plane X', wire 22 + 118, 6, 23 ! Plane X', wire 23 + 119, 6, 24 ! Plane X', wire 24 + 120, 6, 25 ! Plane X', wire 25 + 121, 6, 26 ! Plane X', wire 26 + 122, 6, 27 ! Plane X', wire 27 + 123, 6, 28 ! Plane X', wire 28 + 124, 6, 29 ! Plane X', wire 29 + 125, 6, 30 ! Plane X', wire 30 + 126, 6, 31 ! Plane X', wire 31 + 127, 6, 32 ! Plane X', wire 32 + +SLOT=7 +REFINDEX=0 + 0, 6, 33 ! Plane X', wire 33 + 1, 6, 34 ! Plane X', wire 34 + 2, 6, 35 ! Plane X', wire 35 + 3, 6, 36 ! Plane X', wire 36 + 4, 6, 37 ! Plane X', wire 37 + 5, 6, 38 ! Plane X', wire 38 + 6, 6, 39 ! Plane X', wire 39 + 7, 6, 40 ! Plane X', wire 40 + 8, 6, 41 ! Plane X', wire 41 + 9, 6, 42 ! Plane X', wire 42 + 10, 6, 43 ! Plane X', wire 43 + 11, 6, 44 ! Plane X', wire 44 + 12, 6, 45 ! Plane X', wire 45 + 13, 6, 46 ! Plane X', wire 46 + 14, 6, 47 ! Plane X', wire 47 + 15, 6, 48 ! Plane X', wire 48 + 16, 6, 49 ! Plane X', wire 49 + 17, 6, 50 ! Plane X', wire 50 + 18, 6, 51 ! Plane X', wire 51 + 19, 6, 52 ! Plane X', wire 52 + 20, 6, 53 ! Plane X', wire 53 + 21, 6, 54 ! Plane X', wire 54 + 22, 6, 55 ! Plane X', wire 55 + 23, 6, 56 ! Plane X', wire 56 + 24, 6, 57 ! Plane X', wire 57 + 25, 6, 58 ! Plane X', wire 58 + 26, 6, 59 ! Plane X', wire 59 + 27, 6, 60 ! Plane X', wire 60 + 28, 6, 61 ! Plane X', wire 61 + 29, 6, 62 ! Plane X', wire 62 + 30, 6, 63 ! Plane X', wire 63 + 31, 6, 64 ! Plane X', wire 64 + 32, 6, 65 ! Plane X', wire 65 + 33, 6, 66 ! Plane X', wire 66 + 34, 6, 67 ! Plane X', wire 67 + 35, 6, 68 ! Plane X', wire 68 + 36, 6, 69 ! Plane X', wire 69 + 37, 6, 70 ! Plane X', wire 70 + 38, 6, 71 ! Plane X', wire 71 + 39, 6, 72 ! Plane X', wire 72 + 40, 6, 73 ! Plane X', wire 73 + 41, 6, 74 ! Plane X', wire 74 + 42, 6, 75 ! Plane X', wire 75 + 43, 6, 76 ! Plane X', wire 76 + 44, 6, 77 ! Plane X', wire 77 + 45, 6, 78 ! Plane X', wire 78 + 46, 6, 79 ! Plane X', wire 79 + 47, 6, 80 ! Plane X', wire 80 + 48, 6, 81 ! Plane X', wire 81 + 49, 6, 82 ! Plane X', wire 82 + 50, 6, 83 ! Plane X', wire 83 + 51, 6, 84 ! Plane X', wire 84 + 52, 6, 85 ! Plane X', wire 85 + 53, 6, 86 ! Plane X', wire 86 + 54, 6, 87 ! Plane X', wire 87 + 55, 6, 88 ! Plane X', wire 88 + 56, 6, 89 ! Plane X', wire 89 + 57, 6, 90 ! Plane X', wire 90 + 58, 6, 91 ! Plane X', wire 91 + 59, 6, 92 ! Plane X', wire 92 + 60, 6, 93 ! Plane X', wire 93 + 61, 6, 94 ! Plane X', wire 94 + 62, 6, 95 ! Plane X', wire 95 + 63, 6, 96 ! Plane X', wire 96 + 64, 6, 97 ! Plane X', wire 97 + 65, 6, 98 ! Plane X', wire 98 + 66, 6, 99 ! Plane X', wire 99 + 67, 6, 100 ! Plane X', wire 100 + 68, 6, 101 ! Plane X', wire 101 + 69, 6, 102 ! Plane X', wire 102 + 70, 6, 103 ! Plane X', wire 103 + 71, 6, 104 ! Plane X', wire 104 + 72, 6, 105 ! Plane X', wire 105 + 73, 6, 106 ! Plane X', wire 106 + 74, 6, 107 ! Plane X', wire 107 + 75, 6, 108 ! Plane X', wire 108 + 76, 6, 109 ! Plane X', wire 109 + 77, 6, 110 ! Plane X', wire 110 + 78, 6, 111 ! Plane X', wire 111 + 79, 6, 112 ! Plane X', wire 112 + +SLOT=8 +REFINDEX=0 + 64, 2, 1 ! Plane Y, wire 1 + 65, 2, 2 ! Plane Y, wire 2 + 66, 2, 3 ! Plane Y, wire 3 + 67, 2, 4 ! Plane Y, wire 4 + 68, 2, 5 ! Plane Y, wire 5 + 69, 2, 6 ! Plane Y, wire 6 + 70, 2, 7 ! Plane Y, wire 7 + 71, 2, 8 ! Plane Y, wire 8 + 72, 2, 9 ! Plane Y, wire 9 + 73, 2, 10 ! Plane Y, wire 10 + 74, 2, 11 ! Plane Y, wire 11 + 75, 2, 12 ! Plane Y, wire 12 + 76, 2, 13 ! Plane Y, wire 13 + 80, 2, 14 ! Plane Y, wire 14 + 81, 2, 15 ! Plane Y, wire 15 + 82, 2, 16 ! Plane Y, wire 16 + 83, 2, 17 ! Plane Y, wire 17 + 84, 2, 18 ! Plane Y, wire 18 + 85, 2, 19 ! Plane Y, wire 19 + 86, 2, 20 ! Plane Y, wire 20 + 87, 2, 21 ! Plane Y, wire 21 + 88, 2, 22 ! Plane Y, wire 22 + 89, 2, 23 ! Plane Y, wire 23 + 90, 2, 24 ! Plane Y, wire 24 + 91, 2, 25 ! Plane Y, wire 25 + 92, 2, 26 ! Plane Y, wire 26 + 96, 2, 27 ! Plane Y, wire 27 + 97, 2, 28 ! Plane Y, wire 28 + 98, 2, 29 ! Plane Y, wire 29 + 99, 2, 30 ! Plane Y, wire 30 + 100, 2, 31 ! Plane Y, wire 31 + 101, 2, 32 ! Plane Y, wire 32 + 102, 2, 33 ! Plane Y, wire 33 + 103, 2, 34 ! Plane Y, wire 34 + 104, 2, 35 ! Plane Y, wire 35 + 105, 2, 36 ! Plane Y, wire 36 + 106, 2, 37 ! Plane Y, wire 37 + 107, 2, 38 ! Plane Y, wire 38 + 108, 2, 39 ! Plane Y, wire 39 + 112, 2, 40 ! Plane Y, wire 40 + 113, 2, 41 ! Plane Y, wire 41 + 114, 2, 42 ! Plane Y, wire 42 + 115, 2, 43 ! Plane Y, wire 43 + 116, 2, 44 ! Plane Y, wire 44 + 117, 2, 45 ! Plane Y, wire 45 + 118, 2, 46 ! Plane Y, wire 46 + 119, 2, 47 ! Plane Y, wire 47 + 120, 2, 48 ! Plane Y, wire 48 + 121, 2, 49 ! Plane Y, wire 49 + 122, 2, 50 ! Plane Y, wire 50 + 123, 2, 51 ! Plane Y, wire 51 + 124, 2, 52 ! Plane Y, wire 52 + +SLOT=10 +REFINDEX=0 + 127,1000, 0, 2 + 0, 5, 1 ! Plane Y', wire 1 + 1, 5, 2 ! Plane Y', wire 2 + 2, 5, 3 ! Plane Y', wire 3 + 3, 5, 4 ! Plane Y', wire 4 + 4, 5, 5 ! Plane Y', wire 5 + 5, 5, 6 ! Plane Y', wire 6 + 6, 5, 7 ! Plane Y', wire 7 + 7, 5, 8 ! Plane Y', wire 8 + 8, 5, 9 ! Plane Y', wire 9 + 9, 5, 10 ! Plane Y', wire 10 + 10, 5, 11 ! Plane Y', wire 11 + 11, 5, 12 ! Plane Y', wire 12 + 12, 5, 13 ! Plane Y', wire 13 + 16, 5, 14 ! Plane Y', wire 14 + 17, 5, 15 ! Plane Y', wire 15 + 18, 5, 16 ! Plane Y', wire 16 + 19, 5, 17 ! Plane Y', wire 17 + 20, 5, 18 ! Plane Y', wire 18 + 21, 5, 19 ! Plane Y', wire 19 + 22, 5, 20 ! Plane Y', wire 20 + 23, 5, 21 ! Plane Y', wire 21 + 24, 5, 22 ! Plane Y', wire 22 + 25, 5, 23 ! Plane Y', wire 23 + 26, 5, 24 ! Plane Y', wire 24 + 27, 5, 25 ! Plane Y', wire 25 + 28, 5, 26 ! Plane Y', wire 26 + 32, 5, 27 ! Plane Y', wire 27 + 33, 5, 28 ! Plane Y', wire 28 + 34, 5, 29 ! Plane Y', wire 29 + 35, 5, 30 ! Plane Y', wire 30 + 36, 5, 31 ! Plane Y', wire 31 + 37, 5, 32 ! Plane Y', wire 32 + 38, 5, 33 ! Plane Y', wire 33 + 39, 5, 34 ! Plane Y', wire 34 + 40, 5, 35 ! Plane Y', wire 35 + 41, 5, 36 ! Plane Y', wire 36 + 42, 5, 37 ! Plane Y', wire 37 + 43, 5, 38 ! Plane Y', wire 38 + 44, 5, 39 ! Plane Y', wire 39 + 48, 5, 40 ! Plane Y', wire 40 + 49, 5, 41 ! Plane Y', wire 41 + 50, 5, 42 ! Plane Y', wire 42 + 51, 5, 43 ! Plane Y', wire 43 + 52, 5, 44 ! Plane Y', wire 44 + 53, 5, 45 ! Plane Y', wire 45 + 54, 5, 46 ! Plane Y', wire 46 + 55, 5, 47 ! Plane Y', wire 47 + 56, 5, 48 ! Plane Y', wire 48 + 57, 5, 49 ! Plane Y', wire 49 + 58, 5, 50 ! Plane Y', wire 50 + 59, 5, 51 ! Plane Y', wire 51 + 60, 5, 52 ! Plane Y', wire 52 + +SLOT=16 +REFINDEX=0 + 96, 9, 1 ! Plane U, wire 1 + 97, 9, 2 ! Plane U, wire 2 + 98, 9, 3 ! Plane U, wire 3 + 99, 9, 4 ! Plane U, wire 4 + 100, 9, 5 ! Plane U, wire 5 + 101, 9, 6 ! Plane U, wire 6 + 102, 9, 7 ! Plane U, wire 7 + 103, 9, 8 ! Plane U, wire 8 + 104, 9, 9 ! Plane U, wire 9 + 105, 9, 10 ! Plane U, wire 10 + 106, 9, 11 ! Plane U, wire 11 + 107, 9, 12 ! Plane U, wire 12 + 108, 9, 13 ! Plane U, wire 13 + 109, 9, 14 ! Plane U, wire 14 + 110, 7, 113 ! Plane X, wire 113 + 112, 9, 15 ! Plane U, wire 15 + 113, 9, 16 ! Plane U, wire 16 + 114, 9, 17 ! Plane U, wire 17 + 115, 9, 18 ! Plane U, wire 18 + 116, 9, 19 ! Plane U, wire 19 + 117, 9, 20 ! Plane U, wire 20 + 118, 9, 21 ! Plane U, wire 21 + 119, 9, 22 ! Plane U, wire 22 + 120, 9, 23 ! Plane U, wire 23 + 121, 9, 24 ! Plane U, wire 24 + 122, 9, 25 ! Plane U, wire 25 + 123, 9, 26 ! Plane U, wire 26 + 124, 9, 27 ! Plane U, wire 27 + 125, 9, 28 ! Plane U, wire 28 + 126, 9, 29 ! Plane U, wire 29 + +SLOT=14 +REFINDEX=0 + 0, 9, 30 ! Plane U, wire 30 + 1, 9, 31 ! Plane U, wire 31 + 2, 9, 32 ! Plane U, wire 32 + 3, 9, 33 ! Plane U, wire 33 + 4, 9, 34 ! Plane U, wire 34 + 5, 9, 35 ! Plane U, wire 35 + 6, 9, 36 ! Plane U, wire 36 + 7, 9, 37 ! Plane U, wire 37 + 8, 9, 38 ! Plane U, wire 38 + 9, 9, 39 ! Plane U, wire 39 + 10, 9, 40 ! Plane U, wire 40 + 11, 9, 41 ! Plane U, wire 41 + 12, 9, 42 ! Plane U, wire 42 + 13, 9, 43 ! Plane U, wire 43 + 14, 9, 44 ! Plane U, wire 44 + 15, 9, 45 ! Plane U, wire 45 + 32, 9, 46 ! Plane U, wire 46 + 33, 9, 47 ! Plane U, wire 47 + 34, 9, 48 ! Plane U, wire 48 + 35, 9, 49 ! Plane U, wire 49 + 36, 9, 50 ! Plane U, wire 50 + 37, 9, 51 ! Plane U, wire 51 + 38, 9, 52 ! Plane U, wire 52 + 39, 9, 53 ! Plane U, wire 53 + 40, 9, 54 ! Plane U, wire 54 + 41, 9, 55 ! Plane U, wire 55 + 42, 9, 56 ! Plane U, wire 56 + 43, 9, 57 ! Plane U, wire 57 + 44, 9, 58 ! Plane U, wire 58 + 45, 9, 59 ! Plane U, wire 59 + 46, 9, 60 ! Plane U, wire 60 + 48, 9, 61 ! Plane U, wire 61 + 49, 9, 62 ! Plane U, wire 62 + 50, 9, 63 ! Plane U, wire 63 + 51, 9, 64 ! Plane U, wire 64 + 52, 9, 65 ! Plane U, wire 65 + 53, 9, 66 ! Plane U, wire 66 + 54, 9, 67 ! Plane U, wire 67 + 55, 9, 68 ! Plane U, wire 68 + 56, 9, 69 ! Plane U, wire 69 + 57, 9, 70 ! Plane U, wire 70 + 58, 9, 71 ! Plane U, wire 71 + 59, 9, 72 ! Plane U, wire 72 + 60, 9, 73 ! Plane U, wire 73 + 61, 9, 74 ! Plane U, wire 74 + 62, 9, 75 ! Plane U, wire 75 + 63, 9, 76 ! Plane U, wire 76 + 64, 9, 77 ! Plane U, wire 77 + 65, 9, 78 ! Plane U, wire 78 + 66, 9, 79 ! Plane U, wire 79 + 67, 9, 80 ! Plane U, wire 80 + 68, 9, 81 ! Plane U, wire 81 + 69, 9, 82 ! Plane U, wire 82 + 70, 9, 83 ! Plane U, wire 83 + 71, 9, 84 ! Plane U, wire 84 + 72, 9, 85 ! Plane U, wire 85 + 73, 9, 86 ! Plane U, wire 86 + 74, 9, 87 ! Plane U, wire 87 + 75, 9, 88 ! Plane U, wire 88 + 76, 9, 89 ! Plane U, wire 89 + 77, 9, 90 ! Plane U, wire 90 + 78, 9, 91 ! Plane U, wire 91 + 80, 9, 92 ! Plane U, wire 92 + 81, 9, 93 ! Plane U, wire 93 + 82, 9, 94 ! Plane U, wire 94 + 83, 9, 95 ! Plane U, wire 95 + 84, 9, 96 ! Plane U, wire 96 + 85, 9, 97 ! Plane U, wire 97 + 86, 9, 98 ! Plane U, wire 98 + 87, 9, 99 ! Plane U, wire 99 + 88, 9, 100 ! Plane U, wire 100 + 89, 9, 101 ! Plane U, wire 101 + 90, 9, 102 ! Plane U, wire 102 + 91, 9, 103 ! Plane U, wire 103 + 92, 9, 104 ! Plane U, wire 104 + 93, 9, 105 ! Plane U, wire 105 + 94, 9, 106 ! Plane U, wire 106 + 95, 9, 107 ! Plane U, wire 107 + +SLOT=16 +REFINDEX=0 + 80, 10, 1 ! Plane V, wire 1 + 81, 10, 2 ! Plane V, wire 2 + 82, 10, 3 ! Plane V, wire 3 + 83, 10, 4 ! Plane V, wire 4 + 84, 10, 5 ! Plane V, wire 5 + 85, 10, 6 ! Plane V, wire 6 + 86, 10, 7 ! Plane V, wire 7 + 87, 10, 8 ! Plane V, wire 8 + 88, 10, 9 ! Plane V, wire 9 + 89, 10, 10 ! Plane V, wire 10 + 90, 10, 11 ! Plane V, wire 11 + 91, 10, 12 ! Plane V, wire 12 + 92, 10, 13 ! Plane V, wire 13 + 93, 10, 14 ! Plane V, wire 14 + 94, 12, 113 ! Plane X', wire 113 + +SLOT=14 +REFINDEX=0 + 96, 10, 15 ! Plane V, wire 15 + 97, 10, 16 ! Plane V, wire 16 + 98, 10, 17 ! Plane V, wire 17 + 99, 10, 18 ! Plane V, wire 18 + 100, 10, 19 ! Plane V, wire 19 + 101, 10, 20 ! Plane V, wire 20 + 102, 10, 21 ! Plane V, wire 21 + 103, 10, 22 ! Plane V, wire 22 + 104, 10, 23 ! Plane V, wire 23 + 105, 10, 24 ! Plane V, wire 24 + 106, 10, 25 ! Plane V, wire 25 + 107, 10, 26 ! Plane V, wire 26 + 108, 10, 27 ! Plane V, wire 27 + 109, 10, 28 ! Plane V, wire 28 + 110, 10, 29 ! Plane V, wire 29 + 112, 10, 30 ! Plane V, wire 30 + 113, 10, 31 ! Plane V, wire 31 + 114, 10, 32 ! Plane V, wire 32 + 115, 10, 33 ! Plane V, wire 33 + 116, 10, 34 ! Plane V, wire 34 + 117, 10, 35 ! Plane V, wire 35 + 118, 10, 36 ! Plane V, wire 36 + 119, 10, 37 ! Plane V, wire 37 + 120, 10, 38 ! Plane V, wire 38 + 121, 10, 39 ! Plane V, wire 39 + 122, 10, 40 ! Plane V, wire 40 + 123, 10, 41 ! Plane V, wire 41 + 124, 10, 42 ! Plane V, wire 42 + 125, 10, 43 ! Plane V, wire 43 + 126, 10, 44 ! Plane V, wire 44 + 127, 10, 45 ! Plane V, wire 45 + +SLOT=17 +REFINDEX=0 + 127,1000, 0, 3 + 0, 10, 46 ! Plane V, wire 46 + 1, 10, 47 ! Plane V, wire 47 + 2, 10, 48 ! Plane V, wire 48 + 3, 10, 49 ! Plane V, wire 49 + 4, 10, 50 ! Plane V, wire 50 + 5, 10, 51 ! Plane V, wire 51 + 6, 10, 52 ! Plane V, wire 52 + 7, 10, 53 ! Plane V, wire 53 + 8, 10, 54 ! Plane V, wire 54 + 9, 10, 55 ! Plane V, wire 55 + 10, 10, 56 ! Plane V, wire 56 + 11, 10, 57 ! Plane V, wire 57 + 12, 10, 58 ! Plane V, wire 58 + 13, 10, 59 ! Plane V, wire 59 + 14, 10, 60 ! Plane V, wire 60 + 16, 10, 61 ! Plane V, wire 61 + 17, 10, 62 ! Plane V, wire 62 + 18, 10, 63 ! Plane V, wire 63 + 19, 10, 64 ! Plane V, wire 64 + 20, 10, 65 ! Plane V, wire 65 + 21, 10, 66 ! Plane V, wire 66 + 22, 10, 67 ! Plane V, wire 67 + 23, 10, 68 ! Plane V, wire 68 + 24, 10, 69 ! Plane V, wire 69 + 25, 10, 70 ! Plane V, wire 70 + 26, 10, 71 ! Plane V, wire 71 + 27, 10, 72 ! Plane V, wire 72 + 28, 10, 73 ! Plane V, wire 73 + 29, 10, 74 ! Plane V, wire 74 + 30, 10, 75 ! Plane V, wire 75 + 31, 10, 76 ! Plane V, wire 76 + 32, 10, 77 ! Plane V, wire 77 + 33, 10, 78 ! Plane V, wire 78 + 34, 10, 79 ! Plane V, wire 79 + 35, 10, 80 ! Plane V, wire 80 + 36, 10, 81 ! Plane V, wire 81 + 37, 10, 82 ! Plane V, wire 82 + 38, 10, 83 ! Plane V, wire 83 + 39, 10, 84 ! Plane V, wire 84 + 40, 10, 85 ! Plane V, wire 85 + 41, 10, 86 ! Plane V, wire 86 + 42, 10, 87 ! Plane V, wire 87 + 43, 10, 88 ! Plane V, wire 88 + 44, 10, 89 ! Plane V, wire 89 + 45, 10, 90 ! Plane V, wire 90 + 46, 10, 91 ! Plane V, wire 91 + 48, 10, 92 ! Plane V, wire 92 + 49, 10, 93 ! Plane V, wire 93 + 50, 10, 94 ! Plane V, wire 94 + 51, 10, 95 ! Plane V, wire 95 + 52, 10, 96 ! Plane V, wire 96 + 53, 10, 97 ! Plane V, wire 97 + 54, 10, 98 ! Plane V, wire 98 + 55, 10, 99 ! Plane V, wire 99 + 56, 10, 100 ! Plane V, wire 100 + 57, 10, 101 ! Plane V, wire 101 + 58, 10, 102 ! Plane V, wire 102 + 59, 10, 103 ! Plane V, wire 103 + 60, 10, 104 ! Plane V, wire 104 + 61, 10, 105 ! Plane V, wire 105 + 62, 10, 106 ! Plane V, wire 106 + 63, 10, 107 ! Plane V, wire 107 + +SLOT=13 +REFINDEX=0 + 0, 7, 1 ! Plane X, wire 1 + 1, 7, 2 ! Plane X, wire 2 + 2, 7, 3 ! Plane X, wire 3 + 3, 7, 4 ! Plane X, wire 4 + 4, 7, 5 ! Plane X, wire 5 + 5, 7, 6 ! Plane X, wire 6 + 6, 7, 7 ! Plane X, wire 7 + 7, 7, 8 ! Plane X, wire 8 + 8, 7, 9 ! Plane X, wire 9 + 9, 7, 10 ! Plane X, wire 10 + 10, 7, 11 ! Plane X, wire 11 + 11, 7, 12 ! Plane X, wire 12 + 12, 7, 13 ! Plane X, wire 13 + 13, 7, 14 ! Plane X, wire 14 + 14, 7, 15 ! Plane X, wire 15 + 15, 7, 16 ! Plane X, wire 16 + 16, 7, 17 ! Plane X, wire 17 + 17, 7, 18 ! Plane X, wire 18 + 18, 7, 19 ! Plane X, wire 19 + 19, 7, 20 ! Plane X, wire 20 + 20, 7, 21 ! Plane X, wire 21 + 21, 7, 22 ! Plane X, wire 22 + 22, 7, 23 ! Plane X, wire 23 + 23, 7, 24 ! Plane X, wire 24 + 24, 7, 25 ! Plane X, wire 25 + 25, 7, 26 ! Plane X, wire 26 + 26, 7, 27 ! Plane X, wire 27 + 27, 7, 28 ! Plane X, wire 28 + 28, 7, 29 ! Plane X, wire 29 + 29, 7, 30 ! Plane X, wire 30 + 30, 7, 31 ! Plane X, wire 31 + 31, 7, 32 ! Plane X, wire 32 + 32, 7, 33 ! Plane X, wire 33 + 33, 7, 34 ! Plane X, wire 34 + 34, 7, 35 ! Plane X, wire 35 + 35, 7, 36 ! Plane X, wire 36 + 36, 7, 37 ! Plane X, wire 37 + 37, 7, 38 ! Plane X, wire 38 + 38, 7, 39 ! Plane X, wire 39 + 39, 7, 40 ! Plane X, wire 40 + 40, 7, 41 ! Plane X, wire 41 + 41, 7, 42 ! Plane X, wire 42 + 42, 7, 43 ! Plane X, wire 43 + 43, 7, 44 ! Plane X, wire 44 + 44, 7, 45 ! Plane X, wire 45 + 45, 7, 46 ! Plane X, wire 46 + 46, 7, 47 ! Plane X, wire 47 + 47, 7, 48 ! Plane X, wire 48 + 48, 7, 49 ! Plane X, wire 49 + 49, 7, 50 ! Plane X, wire 50 + 50, 7, 51 ! Plane X, wire 51 + 51, 7, 52 ! Plane X, wire 52 + 52, 7, 53 ! Plane X, wire 53 + 53, 7, 54 ! Plane X, wire 54 + 54, 7, 55 ! Plane X, wire 55 + 55, 7, 56 ! Plane X, wire 56 + 56, 7, 57 ! Plane X, wire 57 + 57, 7, 58 ! Plane X, wire 58 + 58, 7, 59 ! Plane X, wire 59 + 59, 7, 60 ! Plane X, wire 60 + 60, 7, 61 ! Plane X, wire 61 + 61, 7, 62 ! Plane X, wire 62 + 62, 7, 63 ! Plane X, wire 63 + 63, 7, 64 ! Plane X, wire 64 + 64, 7, 65 ! Plane X, wire 65 + 65, 7, 66 ! Plane X, wire 66 + 66, 7, 67 ! Plane X, wire 67 + 67, 7, 68 ! Plane X, wire 68 + 68, 7, 69 ! Plane X, wire 69 + 69, 7, 70 ! Plane X, wire 70 + 70, 7, 71 ! Plane X, wire 71 + 71, 7, 72 ! Plane X, wire 72 + 72, 7, 73 ! Plane X, wire 73 + 73, 7, 74 ! Plane X, wire 74 + 74, 7, 75 ! Plane X, wire 75 + 75, 7, 76 ! Plane X, wire 76 + 76, 7, 77 ! Plane X, wire 77 + 77, 7, 78 ! Plane X, wire 78 + 78, 7, 79 ! Plane X, wire 79 + 79, 7, 80 ! Plane X, wire 80 + 80, 7, 81 ! Plane X, wire 81 + 81, 7, 82 ! Plane X, wire 82 + 82, 7, 83 ! Plane X, wire 83 + 83, 7, 84 ! Plane X, wire 84 + 84, 7, 85 ! Plane X, wire 85 + 85, 7, 86 ! Plane X, wire 86 + 86, 7, 87 ! Plane X, wire 87 + 87, 7, 88 ! Plane X, wire 88 + 88, 7, 89 ! Plane X, wire 89 + 89, 7, 90 ! Plane X, wire 90 + 90, 7, 91 ! Plane X, wire 91 + 91, 7, 92 ! Plane X, wire 92 + 92, 7, 93 ! Plane X, wire 93 + 93, 7, 94 ! Plane X, wire 94 + 94, 7, 95 ! Plane X, wire 95 + 95, 7, 96 ! Plane X, wire 96 + 96, 7, 97 ! Plane X, wire 97 + 97, 7, 98 ! Plane X, wire 98 + 98, 7, 99 ! Plane X, wire 99 + 99, 7, 100 ! Plane X, wire 100 + 100, 7, 101 ! Plane X, wire 101 + 101, 7, 102 ! Plane X, wire 102 + 102, 7, 103 ! Plane X, wire 103 + 103, 7, 104 ! Plane X, wire 104 + 104, 7, 105 ! Plane X, wire 105 + 105, 7, 106 ! Plane X, wire 106 + 106, 7, 107 ! Plane X, wire 107 + 107, 7, 108 ! Plane X, wire 108 + 108, 7, 109 ! Plane X, wire 109 + 109, 7, 110 ! Plane X, wire 110 + 110, 7, 111 ! Plane X, wire 111 + 111, 7, 112 ! Plane X, wire 112 + 112, 12, 1 ! Plane X', wire 1 + 113, 12, 2 ! Plane X', wire 2 + 114, 12, 3 ! Plane X', wire 3 + 115, 12, 4 ! Plane X', wire 4 + 116, 12, 5 ! Plane X', wire 5 + 117, 12, 6 ! Plane X', wire 6 + 118, 12, 7 ! Plane X', wire 7 + 119, 12, 8 ! Plane X', wire 8 + 120, 12, 9 ! Plane X', wire 9 + 121, 12, 10 ! Plane X', wire 10 + 122, 12, 11 ! Plane X', wire 11 + 123, 12, 12 ! Plane X', wire 12 + 124, 12, 13 ! Plane X', wire 13 + 125, 12, 14 ! Plane X', wire 14 + 126, 12, 15 ! Plane X', wire 15 + 127, 12, 16 ! Plane X', wire 16 + +SLOT=14 +REFINDEX=0 + 16, 12, 17 ! Plane X', wire 17 + 17, 12, 18 ! Plane X', wire 18 + 18, 12, 19 ! Plane X', wire 19 + 19, 12, 20 ! Plane X', wire 20 + 20, 12, 21 ! Plane X', wire 21 + 21, 12, 22 ! Plane X', wire 22 + 22, 12, 23 ! Plane X', wire 23 + 23, 12, 24 ! Plane X', wire 24 + 24, 12, 25 ! Plane X', wire 25 + 25, 12, 26 ! Plane X', wire 26 + 26, 12, 27 ! Plane X', wire 27 + 27, 12, 28 ! Plane X', wire 28 + 28, 12, 29 ! Plane X', wire 29 + 29, 12, 30 ! Plane X', wire 30 + 30, 12, 31 ! Plane X', wire 31 + 31, 12, 32 ! Plane X', wire 32 + +SLOT=16 +REFINDEX=0 + 0, 12, 33 ! Plane X', wire 33 + 1, 12, 34 ! Plane X', wire 34 + 2, 12, 35 ! Plane X', wire 35 + 3, 12, 36 ! Plane X', wire 36 + 4, 12, 37 ! Plane X', wire 37 + 5, 12, 38 ! Plane X', wire 38 + 6, 12, 39 ! Plane X', wire 39 + 7, 12, 40 ! Plane X', wire 40 + 8, 12, 41 ! Plane X', wire 41 + 9, 12, 42 ! Plane X', wire 42 + 10, 12, 43 ! Plane X', wire 43 + 11, 12, 44 ! Plane X', wire 44 + 12, 12, 45 ! Plane X', wire 45 + 13, 12, 46 ! Plane X', wire 46 + 14, 12, 47 ! Plane X', wire 47 + 15, 12, 48 ! Plane X', wire 48 + 16, 12, 49 ! Plane X', wire 49 + 17, 12, 50 ! Plane X', wire 50 + 18, 12, 51 ! Plane X', wire 51 + 19, 12, 52 ! Plane X', wire 52 + 20, 12, 53 ! Plane X', wire 53 + 21, 12, 54 ! Plane X', wire 54 + 22, 12, 55 ! Plane X', wire 55 + 23, 12, 56 ! Plane X', wire 56 + 24, 12, 57 ! Plane X', wire 57 + 25, 12, 58 ! Plane X', wire 58 + 26, 12, 59 ! Plane X', wire 59 + 27, 12, 60 ! Plane X', wire 60 + 28, 12, 61 ! Plane X', wire 61 + 29, 12, 62 ! Plane X', wire 62 + 30, 12, 63 ! Plane X', wire 63 + 31, 12, 64 ! Plane X', wire 64 + 32, 12, 65 ! Plane X', wire 65 + 33, 12, 66 ! Plane X', wire 66 + 34, 12, 67 ! Plane X', wire 67 + 35, 12, 68 ! Plane X', wire 68 + 36, 12, 69 ! Plane X', wire 69 + 37, 12, 70 ! Plane X', wire 70 + 38, 12, 71 ! Plane X', wire 71 + 39, 12, 72 ! Plane X', wire 72 + 40, 12, 73 ! Plane X', wire 73 + 41, 12, 74 ! Plane X', wire 74 + 42, 12, 75 ! Plane X', wire 75 + 43, 12, 76 ! Plane X', wire 76 + 44, 12, 77 ! Plane X', wire 77 + 45, 12, 78 ! Plane X', wire 78 + 46, 12, 79 ! Plane X', wire 79 + 47, 12, 80 ! Plane X', wire 80 + 48, 12, 81 ! Plane X', wire 81 + 49, 12, 82 ! Plane X', wire 82 + 50, 12, 83 ! Plane X', wire 83 + 51, 12, 84 ! Plane X', wire 84 + 52, 12, 85 ! Plane X', wire 85 + 53, 12, 86 ! Plane X', wire 86 + 54, 12, 87 ! Plane X', wire 87 + 55, 12, 88 ! Plane X', wire 88 + 56, 12, 89 ! Plane X', wire 89 + 57, 12, 90 ! Plane X', wire 90 + 58, 12, 91 ! Plane X', wire 91 + 59, 12, 92 ! Plane X', wire 92 + 60, 12, 93 ! Plane X', wire 93 + 61, 12, 94 ! Plane X', wire 94 + 62, 12, 95 ! Plane X', wire 95 + 63, 12, 96 ! Plane X', wire 96 + 64, 12, 97 ! Plane X', wire 97 + 65, 12, 98 ! Plane X', wire 98 + 66, 12, 99 ! Plane X', wire 99 + 67, 12, 100 ! Plane X', wire 100 + 68, 12, 101 ! Plane X', wire 101 + 69, 12, 102 ! Plane X', wire 102 + 70, 12, 103 ! Plane X', wire 103 + 71, 12, 104 ! Plane X', wire 104 + 72, 12, 105 ! Plane X', wire 105 + 73, 12, 106 ! Plane X', wire 106 + 74, 12, 107 ! Plane X', wire 107 + 75, 12, 108 ! Plane X', wire 108 + 76, 12, 109 ! Plane X', wire 109 + 77, 12, 110 ! Plane X', wire 110 + 78, 12, 111 ! Plane X', wire 111 + 79, 12, 112 ! Plane X', wire 112 + +SLOT=17 +REFINDEX=0 + 64, 8, 1 ! Plane Y, wire 1 + 65, 8, 2 ! Plane Y, wire 2 + 66, 8, 3 ! Plane Y, wire 3 + 67, 8, 4 ! Plane Y, wire 4 + 68, 8, 5 ! Plane Y, wire 5 + 69, 8, 6 ! Plane Y, wire 6 + 70, 8, 7 ! Plane Y, wire 7 + 71, 8, 8 ! Plane Y, wire 8 + 72, 8, 9 ! Plane Y, wire 9 + 73, 8, 10 ! Plane Y, wire 10 + 74, 8, 11 ! Plane Y, wire 11 + 75, 8, 12 ! Plane Y, wire 12 + 76, 8, 13 ! Plane Y, wire 13 + 80, 8, 14 ! Plane Y, wire 14 + 81, 8, 15 ! Plane Y, wire 15 + 82, 8, 16 ! Plane Y, wire 16 + 83, 8, 17 ! Plane Y, wire 17 + 84, 8, 18 ! Plane Y, wire 18 + 85, 8, 19 ! Plane Y, wire 19 + 86, 8, 20 ! Plane Y, wire 20 + 87, 8, 21 ! Plane Y, wire 21 + 88, 8, 22 ! Plane Y, wire 22 + 89, 8, 23 ! Plane Y, wire 23 + 90, 8, 24 ! Plane Y, wire 24 + 91, 8, 25 ! Plane Y, wire 25 + 92, 8, 26 ! Plane Y, wire 26 + 96, 8, 27 ! Plane Y, wire 27 + 97, 8, 28 ! Plane Y, wire 28 + 98, 8, 29 ! Plane Y, wire 29 + 99, 8, 30 ! Plane Y, wire 30 + 100, 8, 31 ! Plane Y, wire 31 + 101, 8, 32 ! Plane Y, wire 32 + 102, 8, 33 ! Plane Y, wire 33 + 103, 8, 34 ! Plane Y, wire 34 + 104, 8, 35 ! Plane Y, wire 35 + 105, 8, 36 ! Plane Y, wire 36 + 106, 8, 37 ! Plane Y, wire 37 + 107, 8, 38 ! Plane Y, wire 38 + 108, 8, 39 ! Plane Y, wire 39 + 112, 8, 40 ! Plane Y, wire 40 + 113, 8, 41 ! Plane Y, wire 41 + 114, 8, 42 ! Plane Y, wire 42 + 115, 8, 43 ! Plane Y, wire 43 + 116, 8, 44 ! Plane Y, wire 44 + 117, 8, 45 ! Plane Y, wire 45 + 118, 8, 46 ! Plane Y, wire 46 + 119, 8, 47 ! Plane Y, wire 47 + 120, 8, 48 ! Plane Y, wire 48 + 121, 8, 49 ! Plane Y, wire 49 + 122, 8, 50 ! Plane Y, wire 50 + 123, 8, 51 ! Plane Y, wire 51 + 124, 8, 52 ! Plane Y, wire 52 + +SLOT=10 +REFINDEX=0 + 127,1000, 0, 1 + 64, 11, 1 ! Plane Y', wire 1 + 65, 11, 2 ! Plane Y', wire 2 + 66, 11, 3 ! Plane Y', wire 3 + 67, 11, 4 ! Plane Y', wire 4 + 68, 11, 5 ! Plane Y', wire 5 + 69, 11, 6 ! Plane Y', wire 6 + 70, 11, 7 ! Plane Y', wire 7 + 71, 11, 8 ! Plane Y', wire 8 + 72, 11, 9 ! Plane Y', wire 9 + 73, 11, 10 ! Plane Y', wire 10 + 74, 11, 11 ! Plane Y', wire 11 + 75, 11, 12 ! Plane Y', wire 12 + 76, 11, 13 ! Plane Y', wire 13 + 80, 11, 14 ! Plane Y', wire 14 + 81, 11, 15 ! Plane Y', wire 15 + 82, 11, 16 ! Plane Y', wire 16 + 83, 11, 17 ! Plane Y', wire 17 + 84, 11, 18 ! Plane Y', wire 18 + 85, 11, 19 ! Plane Y', wire 19 + 86, 11, 20 ! Plane Y', wire 20 + 87, 11, 21 ! Plane Y', wire 21 + 88, 11, 22 ! Plane Y', wire 22 + 89, 11, 23 ! Plane Y', wire 23 + 90, 11, 24 ! Plane Y', wire 24 + 91, 11, 25 ! Plane Y', wire 25 + 92, 11, 26 ! Plane Y', wire 26 + 96, 11, 27 ! Plane Y', wire 27 + 97, 11, 28 ! Plane Y', wire 28 + 98, 11, 29 ! Plane Y', wire 29 + 99, 11, 30 ! Plane Y', wire 30 + 100, 11, 31 ! Plane Y', wire 31 + 101, 11, 32 ! Plane Y', wire 32 + 102, 11, 33 ! Plane Y', wire 33 + 103, 11, 34 ! Plane Y', wire 34 + 104, 11, 35 ! Plane Y', wire 35 + 105, 11, 36 ! Plane Y', wire 36 + 106, 11, 37 ! Plane Y', wire 37 + 107, 11, 38 ! Plane Y', wire 38 + 108, 11, 39 ! Plane Y', wire 39 + 112, 11, 40 ! Plane Y', wire 40 + 113, 11, 41 ! Plane Y', wire 41 + 114, 11, 42 ! Plane Y', wire 42 + 115, 11, 43 ! Plane Y', wire 43 + 116, 11, 44 ! Plane Y', wire 44 + 117, 11, 45 ! Plane Y', wire 45 + 118, 11, 46 ! Plane Y', wire 46 + 119, 11, 47 ! Plane Y', wire 47 + 120, 11, 48 ! Plane Y', wire 48 + 121, 11, 49 ! Plane Y', wire 49 + 122, 11, 50 ! Plane Y', wire 50 + 123, 11, 51 ! Plane Y', wire 51 + 124, 11, 52 ! Plane Y', wire 52 + + +DETECTOR=13 + +ROC=1 + +SLOT=8 + 0, 1, 1, 0 ! h1x01A+ + 1, 1, 2, 0 ! h1x02A+ + 2, 1, 3, 0 ! h1x03A+ + 3, 1, 4, 0 ! h1x04A+ + 4, 1, 5, 0 ! h1x05A+ + 5, 1, 6, 0 ! h1x06A+ + 6, 1, 7, 0 ! h1x07A+ + 7, 1, 8, 0 ! h1x08A+ + 8, 1, 9, 0 ! h1x09A+ + 9, 1, 10, 0 ! h1x10A+ + 10, 1, 11, 0 ! h1x11A+ + 11, 1, 12, 0 ! h1x12A+ + 12, 1, 13, 0 ! h1x13A+ + 13, 1, 14, 0 ! h1x14A+ + 14, 1, 15, 0 ! h1x15A+ + 15, 1, 16, 0 ! h1x16A+ + +SLOT=9 + 0, 1, 1, 1 ! h1x01A- + 1, 1, 2, 1 ! h1x02A- + 2, 1, 3, 1 ! h1x03A- + 3, 1, 4, 1 ! h1x04A- + 4, 1, 5, 1 ! h1x05A- + 5, 1, 6, 1 ! h1x06A- + 6, 1, 7, 1 ! h1x07A- + 7, 1, 8, 1 ! h1x08A- + 8, 1, 9, 1 ! h1x09A- + 9, 1, 10, 1 ! h1x10A- + 10, 1, 11, 1 ! h1x11A- + 11, 1, 12, 1 ! h1x12A- + 12, 1, 13, 1 ! h1x13A- + 13, 1, 14, 1 ! h1x14A- + 14, 1, 15, 1 ! h1x15A- + 15, 1, 16, 1 ! h1x16A- + +SLOT=10 + 0, 2, 1, 0 ! h1y01A+ + 1, 2, 2, 0 ! h1y02A+ + 2, 2, 3, 0 ! h1y03A+ + 3, 2, 4, 0 ! h1y04A+ + 4, 2, 5, 0 ! h1y05A+ + 5, 2, 6, 0 ! h1y06A+ + 6, 2, 7, 0 ! h1y07A+ + 7, 2, 8, 0 ! h1y08A+ + 8, 2, 9, 0 ! h1y09A+ + 9, 2, 10, 0 ! h1y10A+ + 10, 2, 1, 1 ! h1y01A- + 11, 2, 2, 1 ! h1y02A- + 12, 2, 3, 1 ! h1y03A- + 13, 2, 4, 1 ! h1y04A- + 14, 2, 5, 1 ! h1y05A- + 15, 2, 6, 1 ! h1y06A- + +SLOT=13 + 0, 2, 7, 1 ! h1y07A- + 1, 2, 8, 1 ! h1y08A- + 2, 2, 9, 1 ! h1y09A- + 3, 2, 10, 1 ! h1y10A- + 4, 3, 1, 0 ! h2x01A+ + 5, 3, 2, 0 ! h2x02A+ + 6, 3, 3, 0 ! h2x03A+ + 7, 3, 4, 0 ! h2x04A+ + 8, 3, 5, 0 ! h2x05A+ + 9, 3, 6, 0 ! h2x06A+ + 10, 3, 7, 0 ! h2x07A+ + 11, 3, 8, 0 ! h2x08A+ + 12, 3, 9, 0 ! h2x09A+ + 13, 3, 10, 0 ! h2x10A+ + 14, 3, 11, 0 ! h2x11A+ + 15, 3, 12, 0 ! h2x12A+ + +SLOT=14 + 0, 3, 13, 0 ! h2x13A+ + 1, 3, 14, 0 ! h2x14A+ + 2, 3, 15, 0 ! h2x15A+ + 3, 3, 16, 0 ! h2x16A+ + 4, 3, 1, 1 ! h2x01A- + 5, 3, 2, 1 ! h2x02A- + 6, 3, 3, 1 ! h2x03A- + 7, 3, 4, 1 ! h2x04A- + 8, 3, 5, 1 ! h2x05A- + 9, 3, 6, 1 ! h2x06A- + 10, 3, 7, 1 ! h2x07A- + 11, 3, 8, 1 ! h2x08A- + 12, 3, 9, 1 ! h2x09A- + 13, 3, 10, 1 ! h2x10A- + 14, 3, 11, 1 ! h2x11A- + 15, 3, 12, 1 ! h2x12A- + +SLOT=15 + 0, 3, 13, 1 ! h2x13A- + 1, 3, 14, 1 ! h2x14A- + 2, 3, 15, 1 ! h2x15A- + 3, 3, 16, 1 ! h2x16A- + 4, 4, 1, 0 ! h2y01A+ + 5, 4, 2, 0 ! h2y02A+ + 6, 4, 3, 0 ! h2y03A+ + 7, 4, 4, 0 ! h2y04A+ + 8, 4, 5, 0 ! h2y05A+ + 9, 4, 6, 0 ! h2y06A+ + 10, 4, 7, 0 ! h2y07A+ + 11, 4, 8, 0 ! h2y08A+ + 12, 4, 9, 0 ! h2y09A+ + 13, 4, 10, 0 ! h2y10A+ + 14, 4, 1, 1 ! h2y01A- + 15, 4, 2, 1 ! h2y02A- + +SLOT=16 + 0, 4, 3, 1 ! h2y03A- + 1, 4, 4, 1 ! h2y04A- + 2, 4, 5, 1 ! h2y05A- + 3, 4, 6, 1 ! h2y06A- + 4, 4, 7, 1 ! h2y07A- + 5, 4, 8, 1 ! h2y08A- + 6, 4, 9, 1 ! h2y09A- + 7, 4, 10, 1 ! h2y10A- + +SLOT=20 +REFINDEX=0 + 127,1000, 0, 0 + 0, 1, 1, 2 ! h1x01T+ + 1, 1, 3, 2 ! h1x03T+ + 2, 1, 5, 2 ! h1x05T+ + 3, 1, 7, 2 ! h1x07T+ + 4, 1, 2, 2 ! h1x02T+ + 5, 1, 4, 2 ! h1x04T+ + 6, 1, 6, 2 ! h1x06T+ + 7, 1, 8, 2 ! h1x08T+ + 8, 1, 9, 2 ! h1x09T+ + 9, 1, 11, 2 ! h1x11T+ + 10, 1, 13, 2 ! h1x13T+ + 11, 1, 15, 2 ! h1x15T+ + 12, 1, 10, 2 ! h1x10T+ + 13, 1, 12, 2 ! h1x12T+ + 14, 1, 14, 2 ! h1x14T+ + 15, 1, 16, 2 ! h1x16T+ + 16, 1, 1, 3 ! h1x01T- + 17, 1, 3, 3 ! h1x03T- + 18, 1, 5, 3 ! h1x05T- + 19, 1, 7, 3 ! h1x07T- + 20, 1, 2, 3 ! h1x02T- + 21, 1, 4, 3 ! h1x04T- + 22, 1, 6, 3 ! h1x06T- + 23, 1, 8, 3 ! h1x08T- + 24, 1, 9, 3 ! h1x09T- + 25, 1, 11, 3 ! h1x11T- + 26, 1, 13, 3 ! h1x13T- + 27, 1, 15, 3 ! h1x15T- + 28, 1, 10, 3 ! h1x10T- + 29, 1, 12, 3 ! h1x12T- + 30, 1, 14, 3 ! h1x14T- + 31, 1, 16, 3 ! h1x16T- + 32, 2, 1, 2 ! h1y01T+ + 33, 2, 3, 2 ! h1y03T+ + 34, 2, 5, 2 ! h1y05T+ + 35, 2, 7, 2 ! h1y07T+ + 36, 2, 2, 2 ! h1y02T+ + 37, 2, 4, 2 ! h1y04T+ + 38, 2, 6, 2 ! h1y06T+ + 39, 2, 8, 2 ! h1y08T+ + 40, 2, 9, 2 ! h1y09T+ + 44, 2, 10, 2 ! h1y10T+ + 48, 2, 1, 3 ! h1y01T- + 49, 2, 3, 3 ! h1y03T- + 50, 2, 5, 3 ! h1y05T- + 51, 2, 7, 3 ! h1y07T- + 52, 2, 2, 3 ! h1y02T- + 53, 2, 4, 3 ! h1y04T- + 54, 2, 6, 3 ! h1y06T- + 55, 2, 8, 3 ! h1y08T- + 56, 2, 9, 3 ! h1y09T- + 60, 2, 10, 3 ! h1y10T- + 64, 3, 1, 2 ! h2x01T+ + 65, 3, 3, 2 ! h2x03T+ + 66, 3, 5, 2 ! h2x05T+ + 67, 3, 7, 2 ! h2x07T+ + 68, 3, 2, 2 ! h2x02T+ + 69, 3, 4, 2 ! h2x04T+ + 70, 3, 6, 2 ! h2x06T+ + 71, 3, 8, 2 ! h2x08T+ + 72, 3, 9, 2 ! h2x09T+ + 73, 3, 11, 2 ! h2x11T+ + 74, 3, 13, 2 ! h2x13T+ + 75, 3, 15, 2 ! h2x15T+ + 76, 3, 10, 2 ! h2x10T+ + 77, 3, 12, 2 ! h2x12T+ + 78, 3, 14, 2 ! h2x14T+ + 79, 3, 16, 2 ! h2x16T+ + 80, 3, 1, 3 ! h2x01T- + 81, 3, 3, 3 ! h2x03T- + 82, 3, 5, 3 ! h2x05T- + 83, 3, 7, 3 ! h2x07T- + 84, 3, 2, 3 ! h2x02T- + 85, 3, 4, 3 ! h2x04T- + 86, 3, 6, 3 ! h2x06T- + 87, 3, 8, 3 ! h2x08T- + 88, 3, 9, 3 ! h2x09T- + 89, 3, 11, 3 ! h2x11T- + 90, 3, 13, 3 ! h2x13T- + 91, 3, 15, 3 ! h2x15T- + 92, 3, 10, 3 ! h2x10T- + 93, 3, 12, 3 ! h2x12T- + 94, 3, 14, 3 ! h2x14T- + 95, 3, 16, 3 ! h2x16T- + 96, 4, 1, 2 ! h2y01T+ + 97, 4, 3, 2 ! h2y03T+ + 98, 4, 5, 2 ! h2y05T+ + 99, 4, 7, 2 ! h2y07T+ + 100, 4, 2, 2 ! h2y02T+ + 101, 4, 4, 2 ! h2y04T+ + 102, 4, 6, 2 ! h2y06T+ + 103, 4, 8, 2 ! h2y08T+ + 104, 4, 9, 2 ! h2y09T+ + 108, 4, 10, 2 ! h2y10T+ + 112, 4, 1, 3 ! h2y01T- + 113, 4, 3, 3 ! h2y03T- + 114, 4, 5, 3 ! h2y05T- + 115, 4, 7, 3 ! h2y07T- + 116, 4, 2, 3 ! h2y02T- + 117, 4, 4, 3 ! h2y04T- + 118, 4, 6, 3 ! h2y06T- + 119, 4, 8, 3 ! h2y08T- + 120, 4, 9, 3 ! h2y09T- + 124, 4, 10, 3 ! h2y10T- diff --git a/MAPS/HMS/DETEC/hdc_htrig.map b/MAPS/HMS/DETEC/hdc_htrig.map new file mode 100644 index 00000000..b3e0097e --- /dev/null +++ b/MAPS/HMS/DETEC/hdc_htrig.map @@ -0,0 +1,1210 @@ +! THMS_ID=10 :: ADC,TDC +! HDC_ID=11 :: ADC,TDC + + +DETECTOR=10 + +ROC=1 + +SLOT=17 + 8, 1, 1, 0 ! hASUM + 9, 1, 2, 0 ! hBSUM + 10, 1, 3, 0 ! hCSUM + 11, 1, 4, 0 ! hDSUM + 12, 1, 5, 0 ! hPSHWR + 13, 1, 6, 0 ! hSHWR + 14, 1, 7, 0 ! hAERSUM + 15, 1, 8, 0 ! hCERSUM + +SLOT=2 + 0, 2, 1, 1 ! h1X + 1, 2, 2, 1 ! h1Y + 2, 2, 3, 1 ! h2X + 3, 2, 4, 1 ! h2Y + 4, 2, 5, 1 ! h1T + 5, 2, 6, 1 ! h2T + 6, 2, 7, 1 ! hT1 + 7, 2, 8, 1 ! hASUM + 8, 2, 9, 1 ! hBSUM + 9, 2, 10, 1 ! hCSUM + 10, 2, 11, 1 ! hDSUM + 11, 2, 12, 1 ! hPSHWRLO + 12, 2, 13, 1 ! hPSHWRHI + 13, 2, 14, 1 ! hSHWR + 14, 2, 15, 1 ! hAERSUM + 15, 2, 16, 1 ! hCERSUM + +SLOT=20 + 127, 2, 17, 1 ! hT2 + +ROC=3 + +SLOT=5 + 111, 2, 18, 1 ! hDCREF1 + +SLOT=8 + 127, 2, 19, 1 ! hDCREF2 + +SLOT=10 + 127, 2, 20, 1 ! hDCREF3 + +SLOT=17 + 127, 2, 21, 1 ! hDCREF4 + + +DETECTOR=11 ! HMS chambers + +ROC=3 + +SLOT=5 +REFINDEX=0 + 111,1000, 0, 0 + 96, 3, 1 ! Plane U, wire 1 + 97, 3, 2 ! Plane U, wire 2 + 98, 3, 3 ! Plane U, wire 3 + 99, 3, 4 ! Plane U, wire 4 + 100, 3, 5 ! Plane U, wire 5 + 101, 3, 6 ! Plane U, wire 6 + 102, 3, 7 ! Plane U, wire 7 + 103, 3, 8 ! Plane U, wire 8 + 104, 3, 9 ! Plane U, wire 9 + 105, 3, 10 ! Plane U, wire 10 + 106, 3, 11 ! Plane U, wire 11 + 107, 3, 12 ! Plane U, wire 12 + 108, 3, 13 ! Plane U, wire 13 + 109, 3, 14 ! Plane U, wire 14 + 110, 1, 113 ! Plane X, wire 113 + 80, 3, 15 ! Plane U, wire 15 + 81, 3, 16 ! Plane U, wire 16 + 82, 3, 17 ! Plane U, wire 17 + 83, 3, 18 ! Plane U, wire 18 + 84, 3, 19 ! Plane U, wire 19 + 85, 3, 20 ! Plane U, wire 20 + 86, 3, 21 ! Plane U, wire 21 + 87, 3, 22 ! Plane U, wire 22 + 88, 3, 23 ! Plane U, wire 23 + 89, 3, 24 ! Plane U, wire 24 + 90, 3, 25 ! Plane U, wire 25 + 91, 3, 26 ! Plane U, wire 26 + 92, 3, 27 ! Plane U, wire 27 + 93, 3, 28 ! Plane U, wire 28 + 94, 3, 29 ! Plane U, wire 29 + 64, 3, 30 ! Plane U, wire 30 + 65, 3, 31 ! Plane U, wire 31 + 66, 3, 32 ! Plane U, wire 32 + 67, 3, 33 ! Plane U, wire 33 + 68, 3, 34 ! Plane U, wire 34 + 69, 3, 35 ! Plane U, wire 35 + 70, 3, 36 ! Plane U, wire 36 + 71, 3, 37 ! Plane U, wire 37 + 72, 3, 38 ! Plane U, wire 38 + 73, 3, 39 ! Plane U, wire 39 + 74, 3, 40 ! Plane U, wire 40 + 75, 3, 41 ! Plane U, wire 41 + 76, 3, 42 ! Plane U, wire 42 + 77, 3, 43 ! Plane U, wire 43 + 78, 3, 44 ! Plane U, wire 44 + 79, 3, 45 ! Plane U, wire 45 + 48, 3, 46 ! Plane U, wire 46 + 49, 3, 47 ! Plane U, wire 47 + 50, 3, 48 ! Plane U, wire 48 + 51, 3, 49 ! Plane U, wire 49 + 52, 3, 50 ! Plane U, wire 50 + 53, 3, 51 ! Plane U, wire 51 + 54, 3, 52 ! Plane U, wire 52 + 55, 3, 53 ! Plane U, wire 53 + 56, 3, 54 ! Plane U, wire 54 + 57, 3, 55 ! Plane U, wire 55 + 58, 3, 56 ! Plane U, wire 56 + 59, 3, 57 ! Plane U, wire 57 + 60, 3, 58 ! Plane U, wire 58 + 61, 3, 59 ! Plane U, wire 59 + 62, 3, 60 ! Plane U, wire 60 + 32, 3, 61 ! Plane U, wire 61 + 33, 3, 62 ! Plane U, wire 62 + 34, 3, 63 ! Plane U, wire 63 + 35, 3, 64 ! Plane U, wire 64 + 36, 3, 65 ! Plane U, wire 65 + 37, 3, 66 ! Plane U, wire 66 + 38, 3, 67 ! Plane U, wire 67 + 39, 3, 68 ! Plane U, wire 68 + 40, 3, 69 ! Plane U, wire 69 + 41, 3, 70 ! Plane U, wire 70 + 42, 3, 71 ! Plane U, wire 71 + 43, 3, 72 ! Plane U, wire 72 + 44, 3, 73 ! Plane U, wire 73 + 45, 3, 74 ! Plane U, wire 74 + 46, 3, 75 ! Plane U, wire 75 + 47, 3, 76 ! Plane U, wire 76 + 16, 3, 77 ! Plane U, wire 77 + 17, 3, 78 ! Plane U, wire 78 + 18, 3, 79 ! Plane U, wire 79 + 19, 3, 80 ! Plane U, wire 80 + 20, 3, 81 ! Plane U, wire 81 + 21, 3, 82 ! Plane U, wire 82 + 22, 3, 83 ! Plane U, wire 83 + 23, 3, 84 ! Plane U, wire 84 + 24, 3, 85 ! Plane U, wire 85 + 25, 3, 86 ! Plane U, wire 86 + 26, 3, 87 ! Plane U, wire 87 + 27, 3, 88 ! Plane U, wire 88 + 28, 3, 89 ! Plane U, wire 89 + 29, 3, 90 ! Plane U, wire 90 + 30, 3, 91 ! Plane U, wire 91 + 0, 3, 92 ! Plane U, wire 92 + 1, 3, 93 ! Plane U, wire 93 + 2, 3, 94 ! Plane U, wire 94 + 3, 3, 95 ! Plane U, wire 95 + 4, 3, 96 ! Plane U, wire 96 + 5, 3, 97 ! Plane U, wire 97 + 6, 3, 98 ! Plane U, wire 98 + 7, 3, 99 ! Plane U, wire 99 + 8, 3, 100 ! Plane U, wire 100 + 9, 3, 101 ! Plane U, wire 101 + 10, 3, 102 ! Plane U, wire 102 + 11, 3, 103 ! Plane U, wire 103 + 12, 3, 104 ! Plane U, wire 104 + 13, 3, 105 ! Plane U, wire 105 + 14, 3, 106 ! Plane U, wire 106 + 15, 3, 107 ! Plane U, wire 107 + +SLOT=7 +REFINDEX=0 + 96, 4, 1 ! Plane V, wire 1 + 97, 4, 2 ! Plane V, wire 2 + 98, 4, 3 ! Plane V, wire 3 + 99, 4, 4 ! Plane V, wire 4 + 100, 4, 5 ! Plane V, wire 5 + 101, 4, 6 ! Plane V, wire 6 + 102, 4, 7 ! Plane V, wire 7 + 103, 4, 8 ! Plane V, wire 8 + 104, 4, 9 ! Plane V, wire 9 + 105, 4, 10 ! Plane V, wire 10 + 106, 4, 11 ! Plane V, wire 11 + 107, 4, 12 ! Plane V, wire 12 + 108, 4, 13 ! Plane V, wire 13 + 109, 4, 14 ! Plane V, wire 14 + 110, 6, 113 ! Plane X', wire 113 + 112, 4, 15 ! Plane V, wire 15 + 113, 4, 16 ! Plane V, wire 16 + 114, 4, 17 ! Plane V, wire 17 + 115, 4, 18 ! Plane V, wire 18 + 116, 4, 19 ! Plane V, wire 19 + 117, 4, 20 ! Plane V, wire 20 + 118, 4, 21 ! Plane V, wire 21 + 119, 4, 22 ! Plane V, wire 22 + 120, 4, 23 ! Plane V, wire 23 + 121, 4, 24 ! Plane V, wire 24 + 122, 4, 25 ! Plane V, wire 25 + 123, 4, 26 ! Plane V, wire 26 + 124, 4, 27 ! Plane V, wire 27 + 125, 4, 28 ! Plane V, wire 28 + 126, 4, 29 ! Plane V, wire 29 + +SLOT=8 +REFINDEX=0 + 127,1000, 0, 1 + 0, 4, 30 ! Plane V, wire 30 + 1, 4, 31 ! Plane V, wire 31 + 2, 4, 32 ! Plane V, wire 32 + 3, 4, 33 ! Plane V, wire 33 + 4, 4, 34 ! Plane V, wire 34 + 5, 4, 35 ! Plane V, wire 35 + 6, 4, 36 ! Plane V, wire 36 + 7, 4, 37 ! Plane V, wire 37 + 8, 4, 38 ! Plane V, wire 38 + 9, 4, 39 ! Plane V, wire 39 + 10, 4, 40 ! Plane V, wire 40 + 11, 4, 41 ! Plane V, wire 41 + 12, 4, 42 ! Plane V, wire 42 + 13, 4, 43 ! Plane V, wire 43 + 14, 4, 44 ! Plane V, wire 44 + 15, 4, 45 ! Plane V, wire 45 + 16, 4, 46 ! Plane V, wire 46 + 17, 4, 47 ! Plane V, wire 47 + 18, 4, 48 ! Plane V, wire 48 + 19, 4, 49 ! Plane V, wire 49 + 20, 4, 50 ! Plane V, wire 50 + 21, 4, 51 ! Plane V, wire 51 + 22, 4, 52 ! Plane V, wire 52 + 23, 4, 53 ! Plane V, wire 53 + 24, 4, 54 ! Plane V, wire 54 + 25, 4, 55 ! Plane V, wire 55 + 26, 4, 56 ! Plane V, wire 56 + 27, 4, 57 ! Plane V, wire 57 + 28, 4, 58 ! Plane V, wire 58 + 29, 4, 59 ! Plane V, wire 59 + 30, 4, 60 ! Plane V, wire 60 + 32, 4, 61 ! Plane V, wire 61 + 33, 4, 62 ! Plane V, wire 62 + 34, 4, 63 ! Plane V, wire 63 + 35, 4, 64 ! Plane V, wire 64 + 36, 4, 65 ! Plane V, wire 65 + 37, 4, 66 ! Plane V, wire 66 + 38, 4, 67 ! Plane V, wire 67 + 39, 4, 68 ! Plane V, wire 68 + 40, 4, 69 ! Plane V, wire 69 + 41, 4, 70 ! Plane V, wire 70 + 42, 4, 71 ! Plane V, wire 71 + 43, 4, 72 ! Plane V, wire 72 + 44, 4, 73 ! Plane V, wire 73 + 45, 4, 74 ! Plane V, wire 74 + 46, 4, 75 ! Plane V, wire 75 + 47, 4, 76 ! Plane V, wire 76 + 48, 4, 77 ! Plane V, wire 77 + 49, 4, 78 ! Plane V, wire 78 + 50, 4, 79 ! Plane V, wire 79 + 51, 4, 80 ! Plane V, wire 80 + 52, 4, 81 ! Plane V, wire 81 + 53, 4, 82 ! Plane V, wire 82 + 54, 4, 83 ! Plane V, wire 83 + 55, 4, 84 ! Plane V, wire 84 + 56, 4, 85 ! Plane V, wire 85 + 57, 4, 86 ! Plane V, wire 86 + 58, 4, 87 ! Plane V, wire 87 + 59, 4, 88 ! Plane V, wire 88 + 60, 4, 89 ! Plane V, wire 89 + 61, 4, 90 ! Plane V, wire 90 + 62, 4, 91 ! Plane V, wire 91 + +SLOT=4 +REFINDEX=0 + 96, 4, 92 ! Plane V, wire 92 + 97, 4, 93 ! Plane V, wire 93 + 98, 4, 94 ! Plane V, wire 94 + 99, 4, 95 ! Plane V, wire 95 + 100, 4, 96 ! Plane V, wire 96 + 101, 4, 97 ! Plane V, wire 97 + 102, 4, 98 ! Plane V, wire 98 + 103, 4, 99 ! Plane V, wire 99 + 104, 4, 100 ! Plane V, wire 100 + 105, 4, 101 ! Plane V, wire 101 + 106, 4, 102 ! Plane V, wire 102 + 107, 4, 103 ! Plane V, wire 103 + 108, 4, 104 ! Plane V, wire 104 + 109, 4, 105 ! Plane V, wire 105 + 110, 4, 106 ! Plane V, wire 106 + 111, 4, 107 ! Plane V, wire 107 + 80, 1, 1 ! Plane X, wire 1 + 81, 1, 2 ! Plane X, wire 2 + 82, 1, 3 ! Plane X, wire 3 + 83, 1, 4 ! Plane X, wire 4 + 84, 1, 5 ! Plane X, wire 5 + 85, 1, 6 ! Plane X, wire 6 + 86, 1, 7 ! Plane X, wire 7 + 87, 1, 8 ! Plane X, wire 8 + 88, 1, 9 ! Plane X, wire 9 + 89, 1, 10 ! Plane X, wire 10 + 90, 1, 11 ! Plane X, wire 11 + 91, 1, 12 ! Plane X, wire 12 + 92, 1, 13 ! Plane X, wire 13 + 93, 1, 14 ! Plane X, wire 14 + 94, 1, 15 ! Plane X, wire 15 + 95, 1, 16 ! Plane X, wire 16 + 64, 1, 17 ! Plane X, wire 17 + 65, 1, 18 ! Plane X, wire 18 + 66, 1, 19 ! Plane X, wire 19 + 67, 1, 20 ! Plane X, wire 20 + 68, 1, 21 ! Plane X, wire 21 + 69, 1, 22 ! Plane X, wire 22 + 70, 1, 23 ! Plane X, wire 23 + 71, 1, 24 ! Plane X, wire 24 + 72, 1, 25 ! Plane X, wire 25 + 73, 1, 26 ! Plane X, wire 26 + 74, 1, 27 ! Plane X, wire 27 + 75, 1, 28 ! Plane X, wire 28 + 76, 1, 29 ! Plane X, wire 29 + 77, 1, 30 ! Plane X, wire 30 + 78, 1, 31 ! Plane X, wire 31 + 79, 1, 32 ! Plane X, wire 32 + 48, 1, 33 ! Plane X, wire 33 + 49, 1, 34 ! Plane X, wire 34 + 50, 1, 35 ! Plane X, wire 35 + 51, 1, 36 ! Plane X, wire 36 + 52, 1, 37 ! Plane X, wire 37 + 53, 1, 38 ! Plane X, wire 38 + 54, 1, 39 ! Plane X, wire 39 + 55, 1, 40 ! Plane X, wire 40 + 56, 1, 41 ! Plane X, wire 41 + 57, 1, 42 ! Plane X, wire 42 + 58, 1, 43 ! Plane X, wire 43 + 59, 1, 44 ! Plane X, wire 44 + 60, 1, 45 ! Plane X, wire 45 + 61, 1, 46 ! Plane X, wire 46 + 62, 1, 47 ! Plane X, wire 47 + 63, 1, 48 ! Plane X, wire 48 + 32, 1, 49 ! Plane X, wire 49 + 33, 1, 50 ! Plane X, wire 50 + 34, 1, 51 ! Plane X, wire 51 + 35, 1, 52 ! Plane X, wire 52 + 36, 1, 53 ! Plane X, wire 53 + 37, 1, 54 ! Plane X, wire 54 + 38, 1, 55 ! Plane X, wire 55 + 39, 1, 56 ! Plane X, wire 56 + 40, 1, 57 ! Plane X, wire 57 + 41, 1, 58 ! Plane X, wire 58 + 42, 1, 59 ! Plane X, wire 59 + 43, 1, 60 ! Plane X, wire 60 + 44, 1, 61 ! Plane X, wire 61 + 45, 1, 62 ! Plane X, wire 62 + 46, 1, 63 ! Plane X, wire 63 + 47, 1, 64 ! Plane X, wire 64 + 16, 1, 65 ! Plane X, wire 65 + 17, 1, 66 ! Plane X, wire 66 + 18, 1, 67 ! Plane X, wire 67 + 19, 1, 68 ! Plane X, wire 68 + 20, 1, 69 ! Plane X, wire 69 + 21, 1, 70 ! Plane X, wire 70 + 22, 1, 71 ! Plane X, wire 71 + 23, 1, 72 ! Plane X, wire 72 + 24, 1, 73 ! Plane X, wire 73 + 25, 1, 74 ! Plane X, wire 74 + 26, 1, 75 ! Plane X, wire 75 + 27, 1, 76 ! Plane X, wire 76 + 28, 1, 77 ! Plane X, wire 77 + 29, 1, 78 ! Plane X, wire 78 + 30, 1, 79 ! Plane X, wire 79 + 31, 1, 80 ! Plane X, wire 80 + 0, 1, 81 ! Plane X, wire 81 + 1, 1, 82 ! Plane X, wire 82 + 2, 1, 83 ! Plane X, wire 83 + 3, 1, 84 ! Plane X, wire 84 + 4, 1, 85 ! Plane X, wire 85 + 5, 1, 86 ! Plane X, wire 86 + 6, 1, 87 ! Plane X, wire 87 + 7, 1, 88 ! Plane X, wire 88 + 8, 1, 89 ! Plane X, wire 89 + 9, 1, 90 ! Plane X, wire 90 + 10, 1, 91 ! Plane X, wire 91 + 11, 1, 92 ! Plane X, wire 92 + 12, 1, 93 ! Plane X, wire 93 + 13, 1, 94 ! Plane X, wire 94 + 14, 1, 95 ! Plane X, wire 95 + 15, 1, 96 ! Plane X, wire 96 + +SLOT=7 +REFINDEX=0 + 80, 1, 97 ! Plane X, wire 97 + 81, 1, 98 ! Plane X, wire 98 + 82, 1, 99 ! Plane X, wire 99 + 83, 1, 100 ! Plane X, wire 100 + 84, 1, 101 ! Plane X, wire 101 + 85, 1, 102 ! Plane X, wire 102 + 86, 1, 103 ! Plane X, wire 103 + 87, 1, 104 ! Plane X, wire 104 + 88, 1, 105 ! Plane X, wire 105 + 89, 1, 106 ! Plane X, wire 106 + 90, 1, 107 ! Plane X, wire 107 + 91, 1, 108 ! Plane X, wire 108 + 92, 1, 109 ! Plane X, wire 109 + 93, 1, 110 ! Plane X, wire 110 + 94, 1, 111 ! Plane X, wire 111 + 95, 1, 112 ! Plane X, wire 112 + +SLOT=4 +REFINDEX=0 + 112, 6, 1 ! Plane X', wire 1 + 113, 6, 2 ! Plane X', wire 2 + 114, 6, 3 ! Plane X', wire 3 + 115, 6, 4 ! Plane X', wire 4 + 116, 6, 5 ! Plane X', wire 5 + 117, 6, 6 ! Plane X', wire 6 + 118, 6, 7 ! Plane X', wire 7 + 119, 6, 8 ! Plane X', wire 8 + 120, 6, 9 ! Plane X', wire 9 + 121, 6, 10 ! Plane X', wire 10 + 122, 6, 11 ! Plane X', wire 11 + 123, 6, 12 ! Plane X', wire 12 + 124, 6, 13 ! Plane X', wire 13 + 125, 6, 14 ! Plane X', wire 14 + 126, 6, 15 ! Plane X', wire 15 + 127, 6, 16 ! Plane X', wire 16 + +SLOT=5 +REFINDEX=0 + 112, 6, 17 ! Plane X', wire 17 + 113, 6, 18 ! Plane X', wire 18 + 114, 6, 19 ! Plane X', wire 19 + 115, 6, 20 ! Plane X', wire 20 + 116, 6, 21 ! Plane X', wire 21 + 117, 6, 22 ! Plane X', wire 22 + 118, 6, 23 ! Plane X', wire 23 + 119, 6, 24 ! Plane X', wire 24 + 120, 6, 25 ! Plane X', wire 25 + 121, 6, 26 ! Plane X', wire 26 + 122, 6, 27 ! Plane X', wire 27 + 123, 6, 28 ! Plane X', wire 28 + 124, 6, 29 ! Plane X', wire 29 + 125, 6, 30 ! Plane X', wire 30 + 126, 6, 31 ! Plane X', wire 31 + 127, 6, 32 ! Plane X', wire 32 + +SLOT=7 +REFINDEX=0 + 0, 6, 33 ! Plane X', wire 33 + 1, 6, 34 ! Plane X', wire 34 + 2, 6, 35 ! Plane X', wire 35 + 3, 6, 36 ! Plane X', wire 36 + 4, 6, 37 ! Plane X', wire 37 + 5, 6, 38 ! Plane X', wire 38 + 6, 6, 39 ! Plane X', wire 39 + 7, 6, 40 ! Plane X', wire 40 + 8, 6, 41 ! Plane X', wire 41 + 9, 6, 42 ! Plane X', wire 42 + 10, 6, 43 ! Plane X', wire 43 + 11, 6, 44 ! Plane X', wire 44 + 12, 6, 45 ! Plane X', wire 45 + 13, 6, 46 ! Plane X', wire 46 + 14, 6, 47 ! Plane X', wire 47 + 15, 6, 48 ! Plane X', wire 48 + 16, 6, 49 ! Plane X', wire 49 + 17, 6, 50 ! Plane X', wire 50 + 18, 6, 51 ! Plane X', wire 51 + 19, 6, 52 ! Plane X', wire 52 + 20, 6, 53 ! Plane X', wire 53 + 21, 6, 54 ! Plane X', wire 54 + 22, 6, 55 ! Plane X', wire 55 + 23, 6, 56 ! Plane X', wire 56 + 24, 6, 57 ! Plane X', wire 57 + 25, 6, 58 ! Plane X', wire 58 + 26, 6, 59 ! Plane X', wire 59 + 27, 6, 60 ! Plane X', wire 60 + 28, 6, 61 ! Plane X', wire 61 + 29, 6, 62 ! Plane X', wire 62 + 30, 6, 63 ! Plane X', wire 63 + 31, 6, 64 ! Plane X', wire 64 + 32, 6, 65 ! Plane X', wire 65 + 33, 6, 66 ! Plane X', wire 66 + 34, 6, 67 ! Plane X', wire 67 + 35, 6, 68 ! Plane X', wire 68 + 36, 6, 69 ! Plane X', wire 69 + 37, 6, 70 ! Plane X', wire 70 + 38, 6, 71 ! Plane X', wire 71 + 39, 6, 72 ! Plane X', wire 72 + 40, 6, 73 ! Plane X', wire 73 + 41, 6, 74 ! Plane X', wire 74 + 42, 6, 75 ! Plane X', wire 75 + 43, 6, 76 ! Plane X', wire 76 + 44, 6, 77 ! Plane X', wire 77 + 45, 6, 78 ! Plane X', wire 78 + 46, 6, 79 ! Plane X', wire 79 + 47, 6, 80 ! Plane X', wire 80 + 48, 6, 81 ! Plane X', wire 81 + 49, 6, 82 ! Plane X', wire 82 + 50, 6, 83 ! Plane X', wire 83 + 51, 6, 84 ! Plane X', wire 84 + 52, 6, 85 ! Plane X', wire 85 + 53, 6, 86 ! Plane X', wire 86 + 54, 6, 87 ! Plane X', wire 87 + 55, 6, 88 ! Plane X', wire 88 + 56, 6, 89 ! Plane X', wire 89 + 57, 6, 90 ! Plane X', wire 90 + 58, 6, 91 ! Plane X', wire 91 + 59, 6, 92 ! Plane X', wire 92 + 60, 6, 93 ! Plane X', wire 93 + 61, 6, 94 ! Plane X', wire 94 + 62, 6, 95 ! Plane X', wire 95 + 63, 6, 96 ! Plane X', wire 96 + 64, 6, 97 ! Plane X', wire 97 + 65, 6, 98 ! Plane X', wire 98 + 66, 6, 99 ! Plane X', wire 99 + 67, 6, 100 ! Plane X', wire 100 + 68, 6, 101 ! Plane X', wire 101 + 69, 6, 102 ! Plane X', wire 102 + 70, 6, 103 ! Plane X', wire 103 + 71, 6, 104 ! Plane X', wire 104 + 72, 6, 105 ! Plane X', wire 105 + 73, 6, 106 ! Plane X', wire 106 + 74, 6, 107 ! Plane X', wire 107 + 75, 6, 108 ! Plane X', wire 108 + 76, 6, 109 ! Plane X', wire 109 + 77, 6, 110 ! Plane X', wire 110 + 78, 6, 111 ! Plane X', wire 111 + 79, 6, 112 ! Plane X', wire 112 + +SLOT=8 +REFINDEX=0 + 64, 2, 1 ! Plane Y, wire 1 + 65, 2, 2 ! Plane Y, wire 2 + 66, 2, 3 ! Plane Y, wire 3 + 67, 2, 4 ! Plane Y, wire 4 + 68, 2, 5 ! Plane Y, wire 5 + 69, 2, 6 ! Plane Y, wire 6 + 70, 2, 7 ! Plane Y, wire 7 + 71, 2, 8 ! Plane Y, wire 8 + 72, 2, 9 ! Plane Y, wire 9 + 73, 2, 10 ! Plane Y, wire 10 + 74, 2, 11 ! Plane Y, wire 11 + 75, 2, 12 ! Plane Y, wire 12 + 76, 2, 13 ! Plane Y, wire 13 + 80, 2, 14 ! Plane Y, wire 14 + 81, 2, 15 ! Plane Y, wire 15 + 82, 2, 16 ! Plane Y, wire 16 + 83, 2, 17 ! Plane Y, wire 17 + 84, 2, 18 ! Plane Y, wire 18 + 85, 2, 19 ! Plane Y, wire 19 + 86, 2, 20 ! Plane Y, wire 20 + 87, 2, 21 ! Plane Y, wire 21 + 88, 2, 22 ! Plane Y, wire 22 + 89, 2, 23 ! Plane Y, wire 23 + 90, 2, 24 ! Plane Y, wire 24 + 91, 2, 25 ! Plane Y, wire 25 + 92, 2, 26 ! Plane Y, wire 26 + 96, 2, 27 ! Plane Y, wire 27 + 97, 2, 28 ! Plane Y, wire 28 + 98, 2, 29 ! Plane Y, wire 29 + 99, 2, 30 ! Plane Y, wire 30 + 100, 2, 31 ! Plane Y, wire 31 + 101, 2, 32 ! Plane Y, wire 32 + 102, 2, 33 ! Plane Y, wire 33 + 103, 2, 34 ! Plane Y, wire 34 + 104, 2, 35 ! Plane Y, wire 35 + 105, 2, 36 ! Plane Y, wire 36 + 106, 2, 37 ! Plane Y, wire 37 + 107, 2, 38 ! Plane Y, wire 38 + 108, 2, 39 ! Plane Y, wire 39 + 112, 2, 40 ! Plane Y, wire 40 + 113, 2, 41 ! Plane Y, wire 41 + 114, 2, 42 ! Plane Y, wire 42 + 115, 2, 43 ! Plane Y, wire 43 + 116, 2, 44 ! Plane Y, wire 44 + 117, 2, 45 ! Plane Y, wire 45 + 118, 2, 46 ! Plane Y, wire 46 + 119, 2, 47 ! Plane Y, wire 47 + 120, 2, 48 ! Plane Y, wire 48 + 121, 2, 49 ! Plane Y, wire 49 + 122, 2, 50 ! Plane Y, wire 50 + 123, 2, 51 ! Plane Y, wire 51 + 124, 2, 52 ! Plane Y, wire 52 + +SLOT=10 +REFINDEX=0 + 127,1000, 0, 2 + 0, 5, 1 ! Plane Y', wire 1 + 1, 5, 2 ! Plane Y', wire 2 + 2, 5, 3 ! Plane Y', wire 3 + 3, 5, 4 ! Plane Y', wire 4 + 4, 5, 5 ! Plane Y', wire 5 + 5, 5, 6 ! Plane Y', wire 6 + 6, 5, 7 ! Plane Y', wire 7 + 7, 5, 8 ! Plane Y', wire 8 + 8, 5, 9 ! Plane Y', wire 9 + 9, 5, 10 ! Plane Y', wire 10 + 10, 5, 11 ! Plane Y', wire 11 + 11, 5, 12 ! Plane Y', wire 12 + 12, 5, 13 ! Plane Y', wire 13 + 16, 5, 14 ! Plane Y', wire 14 + 17, 5, 15 ! Plane Y', wire 15 + 18, 5, 16 ! Plane Y', wire 16 + 19, 5, 17 ! Plane Y', wire 17 + 20, 5, 18 ! Plane Y', wire 18 + 21, 5, 19 ! Plane Y', wire 19 + 22, 5, 20 ! Plane Y', wire 20 + 23, 5, 21 ! Plane Y', wire 21 + 24, 5, 22 ! Plane Y', wire 22 + 25, 5, 23 ! Plane Y', wire 23 + 26, 5, 24 ! Plane Y', wire 24 + 27, 5, 25 ! Plane Y', wire 25 + 28, 5, 26 ! Plane Y', wire 26 + 32, 5, 27 ! Plane Y', wire 27 + 33, 5, 28 ! Plane Y', wire 28 + 34, 5, 29 ! Plane Y', wire 29 + 35, 5, 30 ! Plane Y', wire 30 + 36, 5, 31 ! Plane Y', wire 31 + 37, 5, 32 ! Plane Y', wire 32 + 38, 5, 33 ! Plane Y', wire 33 + 39, 5, 34 ! Plane Y', wire 34 + 40, 5, 35 ! Plane Y', wire 35 + 41, 5, 36 ! Plane Y', wire 36 + 42, 5, 37 ! Plane Y', wire 37 + 43, 5, 38 ! Plane Y', wire 38 + 44, 5, 39 ! Plane Y', wire 39 + 48, 5, 40 ! Plane Y', wire 40 + 49, 5, 41 ! Plane Y', wire 41 + 50, 5, 42 ! Plane Y', wire 42 + 51, 5, 43 ! Plane Y', wire 43 + 52, 5, 44 ! Plane Y', wire 44 + 53, 5, 45 ! Plane Y', wire 45 + 54, 5, 46 ! Plane Y', wire 46 + 55, 5, 47 ! Plane Y', wire 47 + 56, 5, 48 ! Plane Y', wire 48 + 57, 5, 49 ! Plane Y', wire 49 + 58, 5, 50 ! Plane Y', wire 50 + 59, 5, 51 ! Plane Y', wire 51 + 60, 5, 52 ! Plane Y', wire 52 + +SLOT=16 +REFINDEX=0 + 96, 9, 1 ! Plane U, wire 1 + 97, 9, 2 ! Plane U, wire 2 + 98, 9, 3 ! Plane U, wire 3 + 99, 9, 4 ! Plane U, wire 4 + 100, 9, 5 ! Plane U, wire 5 + 101, 9, 6 ! Plane U, wire 6 + 102, 9, 7 ! Plane U, wire 7 + 103, 9, 8 ! Plane U, wire 8 + 104, 9, 9 ! Plane U, wire 9 + 105, 9, 10 ! Plane U, wire 10 + 106, 9, 11 ! Plane U, wire 11 + 107, 9, 12 ! Plane U, wire 12 + 108, 9, 13 ! Plane U, wire 13 + 109, 9, 14 ! Plane U, wire 14 + 110, 7, 113 ! Plane X, wire 113 + 112, 9, 15 ! Plane U, wire 15 + 113, 9, 16 ! Plane U, wire 16 + 114, 9, 17 ! Plane U, wire 17 + 115, 9, 18 ! Plane U, wire 18 + 116, 9, 19 ! Plane U, wire 19 + 117, 9, 20 ! Plane U, wire 20 + 118, 9, 21 ! Plane U, wire 21 + 119, 9, 22 ! Plane U, wire 22 + 120, 9, 23 ! Plane U, wire 23 + 121, 9, 24 ! Plane U, wire 24 + 122, 9, 25 ! Plane U, wire 25 + 123, 9, 26 ! Plane U, wire 26 + 124, 9, 27 ! Plane U, wire 27 + 125, 9, 28 ! Plane U, wire 28 + 126, 9, 29 ! Plane U, wire 29 + +SLOT=14 +REFINDEX=0 + 0, 9, 30 ! Plane U, wire 30 + 1, 9, 31 ! Plane U, wire 31 + 2, 9, 32 ! Plane U, wire 32 + 3, 9, 33 ! Plane U, wire 33 + 4, 9, 34 ! Plane U, wire 34 + 5, 9, 35 ! Plane U, wire 35 + 6, 9, 36 ! Plane U, wire 36 + 7, 9, 37 ! Plane U, wire 37 + 8, 9, 38 ! Plane U, wire 38 + 9, 9, 39 ! Plane U, wire 39 + 10, 9, 40 ! Plane U, wire 40 + 11, 9, 41 ! Plane U, wire 41 + 12, 9, 42 ! Plane U, wire 42 + 13, 9, 43 ! Plane U, wire 43 + 14, 9, 44 ! Plane U, wire 44 + 15, 9, 45 ! Plane U, wire 45 + 32, 9, 46 ! Plane U, wire 46 + 33, 9, 47 ! Plane U, wire 47 + 34, 9, 48 ! Plane U, wire 48 + 35, 9, 49 ! Plane U, wire 49 + 36, 9, 50 ! Plane U, wire 50 + 37, 9, 51 ! Plane U, wire 51 + 38, 9, 52 ! Plane U, wire 52 + 39, 9, 53 ! Plane U, wire 53 + 40, 9, 54 ! Plane U, wire 54 + 41, 9, 55 ! Plane U, wire 55 + 42, 9, 56 ! Plane U, wire 56 + 43, 9, 57 ! Plane U, wire 57 + 44, 9, 58 ! Plane U, wire 58 + 45, 9, 59 ! Plane U, wire 59 + 46, 9, 60 ! Plane U, wire 60 + 48, 9, 61 ! Plane U, wire 61 + 49, 9, 62 ! Plane U, wire 62 + 50, 9, 63 ! Plane U, wire 63 + 51, 9, 64 ! Plane U, wire 64 + 52, 9, 65 ! Plane U, wire 65 + 53, 9, 66 ! Plane U, wire 66 + 54, 9, 67 ! Plane U, wire 67 + 55, 9, 68 ! Plane U, wire 68 + 56, 9, 69 ! Plane U, wire 69 + 57, 9, 70 ! Plane U, wire 70 + 58, 9, 71 ! Plane U, wire 71 + 59, 9, 72 ! Plane U, wire 72 + 60, 9, 73 ! Plane U, wire 73 + 61, 9, 74 ! Plane U, wire 74 + 62, 9, 75 ! Plane U, wire 75 + 63, 9, 76 ! Plane U, wire 76 + 64, 9, 77 ! Plane U, wire 77 + 65, 9, 78 ! Plane U, wire 78 + 66, 9, 79 ! Plane U, wire 79 + 67, 9, 80 ! Plane U, wire 80 + 68, 9, 81 ! Plane U, wire 81 + 69, 9, 82 ! Plane U, wire 82 + 70, 9, 83 ! Plane U, wire 83 + 71, 9, 84 ! Plane U, wire 84 + 72, 9, 85 ! Plane U, wire 85 + 73, 9, 86 ! Plane U, wire 86 + 74, 9, 87 ! Plane U, wire 87 + 75, 9, 88 ! Plane U, wire 88 + 76, 9, 89 ! Plane U, wire 89 + 77, 9, 90 ! Plane U, wire 90 + 78, 9, 91 ! Plane U, wire 91 + 80, 9, 92 ! Plane U, wire 92 + 81, 9, 93 ! Plane U, wire 93 + 82, 9, 94 ! Plane U, wire 94 + 83, 9, 95 ! Plane U, wire 95 + 84, 9, 96 ! Plane U, wire 96 + 85, 9, 97 ! Plane U, wire 97 + 86, 9, 98 ! Plane U, wire 98 + 87, 9, 99 ! Plane U, wire 99 + 88, 9, 100 ! Plane U, wire 100 + 89, 9, 101 ! Plane U, wire 101 + 90, 9, 102 ! Plane U, wire 102 + 91, 9, 103 ! Plane U, wire 103 + 92, 9, 104 ! Plane U, wire 104 + 93, 9, 105 ! Plane U, wire 105 + 94, 9, 106 ! Plane U, wire 106 + 95, 9, 107 ! Plane U, wire 107 + +SLOT=16 +REFINDEX=0 + 80, 10, 1 ! Plane V, wire 1 + 81, 10, 2 ! Plane V, wire 2 + 82, 10, 3 ! Plane V, wire 3 + 83, 10, 4 ! Plane V, wire 4 + 84, 10, 5 ! Plane V, wire 5 + 85, 10, 6 ! Plane V, wire 6 + 86, 10, 7 ! Plane V, wire 7 + 87, 10, 8 ! Plane V, wire 8 + 88, 10, 9 ! Plane V, wire 9 + 89, 10, 10 ! Plane V, wire 10 + 90, 10, 11 ! Plane V, wire 11 + 91, 10, 12 ! Plane V, wire 12 + 92, 10, 13 ! Plane V, wire 13 + 93, 10, 14 ! Plane V, wire 14 + 94, 12, 113 ! Plane X', wire 113 + +SLOT=14 +REFINDEX=0 + 96, 10, 15 ! Plane V, wire 15 + 97, 10, 16 ! Plane V, wire 16 + 98, 10, 17 ! Plane V, wire 17 + 99, 10, 18 ! Plane V, wire 18 + 100, 10, 19 ! Plane V, wire 19 + 101, 10, 20 ! Plane V, wire 20 + 102, 10, 21 ! Plane V, wire 21 + 103, 10, 22 ! Plane V, wire 22 + 104, 10, 23 ! Plane V, wire 23 + 105, 10, 24 ! Plane V, wire 24 + 106, 10, 25 ! Plane V, wire 25 + 107, 10, 26 ! Plane V, wire 26 + 108, 10, 27 ! Plane V, wire 27 + 109, 10, 28 ! Plane V, wire 28 + 110, 10, 29 ! Plane V, wire 29 + 112, 10, 30 ! Plane V, wire 30 + 113, 10, 31 ! Plane V, wire 31 + 114, 10, 32 ! Plane V, wire 32 + 115, 10, 33 ! Plane V, wire 33 + 116, 10, 34 ! Plane V, wire 34 + 117, 10, 35 ! Plane V, wire 35 + 118, 10, 36 ! Plane V, wire 36 + 119, 10, 37 ! Plane V, wire 37 + 120, 10, 38 ! Plane V, wire 38 + 121, 10, 39 ! Plane V, wire 39 + 122, 10, 40 ! Plane V, wire 40 + 123, 10, 41 ! Plane V, wire 41 + 124, 10, 42 ! Plane V, wire 42 + 125, 10, 43 ! Plane V, wire 43 + 126, 10, 44 ! Plane V, wire 44 + 127, 10, 45 ! Plane V, wire 45 + +SLOT=17 +REFINDEX=0 + 127,1000, 0, 3 + 0, 10, 46 ! Plane V, wire 46 + 1, 10, 47 ! Plane V, wire 47 + 2, 10, 48 ! Plane V, wire 48 + 3, 10, 49 ! Plane V, wire 49 + 4, 10, 50 ! Plane V, wire 50 + 5, 10, 51 ! Plane V, wire 51 + 6, 10, 52 ! Plane V, wire 52 + 7, 10, 53 ! Plane V, wire 53 + 8, 10, 54 ! Plane V, wire 54 + 9, 10, 55 ! Plane V, wire 55 + 10, 10, 56 ! Plane V, wire 56 + 11, 10, 57 ! Plane V, wire 57 + 12, 10, 58 ! Plane V, wire 58 + 13, 10, 59 ! Plane V, wire 59 + 14, 10, 60 ! Plane V, wire 60 + 16, 10, 61 ! Plane V, wire 61 + 17, 10, 62 ! Plane V, wire 62 + 18, 10, 63 ! Plane V, wire 63 + 19, 10, 64 ! Plane V, wire 64 + 20, 10, 65 ! Plane V, wire 65 + 21, 10, 66 ! Plane V, wire 66 + 22, 10, 67 ! Plane V, wire 67 + 23, 10, 68 ! Plane V, wire 68 + 24, 10, 69 ! Plane V, wire 69 + 25, 10, 70 ! Plane V, wire 70 + 26, 10, 71 ! Plane V, wire 71 + 27, 10, 72 ! Plane V, wire 72 + 28, 10, 73 ! Plane V, wire 73 + 29, 10, 74 ! Plane V, wire 74 + 30, 10, 75 ! Plane V, wire 75 + 31, 10, 76 ! Plane V, wire 76 + 32, 10, 77 ! Plane V, wire 77 + 33, 10, 78 ! Plane V, wire 78 + 34, 10, 79 ! Plane V, wire 79 + 35, 10, 80 ! Plane V, wire 80 + 36, 10, 81 ! Plane V, wire 81 + 37, 10, 82 ! Plane V, wire 82 + 38, 10, 83 ! Plane V, wire 83 + 39, 10, 84 ! Plane V, wire 84 + 40, 10, 85 ! Plane V, wire 85 + 41, 10, 86 ! Plane V, wire 86 + 42, 10, 87 ! Plane V, wire 87 + 43, 10, 88 ! Plane V, wire 88 + 44, 10, 89 ! Plane V, wire 89 + 45, 10, 90 ! Plane V, wire 90 + 46, 10, 91 ! Plane V, wire 91 + 48, 10, 92 ! Plane V, wire 92 + 49, 10, 93 ! Plane V, wire 93 + 50, 10, 94 ! Plane V, wire 94 + 51, 10, 95 ! Plane V, wire 95 + 52, 10, 96 ! Plane V, wire 96 + 53, 10, 97 ! Plane V, wire 97 + 54, 10, 98 ! Plane V, wire 98 + 55, 10, 99 ! Plane V, wire 99 + 56, 10, 100 ! Plane V, wire 100 + 57, 10, 101 ! Plane V, wire 101 + 58, 10, 102 ! Plane V, wire 102 + 59, 10, 103 ! Plane V, wire 103 + 60, 10, 104 ! Plane V, wire 104 + 61, 10, 105 ! Plane V, wire 105 + 62, 10, 106 ! Plane V, wire 106 + 63, 10, 107 ! Plane V, wire 107 + +SLOT=13 +REFINDEX=0 + 0, 7, 1 ! Plane X, wire 1 + 1, 7, 2 ! Plane X, wire 2 + 2, 7, 3 ! Plane X, wire 3 + 3, 7, 4 ! Plane X, wire 4 + 4, 7, 5 ! Plane X, wire 5 + 5, 7, 6 ! Plane X, wire 6 + 6, 7, 7 ! Plane X, wire 7 + 7, 7, 8 ! Plane X, wire 8 + 8, 7, 9 ! Plane X, wire 9 + 9, 7, 10 ! Plane X, wire 10 + 10, 7, 11 ! Plane X, wire 11 + 11, 7, 12 ! Plane X, wire 12 + 12, 7, 13 ! Plane X, wire 13 + 13, 7, 14 ! Plane X, wire 14 + 14, 7, 15 ! Plane X, wire 15 + 15, 7, 16 ! Plane X, wire 16 + 16, 7, 17 ! Plane X, wire 17 + 17, 7, 18 ! Plane X, wire 18 + 18, 7, 19 ! Plane X, wire 19 + 19, 7, 20 ! Plane X, wire 20 + 20, 7, 21 ! Plane X, wire 21 + 21, 7, 22 ! Plane X, wire 22 + 22, 7, 23 ! Plane X, wire 23 + 23, 7, 24 ! Plane X, wire 24 + 24, 7, 25 ! Plane X, wire 25 + 25, 7, 26 ! Plane X, wire 26 + 26, 7, 27 ! Plane X, wire 27 + 27, 7, 28 ! Plane X, wire 28 + 28, 7, 29 ! Plane X, wire 29 + 29, 7, 30 ! Plane X, wire 30 + 30, 7, 31 ! Plane X, wire 31 + 31, 7, 32 ! Plane X, wire 32 + 32, 7, 33 ! Plane X, wire 33 + 33, 7, 34 ! Plane X, wire 34 + 34, 7, 35 ! Plane X, wire 35 + 35, 7, 36 ! Plane X, wire 36 + 36, 7, 37 ! Plane X, wire 37 + 37, 7, 38 ! Plane X, wire 38 + 38, 7, 39 ! Plane X, wire 39 + 39, 7, 40 ! Plane X, wire 40 + 40, 7, 41 ! Plane X, wire 41 + 41, 7, 42 ! Plane X, wire 42 + 42, 7, 43 ! Plane X, wire 43 + 43, 7, 44 ! Plane X, wire 44 + 44, 7, 45 ! Plane X, wire 45 + 45, 7, 46 ! Plane X, wire 46 + 46, 7, 47 ! Plane X, wire 47 + 47, 7, 48 ! Plane X, wire 48 + 48, 7, 49 ! Plane X, wire 49 + 49, 7, 50 ! Plane X, wire 50 + 50, 7, 51 ! Plane X, wire 51 + 51, 7, 52 ! Plane X, wire 52 + 52, 7, 53 ! Plane X, wire 53 + 53, 7, 54 ! Plane X, wire 54 + 54, 7, 55 ! Plane X, wire 55 + 55, 7, 56 ! Plane X, wire 56 + 56, 7, 57 ! Plane X, wire 57 + 57, 7, 58 ! Plane X, wire 58 + 58, 7, 59 ! Plane X, wire 59 + 59, 7, 60 ! Plane X, wire 60 + 60, 7, 61 ! Plane X, wire 61 + 61, 7, 62 ! Plane X, wire 62 + 62, 7, 63 ! Plane X, wire 63 + 63, 7, 64 ! Plane X, wire 64 + 64, 7, 65 ! Plane X, wire 65 + 65, 7, 66 ! Plane X, wire 66 + 66, 7, 67 ! Plane X, wire 67 + 67, 7, 68 ! Plane X, wire 68 + 68, 7, 69 ! Plane X, wire 69 + 69, 7, 70 ! Plane X, wire 70 + 70, 7, 71 ! Plane X, wire 71 + 71, 7, 72 ! Plane X, wire 72 + 72, 7, 73 ! Plane X, wire 73 + 73, 7, 74 ! Plane X, wire 74 + 74, 7, 75 ! Plane X, wire 75 + 75, 7, 76 ! Plane X, wire 76 + 76, 7, 77 ! Plane X, wire 77 + 77, 7, 78 ! Plane X, wire 78 + 78, 7, 79 ! Plane X, wire 79 + 79, 7, 80 ! Plane X, wire 80 + 80, 7, 81 ! Plane X, wire 81 + 81, 7, 82 ! Plane X, wire 82 + 82, 7, 83 ! Plane X, wire 83 + 83, 7, 84 ! Plane X, wire 84 + 84, 7, 85 ! Plane X, wire 85 + 85, 7, 86 ! Plane X, wire 86 + 86, 7, 87 ! Plane X, wire 87 + 87, 7, 88 ! Plane X, wire 88 + 88, 7, 89 ! Plane X, wire 89 + 89, 7, 90 ! Plane X, wire 90 + 90, 7, 91 ! Plane X, wire 91 + 91, 7, 92 ! Plane X, wire 92 + 92, 7, 93 ! Plane X, wire 93 + 93, 7, 94 ! Plane X, wire 94 + 94, 7, 95 ! Plane X, wire 95 + 95, 7, 96 ! Plane X, wire 96 + 96, 7, 97 ! Plane X, wire 97 + 97, 7, 98 ! Plane X, wire 98 + 98, 7, 99 ! Plane X, wire 99 + 99, 7, 100 ! Plane X, wire 100 + 100, 7, 101 ! Plane X, wire 101 + 101, 7, 102 ! Plane X, wire 102 + 102, 7, 103 ! Plane X, wire 103 + 103, 7, 104 ! Plane X, wire 104 + 104, 7, 105 ! Plane X, wire 105 + 105, 7, 106 ! Plane X, wire 106 + 106, 7, 107 ! Plane X, wire 107 + 107, 7, 108 ! Plane X, wire 108 + 108, 7, 109 ! Plane X, wire 109 + 109, 7, 110 ! Plane X, wire 110 + 110, 7, 111 ! Plane X, wire 111 + 111, 7, 112 ! Plane X, wire 112 + 112, 12, 1 ! Plane X', wire 1 + 113, 12, 2 ! Plane X', wire 2 + 114, 12, 3 ! Plane X', wire 3 + 115, 12, 4 ! Plane X', wire 4 + 116, 12, 5 ! Plane X', wire 5 + 117, 12, 6 ! Plane X', wire 6 + 118, 12, 7 ! Plane X', wire 7 + 119, 12, 8 ! Plane X', wire 8 + 120, 12, 9 ! Plane X', wire 9 + 121, 12, 10 ! Plane X', wire 10 + 122, 12, 11 ! Plane X', wire 11 + 123, 12, 12 ! Plane X', wire 12 + 124, 12, 13 ! Plane X', wire 13 + 125, 12, 14 ! Plane X', wire 14 + 126, 12, 15 ! Plane X', wire 15 + 127, 12, 16 ! Plane X', wire 16 + +SLOT=14 +REFINDEX=0 + 16, 12, 17 ! Plane X', wire 17 + 17, 12, 18 ! Plane X', wire 18 + 18, 12, 19 ! Plane X', wire 19 + 19, 12, 20 ! Plane X', wire 20 + 20, 12, 21 ! Plane X', wire 21 + 21, 12, 22 ! Plane X', wire 22 + 22, 12, 23 ! Plane X', wire 23 + 23, 12, 24 ! Plane X', wire 24 + 24, 12, 25 ! Plane X', wire 25 + 25, 12, 26 ! Plane X', wire 26 + 26, 12, 27 ! Plane X', wire 27 + 27, 12, 28 ! Plane X', wire 28 + 28, 12, 29 ! Plane X', wire 29 + 29, 12, 30 ! Plane X', wire 30 + 30, 12, 31 ! Plane X', wire 31 + 31, 12, 32 ! Plane X', wire 32 + +SLOT=16 +REFINDEX=0 + 0, 12, 33 ! Plane X', wire 33 + 1, 12, 34 ! Plane X', wire 34 + 2, 12, 35 ! Plane X', wire 35 + 3, 12, 36 ! Plane X', wire 36 + 4, 12, 37 ! Plane X', wire 37 + 5, 12, 38 ! Plane X', wire 38 + 6, 12, 39 ! Plane X', wire 39 + 7, 12, 40 ! Plane X', wire 40 + 8, 12, 41 ! Plane X', wire 41 + 9, 12, 42 ! Plane X', wire 42 + 10, 12, 43 ! Plane X', wire 43 + 11, 12, 44 ! Plane X', wire 44 + 12, 12, 45 ! Plane X', wire 45 + 13, 12, 46 ! Plane X', wire 46 + 14, 12, 47 ! Plane X', wire 47 + 15, 12, 48 ! Plane X', wire 48 + 16, 12, 49 ! Plane X', wire 49 + 17, 12, 50 ! Plane X', wire 50 + 18, 12, 51 ! Plane X', wire 51 + 19, 12, 52 ! Plane X', wire 52 + 20, 12, 53 ! Plane X', wire 53 + 21, 12, 54 ! Plane X', wire 54 + 22, 12, 55 ! Plane X', wire 55 + 23, 12, 56 ! Plane X', wire 56 + 24, 12, 57 ! Plane X', wire 57 + 25, 12, 58 ! Plane X', wire 58 + 26, 12, 59 ! Plane X', wire 59 + 27, 12, 60 ! Plane X', wire 60 + 28, 12, 61 ! Plane X', wire 61 + 29, 12, 62 ! Plane X', wire 62 + 30, 12, 63 ! Plane X', wire 63 + 31, 12, 64 ! Plane X', wire 64 + 32, 12, 65 ! Plane X', wire 65 + 33, 12, 66 ! Plane X', wire 66 + 34, 12, 67 ! Plane X', wire 67 + 35, 12, 68 ! Plane X', wire 68 + 36, 12, 69 ! Plane X', wire 69 + 37, 12, 70 ! Plane X', wire 70 + 38, 12, 71 ! Plane X', wire 71 + 39, 12, 72 ! Plane X', wire 72 + 40, 12, 73 ! Plane X', wire 73 + 41, 12, 74 ! Plane X', wire 74 + 42, 12, 75 ! Plane X', wire 75 + 43, 12, 76 ! Plane X', wire 76 + 44, 12, 77 ! Plane X', wire 77 + 45, 12, 78 ! Plane X', wire 78 + 46, 12, 79 ! Plane X', wire 79 + 47, 12, 80 ! Plane X', wire 80 + 48, 12, 81 ! Plane X', wire 81 + 49, 12, 82 ! Plane X', wire 82 + 50, 12, 83 ! Plane X', wire 83 + 51, 12, 84 ! Plane X', wire 84 + 52, 12, 85 ! Plane X', wire 85 + 53, 12, 86 ! Plane X', wire 86 + 54, 12, 87 ! Plane X', wire 87 + 55, 12, 88 ! Plane X', wire 88 + 56, 12, 89 ! Plane X', wire 89 + 57, 12, 90 ! Plane X', wire 90 + 58, 12, 91 ! Plane X', wire 91 + 59, 12, 92 ! Plane X', wire 92 + 60, 12, 93 ! Plane X', wire 93 + 61, 12, 94 ! Plane X', wire 94 + 62, 12, 95 ! Plane X', wire 95 + 63, 12, 96 ! Plane X', wire 96 + 64, 12, 97 ! Plane X', wire 97 + 65, 12, 98 ! Plane X', wire 98 + 66, 12, 99 ! Plane X', wire 99 + 67, 12, 100 ! Plane X', wire 100 + 68, 12, 101 ! Plane X', wire 101 + 69, 12, 102 ! Plane X', wire 102 + 70, 12, 103 ! Plane X', wire 103 + 71, 12, 104 ! Plane X', wire 104 + 72, 12, 105 ! Plane X', wire 105 + 73, 12, 106 ! Plane X', wire 106 + 74, 12, 107 ! Plane X', wire 107 + 75, 12, 108 ! Plane X', wire 108 + 76, 12, 109 ! Plane X', wire 109 + 77, 12, 110 ! Plane X', wire 110 + 78, 12, 111 ! Plane X', wire 111 + 79, 12, 112 ! Plane X', wire 112 + +SLOT=17 +REFINDEX=0 + 64, 8, 1 ! Plane Y, wire 1 + 65, 8, 2 ! Plane Y, wire 2 + 66, 8, 3 ! Plane Y, wire 3 + 67, 8, 4 ! Plane Y, wire 4 + 68, 8, 5 ! Plane Y, wire 5 + 69, 8, 6 ! Plane Y, wire 6 + 70, 8, 7 ! Plane Y, wire 7 + 71, 8, 8 ! Plane Y, wire 8 + 72, 8, 9 ! Plane Y, wire 9 + 73, 8, 10 ! Plane Y, wire 10 + 74, 8, 11 ! Plane Y, wire 11 + 75, 8, 12 ! Plane Y, wire 12 + 76, 8, 13 ! Plane Y, wire 13 + 80, 8, 14 ! Plane Y, wire 14 + 81, 8, 15 ! Plane Y, wire 15 + 82, 8, 16 ! Plane Y, wire 16 + 83, 8, 17 ! Plane Y, wire 17 + 84, 8, 18 ! Plane Y, wire 18 + 85, 8, 19 ! Plane Y, wire 19 + 86, 8, 20 ! Plane Y, wire 20 + 87, 8, 21 ! Plane Y, wire 21 + 88, 8, 22 ! Plane Y, wire 22 + 89, 8, 23 ! Plane Y, wire 23 + 90, 8, 24 ! Plane Y, wire 24 + 91, 8, 25 ! Plane Y, wire 25 + 92, 8, 26 ! Plane Y, wire 26 + 96, 8, 27 ! Plane Y, wire 27 + 97, 8, 28 ! Plane Y, wire 28 + 98, 8, 29 ! Plane Y, wire 29 + 99, 8, 30 ! Plane Y, wire 30 + 100, 8, 31 ! Plane Y, wire 31 + 101, 8, 32 ! Plane Y, wire 32 + 102, 8, 33 ! Plane Y, wire 33 + 103, 8, 34 ! Plane Y, wire 34 + 104, 8, 35 ! Plane Y, wire 35 + 105, 8, 36 ! Plane Y, wire 36 + 106, 8, 37 ! Plane Y, wire 37 + 107, 8, 38 ! Plane Y, wire 38 + 108, 8, 39 ! Plane Y, wire 39 + 112, 8, 40 ! Plane Y, wire 40 + 113, 8, 41 ! Plane Y, wire 41 + 114, 8, 42 ! Plane Y, wire 42 + 115, 8, 43 ! Plane Y, wire 43 + 116, 8, 44 ! Plane Y, wire 44 + 117, 8, 45 ! Plane Y, wire 45 + 118, 8, 46 ! Plane Y, wire 46 + 119, 8, 47 ! Plane Y, wire 47 + 120, 8, 48 ! Plane Y, wire 48 + 121, 8, 49 ! Plane Y, wire 49 + 122, 8, 50 ! Plane Y, wire 50 + 123, 8, 51 ! Plane Y, wire 51 + 124, 8, 52 ! Plane Y, wire 52 + +SLOT=10 +REFINDEX=0 + 127,1000, 0, 1 + 64, 11, 1 ! Plane Y', wire 1 + 65, 11, 2 ! Plane Y', wire 2 + 66, 11, 3 ! Plane Y', wire 3 + 67, 11, 4 ! Plane Y', wire 4 + 68, 11, 5 ! Plane Y', wire 5 + 69, 11, 6 ! Plane Y', wire 6 + 70, 11, 7 ! Plane Y', wire 7 + 71, 11, 8 ! Plane Y', wire 8 + 72, 11, 9 ! Plane Y', wire 9 + 73, 11, 10 ! Plane Y', wire 10 + 74, 11, 11 ! Plane Y', wire 11 + 75, 11, 12 ! Plane Y', wire 12 + 76, 11, 13 ! Plane Y', wire 13 + 80, 11, 14 ! Plane Y', wire 14 + 81, 11, 15 ! Plane Y', wire 15 + 82, 11, 16 ! Plane Y', wire 16 + 83, 11, 17 ! Plane Y', wire 17 + 84, 11, 18 ! Plane Y', wire 18 + 85, 11, 19 ! Plane Y', wire 19 + 86, 11, 20 ! Plane Y', wire 20 + 87, 11, 21 ! Plane Y', wire 21 + 88, 11, 22 ! Plane Y', wire 22 + 89, 11, 23 ! Plane Y', wire 23 + 90, 11, 24 ! Plane Y', wire 24 + 91, 11, 25 ! Plane Y', wire 25 + 92, 11, 26 ! Plane Y', wire 26 + 96, 11, 27 ! Plane Y', wire 27 + 97, 11, 28 ! Plane Y', wire 28 + 98, 11, 29 ! Plane Y', wire 29 + 99, 11, 30 ! Plane Y', wire 30 + 100, 11, 31 ! Plane Y', wire 31 + 101, 11, 32 ! Plane Y', wire 32 + 102, 11, 33 ! Plane Y', wire 33 + 103, 11, 34 ! Plane Y', wire 34 + 104, 11, 35 ! Plane Y', wire 35 + 105, 11, 36 ! Plane Y', wire 36 + 106, 11, 37 ! Plane Y', wire 37 + 107, 11, 38 ! Plane Y', wire 38 + 108, 11, 39 ! Plane Y', wire 39 + 112, 11, 40 ! Plane Y', wire 40 + 113, 11, 41 ! Plane Y', wire 41 + 114, 11, 42 ! Plane Y', wire 42 + 115, 11, 43 ! Plane Y', wire 43 + 116, 11, 44 ! Plane Y', wire 44 + 117, 11, 45 ! Plane Y', wire 45 + 118, 11, 46 ! Plane Y', wire 46 + 119, 11, 47 ! Plane Y', wire 47 + 120, 11, 48 ! Plane Y', wire 48 + 121, 11, 49 ! Plane Y', wire 49 + 122, 11, 50 ! Plane Y', wire 50 + 123, 11, 51 ! Plane Y', wire 51 + 124, 11, 52 ! Plane Y', wire 52 diff --git a/MAPS/HMS/DETEC/hhodo.map b/MAPS/HMS/DETEC/hhodo.map index 2a99b3eb..698489c2 100644 --- a/MAPS/HMS/DETEC/hhodo.map +++ b/MAPS/HMS/DETEC/hhodo.map @@ -115,17 +115,19 @@ SLOT=15 15, 4, 2, 1! h2y02A- SLOT=16 ! chan plane bar sig - 0, 4, 10, 1! h2y10A- - 1, 4, 9, 1! h2y09A- - 2, 4, 8, 1! h2y08A- - 3, 4, 7, 1! h2y07A- - 4, 4, 6, 1! h2y06A- - 5, 4, 5, 1! h2y05A- - 6, 4, 4, 1! h2y04A- - 7, 4, 3, 1! h2y03A- + 0, 4, 3, 1! h2y03A- + 1, 4, 4, 1! h2y04A- + 2, 4, 5, 1! h2y05A- + 3, 4, 6, 1! h2y06A- + 4, 4, 7, 1! h2y07A- + 5, 4, 8, 1! h2y08A- + 6, 4, 9, 1! h2y09A- + 7, 4, 10, 1! h2y10A- ! Caen 1190 module SLOT=20 +REFINDEX=0 + 127,1000, 0, 0 ! A0 ! chan plane bar sig 0, 1, 1, 2! h1x01T+ diff --git a/MAPS/HMS/DETEC/hhodo_htrig.map b/MAPS/HMS/DETEC/hhodo_htrig.map new file mode 100644 index 00000000..9d28bae5 --- /dev/null +++ b/MAPS/HMS/DETEC/hhodo_htrig.map @@ -0,0 +1,283 @@ +! THMS_ID=10 :: ADC,TDC +! HSCIN_ID=13 :: ADC,TDC + + +DETECTOR=10 + +ROC=1 + +SLOT=17 + 8, 1, 1, 0 ! hASUM + 9, 1, 2, 0 ! hBSUM + 10, 1, 3, 0 ! hCSUM + 11, 1, 4, 0 ! hDSUM + 12, 1, 5, 0 ! hPSHWR + 13, 1, 6, 0 ! hSHWR + 14, 1, 7, 0 ! hAERSUM + 15, 1, 8, 0 ! hCERSUM + +SLOT=2 + 0, 2, 1, 1 ! h1X + 1, 2, 2, 1 ! h1Y + 2, 2, 3, 1 ! h2X + 3, 2, 4, 1 ! h2Y + 4, 2, 5, 1 ! h1T + 5, 2, 6, 1 ! h2T + 6, 2, 7, 1 ! hT1 + 7, 2, 8, 1 ! hASUM + 8, 2, 9, 1 ! hBSUM + 9, 2, 10, 1 ! hCSUM + 10, 2, 11, 1 ! hDSUM + 11, 2, 12, 1 ! hPSHWRLO + 12, 2, 13, 1 ! hPSHWRHI + 13, 2, 14, 1 ! hSHWR + 14, 2, 15, 1 ! hAERSUM + 15, 2, 16, 1 ! hCERSUM + +SLOT=20 + 127, 2, 17, 1 ! hT2 + +ROC=3 + +SLOT=5 + 111, 2, 18, 1 ! hDCREF1 + +SLOT=8 + 127, 2, 19, 1 ! hDCREF2 + +SLOT=10 + 127, 2, 20, 1 ! hDCREF3 + +SLOT=17 + 127, 2, 21, 1 ! hDCREF4 + + +DETECTOR=13 + +ROC=1 + +SLOT=8 + 0, 1, 1, 0 ! h1x01A+ + 1, 1, 2, 0 ! h1x02A+ + 2, 1, 3, 0 ! h1x03A+ + 3, 1, 4, 0 ! h1x04A+ + 4, 1, 5, 0 ! h1x05A+ + 5, 1, 6, 0 ! h1x06A+ + 6, 1, 7, 0 ! h1x07A+ + 7, 1, 8, 0 ! h1x08A+ + 8, 1, 9, 0 ! h1x09A+ + 9, 1, 10, 0 ! h1x10A+ + 10, 1, 11, 0 ! h1x11A+ + 11, 1, 12, 0 ! h1x12A+ + 12, 1, 13, 0 ! h1x13A+ + 13, 1, 14, 0 ! h1x14A+ + 14, 1, 15, 0 ! h1x15A+ + 15, 1, 16, 0 ! h1x16A+ + +SLOT=9 + 0, 1, 1, 1 ! h1x01A- + 1, 1, 2, 1 ! h1x02A- + 2, 1, 3, 1 ! h1x03A- + 3, 1, 4, 1 ! h1x04A- + 4, 1, 5, 1 ! h1x05A- + 5, 1, 6, 1 ! h1x06A- + 6, 1, 7, 1 ! h1x07A- + 7, 1, 8, 1 ! h1x08A- + 8, 1, 9, 1 ! h1x09A- + 9, 1, 10, 1 ! h1x10A- + 10, 1, 11, 1 ! h1x11A- + 11, 1, 12, 1 ! h1x12A- + 12, 1, 13, 1 ! h1x13A- + 13, 1, 14, 1 ! h1x14A- + 14, 1, 15, 1 ! h1x15A- + 15, 1, 16, 1 ! h1x16A- + +SLOT=10 + 0, 2, 1, 0 ! h1y01A+ + 1, 2, 2, 0 ! h1y02A+ + 2, 2, 3, 0 ! h1y03A+ + 3, 2, 4, 0 ! h1y04A+ + 4, 2, 5, 0 ! h1y05A+ + 5, 2, 6, 0 ! h1y06A+ + 6, 2, 7, 0 ! h1y07A+ + 7, 2, 8, 0 ! h1y08A+ + 8, 2, 9, 0 ! h1y09A+ + 9, 2, 10, 0 ! h1y10A+ + 10, 2, 1, 1 ! h1y01A- + 11, 2, 2, 1 ! h1y02A- + 12, 2, 3, 1 ! h1y03A- + 13, 2, 4, 1 ! h1y04A- + 14, 2, 5, 1 ! h1y05A- + 15, 2, 6, 1 ! h1y06A- + +SLOT=13 + 0, 2, 7, 1 ! h1y07A- + 1, 2, 8, 1 ! h1y08A- + 2, 2, 9, 1 ! h1y09A- + 3, 2, 10, 1 ! h1y10A- + 4, 3, 1, 0 ! h2x01A+ + 5, 3, 2, 0 ! h2x02A+ + 6, 3, 3, 0 ! h2x03A+ + 7, 3, 4, 0 ! h2x04A+ + 8, 3, 5, 0 ! h2x05A+ + 9, 3, 6, 0 ! h2x06A+ + 10, 3, 7, 0 ! h2x07A+ + 11, 3, 8, 0 ! h2x08A+ + 12, 3, 9, 0 ! h2x09A+ + 13, 3, 10, 0 ! h2x10A+ + 14, 3, 11, 0 ! h2x11A+ + 15, 3, 12, 0 ! h2x12A+ + +SLOT=14 + 0, 3, 13, 0 ! h2x13A+ + 1, 3, 14, 0 ! h2x14A+ + 2, 3, 15, 0 ! h2x15A+ + 3, 3, 16, 0 ! h2x16A+ + 4, 3, 1, 1 ! h2x01A- + 5, 3, 2, 1 ! h2x02A- + 6, 3, 3, 1 ! h2x03A- + 7, 3, 4, 1 ! h2x04A- + 8, 3, 5, 1 ! h2x05A- + 9, 3, 6, 1 ! h2x06A- + 10, 3, 7, 1 ! h2x07A- + 11, 3, 8, 1 ! h2x08A- + 12, 3, 9, 1 ! h2x09A- + 13, 3, 10, 1 ! h2x10A- + 14, 3, 11, 1 ! h2x11A- + 15, 3, 12, 1 ! h2x12A- + +SLOT=15 + 0, 3, 13, 1 ! h2x13A- + 1, 3, 14, 1 ! h2x14A- + 2, 3, 15, 1 ! h2x15A- + 3, 3, 16, 1 ! h2x16A- + 4, 4, 1, 0 ! h2y01A+ + 5, 4, 2, 0 ! h2y02A+ + 6, 4, 3, 0 ! h2y03A+ + 7, 4, 4, 0 ! h2y04A+ + 8, 4, 5, 0 ! h2y05A+ + 9, 4, 6, 0 ! h2y06A+ + 10, 4, 7, 0 ! h2y07A+ + 11, 4, 8, 0 ! h2y08A+ + 12, 4, 9, 0 ! h2y09A+ + 13, 4, 10, 0 ! h2y10A+ + 14, 4, 1, 1 ! h2y01A- + 15, 4, 2, 1 ! h2y02A- + +SLOT=16 + 0, 4, 3, 1 ! h2y03A- + 1, 4, 4, 1 ! h2y04A- + 2, 4, 5, 1 ! h2y05A- + 3, 4, 6, 1 ! h2y06A- + 4, 4, 7, 1 ! h2y07A- + 5, 4, 8, 1 ! h2y08A- + 6, 4, 9, 1 ! h2y09A- + 7, 4, 10, 1 ! h2y10A- + +SLOT=20 +REFINDEX=0 + 127,1000, 0, 0 + 0, 1, 1, 2 ! h1x01T+ + 1, 1, 3, 2 ! h1x03T+ + 2, 1, 5, 2 ! h1x05T+ + 3, 1, 7, 2 ! h1x07T+ + 4, 1, 2, 2 ! h1x02T+ + 5, 1, 4, 2 ! h1x04T+ + 6, 1, 6, 2 ! h1x06T+ + 7, 1, 8, 2 ! h1x08T+ + 8, 1, 9, 2 ! h1x09T+ + 9, 1, 11, 2 ! h1x11T+ + 10, 1, 13, 2 ! h1x13T+ + 11, 1, 15, 2 ! h1x15T+ + 12, 1, 10, 2 ! h1x10T+ + 13, 1, 12, 2 ! h1x12T+ + 14, 1, 14, 2 ! h1x14T+ + 15, 1, 16, 2 ! h1x16T+ + 16, 1, 1, 3 ! h1x01T- + 17, 1, 3, 3 ! h1x03T- + 18, 1, 5, 3 ! h1x05T- + 19, 1, 7, 3 ! h1x07T- + 20, 1, 2, 3 ! h1x02T- + 21, 1, 4, 3 ! h1x04T- + 22, 1, 6, 3 ! h1x06T- + 23, 1, 8, 3 ! h1x08T- + 24, 1, 9, 3 ! h1x09T- + 25, 1, 11, 3 ! h1x11T- + 26, 1, 13, 3 ! h1x13T- + 27, 1, 15, 3 ! h1x15T- + 28, 1, 10, 3 ! h1x10T- + 29, 1, 12, 3 ! h1x12T- + 30, 1, 14, 3 ! h1x14T- + 31, 1, 16, 3 ! h1x16T- + 32, 2, 1, 2 ! h1y01T+ + 33, 2, 3, 2 ! h1y03T+ + 34, 2, 5, 2 ! h1y05T+ + 35, 2, 7, 2 ! h1y07T+ + 36, 2, 2, 2 ! h1y02T+ + 37, 2, 4, 2 ! h1y04T+ + 38, 2, 6, 2 ! h1y06T+ + 39, 2, 8, 2 ! h1y08T+ + 40, 2, 9, 2 ! h1y09T+ + 44, 2, 10, 2 ! h1y10T+ + 48, 2, 1, 3 ! h1y01T- + 49, 2, 3, 3 ! h1y03T- + 50, 2, 5, 3 ! h1y05T- + 51, 2, 7, 3 ! h1y07T- + 52, 2, 2, 3 ! h1y02T- + 53, 2, 4, 3 ! h1y04T- + 54, 2, 6, 3 ! h1y06T- + 55, 2, 8, 3 ! h1y08T- + 56, 2, 9, 3 ! h1y09T- + 60, 2, 10, 3 ! h1y10T- + 64, 3, 1, 2 ! h2x01T+ + 65, 3, 3, 2 ! h2x03T+ + 66, 3, 5, 2 ! h2x05T+ + 67, 3, 7, 2 ! h2x07T+ + 68, 3, 2, 2 ! h2x02T+ + 69, 3, 4, 2 ! h2x04T+ + 70, 3, 6, 2 ! h2x06T+ + 71, 3, 8, 2 ! h2x08T+ + 72, 3, 9, 2 ! h2x09T+ + 73, 3, 11, 2 ! h2x11T+ + 74, 3, 13, 2 ! h2x13T+ + 75, 3, 15, 2 ! h2x15T+ + 76, 3, 10, 2 ! h2x10T+ + 77, 3, 12, 2 ! h2x12T+ + 78, 3, 14, 2 ! h2x14T+ + 79, 3, 16, 2 ! h2x16T+ + 80, 3, 1, 3 ! h2x01T- + 81, 3, 3, 3 ! h2x03T- + 82, 3, 5, 3 ! h2x05T- + 83, 3, 7, 3 ! h2x07T- + 84, 3, 2, 3 ! h2x02T- + 85, 3, 4, 3 ! h2x04T- + 86, 3, 6, 3 ! h2x06T- + 87, 3, 8, 3 ! h2x08T- + 88, 3, 9, 3 ! h2x09T- + 89, 3, 11, 3 ! h2x11T- + 90, 3, 13, 3 ! h2x13T- + 91, 3, 15, 3 ! h2x15T- + 92, 3, 10, 3 ! h2x10T- + 93, 3, 12, 3 ! h2x12T- + 94, 3, 14, 3 ! h2x14T- + 95, 3, 16, 3 ! h2x16T- + 96, 4, 1, 2 ! h2y01T+ + 97, 4, 3, 2 ! h2y03T+ + 98, 4, 5, 2 ! h2y05T+ + 99, 4, 7, 2 ! h2y07T+ + 100, 4, 2, 2 ! h2y02T+ + 101, 4, 4, 2 ! h2y04T+ + 102, 4, 6, 2 ! h2y06T+ + 103, 4, 8, 2 ! h2y08T+ + 104, 4, 9, 2 ! h2y09T+ + 108, 4, 10, 2 ! h2y10T+ + 112, 4, 1, 3 ! h2y01T- + 113, 4, 3, 3 ! h2y03T- + 114, 4, 5, 3 ! h2y05T- + 115, 4, 7, 3 ! h2y07T- + 116, 4, 2, 3 ! h2y02T- + 117, 4, 4, 3 ! h2y04T- + 118, 4, 6, 3 ! h2y06T- + 119, 4, 8, 3 ! h2y08T- + 120, 4, 9, 3 ! h2y09T- + 124, 4, 10, 3 ! h2y10T- diff --git a/MAPS/HMS/DETEC/hms_stack.map b/MAPS/HMS/DETEC/hms_stack.map new file mode 100644 index 00000000..1547c7c6 --- /dev/null +++ b/MAPS/HMS/DETEC/hms_stack.map @@ -0,0 +1,1546 @@ +! THMS_ID=10 :: ADC,TDC +! HDC_ID=11 :: TDC +! HSCIN_ID=13 :: ADC+,ADC-,TDC+,TDC- +! HCER_ID=14 :: (TDC),ADC +! HCAL_ID=15 :: ADC + + +DETECTOR=10 + +ROC=1 + +SLOT=17 + 8, 1, 1, 0 ! hASUM + 9, 1, 2, 0 ! hBSUM + 10, 1, 3, 0 ! hCSUM + 11, 1, 4, 0 ! hDSUM + 12, 1, 5, 0 ! hPSHWR + 13, 1, 6, 0 ! hSHWR + 14, 1, 7, 0 ! hAERSUM + 15, 1, 8, 0 ! hCERSUM + +SLOT=2 + 0, 2, 1, 1 ! h1X + 1, 2, 2, 1 ! h1Y + 2, 2, 3, 1 ! h2X + 3, 2, 4, 1 ! h2Y + 4, 2, 5, 1 ! h1T + 5, 2, 6, 1 ! h2T + 6, 2, 7, 1 ! hT1 + 7, 2, 8, 1 ! hASUM + 8, 2, 9, 1 ! hBSUM + 9, 2, 10, 1 ! hCSUM + 10, 2, 11, 1 ! hDSUM + 11, 2, 12, 1 ! hPSHWRLO + 12, 2, 13, 1 ! hPSHWRHI + 13, 2, 14, 1 ! hSHWR + 14, 2, 15, 1 ! hAERSUM + 15, 2, 16, 1 ! hCERSUM + +SLOT=20 + 127, 2, 17, 1 ! hT2 + +ROC=3 + +SLOT=5 + 111, 2, 18, 1 ! hDCREF1 + +SLOT=8 + 127, 2, 19, 1 ! hDCREF2 + +SLOT=10 + 127, 2, 20, 1 ! hDCREF3 + +SLOT=17 + 127, 2, 21, 1 ! hDCREF4 + + +DETECTOR=11 ! HMS chambers + +ROC=3 + +SLOT=5 +REFINDEX=0 + 111,1000, 0, 0 + 96, 3, 1 ! Plane U, wire 1 + 97, 3, 2 ! Plane U, wire 2 + 98, 3, 3 ! Plane U, wire 3 + 99, 3, 4 ! Plane U, wire 4 + 100, 3, 5 ! Plane U, wire 5 + 101, 3, 6 ! Plane U, wire 6 + 102, 3, 7 ! Plane U, wire 7 + 103, 3, 8 ! Plane U, wire 8 + 104, 3, 9 ! Plane U, wire 9 + 105, 3, 10 ! Plane U, wire 10 + 106, 3, 11 ! Plane U, wire 11 + 107, 3, 12 ! Plane U, wire 12 + 108, 3, 13 ! Plane U, wire 13 + 109, 3, 14 ! Plane U, wire 14 + 110, 1, 113 ! Plane X, wire 113 + 80, 3, 15 ! Plane U, wire 15 + 81, 3, 16 ! Plane U, wire 16 + 82, 3, 17 ! Plane U, wire 17 + 83, 3, 18 ! Plane U, wire 18 + 84, 3, 19 ! Plane U, wire 19 + 85, 3, 20 ! Plane U, wire 20 + 86, 3, 21 ! Plane U, wire 21 + 87, 3, 22 ! Plane U, wire 22 + 88, 3, 23 ! Plane U, wire 23 + 89, 3, 24 ! Plane U, wire 24 + 90, 3, 25 ! Plane U, wire 25 + 91, 3, 26 ! Plane U, wire 26 + 92, 3, 27 ! Plane U, wire 27 + 93, 3, 28 ! Plane U, wire 28 + 94, 3, 29 ! Plane U, wire 29 + 64, 3, 30 ! Plane U, wire 30 + 65, 3, 31 ! Plane U, wire 31 + 66, 3, 32 ! Plane U, wire 32 + 67, 3, 33 ! Plane U, wire 33 + 68, 3, 34 ! Plane U, wire 34 + 69, 3, 35 ! Plane U, wire 35 + 70, 3, 36 ! Plane U, wire 36 + 71, 3, 37 ! Plane U, wire 37 + 72, 3, 38 ! Plane U, wire 38 + 73, 3, 39 ! Plane U, wire 39 + 74, 3, 40 ! Plane U, wire 40 + 75, 3, 41 ! Plane U, wire 41 + 76, 3, 42 ! Plane U, wire 42 + 77, 3, 43 ! Plane U, wire 43 + 78, 3, 44 ! Plane U, wire 44 + 79, 3, 45 ! Plane U, wire 45 + 48, 3, 46 ! Plane U, wire 46 + 49, 3, 47 ! Plane U, wire 47 + 50, 3, 48 ! Plane U, wire 48 + 51, 3, 49 ! Plane U, wire 49 + 52, 3, 50 ! Plane U, wire 50 + 53, 3, 51 ! Plane U, wire 51 + 54, 3, 52 ! Plane U, wire 52 + 55, 3, 53 ! Plane U, wire 53 + 56, 3, 54 ! Plane U, wire 54 + 57, 3, 55 ! Plane U, wire 55 + 58, 3, 56 ! Plane U, wire 56 + 59, 3, 57 ! Plane U, wire 57 + 60, 3, 58 ! Plane U, wire 58 + 61, 3, 59 ! Plane U, wire 59 + 62, 3, 60 ! Plane U, wire 60 + 32, 3, 61 ! Plane U, wire 61 + 33, 3, 62 ! Plane U, wire 62 + 34, 3, 63 ! Plane U, wire 63 + 35, 3, 64 ! Plane U, wire 64 + 36, 3, 65 ! Plane U, wire 65 + 37, 3, 66 ! Plane U, wire 66 + 38, 3, 67 ! Plane U, wire 67 + 39, 3, 68 ! Plane U, wire 68 + 40, 3, 69 ! Plane U, wire 69 + 41, 3, 70 ! Plane U, wire 70 + 42, 3, 71 ! Plane U, wire 71 + 43, 3, 72 ! Plane U, wire 72 + 44, 3, 73 ! Plane U, wire 73 + 45, 3, 74 ! Plane U, wire 74 + 46, 3, 75 ! Plane U, wire 75 + 47, 3, 76 ! Plane U, wire 76 + 16, 3, 77 ! Plane U, wire 77 + 17, 3, 78 ! Plane U, wire 78 + 18, 3, 79 ! Plane U, wire 79 + 19, 3, 80 ! Plane U, wire 80 + 20, 3, 81 ! Plane U, wire 81 + 21, 3, 82 ! Plane U, wire 82 + 22, 3, 83 ! Plane U, wire 83 + 23, 3, 84 ! Plane U, wire 84 + 24, 3, 85 ! Plane U, wire 85 + 25, 3, 86 ! Plane U, wire 86 + 26, 3, 87 ! Plane U, wire 87 + 27, 3, 88 ! Plane U, wire 88 + 28, 3, 89 ! Plane U, wire 89 + 29, 3, 90 ! Plane U, wire 90 + 30, 3, 91 ! Plane U, wire 91 + 0, 3, 92 ! Plane U, wire 92 + 1, 3, 93 ! Plane U, wire 93 + 2, 3, 94 ! Plane U, wire 94 + 3, 3, 95 ! Plane U, wire 95 + 4, 3, 96 ! Plane U, wire 96 + 5, 3, 97 ! Plane U, wire 97 + 6, 3, 98 ! Plane U, wire 98 + 7, 3, 99 ! Plane U, wire 99 + 8, 3, 100 ! Plane U, wire 100 + 9, 3, 101 ! Plane U, wire 101 + 10, 3, 102 ! Plane U, wire 102 + 11, 3, 103 ! Plane U, wire 103 + 12, 3, 104 ! Plane U, wire 104 + 13, 3, 105 ! Plane U, wire 105 + 14, 3, 106 ! Plane U, wire 106 + 15, 3, 107 ! Plane U, wire 107 + +SLOT=7 +REFINDEX=0 + 96, 4, 1 ! Plane V, wire 1 + 97, 4, 2 ! Plane V, wire 2 + 98, 4, 3 ! Plane V, wire 3 + 99, 4, 4 ! Plane V, wire 4 + 100, 4, 5 ! Plane V, wire 5 + 101, 4, 6 ! Plane V, wire 6 + 102, 4, 7 ! Plane V, wire 7 + 103, 4, 8 ! Plane V, wire 8 + 104, 4, 9 ! Plane V, wire 9 + 105, 4, 10 ! Plane V, wire 10 + 106, 4, 11 ! Plane V, wire 11 + 107, 4, 12 ! Plane V, wire 12 + 108, 4, 13 ! Plane V, wire 13 + 109, 4, 14 ! Plane V, wire 14 + 110, 6, 113 ! Plane X', wire 113 + 112, 4, 15 ! Plane V, wire 15 + 113, 4, 16 ! Plane V, wire 16 + 114, 4, 17 ! Plane V, wire 17 + 115, 4, 18 ! Plane V, wire 18 + 116, 4, 19 ! Plane V, wire 19 + 117, 4, 20 ! Plane V, wire 20 + 118, 4, 21 ! Plane V, wire 21 + 119, 4, 22 ! Plane V, wire 22 + 120, 4, 23 ! Plane V, wire 23 + 121, 4, 24 ! Plane V, wire 24 + 122, 4, 25 ! Plane V, wire 25 + 123, 4, 26 ! Plane V, wire 26 + 124, 4, 27 ! Plane V, wire 27 + 125, 4, 28 ! Plane V, wire 28 + 126, 4, 29 ! Plane V, wire 29 + +SLOT=8 +REFINDEX=0 + 127,1000, 0, 1 + 0, 4, 30 ! Plane V, wire 30 + 1, 4, 31 ! Plane V, wire 31 + 2, 4, 32 ! Plane V, wire 32 + 3, 4, 33 ! Plane V, wire 33 + 4, 4, 34 ! Plane V, wire 34 + 5, 4, 35 ! Plane V, wire 35 + 6, 4, 36 ! Plane V, wire 36 + 7, 4, 37 ! Plane V, wire 37 + 8, 4, 38 ! Plane V, wire 38 + 9, 4, 39 ! Plane V, wire 39 + 10, 4, 40 ! Plane V, wire 40 + 11, 4, 41 ! Plane V, wire 41 + 12, 4, 42 ! Plane V, wire 42 + 13, 4, 43 ! Plane V, wire 43 + 14, 4, 44 ! Plane V, wire 44 + 15, 4, 45 ! Plane V, wire 45 + 16, 4, 46 ! Plane V, wire 46 + 17, 4, 47 ! Plane V, wire 47 + 18, 4, 48 ! Plane V, wire 48 + 19, 4, 49 ! Plane V, wire 49 + 20, 4, 50 ! Plane V, wire 50 + 21, 4, 51 ! Plane V, wire 51 + 22, 4, 52 ! Plane V, wire 52 + 23, 4, 53 ! Plane V, wire 53 + 24, 4, 54 ! Plane V, wire 54 + 25, 4, 55 ! Plane V, wire 55 + 26, 4, 56 ! Plane V, wire 56 + 27, 4, 57 ! Plane V, wire 57 + 28, 4, 58 ! Plane V, wire 58 + 29, 4, 59 ! Plane V, wire 59 + 30, 4, 60 ! Plane V, wire 60 + 32, 4, 61 ! Plane V, wire 61 + 33, 4, 62 ! Plane V, wire 62 + 34, 4, 63 ! Plane V, wire 63 + 35, 4, 64 ! Plane V, wire 64 + 36, 4, 65 ! Plane V, wire 65 + 37, 4, 66 ! Plane V, wire 66 + 38, 4, 67 ! Plane V, wire 67 + 39, 4, 68 ! Plane V, wire 68 + 40, 4, 69 ! Plane V, wire 69 + 41, 4, 70 ! Plane V, wire 70 + 42, 4, 71 ! Plane V, wire 71 + 43, 4, 72 ! Plane V, wire 72 + 44, 4, 73 ! Plane V, wire 73 + 45, 4, 74 ! Plane V, wire 74 + 46, 4, 75 ! Plane V, wire 75 + 47, 4, 76 ! Plane V, wire 76 + 48, 4, 77 ! Plane V, wire 77 + 49, 4, 78 ! Plane V, wire 78 + 50, 4, 79 ! Plane V, wire 79 + 51, 4, 80 ! Plane V, wire 80 + 52, 4, 81 ! Plane V, wire 81 + 53, 4, 82 ! Plane V, wire 82 + 54, 4, 83 ! Plane V, wire 83 + 55, 4, 84 ! Plane V, wire 84 + 56, 4, 85 ! Plane V, wire 85 + 57, 4, 86 ! Plane V, wire 86 + 58, 4, 87 ! Plane V, wire 87 + 59, 4, 88 ! Plane V, wire 88 + 60, 4, 89 ! Plane V, wire 89 + 61, 4, 90 ! Plane V, wire 90 + 62, 4, 91 ! Plane V, wire 91 + +SLOT=4 +REFINDEX=0 + 96, 4, 92 ! Plane V, wire 92 + 97, 4, 93 ! Plane V, wire 93 + 98, 4, 94 ! Plane V, wire 94 + 99, 4, 95 ! Plane V, wire 95 + 100, 4, 96 ! Plane V, wire 96 + 101, 4, 97 ! Plane V, wire 97 + 102, 4, 98 ! Plane V, wire 98 + 103, 4, 99 ! Plane V, wire 99 + 104, 4, 100 ! Plane V, wire 100 + 105, 4, 101 ! Plane V, wire 101 + 106, 4, 102 ! Plane V, wire 102 + 107, 4, 103 ! Plane V, wire 103 + 108, 4, 104 ! Plane V, wire 104 + 109, 4, 105 ! Plane V, wire 105 + 110, 4, 106 ! Plane V, wire 106 + 111, 4, 107 ! Plane V, wire 107 + 80, 1, 1 ! Plane X, wire 1 + 81, 1, 2 ! Plane X, wire 2 + 82, 1, 3 ! Plane X, wire 3 + 83, 1, 4 ! Plane X, wire 4 + 84, 1, 5 ! Plane X, wire 5 + 85, 1, 6 ! Plane X, wire 6 + 86, 1, 7 ! Plane X, wire 7 + 87, 1, 8 ! Plane X, wire 8 + 88, 1, 9 ! Plane X, wire 9 + 89, 1, 10 ! Plane X, wire 10 + 90, 1, 11 ! Plane X, wire 11 + 91, 1, 12 ! Plane X, wire 12 + 92, 1, 13 ! Plane X, wire 13 + 93, 1, 14 ! Plane X, wire 14 + 94, 1, 15 ! Plane X, wire 15 + 95, 1, 16 ! Plane X, wire 16 + 64, 1, 17 ! Plane X, wire 17 + 65, 1, 18 ! Plane X, wire 18 + 66, 1, 19 ! Plane X, wire 19 + 67, 1, 20 ! Plane X, wire 20 + 68, 1, 21 ! Plane X, wire 21 + 69, 1, 22 ! Plane X, wire 22 + 70, 1, 23 ! Plane X, wire 23 + 71, 1, 24 ! Plane X, wire 24 + 72, 1, 25 ! Plane X, wire 25 + 73, 1, 26 ! Plane X, wire 26 + 74, 1, 27 ! Plane X, wire 27 + 75, 1, 28 ! Plane X, wire 28 + 76, 1, 29 ! Plane X, wire 29 + 77, 1, 30 ! Plane X, wire 30 + 78, 1, 31 ! Plane X, wire 31 + 79, 1, 32 ! Plane X, wire 32 + 48, 1, 33 ! Plane X, wire 33 + 49, 1, 34 ! Plane X, wire 34 + 50, 1, 35 ! Plane X, wire 35 + 51, 1, 36 ! Plane X, wire 36 + 52, 1, 37 ! Plane X, wire 37 + 53, 1, 38 ! Plane X, wire 38 + 54, 1, 39 ! Plane X, wire 39 + 55, 1, 40 ! Plane X, wire 40 + 56, 1, 41 ! Plane X, wire 41 + 57, 1, 42 ! Plane X, wire 42 + 58, 1, 43 ! Plane X, wire 43 + 59, 1, 44 ! Plane X, wire 44 + 60, 1, 45 ! Plane X, wire 45 + 61, 1, 46 ! Plane X, wire 46 + 62, 1, 47 ! Plane X, wire 47 + 63, 1, 48 ! Plane X, wire 48 + 32, 1, 49 ! Plane X, wire 49 + 33, 1, 50 ! Plane X, wire 50 + 34, 1, 51 ! Plane X, wire 51 + 35, 1, 52 ! Plane X, wire 52 + 36, 1, 53 ! Plane X, wire 53 + 37, 1, 54 ! Plane X, wire 54 + 38, 1, 55 ! Plane X, wire 55 + 39, 1, 56 ! Plane X, wire 56 + 40, 1, 57 ! Plane X, wire 57 + 41, 1, 58 ! Plane X, wire 58 + 42, 1, 59 ! Plane X, wire 59 + 43, 1, 60 ! Plane X, wire 60 + 44, 1, 61 ! Plane X, wire 61 + 45, 1, 62 ! Plane X, wire 62 + 46, 1, 63 ! Plane X, wire 63 + 47, 1, 64 ! Plane X, wire 64 + 16, 1, 65 ! Plane X, wire 65 + 17, 1, 66 ! Plane X, wire 66 + 18, 1, 67 ! Plane X, wire 67 + 19, 1, 68 ! Plane X, wire 68 + 20, 1, 69 ! Plane X, wire 69 + 21, 1, 70 ! Plane X, wire 70 + 22, 1, 71 ! Plane X, wire 71 + 23, 1, 72 ! Plane X, wire 72 + 24, 1, 73 ! Plane X, wire 73 + 25, 1, 74 ! Plane X, wire 74 + 26, 1, 75 ! Plane X, wire 75 + 27, 1, 76 ! Plane X, wire 76 + 28, 1, 77 ! Plane X, wire 77 + 29, 1, 78 ! Plane X, wire 78 + 30, 1, 79 ! Plane X, wire 79 + 31, 1, 80 ! Plane X, wire 80 + 0, 1, 81 ! Plane X, wire 81 + 1, 1, 82 ! Plane X, wire 82 + 2, 1, 83 ! Plane X, wire 83 + 3, 1, 84 ! Plane X, wire 84 + 4, 1, 85 ! Plane X, wire 85 + 5, 1, 86 ! Plane X, wire 86 + 6, 1, 87 ! Plane X, wire 87 + 7, 1, 88 ! Plane X, wire 88 + 8, 1, 89 ! Plane X, wire 89 + 9, 1, 90 ! Plane X, wire 90 + 10, 1, 91 ! Plane X, wire 91 + 11, 1, 92 ! Plane X, wire 92 + 12, 1, 93 ! Plane X, wire 93 + 13, 1, 94 ! Plane X, wire 94 + 14, 1, 95 ! Plane X, wire 95 + 15, 1, 96 ! Plane X, wire 96 + +SLOT=7 +REFINDEX=0 + 80, 1, 97 ! Plane X, wire 97 + 81, 1, 98 ! Plane X, wire 98 + 82, 1, 99 ! Plane X, wire 99 + 83, 1, 100 ! Plane X, wire 100 + 84, 1, 101 ! Plane X, wire 101 + 85, 1, 102 ! Plane X, wire 102 + 86, 1, 103 ! Plane X, wire 103 + 87, 1, 104 ! Plane X, wire 104 + 88, 1, 105 ! Plane X, wire 105 + 89, 1, 106 ! Plane X, wire 106 + 90, 1, 107 ! Plane X, wire 107 + 91, 1, 108 ! Plane X, wire 108 + 92, 1, 109 ! Plane X, wire 109 + 93, 1, 110 ! Plane X, wire 110 + 94, 1, 111 ! Plane X, wire 111 + 95, 1, 112 ! Plane X, wire 112 + +SLOT=4 +REFINDEX=0 + 112, 6, 1 ! Plane X', wire 1 + 113, 6, 2 ! Plane X', wire 2 + 114, 6, 3 ! Plane X', wire 3 + 115, 6, 4 ! Plane X', wire 4 + 116, 6, 5 ! Plane X', wire 5 + 117, 6, 6 ! Plane X', wire 6 + 118, 6, 7 ! Plane X', wire 7 + 119, 6, 8 ! Plane X', wire 8 + 120, 6, 9 ! Plane X', wire 9 + 121, 6, 10 ! Plane X', wire 10 + 122, 6, 11 ! Plane X', wire 11 + 123, 6, 12 ! Plane X', wire 12 + 124, 6, 13 ! Plane X', wire 13 + 125, 6, 14 ! Plane X', wire 14 + 126, 6, 15 ! Plane X', wire 15 + 127, 6, 16 ! Plane X', wire 16 + +SLOT=5 +REFINDEX=0 + 112, 6, 17 ! Plane X', wire 17 + 113, 6, 18 ! Plane X', wire 18 + 114, 6, 19 ! Plane X', wire 19 + 115, 6, 20 ! Plane X', wire 20 + 116, 6, 21 ! Plane X', wire 21 + 117, 6, 22 ! Plane X', wire 22 + 118, 6, 23 ! Plane X', wire 23 + 119, 6, 24 ! Plane X', wire 24 + 120, 6, 25 ! Plane X', wire 25 + 121, 6, 26 ! Plane X', wire 26 + 122, 6, 27 ! Plane X', wire 27 + 123, 6, 28 ! Plane X', wire 28 + 124, 6, 29 ! Plane X', wire 29 + 125, 6, 30 ! Plane X', wire 30 + 126, 6, 31 ! Plane X', wire 31 + 127, 6, 32 ! Plane X', wire 32 + +SLOT=7 +REFINDEX=0 + 0, 6, 33 ! Plane X', wire 33 + 1, 6, 34 ! Plane X', wire 34 + 2, 6, 35 ! Plane X', wire 35 + 3, 6, 36 ! Plane X', wire 36 + 4, 6, 37 ! Plane X', wire 37 + 5, 6, 38 ! Plane X', wire 38 + 6, 6, 39 ! Plane X', wire 39 + 7, 6, 40 ! Plane X', wire 40 + 8, 6, 41 ! Plane X', wire 41 + 9, 6, 42 ! Plane X', wire 42 + 10, 6, 43 ! Plane X', wire 43 + 11, 6, 44 ! Plane X', wire 44 + 12, 6, 45 ! Plane X', wire 45 + 13, 6, 46 ! Plane X', wire 46 + 14, 6, 47 ! Plane X', wire 47 + 15, 6, 48 ! Plane X', wire 48 + 16, 6, 49 ! Plane X', wire 49 + 17, 6, 50 ! Plane X', wire 50 + 18, 6, 51 ! Plane X', wire 51 + 19, 6, 52 ! Plane X', wire 52 + 20, 6, 53 ! Plane X', wire 53 + 21, 6, 54 ! Plane X', wire 54 + 22, 6, 55 ! Plane X', wire 55 + 23, 6, 56 ! Plane X', wire 56 + 24, 6, 57 ! Plane X', wire 57 + 25, 6, 58 ! Plane X', wire 58 + 26, 6, 59 ! Plane X', wire 59 + 27, 6, 60 ! Plane X', wire 60 + 28, 6, 61 ! Plane X', wire 61 + 29, 6, 62 ! Plane X', wire 62 + 30, 6, 63 ! Plane X', wire 63 + 31, 6, 64 ! Plane X', wire 64 + 32, 6, 65 ! Plane X', wire 65 + 33, 6, 66 ! Plane X', wire 66 + 34, 6, 67 ! Plane X', wire 67 + 35, 6, 68 ! Plane X', wire 68 + 36, 6, 69 ! Plane X', wire 69 + 37, 6, 70 ! Plane X', wire 70 + 38, 6, 71 ! Plane X', wire 71 + 39, 6, 72 ! Plane X', wire 72 + 40, 6, 73 ! Plane X', wire 73 + 41, 6, 74 ! Plane X', wire 74 + 42, 6, 75 ! Plane X', wire 75 + 43, 6, 76 ! Plane X', wire 76 + 44, 6, 77 ! Plane X', wire 77 + 45, 6, 78 ! Plane X', wire 78 + 46, 6, 79 ! Plane X', wire 79 + 47, 6, 80 ! Plane X', wire 80 + 48, 6, 81 ! Plane X', wire 81 + 49, 6, 82 ! Plane X', wire 82 + 50, 6, 83 ! Plane X', wire 83 + 51, 6, 84 ! Plane X', wire 84 + 52, 6, 85 ! Plane X', wire 85 + 53, 6, 86 ! Plane X', wire 86 + 54, 6, 87 ! Plane X', wire 87 + 55, 6, 88 ! Plane X', wire 88 + 56, 6, 89 ! Plane X', wire 89 + 57, 6, 90 ! Plane X', wire 90 + 58, 6, 91 ! Plane X', wire 91 + 59, 6, 92 ! Plane X', wire 92 + 60, 6, 93 ! Plane X', wire 93 + 61, 6, 94 ! Plane X', wire 94 + 62, 6, 95 ! Plane X', wire 95 + 63, 6, 96 ! Plane X', wire 96 + 64, 6, 97 ! Plane X', wire 97 + 65, 6, 98 ! Plane X', wire 98 + 66, 6, 99 ! Plane X', wire 99 + 67, 6, 100 ! Plane X', wire 100 + 68, 6, 101 ! Plane X', wire 101 + 69, 6, 102 ! Plane X', wire 102 + 70, 6, 103 ! Plane X', wire 103 + 71, 6, 104 ! Plane X', wire 104 + 72, 6, 105 ! Plane X', wire 105 + 73, 6, 106 ! Plane X', wire 106 + 74, 6, 107 ! Plane X', wire 107 + 75, 6, 108 ! Plane X', wire 108 + 76, 6, 109 ! Plane X', wire 109 + 77, 6, 110 ! Plane X', wire 110 + 78, 6, 111 ! Plane X', wire 111 + 79, 6, 112 ! Plane X', wire 112 + +SLOT=8 +REFINDEX=0 + 64, 2, 1 ! Plane Y, wire 1 + 65, 2, 2 ! Plane Y, wire 2 + 66, 2, 3 ! Plane Y, wire 3 + 67, 2, 4 ! Plane Y, wire 4 + 68, 2, 5 ! Plane Y, wire 5 + 69, 2, 6 ! Plane Y, wire 6 + 70, 2, 7 ! Plane Y, wire 7 + 71, 2, 8 ! Plane Y, wire 8 + 72, 2, 9 ! Plane Y, wire 9 + 73, 2, 10 ! Plane Y, wire 10 + 74, 2, 11 ! Plane Y, wire 11 + 75, 2, 12 ! Plane Y, wire 12 + 76, 2, 13 ! Plane Y, wire 13 + 80, 2, 14 ! Plane Y, wire 14 + 81, 2, 15 ! Plane Y, wire 15 + 82, 2, 16 ! Plane Y, wire 16 + 83, 2, 17 ! Plane Y, wire 17 + 84, 2, 18 ! Plane Y, wire 18 + 85, 2, 19 ! Plane Y, wire 19 + 86, 2, 20 ! Plane Y, wire 20 + 87, 2, 21 ! Plane Y, wire 21 + 88, 2, 22 ! Plane Y, wire 22 + 89, 2, 23 ! Plane Y, wire 23 + 90, 2, 24 ! Plane Y, wire 24 + 91, 2, 25 ! Plane Y, wire 25 + 92, 2, 26 ! Plane Y, wire 26 + 96, 2, 27 ! Plane Y, wire 27 + 97, 2, 28 ! Plane Y, wire 28 + 98, 2, 29 ! Plane Y, wire 29 + 99, 2, 30 ! Plane Y, wire 30 + 100, 2, 31 ! Plane Y, wire 31 + 101, 2, 32 ! Plane Y, wire 32 + 102, 2, 33 ! Plane Y, wire 33 + 103, 2, 34 ! Plane Y, wire 34 + 104, 2, 35 ! Plane Y, wire 35 + 105, 2, 36 ! Plane Y, wire 36 + 106, 2, 37 ! Plane Y, wire 37 + 107, 2, 38 ! Plane Y, wire 38 + 108, 2, 39 ! Plane Y, wire 39 + 112, 2, 40 ! Plane Y, wire 40 + 113, 2, 41 ! Plane Y, wire 41 + 114, 2, 42 ! Plane Y, wire 42 + 115, 2, 43 ! Plane Y, wire 43 + 116, 2, 44 ! Plane Y, wire 44 + 117, 2, 45 ! Plane Y, wire 45 + 118, 2, 46 ! Plane Y, wire 46 + 119, 2, 47 ! Plane Y, wire 47 + 120, 2, 48 ! Plane Y, wire 48 + 121, 2, 49 ! Plane Y, wire 49 + 122, 2, 50 ! Plane Y, wire 50 + 123, 2, 51 ! Plane Y, wire 51 + 124, 2, 52 ! Plane Y, wire 52 + +SLOT=10 +REFINDEX=0 + 127,1000, 0, 2 + 0, 5, 1 ! Plane Y', wire 1 + 1, 5, 2 ! Plane Y', wire 2 + 2, 5, 3 ! Plane Y', wire 3 + 3, 5, 4 ! Plane Y', wire 4 + 4, 5, 5 ! Plane Y', wire 5 + 5, 5, 6 ! Plane Y', wire 6 + 6, 5, 7 ! Plane Y', wire 7 + 7, 5, 8 ! Plane Y', wire 8 + 8, 5, 9 ! Plane Y', wire 9 + 9, 5, 10 ! Plane Y', wire 10 + 10, 5, 11 ! Plane Y', wire 11 + 11, 5, 12 ! Plane Y', wire 12 + 12, 5, 13 ! Plane Y', wire 13 + 16, 5, 14 ! Plane Y', wire 14 + 17, 5, 15 ! Plane Y', wire 15 + 18, 5, 16 ! Plane Y', wire 16 + 19, 5, 17 ! Plane Y', wire 17 + 20, 5, 18 ! Plane Y', wire 18 + 21, 5, 19 ! Plane Y', wire 19 + 22, 5, 20 ! Plane Y', wire 20 + 23, 5, 21 ! Plane Y', wire 21 + 24, 5, 22 ! Plane Y', wire 22 + 25, 5, 23 ! Plane Y', wire 23 + 26, 5, 24 ! Plane Y', wire 24 + 27, 5, 25 ! Plane Y', wire 25 + 28, 5, 26 ! Plane Y', wire 26 + 32, 5, 27 ! Plane Y', wire 27 + 33, 5, 28 ! Plane Y', wire 28 + 34, 5, 29 ! Plane Y', wire 29 + 35, 5, 30 ! Plane Y', wire 30 + 36, 5, 31 ! Plane Y', wire 31 + 37, 5, 32 ! Plane Y', wire 32 + 38, 5, 33 ! Plane Y', wire 33 + 39, 5, 34 ! Plane Y', wire 34 + 40, 5, 35 ! Plane Y', wire 35 + 41, 5, 36 ! Plane Y', wire 36 + 42, 5, 37 ! Plane Y', wire 37 + 43, 5, 38 ! Plane Y', wire 38 + 44, 5, 39 ! Plane Y', wire 39 + 48, 5, 40 ! Plane Y', wire 40 + 49, 5, 41 ! Plane Y', wire 41 + 50, 5, 42 ! Plane Y', wire 42 + 51, 5, 43 ! Plane Y', wire 43 + 52, 5, 44 ! Plane Y', wire 44 + 53, 5, 45 ! Plane Y', wire 45 + 54, 5, 46 ! Plane Y', wire 46 + 55, 5, 47 ! Plane Y', wire 47 + 56, 5, 48 ! Plane Y', wire 48 + 57, 5, 49 ! Plane Y', wire 49 + 58, 5, 50 ! Plane Y', wire 50 + 59, 5, 51 ! Plane Y', wire 51 + 60, 5, 52 ! Plane Y', wire 52 + +SLOT=16 +REFINDEX=0 + 96, 9, 1 ! Plane U, wire 1 + 97, 9, 2 ! Plane U, wire 2 + 98, 9, 3 ! Plane U, wire 3 + 99, 9, 4 ! Plane U, wire 4 + 100, 9, 5 ! Plane U, wire 5 + 101, 9, 6 ! Plane U, wire 6 + 102, 9, 7 ! Plane U, wire 7 + 103, 9, 8 ! Plane U, wire 8 + 104, 9, 9 ! Plane U, wire 9 + 105, 9, 10 ! Plane U, wire 10 + 106, 9, 11 ! Plane U, wire 11 + 107, 9, 12 ! Plane U, wire 12 + 108, 9, 13 ! Plane U, wire 13 + 109, 9, 14 ! Plane U, wire 14 + 110, 7, 113 ! Plane X, wire 113 + 112, 9, 15 ! Plane U, wire 15 + 113, 9, 16 ! Plane U, wire 16 + 114, 9, 17 ! Plane U, wire 17 + 115, 9, 18 ! Plane U, wire 18 + 116, 9, 19 ! Plane U, wire 19 + 117, 9, 20 ! Plane U, wire 20 + 118, 9, 21 ! Plane U, wire 21 + 119, 9, 22 ! Plane U, wire 22 + 120, 9, 23 ! Plane U, wire 23 + 121, 9, 24 ! Plane U, wire 24 + 122, 9, 25 ! Plane U, wire 25 + 123, 9, 26 ! Plane U, wire 26 + 124, 9, 27 ! Plane U, wire 27 + 125, 9, 28 ! Plane U, wire 28 + 126, 9, 29 ! Plane U, wire 29 + +SLOT=14 +REFINDEX=0 + 0, 9, 30 ! Plane U, wire 30 + 1, 9, 31 ! Plane U, wire 31 + 2, 9, 32 ! Plane U, wire 32 + 3, 9, 33 ! Plane U, wire 33 + 4, 9, 34 ! Plane U, wire 34 + 5, 9, 35 ! Plane U, wire 35 + 6, 9, 36 ! Plane U, wire 36 + 7, 9, 37 ! Plane U, wire 37 + 8, 9, 38 ! Plane U, wire 38 + 9, 9, 39 ! Plane U, wire 39 + 10, 9, 40 ! Plane U, wire 40 + 11, 9, 41 ! Plane U, wire 41 + 12, 9, 42 ! Plane U, wire 42 + 13, 9, 43 ! Plane U, wire 43 + 14, 9, 44 ! Plane U, wire 44 + 15, 9, 45 ! Plane U, wire 45 + 32, 9, 46 ! Plane U, wire 46 + 33, 9, 47 ! Plane U, wire 47 + 34, 9, 48 ! Plane U, wire 48 + 35, 9, 49 ! Plane U, wire 49 + 36, 9, 50 ! Plane U, wire 50 + 37, 9, 51 ! Plane U, wire 51 + 38, 9, 52 ! Plane U, wire 52 + 39, 9, 53 ! Plane U, wire 53 + 40, 9, 54 ! Plane U, wire 54 + 41, 9, 55 ! Plane U, wire 55 + 42, 9, 56 ! Plane U, wire 56 + 43, 9, 57 ! Plane U, wire 57 + 44, 9, 58 ! Plane U, wire 58 + 45, 9, 59 ! Plane U, wire 59 + 46, 9, 60 ! Plane U, wire 60 + 48, 9, 61 ! Plane U, wire 61 + 49, 9, 62 ! Plane U, wire 62 + 50, 9, 63 ! Plane U, wire 63 + 51, 9, 64 ! Plane U, wire 64 + 52, 9, 65 ! Plane U, wire 65 + 53, 9, 66 ! Plane U, wire 66 + 54, 9, 67 ! Plane U, wire 67 + 55, 9, 68 ! Plane U, wire 68 + 56, 9, 69 ! Plane U, wire 69 + 57, 9, 70 ! Plane U, wire 70 + 58, 9, 71 ! Plane U, wire 71 + 59, 9, 72 ! Plane U, wire 72 + 60, 9, 73 ! Plane U, wire 73 + 61, 9, 74 ! Plane U, wire 74 + 62, 9, 75 ! Plane U, wire 75 + 63, 9, 76 ! Plane U, wire 76 + 64, 9, 77 ! Plane U, wire 77 + 65, 9, 78 ! Plane U, wire 78 + 66, 9, 79 ! Plane U, wire 79 + 67, 9, 80 ! Plane U, wire 80 + 68, 9, 81 ! Plane U, wire 81 + 69, 9, 82 ! Plane U, wire 82 + 70, 9, 83 ! Plane U, wire 83 + 71, 9, 84 ! Plane U, wire 84 + 72, 9, 85 ! Plane U, wire 85 + 73, 9, 86 ! Plane U, wire 86 + 74, 9, 87 ! Plane U, wire 87 + 75, 9, 88 ! Plane U, wire 88 + 76, 9, 89 ! Plane U, wire 89 + 77, 9, 90 ! Plane U, wire 90 + 78, 9, 91 ! Plane U, wire 91 + 80, 9, 92 ! Plane U, wire 92 + 81, 9, 93 ! Plane U, wire 93 + 82, 9, 94 ! Plane U, wire 94 + 83, 9, 95 ! Plane U, wire 95 + 84, 9, 96 ! Plane U, wire 96 + 85, 9, 97 ! Plane U, wire 97 + 86, 9, 98 ! Plane U, wire 98 + 87, 9, 99 ! Plane U, wire 99 + 88, 9, 100 ! Plane U, wire 100 + 89, 9, 101 ! Plane U, wire 101 + 90, 9, 102 ! Plane U, wire 102 + 91, 9, 103 ! Plane U, wire 103 + 92, 9, 104 ! Plane U, wire 104 + 93, 9, 105 ! Plane U, wire 105 + 94, 9, 106 ! Plane U, wire 106 + 95, 9, 107 ! Plane U, wire 107 + +SLOT=16 +REFINDEX=0 + 80, 10, 1 ! Plane V, wire 1 + 81, 10, 2 ! Plane V, wire 2 + 82, 10, 3 ! Plane V, wire 3 + 83, 10, 4 ! Plane V, wire 4 + 84, 10, 5 ! Plane V, wire 5 + 85, 10, 6 ! Plane V, wire 6 + 86, 10, 7 ! Plane V, wire 7 + 87, 10, 8 ! Plane V, wire 8 + 88, 10, 9 ! Plane V, wire 9 + 89, 10, 10 ! Plane V, wire 10 + 90, 10, 11 ! Plane V, wire 11 + 91, 10, 12 ! Plane V, wire 12 + 92, 10, 13 ! Plane V, wire 13 + 93, 10, 14 ! Plane V, wire 14 + 94, 12, 113 ! Plane X', wire 113 + +SLOT=14 +REFINDEX=0 + 96, 10, 15 ! Plane V, wire 15 + 97, 10, 16 ! Plane V, wire 16 + 98, 10, 17 ! Plane V, wire 17 + 99, 10, 18 ! Plane V, wire 18 + 100, 10, 19 ! Plane V, wire 19 + 101, 10, 20 ! Plane V, wire 20 + 102, 10, 21 ! Plane V, wire 21 + 103, 10, 22 ! Plane V, wire 22 + 104, 10, 23 ! Plane V, wire 23 + 105, 10, 24 ! Plane V, wire 24 + 106, 10, 25 ! Plane V, wire 25 + 107, 10, 26 ! Plane V, wire 26 + 108, 10, 27 ! Plane V, wire 27 + 109, 10, 28 ! Plane V, wire 28 + 110, 10, 29 ! Plane V, wire 29 + 112, 10, 30 ! Plane V, wire 30 + 113, 10, 31 ! Plane V, wire 31 + 114, 10, 32 ! Plane V, wire 32 + 115, 10, 33 ! Plane V, wire 33 + 116, 10, 34 ! Plane V, wire 34 + 117, 10, 35 ! Plane V, wire 35 + 118, 10, 36 ! Plane V, wire 36 + 119, 10, 37 ! Plane V, wire 37 + 120, 10, 38 ! Plane V, wire 38 + 121, 10, 39 ! Plane V, wire 39 + 122, 10, 40 ! Plane V, wire 40 + 123, 10, 41 ! Plane V, wire 41 + 124, 10, 42 ! Plane V, wire 42 + 125, 10, 43 ! Plane V, wire 43 + 126, 10, 44 ! Plane V, wire 44 + 127, 10, 45 ! Plane V, wire 45 + +SLOT=17 +REFINDEX=0 + 127,1000, 0, 3 + 0, 10, 46 ! Plane V, wire 46 + 1, 10, 47 ! Plane V, wire 47 + 2, 10, 48 ! Plane V, wire 48 + 3, 10, 49 ! Plane V, wire 49 + 4, 10, 50 ! Plane V, wire 50 + 5, 10, 51 ! Plane V, wire 51 + 6, 10, 52 ! Plane V, wire 52 + 7, 10, 53 ! Plane V, wire 53 + 8, 10, 54 ! Plane V, wire 54 + 9, 10, 55 ! Plane V, wire 55 + 10, 10, 56 ! Plane V, wire 56 + 11, 10, 57 ! Plane V, wire 57 + 12, 10, 58 ! Plane V, wire 58 + 13, 10, 59 ! Plane V, wire 59 + 14, 10, 60 ! Plane V, wire 60 + 16, 10, 61 ! Plane V, wire 61 + 17, 10, 62 ! Plane V, wire 62 + 18, 10, 63 ! Plane V, wire 63 + 19, 10, 64 ! Plane V, wire 64 + 20, 10, 65 ! Plane V, wire 65 + 21, 10, 66 ! Plane V, wire 66 + 22, 10, 67 ! Plane V, wire 67 + 23, 10, 68 ! Plane V, wire 68 + 24, 10, 69 ! Plane V, wire 69 + 25, 10, 70 ! Plane V, wire 70 + 26, 10, 71 ! Plane V, wire 71 + 27, 10, 72 ! Plane V, wire 72 + 28, 10, 73 ! Plane V, wire 73 + 29, 10, 74 ! Plane V, wire 74 + 30, 10, 75 ! Plane V, wire 75 + 31, 10, 76 ! Plane V, wire 76 + 32, 10, 77 ! Plane V, wire 77 + 33, 10, 78 ! Plane V, wire 78 + 34, 10, 79 ! Plane V, wire 79 + 35, 10, 80 ! Plane V, wire 80 + 36, 10, 81 ! Plane V, wire 81 + 37, 10, 82 ! Plane V, wire 82 + 38, 10, 83 ! Plane V, wire 83 + 39, 10, 84 ! Plane V, wire 84 + 40, 10, 85 ! Plane V, wire 85 + 41, 10, 86 ! Plane V, wire 86 + 42, 10, 87 ! Plane V, wire 87 + 43, 10, 88 ! Plane V, wire 88 + 44, 10, 89 ! Plane V, wire 89 + 45, 10, 90 ! Plane V, wire 90 + 46, 10, 91 ! Plane V, wire 91 + 48, 10, 92 ! Plane V, wire 92 + 49, 10, 93 ! Plane V, wire 93 + 50, 10, 94 ! Plane V, wire 94 + 51, 10, 95 ! Plane V, wire 95 + 52, 10, 96 ! Plane V, wire 96 + 53, 10, 97 ! Plane V, wire 97 + 54, 10, 98 ! Plane V, wire 98 + 55, 10, 99 ! Plane V, wire 99 + 56, 10, 100 ! Plane V, wire 100 + 57, 10, 101 ! Plane V, wire 101 + 58, 10, 102 ! Plane V, wire 102 + 59, 10, 103 ! Plane V, wire 103 + 60, 10, 104 ! Plane V, wire 104 + 61, 10, 105 ! Plane V, wire 105 + 62, 10, 106 ! Plane V, wire 106 + 63, 10, 107 ! Plane V, wire 107 + +SLOT=13 +REFINDEX=0 + 0, 7, 1 ! Plane X, wire 1 + 1, 7, 2 ! Plane X, wire 2 + 2, 7, 3 ! Plane X, wire 3 + 3, 7, 4 ! Plane X, wire 4 + 4, 7, 5 ! Plane X, wire 5 + 5, 7, 6 ! Plane X, wire 6 + 6, 7, 7 ! Plane X, wire 7 + 7, 7, 8 ! Plane X, wire 8 + 8, 7, 9 ! Plane X, wire 9 + 9, 7, 10 ! Plane X, wire 10 + 10, 7, 11 ! Plane X, wire 11 + 11, 7, 12 ! Plane X, wire 12 + 12, 7, 13 ! Plane X, wire 13 + 13, 7, 14 ! Plane X, wire 14 + 14, 7, 15 ! Plane X, wire 15 + 15, 7, 16 ! Plane X, wire 16 + 16, 7, 17 ! Plane X, wire 17 + 17, 7, 18 ! Plane X, wire 18 + 18, 7, 19 ! Plane X, wire 19 + 19, 7, 20 ! Plane X, wire 20 + 20, 7, 21 ! Plane X, wire 21 + 21, 7, 22 ! Plane X, wire 22 + 22, 7, 23 ! Plane X, wire 23 + 23, 7, 24 ! Plane X, wire 24 + 24, 7, 25 ! Plane X, wire 25 + 25, 7, 26 ! Plane X, wire 26 + 26, 7, 27 ! Plane X, wire 27 + 27, 7, 28 ! Plane X, wire 28 + 28, 7, 29 ! Plane X, wire 29 + 29, 7, 30 ! Plane X, wire 30 + 30, 7, 31 ! Plane X, wire 31 + 31, 7, 32 ! Plane X, wire 32 + 32, 7, 33 ! Plane X, wire 33 + 33, 7, 34 ! Plane X, wire 34 + 34, 7, 35 ! Plane X, wire 35 + 35, 7, 36 ! Plane X, wire 36 + 36, 7, 37 ! Plane X, wire 37 + 37, 7, 38 ! Plane X, wire 38 + 38, 7, 39 ! Plane X, wire 39 + 39, 7, 40 ! Plane X, wire 40 + 40, 7, 41 ! Plane X, wire 41 + 41, 7, 42 ! Plane X, wire 42 + 42, 7, 43 ! Plane X, wire 43 + 43, 7, 44 ! Plane X, wire 44 + 44, 7, 45 ! Plane X, wire 45 + 45, 7, 46 ! Plane X, wire 46 + 46, 7, 47 ! Plane X, wire 47 + 47, 7, 48 ! Plane X, wire 48 + 48, 7, 49 ! Plane X, wire 49 + 49, 7, 50 ! Plane X, wire 50 + 50, 7, 51 ! Plane X, wire 51 + 51, 7, 52 ! Plane X, wire 52 + 52, 7, 53 ! Plane X, wire 53 + 53, 7, 54 ! Plane X, wire 54 + 54, 7, 55 ! Plane X, wire 55 + 55, 7, 56 ! Plane X, wire 56 + 56, 7, 57 ! Plane X, wire 57 + 57, 7, 58 ! Plane X, wire 58 + 58, 7, 59 ! Plane X, wire 59 + 59, 7, 60 ! Plane X, wire 60 + 60, 7, 61 ! Plane X, wire 61 + 61, 7, 62 ! Plane X, wire 62 + 62, 7, 63 ! Plane X, wire 63 + 63, 7, 64 ! Plane X, wire 64 + 64, 7, 65 ! Plane X, wire 65 + 65, 7, 66 ! Plane X, wire 66 + 66, 7, 67 ! Plane X, wire 67 + 67, 7, 68 ! Plane X, wire 68 + 68, 7, 69 ! Plane X, wire 69 + 69, 7, 70 ! Plane X, wire 70 + 70, 7, 71 ! Plane X, wire 71 + 71, 7, 72 ! Plane X, wire 72 + 72, 7, 73 ! Plane X, wire 73 + 73, 7, 74 ! Plane X, wire 74 + 74, 7, 75 ! Plane X, wire 75 + 75, 7, 76 ! Plane X, wire 76 + 76, 7, 77 ! Plane X, wire 77 + 77, 7, 78 ! Plane X, wire 78 + 78, 7, 79 ! Plane X, wire 79 + 79, 7, 80 ! Plane X, wire 80 + 80, 7, 81 ! Plane X, wire 81 + 81, 7, 82 ! Plane X, wire 82 + 82, 7, 83 ! Plane X, wire 83 + 83, 7, 84 ! Plane X, wire 84 + 84, 7, 85 ! Plane X, wire 85 + 85, 7, 86 ! Plane X, wire 86 + 86, 7, 87 ! Plane X, wire 87 + 87, 7, 88 ! Plane X, wire 88 + 88, 7, 89 ! Plane X, wire 89 + 89, 7, 90 ! Plane X, wire 90 + 90, 7, 91 ! Plane X, wire 91 + 91, 7, 92 ! Plane X, wire 92 + 92, 7, 93 ! Plane X, wire 93 + 93, 7, 94 ! Plane X, wire 94 + 94, 7, 95 ! Plane X, wire 95 + 95, 7, 96 ! Plane X, wire 96 + 96, 7, 97 ! Plane X, wire 97 + 97, 7, 98 ! Plane X, wire 98 + 98, 7, 99 ! Plane X, wire 99 + 99, 7, 100 ! Plane X, wire 100 + 100, 7, 101 ! Plane X, wire 101 + 101, 7, 102 ! Plane X, wire 102 + 102, 7, 103 ! Plane X, wire 103 + 103, 7, 104 ! Plane X, wire 104 + 104, 7, 105 ! Plane X, wire 105 + 105, 7, 106 ! Plane X, wire 106 + 106, 7, 107 ! Plane X, wire 107 + 107, 7, 108 ! Plane X, wire 108 + 108, 7, 109 ! Plane X, wire 109 + 109, 7, 110 ! Plane X, wire 110 + 110, 7, 111 ! Plane X, wire 111 + 111, 7, 112 ! Plane X, wire 112 + 112, 12, 1 ! Plane X', wire 1 + 113, 12, 2 ! Plane X', wire 2 + 114, 12, 3 ! Plane X', wire 3 + 115, 12, 4 ! Plane X', wire 4 + 116, 12, 5 ! Plane X', wire 5 + 117, 12, 6 ! Plane X', wire 6 + 118, 12, 7 ! Plane X', wire 7 + 119, 12, 8 ! Plane X', wire 8 + 120, 12, 9 ! Plane X', wire 9 + 121, 12, 10 ! Plane X', wire 10 + 122, 12, 11 ! Plane X', wire 11 + 123, 12, 12 ! Plane X', wire 12 + 124, 12, 13 ! Plane X', wire 13 + 125, 12, 14 ! Plane X', wire 14 + 126, 12, 15 ! Plane X', wire 15 + 127, 12, 16 ! Plane X', wire 16 + +SLOT=14 +REFINDEX=0 + 16, 12, 17 ! Plane X', wire 17 + 17, 12, 18 ! Plane X', wire 18 + 18, 12, 19 ! Plane X', wire 19 + 19, 12, 20 ! Plane X', wire 20 + 20, 12, 21 ! Plane X', wire 21 + 21, 12, 22 ! Plane X', wire 22 + 22, 12, 23 ! Plane X', wire 23 + 23, 12, 24 ! Plane X', wire 24 + 24, 12, 25 ! Plane X', wire 25 + 25, 12, 26 ! Plane X', wire 26 + 26, 12, 27 ! Plane X', wire 27 + 27, 12, 28 ! Plane X', wire 28 + 28, 12, 29 ! Plane X', wire 29 + 29, 12, 30 ! Plane X', wire 30 + 30, 12, 31 ! Plane X', wire 31 + 31, 12, 32 ! Plane X', wire 32 + +SLOT=16 +REFINDEX=0 + 0, 12, 33 ! Plane X', wire 33 + 1, 12, 34 ! Plane X', wire 34 + 2, 12, 35 ! Plane X', wire 35 + 3, 12, 36 ! Plane X', wire 36 + 4, 12, 37 ! Plane X', wire 37 + 5, 12, 38 ! Plane X', wire 38 + 6, 12, 39 ! Plane X', wire 39 + 7, 12, 40 ! Plane X', wire 40 + 8, 12, 41 ! Plane X', wire 41 + 9, 12, 42 ! Plane X', wire 42 + 10, 12, 43 ! Plane X', wire 43 + 11, 12, 44 ! Plane X', wire 44 + 12, 12, 45 ! Plane X', wire 45 + 13, 12, 46 ! Plane X', wire 46 + 14, 12, 47 ! Plane X', wire 47 + 15, 12, 48 ! Plane X', wire 48 + 16, 12, 49 ! Plane X', wire 49 + 17, 12, 50 ! Plane X', wire 50 + 18, 12, 51 ! Plane X', wire 51 + 19, 12, 52 ! Plane X', wire 52 + 20, 12, 53 ! Plane X', wire 53 + 21, 12, 54 ! Plane X', wire 54 + 22, 12, 55 ! Plane X', wire 55 + 23, 12, 56 ! Plane X', wire 56 + 24, 12, 57 ! Plane X', wire 57 + 25, 12, 58 ! Plane X', wire 58 + 26, 12, 59 ! Plane X', wire 59 + 27, 12, 60 ! Plane X', wire 60 + 28, 12, 61 ! Plane X', wire 61 + 29, 12, 62 ! Plane X', wire 62 + 30, 12, 63 ! Plane X', wire 63 + 31, 12, 64 ! Plane X', wire 64 + 32, 12, 65 ! Plane X', wire 65 + 33, 12, 66 ! Plane X', wire 66 + 34, 12, 67 ! Plane X', wire 67 + 35, 12, 68 ! Plane X', wire 68 + 36, 12, 69 ! Plane X', wire 69 + 37, 12, 70 ! Plane X', wire 70 + 38, 12, 71 ! Plane X', wire 71 + 39, 12, 72 ! Plane X', wire 72 + 40, 12, 73 ! Plane X', wire 73 + 41, 12, 74 ! Plane X', wire 74 + 42, 12, 75 ! Plane X', wire 75 + 43, 12, 76 ! Plane X', wire 76 + 44, 12, 77 ! Plane X', wire 77 + 45, 12, 78 ! Plane X', wire 78 + 46, 12, 79 ! Plane X', wire 79 + 47, 12, 80 ! Plane X', wire 80 + 48, 12, 81 ! Plane X', wire 81 + 49, 12, 82 ! Plane X', wire 82 + 50, 12, 83 ! Plane X', wire 83 + 51, 12, 84 ! Plane X', wire 84 + 52, 12, 85 ! Plane X', wire 85 + 53, 12, 86 ! Plane X', wire 86 + 54, 12, 87 ! Plane X', wire 87 + 55, 12, 88 ! Plane X', wire 88 + 56, 12, 89 ! Plane X', wire 89 + 57, 12, 90 ! Plane X', wire 90 + 58, 12, 91 ! Plane X', wire 91 + 59, 12, 92 ! Plane X', wire 92 + 60, 12, 93 ! Plane X', wire 93 + 61, 12, 94 ! Plane X', wire 94 + 62, 12, 95 ! Plane X', wire 95 + 63, 12, 96 ! Plane X', wire 96 + 64, 12, 97 ! Plane X', wire 97 + 65, 12, 98 ! Plane X', wire 98 + 66, 12, 99 ! Plane X', wire 99 + 67, 12, 100 ! Plane X', wire 100 + 68, 12, 101 ! Plane X', wire 101 + 69, 12, 102 ! Plane X', wire 102 + 70, 12, 103 ! Plane X', wire 103 + 71, 12, 104 ! Plane X', wire 104 + 72, 12, 105 ! Plane X', wire 105 + 73, 12, 106 ! Plane X', wire 106 + 74, 12, 107 ! Plane X', wire 107 + 75, 12, 108 ! Plane X', wire 108 + 76, 12, 109 ! Plane X', wire 109 + 77, 12, 110 ! Plane X', wire 110 + 78, 12, 111 ! Plane X', wire 111 + 79, 12, 112 ! Plane X', wire 112 + +SLOT=17 +REFINDEX=0 + 64, 8, 1 ! Plane Y, wire 1 + 65, 8, 2 ! Plane Y, wire 2 + 66, 8, 3 ! Plane Y, wire 3 + 67, 8, 4 ! Plane Y, wire 4 + 68, 8, 5 ! Plane Y, wire 5 + 69, 8, 6 ! Plane Y, wire 6 + 70, 8, 7 ! Plane Y, wire 7 + 71, 8, 8 ! Plane Y, wire 8 + 72, 8, 9 ! Plane Y, wire 9 + 73, 8, 10 ! Plane Y, wire 10 + 74, 8, 11 ! Plane Y, wire 11 + 75, 8, 12 ! Plane Y, wire 12 + 76, 8, 13 ! Plane Y, wire 13 + 80, 8, 14 ! Plane Y, wire 14 + 81, 8, 15 ! Plane Y, wire 15 + 82, 8, 16 ! Plane Y, wire 16 + 83, 8, 17 ! Plane Y, wire 17 + 84, 8, 18 ! Plane Y, wire 18 + 85, 8, 19 ! Plane Y, wire 19 + 86, 8, 20 ! Plane Y, wire 20 + 87, 8, 21 ! Plane Y, wire 21 + 88, 8, 22 ! Plane Y, wire 22 + 89, 8, 23 ! Plane Y, wire 23 + 90, 8, 24 ! Plane Y, wire 24 + 91, 8, 25 ! Plane Y, wire 25 + 92, 8, 26 ! Plane Y, wire 26 + 96, 8, 27 ! Plane Y, wire 27 + 97, 8, 28 ! Plane Y, wire 28 + 98, 8, 29 ! Plane Y, wire 29 + 99, 8, 30 ! Plane Y, wire 30 + 100, 8, 31 ! Plane Y, wire 31 + 101, 8, 32 ! Plane Y, wire 32 + 102, 8, 33 ! Plane Y, wire 33 + 103, 8, 34 ! Plane Y, wire 34 + 104, 8, 35 ! Plane Y, wire 35 + 105, 8, 36 ! Plane Y, wire 36 + 106, 8, 37 ! Plane Y, wire 37 + 107, 8, 38 ! Plane Y, wire 38 + 108, 8, 39 ! Plane Y, wire 39 + 112, 8, 40 ! Plane Y, wire 40 + 113, 8, 41 ! Plane Y, wire 41 + 114, 8, 42 ! Plane Y, wire 42 + 115, 8, 43 ! Plane Y, wire 43 + 116, 8, 44 ! Plane Y, wire 44 + 117, 8, 45 ! Plane Y, wire 45 + 118, 8, 46 ! Plane Y, wire 46 + 119, 8, 47 ! Plane Y, wire 47 + 120, 8, 48 ! Plane Y, wire 48 + 121, 8, 49 ! Plane Y, wire 49 + 122, 8, 50 ! Plane Y, wire 50 + 123, 8, 51 ! Plane Y, wire 51 + 124, 8, 52 ! Plane Y, wire 52 + +SLOT=10 +REFINDEX=0 + 127,1000, 0, 1 + 64, 11, 1 ! Plane Y', wire 1 + 65, 11, 2 ! Plane Y', wire 2 + 66, 11, 3 ! Plane Y', wire 3 + 67, 11, 4 ! Plane Y', wire 4 + 68, 11, 5 ! Plane Y', wire 5 + 69, 11, 6 ! Plane Y', wire 6 + 70, 11, 7 ! Plane Y', wire 7 + 71, 11, 8 ! Plane Y', wire 8 + 72, 11, 9 ! Plane Y', wire 9 + 73, 11, 10 ! Plane Y', wire 10 + 74, 11, 11 ! Plane Y', wire 11 + 75, 11, 12 ! Plane Y', wire 12 + 76, 11, 13 ! Plane Y', wire 13 + 80, 11, 14 ! Plane Y', wire 14 + 81, 11, 15 ! Plane Y', wire 15 + 82, 11, 16 ! Plane Y', wire 16 + 83, 11, 17 ! Plane Y', wire 17 + 84, 11, 18 ! Plane Y', wire 18 + 85, 11, 19 ! Plane Y', wire 19 + 86, 11, 20 ! Plane Y', wire 20 + 87, 11, 21 ! Plane Y', wire 21 + 88, 11, 22 ! Plane Y', wire 22 + 89, 11, 23 ! Plane Y', wire 23 + 90, 11, 24 ! Plane Y', wire 24 + 91, 11, 25 ! Plane Y', wire 25 + 92, 11, 26 ! Plane Y', wire 26 + 96, 11, 27 ! Plane Y', wire 27 + 97, 11, 28 ! Plane Y', wire 28 + 98, 11, 29 ! Plane Y', wire 29 + 99, 11, 30 ! Plane Y', wire 30 + 100, 11, 31 ! Plane Y', wire 31 + 101, 11, 32 ! Plane Y', wire 32 + 102, 11, 33 ! Plane Y', wire 33 + 103, 11, 34 ! Plane Y', wire 34 + 104, 11, 35 ! Plane Y', wire 35 + 105, 11, 36 ! Plane Y', wire 36 + 106, 11, 37 ! Plane Y', wire 37 + 107, 11, 38 ! Plane Y', wire 38 + 108, 11, 39 ! Plane Y', wire 39 + 112, 11, 40 ! Plane Y', wire 40 + 113, 11, 41 ! Plane Y', wire 41 + 114, 11, 42 ! Plane Y', wire 42 + 115, 11, 43 ! Plane Y', wire 43 + 116, 11, 44 ! Plane Y', wire 44 + 117, 11, 45 ! Plane Y', wire 45 + 118, 11, 46 ! Plane Y', wire 46 + 119, 11, 47 ! Plane Y', wire 47 + 120, 11, 48 ! Plane Y', wire 48 + 121, 11, 49 ! Plane Y', wire 49 + 122, 11, 50 ! Plane Y', wire 50 + 123, 11, 51 ! Plane Y', wire 51 + 124, 11, 52 ! Plane Y', wire 52 + + +DETECTOR=13 + +ROC=1 + +SLOT=8 + 0, 1, 1, 0 ! h1x01A+ + 1, 1, 2, 0 ! h1x02A+ + 2, 1, 3, 0 ! h1x03A+ + 3, 1, 4, 0 ! h1x04A+ + 4, 1, 5, 0 ! h1x05A+ + 5, 1, 6, 0 ! h1x06A+ + 6, 1, 7, 0 ! h1x07A+ + 7, 1, 8, 0 ! h1x08A+ + 8, 1, 9, 0 ! h1x09A+ + 9, 1, 10, 0 ! h1x10A+ + 10, 1, 11, 0 ! h1x11A+ + 11, 1, 12, 0 ! h1x12A+ + 12, 1, 13, 0 ! h1x13A+ + 13, 1, 14, 0 ! h1x14A+ + 14, 1, 15, 0 ! h1x15A+ + 15, 1, 16, 0 ! h1x16A+ + +SLOT=9 + 0, 1, 1, 1 ! h1x01A- + 1, 1, 2, 1 ! h1x02A- + 2, 1, 3, 1 ! h1x03A- + 3, 1, 4, 1 ! h1x04A- + 4, 1, 5, 1 ! h1x05A- + 5, 1, 6, 1 ! h1x06A- + 6, 1, 7, 1 ! h1x07A- + 7, 1, 8, 1 ! h1x08A- + 8, 1, 9, 1 ! h1x09A- + 9, 1, 10, 1 ! h1x10A- + 10, 1, 11, 1 ! h1x11A- + 11, 1, 12, 1 ! h1x12A- + 12, 1, 13, 1 ! h1x13A- + 13, 1, 14, 1 ! h1x14A- + 14, 1, 15, 1 ! h1x15A- + 15, 1, 16, 1 ! h1x16A- + +SLOT=10 + 0, 2, 1, 0 ! h1y01A+ + 1, 2, 2, 0 ! h1y02A+ + 2, 2, 3, 0 ! h1y03A+ + 3, 2, 4, 0 ! h1y04A+ + 4, 2, 5, 0 ! h1y05A+ + 5, 2, 6, 0 ! h1y06A+ + 6, 2, 7, 0 ! h1y07A+ + 7, 2, 8, 0 ! h1y08A+ + 8, 2, 9, 0 ! h1y09A+ + 9, 2, 10, 0 ! h1y10A+ + 10, 2, 1, 1 ! h1y01A- + 11, 2, 2, 1 ! h1y02A- + 12, 2, 3, 1 ! h1y03A- + 13, 2, 4, 1 ! h1y04A- + 14, 2, 5, 1 ! h1y05A- + 15, 2, 6, 1 ! h1y06A- + +SLOT=13 + 0, 2, 7, 1 ! h1y07A- + 1, 2, 8, 1 ! h1y08A- + 2, 2, 9, 1 ! h1y09A- + 3, 2, 10, 1 ! h1y10A- + 4, 3, 1, 0 ! h2x01A+ + 5, 3, 2, 0 ! h2x02A+ + 6, 3, 3, 0 ! h2x03A+ + 7, 3, 4, 0 ! h2x04A+ + 8, 3, 5, 0 ! h2x05A+ + 9, 3, 6, 0 ! h2x06A+ + 10, 3, 7, 0 ! h2x07A+ + 11, 3, 8, 0 ! h2x08A+ + 12, 3, 9, 0 ! h2x09A+ + 13, 3, 10, 0 ! h2x10A+ + 14, 3, 11, 0 ! h2x11A+ + 15, 3, 12, 0 ! h2x12A+ + +SLOT=14 + 0, 3, 13, 0 ! h2x13A+ + 1, 3, 14, 0 ! h2x14A+ + 2, 3, 15, 0 ! h2x15A+ + 3, 3, 16, 0 ! h2x16A+ + 4, 3, 1, 1 ! h2x01A- + 5, 3, 2, 1 ! h2x02A- + 6, 3, 3, 1 ! h2x03A- + 7, 3, 4, 1 ! h2x04A- + 8, 3, 5, 1 ! h2x05A- + 9, 3, 6, 1 ! h2x06A- + 10, 3, 7, 1 ! h2x07A- + 11, 3, 8, 1 ! h2x08A- + 12, 3, 9, 1 ! h2x09A- + 13, 3, 10, 1 ! h2x10A- + 14, 3, 11, 1 ! h2x11A- + 15, 3, 12, 1 ! h2x12A- + +SLOT=15 + 0, 3, 13, 1 ! h2x13A- + 1, 3, 14, 1 ! h2x14A- + 2, 3, 15, 1 ! h2x15A- + 3, 3, 16, 1 ! h2x16A- + 4, 4, 1, 0 ! h2y01A+ + 5, 4, 2, 0 ! h2y02A+ + 6, 4, 3, 0 ! h2y03A+ + 7, 4, 4, 0 ! h2y04A+ + 8, 4, 5, 0 ! h2y05A+ + 9, 4, 6, 0 ! h2y06A+ + 10, 4, 7, 0 ! h2y07A+ + 11, 4, 8, 0 ! h2y08A+ + 12, 4, 9, 0 ! h2y09A+ + 13, 4, 10, 0 ! h2y10A+ + 14, 4, 1, 1 ! h2y01A- + 15, 4, 2, 1 ! h2y02A- + +SLOT=16 + 0, 4, 3, 1 ! h2y03A- + 1, 4, 4, 1 ! h2y04A- + 2, 4, 5, 1 ! h2y05A- + 3, 4, 6, 1 ! h2y06A- + 4, 4, 7, 1 ! h2y07A- + 5, 4, 8, 1 ! h2y08A- + 6, 4, 9, 1 ! h2y09A- + 7, 4, 10, 1 ! h2y10A- + +SLOT=20 +REFINDEX=0 + 127,1000, 0, 0 + 0, 1, 1, 2 ! h1x01T+ + 1, 1, 3, 2 ! h1x03T+ + 2, 1, 5, 2 ! h1x05T+ + 3, 1, 7, 2 ! h1x07T+ + 4, 1, 2, 2 ! h1x02T+ + 5, 1, 4, 2 ! h1x04T+ + 6, 1, 6, 2 ! h1x06T+ + 7, 1, 8, 2 ! h1x08T+ + 8, 1, 9, 2 ! h1x09T+ + 9, 1, 11, 2 ! h1x11T+ + 10, 1, 13, 2 ! h1x13T+ + 11, 1, 15, 2 ! h1x15T+ + 12, 1, 10, 2 ! h1x10T+ + 13, 1, 12, 2 ! h1x12T+ + 14, 1, 14, 2 ! h1x14T+ + 15, 1, 16, 2 ! h1x16T+ + 16, 1, 1, 3 ! h1x01T- + 17, 1, 3, 3 ! h1x03T- + 18, 1, 5, 3 ! h1x05T- + 19, 1, 7, 3 ! h1x07T- + 20, 1, 2, 3 ! h1x02T- + 21, 1, 4, 3 ! h1x04T- + 22, 1, 6, 3 ! h1x06T- + 23, 1, 8, 3 ! h1x08T- + 24, 1, 9, 3 ! h1x09T- + 25, 1, 11, 3 ! h1x11T- + 26, 1, 13, 3 ! h1x13T- + 27, 1, 15, 3 ! h1x15T- + 28, 1, 10, 3 ! h1x10T- + 29, 1, 12, 3 ! h1x12T- + 30, 1, 14, 3 ! h1x14T- + 31, 1, 16, 3 ! h1x16T- + 32, 2, 1, 2 ! h1y01T+ + 33, 2, 3, 2 ! h1y03T+ + 34, 2, 5, 2 ! h1y05T+ + 35, 2, 7, 2 ! h1y07T+ + 36, 2, 2, 2 ! h1y02T+ + 37, 2, 4, 2 ! h1y04T+ + 38, 2, 6, 2 ! h1y06T+ + 39, 2, 8, 2 ! h1y08T+ + 40, 2, 9, 2 ! h1y09T+ + 44, 2, 10, 2 ! h1y10T+ + 48, 2, 1, 3 ! h1y01T- + 49, 2, 3, 3 ! h1y03T- + 50, 2, 5, 3 ! h1y05T- + 51, 2, 7, 3 ! h1y07T- + 52, 2, 2, 3 ! h1y02T- + 53, 2, 4, 3 ! h1y04T- + 54, 2, 6, 3 ! h1y06T- + 55, 2, 8, 3 ! h1y08T- + 56, 2, 9, 3 ! h1y09T- + 60, 2, 10, 3 ! h1y10T- + 64, 3, 1, 2 ! h2x01T+ + 65, 3, 3, 2 ! h2x03T+ + 66, 3, 5, 2 ! h2x05T+ + 67, 3, 7, 2 ! h2x07T+ + 68, 3, 2, 2 ! h2x02T+ + 69, 3, 4, 2 ! h2x04T+ + 70, 3, 6, 2 ! h2x06T+ + 71, 3, 8, 2 ! h2x08T+ + 72, 3, 9, 2 ! h2x09T+ + 73, 3, 11, 2 ! h2x11T+ + 74, 3, 13, 2 ! h2x13T+ + 75, 3, 15, 2 ! h2x15T+ + 76, 3, 10, 2 ! h2x10T+ + 77, 3, 12, 2 ! h2x12T+ + 78, 3, 14, 2 ! h2x14T+ + 79, 3, 16, 2 ! h2x16T+ + 80, 3, 1, 3 ! h2x01T- + 81, 3, 3, 3 ! h2x03T- + 82, 3, 5, 3 ! h2x05T- + 83, 3, 7, 3 ! h2x07T- + 84, 3, 2, 3 ! h2x02T- + 85, 3, 4, 3 ! h2x04T- + 86, 3, 6, 3 ! h2x06T- + 87, 3, 8, 3 ! h2x08T- + 88, 3, 9, 3 ! h2x09T- + 89, 3, 11, 3 ! h2x11T- + 90, 3, 13, 3 ! h2x13T- + 91, 3, 15, 3 ! h2x15T- + 92, 3, 10, 3 ! h2x10T- + 93, 3, 12, 3 ! h2x12T- + 94, 3, 14, 3 ! h2x14T- + 95, 3, 16, 3 ! h2x16T- + 96, 4, 1, 2 ! h2y01T+ + 97, 4, 3, 2 ! h2y03T+ + 98, 4, 5, 2 ! h2y05T+ + 99, 4, 7, 2 ! h2y07T+ + 100, 4, 2, 2 ! h2y02T+ + 101, 4, 4, 2 ! h2y04T+ + 102, 4, 6, 2 ! h2y06T+ + 103, 4, 8, 2 ! h2y08T+ + 104, 4, 9, 2 ! h2y09T+ + 108, 4, 10, 2 ! h2y10T+ + 112, 4, 1, 3 ! h2y01T- + 113, 4, 3, 3 ! h2y03T- + 114, 4, 5, 3 ! h2y05T- + 115, 4, 7, 3 ! h2y07T- + 116, 4, 2, 3 ! h2y02T- + 117, 4, 4, 3 ! h2y04T- + 118, 4, 6, 3 ! h2y06T- + 119, 4, 8, 3 ! h2y08T- + 120, 4, 9, 3 ! h2y09T- + 124, 4, 10, 3 ! h2y10T- + + +DETECTOR=14 + +ROC=1 + +SLOT=7 + 14, 1, 1, 0 ! hCER01 + 15, 1, 2, 0 ! hCER02 + + +DETECTOR=15 + +ROC=1 + +SLOT=3 + 0, 1, 1, 0 ! hA01+ + 1, 1, 2, 0 ! hA02+ + 2, 1, 3, 0 ! hA03+ + 3, 1, 4, 0 ! hA04+ + 4, 1, 5, 0 ! hA05+ + 5, 1, 6, 0 ! hA06+ + 6, 1, 7, 0 ! hA07+ + 7, 1, 8, 0 ! hA08+ + 8, 1, 9, 0 ! hA09+ + 9, 1, 10, 0 ! hA10+ + 10, 1, 11, 0 ! hA11+ + 11, 1, 12, 0 ! hA12+ + 12, 1, 13, 0 ! hA13+ + 13, 1, 1, 1 ! hA01- + 14, 1, 2, 1 ! hA02- + 15, 1, 3, 1 ! hA03- + +SLOT=4 + 0, 1, 4, 1 ! hA04- + 1, 1, 5, 1 ! hA05- + 2, 1, 6, 1 ! hA06- + 3, 1, 7, 1 ! hA07- + 4, 1, 8, 1 ! hA08- + 5, 1, 9, 1 ! hA09- + 6, 1, 10, 1 ! hA10- + 7, 1, 11, 1 ! hA11- + 8, 1, 12, 1 ! hA12- + 9, 1, 13, 1 ! hA13- + 10, 2, 1, 0 ! hB01+ + 11, 2, 2, 0 ! hB02+ + 12, 2, 3, 0 ! hB03+ + 13, 2, 4, 0 ! hB04+ + 14, 2, 5, 0 ! hB05+ + 15, 2, 6, 0 ! hB06+ + +SLOT=5 + 0, 2, 7, 0 ! hB07+ + 1, 2, 8, 0 ! hB08+ + 2, 2, 9, 0 ! hB09+ + 3, 2, 10, 0 ! hB10+ + 4, 2, 11, 0 ! hB11+ + 5, 2, 12, 0 ! hB12+ + 6, 2, 13, 0 ! hB13+ + 7, 2, 1, 1 ! hB01- + 8, 2, 2, 1 ! hB02- + 9, 2, 3, 1 ! hB03- + 10, 2, 4, 1 ! hB04- + 11, 2, 5, 1 ! hB05- + 12, 2, 6, 1 ! hB06- + 13, 2, 7, 1 ! hB07- + 14, 2, 8, 1 ! hB08- + 15, 2, 9, 1 ! hB09- + +SLOT=6 + 0, 2, 10, 1 ! hB10- + 1, 2, 11, 1 ! hB11- + 2, 2, 12, 1 ! hB12- + 3, 2, 13, 1 ! hB13- + 4, 3, 1, 0 ! hC01+ + 5, 3, 2, 0 ! hC02+ + 6, 3, 3, 0 ! hC03+ + 7, 3, 4, 0 ! hC04+ + 8, 3, 5, 0 ! hC05+ + 9, 3, 6, 0 ! hC06+ + 10, 3, 7, 0 ! hC07+ + 11, 3, 8, 0 ! hC08+ + 12, 3, 9, 0 ! hC09+ + 13, 3, 10, 0 ! hC10+ + 14, 3, 11, 0 ! hC11+ + 15, 3, 12, 0 ! hC12+ + +SLOT=7 + 0, 3, 13, 0 ! hC13+ + 1, 4, 1, 0 ! hD01+ + 2, 4, 2, 0 ! hD02+ + 3, 4, 3, 0 ! hD03+ + 4, 4, 4, 0 ! hD04+ + 5, 4, 5, 0 ! hD05+ + 6, 4, 6, 0 ! hD06+ + 7, 4, 7, 0 ! hD07+ + 8, 4, 8, 0 ! hD08+ + 9, 4, 9, 0 ! hD09+ + 10, 4, 10, 0 ! hD10+ + 11, 4, 11, 0 ! hD11+ + 12, 4, 12, 0 ! hD12+ + 13, 4, 13, 0 ! hD13+ diff --git a/MAPS/HMS/DETEC/hms_stack_spring17_current_run.map b/MAPS/HMS/DETEC/hms_stack_spring17_current_run.map new file mode 100644 index 00000000..93cbf351 --- /dev/null +++ b/MAPS/HMS/DETEC/hms_stack_spring17_current_run.map @@ -0,0 +1,1544 @@ +! THMS_ID=10 :: ADC,TDC +! HDC_ID=11 :: TDC +! HSCIN_ID=13 :: ADC+,ADC-,TDC+,TDC- +! HCER_ID=14 :: (TDC),ADC +! HCAL_ID=15 :: ADC + + +DETECTOR=10 + +ROC=1 + +SLOT=17 + 8, 1, 1, 0 ! hASUM + 9, 1, 2, 0 ! hBSUM + 10, 1, 3, 0 ! hCSUM + 11, 1, 4, 0 ! hDSUM + 12, 1, 5, 0 ! hPSHWR + 13, 1, 6, 0 ! hSHWR + 14, 1, 7, 0 ! hAERSUM + 15, 1, 8, 0 ! hCERSUM + +SLOT=2 + 0, 2, 1, 1 ! h1X + 1, 2, 2, 1 ! h1Y + 2, 2, 3, 1 ! h2X + 3, 2, 4, 1 ! h2Y + 4, 2, 5, 1 ! h1T + 5, 2, 6, 1 ! h2T + 6, 2, 7, 1 ! hT1 + 7, 2, 8, 1 ! hASUM + 8, 2, 9, 1 ! hBSUM + 9, 2, 10, 1 ! hCSUM + 10, 2, 11, 1 ! hDSUM + 11, 2, 12, 1 ! hPSHWRLO + 12, 2, 13, 1 ! hPSHWRHI + 13, 2, 14, 1 ! hSHWR + 14, 2, 15, 1 ! hAERSUM + 15, 2, 16, 1 ! hCERSUM + +SLOT=20 + 127, 2, 17, 1 ! hT2 + +ROC=3 + +SLOT=5 + 111, 2, 18, 1 ! hDCREF1 + +SLOT=8 + 127, 2, 19, 1 ! hDCREF2 + +SLOT=10 + 127, 2, 20, 1 ! hDCREF3 + +SLOT=17 + 127, 2, 21, 1 ! hDCREF4 + + +DETECTOR=11 ! HMS chambers + +ROC=3 + +SLOT=5 +REFINDEX=0 + 111,1000, 0, 0 + 96, 3, 1 ! Plane U, wire 1 + 97, 3, 2 ! Plane U, wire 2 + 98, 3, 3 ! Plane U, wire 3 + 99, 3, 4 ! Plane U, wire 4 + 100, 3, 5 ! Plane U, wire 5 + 101, 3, 6 ! Plane U, wire 6 + 102, 3, 7 ! Plane U, wire 7 + 103, 3, 8 ! Plane U, wire 8 + 104, 3, 9 ! Plane U, wire 9 + 105, 3, 10 ! Plane U, wire 10 + 106, 3, 11 ! Plane U, wire 11 + 107, 3, 12 ! Plane U, wire 12 + 108, 3, 13 ! Plane U, wire 13 + 109, 3, 14 ! Plane U, wire 14 + 110, 1, 113 ! Plane X, wire 113 + 80, 3, 15 ! Plane U, wire 15 + 81, 3, 16 ! Plane U, wire 16 + 82, 3, 17 ! Plane U, wire 17 + 83, 3, 18 ! Plane U, wire 18 + 84, 3, 19 ! Plane U, wire 19 + 85, 3, 20 ! Plane U, wire 20 + 86, 3, 21 ! Plane U, wire 21 + 87, 3, 22 ! Plane U, wire 22 + 88, 3, 23 ! Plane U, wire 23 + 89, 3, 24 ! Plane U, wire 24 + 90, 3, 25 ! Plane U, wire 25 + 91, 3, 26 ! Plane U, wire 26 + 92, 3, 27 ! Plane U, wire 27 + 93, 3, 28 ! Plane U, wire 28 + 94, 3, 29 ! Plane U, wire 29 + 64, 3, 30 ! Plane U, wire 30 + 65, 3, 31 ! Plane U, wire 31 + 66, 3, 32 ! Plane U, wire 32 + 67, 3, 33 ! Plane U, wire 33 + 68, 3, 34 ! Plane U, wire 34 + 69, 3, 35 ! Plane U, wire 35 + 70, 3, 36 ! Plane U, wire 36 + 71, 3, 37 ! Plane U, wire 37 + 72, 3, 38 ! Plane U, wire 38 + 73, 3, 39 ! Plane U, wire 39 + 74, 3, 40 ! Plane U, wire 40 + 75, 3, 41 ! Plane U, wire 41 + 76, 3, 42 ! Plane U, wire 42 + 77, 3, 43 ! Plane U, wire 43 + 78, 3, 44 ! Plane U, wire 44 + 79, 3, 45 ! Plane U, wire 45 + 48, 3, 46 ! Plane U, wire 46 + 49, 3, 47 ! Plane U, wire 47 + 50, 3, 48 ! Plane U, wire 48 + 51, 3, 49 ! Plane U, wire 49 + 52, 3, 50 ! Plane U, wire 50 + 53, 3, 51 ! Plane U, wire 51 + 54, 3, 52 ! Plane U, wire 52 + 55, 3, 53 ! Plane U, wire 53 + 56, 3, 54 ! Plane U, wire 54 + 57, 3, 55 ! Plane U, wire 55 + 58, 3, 56 ! Plane U, wire 56 + 59, 3, 57 ! Plane U, wire 57 + 60, 3, 58 ! Plane U, wire 58 + 61, 3, 59 ! Plane U, wire 59 + 62, 3, 60 ! Plane U, wire 60 + 32, 3, 61 ! Plane U, wire 61 + 33, 3, 62 ! Plane U, wire 62 + 34, 3, 63 ! Plane U, wire 63 + 35, 3, 64 ! Plane U, wire 64 + 36, 3, 65 ! Plane U, wire 65 + 37, 3, 66 ! Plane U, wire 66 + 38, 3, 67 ! Plane U, wire 67 + 39, 3, 68 ! Plane U, wire 68 + 40, 3, 69 ! Plane U, wire 69 + 41, 3, 70 ! Plane U, wire 70 + 42, 3, 71 ! Plane U, wire 71 + 43, 3, 72 ! Plane U, wire 72 + 44, 3, 73 ! Plane U, wire 73 + 45, 3, 74 ! Plane U, wire 74 + 46, 3, 75 ! Plane U, wire 75 + 47, 3, 76 ! Plane U, wire 76 + 16, 3, 77 ! Plane U, wire 77 + 17, 3, 78 ! Plane U, wire 78 + 18, 3, 79 ! Plane U, wire 79 + 19, 3, 80 ! Plane U, wire 80 + 20, 3, 81 ! Plane U, wire 81 + 21, 3, 82 ! Plane U, wire 82 + 22, 3, 83 ! Plane U, wire 83 + 23, 3, 84 ! Plane U, wire 84 + 24, 3, 85 ! Plane U, wire 85 + 25, 3, 86 ! Plane U, wire 86 + 26, 3, 87 ! Plane U, wire 87 + 27, 3, 88 ! Plane U, wire 88 + 28, 3, 89 ! Plane U, wire 89 + 29, 3, 90 ! Plane U, wire 90 + 30, 3, 91 ! Plane U, wire 91 + 0, 3, 92 ! Plane U, wire 92 + 1, 3, 93 ! Plane U, wire 93 + 2, 3, 94 ! Plane U, wire 94 + 3, 3, 95 ! Plane U, wire 95 + 4, 3, 96 ! Plane U, wire 96 + 5, 3, 97 ! Plane U, wire 97 + 6, 3, 98 ! Plane U, wire 98 + 7, 3, 99 ! Plane U, wire 99 + 8, 3, 100 ! Plane U, wire 100 + 9, 3, 101 ! Plane U, wire 101 + 10, 3, 102 ! Plane U, wire 102 + 11, 3, 103 ! Plane U, wire 103 + 12, 3, 104 ! Plane U, wire 104 + 13, 3, 105 ! Plane U, wire 105 + 14, 3, 106 ! Plane U, wire 106 + 15, 3, 107 ! Plane U, wire 107 + +SLOT=7 +REFINDEX=0 + 96, 4, 1 ! Plane V, wire 1 + 97, 4, 2 ! Plane V, wire 2 + 98, 4, 3 ! Plane V, wire 3 + 99, 4, 4 ! Plane V, wire 4 + 100, 4, 5 ! Plane V, wire 5 + 101, 4, 6 ! Plane V, wire 6 + 102, 4, 7 ! Plane V, wire 7 + 103, 4, 8 ! Plane V, wire 8 + 104, 4, 9 ! Plane V, wire 9 + 105, 4, 10 ! Plane V, wire 10 + 106, 4, 11 ! Plane V, wire 11 + 107, 4, 12 ! Plane V, wire 12 + 108, 4, 13 ! Plane V, wire 13 + 109, 4, 14 ! Plane V, wire 14 + 110, 6, 113 ! Plane X', wire 113 + 112, 4, 15 ! Plane V, wire 15 + 113, 4, 16 ! Plane V, wire 16 + 114, 4, 17 ! Plane V, wire 17 + 115, 4, 18 ! Plane V, wire 18 + 116, 4, 19 ! Plane V, wire 19 + 117, 4, 20 ! Plane V, wire 20 + 118, 4, 21 ! Plane V, wire 21 + 119, 4, 22 ! Plane V, wire 22 + 120, 4, 23 ! Plane V, wire 23 + 121, 4, 24 ! Plane V, wire 24 + 122, 4, 25 ! Plane V, wire 25 + 123, 4, 26 ! Plane V, wire 26 + 124, 4, 27 ! Plane V, wire 27 + 125, 4, 28 ! Plane V, wire 28 + 126, 4, 29 ! Plane V, wire 29 + +SLOT=8 +REFINDEX=0 + 127,1000, 0, 1 + 0, 4, 30 ! Plane V, wire 30 + 1, 4, 31 ! Plane V, wire 31 + 2, 4, 32 ! Plane V, wire 32 + 3, 4, 33 ! Plane V, wire 33 + 4, 4, 34 ! Plane V, wire 34 + 5, 4, 35 ! Plane V, wire 35 + 6, 4, 36 ! Plane V, wire 36 + 7, 4, 37 ! Plane V, wire 37 + 8, 4, 38 ! Plane V, wire 38 + 9, 4, 39 ! Plane V, wire 39 + 10, 4, 40 ! Plane V, wire 40 + 11, 4, 41 ! Plane V, wire 41 + 12, 4, 42 ! Plane V, wire 42 + 13, 4, 43 ! Plane V, wire 43 + 14, 4, 44 ! Plane V, wire 44 + 15, 4, 45 ! Plane V, wire 45 + 16, 4, 46 ! Plane V, wire 46 + 17, 4, 47 ! Plane V, wire 47 + 18, 4, 48 ! Plane V, wire 48 + 19, 4, 49 ! Plane V, wire 49 + 20, 4, 50 ! Plane V, wire 50 + 21, 4, 51 ! Plane V, wire 51 + 22, 4, 52 ! Plane V, wire 52 + 23, 4, 53 ! Plane V, wire 53 + 24, 4, 54 ! Plane V, wire 54 + 25, 4, 55 ! Plane V, wire 55 + 26, 4, 56 ! Plane V, wire 56 + 27, 4, 57 ! Plane V, wire 57 + 28, 4, 58 ! Plane V, wire 58 + 29, 4, 59 ! Plane V, wire 59 + 30, 4, 60 ! Plane V, wire 60 + 32, 4, 61 ! Plane V, wire 61 + 33, 4, 62 ! Plane V, wire 62 + 34, 4, 63 ! Plane V, wire 63 + 35, 4, 64 ! Plane V, wire 64 + 36, 4, 65 ! Plane V, wire 65 + 37, 4, 66 ! Plane V, wire 66 + 38, 4, 67 ! Plane V, wire 67 + 39, 4, 68 ! Plane V, wire 68 + 40, 4, 69 ! Plane V, wire 69 + 41, 4, 70 ! Plane V, wire 70 + 42, 4, 71 ! Plane V, wire 71 + 43, 4, 72 ! Plane V, wire 72 + 44, 4, 73 ! Plane V, wire 73 + 45, 4, 74 ! Plane V, wire 74 + 46, 4, 75 ! Plane V, wire 75 + 47, 4, 76 ! Plane V, wire 76 + 48, 4, 77 ! Plane V, wire 77 + 49, 4, 78 ! Plane V, wire 78 + 50, 4, 79 ! Plane V, wire 79 + 51, 4, 80 ! Plane V, wire 80 + 52, 4, 81 ! Plane V, wire 81 + 53, 4, 82 ! Plane V, wire 82 + 54, 4, 83 ! Plane V, wire 83 + 55, 4, 84 ! Plane V, wire 84 + 56, 4, 85 ! Plane V, wire 85 + 57, 4, 86 ! Plane V, wire 86 + 58, 4, 87 ! Plane V, wire 87 + 59, 4, 88 ! Plane V, wire 88 + 60, 4, 89 ! Plane V, wire 89 + 61, 4, 90 ! Plane V, wire 90 + 62, 4, 91 ! Plane V, wire 91 + +SLOT=4 +REFINDEX=0 + 96, 4, 92 ! Plane V, wire 92 + 97, 4, 93 ! Plane V, wire 93 + 98, 4, 94 ! Plane V, wire 94 + 99, 4, 95 ! Plane V, wire 95 + 100, 4, 96 ! Plane V, wire 96 + 101, 4, 97 ! Plane V, wire 97 + 102, 4, 98 ! Plane V, wire 98 + 103, 4, 99 ! Plane V, wire 99 + 104, 4, 100 ! Plane V, wire 100 + 105, 4, 101 ! Plane V, wire 101 + 106, 4, 102 ! Plane V, wire 102 + 107, 4, 103 ! Plane V, wire 103 + 108, 4, 104 ! Plane V, wire 104 + 109, 4, 105 ! Plane V, wire 105 + 110, 4, 106 ! Plane V, wire 106 + 111, 4, 107 ! Plane V, wire 107 + 80, 1, 1 ! Plane X, wire 1 + 81, 1, 2 ! Plane X, wire 2 + 82, 1, 3 ! Plane X, wire 3 + 83, 1, 4 ! Plane X, wire 4 + 84, 1, 5 ! Plane X, wire 5 + 85, 1, 6 ! Plane X, wire 6 + 86, 1, 7 ! Plane X, wire 7 + 87, 1, 8 ! Plane X, wire 8 + 88, 1, 9 ! Plane X, wire 9 + 89, 1, 10 ! Plane X, wire 10 + 90, 1, 11 ! Plane X, wire 11 + 91, 1, 12 ! Plane X, wire 12 + 92, 1, 13 ! Plane X, wire 13 + 93, 1, 14 ! Plane X, wire 14 + 94, 1, 15 ! Plane X, wire 15 + 95, 1, 16 ! Plane X, wire 16 + 64, 1, 17 ! Plane X, wire 17 + 65, 1, 18 ! Plane X, wire 18 + 66, 1, 19 ! Plane X, wire 19 + 67, 1, 20 ! Plane X, wire 20 + 68, 1, 21 ! Plane X, wire 21 + 69, 1, 22 ! Plane X, wire 22 + 70, 1, 23 ! Plane X, wire 23 + 71, 1, 24 ! Plane X, wire 24 + 72, 1, 25 ! Plane X, wire 25 + 73, 1, 26 ! Plane X, wire 26 + 74, 1, 27 ! Plane X, wire 27 + 75, 1, 28 ! Plane X, wire 28 + 76, 1, 29 ! Plane X, wire 29 + 77, 1, 30 ! Plane X, wire 30 + 78, 1, 31 ! Plane X, wire 31 + 79, 1, 32 ! Plane X, wire 32 + 48, 1, 33 ! Plane X, wire 33 + 49, 1, 34 ! Plane X, wire 34 + 50, 1, 35 ! Plane X, wire 35 + 51, 1, 36 ! Plane X, wire 36 + 52, 1, 37 ! Plane X, wire 37 + 53, 1, 38 ! Plane X, wire 38 + 54, 1, 39 ! Plane X, wire 39 + 55, 1, 40 ! Plane X, wire 40 + 56, 1, 41 ! Plane X, wire 41 + 57, 1, 42 ! Plane X, wire 42 + 58, 1, 43 ! Plane X, wire 43 + 59, 1, 44 ! Plane X, wire 44 + 60, 1, 45 ! Plane X, wire 45 + 61, 1, 46 ! Plane X, wire 46 + 62, 1, 47 ! Plane X, wire 47 + 63, 1, 48 ! Plane X, wire 48 + 32, 1, 49 ! Plane X, wire 49 + 33, 1, 50 ! Plane X, wire 50 + 34, 1, 51 ! Plane X, wire 51 + 35, 1, 52 ! Plane X, wire 52 + 36, 1, 53 ! Plane X, wire 53 + 37, 1, 54 ! Plane X, wire 54 + 38, 1, 55 ! Plane X, wire 55 + 39, 1, 56 ! Plane X, wire 56 + 40, 1, 57 ! Plane X, wire 57 + 41, 1, 58 ! Plane X, wire 58 + 42, 1, 59 ! Plane X, wire 59 + 43, 1, 60 ! Plane X, wire 60 + 44, 1, 61 ! Plane X, wire 61 + 45, 1, 62 ! Plane X, wire 62 + 46, 1, 63 ! Plane X, wire 63 + 47, 1, 64 ! Plane X, wire 64 + 16, 1, 65 ! Plane X, wire 65 + 17, 1, 66 ! Plane X, wire 66 + 18, 1, 67 ! Plane X, wire 67 + 19, 1, 68 ! Plane X, wire 68 + 20, 1, 69 ! Plane X, wire 69 + 21, 1, 70 ! Plane X, wire 70 + 22, 1, 71 ! Plane X, wire 71 + 23, 1, 72 ! Plane X, wire 72 + 24, 1, 73 ! Plane X, wire 73 + 25, 1, 74 ! Plane X, wire 74 + 26, 1, 75 ! Plane X, wire 75 + 27, 1, 76 ! Plane X, wire 76 + 28, 1, 77 ! Plane X, wire 77 + 29, 1, 78 ! Plane X, wire 78 + 30, 1, 79 ! Plane X, wire 79 + 31, 1, 80 ! Plane X, wire 80 + 0, 1, 81 ! Plane X, wire 81 + 1, 1, 82 ! Plane X, wire 82 + 2, 1, 83 ! Plane X, wire 83 + 3, 1, 84 ! Plane X, wire 84 + 4, 1, 85 ! Plane X, wire 85 + 5, 1, 86 ! Plane X, wire 86 + 6, 1, 87 ! Plane X, wire 87 + 7, 1, 88 ! Plane X, wire 88 + 8, 1, 89 ! Plane X, wire 89 + 9, 1, 90 ! Plane X, wire 90 + 10, 1, 91 ! Plane X, wire 91 + 11, 1, 92 ! Plane X, wire 92 + 12, 1, 93 ! Plane X, wire 93 + 13, 1, 94 ! Plane X, wire 94 + 14, 1, 95 ! Plane X, wire 95 + 15, 1, 96 ! Plane X, wire 96 + +SLOT=7 +REFINDEX=0 + 80, 1, 97 ! Plane X, wire 97 + 81, 1, 98 ! Plane X, wire 98 + 82, 1, 99 ! Plane X, wire 99 + 83, 1, 100 ! Plane X, wire 100 + 84, 1, 101 ! Plane X, wire 101 + 85, 1, 102 ! Plane X, wire 102 + 86, 1, 103 ! Plane X, wire 103 + 87, 1, 104 ! Plane X, wire 104 + 88, 1, 105 ! Plane X, wire 105 + 89, 1, 106 ! Plane X, wire 106 + 90, 1, 107 ! Plane X, wire 107 + 91, 1, 108 ! Plane X, wire 108 + 92, 1, 109 ! Plane X, wire 109 + 93, 1, 110 ! Plane X, wire 110 + 94, 1, 111 ! Plane X, wire 111 + 95, 1, 112 ! Plane X, wire 112 + +SLOT=4 +REFINDEX=0 + 112, 6, 1 ! Plane X', wire 1 + 113, 6, 2 ! Plane X', wire 2 + 114, 6, 3 ! Plane X', wire 3 + 115, 6, 4 ! Plane X', wire 4 + 116, 6, 5 ! Plane X', wire 5 + 117, 6, 6 ! Plane X', wire 6 + 118, 6, 7 ! Plane X', wire 7 + 119, 6, 8 ! Plane X', wire 8 + 120, 6, 9 ! Plane X', wire 9 + 121, 6, 10 ! Plane X', wire 10 + 122, 6, 11 ! Plane X', wire 11 + 123, 6, 12 ! Plane X', wire 12 + 124, 6, 13 ! Plane X', wire 13 + 125, 6, 14 ! Plane X', wire 14 + 126, 6, 15 ! Plane X', wire 15 + 127, 6, 16 ! Plane X', wire 16 + +SLOT=5 +REFINDEX=0 + 112, 6, 17 ! Plane X', wire 17 + 113, 6, 18 ! Plane X', wire 18 + 114, 6, 19 ! Plane X', wire 19 + 115, 6, 20 ! Plane X', wire 20 + 116, 6, 21 ! Plane X', wire 21 + 117, 6, 22 ! Plane X', wire 22 + 118, 6, 23 ! Plane X', wire 23 + 119, 6, 24 ! Plane X', wire 24 + 120, 6, 25 ! Plane X', wire 25 + 121, 6, 26 ! Plane X', wire 26 + 122, 6, 27 ! Plane X', wire 27 + 123, 6, 28 ! Plane X', wire 28 + 124, 6, 29 ! Plane X', wire 29 + 125, 6, 30 ! Plane X', wire 30 + 126, 6, 31 ! Plane X', wire 31 + 127, 6, 32 ! Plane X', wire 32 + +SLOT=7 +REFINDEX=0 + 0, 6, 33 ! Plane X', wire 33 + 1, 6, 34 ! Plane X', wire 34 + 2, 6, 35 ! Plane X', wire 35 + 3, 6, 36 ! Plane X', wire 36 + 4, 6, 37 ! Plane X', wire 37 + 5, 6, 38 ! Plane X', wire 38 + 6, 6, 39 ! Plane X', wire 39 + 7, 6, 40 ! Plane X', wire 40 + 8, 6, 41 ! Plane X', wire 41 + 9, 6, 42 ! Plane X', wire 42 + 10, 6, 43 ! Plane X', wire 43 + 11, 6, 44 ! Plane X', wire 44 + 12, 6, 45 ! Plane X', wire 45 + 13, 6, 46 ! Plane X', wire 46 + 14, 6, 47 ! Plane X', wire 47 + 15, 6, 48 ! Plane X', wire 48 + 16, 6, 49 ! Plane X', wire 49 + 17, 6, 50 ! Plane X', wire 50 + 18, 6, 51 ! Plane X', wire 51 + 19, 6, 52 ! Plane X', wire 52 + 20, 6, 53 ! Plane X', wire 53 + 21, 6, 54 ! Plane X', wire 54 + 22, 6, 55 ! Plane X', wire 55 + 23, 6, 56 ! Plane X', wire 56 + 24, 6, 57 ! Plane X', wire 57 + 25, 6, 58 ! Plane X', wire 58 + 26, 6, 59 ! Plane X', wire 59 + 27, 6, 60 ! Plane X', wire 60 + 28, 6, 61 ! Plane X', wire 61 + 29, 6, 62 ! Plane X', wire 62 + 30, 6, 63 ! Plane X', wire 63 + 31, 6, 64 ! Plane X', wire 64 + 32, 6, 65 ! Plane X', wire 65 + 33, 6, 66 ! Plane X', wire 66 + 34, 6, 67 ! Plane X', wire 67 + 35, 6, 68 ! Plane X', wire 68 + 36, 6, 69 ! Plane X', wire 69 + 37, 6, 70 ! Plane X', wire 70 + 38, 6, 71 ! Plane X', wire 71 + 39, 6, 72 ! Plane X', wire 72 + 40, 6, 73 ! Plane X', wire 73 + 41, 6, 74 ! Plane X', wire 74 + 42, 6, 75 ! Plane X', wire 75 + 43, 6, 76 ! Plane X', wire 76 + 44, 6, 77 ! Plane X', wire 77 + 45, 6, 78 ! Plane X', wire 78 + 46, 6, 79 ! Plane X', wire 79 + 47, 6, 80 ! Plane X', wire 80 + 48, 6, 81 ! Plane X', wire 81 + 49, 6, 82 ! Plane X', wire 82 + 50, 6, 83 ! Plane X', wire 83 + 51, 6, 84 ! Plane X', wire 84 + 52, 6, 85 ! Plane X', wire 85 + 53, 6, 86 ! Plane X', wire 86 + 54, 6, 87 ! Plane X', wire 87 + 55, 6, 88 ! Plane X', wire 88 + 56, 6, 89 ! Plane X', wire 89 + 57, 6, 90 ! Plane X', wire 90 + 58, 6, 91 ! Plane X', wire 91 + 59, 6, 92 ! Plane X', wire 92 + 60, 6, 93 ! Plane X', wire 93 + 61, 6, 94 ! Plane X', wire 94 + 62, 6, 95 ! Plane X', wire 95 + 63, 6, 96 ! Plane X', wire 96 + 64, 6, 97 ! Plane X', wire 97 + 65, 6, 98 ! Plane X', wire 98 + 66, 6, 99 ! Plane X', wire 99 + 67, 6, 100 ! Plane X', wire 100 + 68, 6, 101 ! Plane X', wire 101 + 69, 6, 102 ! Plane X', wire 102 + 70, 6, 103 ! Plane X', wire 103 + 71, 6, 104 ! Plane X', wire 104 + 72, 6, 105 ! Plane X', wire 105 + 73, 6, 106 ! Plane X', wire 106 + 74, 6, 107 ! Plane X', wire 107 + 75, 6, 108 ! Plane X', wire 108 + 76, 6, 109 ! Plane X', wire 109 + 77, 6, 110 ! Plane X', wire 110 + 78, 6, 111 ! Plane X', wire 111 + 79, 6, 112 ! Plane X', wire 112 + +SLOT=8 +REFINDEX=0 + 64, 2, 1 ! Plane Y, wire 1 + 65, 2, 2 ! Plane Y, wire 2 + 66, 2, 3 ! Plane Y, wire 3 + 67, 2, 4 ! Plane Y, wire 4 + 68, 2, 5 ! Plane Y, wire 5 + 69, 2, 6 ! Plane Y, wire 6 + 70, 2, 7 ! Plane Y, wire 7 + 71, 2, 8 ! Plane Y, wire 8 + 72, 2, 9 ! Plane Y, wire 9 + 73, 2, 10 ! Plane Y, wire 10 + 74, 2, 11 ! Plane Y, wire 11 + 75, 2, 12 ! Plane Y, wire 12 + 76, 2, 13 ! Plane Y, wire 13 + 80, 2, 14 ! Plane Y, wire 14 + 81, 2, 15 ! Plane Y, wire 15 + 82, 2, 16 ! Plane Y, wire 16 + 83, 2, 17 ! Plane Y, wire 17 + 84, 2, 18 ! Plane Y, wire 18 + 85, 2, 19 ! Plane Y, wire 19 + 86, 2, 20 ! Plane Y, wire 20 + 87, 2, 21 ! Plane Y, wire 21 + 88, 2, 22 ! Plane Y, wire 22 + 89, 2, 23 ! Plane Y, wire 23 + 90, 2, 24 ! Plane Y, wire 24 + 91, 2, 25 ! Plane Y, wire 25 + 92, 2, 26 ! Plane Y, wire 26 + 96, 2, 27 ! Plane Y, wire 27 + 97, 2, 28 ! Plane Y, wire 28 + 98, 2, 29 ! Plane Y, wire 29 + 99, 2, 30 ! Plane Y, wire 30 + 100, 2, 31 ! Plane Y, wire 31 + 101, 2, 32 ! Plane Y, wire 32 + 102, 2, 33 ! Plane Y, wire 33 + 103, 2, 34 ! Plane Y, wire 34 + 104, 2, 35 ! Plane Y, wire 35 + 105, 2, 36 ! Plane Y, wire 36 + 106, 2, 37 ! Plane Y, wire 37 + 107, 2, 38 ! Plane Y, wire 38 + 108, 2, 39 ! Plane Y, wire 39 + 112, 2, 40 ! Plane Y, wire 40 + 113, 2, 41 ! Plane Y, wire 41 + 114, 2, 42 ! Plane Y, wire 42 + 115, 2, 43 ! Plane Y, wire 43 + 116, 2, 44 ! Plane Y, wire 44 + 117, 2, 45 ! Plane Y, wire 45 + 118, 2, 46 ! Plane Y, wire 46 + 119, 2, 47 ! Plane Y, wire 47 + 120, 2, 48 ! Plane Y, wire 48 + 121, 2, 49 ! Plane Y, wire 49 + 122, 2, 50 ! Plane Y, wire 50 + 123, 2, 51 ! Plane Y, wire 51 + 124, 2, 52 ! Plane Y, wire 52 + +SLOT=10 +REFINDEX=0 + 127,1000, 0, 2 + 0, 5, 1 ! Plane Y', wire 1 + 1, 5, 2 ! Plane Y', wire 2 + 2, 5, 3 ! Plane Y', wire 3 + 3, 5, 4 ! Plane Y', wire 4 + 4, 5, 5 ! Plane Y', wire 5 + 5, 5, 6 ! Plane Y', wire 6 + 6, 5, 7 ! Plane Y', wire 7 + 7, 5, 8 ! Plane Y', wire 8 + 8, 5, 9 ! Plane Y', wire 9 + 9, 5, 10 ! Plane Y', wire 10 + 10, 5, 11 ! Plane Y', wire 11 + 11, 5, 12 ! Plane Y', wire 12 + 12, 5, 13 ! Plane Y', wire 13 + 16, 5, 14 ! Plane Y', wire 14 + 17, 5, 15 ! Plane Y', wire 15 + 18, 5, 16 ! Plane Y', wire 16 + 19, 5, 17 ! Plane Y', wire 17 + 20, 5, 18 ! Plane Y', wire 18 + 21, 5, 19 ! Plane Y', wire 19 + 22, 5, 20 ! Plane Y', wire 20 + 23, 5, 21 ! Plane Y', wire 21 + 24, 5, 22 ! Plane Y', wire 22 + 25, 5, 23 ! Plane Y', wire 23 + 26, 5, 24 ! Plane Y', wire 24 + 27, 5, 25 ! Plane Y', wire 25 + 28, 5, 26 ! Plane Y', wire 26 + 32, 5, 27 ! Plane Y', wire 27 + 33, 5, 28 ! Plane Y', wire 28 + 34, 5, 29 ! Plane Y', wire 29 + 35, 5, 30 ! Plane Y', wire 30 + 36, 5, 31 ! Plane Y', wire 31 + 37, 5, 32 ! Plane Y', wire 32 + 38, 5, 33 ! Plane Y', wire 33 + 39, 5, 34 ! Plane Y', wire 34 + 40, 5, 35 ! Plane Y', wire 35 + 41, 5, 36 ! Plane Y', wire 36 + 42, 5, 37 ! Plane Y', wire 37 + 43, 5, 38 ! Plane Y', wire 38 + 44, 5, 39 ! Plane Y', wire 39 + 48, 5, 40 ! Plane Y', wire 40 + 49, 5, 41 ! Plane Y', wire 41 + 50, 5, 42 ! Plane Y', wire 42 + 51, 5, 43 ! Plane Y', wire 43 + 52, 5, 44 ! Plane Y', wire 44 + 53, 5, 45 ! Plane Y', wire 45 + 54, 5, 46 ! Plane Y', wire 46 + 55, 5, 47 ! Plane Y', wire 47 + 56, 5, 48 ! Plane Y', wire 48 + 57, 5, 49 ! Plane Y', wire 49 + 58, 5, 50 ! Plane Y', wire 50 + 59, 5, 51 ! Plane Y', wire 51 + 60, 5, 52 ! Plane Y', wire 52 + +SLOT=16 +REFINDEX=0 + 96, 9, 1 ! Plane U, wire 1 + 97, 9, 2 ! Plane U, wire 2 + 98, 9, 3 ! Plane U, wire 3 + 99, 9, 4 ! Plane U, wire 4 + 100, 9, 5 ! Plane U, wire 5 + 101, 9, 6 ! Plane U, wire 6 + 102, 9, 7 ! Plane U, wire 7 + 103, 9, 8 ! Plane U, wire 8 + 104, 9, 9 ! Plane U, wire 9 + 105, 9, 10 ! Plane U, wire 10 + 106, 9, 11 ! Plane U, wire 11 + 107, 9, 12 ! Plane U, wire 12 + 108, 9, 13 ! Plane U, wire 13 + 109, 9, 14 ! Plane U, wire 14 + 110, 7, 113 ! Plane X, wire 113 + 112, 9, 15 ! Plane U, wire 15 + 113, 9, 16 ! Plane U, wire 16 + 114, 9, 17 ! Plane U, wire 17 + 115, 9, 18 ! Plane U, wire 18 + 116, 9, 19 ! Plane U, wire 19 + 117, 9, 20 ! Plane U, wire 20 + 118, 9, 21 ! Plane U, wire 21 + 119, 9, 22 ! Plane U, wire 22 + 120, 9, 23 ! Plane U, wire 23 + 121, 9, 24 ! Plane U, wire 24 + 122, 9, 25 ! Plane U, wire 25 + 123, 9, 26 ! Plane U, wire 26 + 124, 9, 27 ! Plane U, wire 27 + 125, 9, 28 ! Plane U, wire 28 + 126, 9, 29 ! Plane U, wire 29 + +SLOT=14 +REFINDEX=0 + 0, 9, 30 ! Plane U, wire 30 + 1, 9, 31 ! Plane U, wire 31 + 2, 9, 32 ! Plane U, wire 32 + 3, 9, 33 ! Plane U, wire 33 + 4, 9, 34 ! Plane U, wire 34 + 5, 9, 35 ! Plane U, wire 35 + 6, 9, 36 ! Plane U, wire 36 + 7, 9, 37 ! Plane U, wire 37 + 8, 9, 38 ! Plane U, wire 38 + 9, 9, 39 ! Plane U, wire 39 + 10, 9, 40 ! Plane U, wire 40 + 11, 9, 41 ! Plane U, wire 41 + 12, 9, 42 ! Plane U, wire 42 + 13, 9, 43 ! Plane U, wire 43 + 14, 9, 44 ! Plane U, wire 44 + 15, 9, 45 ! Plane U, wire 45 + 32, 9, 46 ! Plane U, wire 46 + 33, 9, 47 ! Plane U, wire 47 + 34, 9, 48 ! Plane U, wire 48 + 35, 9, 49 ! Plane U, wire 49 + 36, 9, 50 ! Plane U, wire 50 + 37, 9, 51 ! Plane U, wire 51 + 38, 9, 52 ! Plane U, wire 52 + 39, 9, 53 ! Plane U, wire 53 + 40, 9, 54 ! Plane U, wire 54 + 41, 9, 55 ! Plane U, wire 55 + 42, 9, 56 ! Plane U, wire 56 + 43, 9, 57 ! Plane U, wire 57 + 44, 9, 58 ! Plane U, wire 58 + 45, 9, 59 ! Plane U, wire 59 + 46, 9, 60 ! Plane U, wire 60 + 48, 9, 61 ! Plane U, wire 61 + 49, 9, 62 ! Plane U, wire 62 + 50, 9, 63 ! Plane U, wire 63 + 51, 9, 64 ! Plane U, wire 64 + 52, 9, 65 ! Plane U, wire 65 + 53, 9, 66 ! Plane U, wire 66 + 54, 9, 67 ! Plane U, wire 67 + 55, 9, 68 ! Plane U, wire 68 + 56, 9, 69 ! Plane U, wire 69 + 57, 9, 70 ! Plane U, wire 70 + 58, 9, 71 ! Plane U, wire 71 + 59, 9, 72 ! Plane U, wire 72 + 60, 9, 73 ! Plane U, wire 73 + 61, 9, 74 ! Plane U, wire 74 + 62, 9, 75 ! Plane U, wire 75 + 63, 9, 76 ! Plane U, wire 76 + 64, 9, 77 ! Plane U, wire 77 + 65, 9, 78 ! Plane U, wire 78 + 66, 9, 79 ! Plane U, wire 79 + 67, 9, 80 ! Plane U, wire 80 + 68, 9, 81 ! Plane U, wire 81 + 69, 9, 82 ! Plane U, wire 82 + 70, 9, 83 ! Plane U, wire 83 + 71, 9, 84 ! Plane U, wire 84 + 72, 9, 85 ! Plane U, wire 85 + 73, 9, 86 ! Plane U, wire 86 + 74, 9, 87 ! Plane U, wire 87 + 75, 9, 88 ! Plane U, wire 88 + 76, 9, 89 ! Plane U, wire 89 + 77, 9, 90 ! Plane U, wire 90 + 78, 9, 91 ! Plane U, wire 91 + 80, 9, 92 ! Plane U, wire 92 + 81, 9, 93 ! Plane U, wire 93 + 82, 9, 94 ! Plane U, wire 94 + 83, 9, 95 ! Plane U, wire 95 + 84, 9, 96 ! Plane U, wire 96 + 85, 9, 97 ! Plane U, wire 97 + 86, 9, 98 ! Plane U, wire 98 + 87, 9, 99 ! Plane U, wire 99 + 88, 9, 100 ! Plane U, wire 100 + 89, 9, 101 ! Plane U, wire 101 + 90, 9, 102 ! Plane U, wire 102 + 91, 9, 103 ! Plane U, wire 103 + 92, 9, 104 ! Plane U, wire 104 + 93, 9, 105 ! Plane U, wire 105 + 94, 9, 106 ! Plane U, wire 106 + 95, 9, 107 ! Plane U, wire 107 + +SLOT=16 +REFINDEX=0 + 80, 10, 1 ! Plane V, wire 1 + 81, 10, 2 ! Plane V, wire 2 + 82, 10, 3 ! Plane V, wire 3 + 83, 10, 4 ! Plane V, wire 4 + 84, 10, 5 ! Plane V, wire 5 + 85, 10, 6 ! Plane V, wire 6 + 86, 10, 7 ! Plane V, wire 7 + 87, 10, 8 ! Plane V, wire 8 + 88, 10, 9 ! Plane V, wire 9 + 89, 10, 10 ! Plane V, wire 10 + 90, 10, 11 ! Plane V, wire 11 + 91, 10, 12 ! Plane V, wire 12 + 92, 10, 13 ! Plane V, wire 13 + 93, 10, 14 ! Plane V, wire 14 + 94, 12, 113 ! Plane X', wire 113 + +SLOT=14 +REFINDEX=0 + 96, 10, 15 ! Plane V, wire 15 + 97, 10, 16 ! Plane V, wire 16 + 98, 10, 17 ! Plane V, wire 17 + 99, 10, 18 ! Plane V, wire 18 + 100, 10, 19 ! Plane V, wire 19 + 101, 10, 20 ! Plane V, wire 20 + 102, 10, 21 ! Plane V, wire 21 + 103, 10, 22 ! Plane V, wire 22 + 104, 10, 23 ! Plane V, wire 23 + 105, 10, 24 ! Plane V, wire 24 + 106, 10, 25 ! Plane V, wire 25 + 107, 10, 26 ! Plane V, wire 26 + 108, 10, 27 ! Plane V, wire 27 + 109, 10, 28 ! Plane V, wire 28 + 110, 10, 29 ! Plane V, wire 29 + 112, 10, 30 ! Plane V, wire 30 + 113, 10, 31 ! Plane V, wire 31 + 114, 10, 32 ! Plane V, wire 32 + 115, 10, 33 ! Plane V, wire 33 + 116, 10, 34 ! Plane V, wire 34 + 117, 10, 35 ! Plane V, wire 35 + 118, 10, 36 ! Plane V, wire 36 + 119, 10, 37 ! Plane V, wire 37 + 120, 10, 38 ! Plane V, wire 38 + 121, 10, 39 ! Plane V, wire 39 + 122, 10, 40 ! Plane V, wire 40 + 123, 10, 41 ! Plane V, wire 41 + 124, 10, 42 ! Plane V, wire 42 + 125, 10, 43 ! Plane V, wire 43 + 126, 10, 44 ! Plane V, wire 44 + 127, 10, 45 ! Plane V, wire 45 + +SLOT=17 +REFINDEX=0 + 127,1000, 0, 3 + 0, 10, 46 ! Plane V, wire 46 + 1, 10, 47 ! Plane V, wire 47 + 2, 10, 48 ! Plane V, wire 48 + 3, 10, 49 ! Plane V, wire 49 + 4, 10, 50 ! Plane V, wire 50 + 5, 10, 51 ! Plane V, wire 51 + 6, 10, 52 ! Plane V, wire 52 + 7, 10, 53 ! Plane V, wire 53 + 8, 10, 54 ! Plane V, wire 54 + 9, 10, 55 ! Plane V, wire 55 + 10, 10, 56 ! Plane V, wire 56 + 11, 10, 57 ! Plane V, wire 57 + 12, 10, 58 ! Plane V, wire 58 + 13, 10, 59 ! Plane V, wire 59 + 14, 10, 60 ! Plane V, wire 60 + 16, 10, 61 ! Plane V, wire 61 + 17, 10, 62 ! Plane V, wire 62 + 18, 10, 63 ! Plane V, wire 63 + 19, 10, 64 ! Plane V, wire 64 + 20, 10, 65 ! Plane V, wire 65 + 21, 10, 66 ! Plane V, wire 66 + 22, 10, 67 ! Plane V, wire 67 + 23, 10, 68 ! Plane V, wire 68 + 24, 10, 69 ! Plane V, wire 69 + 25, 10, 70 ! Plane V, wire 70 + 26, 10, 71 ! Plane V, wire 71 + 27, 10, 72 ! Plane V, wire 72 + 28, 10, 73 ! Plane V, wire 73 + 29, 10, 74 ! Plane V, wire 74 + 30, 10, 75 ! Plane V, wire 75 + 31, 10, 76 ! Plane V, wire 76 + 32, 10, 77 ! Plane V, wire 77 + 33, 10, 78 ! Plane V, wire 78 + 34, 10, 79 ! Plane V, wire 79 + 35, 10, 80 ! Plane V, wire 80 + 36, 10, 81 ! Plane V, wire 81 + 37, 10, 82 ! Plane V, wire 82 + 38, 10, 83 ! Plane V, wire 83 + 39, 10, 84 ! Plane V, wire 84 + 40, 10, 85 ! Plane V, wire 85 + 41, 10, 86 ! Plane V, wire 86 + 42, 10, 87 ! Plane V, wire 87 + 43, 10, 88 ! Plane V, wire 88 + 44, 10, 89 ! Plane V, wire 89 + 45, 10, 90 ! Plane V, wire 90 + 46, 10, 91 ! Plane V, wire 91 + 48, 10, 92 ! Plane V, wire 92 + 49, 10, 93 ! Plane V, wire 93 + 50, 10, 94 ! Plane V, wire 94 + 51, 10, 95 ! Plane V, wire 95 + 52, 10, 96 ! Plane V, wire 96 + 53, 10, 97 ! Plane V, wire 97 + 54, 10, 98 ! Plane V, wire 98 + 55, 10, 99 ! Plane V, wire 99 + 56, 10, 100 ! Plane V, wire 100 + 57, 10, 101 ! Plane V, wire 101 + 58, 10, 102 ! Plane V, wire 102 + 59, 10, 103 ! Plane V, wire 103 + 60, 10, 104 ! Plane V, wire 104 + 61, 10, 105 ! Plane V, wire 105 + 62, 10, 106 ! Plane V, wire 106 + 63, 10, 107 ! Plane V, wire 107 + +SLOT=13 +REFINDEX=0 + 0, 7, 1 ! Plane X, wire 1 + 1, 7, 2 ! Plane X, wire 2 + 2, 7, 3 ! Plane X, wire 3 + 3, 7, 4 ! Plane X, wire 4 + 4, 7, 5 ! Plane X, wire 5 + 5, 7, 6 ! Plane X, wire 6 + 6, 7, 7 ! Plane X, wire 7 + 7, 7, 8 ! Plane X, wire 8 + 8, 7, 9 ! Plane X, wire 9 + 9, 7, 10 ! Plane X, wire 10 + 10, 7, 11 ! Plane X, wire 11 + 11, 7, 12 ! Plane X, wire 12 + 12, 7, 13 ! Plane X, wire 13 + 13, 7, 14 ! Plane X, wire 14 + 14, 7, 15 ! Plane X, wire 15 + 15, 7, 16 ! Plane X, wire 16 + 16, 7, 17 ! Plane X, wire 17 + 17, 7, 18 ! Plane X, wire 18 + 18, 7, 19 ! Plane X, wire 19 + 19, 7, 20 ! Plane X, wire 20 + 20, 7, 21 ! Plane X, wire 21 + 21, 7, 22 ! Plane X, wire 22 + 22, 7, 23 ! Plane X, wire 23 + 23, 7, 24 ! Plane X, wire 24 + 24, 7, 25 ! Plane X, wire 25 + 25, 7, 26 ! Plane X, wire 26 + 26, 7, 27 ! Plane X, wire 27 + 27, 7, 28 ! Plane X, wire 28 + 28, 7, 29 ! Plane X, wire 29 + 29, 7, 30 ! Plane X, wire 30 + 30, 7, 31 ! Plane X, wire 31 + 31, 7, 32 ! Plane X, wire 32 + 32, 7, 33 ! Plane X, wire 33 + 33, 7, 34 ! Plane X, wire 34 + 34, 7, 35 ! Plane X, wire 35 + 35, 7, 36 ! Plane X, wire 36 + 36, 7, 37 ! Plane X, wire 37 + 37, 7, 38 ! Plane X, wire 38 + 38, 7, 39 ! Plane X, wire 39 + 39, 7, 40 ! Plane X, wire 40 + 40, 7, 41 ! Plane X, wire 41 + 41, 7, 42 ! Plane X, wire 42 + 42, 7, 43 ! Plane X, wire 43 + 43, 7, 44 ! Plane X, wire 44 + 44, 7, 45 ! Plane X, wire 45 + 45, 7, 46 ! Plane X, wire 46 + 46, 7, 47 ! Plane X, wire 47 + 47, 7, 48 ! Plane X, wire 48 + 48, 7, 49 ! Plane X, wire 49 + 49, 7, 50 ! Plane X, wire 50 + 50, 7, 51 ! Plane X, wire 51 + 51, 7, 52 ! Plane X, wire 52 + 52, 7, 53 ! Plane X, wire 53 + 53, 7, 54 ! Plane X, wire 54 + 54, 7, 55 ! Plane X, wire 55 + 55, 7, 56 ! Plane X, wire 56 + 56, 7, 57 ! Plane X, wire 57 + 57, 7, 58 ! Plane X, wire 58 + 58, 7, 59 ! Plane X, wire 59 + 59, 7, 60 ! Plane X, wire 60 + 60, 7, 61 ! Plane X, wire 61 + 61, 7, 62 ! Plane X, wire 62 + 62, 7, 63 ! Plane X, wire 63 + 63, 7, 64 ! Plane X, wire 64 + 64, 7, 65 ! Plane X, wire 65 + 65, 7, 66 ! Plane X, wire 66 + 66, 7, 67 ! Plane X, wire 67 + 67, 7, 68 ! Plane X, wire 68 + 68, 7, 69 ! Plane X, wire 69 + 69, 7, 70 ! Plane X, wire 70 + 70, 7, 71 ! Plane X, wire 71 + 71, 7, 72 ! Plane X, wire 72 + 72, 7, 73 ! Plane X, wire 73 + 73, 7, 74 ! Plane X, wire 74 + 74, 7, 75 ! Plane X, wire 75 + 75, 7, 76 ! Plane X, wire 76 + 76, 7, 77 ! Plane X, wire 77 + 77, 7, 78 ! Plane X, wire 78 + 78, 7, 79 ! Plane X, wire 79 + 79, 7, 80 ! Plane X, wire 80 + 80, 7, 81 ! Plane X, wire 81 + 81, 7, 82 ! Plane X, wire 82 + 82, 7, 83 ! Plane X, wire 83 + 83, 7, 84 ! Plane X, wire 84 + 84, 7, 85 ! Plane X, wire 85 + 85, 7, 86 ! Plane X, wire 86 + 86, 7, 87 ! Plane X, wire 87 + 87, 7, 88 ! Plane X, wire 88 + 88, 7, 89 ! Plane X, wire 89 + 89, 7, 90 ! Plane X, wire 90 + 90, 7, 91 ! Plane X, wire 91 + 91, 7, 92 ! Plane X, wire 92 + 92, 7, 93 ! Plane X, wire 93 + 93, 7, 94 ! Plane X, wire 94 + 94, 7, 95 ! Plane X, wire 95 + 95, 7, 96 ! Plane X, wire 96 + 96, 7, 97 ! Plane X, wire 97 + 97, 7, 98 ! Plane X, wire 98 + 98, 7, 99 ! Plane X, wire 99 + 99, 7, 100 ! Plane X, wire 100 + 100, 7, 101 ! Plane X, wire 101 + 101, 7, 102 ! Plane X, wire 102 + 102, 7, 103 ! Plane X, wire 103 + 103, 7, 104 ! Plane X, wire 104 + 104, 7, 105 ! Plane X, wire 105 + 105, 7, 106 ! Plane X, wire 106 + 106, 7, 107 ! Plane X, wire 107 + 107, 7, 108 ! Plane X, wire 108 + 108, 7, 109 ! Plane X, wire 109 + 109, 7, 110 ! Plane X, wire 110 + 110, 7, 111 ! Plane X, wire 111 + 111, 7, 112 ! Plane X, wire 112 + 112, 12, 1 ! Plane X', wire 1 + 113, 12, 2 ! Plane X', wire 2 + 114, 12, 3 ! Plane X', wire 3 + 115, 12, 4 ! Plane X', wire 4 + 116, 12, 5 ! Plane X', wire 5 + 117, 12, 6 ! Plane X', wire 6 + 118, 12, 7 ! Plane X', wire 7 + 119, 12, 8 ! Plane X', wire 8 + 120, 12, 9 ! Plane X', wire 9 + 121, 12, 10 ! Plane X', wire 10 + 122, 12, 11 ! Plane X', wire 11 + 123, 12, 12 ! Plane X', wire 12 + 124, 12, 13 ! Plane X', wire 13 + 125, 12, 14 ! Plane X', wire 14 + 126, 12, 15 ! Plane X', wire 15 + 127, 12, 16 ! Plane X', wire 16 + +SLOT=14 +REFINDEX=0 + 16, 12, 17 ! Plane X', wire 17 + 17, 12, 18 ! Plane X', wire 18 + 18, 12, 19 ! Plane X', wire 19 + 19, 12, 20 ! Plane X', wire 20 + 20, 12, 21 ! Plane X', wire 21 + 21, 12, 22 ! Plane X', wire 22 + 22, 12, 23 ! Plane X', wire 23 + 23, 12, 24 ! Plane X', wire 24 + 24, 12, 25 ! Plane X', wire 25 + 25, 12, 26 ! Plane X', wire 26 + 26, 12, 27 ! Plane X', wire 27 + 27, 12, 28 ! Plane X', wire 28 + 28, 12, 29 ! Plane X', wire 29 + 29, 12, 30 ! Plane X', wire 30 + 30, 12, 31 ! Plane X', wire 31 + 31, 12, 32 ! Plane X', wire 32 + +SLOT=16 +REFINDEX=0 + 0, 12, 33 ! Plane X', wire 33 + 1, 12, 34 ! Plane X', wire 34 + 2, 12, 35 ! Plane X', wire 35 + 3, 12, 36 ! Plane X', wire 36 + 4, 12, 37 ! Plane X', wire 37 + 5, 12, 38 ! Plane X', wire 38 + 6, 12, 39 ! Plane X', wire 39 + 7, 12, 40 ! Plane X', wire 40 + 8, 12, 41 ! Plane X', wire 41 + 9, 12, 42 ! Plane X', wire 42 + 10, 12, 43 ! Plane X', wire 43 + 11, 12, 44 ! Plane X', wire 44 + 12, 12, 45 ! Plane X', wire 45 + 13, 12, 46 ! Plane X', wire 46 + 14, 12, 47 ! Plane X', wire 47 + 15, 12, 48 ! Plane X', wire 48 + 16, 12, 49 ! Plane X', wire 49 + 17, 12, 50 ! Plane X', wire 50 + 18, 12, 51 ! Plane X', wire 51 + 19, 12, 52 ! Plane X', wire 52 + 20, 12, 53 ! Plane X', wire 53 + 21, 12, 54 ! Plane X', wire 54 + 22, 12, 55 ! Plane X', wire 55 + 23, 12, 56 ! Plane X', wire 56 + 24, 12, 57 ! Plane X', wire 57 + 25, 12, 58 ! Plane X', wire 58 + 26, 12, 59 ! Plane X', wire 59 + 27, 12, 60 ! Plane X', wire 60 + 28, 12, 61 ! Plane X', wire 61 + 29, 12, 62 ! Plane X', wire 62 + 30, 12, 63 ! Plane X', wire 63 + 31, 12, 64 ! Plane X', wire 64 + 32, 12, 65 ! Plane X', wire 65 + 33, 12, 66 ! Plane X', wire 66 + 34, 12, 67 ! Plane X', wire 67 + 35, 12, 68 ! Plane X', wire 68 + 36, 12, 69 ! Plane X', wire 69 + 37, 12, 70 ! Plane X', wire 70 + 38, 12, 71 ! Plane X', wire 71 + 39, 12, 72 ! Plane X', wire 72 + 40, 12, 73 ! Plane X', wire 73 + 41, 12, 74 ! Plane X', wire 74 + 42, 12, 75 ! Plane X', wire 75 + 43, 12, 76 ! Plane X', wire 76 + 44, 12, 77 ! Plane X', wire 77 + 45, 12, 78 ! Plane X', wire 78 + 46, 12, 79 ! Plane X', wire 79 + 47, 12, 80 ! Plane X', wire 80 + 48, 12, 81 ! Plane X', wire 81 + 49, 12, 82 ! Plane X', wire 82 + 50, 12, 83 ! Plane X', wire 83 + 51, 12, 84 ! Plane X', wire 84 + 52, 12, 85 ! Plane X', wire 85 + 53, 12, 86 ! Plane X', wire 86 + 54, 12, 87 ! Plane X', wire 87 + 55, 12, 88 ! Plane X', wire 88 + 56, 12, 89 ! Plane X', wire 89 + 57, 12, 90 ! Plane X', wire 90 + 58, 12, 91 ! Plane X', wire 91 + 59, 12, 92 ! Plane X', wire 92 + 60, 12, 93 ! Plane X', wire 93 + 61, 12, 94 ! Plane X', wire 94 + 62, 12, 95 ! Plane X', wire 95 + 63, 12, 96 ! Plane X', wire 96 + 64, 12, 97 ! Plane X', wire 97 + 65, 12, 98 ! Plane X', wire 98 + 66, 12, 99 ! Plane X', wire 99 + 67, 12, 100 ! Plane X', wire 100 + 68, 12, 101 ! Plane X', wire 101 + 69, 12, 102 ! Plane X', wire 102 + 70, 12, 103 ! Plane X', wire 103 + 71, 12, 104 ! Plane X', wire 104 + 72, 12, 105 ! Plane X', wire 105 + 73, 12, 106 ! Plane X', wire 106 + 74, 12, 107 ! Plane X', wire 107 + 75, 12, 108 ! Plane X', wire 108 + 76, 12, 109 ! Plane X', wire 109 + 77, 12, 110 ! Plane X', wire 110 + 78, 12, 111 ! Plane X', wire 111 + 79, 12, 112 ! Plane X', wire 112 + +SLOT=17 +REFINDEX=0 + 64, 8, 1 ! Plane Y, wire 1 + 65, 8, 2 ! Plane Y, wire 2 + 66, 8, 3 ! Plane Y, wire 3 + 67, 8, 4 ! Plane Y, wire 4 + 68, 8, 5 ! Plane Y, wire 5 + 69, 8, 6 ! Plane Y, wire 6 + 70, 8, 7 ! Plane Y, wire 7 + 71, 8, 8 ! Plane Y, wire 8 + 72, 8, 9 ! Plane Y, wire 9 + 73, 8, 10 ! Plane Y, wire 10 + 74, 8, 11 ! Plane Y, wire 11 + 75, 8, 12 ! Plane Y, wire 12 + 76, 8, 13 ! Plane Y, wire 13 + 80, 8, 14 ! Plane Y, wire 14 + 81, 8, 15 ! Plane Y, wire 15 + 82, 8, 16 ! Plane Y, wire 16 + 83, 8, 17 ! Plane Y, wire 17 + 84, 8, 18 ! Plane Y, wire 18 + 85, 8, 19 ! Plane Y, wire 19 + 86, 8, 20 ! Plane Y, wire 20 + 87, 8, 21 ! Plane Y, wire 21 + 88, 8, 22 ! Plane Y, wire 22 + 89, 8, 23 ! Plane Y, wire 23 + 90, 8, 24 ! Plane Y, wire 24 + 91, 8, 25 ! Plane Y, wire 25 + 92, 8, 26 ! Plane Y, wire 26 + 96, 8, 27 ! Plane Y, wire 27 + 97, 8, 28 ! Plane Y, wire 28 + 98, 8, 29 ! Plane Y, wire 29 + 99, 8, 30 ! Plane Y, wire 30 + 100, 8, 31 ! Plane Y, wire 31 + 101, 8, 32 ! Plane Y, wire 32 + 102, 8, 33 ! Plane Y, wire 33 + 103, 8, 34 ! Plane Y, wire 34 + 104, 8, 35 ! Plane Y, wire 35 + 105, 8, 36 ! Plane Y, wire 36 + 106, 8, 37 ! Plane Y, wire 37 + 107, 8, 38 ! Plane Y, wire 38 + 108, 8, 39 ! Plane Y, wire 39 + 112, 8, 40 ! Plane Y, wire 40 + 113, 8, 41 ! Plane Y, wire 41 + 114, 8, 42 ! Plane Y, wire 42 + 115, 8, 43 ! Plane Y, wire 43 + 116, 8, 44 ! Plane Y, wire 44 + 117, 8, 45 ! Plane Y, wire 45 + 118, 8, 46 ! Plane Y, wire 46 + 119, 8, 47 ! Plane Y, wire 47 + 120, 8, 48 ! Plane Y, wire 48 + 121, 8, 49 ! Plane Y, wire 49 + 122, 8, 50 ! Plane Y, wire 50 + 123, 8, 51 ! Plane Y, wire 51 + 124, 8, 52 ! Plane Y, wire 52 + +SLOT=10 +REFINDEX=0 + 127,1000, 0, 1 + 64, 11, 1 ! Plane Y', wire 1 + 65, 11, 2 ! Plane Y', wire 2 + 66, 11, 3 ! Plane Y', wire 3 + 67, 11, 4 ! Plane Y', wire 4 + 68, 11, 5 ! Plane Y', wire 5 + 69, 11, 6 ! Plane Y', wire 6 + 70, 11, 7 ! Plane Y', wire 7 + 71, 11, 8 ! Plane Y', wire 8 + 72, 11, 9 ! Plane Y', wire 9 + 73, 11, 10 ! Plane Y', wire 10 + 74, 11, 11 ! Plane Y', wire 11 + 75, 11, 12 ! Plane Y', wire 12 + 76, 11, 13 ! Plane Y', wire 13 + 80, 11, 14 ! Plane Y', wire 14 + 81, 11, 15 ! Plane Y', wire 15 + 82, 11, 16 ! Plane Y', wire 16 + 83, 11, 17 ! Plane Y', wire 17 + 84, 11, 18 ! Plane Y', wire 18 + 85, 11, 19 ! Plane Y', wire 19 + 86, 11, 20 ! Plane Y', wire 20 + 87, 11, 21 ! Plane Y', wire 21 + 88, 11, 22 ! Plane Y', wire 22 + 89, 11, 23 ! Plane Y', wire 23 + 90, 11, 24 ! Plane Y', wire 24 + 91, 11, 25 ! Plane Y', wire 25 + 92, 11, 26 ! Plane Y', wire 26 + 96, 11, 27 ! Plane Y', wire 27 + 97, 11, 28 ! Plane Y', wire 28 + 98, 11, 29 ! Plane Y', wire 29 + 99, 11, 30 ! Plane Y', wire 30 + 100, 11, 31 ! Plane Y', wire 31 + 101, 11, 32 ! Plane Y', wire 32 + 102, 11, 33 ! Plane Y', wire 33 + 103, 11, 34 ! Plane Y', wire 34 + 104, 11, 35 ! Plane Y', wire 35 + 105, 11, 36 ! Plane Y', wire 36 + 106, 11, 37 ! Plane Y', wire 37 + 107, 11, 38 ! Plane Y', wire 38 + 108, 11, 39 ! Plane Y', wire 39 + 112, 11, 40 ! Plane Y', wire 40 + 113, 11, 41 ! Plane Y', wire 41 + 114, 11, 42 ! Plane Y', wire 42 + 115, 11, 43 ! Plane Y', wire 43 + 116, 11, 44 ! Plane Y', wire 44 + 117, 11, 45 ! Plane Y', wire 45 + 118, 11, 46 ! Plane Y', wire 46 + 119, 11, 47 ! Plane Y', wire 47 + 120, 11, 48 ! Plane Y', wire 48 + 121, 11, 49 ! Plane Y', wire 49 + 122, 11, 50 ! Plane Y', wire 50 + 123, 11, 51 ! Plane Y', wire 51 + 124, 11, 52 ! Plane Y', wire 52 + + +DETECTOR=13 + +ROC=1 + +SLOT=8 + 0, 1, 1, 0 ! h1x01A+ + 1, 1, 2, 0 ! h1x02A+ + 2, 1, 3, 0 ! h1x03A+ + 3, 1, 4, 0 ! h1x04A+ + 4, 1, 5, 0 ! h1x05A+ + 5, 1, 6, 0 ! h1x06A+ + 6, 1, 7, 0 ! h1x07A+ + 7, 1, 8, 0 ! h1x08A+ + 8, 1, 9, 0 ! h1x09A+ + 9, 1, 10, 0 ! h1x10A+ + 10, 1, 11, 0 ! h1x11A+ + 11, 1, 12, 0 ! h1x12A+ + 12, 1, 13, 0 ! h1x13A+ + 13, 1, 14, 0 ! h1x14A+ + 14, 1, 15, 0 ! h1x15A+ + 15, 1, 16, 0 ! h1x16A+ + +SLOT=9 + 0, 1, 1, 1 ! h1x01A- + 1, 1, 2, 1 ! h1x02A- + 2, 1, 3, 1 ! h1x03A- + 3, 1, 4, 1 ! h1x04A- + 4, 1, 5, 1 ! h1x05A- + 5, 1, 6, 1 ! h1x06A- + 6, 1, 7, 1 ! h1x07A- + 7, 1, 8, 1 ! h1x08A- + 8, 1, 9, 1 ! h1x09A- + 9, 1, 10, 1 ! h1x10A- + 10, 1, 11, 1 ! h1x11A- + 11, 1, 12, 1 ! h1x12A- + 12, 1, 13, 1 ! h1x13A- + 13, 1, 14, 1 ! h1x14A- + 14, 1, 15, 1 ! h1x15A- + 15, 1, 16, 1 ! h1x16A- + +SLOT=10 + 0, 2, 1, 0 ! h1y01A+ + 1, 2, 2, 0 ! h1y02A+ + 2, 2, 3, 0 ! h1y03A+ + 3, 2, 4, 0 ! h1y04A+ + 4, 2, 5, 0 ! h1y05A+ + 5, 2, 6, 0 ! h1y06A+ + 6, 2, 7, 0 ! h1y07A+ + 7, 2, 8, 0 ! h1y08A+ + 8, 2, 9, 0 ! h1y09A+ + 9, 2, 10, 0 ! h1y10A+ + 10, 2, 1, 1 ! h1y01A- + 11, 2, 2, 1 ! h1y02A- + 12, 2, 3, 1 ! h1y03A- + 13, 2, 4, 1 ! h1y04A- + 14, 2, 5, 1 ! h1y05A- + 15, 2, 6, 1 ! h1y06A- + +SLOT=13 + 0, 2, 7, 1 ! h1y07A- + 1, 2, 8, 1 ! h1y08A- + 2, 2, 9, 1 ! h1y09A- + 3, 2, 10, 1 ! h1y10A- + 4, 3, 1, 0 ! h2x01A+ + 5, 3, 2, 0 ! h2x02A+ + 6, 3, 3, 0 ! h2x03A+ + 7, 3, 4, 0 ! h2x04A+ + 8, 3, 5, 0 ! h2x05A+ + 9, 3, 6, 0 ! h2x06A+ + 10, 3, 7, 0 ! h2x07A+ + 11, 3, 8, 0 ! h2x08A+ + 12, 3, 9, 0 ! h2x09A+ + 13, 3, 10, 0 ! h2x10A+ + 14, 3, 11, 0 ! h2x11A+ + 15, 3, 12, 0 ! h2x12A+ + +SLOT=14 + 0, 3, 13, 0 ! h2x13A+ + 1, 3, 14, 0 ! h2x14A+ + 2, 3, 15, 0 ! h2x15A+ + 3, 3, 16, 0 ! h2x16A+ + 4, 3, 1, 1 ! h2x01A- + 5, 3, 2, 1 ! h2x02A- + 6, 3, 3, 1 ! h2x03A- + 7, 3, 4, 1 ! h2x04A- + 8, 3, 5, 1 ! h2x05A- + 9, 3, 6, 1 ! h2x06A- + 10, 3, 7, 1 ! h2x07A- + 11, 3, 8, 1 ! h2x08A- + 12, 3, 9, 1 ! h2x09A- + 13, 3, 10, 1 ! h2x10A- + 14, 3, 11, 1 ! h2x11A- + 15, 3, 12, 1 ! h2x12A- + +SLOT=15 + 0, 3, 13, 1 ! h2x13A- + 1, 3, 14, 1 ! h2x14A- + 2, 3, 15, 1 ! h2x15A- + 3, 3, 16, 1 ! h2x16A- + 4, 4, 1, 0 ! h2y01A+ + 5, 4, 2, 0 ! h2y02A+ + 6, 4, 3, 0 ! h2y03A+ + 7, 4, 4, 0 ! h2y04A+ + 8, 4, 5, 0 ! h2y05A+ + 9, 4, 6, 0 ! h2y06A+ + 10, 4, 7, 0 ! h2y07A+ + 11, 4, 8, 0 ! h2y08A+ + 12, 4, 9, 0 ! h2y09A+ + 13, 4, 10, 0 ! h2y10A+ + 14, 4, 1, 1 ! h2y01A- + 15, 4, 2, 1 ! h2y02A- + +SLOT=16 + 0, 4, 3, 1 ! h2y03A- + 1, 4, 4, 1 ! h2y04A- + 2, 4, 5, 1 ! h2y05A- + 3, 4, 6, 1 ! h2y06A- + 4, 4, 7, 1 ! h2y07A- + 5, 4, 8, 1 ! h2y08A- + 6, 4, 9, 1 ! h2y09A- + 7, 4, 10, 1 ! h2y10A- + +SLOT=20 +REFINDEX=0 + 127,1000, 0, 0 + 0, 1, 1, 2 ! h1x01T+ + 1, 1, 3, 2 ! h1x03T+ + 2, 1, 5, 2 ! h1x05T+ + 3, 1, 7, 2 ! h1x07T+ + 4, 1, 2, 2 ! h1x02T+ + 5, 1, 4, 2 ! h1x04T+ + 6, 1, 6, 2 ! h1x06T+ + 7, 1, 8, 2 ! h1x08T+ + 8, 1, 9, 2 ! h1x09T+ + 9, 1, 11, 2 ! h1x11T+ + 10, 1, 13, 2 ! h1x13T+ + 11, 1, 15, 2 ! h1x15T+ + 12, 1, 10, 2 ! h1x10T+ + 13, 1, 12, 2 ! h1x12T+ + 14, 1, 14, 2 ! h1x14T+ + 15, 1, 16, 2 ! h1x16T+ + 16, 1, 1, 3 ! h1x01T- + 17, 1, 3, 3 ! h1x03T- + 18, 1, 5, 3 ! h1x05T- + 19, 1, 7, 3 ! h1x07T- + 20, 1, 2, 3 ! h1x02T- + 21, 1, 4, 3 ! h1x04T- + 22, 1, 6, 3 ! h1x06T- + 23, 1, 8, 3 ! h1x08T- + 24, 1, 9, 3 ! h1x09T- + 25, 1, 11, 3 ! h1x11T- + 26, 1, 13, 3 ! h1x13T- + 27, 1, 15, 3 ! h1x15T- + 28, 1, 10, 3 ! h1x10T- + 29, 1, 12, 3 ! h1x12T- + 30, 1, 14, 3 ! h1x14T- + 31, 1, 16, 3 ! h1x16T- + 32, 2, 1, 2 ! h1y01T+ + 33, 2, 3, 2 ! h1y03T+ + 34, 2, 5, 2 ! h1y05T+ + 35, 2, 7, 2 ! h1y07T+ + 36, 2, 2, 2 ! h1y02T+ + 37, 2, 4, 2 ! h1y04T+ + 38, 2, 6, 2 ! h1y06T+ + 39, 2, 8, 2 ! h1y08T+ + 40, 2, 9, 2 ! h1y09T+ + 44, 2, 10, 2 ! h1y10T+ + 48, 2, 1, 3 ! h1y01T- + 49, 2, 3, 3 ! h1y03T- + 50, 2, 5, 3 ! h1y05T- + 51, 2, 7, 3 ! h1y07T- + 52, 2, 2, 3 ! h1y02T- + 53, 2, 4, 3 ! h1y04T- + 54, 2, 6, 3 ! h1y06T- + 55, 2, 8, 3 ! h1y08T- + 56, 2, 9, 3 ! h1y09T- + 60, 2, 10, 3 ! h1y10T- + 64, 3, 1, 2 ! h2x01T+ + 65, 3, 3, 2 ! h2x03T+ + 66, 3, 5, 2 ! h2x05T+ + 67, 3, 7, 2 ! h2x07T+ + 68, 3, 2, 2 ! h2x02T+ + 69, 3, 4, 2 ! h2x04T+ + 70, 3, 6, 2 ! h2x06T+ + 71, 3, 8, 2 ! h2x08T+ + 72, 3, 9, 2 ! h2x09T+ + 73, 3, 11, 2 ! h2x11T+ + 74, 3, 13, 2 ! h2x13T+ + 75, 3, 15, 2 ! h2x15T+ + 76, 3, 10, 2 ! h2x10T+ + 77, 3, 12, 2 ! h2x12T+ + 78, 3, 14, 2 ! h2x14T+ + 79, 3, 16, 2 ! h2x16T+ + 80, 3, 1, 3 ! h2x01T- + 81, 3, 3, 3 ! h2x03T- + 82, 3, 5, 3 ! h2x05T- + 83, 3, 7, 3 ! h2x07T- + 84, 3, 2, 3 ! h2x02T- + 85, 3, 4, 3 ! h2x04T- + 86, 3, 6, 3 ! h2x06T- + 87, 3, 8, 3 ! h2x08T- + 88, 3, 9, 3 ! h2x09T- + 89, 3, 11, 3 ! h2x11T- + 90, 3, 13, 3 ! h2x13T- + 91, 3, 15, 3 ! h2x15T- + 92, 3, 10, 3 ! h2x10T- + 93, 3, 12, 3 ! h2x12T- + 94, 3, 14, 3 ! h2x14T- + 95, 3, 16, 3 ! h2x16T- + 96, 4, 1, 2 ! h2y01T+ + 97, 4, 3, 2 ! h2y03T+ + 98, 4, 5, 2 ! h2y05T+ + 99, 4, 7, 2 ! h2y07T+ + 100, 4, 2, 2 ! h2y02T+ + 101, 4, 4, 2 ! h2y04T+ + 102, 4, 6, 2 ! h2y06T+ + 103, 4, 8, 2 ! h2y08T+ + 104, 4, 9, 2 ! h2y09T+ + 108, 4, 10, 2 ! h2y10T+ + 112, 4, 1, 3 ! h2y01T- + 113, 4, 3, 3 ! h2y03T- + 114, 4, 5, 3 ! h2y05T- + 115, 4, 7, 3 ! h2y07T- + 116, 4, 2, 3 ! h2y02T- + 117, 4, 4, 3 ! h2y04T- + 118, 4, 6, 3 ! h2y06T- + 119, 4, 8, 3 ! h2y08T- + 120, 4, 9, 3 ! h2y09T- + 124, 4, 10, 3 ! h2y10T- +DETECTOR=14 + +ROC=1 + +SLOT=7 + 14, 1, 1, 0 ! hCER01 + 15, 1, 2, 0 ! hCER02 + + +DETECTOR=15 + +ROC=1 + +SLOT=3 + 0, 1, 1, 0 ! hA01+ + 1, 1, 2, 0 ! hA02+ + 2, 1, 3, 0 ! hA03+ + 3, 1, 4, 0 ! hA04+ + 4, 1, 5, 0 ! hA05+ + 5, 1, 6, 0 ! hA06+ + 6, 1, 7, 0 ! hA07+ + 7, 1, 8, 0 ! hA08+ + 8, 1, 9, 0 ! hA09+ + 9, 1, 10, 0 ! hA10+ + 10, 1, 11, 0 ! hA11+ + 11, 1, 12, 0 ! hA12+ + 12, 1, 13, 0 ! hA13+ + 13, 1, 1, 1 ! hA01- + 14, 1, 2, 1 ! hA02- + 15, 1, 3, 1 ! hA03- + +SLOT=4 + 0, 1, 4, 1 ! hA04- + 1, 1, 5, 1 ! hA05- + 2, 1, 6, 1 ! hA06- + 3, 1, 7, 1 ! hA07- + 4, 1, 8, 1 ! hA08- + 5, 1, 9, 1 ! hA09- + 6, 1, 10, 1 ! hA10- + 7, 1, 11, 1 ! hA11- + 8, 1, 12, 1 ! hA12- + 9, 1, 13, 1 ! hA13- + 10, 2, 1, 0 ! hB01+ + 11, 2, 2, 0 ! hB02+ + 12, 2, 3, 0 ! hB03+ + 13, 2, 4, 0 ! hB04+ + 14, 2, 5, 0 ! hB05+ + 15, 2, 6, 0 ! hB06+ + +SLOT=5 + 0, 2, 7, 0 ! hB07+ + 1, 2, 8, 0 ! hB08+ + 2, 2, 9, 0 ! hB09+ + 3, 2, 10, 0 ! hB10+ + 4, 2, 11, 0 ! hB11+ + 5, 2, 12, 0 ! hB12+ + 6, 2, 13, 0 ! hB13+ + 7, 2, 1, 1 ! hB01- + 8, 2, 2, 1 ! hB02- + 9, 2, 3, 1 ! hB03- + 10, 2, 4, 1 ! hB04- + 11, 2, 5, 1 ! hB05- + 12, 2, 6, 1 ! hB06- + 13, 2, 7, 1 ! hB07- + 14, 2, 8, 1 ! hB08- + 15, 2, 9, 1 ! hB09- + +SLOT=6 + 0, 2, 10, 1 ! hB10- + 1, 2, 11, 1 ! hB11- + 2, 2, 12, 1 ! hB12- + 3, 2, 13, 1 ! hB13- + 4, 3, 1, 0 ! hC01+ + 5, 3, 2, 0 ! hC02+ + 6, 3, 3, 0 ! hC03+ + 7, 3, 4, 0 ! hC04+ + 8, 3, 5, 0 ! hC05+ + 9, 3, 6, 0 ! hC06+ + 10, 3, 7, 0 ! hC07+ + 11, 3, 8, 0 ! hC08+ + 12, 3, 9, 0 ! hC09+ + 13, 3, 10, 0 ! hC10+ + 14, 3, 11, 0 ! hC11+ + 15, 3, 12, 0 ! hC12+ + +SLOT=7 + 0, 3, 13, 0 ! hC13+ + 1, 4, 1, 0 ! hD01+ + 2, 4, 2, 0 ! hD02+ + 3, 4, 3, 0 ! hD03+ + 4, 4, 4, 0 ! hD04+ + 5, 4, 5, 0 ! hD05+ + 6, 4, 6, 0 ! hD06+ + 7, 4, 7, 0 ! hD07+ + 8, 4, 8, 0 ! hD08+ + 9, 4, 9, 0 ! hD09+ + 10, 4, 10, 0 ! hD10+ + 11, 4, 11, 0 ! hD11+ + 12, 4, 12, 0 ! hD12+ + 13, 4, 13, 0 ! hD13+ diff --git a/MAPS/HMS/DETEC/hms_stack_spring17_run_00001_00243.map b/MAPS/HMS/DETEC/hms_stack_spring17_run_00001_00243.map new file mode 100644 index 00000000..4f7ef430 --- /dev/null +++ b/MAPS/HMS/DETEC/hms_stack_spring17_run_00001_00243.map @@ -0,0 +1,1544 @@ +! THMS_ID=10 :: ADC,TDC +! HDC_ID=11 :: TDC +! HSCIN_ID=13 :: ADC+,ADC-,TDC+,TDC- +! HCER_ID=14 :: (TDC),ADC +! HCAL_ID=15 :: ADC + + +DETECTOR=10 + +ROC=11 + +SLOT=17 + 8, 1, 1, 0 ! hASUM + 9, 1, 2, 0 ! hBSUM + 10, 1, 3, 0 ! hCSUM + 11, 1, 4, 0 ! hDSUM + 12, 1, 5, 0 ! hPSHWR + 13, 1, 6, 0 ! hSHWR + 14, 1, 7, 0 ! hAERSUM + 15, 1, 8, 0 ! hCERSUM + +SLOT=2 + 0, 2, 1, 1 ! h1X + 1, 2, 2, 1 ! h1Y + 2, 2, 3, 1 ! h2X + 3, 2, 4, 1 ! h2Y + 4, 2, 5, 1 ! h1T + 5, 2, 6, 1 ! h2T + 6, 2, 7, 1 ! hT1 + 7, 2, 8, 1 ! hASUM + 8, 2, 9, 1 ! hBSUM + 9, 2, 10, 1 ! hCSUM + 10, 2, 11, 1 ! hDSUM + 11, 2, 12, 1 ! hPSHWRLO + 12, 2, 13, 1 ! hPSHWRHI + 13, 2, 14, 1 ! hSHWR + 14, 2, 15, 1 ! hAERSUM + 15, 2, 16, 1 ! hCERSUM + +SLOT=20 + 127, 2, 17, 1 ! hT2 + +ROC=3 + +SLOT=5 + 111, 2, 18, 1 ! hDCREF1 + +SLOT=8 + 127, 2, 19, 1 ! hDCREF2 + +SLOT=10 + 127, 2, 20, 1 ! hDCREF3 + +SLOT=17 + 127, 2, 21, 1 ! hDCREF4 + + +DETECTOR=11 ! HMS chambers + +ROC=3 + +SLOT=5 +REFINDEX=0 + 111,1000, 0, 0 + 96, 3, 1 ! Plane U, wire 1 + 97, 3, 2 ! Plane U, wire 2 + 98, 3, 3 ! Plane U, wire 3 + 99, 3, 4 ! Plane U, wire 4 + 100, 3, 5 ! Plane U, wire 5 + 101, 3, 6 ! Plane U, wire 6 + 102, 3, 7 ! Plane U, wire 7 + 103, 3, 8 ! Plane U, wire 8 + 104, 3, 9 ! Plane U, wire 9 + 105, 3, 10 ! Plane U, wire 10 + 106, 3, 11 ! Plane U, wire 11 + 107, 3, 12 ! Plane U, wire 12 + 108, 3, 13 ! Plane U, wire 13 + 109, 3, 14 ! Plane U, wire 14 + 110, 1, 113 ! Plane X, wire 113 + 80, 3, 15 ! Plane U, wire 15 + 81, 3, 16 ! Plane U, wire 16 + 82, 3, 17 ! Plane U, wire 17 + 83, 3, 18 ! Plane U, wire 18 + 84, 3, 19 ! Plane U, wire 19 + 85, 3, 20 ! Plane U, wire 20 + 86, 3, 21 ! Plane U, wire 21 + 87, 3, 22 ! Plane U, wire 22 + 88, 3, 23 ! Plane U, wire 23 + 89, 3, 24 ! Plane U, wire 24 + 90, 3, 25 ! Plane U, wire 25 + 91, 3, 26 ! Plane U, wire 26 + 92, 3, 27 ! Plane U, wire 27 + 93, 3, 28 ! Plane U, wire 28 + 94, 3, 29 ! Plane U, wire 29 + 64, 3, 30 ! Plane U, wire 30 + 65, 3, 31 ! Plane U, wire 31 + 66, 3, 32 ! Plane U, wire 32 + 67, 3, 33 ! Plane U, wire 33 + 68, 3, 34 ! Plane U, wire 34 + 69, 3, 35 ! Plane U, wire 35 + 70, 3, 36 ! Plane U, wire 36 + 71, 3, 37 ! Plane U, wire 37 + 72, 3, 38 ! Plane U, wire 38 + 73, 3, 39 ! Plane U, wire 39 + 74, 3, 40 ! Plane U, wire 40 + 75, 3, 41 ! Plane U, wire 41 + 76, 3, 42 ! Plane U, wire 42 + 77, 3, 43 ! Plane U, wire 43 + 78, 3, 44 ! Plane U, wire 44 + 79, 3, 45 ! Plane U, wire 45 + 48, 3, 46 ! Plane U, wire 46 + 49, 3, 47 ! Plane U, wire 47 + 50, 3, 48 ! Plane U, wire 48 + 51, 3, 49 ! Plane U, wire 49 + 52, 3, 50 ! Plane U, wire 50 + 53, 3, 51 ! Plane U, wire 51 + 54, 3, 52 ! Plane U, wire 52 + 55, 3, 53 ! Plane U, wire 53 + 56, 3, 54 ! Plane U, wire 54 + 57, 3, 55 ! Plane U, wire 55 + 58, 3, 56 ! Plane U, wire 56 + 59, 3, 57 ! Plane U, wire 57 + 60, 3, 58 ! Plane U, wire 58 + 61, 3, 59 ! Plane U, wire 59 + 62, 3, 60 ! Plane U, wire 60 + 32, 3, 61 ! Plane U, wire 61 + 33, 3, 62 ! Plane U, wire 62 + 34, 3, 63 ! Plane U, wire 63 + 35, 3, 64 ! Plane U, wire 64 + 36, 3, 65 ! Plane U, wire 65 + 37, 3, 66 ! Plane U, wire 66 + 38, 3, 67 ! Plane U, wire 67 + 39, 3, 68 ! Plane U, wire 68 + 40, 3, 69 ! Plane U, wire 69 + 41, 3, 70 ! Plane U, wire 70 + 42, 3, 71 ! Plane U, wire 71 + 43, 3, 72 ! Plane U, wire 72 + 44, 3, 73 ! Plane U, wire 73 + 45, 3, 74 ! Plane U, wire 74 + 46, 3, 75 ! Plane U, wire 75 + 47, 3, 76 ! Plane U, wire 76 + 16, 3, 77 ! Plane U, wire 77 + 17, 3, 78 ! Plane U, wire 78 + 18, 3, 79 ! Plane U, wire 79 + 19, 3, 80 ! Plane U, wire 80 + 20, 3, 81 ! Plane U, wire 81 + 21, 3, 82 ! Plane U, wire 82 + 22, 3, 83 ! Plane U, wire 83 + 23, 3, 84 ! Plane U, wire 84 + 24, 3, 85 ! Plane U, wire 85 + 25, 3, 86 ! Plane U, wire 86 + 26, 3, 87 ! Plane U, wire 87 + 27, 3, 88 ! Plane U, wire 88 + 28, 3, 89 ! Plane U, wire 89 + 29, 3, 90 ! Plane U, wire 90 + 30, 3, 91 ! Plane U, wire 91 + 0, 3, 92 ! Plane U, wire 92 + 1, 3, 93 ! Plane U, wire 93 + 2, 3, 94 ! Plane U, wire 94 + 3, 3, 95 ! Plane U, wire 95 + 4, 3, 96 ! Plane U, wire 96 + 5, 3, 97 ! Plane U, wire 97 + 6, 3, 98 ! Plane U, wire 98 + 7, 3, 99 ! Plane U, wire 99 + 8, 3, 100 ! Plane U, wire 100 + 9, 3, 101 ! Plane U, wire 101 + 10, 3, 102 ! Plane U, wire 102 + 11, 3, 103 ! Plane U, wire 103 + 12, 3, 104 ! Plane U, wire 104 + 13, 3, 105 ! Plane U, wire 105 + 14, 3, 106 ! Plane U, wire 106 + 15, 3, 107 ! Plane U, wire 107 + +SLOT=7 +REFINDEX=0 + 96, 4, 1 ! Plane V, wire 1 + 97, 4, 2 ! Plane V, wire 2 + 98, 4, 3 ! Plane V, wire 3 + 99, 4, 4 ! Plane V, wire 4 + 100, 4, 5 ! Plane V, wire 5 + 101, 4, 6 ! Plane V, wire 6 + 102, 4, 7 ! Plane V, wire 7 + 103, 4, 8 ! Plane V, wire 8 + 104, 4, 9 ! Plane V, wire 9 + 105, 4, 10 ! Plane V, wire 10 + 106, 4, 11 ! Plane V, wire 11 + 107, 4, 12 ! Plane V, wire 12 + 108, 4, 13 ! Plane V, wire 13 + 109, 4, 14 ! Plane V, wire 14 + 110, 6, 113 ! Plane X', wire 113 + 112, 4, 15 ! Plane V, wire 15 + 113, 4, 16 ! Plane V, wire 16 + 114, 4, 17 ! Plane V, wire 17 + 115, 4, 18 ! Plane V, wire 18 + 116, 4, 19 ! Plane V, wire 19 + 117, 4, 20 ! Plane V, wire 20 + 118, 4, 21 ! Plane V, wire 21 + 119, 4, 22 ! Plane V, wire 22 + 120, 4, 23 ! Plane V, wire 23 + 121, 4, 24 ! Plane V, wire 24 + 122, 4, 25 ! Plane V, wire 25 + 123, 4, 26 ! Plane V, wire 26 + 124, 4, 27 ! Plane V, wire 27 + 125, 4, 28 ! Plane V, wire 28 + 126, 4, 29 ! Plane V, wire 29 + +SLOT=8 +REFINDEX=0 + 127,1000, 0, 1 + 0, 4, 30 ! Plane V, wire 30 + 1, 4, 31 ! Plane V, wire 31 + 2, 4, 32 ! Plane V, wire 32 + 3, 4, 33 ! Plane V, wire 33 + 4, 4, 34 ! Plane V, wire 34 + 5, 4, 35 ! Plane V, wire 35 + 6, 4, 36 ! Plane V, wire 36 + 7, 4, 37 ! Plane V, wire 37 + 8, 4, 38 ! Plane V, wire 38 + 9, 4, 39 ! Plane V, wire 39 + 10, 4, 40 ! Plane V, wire 40 + 11, 4, 41 ! Plane V, wire 41 + 12, 4, 42 ! Plane V, wire 42 + 13, 4, 43 ! Plane V, wire 43 + 14, 4, 44 ! Plane V, wire 44 + 15, 4, 45 ! Plane V, wire 45 + 16, 4, 46 ! Plane V, wire 46 + 17, 4, 47 ! Plane V, wire 47 + 18, 4, 48 ! Plane V, wire 48 + 19, 4, 49 ! Plane V, wire 49 + 20, 4, 50 ! Plane V, wire 50 + 21, 4, 51 ! Plane V, wire 51 + 22, 4, 52 ! Plane V, wire 52 + 23, 4, 53 ! Plane V, wire 53 + 24, 4, 54 ! Plane V, wire 54 + 25, 4, 55 ! Plane V, wire 55 + 26, 4, 56 ! Plane V, wire 56 + 27, 4, 57 ! Plane V, wire 57 + 28, 4, 58 ! Plane V, wire 58 + 29, 4, 59 ! Plane V, wire 59 + 30, 4, 60 ! Plane V, wire 60 + 32, 4, 61 ! Plane V, wire 61 + 33, 4, 62 ! Plane V, wire 62 + 34, 4, 63 ! Plane V, wire 63 + 35, 4, 64 ! Plane V, wire 64 + 36, 4, 65 ! Plane V, wire 65 + 37, 4, 66 ! Plane V, wire 66 + 38, 4, 67 ! Plane V, wire 67 + 39, 4, 68 ! Plane V, wire 68 + 40, 4, 69 ! Plane V, wire 69 + 41, 4, 70 ! Plane V, wire 70 + 42, 4, 71 ! Plane V, wire 71 + 43, 4, 72 ! Plane V, wire 72 + 44, 4, 73 ! Plane V, wire 73 + 45, 4, 74 ! Plane V, wire 74 + 46, 4, 75 ! Plane V, wire 75 + 47, 4, 76 ! Plane V, wire 76 + 48, 4, 77 ! Plane V, wire 77 + 49, 4, 78 ! Plane V, wire 78 + 50, 4, 79 ! Plane V, wire 79 + 51, 4, 80 ! Plane V, wire 80 + 52, 4, 81 ! Plane V, wire 81 + 53, 4, 82 ! Plane V, wire 82 + 54, 4, 83 ! Plane V, wire 83 + 55, 4, 84 ! Plane V, wire 84 + 56, 4, 85 ! Plane V, wire 85 + 57, 4, 86 ! Plane V, wire 86 + 58, 4, 87 ! Plane V, wire 87 + 59, 4, 88 ! Plane V, wire 88 + 60, 4, 89 ! Plane V, wire 89 + 61, 4, 90 ! Plane V, wire 90 + 62, 4, 91 ! Plane V, wire 91 + +SLOT=4 +REFINDEX=0 + 96, 4, 92 ! Plane V, wire 92 + 97, 4, 93 ! Plane V, wire 93 + 98, 4, 94 ! Plane V, wire 94 + 99, 4, 95 ! Plane V, wire 95 + 100, 4, 96 ! Plane V, wire 96 + 101, 4, 97 ! Plane V, wire 97 + 102, 4, 98 ! Plane V, wire 98 + 103, 4, 99 ! Plane V, wire 99 + 104, 4, 100 ! Plane V, wire 100 + 105, 4, 101 ! Plane V, wire 101 + 106, 4, 102 ! Plane V, wire 102 + 107, 4, 103 ! Plane V, wire 103 + 108, 4, 104 ! Plane V, wire 104 + 109, 4, 105 ! Plane V, wire 105 + 110, 4, 106 ! Plane V, wire 106 + 111, 4, 107 ! Plane V, wire 107 + 80, 1, 1 ! Plane X, wire 1 + 81, 1, 2 ! Plane X, wire 2 + 82, 1, 3 ! Plane X, wire 3 + 83, 1, 4 ! Plane X, wire 4 + 84, 1, 5 ! Plane X, wire 5 + 85, 1, 6 ! Plane X, wire 6 + 86, 1, 7 ! Plane X, wire 7 + 87, 1, 8 ! Plane X, wire 8 + 88, 1, 9 ! Plane X, wire 9 + 89, 1, 10 ! Plane X, wire 10 + 90, 1, 11 ! Plane X, wire 11 + 91, 1, 12 ! Plane X, wire 12 + 92, 1, 13 ! Plane X, wire 13 + 93, 1, 14 ! Plane X, wire 14 + 94, 1, 15 ! Plane X, wire 15 + 95, 1, 16 ! Plane X, wire 16 + 64, 1, 17 ! Plane X, wire 17 + 65, 1, 18 ! Plane X, wire 18 + 66, 1, 19 ! Plane X, wire 19 + 67, 1, 20 ! Plane X, wire 20 + 68, 1, 21 ! Plane X, wire 21 + 69, 1, 22 ! Plane X, wire 22 + 70, 1, 23 ! Plane X, wire 23 + 71, 1, 24 ! Plane X, wire 24 + 72, 1, 25 ! Plane X, wire 25 + 73, 1, 26 ! Plane X, wire 26 + 74, 1, 27 ! Plane X, wire 27 + 75, 1, 28 ! Plane X, wire 28 + 76, 1, 29 ! Plane X, wire 29 + 77, 1, 30 ! Plane X, wire 30 + 78, 1, 31 ! Plane X, wire 31 + 79, 1, 32 ! Plane X, wire 32 + 48, 1, 33 ! Plane X, wire 33 + 49, 1, 34 ! Plane X, wire 34 + 50, 1, 35 ! Plane X, wire 35 + 51, 1, 36 ! Plane X, wire 36 + 52, 1, 37 ! Plane X, wire 37 + 53, 1, 38 ! Plane X, wire 38 + 54, 1, 39 ! Plane X, wire 39 + 55, 1, 40 ! Plane X, wire 40 + 56, 1, 41 ! Plane X, wire 41 + 57, 1, 42 ! Plane X, wire 42 + 58, 1, 43 ! Plane X, wire 43 + 59, 1, 44 ! Plane X, wire 44 + 60, 1, 45 ! Plane X, wire 45 + 61, 1, 46 ! Plane X, wire 46 + 62, 1, 47 ! Plane X, wire 47 + 63, 1, 48 ! Plane X, wire 48 + 32, 1, 49 ! Plane X, wire 49 + 33, 1, 50 ! Plane X, wire 50 + 34, 1, 51 ! Plane X, wire 51 + 35, 1, 52 ! Plane X, wire 52 + 36, 1, 53 ! Plane X, wire 53 + 37, 1, 54 ! Plane X, wire 54 + 38, 1, 55 ! Plane X, wire 55 + 39, 1, 56 ! Plane X, wire 56 + 40, 1, 57 ! Plane X, wire 57 + 41, 1, 58 ! Plane X, wire 58 + 42, 1, 59 ! Plane X, wire 59 + 43, 1, 60 ! Plane X, wire 60 + 44, 1, 61 ! Plane X, wire 61 + 45, 1, 62 ! Plane X, wire 62 + 46, 1, 63 ! Plane X, wire 63 + 47, 1, 64 ! Plane X, wire 64 + 16, 1, 65 ! Plane X, wire 65 + 17, 1, 66 ! Plane X, wire 66 + 18, 1, 67 ! Plane X, wire 67 + 19, 1, 68 ! Plane X, wire 68 + 20, 1, 69 ! Plane X, wire 69 + 21, 1, 70 ! Plane X, wire 70 + 22, 1, 71 ! Plane X, wire 71 + 23, 1, 72 ! Plane X, wire 72 + 24, 1, 73 ! Plane X, wire 73 + 25, 1, 74 ! Plane X, wire 74 + 26, 1, 75 ! Plane X, wire 75 + 27, 1, 76 ! Plane X, wire 76 + 28, 1, 77 ! Plane X, wire 77 + 29, 1, 78 ! Plane X, wire 78 + 30, 1, 79 ! Plane X, wire 79 + 31, 1, 80 ! Plane X, wire 80 + 0, 1, 81 ! Plane X, wire 81 + 1, 1, 82 ! Plane X, wire 82 + 2, 1, 83 ! Plane X, wire 83 + 3, 1, 84 ! Plane X, wire 84 + 4, 1, 85 ! Plane X, wire 85 + 5, 1, 86 ! Plane X, wire 86 + 6, 1, 87 ! Plane X, wire 87 + 7, 1, 88 ! Plane X, wire 88 + 8, 1, 89 ! Plane X, wire 89 + 9, 1, 90 ! Plane X, wire 90 + 10, 1, 91 ! Plane X, wire 91 + 11, 1, 92 ! Plane X, wire 92 + 12, 1, 93 ! Plane X, wire 93 + 13, 1, 94 ! Plane X, wire 94 + 14, 1, 95 ! Plane X, wire 95 + 15, 1, 96 ! Plane X, wire 96 + +SLOT=7 +REFINDEX=0 + 80, 1, 97 ! Plane X, wire 97 + 81, 1, 98 ! Plane X, wire 98 + 82, 1, 99 ! Plane X, wire 99 + 83, 1, 100 ! Plane X, wire 100 + 84, 1, 101 ! Plane X, wire 101 + 85, 1, 102 ! Plane X, wire 102 + 86, 1, 103 ! Plane X, wire 103 + 87, 1, 104 ! Plane X, wire 104 + 88, 1, 105 ! Plane X, wire 105 + 89, 1, 106 ! Plane X, wire 106 + 90, 1, 107 ! Plane X, wire 107 + 91, 1, 108 ! Plane X, wire 108 + 92, 1, 109 ! Plane X, wire 109 + 93, 1, 110 ! Plane X, wire 110 + 94, 1, 111 ! Plane X, wire 111 + 95, 1, 112 ! Plane X, wire 112 + +SLOT=4 +REFINDEX=0 + 112, 6, 1 ! Plane X', wire 1 + 113, 6, 2 ! Plane X', wire 2 + 114, 6, 3 ! Plane X', wire 3 + 115, 6, 4 ! Plane X', wire 4 + 116, 6, 5 ! Plane X', wire 5 + 117, 6, 6 ! Plane X', wire 6 + 118, 6, 7 ! Plane X', wire 7 + 119, 6, 8 ! Plane X', wire 8 + 120, 6, 9 ! Plane X', wire 9 + 121, 6, 10 ! Plane X', wire 10 + 122, 6, 11 ! Plane X', wire 11 + 123, 6, 12 ! Plane X', wire 12 + 124, 6, 13 ! Plane X', wire 13 + 125, 6, 14 ! Plane X', wire 14 + 126, 6, 15 ! Plane X', wire 15 + 127, 6, 16 ! Plane X', wire 16 + +SLOT=5 +REFINDEX=0 + 112, 6, 17 ! Plane X', wire 17 + 113, 6, 18 ! Plane X', wire 18 + 114, 6, 19 ! Plane X', wire 19 + 115, 6, 20 ! Plane X', wire 20 + 116, 6, 21 ! Plane X', wire 21 + 117, 6, 22 ! Plane X', wire 22 + 118, 6, 23 ! Plane X', wire 23 + 119, 6, 24 ! Plane X', wire 24 + 120, 6, 25 ! Plane X', wire 25 + 121, 6, 26 ! Plane X', wire 26 + 122, 6, 27 ! Plane X', wire 27 + 123, 6, 28 ! Plane X', wire 28 + 124, 6, 29 ! Plane X', wire 29 + 125, 6, 30 ! Plane X', wire 30 + 126, 6, 31 ! Plane X', wire 31 + 127, 6, 32 ! Plane X', wire 32 + +SLOT=7 +REFINDEX=0 + 0, 6, 33 ! Plane X', wire 33 + 1, 6, 34 ! Plane X', wire 34 + 2, 6, 35 ! Plane X', wire 35 + 3, 6, 36 ! Plane X', wire 36 + 4, 6, 37 ! Plane X', wire 37 + 5, 6, 38 ! Plane X', wire 38 + 6, 6, 39 ! Plane X', wire 39 + 7, 6, 40 ! Plane X', wire 40 + 8, 6, 41 ! Plane X', wire 41 + 9, 6, 42 ! Plane X', wire 42 + 10, 6, 43 ! Plane X', wire 43 + 11, 6, 44 ! Plane X', wire 44 + 12, 6, 45 ! Plane X', wire 45 + 13, 6, 46 ! Plane X', wire 46 + 14, 6, 47 ! Plane X', wire 47 + 15, 6, 48 ! Plane X', wire 48 + 16, 6, 49 ! Plane X', wire 49 + 17, 6, 50 ! Plane X', wire 50 + 18, 6, 51 ! Plane X', wire 51 + 19, 6, 52 ! Plane X', wire 52 + 20, 6, 53 ! Plane X', wire 53 + 21, 6, 54 ! Plane X', wire 54 + 22, 6, 55 ! Plane X', wire 55 + 23, 6, 56 ! Plane X', wire 56 + 24, 6, 57 ! Plane X', wire 57 + 25, 6, 58 ! Plane X', wire 58 + 26, 6, 59 ! Plane X', wire 59 + 27, 6, 60 ! Plane X', wire 60 + 28, 6, 61 ! Plane X', wire 61 + 29, 6, 62 ! Plane X', wire 62 + 30, 6, 63 ! Plane X', wire 63 + 31, 6, 64 ! Plane X', wire 64 + 32, 6, 65 ! Plane X', wire 65 + 33, 6, 66 ! Plane X', wire 66 + 34, 6, 67 ! Plane X', wire 67 + 35, 6, 68 ! Plane X', wire 68 + 36, 6, 69 ! Plane X', wire 69 + 37, 6, 70 ! Plane X', wire 70 + 38, 6, 71 ! Plane X', wire 71 + 39, 6, 72 ! Plane X', wire 72 + 40, 6, 73 ! Plane X', wire 73 + 41, 6, 74 ! Plane X', wire 74 + 42, 6, 75 ! Plane X', wire 75 + 43, 6, 76 ! Plane X', wire 76 + 44, 6, 77 ! Plane X', wire 77 + 45, 6, 78 ! Plane X', wire 78 + 46, 6, 79 ! Plane X', wire 79 + 47, 6, 80 ! Plane X', wire 80 + 48, 6, 81 ! Plane X', wire 81 + 49, 6, 82 ! Plane X', wire 82 + 50, 6, 83 ! Plane X', wire 83 + 51, 6, 84 ! Plane X', wire 84 + 52, 6, 85 ! Plane X', wire 85 + 53, 6, 86 ! Plane X', wire 86 + 54, 6, 87 ! Plane X', wire 87 + 55, 6, 88 ! Plane X', wire 88 + 56, 6, 89 ! Plane X', wire 89 + 57, 6, 90 ! Plane X', wire 90 + 58, 6, 91 ! Plane X', wire 91 + 59, 6, 92 ! Plane X', wire 92 + 60, 6, 93 ! Plane X', wire 93 + 61, 6, 94 ! Plane X', wire 94 + 62, 6, 95 ! Plane X', wire 95 + 63, 6, 96 ! Plane X', wire 96 + 64, 6, 97 ! Plane X', wire 97 + 65, 6, 98 ! Plane X', wire 98 + 66, 6, 99 ! Plane X', wire 99 + 67, 6, 100 ! Plane X', wire 100 + 68, 6, 101 ! Plane X', wire 101 + 69, 6, 102 ! Plane X', wire 102 + 70, 6, 103 ! Plane X', wire 103 + 71, 6, 104 ! Plane X', wire 104 + 72, 6, 105 ! Plane X', wire 105 + 73, 6, 106 ! Plane X', wire 106 + 74, 6, 107 ! Plane X', wire 107 + 75, 6, 108 ! Plane X', wire 108 + 76, 6, 109 ! Plane X', wire 109 + 77, 6, 110 ! Plane X', wire 110 + 78, 6, 111 ! Plane X', wire 111 + 79, 6, 112 ! Plane X', wire 112 + +SLOT=8 +REFINDEX=0 + 64, 2, 1 ! Plane Y, wire 1 + 65, 2, 2 ! Plane Y, wire 2 + 66, 2, 3 ! Plane Y, wire 3 + 67, 2, 4 ! Plane Y, wire 4 + 68, 2, 5 ! Plane Y, wire 5 + 69, 2, 6 ! Plane Y, wire 6 + 70, 2, 7 ! Plane Y, wire 7 + 71, 2, 8 ! Plane Y, wire 8 + 72, 2, 9 ! Plane Y, wire 9 + 73, 2, 10 ! Plane Y, wire 10 + 74, 2, 11 ! Plane Y, wire 11 + 75, 2, 12 ! Plane Y, wire 12 + 76, 2, 13 ! Plane Y, wire 13 + 80, 2, 14 ! Plane Y, wire 14 + 81, 2, 15 ! Plane Y, wire 15 + 82, 2, 16 ! Plane Y, wire 16 + 83, 2, 17 ! Plane Y, wire 17 + 84, 2, 18 ! Plane Y, wire 18 + 85, 2, 19 ! Plane Y, wire 19 + 86, 2, 20 ! Plane Y, wire 20 + 87, 2, 21 ! Plane Y, wire 21 + 88, 2, 22 ! Plane Y, wire 22 + 89, 2, 23 ! Plane Y, wire 23 + 90, 2, 24 ! Plane Y, wire 24 + 91, 2, 25 ! Plane Y, wire 25 + 92, 2, 26 ! Plane Y, wire 26 + 96, 2, 27 ! Plane Y, wire 27 + 97, 2, 28 ! Plane Y, wire 28 + 98, 2, 29 ! Plane Y, wire 29 + 99, 2, 30 ! Plane Y, wire 30 + 100, 2, 31 ! Plane Y, wire 31 + 101, 2, 32 ! Plane Y, wire 32 + 102, 2, 33 ! Plane Y, wire 33 + 103, 2, 34 ! Plane Y, wire 34 + 104, 2, 35 ! Plane Y, wire 35 + 105, 2, 36 ! Plane Y, wire 36 + 106, 2, 37 ! Plane Y, wire 37 + 107, 2, 38 ! Plane Y, wire 38 + 108, 2, 39 ! Plane Y, wire 39 + 112, 2, 40 ! Plane Y, wire 40 + 113, 2, 41 ! Plane Y, wire 41 + 114, 2, 42 ! Plane Y, wire 42 + 115, 2, 43 ! Plane Y, wire 43 + 116, 2, 44 ! Plane Y, wire 44 + 117, 2, 45 ! Plane Y, wire 45 + 118, 2, 46 ! Plane Y, wire 46 + 119, 2, 47 ! Plane Y, wire 47 + 120, 2, 48 ! Plane Y, wire 48 + 121, 2, 49 ! Plane Y, wire 49 + 122, 2, 50 ! Plane Y, wire 50 + 123, 2, 51 ! Plane Y, wire 51 + 124, 2, 52 ! Plane Y, wire 52 + +SLOT=10 +REFINDEX=0 + 127,1000, 0, 2 + 0, 5, 1 ! Plane Y', wire 1 + 1, 5, 2 ! Plane Y', wire 2 + 2, 5, 3 ! Plane Y', wire 3 + 3, 5, 4 ! Plane Y', wire 4 + 4, 5, 5 ! Plane Y', wire 5 + 5, 5, 6 ! Plane Y', wire 6 + 6, 5, 7 ! Plane Y', wire 7 + 7, 5, 8 ! Plane Y', wire 8 + 8, 5, 9 ! Plane Y', wire 9 + 9, 5, 10 ! Plane Y', wire 10 + 10, 5, 11 ! Plane Y', wire 11 + 11, 5, 12 ! Plane Y', wire 12 + 12, 5, 13 ! Plane Y', wire 13 + 16, 5, 14 ! Plane Y', wire 14 + 17, 5, 15 ! Plane Y', wire 15 + 18, 5, 16 ! Plane Y', wire 16 + 19, 5, 17 ! Plane Y', wire 17 + 20, 5, 18 ! Plane Y', wire 18 + 21, 5, 19 ! Plane Y', wire 19 + 22, 5, 20 ! Plane Y', wire 20 + 23, 5, 21 ! Plane Y', wire 21 + 24, 5, 22 ! Plane Y', wire 22 + 25, 5, 23 ! Plane Y', wire 23 + 26, 5, 24 ! Plane Y', wire 24 + 27, 5, 25 ! Plane Y', wire 25 + 28, 5, 26 ! Plane Y', wire 26 + 32, 5, 27 ! Plane Y', wire 27 + 33, 5, 28 ! Plane Y', wire 28 + 34, 5, 29 ! Plane Y', wire 29 + 35, 5, 30 ! Plane Y', wire 30 + 36, 5, 31 ! Plane Y', wire 31 + 37, 5, 32 ! Plane Y', wire 32 + 38, 5, 33 ! Plane Y', wire 33 + 39, 5, 34 ! Plane Y', wire 34 + 40, 5, 35 ! Plane Y', wire 35 + 41, 5, 36 ! Plane Y', wire 36 + 42, 5, 37 ! Plane Y', wire 37 + 43, 5, 38 ! Plane Y', wire 38 + 44, 5, 39 ! Plane Y', wire 39 + 48, 5, 40 ! Plane Y', wire 40 + 49, 5, 41 ! Plane Y', wire 41 + 50, 5, 42 ! Plane Y', wire 42 + 51, 5, 43 ! Plane Y', wire 43 + 52, 5, 44 ! Plane Y', wire 44 + 53, 5, 45 ! Plane Y', wire 45 + 54, 5, 46 ! Plane Y', wire 46 + 55, 5, 47 ! Plane Y', wire 47 + 56, 5, 48 ! Plane Y', wire 48 + 57, 5, 49 ! Plane Y', wire 49 + 58, 5, 50 ! Plane Y', wire 50 + 59, 5, 51 ! Plane Y', wire 51 + 60, 5, 52 ! Plane Y', wire 52 + +SLOT=16 +REFINDEX=0 + 96, 9, 1 ! Plane U, wire 1 + 97, 9, 2 ! Plane U, wire 2 + 98, 9, 3 ! Plane U, wire 3 + 99, 9, 4 ! Plane U, wire 4 + 100, 9, 5 ! Plane U, wire 5 + 101, 9, 6 ! Plane U, wire 6 + 102, 9, 7 ! Plane U, wire 7 + 103, 9, 8 ! Plane U, wire 8 + 104, 9, 9 ! Plane U, wire 9 + 105, 9, 10 ! Plane U, wire 10 + 106, 9, 11 ! Plane U, wire 11 + 107, 9, 12 ! Plane U, wire 12 + 108, 9, 13 ! Plane U, wire 13 + 109, 9, 14 ! Plane U, wire 14 + 110, 7, 113 ! Plane X, wire 113 + 112, 9, 15 ! Plane U, wire 15 + 113, 9, 16 ! Plane U, wire 16 + 114, 9, 17 ! Plane U, wire 17 + 115, 9, 18 ! Plane U, wire 18 + 116, 9, 19 ! Plane U, wire 19 + 117, 9, 20 ! Plane U, wire 20 + 118, 9, 21 ! Plane U, wire 21 + 119, 9, 22 ! Plane U, wire 22 + 120, 9, 23 ! Plane U, wire 23 + 121, 9, 24 ! Plane U, wire 24 + 122, 9, 25 ! Plane U, wire 25 + 123, 9, 26 ! Plane U, wire 26 + 124, 9, 27 ! Plane U, wire 27 + 125, 9, 28 ! Plane U, wire 28 + 126, 9, 29 ! Plane U, wire 29 + +SLOT=14 +REFINDEX=0 + 0, 9, 30 ! Plane U, wire 30 + 1, 9, 31 ! Plane U, wire 31 + 2, 9, 32 ! Plane U, wire 32 + 3, 9, 33 ! Plane U, wire 33 + 4, 9, 34 ! Plane U, wire 34 + 5, 9, 35 ! Plane U, wire 35 + 6, 9, 36 ! Plane U, wire 36 + 7, 9, 37 ! Plane U, wire 37 + 8, 9, 38 ! Plane U, wire 38 + 9, 9, 39 ! Plane U, wire 39 + 10, 9, 40 ! Plane U, wire 40 + 11, 9, 41 ! Plane U, wire 41 + 12, 9, 42 ! Plane U, wire 42 + 13, 9, 43 ! Plane U, wire 43 + 14, 9, 44 ! Plane U, wire 44 + 15, 9, 45 ! Plane U, wire 45 + 32, 9, 46 ! Plane U, wire 46 + 33, 9, 47 ! Plane U, wire 47 + 34, 9, 48 ! Plane U, wire 48 + 35, 9, 49 ! Plane U, wire 49 + 36, 9, 50 ! Plane U, wire 50 + 37, 9, 51 ! Plane U, wire 51 + 38, 9, 52 ! Plane U, wire 52 + 39, 9, 53 ! Plane U, wire 53 + 40, 9, 54 ! Plane U, wire 54 + 41, 9, 55 ! Plane U, wire 55 + 42, 9, 56 ! Plane U, wire 56 + 43, 9, 57 ! Plane U, wire 57 + 44, 9, 58 ! Plane U, wire 58 + 45, 9, 59 ! Plane U, wire 59 + 46, 9, 60 ! Plane U, wire 60 + 48, 9, 61 ! Plane U, wire 61 + 49, 9, 62 ! Plane U, wire 62 + 50, 9, 63 ! Plane U, wire 63 + 51, 9, 64 ! Plane U, wire 64 + 52, 9, 65 ! Plane U, wire 65 + 53, 9, 66 ! Plane U, wire 66 + 54, 9, 67 ! Plane U, wire 67 + 55, 9, 68 ! Plane U, wire 68 + 56, 9, 69 ! Plane U, wire 69 + 57, 9, 70 ! Plane U, wire 70 + 58, 9, 71 ! Plane U, wire 71 + 59, 9, 72 ! Plane U, wire 72 + 60, 9, 73 ! Plane U, wire 73 + 61, 9, 74 ! Plane U, wire 74 + 62, 9, 75 ! Plane U, wire 75 + 63, 9, 76 ! Plane U, wire 76 + 64, 9, 77 ! Plane U, wire 77 + 65, 9, 78 ! Plane U, wire 78 + 66, 9, 79 ! Plane U, wire 79 + 67, 9, 80 ! Plane U, wire 80 + 68, 9, 81 ! Plane U, wire 81 + 69, 9, 82 ! Plane U, wire 82 + 70, 9, 83 ! Plane U, wire 83 + 71, 9, 84 ! Plane U, wire 84 + 72, 9, 85 ! Plane U, wire 85 + 73, 9, 86 ! Plane U, wire 86 + 74, 9, 87 ! Plane U, wire 87 + 75, 9, 88 ! Plane U, wire 88 + 76, 9, 89 ! Plane U, wire 89 + 77, 9, 90 ! Plane U, wire 90 + 78, 9, 91 ! Plane U, wire 91 + 80, 9, 92 ! Plane U, wire 92 + 81, 9, 93 ! Plane U, wire 93 + 82, 9, 94 ! Plane U, wire 94 + 83, 9, 95 ! Plane U, wire 95 + 84, 9, 96 ! Plane U, wire 96 + 85, 9, 97 ! Plane U, wire 97 + 86, 9, 98 ! Plane U, wire 98 + 87, 9, 99 ! Plane U, wire 99 + 88, 9, 100 ! Plane U, wire 100 + 89, 9, 101 ! Plane U, wire 101 + 90, 9, 102 ! Plane U, wire 102 + 91, 9, 103 ! Plane U, wire 103 + 92, 9, 104 ! Plane U, wire 104 + 93, 9, 105 ! Plane U, wire 105 + 94, 9, 106 ! Plane U, wire 106 + 95, 9, 107 ! Plane U, wire 107 + +SLOT=16 +REFINDEX=0 + 80, 10, 1 ! Plane V, wire 1 + 81, 10, 2 ! Plane V, wire 2 + 82, 10, 3 ! Plane V, wire 3 + 83, 10, 4 ! Plane V, wire 4 + 84, 10, 5 ! Plane V, wire 5 + 85, 10, 6 ! Plane V, wire 6 + 86, 10, 7 ! Plane V, wire 7 + 87, 10, 8 ! Plane V, wire 8 + 88, 10, 9 ! Plane V, wire 9 + 89, 10, 10 ! Plane V, wire 10 + 90, 10, 11 ! Plane V, wire 11 + 91, 10, 12 ! Plane V, wire 12 + 92, 10, 13 ! Plane V, wire 13 + 93, 10, 14 ! Plane V, wire 14 + 94, 12, 113 ! Plane X', wire 113 + +SLOT=14 +REFINDEX=0 + 96, 10, 15 ! Plane V, wire 15 + 97, 10, 16 ! Plane V, wire 16 + 98, 10, 17 ! Plane V, wire 17 + 99, 10, 18 ! Plane V, wire 18 + 100, 10, 19 ! Plane V, wire 19 + 101, 10, 20 ! Plane V, wire 20 + 102, 10, 21 ! Plane V, wire 21 + 103, 10, 22 ! Plane V, wire 22 + 104, 10, 23 ! Plane V, wire 23 + 105, 10, 24 ! Plane V, wire 24 + 106, 10, 25 ! Plane V, wire 25 + 107, 10, 26 ! Plane V, wire 26 + 108, 10, 27 ! Plane V, wire 27 + 109, 10, 28 ! Plane V, wire 28 + 110, 10, 29 ! Plane V, wire 29 + 112, 10, 30 ! Plane V, wire 30 + 113, 10, 31 ! Plane V, wire 31 + 114, 10, 32 ! Plane V, wire 32 + 115, 10, 33 ! Plane V, wire 33 + 116, 10, 34 ! Plane V, wire 34 + 117, 10, 35 ! Plane V, wire 35 + 118, 10, 36 ! Plane V, wire 36 + 119, 10, 37 ! Plane V, wire 37 + 120, 10, 38 ! Plane V, wire 38 + 121, 10, 39 ! Plane V, wire 39 + 122, 10, 40 ! Plane V, wire 40 + 123, 10, 41 ! Plane V, wire 41 + 124, 10, 42 ! Plane V, wire 42 + 125, 10, 43 ! Plane V, wire 43 + 126, 10, 44 ! Plane V, wire 44 + 127, 10, 45 ! Plane V, wire 45 + +SLOT=17 +REFINDEX=0 + 127,1000, 0, 3 + 0, 10, 46 ! Plane V, wire 46 + 1, 10, 47 ! Plane V, wire 47 + 2, 10, 48 ! Plane V, wire 48 + 3, 10, 49 ! Plane V, wire 49 + 4, 10, 50 ! Plane V, wire 50 + 5, 10, 51 ! Plane V, wire 51 + 6, 10, 52 ! Plane V, wire 52 + 7, 10, 53 ! Plane V, wire 53 + 8, 10, 54 ! Plane V, wire 54 + 9, 10, 55 ! Plane V, wire 55 + 10, 10, 56 ! Plane V, wire 56 + 11, 10, 57 ! Plane V, wire 57 + 12, 10, 58 ! Plane V, wire 58 + 13, 10, 59 ! Plane V, wire 59 + 14, 10, 60 ! Plane V, wire 60 + 16, 10, 61 ! Plane V, wire 61 + 17, 10, 62 ! Plane V, wire 62 + 18, 10, 63 ! Plane V, wire 63 + 19, 10, 64 ! Plane V, wire 64 + 20, 10, 65 ! Plane V, wire 65 + 21, 10, 66 ! Plane V, wire 66 + 22, 10, 67 ! Plane V, wire 67 + 23, 10, 68 ! Plane V, wire 68 + 24, 10, 69 ! Plane V, wire 69 + 25, 10, 70 ! Plane V, wire 70 + 26, 10, 71 ! Plane V, wire 71 + 27, 10, 72 ! Plane V, wire 72 + 28, 10, 73 ! Plane V, wire 73 + 29, 10, 74 ! Plane V, wire 74 + 30, 10, 75 ! Plane V, wire 75 + 31, 10, 76 ! Plane V, wire 76 + 32, 10, 77 ! Plane V, wire 77 + 33, 10, 78 ! Plane V, wire 78 + 34, 10, 79 ! Plane V, wire 79 + 35, 10, 80 ! Plane V, wire 80 + 36, 10, 81 ! Plane V, wire 81 + 37, 10, 82 ! Plane V, wire 82 + 38, 10, 83 ! Plane V, wire 83 + 39, 10, 84 ! Plane V, wire 84 + 40, 10, 85 ! Plane V, wire 85 + 41, 10, 86 ! Plane V, wire 86 + 42, 10, 87 ! Plane V, wire 87 + 43, 10, 88 ! Plane V, wire 88 + 44, 10, 89 ! Plane V, wire 89 + 45, 10, 90 ! Plane V, wire 90 + 46, 10, 91 ! Plane V, wire 91 + 48, 10, 92 ! Plane V, wire 92 + 49, 10, 93 ! Plane V, wire 93 + 50, 10, 94 ! Plane V, wire 94 + 51, 10, 95 ! Plane V, wire 95 + 52, 10, 96 ! Plane V, wire 96 + 53, 10, 97 ! Plane V, wire 97 + 54, 10, 98 ! Plane V, wire 98 + 55, 10, 99 ! Plane V, wire 99 + 56, 10, 100 ! Plane V, wire 100 + 57, 10, 101 ! Plane V, wire 101 + 58, 10, 102 ! Plane V, wire 102 + 59, 10, 103 ! Plane V, wire 103 + 60, 10, 104 ! Plane V, wire 104 + 61, 10, 105 ! Plane V, wire 105 + 62, 10, 106 ! Plane V, wire 106 + 63, 10, 107 ! Plane V, wire 107 + +SLOT=13 +REFINDEX=0 + 0, 7, 1 ! Plane X, wire 1 + 1, 7, 2 ! Plane X, wire 2 + 2, 7, 3 ! Plane X, wire 3 + 3, 7, 4 ! Plane X, wire 4 + 4, 7, 5 ! Plane X, wire 5 + 5, 7, 6 ! Plane X, wire 6 + 6, 7, 7 ! Plane X, wire 7 + 7, 7, 8 ! Plane X, wire 8 + 8, 7, 9 ! Plane X, wire 9 + 9, 7, 10 ! Plane X, wire 10 + 10, 7, 11 ! Plane X, wire 11 + 11, 7, 12 ! Plane X, wire 12 + 12, 7, 13 ! Plane X, wire 13 + 13, 7, 14 ! Plane X, wire 14 + 14, 7, 15 ! Plane X, wire 15 + 15, 7, 16 ! Plane X, wire 16 + 16, 7, 17 ! Plane X, wire 17 + 17, 7, 18 ! Plane X, wire 18 + 18, 7, 19 ! Plane X, wire 19 + 19, 7, 20 ! Plane X, wire 20 + 20, 7, 21 ! Plane X, wire 21 + 21, 7, 22 ! Plane X, wire 22 + 22, 7, 23 ! Plane X, wire 23 + 23, 7, 24 ! Plane X, wire 24 + 24, 7, 25 ! Plane X, wire 25 + 25, 7, 26 ! Plane X, wire 26 + 26, 7, 27 ! Plane X, wire 27 + 27, 7, 28 ! Plane X, wire 28 + 28, 7, 29 ! Plane X, wire 29 + 29, 7, 30 ! Plane X, wire 30 + 30, 7, 31 ! Plane X, wire 31 + 31, 7, 32 ! Plane X, wire 32 + 32, 7, 33 ! Plane X, wire 33 + 33, 7, 34 ! Plane X, wire 34 + 34, 7, 35 ! Plane X, wire 35 + 35, 7, 36 ! Plane X, wire 36 + 36, 7, 37 ! Plane X, wire 37 + 37, 7, 38 ! Plane X, wire 38 + 38, 7, 39 ! Plane X, wire 39 + 39, 7, 40 ! Plane X, wire 40 + 40, 7, 41 ! Plane X, wire 41 + 41, 7, 42 ! Plane X, wire 42 + 42, 7, 43 ! Plane X, wire 43 + 43, 7, 44 ! Plane X, wire 44 + 44, 7, 45 ! Plane X, wire 45 + 45, 7, 46 ! Plane X, wire 46 + 46, 7, 47 ! Plane X, wire 47 + 47, 7, 48 ! Plane X, wire 48 + 48, 7, 49 ! Plane X, wire 49 + 49, 7, 50 ! Plane X, wire 50 + 50, 7, 51 ! Plane X, wire 51 + 51, 7, 52 ! Plane X, wire 52 + 52, 7, 53 ! Plane X, wire 53 + 53, 7, 54 ! Plane X, wire 54 + 54, 7, 55 ! Plane X, wire 55 + 55, 7, 56 ! Plane X, wire 56 + 56, 7, 57 ! Plane X, wire 57 + 57, 7, 58 ! Plane X, wire 58 + 58, 7, 59 ! Plane X, wire 59 + 59, 7, 60 ! Plane X, wire 60 + 60, 7, 61 ! Plane X, wire 61 + 61, 7, 62 ! Plane X, wire 62 + 62, 7, 63 ! Plane X, wire 63 + 63, 7, 64 ! Plane X, wire 64 + 64, 7, 65 ! Plane X, wire 65 + 65, 7, 66 ! Plane X, wire 66 + 66, 7, 67 ! Plane X, wire 67 + 67, 7, 68 ! Plane X, wire 68 + 68, 7, 69 ! Plane X, wire 69 + 69, 7, 70 ! Plane X, wire 70 + 70, 7, 71 ! Plane X, wire 71 + 71, 7, 72 ! Plane X, wire 72 + 72, 7, 73 ! Plane X, wire 73 + 73, 7, 74 ! Plane X, wire 74 + 74, 7, 75 ! Plane X, wire 75 + 75, 7, 76 ! Plane X, wire 76 + 76, 7, 77 ! Plane X, wire 77 + 77, 7, 78 ! Plane X, wire 78 + 78, 7, 79 ! Plane X, wire 79 + 79, 7, 80 ! Plane X, wire 80 + 80, 7, 81 ! Plane X, wire 81 + 81, 7, 82 ! Plane X, wire 82 + 82, 7, 83 ! Plane X, wire 83 + 83, 7, 84 ! Plane X, wire 84 + 84, 7, 85 ! Plane X, wire 85 + 85, 7, 86 ! Plane X, wire 86 + 86, 7, 87 ! Plane X, wire 87 + 87, 7, 88 ! Plane X, wire 88 + 88, 7, 89 ! Plane X, wire 89 + 89, 7, 90 ! Plane X, wire 90 + 90, 7, 91 ! Plane X, wire 91 + 91, 7, 92 ! Plane X, wire 92 + 92, 7, 93 ! Plane X, wire 93 + 93, 7, 94 ! Plane X, wire 94 + 94, 7, 95 ! Plane X, wire 95 + 95, 7, 96 ! Plane X, wire 96 + 96, 7, 97 ! Plane X, wire 97 + 97, 7, 98 ! Plane X, wire 98 + 98, 7, 99 ! Plane X, wire 99 + 99, 7, 100 ! Plane X, wire 100 + 100, 7, 101 ! Plane X, wire 101 + 101, 7, 102 ! Plane X, wire 102 + 102, 7, 103 ! Plane X, wire 103 + 103, 7, 104 ! Plane X, wire 104 + 104, 7, 105 ! Plane X, wire 105 + 105, 7, 106 ! Plane X, wire 106 + 106, 7, 107 ! Plane X, wire 107 + 107, 7, 108 ! Plane X, wire 108 + 108, 7, 109 ! Plane X, wire 109 + 109, 7, 110 ! Plane X, wire 110 + 110, 7, 111 ! Plane X, wire 111 + 111, 7, 112 ! Plane X, wire 112 + 112, 12, 1 ! Plane X', wire 1 + 113, 12, 2 ! Plane X', wire 2 + 114, 12, 3 ! Plane X', wire 3 + 115, 12, 4 ! Plane X', wire 4 + 116, 12, 5 ! Plane X', wire 5 + 117, 12, 6 ! Plane X', wire 6 + 118, 12, 7 ! Plane X', wire 7 + 119, 12, 8 ! Plane X', wire 8 + 120, 12, 9 ! Plane X', wire 9 + 121, 12, 10 ! Plane X', wire 10 + 122, 12, 11 ! Plane X', wire 11 + 123, 12, 12 ! Plane X', wire 12 + 124, 12, 13 ! Plane X', wire 13 + 125, 12, 14 ! Plane X', wire 14 + 126, 12, 15 ! Plane X', wire 15 + 127, 12, 16 ! Plane X', wire 16 + +SLOT=14 +REFINDEX=0 + 16, 12, 17 ! Plane X', wire 17 + 17, 12, 18 ! Plane X', wire 18 + 18, 12, 19 ! Plane X', wire 19 + 19, 12, 20 ! Plane X', wire 20 + 20, 12, 21 ! Plane X', wire 21 + 21, 12, 22 ! Plane X', wire 22 + 22, 12, 23 ! Plane X', wire 23 + 23, 12, 24 ! Plane X', wire 24 + 24, 12, 25 ! Plane X', wire 25 + 25, 12, 26 ! Plane X', wire 26 + 26, 12, 27 ! Plane X', wire 27 + 27, 12, 28 ! Plane X', wire 28 + 28, 12, 29 ! Plane X', wire 29 + 29, 12, 30 ! Plane X', wire 30 + 30, 12, 31 ! Plane X', wire 31 + 31, 12, 32 ! Plane X', wire 32 + +SLOT=16 +REFINDEX=0 + 0, 12, 33 ! Plane X', wire 33 + 1, 12, 34 ! Plane X', wire 34 + 2, 12, 35 ! Plane X', wire 35 + 3, 12, 36 ! Plane X', wire 36 + 4, 12, 37 ! Plane X', wire 37 + 5, 12, 38 ! Plane X', wire 38 + 6, 12, 39 ! Plane X', wire 39 + 7, 12, 40 ! Plane X', wire 40 + 8, 12, 41 ! Plane X', wire 41 + 9, 12, 42 ! Plane X', wire 42 + 10, 12, 43 ! Plane X', wire 43 + 11, 12, 44 ! Plane X', wire 44 + 12, 12, 45 ! Plane X', wire 45 + 13, 12, 46 ! Plane X', wire 46 + 14, 12, 47 ! Plane X', wire 47 + 15, 12, 48 ! Plane X', wire 48 + 16, 12, 49 ! Plane X', wire 49 + 17, 12, 50 ! Plane X', wire 50 + 18, 12, 51 ! Plane X', wire 51 + 19, 12, 52 ! Plane X', wire 52 + 20, 12, 53 ! Plane X', wire 53 + 21, 12, 54 ! Plane X', wire 54 + 22, 12, 55 ! Plane X', wire 55 + 23, 12, 56 ! Plane X', wire 56 + 24, 12, 57 ! Plane X', wire 57 + 25, 12, 58 ! Plane X', wire 58 + 26, 12, 59 ! Plane X', wire 59 + 27, 12, 60 ! Plane X', wire 60 + 28, 12, 61 ! Plane X', wire 61 + 29, 12, 62 ! Plane X', wire 62 + 30, 12, 63 ! Plane X', wire 63 + 31, 12, 64 ! Plane X', wire 64 + 32, 12, 65 ! Plane X', wire 65 + 33, 12, 66 ! Plane X', wire 66 + 34, 12, 67 ! Plane X', wire 67 + 35, 12, 68 ! Plane X', wire 68 + 36, 12, 69 ! Plane X', wire 69 + 37, 12, 70 ! Plane X', wire 70 + 38, 12, 71 ! Plane X', wire 71 + 39, 12, 72 ! Plane X', wire 72 + 40, 12, 73 ! Plane X', wire 73 + 41, 12, 74 ! Plane X', wire 74 + 42, 12, 75 ! Plane X', wire 75 + 43, 12, 76 ! Plane X', wire 76 + 44, 12, 77 ! Plane X', wire 77 + 45, 12, 78 ! Plane X', wire 78 + 46, 12, 79 ! Plane X', wire 79 + 47, 12, 80 ! Plane X', wire 80 + 48, 12, 81 ! Plane X', wire 81 + 49, 12, 82 ! Plane X', wire 82 + 50, 12, 83 ! Plane X', wire 83 + 51, 12, 84 ! Plane X', wire 84 + 52, 12, 85 ! Plane X', wire 85 + 53, 12, 86 ! Plane X', wire 86 + 54, 12, 87 ! Plane X', wire 87 + 55, 12, 88 ! Plane X', wire 88 + 56, 12, 89 ! Plane X', wire 89 + 57, 12, 90 ! Plane X', wire 90 + 58, 12, 91 ! Plane X', wire 91 + 59, 12, 92 ! Plane X', wire 92 + 60, 12, 93 ! Plane X', wire 93 + 61, 12, 94 ! Plane X', wire 94 + 62, 12, 95 ! Plane X', wire 95 + 63, 12, 96 ! Plane X', wire 96 + 64, 12, 97 ! Plane X', wire 97 + 65, 12, 98 ! Plane X', wire 98 + 66, 12, 99 ! Plane X', wire 99 + 67, 12, 100 ! Plane X', wire 100 + 68, 12, 101 ! Plane X', wire 101 + 69, 12, 102 ! Plane X', wire 102 + 70, 12, 103 ! Plane X', wire 103 + 71, 12, 104 ! Plane X', wire 104 + 72, 12, 105 ! Plane X', wire 105 + 73, 12, 106 ! Plane X', wire 106 + 74, 12, 107 ! Plane X', wire 107 + 75, 12, 108 ! Plane X', wire 108 + 76, 12, 109 ! Plane X', wire 109 + 77, 12, 110 ! Plane X', wire 110 + 78, 12, 111 ! Plane X', wire 111 + 79, 12, 112 ! Plane X', wire 112 + +SLOT=17 +REFINDEX=0 + 64, 8, 1 ! Plane Y, wire 1 + 65, 8, 2 ! Plane Y, wire 2 + 66, 8, 3 ! Plane Y, wire 3 + 67, 8, 4 ! Plane Y, wire 4 + 68, 8, 5 ! Plane Y, wire 5 + 69, 8, 6 ! Plane Y, wire 6 + 70, 8, 7 ! Plane Y, wire 7 + 71, 8, 8 ! Plane Y, wire 8 + 72, 8, 9 ! Plane Y, wire 9 + 73, 8, 10 ! Plane Y, wire 10 + 74, 8, 11 ! Plane Y, wire 11 + 75, 8, 12 ! Plane Y, wire 12 + 76, 8, 13 ! Plane Y, wire 13 + 80, 8, 14 ! Plane Y, wire 14 + 81, 8, 15 ! Plane Y, wire 15 + 82, 8, 16 ! Plane Y, wire 16 + 83, 8, 17 ! Plane Y, wire 17 + 84, 8, 18 ! Plane Y, wire 18 + 85, 8, 19 ! Plane Y, wire 19 + 86, 8, 20 ! Plane Y, wire 20 + 87, 8, 21 ! Plane Y, wire 21 + 88, 8, 22 ! Plane Y, wire 22 + 89, 8, 23 ! Plane Y, wire 23 + 90, 8, 24 ! Plane Y, wire 24 + 91, 8, 25 ! Plane Y, wire 25 + 92, 8, 26 ! Plane Y, wire 26 + 96, 8, 27 ! Plane Y, wire 27 + 97, 8, 28 ! Plane Y, wire 28 + 98, 8, 29 ! Plane Y, wire 29 + 99, 8, 30 ! Plane Y, wire 30 + 100, 8, 31 ! Plane Y, wire 31 + 101, 8, 32 ! Plane Y, wire 32 + 102, 8, 33 ! Plane Y, wire 33 + 103, 8, 34 ! Plane Y, wire 34 + 104, 8, 35 ! Plane Y, wire 35 + 105, 8, 36 ! Plane Y, wire 36 + 106, 8, 37 ! Plane Y, wire 37 + 107, 8, 38 ! Plane Y, wire 38 + 108, 8, 39 ! Plane Y, wire 39 + 112, 8, 40 ! Plane Y, wire 40 + 113, 8, 41 ! Plane Y, wire 41 + 114, 8, 42 ! Plane Y, wire 42 + 115, 8, 43 ! Plane Y, wire 43 + 116, 8, 44 ! Plane Y, wire 44 + 117, 8, 45 ! Plane Y, wire 45 + 118, 8, 46 ! Plane Y, wire 46 + 119, 8, 47 ! Plane Y, wire 47 + 120, 8, 48 ! Plane Y, wire 48 + 121, 8, 49 ! Plane Y, wire 49 + 122, 8, 50 ! Plane Y, wire 50 + 123, 8, 51 ! Plane Y, wire 51 + 124, 8, 52 ! Plane Y, wire 52 + +SLOT=10 +REFINDEX=0 + 127,1000, 0, 1 + 64, 11, 1 ! Plane Y', wire 1 + 65, 11, 2 ! Plane Y', wire 2 + 66, 11, 3 ! Plane Y', wire 3 + 67, 11, 4 ! Plane Y', wire 4 + 68, 11, 5 ! Plane Y', wire 5 + 69, 11, 6 ! Plane Y', wire 6 + 70, 11, 7 ! Plane Y', wire 7 + 71, 11, 8 ! Plane Y', wire 8 + 72, 11, 9 ! Plane Y', wire 9 + 73, 11, 10 ! Plane Y', wire 10 + 74, 11, 11 ! Plane Y', wire 11 + 75, 11, 12 ! Plane Y', wire 12 + 76, 11, 13 ! Plane Y', wire 13 + 80, 11, 14 ! Plane Y', wire 14 + 81, 11, 15 ! Plane Y', wire 15 + 82, 11, 16 ! Plane Y', wire 16 + 83, 11, 17 ! Plane Y', wire 17 + 84, 11, 18 ! Plane Y', wire 18 + 85, 11, 19 ! Plane Y', wire 19 + 86, 11, 20 ! Plane Y', wire 20 + 87, 11, 21 ! Plane Y', wire 21 + 88, 11, 22 ! Plane Y', wire 22 + 89, 11, 23 ! Plane Y', wire 23 + 90, 11, 24 ! Plane Y', wire 24 + 91, 11, 25 ! Plane Y', wire 25 + 92, 11, 26 ! Plane Y', wire 26 + 96, 11, 27 ! Plane Y', wire 27 + 97, 11, 28 ! Plane Y', wire 28 + 98, 11, 29 ! Plane Y', wire 29 + 99, 11, 30 ! Plane Y', wire 30 + 100, 11, 31 ! Plane Y', wire 31 + 101, 11, 32 ! Plane Y', wire 32 + 102, 11, 33 ! Plane Y', wire 33 + 103, 11, 34 ! Plane Y', wire 34 + 104, 11, 35 ! Plane Y', wire 35 + 105, 11, 36 ! Plane Y', wire 36 + 106, 11, 37 ! Plane Y', wire 37 + 107, 11, 38 ! Plane Y', wire 38 + 108, 11, 39 ! Plane Y', wire 39 + 112, 11, 40 ! Plane Y', wire 40 + 113, 11, 41 ! Plane Y', wire 41 + 114, 11, 42 ! Plane Y', wire 42 + 115, 11, 43 ! Plane Y', wire 43 + 116, 11, 44 ! Plane Y', wire 44 + 117, 11, 45 ! Plane Y', wire 45 + 118, 11, 46 ! Plane Y', wire 46 + 119, 11, 47 ! Plane Y', wire 47 + 120, 11, 48 ! Plane Y', wire 48 + 121, 11, 49 ! Plane Y', wire 49 + 122, 11, 50 ! Plane Y', wire 50 + 123, 11, 51 ! Plane Y', wire 51 + 124, 11, 52 ! Plane Y', wire 52 + + +DETECTOR=13 + +ROC=11 + +SLOT=8 + 0, 1, 1, 0 ! h1x01A+ + 1, 1, 2, 0 ! h1x02A+ + 2, 1, 3, 0 ! h1x03A+ + 3, 1, 4, 0 ! h1x04A+ + 4, 1, 5, 0 ! h1x05A+ + 5, 1, 6, 0 ! h1x06A+ + 6, 1, 7, 0 ! h1x07A+ + 7, 1, 8, 0 ! h1x08A+ + 8, 1, 9, 0 ! h1x09A+ + 9, 1, 10, 0 ! h1x10A+ + 10, 1, 11, 0 ! h1x11A+ + 11, 1, 12, 0 ! h1x12A+ + 12, 1, 13, 0 ! h1x13A+ + 13, 1, 14, 0 ! h1x14A+ + 14, 1, 15, 0 ! h1x15A+ + 15, 1, 16, 0 ! h1x16A+ + +SLOT=9 + 0, 1, 1, 1 ! h1x01A- + 1, 1, 2, 1 ! h1x02A- + 2, 1, 3, 1 ! h1x03A- + 3, 1, 4, 1 ! h1x04A- + 4, 1, 5, 1 ! h1x05A- + 5, 1, 6, 1 ! h1x06A- + 6, 1, 7, 1 ! h1x07A- + 7, 1, 8, 1 ! h1x08A- + 8, 1, 9, 1 ! h1x09A- + 9, 1, 10, 1 ! h1x10A- + 10, 1, 11, 1 ! h1x11A- + 11, 1, 12, 1 ! h1x12A- + 12, 1, 13, 1 ! h1x13A- + 13, 1, 14, 1 ! h1x14A- + 14, 1, 15, 1 ! h1x15A- + 15, 1, 16, 1 ! h1x16A- + +SLOT=10 + 0, 2, 1, 0 ! h1y01A+ + 1, 2, 2, 0 ! h1y02A+ + 2, 2, 3, 0 ! h1y03A+ + 3, 2, 4, 0 ! h1y04A+ + 4, 2, 5, 0 ! h1y05A+ + 5, 2, 6, 0 ! h1y06A+ + 6, 2, 7, 0 ! h1y07A+ + 7, 2, 8, 0 ! h1y08A+ + 8, 2, 9, 0 ! h1y09A+ + 9, 2, 10, 0 ! h1y10A+ + 10, 2, 1, 1 ! h1y01A- + 11, 2, 2, 1 ! h1y02A- + 12, 2, 3, 1 ! h1y03A- + 13, 2, 4, 1 ! h1y04A- + 14, 2, 5, 1 ! h1y05A- + 15, 2, 6, 1 ! h1y06A- + +SLOT=13 + 0, 2, 7, 1 ! h1y07A- + 1, 2, 8, 1 ! h1y08A- + 2, 2, 9, 1 ! h1y09A- + 3, 2, 10, 1 ! h1y10A- + 4, 3, 1, 0 ! h2x01A+ + 5, 3, 2, 0 ! h2x02A+ + 6, 3, 3, 0 ! h2x03A+ + 7, 3, 4, 0 ! h2x04A+ + 8, 3, 5, 0 ! h2x05A+ + 9, 3, 6, 0 ! h2x06A+ + 10, 3, 7, 0 ! h2x07A+ + 11, 3, 8, 0 ! h2x08A+ + 12, 3, 9, 0 ! h2x09A+ + 13, 3, 10, 0 ! h2x10A+ + 14, 3, 11, 0 ! h2x11A+ + 15, 3, 12, 0 ! h2x12A+ + +SLOT=14 + 0, 3, 13, 0 ! h2x13A+ + 1, 3, 14, 0 ! h2x14A+ + 2, 3, 15, 0 ! h2x15A+ + 3, 3, 16, 0 ! h2x16A+ + 4, 3, 1, 1 ! h2x01A- + 5, 3, 2, 1 ! h2x02A- + 6, 3, 3, 1 ! h2x03A- + 7, 3, 4, 1 ! h2x04A- + 8, 3, 5, 1 ! h2x05A- + 9, 3, 6, 1 ! h2x06A- + 10, 3, 7, 1 ! h2x07A- + 11, 3, 8, 1 ! h2x08A- + 12, 3, 9, 1 ! h2x09A- + 13, 3, 10, 1 ! h2x10A- + 14, 3, 11, 1 ! h2x11A- + 15, 3, 12, 1 ! h2x12A- + +SLOT=15 + 0, 3, 13, 1 ! h2x13A- + 1, 3, 14, 1 ! h2x14A- + 2, 3, 15, 1 ! h2x15A- + 3, 3, 16, 1 ! h2x16A- + 4, 4, 1, 0 ! h2y01A+ + 5, 4, 2, 0 ! h2y02A+ + 6, 4, 3, 0 ! h2y03A+ + 7, 4, 4, 0 ! h2y04A+ + 8, 4, 5, 0 ! h2y05A+ + 9, 4, 6, 0 ! h2y06A+ + 10, 4, 7, 0 ! h2y07A+ + 11, 4, 8, 0 ! h2y08A+ + 12, 4, 9, 0 ! h2y09A+ + 13, 4, 10, 0 ! h2y10A+ + 14, 4, 1, 1 ! h2y01A- + 15, 4, 2, 1 ! h2y02A- + +SLOT=16 + 0, 4, 3, 1 ! h2y03A- + 1, 4, 4, 1 ! h2y04A- + 2, 4, 5, 1 ! h2y05A- + 3, 4, 6, 1 ! h2y06A- + 4, 4, 7, 1 ! h2y07A- + 5, 4, 8, 1 ! h2y08A- + 6, 4, 9, 1 ! h2y09A- + 7, 4, 10, 1 ! h2y10A- + +SLOT=20 +REFINDEX=0 + 127,1000, 0, 0 + 0, 1, 1, 2 ! h1x01T+ + 1, 1, 3, 2 ! h1x03T+ + 2, 1, 5, 2 ! h1x05T+ + 3, 1, 7, 2 ! h1x07T+ + 4, 1, 2, 2 ! h1x02T+ + 5, 1, 4, 2 ! h1x04T+ + 6, 1, 6, 2 ! h1x06T+ + 7, 1, 8, 2 ! h1x08T+ + 8, 1, 9, 2 ! h1x09T+ + 9, 1, 11, 2 ! h1x11T+ + 10, 1, 13, 2 ! h1x13T+ + 11, 1, 15, 2 ! h1x15T+ + 12, 1, 10, 2 ! h1x10T+ + 13, 1, 12, 2 ! h1x12T+ + 14, 1, 14, 2 ! h1x14T+ + 15, 1, 16, 2 ! h1x16T+ + 16, 1, 1, 3 ! h1x01T- + 17, 1, 3, 3 ! h1x03T- + 18, 1, 5, 3 ! h1x05T- + 19, 1, 7, 3 ! h1x07T- + 20, 1, 2, 3 ! h1x02T- + 21, 1, 4, 3 ! h1x04T- + 22, 1, 6, 3 ! h1x06T- + 23, 1, 8, 3 ! h1x08T- + 24, 1, 9, 3 ! h1x09T- + 25, 1, 11, 3 ! h1x11T- + 26, 1, 13, 3 ! h1x13T- + 27, 1, 15, 3 ! h1x15T- + 28, 1, 10, 3 ! h1x10T- + 29, 1, 12, 3 ! h1x12T- + 30, 1, 14, 3 ! h1x14T- + 31, 1, 16, 3 ! h1x16T- + 32, 2, 1, 2 ! h1y01T+ + 33, 2, 3, 2 ! h1y03T+ + 34, 2, 5, 2 ! h1y05T+ + 35, 2, 7, 2 ! h1y07T+ + 36, 2, 2, 2 ! h1y02T+ + 37, 2, 4, 2 ! h1y04T+ + 38, 2, 6, 2 ! h1y06T+ + 39, 2, 8, 2 ! h1y08T+ + 40, 2, 9, 2 ! h1y09T+ + 44, 2, 10, 2 ! h1y10T+ + 48, 2, 1, 3 ! h1y01T- + 49, 2, 3, 3 ! h1y03T- + 50, 2, 5, 3 ! h1y05T- + 51, 2, 7, 3 ! h1y07T- + 52, 2, 2, 3 ! h1y02T- + 53, 2, 4, 3 ! h1y04T- + 54, 2, 6, 3 ! h1y06T- + 55, 2, 8, 3 ! h1y08T- + 56, 2, 9, 3 ! h1y09T- + 60, 2, 10, 3 ! h1y10T- + 64, 3, 1, 2 ! h2x01T+ + 65, 3, 3, 2 ! h2x03T+ + 66, 3, 5, 2 ! h2x05T+ + 67, 3, 7, 2 ! h2x07T+ + 68, 3, 2, 2 ! h2x02T+ + 69, 3, 4, 2 ! h2x04T+ + 70, 3, 6, 2 ! h2x06T+ + 71, 3, 8, 2 ! h2x08T+ + 72, 3, 9, 2 ! h2x09T+ + 73, 3, 11, 2 ! h2x11T+ + 74, 3, 13, 2 ! h2x13T+ + 75, 3, 15, 2 ! h2x15T+ + 76, 3, 10, 2 ! h2x10T+ + 77, 3, 12, 2 ! h2x12T+ + 78, 3, 14, 2 ! h2x14T+ + 79, 3, 16, 2 ! h2x16T+ + 80, 3, 1, 3 ! h2x01T- + 81, 3, 3, 3 ! h2x03T- + 82, 3, 5, 3 ! h2x05T- + 83, 3, 7, 3 ! h2x07T- + 84, 3, 2, 3 ! h2x02T- + 85, 3, 4, 3 ! h2x04T- + 86, 3, 6, 3 ! h2x06T- + 87, 3, 8, 3 ! h2x08T- + 88, 3, 9, 3 ! h2x09T- + 89, 3, 11, 3 ! h2x11T- + 90, 3, 13, 3 ! h2x13T- + 91, 3, 15, 3 ! h2x15T- + 92, 3, 10, 3 ! h2x10T- + 93, 3, 12, 3 ! h2x12T- + 94, 3, 14, 3 ! h2x14T- + 95, 3, 16, 3 ! h2x16T- + 96, 4, 1, 2 ! h2y01T+ + 97, 4, 3, 2 ! h2y03T+ + 98, 4, 5, 2 ! h2y05T+ + 99, 4, 7, 2 ! h2y07T+ + 100, 4, 2, 2 ! h2y02T+ + 101, 4, 4, 2 ! h2y04T+ + 102, 4, 6, 2 ! h2y06T+ + 103, 4, 8, 2 ! h2y08T+ + 104, 4, 9, 2 ! h2y09T+ + 108, 4, 10, 2 ! h2y10T+ + 112, 4, 1, 3 ! h2y01T- + 113, 4, 3, 3 ! h2y03T- + 114, 4, 5, 3 ! h2y05T- + 115, 4, 7, 3 ! h2y07T- + 116, 4, 2, 3 ! h2y02T- + 117, 4, 4, 3 ! h2y04T- + 118, 4, 6, 3 ! h2y06T- + 119, 4, 8, 3 ! h2y08T- + 120, 4, 9, 3 ! h2y09T- + 124, 4, 10, 3 ! h2y10T- +DETECTOR=14 + +ROC=11 + +SLOT=7 + 14, 1, 1, 0 ! hCER01 + 15, 1, 2, 0 ! hCER02 + + +DETECTOR=15 + +ROC=11 + +SLOT=3 + 0, 1, 1, 0 ! hA01+ + 1, 1, 2, 0 ! hA02+ + 2, 1, 3, 0 ! hA03+ + 3, 1, 4, 0 ! hA04+ + 4, 1, 5, 0 ! hA05+ + 5, 1, 6, 0 ! hA06+ + 6, 1, 7, 0 ! hA07+ + 7, 1, 8, 0 ! hA08+ + 8, 1, 9, 0 ! hA09+ + 9, 1, 10, 0 ! hA10+ + 10, 1, 11, 0 ! hA11+ + 11, 1, 12, 0 ! hA12+ + 12, 1, 13, 0 ! hA13+ + 13, 1, 1, 1 ! hA01- + 14, 1, 2, 1 ! hA02- + 15, 1, 3, 1 ! hA03- + +SLOT=4 + 0, 1, 4, 1 ! hA04- + 1, 1, 5, 1 ! hA05- + 2, 1, 6, 1 ! hA06- + 3, 1, 7, 1 ! hA07- + 4, 1, 8, 1 ! hA08- + 5, 1, 9, 1 ! hA09- + 6, 1, 10, 1 ! hA10- + 7, 1, 11, 1 ! hA11- + 8, 1, 12, 1 ! hA12- + 9, 1, 13, 1 ! hA13- + 10, 2, 1, 0 ! hB01+ + 11, 2, 2, 0 ! hB02+ + 12, 2, 3, 0 ! hB03+ + 13, 2, 4, 0 ! hB04+ + 14, 2, 5, 0 ! hB05+ + 15, 2, 6, 0 ! hB06+ + +SLOT=5 + 0, 2, 7, 0 ! hB07+ + 1, 2, 8, 0 ! hB08+ + 2, 2, 9, 0 ! hB09+ + 3, 2, 10, 0 ! hB10+ + 4, 2, 11, 0 ! hB11+ + 5, 2, 12, 0 ! hB12+ + 6, 2, 13, 0 ! hB13+ + 7, 2, 1, 1 ! hB01- + 8, 2, 2, 1 ! hB02- + 9, 2, 3, 1 ! hB03- + 10, 2, 4, 1 ! hB04- + 11, 2, 5, 1 ! hB05- + 12, 2, 6, 1 ! hB06- + 13, 2, 7, 1 ! hB07- + 14, 2, 8, 1 ! hB08- + 15, 2, 9, 1 ! hB09- + +SLOT=6 + 0, 2, 10, 1 ! hB10- + 1, 2, 11, 1 ! hB11- + 2, 2, 12, 1 ! hB12- + 3, 2, 13, 1 ! hB13- + 4, 3, 1, 0 ! hC01+ + 5, 3, 2, 0 ! hC02+ + 6, 3, 3, 0 ! hC03+ + 7, 3, 4, 0 ! hC04+ + 8, 3, 5, 0 ! hC05+ + 9, 3, 6, 0 ! hC06+ + 10, 3, 7, 0 ! hC07+ + 11, 3, 8, 0 ! hC08+ + 12, 3, 9, 0 ! hC09+ + 13, 3, 10, 0 ! hC10+ + 14, 3, 11, 0 ! hC11+ + 15, 3, 12, 0 ! hC12+ + +SLOT=7 + 0, 3, 13, 0 ! hC13+ + 1, 4, 1, 0 ! hD01+ + 2, 4, 2, 0 ! hD02+ + 3, 4, 3, 0 ! hD03+ + 4, 4, 4, 0 ! hD04+ + 5, 4, 5, 0 ! hD05+ + 6, 4, 6, 0 ! hD06+ + 7, 4, 7, 0 ! hD07+ + 8, 4, 8, 0 ! hD08+ + 9, 4, 9, 0 ! hD09+ + 10, 4, 10, 0 ! hD10+ + 11, 4, 11, 0 ! hD11+ + 12, 4, 12, 0 ! hD12+ + 13, 4, 13, 0 ! hD13+ diff --git a/MAPS/HMS/DETEC/hraster_simple.map b/MAPS/HMS/DETEC/hraster_simple.map new file mode 100644 index 00000000..5f27fa71 --- /dev/null +++ b/MAPS/HMS/DETEC/hraster_simple.map @@ -0,0 +1,18 @@ +!HMS: +! THMS_ID=10 ADC,TDC + +! Plane = 1 >> ADC Only +! Plane = 2 >> TDC Only + +detector=10 + +ROC=1 + +!F250 module +SLOT=18 +! chan plane bar sig + 12, 1, 1, 0! FR-XA + 13, 1, 2, 0! FR-XB + 14, 1, 3, 0! FR-YA + 15, 1, 4, 0! FR-YB + diff --git a/MAPS/HMS/DETEC/htrig.map b/MAPS/HMS/DETEC/htrig.map index 215b7804..679c33f7 100644 --- a/MAPS/HMS/DETEC/htrig.map +++ b/MAPS/HMS/DETEC/htrig.map @@ -4,8 +4,7 @@ ! Plane = 1 >> ADC Only ! Plane = 2 >> TDC Only - -detector=5 +detector=10 ROC=1 @@ -45,4 +44,20 @@ SLOT=2 SLOT=20 ! D1 ! chan plane bar sig - 127, 2, 17 1! hT2 + 127, 2, 17, 1! hT2 + +ROC=3 + +!CAEN1190 module +SLOT=5 +! chan plane bar sig + 111, 2, 18, 1! hDCREF1 +SLOT=8 +! chan plane bar sig + 127, 2, 19, 1! hDCREF2 +SLOT=10 +! chan plane bar sig + 127, 2, 20, 1! hDCREF3 +SLOT=17 +! chan plane bar sig + 127, 2, 21, 1! hDCREF4 \ No newline at end of file diff --git a/MAPS/SHMS/DETEC/paero.map b/MAPS/SHMS/DETEC/paero.map new file mode 100644 index 00000000..86e3d37e --- /dev/null +++ b/MAPS/SHMS/DETEC/paero.map @@ -0,0 +1,24 @@ +! PAERO_ID=25 :: ::,ADC+,ADC- + + +DETECTOR=25 + +ROC=2 + +SLOT=10 + 10, 1, 1, 0 ! pAER01+ + 11, 1, 2, 0 ! pAER02+ + 12, 1, 3, 0 ! pAER03+ + 13, 1, 4, 0 ! pAER04+ + 14, 1, 5, 0 ! pAER05+ + 15, 1, 6, 0 ! pAER06+ + +SLOT=13 + 0, 1, 7, 0 ! pAER07+ + 1, 1, 1, 1 ! pAER01- + 2, 1, 2, 1 ! pAER02- + 3, 1, 3, 1 ! pAER03- + 4, 1, 4, 1 ! pAER04- + 5, 1, 5, 1 ! pAER05- + 6, 1, 6, 1 ! pAER06- + 7, 1, 7, 1 ! pAER07- diff --git a/MAPS/SHMS/DETEC/paero_ptrig.map b/MAPS/SHMS/DETEC/paero_ptrig.map new file mode 100644 index 00000000..4371a2f3 --- /dev/null +++ b/MAPS/SHMS/DETEC/paero_ptrig.map @@ -0,0 +1,83 @@ +! TSHMS_ID=20 :: ::,ADC,TDC +! PAERO_ID=25 :: ::,ADC,TDC + + +DETECTOR=20 + +ROC=2 + +SLOT=14 + 0, 1, 1, 0 ! pAERSUM + 1, 1, 2, 0 ! pHGCSUM + 2, 1, 3, 0 ! pNGCSUM + +SLOT=20 + 15, 2, 1, 1 ! pT1 + +SLOT=19 + 31, 2, 2, 1 ! pT2 + 32, 2, 3, 1 ! p1X + 33, 2, 4, 1 ! p1Y + 34, 2, 5, 1 ! p2X + 35, 2, 6, 1 ! p2Y + 36, 2, 7, 1 ! p1T + 37, 2, 8, 1 ! p2T + 38, 2, 9, 1 ! pT3 + 39, 2, 10, 1 ! pAERSUM + 40, 2, 11, 1 ! pHGCSUM + 41, 2, 12, 1 ! pNGCSUM + +ROC=6 + +SLOT=6 + 79, 2, 13, 1 ! pDCREF1 + +SLOT=7 + 79, 2, 14, 1 ! pDCREF2 + +SLOT=8 + 79, 2, 15, 1 ! pDCREF3 + +SLOT=9 + 79, 2, 16, 1 ! pDCREF4 + +SLOT=10 + 79, 2, 17, 1 ! pDCREF5 + +SLOT=11 + 47, 2, 18, 1 ! pDCREF6 + +SLOT=12 + 47, 2, 19, 1 ! pDCREF7 + +SLOT=13 + 47, 2, 20, 1 ! pDCREF8 + +SLOT=14 + 15, 2, 21, 1 ! pDCREF9 + +SLOT=15 + 47, 2, 22, 1 ! pDCREF10 + + +DETECTOR=25 + +ROC=2 + +SLOT=10 + 10, 1, 1, 0 ! pAER01+ + 11, 1, 2, 0 ! pAER02+ + 12, 1, 3, 0 ! pAER03+ + 13, 1, 4, 0 ! pAER04+ + 14, 1, 5, 0 ! pAER05+ + 15, 1, 6, 0 ! pAER06+ + +SLOT=13 + 0, 1, 7, 0 ! pAER07+ + 1, 1, 1, 1 ! pAER01- + 2, 1, 2, 1 ! pAER02- + 3, 1, 3, 1 ! pAER03- + 4, 1, 4, 1 ! pAER04- + 5, 1, 5, 1 ! pAER05- + 6, 1, 6, 1 ! pAER06- + 7, 1, 7, 1 ! pAER07- diff --git a/MAPS/SHMS/DETEC/pcal.map b/MAPS/SHMS/DETEC/pcal.map index e833bfba..96f05754 100644 --- a/MAPS/SHMS/DETEC/pcal.map +++ b/MAPS/SHMS/DETEC/pcal.map @@ -1,291 +1,290 @@ -!SHMS -! SCAL_ID=26 ADC +! PCAL_ID=26 :: ADC + + +DETECTOR=26 ROC=4 -detector=26 -!F250 modules SLOT=3 -! chan plane row sig -0, 1, 1, 0 -1, 1, 2, 0 -2, 1, 3, 0 -3, 1, 4, 0 -4, 1, 5, 0 -5, 1, 6, 0 -6, 1, 7, 0 -7, 1, 8, 0 -8, 1, 9, 0 -9, 1, 10, 0 -10, 1, 11, 0 -11, 1, 12, 0 -12, 1, 13, 0 -13, 1, 14, 0 + 0, 1, 1, 0 ! pPRSH1+ + 1, 1, 2, 0 ! pPRSH2+ + 2, 1, 3, 0 ! pPRSH3+ + 3, 1, 4, 0 ! pPRSH4+ + 4, 1, 5, 0 ! pPRSH5+ + 5, 1, 6, 0 ! pPRSH6+ + 6, 1, 7, 0 ! pPRSH7+ + 7, 1, 8, 0 ! pPRSH8+ + 8, 1, 9, 0 ! pPRSH9+ + 9, 1, 10, 0 ! pPRSH10+ + 10, 1, 11, 0 ! pPRSH11+ + 11, 1, 12, 0 ! pPRSH12+ + 12, 1, 13, 0 ! pPRSH13+ + 13, 1, 14, 0 ! pPRSH14+ + SLOT=4 -! chan plane row sig -0, 1, 1, 1 -1, 1, 2, 1 -2, 1, 3, 1 -3, 1, 4, 1 -4, 1, 5, 1 -5, 1, 6, 1 -6, 1, 7, 1 -7, 1, 8, 1 -8, 1, 9, 1 -9, 1, 10, 1 -10, 1, 11, 1 -11, 1, 12, 1 -12, 1, 13, 1 -13, 1, 14, 1 + 0, 1, 1, 1 ! pPRSH1- + 1, 1, 2, 1 ! pPRSH2- + 2, 1, 3, 1 ! pPRSH3- + 3, 1, 4, 1 ! pPRSH4- + 4, 1, 5, 1 ! pPRSH5- + 5, 1, 6, 1 ! pPRSH6- + 6, 1, 7, 1 ! pPRSH7- + 7, 1, 8, 1 ! pPRSH8- + 8, 1, 9, 1 ! pPRSH9- + 9, 1, 10, 1 ! pPRSH10- + 10, 1, 11, 1 ! pPRSH11- + 11, 1, 12, 1 ! pPRSH12- + 12, 1, 13, 1 ! pPRSH13- + 13, 1, 14, 1 ! pPRSH14- + SLOT=5 -! chan plane row sig -0, 2, 1, 0 ! Row 1, Column 1 -1, 2, 2, 0 ! Row 2, Column 1 -2, 2, 3, 0 ! Row 3, Column 1 -3, 2, 4, 0 ! Row 4, Column 1 -4, 2, 5, 0 ! Row 5, Column 1 -5, 2, 6, 0 ! Row 6, Column 1 -6, 2, 7, 0 ! Row 7, Column 1 -7, 2, 8, 0 ! Row 8, Column 1 -8, 2, 9, 0 ! Row 9, Column 1 -9, 2, 10, 0 ! Row 10, Column 1 -10, 2, 11, 0 ! Row 11, Column 1 -11, 2, 12, 0 ! Row 12, Column 1 -12, 2, 13, 0 ! Row 13, Column 1 -13, 2, 14, 0 ! Row 14, Column 1 -14, 2, 15, 0 ! Row 15, Column 1 -15, 2, 16, 0 ! Row 16, Column 1 + 0, 2, 1, 0 ! Row 1, Column 1 + 1, 2, 2, 0 ! Row 2, Column 1 + 2, 2, 3, 0 ! Row 3, Column 1 + 3, 2, 4, 0 ! Row 4, Column 1 + 4, 2, 5, 0 ! Row 5, Column 1 + 5, 2, 6, 0 ! Row 6, Column 1 + 6, 2, 7, 0 ! Row 7, Column 1 + 7, 2, 8, 0 ! Row 8, Column 1 + 8, 2, 9, 0 ! Row 9, Column 1 + 9, 2, 10, 0 ! Row 10, Column 1 + 10, 2, 11, 0 ! Row 11, Column 1 + 11, 2, 12, 0 ! Row 12, Column 1 + 12, 2, 13, 0 ! Row 13, Column 1 + 13, 2, 14, 0 ! Row 14, Column 1 + 14, 2, 15, 0 ! Row 15, Column 1 + 15, 2, 16, 0 ! Row 16, Column 1 + SLOT=6 -! chan plane row sig -0, 2, 17, 0 ! Row 1, Column 2 -1, 2, 18, 0 ! Row 2, Column 2 -2, 2, 19, 0 ! Row 3, Column 2 -3, 2, 20, 0 ! Row 4, Column 2 -4, 2, 21, 0 ! Row 5, Column 2 -5, 2, 22, 0 ! Row 6, Column 2 -6, 2, 23, 0 ! Row 7, Column 2 -7, 2, 24, 0 ! Row 8, Column 2 -8, 2, 25, 0 ! Row 9, Column 2 -9, 2, 26, 0 ! Row 10, Column 2 -10, 2, 27, 0 ! Row 11, Column 2 -11, 2, 28, 0 ! Row 12, Column 2 -12, 2, 29, 0 ! Row 13, Column 2 -13, 2, 30, 0 ! Row 14, Column 2 -14, 2, 31, 0 ! Row 15, Column 2 -15, 2, 32, 0 ! Row 16, Column 2 + 0, 2, 17, 0 ! Row 1, Column 2 + 1, 2, 18, 0 ! Row 2, Column 2 + 2, 2, 19, 0 ! Row 3, Column 2 + 3, 2, 20, 0 ! Row 4, Column 2 + 4, 2, 21, 0 ! Row 5, Column 2 + 5, 2, 22, 0 ! Row 6, Column 2 + 6, 2, 23, 0 ! Row 7, Column 2 + 7, 2, 24, 0 ! Row 8, Column 2 + 8, 2, 25, 0 ! Row 9, Column 2 + 9, 2, 26, 0 ! Row 10, Column 2 + 10, 2, 27, 0 ! Row 11, Column 2 + 11, 2, 28, 0 ! Row 12, Column 2 + 12, 2, 29, 0 ! Row 13, Column 2 + 13, 2, 30, 0 ! Row 14, Column 2 + 14, 2, 31, 0 ! Row 15, Column 2 + 15, 2, 32, 0 ! Row 16, Column 2 + SLOT=7 -! chan plane row sig -0, 2, 33, 0 ! Row 1, Column 3 -1, 2, 34, 0 ! Row 2, Column 3 -2, 2, 35, 0 ! Row 3, Column 3 -3, 2, 36, 0 ! Row 4, Column 3 -4, 2, 37, 0 ! Row 5, Column 3 -5, 2, 38, 0 ! Row 6, Column 3 -6, 2, 39, 0 ! Row 7, Column 3 -7, 2, 40, 0 ! Row 8, Column 3 -8, 2, 41, 0 ! Row 9, Column 3 -9, 2, 42, 0 ! Row 10, Column 3 -10, 2, 43, 0 ! Row 11, Column 3 -11, 2, 44, 0 ! Row 12, Column 3 -12, 2, 45, 0 ! Row 13, Column 3 -13, 2, 46, 0 ! Row 14, Column 3 -14, 2, 47, 0 ! Row 15, Column 3 -15, 2, 48, 0 ! Row 16, Column 3 + 0, 2, 33, 0 ! Row 1, Column 3 + 1, 2, 34, 0 ! Row 2, Column 3 + 2, 2, 35, 0 ! Row 3, Column 3 + 3, 2, 36, 0 ! Row 4, Column 3 + 4, 2, 37, 0 ! Row 5, Column 3 + 5, 2, 38, 0 ! Row 6, Column 3 + 6, 2, 39, 0 ! Row 7, Column 3 + 7, 2, 40, 0 ! Row 8, Column 3 + 8, 2, 41, 0 ! Row 9, Column 3 + 9, 2, 42, 0 ! Row 10, Column 3 + 10, 2, 43, 0 ! Row 11, Column 3 + 11, 2, 44, 0 ! Row 12, Column 3 + 12, 2, 45, 0 ! Row 13, Column 3 + 13, 2, 46, 0 ! Row 14, Column 3 + 14, 2, 47, 0 ! Row 15, Column 3 + 15, 2, 48, 0 ! Row 16, Column 3 + SLOT=8 -! chan plane row sig -0, 2, 49, 0 ! Row 1, Column 4 -1, 2, 50, 0 ! Row 2, Column 4 -2, 2, 51, 0 ! Row 3, Column 4 -3, 2, 52, 0 ! Row 4, Column 4 -4, 2, 53, 0 ! Row 5, Column 4 -5, 2, 54, 0 ! Row 6, Column 4 -6, 2, 55, 0 ! Row 7, Column 4 -7, 2, 56, 0 ! Row 8, Column 4 -8, 2, 57, 0 ! Row 9, Column 4 -9, 2, 58, 0 ! Row 10, Column 4 -10, 2, 59, 0 ! Row 11, Column 4 -11, 2, 60, 0 ! Row 12, Column 4 -12, 2, 61, 0 ! Row 13, Column 4 -13, 2, 62, 0 ! Row 14, Column 4 -14, 2, 63, 0 ! Row 15, Column 4 -15, 2, 64, 0 ! Row 16, Column 4 + 0, 2, 49, 0 ! Row 1, Column 4 + 1, 2, 50, 0 ! Row 2, Column 4 + 2, 2, 51, 0 ! Row 3, Column 4 + 3, 2, 52, 0 ! Row 4, Column 4 + 4, 2, 53, 0 ! Row 5, Column 4 + 5, 2, 54, 0 ! Row 6, Column 4 + 6, 2, 55, 0 ! Row 7, Column 4 + 7, 2, 56, 0 ! Row 8, Column 4 + 8, 2, 57, 0 ! Row 9, Column 4 + 9, 2, 58, 0 ! Row 10, Column 4 + 10, 2, 59, 0 ! Row 11, Column 4 + 11, 2, 60, 0 ! Row 12, Column 4 + 12, 2, 61, 0 ! Row 13, Column 4 + 13, 2, 62, 0 ! Row 14, Column 4 + 14, 2, 63, 0 ! Row 15, Column 4 + 15, 2, 64, 0 ! Row 16, Column 4 + SLOT=9 -! chan plane row sig -0, 2, 65, 0 ! Row 1, Column 5 -1, 2, 66, 0 ! Row 2, Column 5 -2, 2, 67, 0 ! Row 3, Column 5 -3, 2, 68, 0 ! Row 4, Column 5 -4, 2, 69, 0 ! Row 5, Column 5 -5, 2, 70, 0 ! Row 6, Column 5 -6, 2, 71, 0 ! Row 7, Column 5 -7, 2, 72, 0 ! Row 8, Column 5 -8, 2, 73, 0 ! Row 9, Column 5 -9, 2, 74, 0 ! Row 10, Column 5 -10, 2, 75, 0 ! Row 11, Column 5 -11, 2, 76, 0 ! Row 12, Column 5 -12, 2, 77, 0 ! Row 13, Column 5 -13, 2, 78, 0 ! Row 14, Column 5 -14, 2, 79, 0 ! Row 15, Column 5 -15, 2, 80, 0 ! Row 16, Column 5 + 0, 2, 65, 0 ! Row 1, Column 5 + 1, 2, 66, 0 ! Row 2, Column 5 + 2, 2, 67, 0 ! Row 3, Column 5 + 3, 2, 68, 0 ! Row 4, Column 5 + 4, 2, 69, 0 ! Row 5, Column 5 + 5, 2, 70, 0 ! Row 6, Column 5 + 6, 2, 71, 0 ! Row 7, Column 5 + 7, 2, 72, 0 ! Row 8, Column 5 + 8, 2, 73, 0 ! Row 9, Column 5 + 9, 2, 74, 0 ! Row 10, Column 5 + 10, 2, 75, 0 ! Row 11, Column 5 + 11, 2, 76, 0 ! Row 12, Column 5 + 12, 2, 77, 0 ! Row 13, Column 5 + 13, 2, 78, 0 ! Row 14, Column 5 + 14, 2, 79, 0 ! Row 15, Column 5 + 15, 2, 80, 0 ! Row 16, Column 5 + SLOT=10 -! chan plane row sig -0, 2, 81, 0 ! Row 1, Column 6 -1, 2, 82, 0 ! Row 2, Column 6 -2, 2, 83, 0 ! Row 3, Column 6 -3, 2, 84, 0 ! Row 4, Column 6 -4, 2, 85, 0 ! Row 5, Column 6 -5, 2, 86, 0 ! Row 6, Column 6 -6, 2, 87, 0 ! Row 7, Column 6 -7, 2, 88, 0 ! Row 8, Column 6 -8, 2, 89, 0 ! Row 9, Column 6 -9, 2, 90, 0 ! Row 10, Column 6 -10, 2, 91, 0 ! Row 11, Column 6 -11, 2, 92, 0 ! Row 12, Column 6 -12, 2, 93, 0 ! Row 13, Column 6 -13, 2, 94, 0 ! Row 14, Column 6 -14, 2, 95, 0 ! Row 15, Column 6 -15, 2, 96, 0 ! Row 16, Column 6 + 0, 2, 81, 0 ! Row 1, Column 6 + 1, 2, 82, 0 ! Row 2, Column 6 + 2, 2, 83, 0 ! Row 3, Column 6 + 3, 2, 84, 0 ! Row 4, Column 6 + 4, 2, 85, 0 ! Row 5, Column 6 + 5, 2, 86, 0 ! Row 6, Column 6 + 6, 2, 87, 0 ! Row 7, Column 6 + 7, 2, 88, 0 ! Row 8, Column 6 + 8, 2, 89, 0 ! Row 9, Column 6 + 9, 2, 90, 0 ! Row 10, Column 6 + 10, 2, 91, 0 ! Row 11, Column 6 + 11, 2, 92, 0 ! Row 12, Column 6 + 12, 2, 93, 0 ! Row 13, Column 6 + 13, 2, 94, 0 ! Row 14, Column 6 + 14, 2, 95, 0 ! Row 15, Column 6 + 15, 2, 96, 0 ! Row 16, Column 6 + SLOT=13 -! chan plane row sig -0, 2, 97, 0 ! Row 1, Column 7 -1, 2, 98, 0 ! Row 2, Column 7 -2, 2, 99, 0 ! Row 3, Column 7 -3, 2, 100, 0 ! Row 4, Column 7 -4, 2, 101, 0 ! Row 5, Column 7 -5, 2, 102, 0 ! Row 6, Column 7 -6, 2, 103, 0 ! Row 7, Column 7 -7, 2, 104, 0 ! Row 8, Column 7 -8, 2, 105, 0 ! Row 9, Column 7 -9, 2, 106, 0 ! Row 10, Column 7 -10, 2, 107, 0 ! Row 11, Column 7 -11, 2, 108, 0 ! Row 12, Column 7 -12, 2, 109, 0 ! Row 13, Column 7 -13, 2, 110, 0 ! Row 14, Column 7 -14, 2, 111, 0 ! Row 15, Column 7 -15, 2, 112, 0 ! Row 16, Column 7 + 0, 2, 97, 0 ! Row 1, Column 7 + 1, 2, 98, 0 ! Row 2, Column 7 + 2, 2, 99, 0 ! Row 3, Column 7 + 3, 2, 100, 0 ! Row 4, Column 7 + 4, 2, 101, 0 ! Row 5, Column 7 + 5, 2, 102, 0 ! Row 6, Column 7 + 6, 2, 103, 0 ! Row 7, Column 7 + 7, 2, 104, 0 ! Row 8, Column 7 + 8, 2, 105, 0 ! Row 9, Column 7 + 9, 2, 106, 0 ! Row 10, Column 7 + 10, 2, 107, 0 ! Row 11, Column 7 + 11, 2, 108, 0 ! Row 12, Column 7 + 12, 2, 109, 0 ! Row 13, Column 7 + 13, 2, 110, 0 ! Row 14, Column 7 + 14, 2, 111, 0 ! Row 15, Column 7 + 15, 2, 112, 0 ! Row 16, Column 7 + SLOT=14 -! chan plane row sig -0, 2, 113, 0 ! Row 1, Column 8 -1, 2, 114, 0 ! Row 2, Column 8 -2, 2, 115, 0 ! Row 3, Column 8 -3, 2, 116, 0 ! Row 4, Column 8 -4, 2, 117, 0 ! Row 5, Column 8 -5, 2, 118, 0 ! Row 6, Column 8 -6, 2, 119, 0 ! Row 7, Column 8 -7, 2, 120, 0 ! Row 8, Column 8 -8, 2, 121, 0 ! Row 9, Column 8 -9, 2, 122, 0 ! Row 10, Column 8 -10, 2, 123, 0 ! Row 11, Column 8 -11, 2, 124, 0 ! Row 12, Column 8 -12, 2, 125, 0 ! Row 13, Column 8 -13, 2, 126, 0 ! Row 14, Column 8 -14, 2, 127, 0 ! Row 15, Column 8 -15, 2, 128, 0 ! Row 16, Column 8 + 0, 2, 113, 0 ! Row 1, Column 8 + 1, 2, 114, 0 ! Row 2, Column 8 + 2, 2, 115, 0 ! Row 3, Column 8 + 3, 2, 116, 0 ! Row 4, Column 8 + 4, 2, 117, 0 ! Row 5, Column 8 + 5, 2, 118, 0 ! Row 6, Column 8 + 6, 2, 119, 0 ! Row 7, Column 8 + 7, 2, 120, 0 ! Row 8, Column 8 + 8, 2, 121, 0 ! Row 9, Column 8 + 9, 2, 122, 0 ! Row 10, Column 8 + 10, 2, 123, 0 ! Row 11, Column 8 + 11, 2, 124, 0 ! Row 12, Column 8 + 12, 2, 125, 0 ! Row 13, Column 8 + 13, 2, 126, 0 ! Row 14, Column 8 + 14, 2, 127, 0 ! Row 15, Column 8 + 15, 2, 128, 0 ! Row 16, Column 8 + SLOT=15 -! chan plane row sig -0, 2, 129, 0 ! Row 1, Column 9 -1, 2, 130, 0 ! Row 2, Column 9 -2, 2, 131, 0 ! Row 3, Column 9 -3, 2, 132, 0 ! Row 4, Column 9 -4, 2, 133, 0 ! Row 5, Column 9 -5, 2, 134, 0 ! Row 6, Column 9 -6, 2, 135, 0 ! Row 7, Column 9 -7, 2, 136, 0 ! Row 8, Column 9 -8, 2, 137, 0 ! Row 9, Column 9 -9, 2, 138, 0 ! Row 10, Column 9 -10, 2, 139, 0 ! Row 11, Column 9 -11, 2, 140, 0 ! Row 12, Column 9 -12, 2, 141, 0 ! Row 13, Column 9 -13, 2, 142, 0 ! Row 14, Column 9 -14, 2, 143, 0 ! Row 15, Column 9 -15, 2, 144, 0 ! Row 16, Column 9 + 0, 2, 129, 0 ! Row 1, Column 9 + 1, 2, 130, 0 ! Row 2, Column 9 + 2, 2, 131, 0 ! Row 3, Column 9 + 3, 2, 132, 0 ! Row 4, Column 9 + 4, 2, 133, 0 ! Row 5, Column 9 + 5, 2, 134, 0 ! Row 6, Column 9 + 6, 2, 135, 0 ! Row 7, Column 9 + 7, 2, 136, 0 ! Row 8, Column 9 + 8, 2, 137, 0 ! Row 9, Column 9 + 9, 2, 138, 0 ! Row 10, Column 9 + 10, 2, 139, 0 ! Row 11, Column 9 + 11, 2, 140, 0 ! Row 12, Column 9 + 12, 2, 141, 0 ! Row 13, Column 9 + 13, 2, 142, 0 ! Row 14, Column 9 + 14, 2, 143, 0 ! Row 15, Column 9 + 15, 2, 144, 0 ! Row 16, Column 9 + SLOT=16 -! chan plane row sig -0, 2, 145, 0 ! Row 1, Column 10 -1, 2, 146, 0 ! Row 2, Column 10 -2, 2, 147, 0 ! Row 3, Column 10 -3, 2, 148, 0 ! Row 4, Column 10 -4, 2, 149, 0 ! Row 5, Column 10 -5, 2, 150, 0 ! Row 6, Column 10 -6, 2, 151, 0 ! Row 7, Column 10 -7, 2, 152, 0 ! Row 8, Column 10 -8, 2, 153, 0 ! Row 9, Column 10 -9, 2, 154, 0 ! Row 10, Column 10 -10, 2, 155, 0 ! Row 11, Column 10 -11, 2, 156, 0 ! Row 12, Column 10 -12, 2, 157, 0 ! Row 13, Column 10 -13, 2, 158, 0 ! Row 14, Column 10 -14, 2, 159, 0 ! Row 15, Column 10 -15, 2, 160, 0 ! Row 16, Column 10 + 0, 2, 145, 0 ! Row 1, Column 10 + 1, 2, 146, 0 ! Row 2, Column 10 + 2, 2, 147, 0 ! Row 3, Column 10 + 3, 2, 148, 0 ! Row 4, Column 10 + 4, 2, 149, 0 ! Row 5, Column 10 + 5, 2, 150, 0 ! Row 6, Column 10 + 6, 2, 151, 0 ! Row 7, Column 10 + 7, 2, 152, 0 ! Row 8, Column 10 + 8, 2, 153, 0 ! Row 9, Column 10 + 9, 2, 154, 0 ! Row 10, Column 10 + 10, 2, 155, 0 ! Row 11, Column 10 + 11, 2, 156, 0 ! Row 12, Column 10 + 12, 2, 157, 0 ! Row 13, Column 10 + 13, 2, 158, 0 ! Row 14, Column 10 + 14, 2, 159, 0 ! Row 15, Column 10 + 15, 2, 160, 0 ! Row 16, Column 10 + SLOT=17 -! chan plane row sig -0, 2, 161, 0 ! Row 1, Column 11 -1, 2, 162, 0 ! Row 2, Column 11 -2, 2, 163, 0 ! Row 3, Column 11 -3, 2, 164, 0 ! Row 4, Column 11 -4, 2, 165, 0 ! Row 5, Column 11 -5, 2, 166, 0 ! Row 6, Column 11 -6, 2, 167, 0 ! Row 7, Column 11 -7, 2, 168, 0 ! Row 8, Column 11 -8, 2, 169, 0 ! Row 9, Column 11 -9, 2, 170, 0 ! Row 10, Column 11 -10, 2, 171, 0 ! Row 11, Column 11 -11, 2, 172, 0 ! Row 12, Column 11 -12, 2, 173, 0 ! Row 13, Column 11 -13, 2, 174, 0 ! Row 14, Column 11 -14, 2, 175, 0 ! Row 15, Column 11 -15, 2, 176, 0 ! Row 16, Column 11 + 0, 2, 161, 0 ! Row 1, Column 11 + 1, 2, 162, 0 ! Row 2, Column 11 + 2, 2, 163, 0 ! Row 3, Column 11 + 3, 2, 164, 0 ! Row 4, Column 11 + 4, 2, 165, 0 ! Row 5, Column 11 + 5, 2, 166, 0 ! Row 6, Column 11 + 6, 2, 167, 0 ! Row 7, Column 11 + 7, 2, 168, 0 ! Row 8, Column 11 + 8, 2, 169, 0 ! Row 9, Column 11 + 9, 2, 170, 0 ! Row 10, Column 11 + 10, 2, 171, 0 ! Row 11, Column 11 + 11, 2, 172, 0 ! Row 12, Column 11 + 12, 2, 173, 0 ! Row 13, Column 11 + 13, 2, 174, 0 ! Row 14, Column 11 + 14, 2, 175, 0 ! Row 15, Column 11 + 15, 2, 176, 0 ! Row 16, Column 11 + SLOT=18 -! chan plane row sig -0, 2, 177, 0 ! Row 1, Column 12 -1, 2, 178, 0 ! Row 2, Column 12 -2, 2, 179, 0 ! Row 3, Column 12 -3, 2, 180, 0 ! Row 4, Column 12 -4, 2, 181, 0 ! Row 5, Column 12 -5, 2, 182, 0 ! Row 6, Column 12 -6, 2, 183, 0 ! Row 7, Column 12 -7, 2, 184, 0 ! Row 8, Column 12 -8, 2, 185, 0 ! Row 9, Column 12 -9, 2, 186, 0 ! Row 10, Column 12 -10, 2, 187, 0 ! Row 11, Column 12 -11, 2, 188, 0 ! Row 12, Column 12 -12, 2, 189, 0 ! Row 13, Column 12 -13, 2, 190, 0 ! Row 14, Column 12 -14, 2, 191, 0 ! Row 15, Column 12 -15, 2, 192, 0 ! Row 16, Column 12 + 0, 2, 177, 0 ! Row 1, Column 12 + 1, 2, 178, 0 ! Row 2, Column 12 + 2, 2, 179, 0 ! Row 3, Column 12 + 3, 2, 180, 0 ! Row 4, Column 12 + 4, 2, 181, 0 ! Row 5, Column 12 + 5, 2, 182, 0 ! Row 6, Column 12 + 6, 2, 183, 0 ! Row 7, Column 12 + 7, 2, 184, 0 ! Row 8, Column 12 + 8, 2, 185, 0 ! Row 9, Column 12 + 9, 2, 186, 0 ! Row 10, Column 12 + 10, 2, 187, 0 ! Row 11, Column 12 + 11, 2, 188, 0 ! Row 12, Column 12 + 12, 2, 189, 0 ! Row 13, Column 12 + 13, 2, 190, 0 ! Row 14, Column 12 + 14, 2, 191, 0 ! Row 15, Column 12 + 15, 2, 192, 0 ! Row 16, Column 12 + SLOT=19 -! chan plane row sig -0, 2, 193, 0 ! Row 1, Column 13 -1, 2, 194, 0 ! Row 2, Column 13 -2, 2, 195, 0 ! Row 3, Column 13 -3, 2, 196, 0 ! Row 4, Column 13 -4, 2, 197, 0 ! Row 5, Column 13 -5, 2, 198, 0 ! Row 6, Column 13 -6, 2, 199, 0 ! Row 7, Column 13 -7, 2, 200, 0 ! Row 8, Column 13 -8, 2, 201, 0 ! Row 9, Column 13 -9, 2, 202, 0 ! Row 10, Column 13 -10, 2, 203, 0 ! Row 11, Column 13 -11, 2, 204, 0 ! Row 12, Column 13 -12, 2, 205, 0 ! Row 13, Column 13 -13, 2, 206, 0 ! Row 14, Column 13 -14, 2, 207, 0 ! Row 15, Column 13 -15, 2, 208, 0 ! Row 16, Column 13 + 0, 2, 193, 0 ! Row 1, Column 13 + 1, 2, 194, 0 ! Row 2, Column 13 + 2, 2, 195, 0 ! Row 3, Column 13 + 3, 2, 196, 0 ! Row 4, Column 13 + 4, 2, 197, 0 ! Row 5, Column 13 + 5, 2, 198, 0 ! Row 6, Column 13 + 6, 2, 199, 0 ! Row 7, Column 13 + 7, 2, 200, 0 ! Row 8, Column 13 + 8, 2, 201, 0 ! Row 9, Column 13 + 9, 2, 202, 0 ! Row 10, Column 13 + 10, 2, 203, 0 ! Row 11, Column 13 + 11, 2, 204, 0 ! Row 12, Column 13 + 12, 2, 205, 0 ! Row 13, Column 13 + 13, 2, 206, 0 ! Row 14, Column 13 + 14, 2, 207, 0 ! Row 15, Column 13 + 15, 2, 208, 0 ! Row 16, Column 13 + SLOT=20 -! chan plane row sig -0, 2, 209, 0 ! Row 1, Column 14 -1, 2, 210, 0 ! Row 2, Column 14 -2, 2, 211, 0 ! Row 3, Column 14 -3, 2, 212, 0 ! Row 4, Column 14 -4, 2, 213, 0 ! Row 5, Column 14 -5, 2, 214, 0 ! Row 6, Column 14 -6, 2, 215, 0 ! Row 7, Column 14 -7, 2, 216, 0 ! Row 8, Column 14 -8, 2, 217, 0 ! Row 9, Column 14 -9, 2, 218, 0 ! Row 10, Column 14 -10, 2, 219, 0 ! Row 11, Column 14 -11, 2, 220, 0 ! Row 12, Column 14 -12, 2, 221, 0 ! Row 13, Column 14 -13, 2, 222, 0 ! Row 14, Column 14 -14, 2, 223, 0 ! Row 15, Column 14 -15, 2, 224, 0 ! Row 16, Column 14 \ No newline at end of file + 0, 2, 209, 0 ! Row 1, Column 14 + 1, 2, 210, 0 ! Row 2, Column 14 + 2, 2, 211, 0 ! Row 3, Column 14 + 3, 2, 212, 0 ! Row 4, Column 14 + 4, 2, 213, 0 ! Row 5, Column 14 + 5, 2, 214, 0 ! Row 6, Column 14 + 6, 2, 215, 0 ! Row 7, Column 14 + 7, 2, 216, 0 ! Row 8, Column 14 + 8, 2, 217, 0 ! Row 9, Column 14 + 9, 2, 218, 0 ! Row 10, Column 14 + 10, 2, 219, 0 ! Row 11, Column 14 + 11, 2, 220, 0 ! Row 12, Column 14 + 12, 2, 221, 0 ! Row 13, Column 14 + 13, 2, 222, 0 ! Row 14, Column 14 + 14, 2, 223, 0 ! Row 15, Column 14 + 15, 2, 224, 0 ! Row 16, Column 14 diff --git a/MAPS/SHMS/DETEC/pdc.map b/MAPS/SHMS/DETEC/pdc.map index 1125f423..fec250e4 100644 --- a/MAPS/SHMS/DETEC/pdc.map +++ b/MAPS/SHMS/DETEC/pdc.map @@ -1,1232 +1,1337 @@ -!SHMS: -! PDC_ID=21 TDC +! PDC_ID=22 :: TDC + + +DETECTOR=22 ! SHMS chambers ROC=6 -detector=21 ! SHMS chambers -! Caen 1190 VME Modules >> DC1 SLOT=9 -77,1,1 ! Plane U, wire 1 -76,1,2 ! Plane U, wire 2 -75,1,3 ! Plane U, wire 3 -74,1,4 ! Plane U, wire 4 -73,1,5 ! Plane U, wire 5 -72,1,6 ! Plane U, wire 6 -71,1,7 ! Plane U, wire 7 -70,1,8 ! Plane U, wire 8 -69,1,9 ! Plane U, wire 9 -68,1,10 ! Plane U, wire 10 -67,1,11 ! Plane U, wire 11 -66,1,12 ! Plane U, wire 12 -65,1,13 ! Plane U, wire 13 -64,1,14 ! Plane U, wire 14 +REFCHAN=79 + 78, 1, 1 ! DC1, Plane U, wire 1 + 77, 1, 2 ! DC1, Plane U, wire 2 + 76, 1, 3 ! DC1, Plane U, wire 3 + 75, 1, 4 ! DC1, Plane U, wire 4 + 74, 1, 5 ! DC1, Plane U, wire 5 + 73, 1, 6 ! DC1, Plane U, wire 6 + 72, 1, 7 ! DC1, Plane U, wire 7 + 71, 1, 8 ! DC1, Plane U, wire 8 + 70, 1, 9 ! DC1, Plane U, wire 9 + 69, 1, 10 ! DC1, Plane U, wire 10 + 68, 1, 11 ! DC1, Plane U, wire 11 + 67, 1, 12 ! DC1, Plane U, wire 12 + 66, 1, 13 ! DC1, Plane U, wire 13 + 65, 1, 14 ! DC1, Plane U, wire 14 + 64, 1, 15 ! DC1, Plane U, wire 15 + SLOT=7 -31,1,15 ! Plane U, wire 15 -30,1,16 ! Plane U, wire 16 -29,1,17 ! Plane U, wire 17 -28,1,18 ! Plane U, wire 18 -27,1,19 ! Plane U, wire 19 -26,1,20 ! Plane U, wire 20 -25,1,21 ! Plane U, wire 21 -24,1,22 ! Plane U, wire 22 -23,1,23 ! Plane U, wire 23 -22,1,24 ! Plane U, wire 24 -21,1,25 ! Plane U, wire 25 -20,1,26 ! Plane U, wire 26 -19,1,27 ! Plane U, wire 27 -18,1,28 ! Plane U, wire 28 -17,1,29 ! Plane U, wire 29 -16,1,30 ! Plane U, wire 30 +REFCHAN=79 + 31, 1, 16 ! DC1, Plane U, wire 16 + 30, 1, 17 ! DC1, Plane U, wire 17 + 29, 1, 18 ! DC1, Plane U, wire 18 + 28, 1, 19 ! DC1, Plane U, wire 19 + 27, 1, 20 ! DC1, Plane U, wire 20 + 26, 1, 21 ! DC1, Plane U, wire 21 + 25, 1, 22 ! DC1, Plane U, wire 22 + 24, 1, 23 ! DC1, Plane U, wire 23 + 23, 1, 24 ! DC1, Plane U, wire 24 + 22, 1, 25 ! DC1, Plane U, wire 25 + 21, 1, 26 ! DC1, Plane U, wire 26 + 20, 1, 27 ! DC1, Plane U, wire 27 + 19, 1, 28 ! DC1, Plane U, wire 28 + 18, 1, 29 ! DC1, Plane U, wire 29 + 17, 1, 30 ! DC1, Plane U, wire 30 + 16, 1, 31 ! DC1, Plane U, wire 31 + SLOT=6 -95,1,31 ! Plane U, wire 31 -94,1,32 ! Plane U, wire 32 -93,1,33 ! Plane U, wire 33 -92,1,34 ! Plane U, wire 34 -91,1,35 ! Plane U, wire 35 -90,1,36 ! Plane U, wire 36 -89,1,37 ! Plane U, wire 37 -88,1,38 ! Plane U, wire 38 -87,1,39 ! Plane U, wire 39 -86,1,40 ! Plane U, wire 40 -85,1,41 ! Plane U, wire 41 -84,1,42 ! Plane U, wire 42 -83,1,43 ! Plane U, wire 43 -82,1,44 ! Plane U, wire 44 -81,1,45 ! Plane U, wire 45 -80,1,46 ! Plane U, wire 46 -31,1,47 ! Plane U, wire 47 -30,1,48 ! Plane U, wire 48 -29,1,49 ! Plane U, wire 49 -28,1,50 ! Plane U, wire 50 -27,1,51 ! Plane U, wire 51 -26,1,52 ! Plane U, wire 52 -25,1,53 ! Plane U, wire 53 -24,1,54 ! Plane U, wire 54 -23,1,55 ! Plane U, wire 55 -22,1,56 ! Plane U, wire 56 -21,1,57 ! Plane U, wire 57 -20,1,58 ! Plane U, wire 58 -19,1,59 ! Plane U, wire 59 -18,1,60 ! Plane U, wire 60 -17,1,61 ! Plane U, wire 61 -16,1,62 ! Plane U, wire 62 +REFCHAN=79 + 95, 1, 32 ! DC1, Plane U, wire 32 + 94, 1, 33 ! DC1, Plane U, wire 33 + 93, 1, 34 ! DC1, Plane U, wire 34 + 92, 1, 35 ! DC1, Plane U, wire 35 + 91, 1, 36 ! DC1, Plane U, wire 36 + 90, 1, 37 ! DC1, Plane U, wire 37 + 89, 1, 38 ! DC1, Plane U, wire 38 + 88, 1, 39 ! DC1, Plane U, wire 39 + 87, 1, 40 ! DC1, Plane U, wire 40 + 86, 1, 41 ! DC1, Plane U, wire 41 + 85, 1, 42 ! DC1, Plane U, wire 42 + 84, 1, 43 ! DC1, Plane U, wire 43 + 83, 1, 44 ! DC1, Plane U, wire 44 + 82, 1, 45 ! DC1, Plane U, wire 45 + 81, 1, 46 ! DC1, Plane U, wire 46 + 80, 1, 47 ! DC1, Plane U, wire 47 + 31, 1, 48 ! DC1, Plane U, wire 48 + 30, 1, 49 ! DC1, Plane U, wire 49 + 29, 1, 50 ! DC1, Plane U, wire 50 + 28, 1, 51 ! DC1, Plane U, wire 51 + 27, 1, 52 ! DC1, Plane U, wire 52 + 26, 1, 53 ! DC1, Plane U, wire 53 + 25, 1, 54 ! DC1, Plane U, wire 54 + 24, 1, 55 ! DC1, Plane U, wire 55 + 23, 1, 56 ! DC1, Plane U, wire 56 + 22, 1, 57 ! DC1, Plane U, wire 57 + 21, 1, 58 ! DC1, Plane U, wire 58 + 20, 1, 59 ! DC1, Plane U, wire 59 + 19, 1, 60 ! DC1, Plane U, wire 60 + 18, 1, 61 ! DC1, Plane U, wire 61 + 17, 1, 62 ! DC1, Plane U, wire 62 + 16, 1, 63 ! DC1, Plane U, wire 63 + SLOT=8 -112,1,63 ! Plane U, wire 63 -113,1,64 ! Plane U, wire 64 -114,1,65 ! Plane U, wire 65 -115,1,66 ! Plane U, wire 66 -116,1,67 ! Plane U, wire 67 -117,1,68 ! Plane U, wire 68 -118,1,69 ! Plane U, wire 69 -119,1,70 ! Plane U, wire 70 -120,1,71 ! Plane U, wire 71 -121,1,72 ! Plane U, wire 72 -122,1,73 ! Plane U, wire 73 -123,1,74 ! Plane U, wire 74 -124,1,75 ! Plane U, wire 75 -125,1,76 ! Plane U, wire 76 -126,1,77 ! Plane U, wire 77 -127,1,78 ! Plane U, wire 78 -48,1,79 ! Plane U, wire 79 -49,1,80 ! Plane U, wire 80 -50,1,81 ! Plane U, wire 81 -51,1,82 ! Plane U, wire 82 -52,1,83 ! Plane U, wire 83 -53,1,84 ! Plane U, wire 84 -54,1,85 ! Plane U, wire 85 -55,1,86 ! Plane U, wire 86 -56,1,87 ! Plane U, wire 87 -57,1,88 ! Plane U, wire 88 -58,1,89 ! Plane U, wire 89 -59,1,90 ! Plane U, wire 90 -60,1,91 ! Plane U, wire 91 -61,1,92 ! Plane U, wire 92 -62,1,93 ! Plane U, wire 93 +REFCHAN=79 + 112, 1, 64 ! DC1, Plane U, wire 64 + 113, 1, 65 ! DC1, Plane U, wire 65 + 114, 1, 66 ! DC1, Plane U, wire 66 + 115, 1, 67 ! DC1, Plane U, wire 67 + 116, 1, 68 ! DC1, Plane U, wire 68 + 117, 1, 69 ! DC1, Plane U, wire 69 + 118, 1, 70 ! DC1, Plane U, wire 70 + 119, 1, 71 ! DC1, Plane U, wire 71 + 120, 1, 72 ! DC1, Plane U, wire 72 + 121, 1, 73 ! DC1, Plane U, wire 73 + 122, 1, 74 ! DC1, Plane U, wire 74 + 123, 1, 75 ! DC1, Plane U, wire 75 + 124, 1, 76 ! DC1, Plane U, wire 76 + 125, 1, 77 ! DC1, Plane U, wire 77 + 126, 1, 78 ! DC1, Plane U, wire 78 + 127, 1, 79 ! DC1, Plane U, wire 79 + 48, 1, 80 ! DC1, Plane U, wire 80 + 49, 1, 81 ! DC1, Plane U, wire 81 + 50, 1, 82 ! DC1, Plane U, wire 82 + 51, 1, 83 ! DC1, Plane U, wire 83 + 52, 1, 84 ! DC1, Plane U, wire 84 + 53, 1, 85 ! DC1, Plane U, wire 85 + 54, 1, 86 ! DC1, Plane U, wire 86 + 55, 1, 87 ! DC1, Plane U, wire 87 + 56, 1, 88 ! DC1, Plane U, wire 88 + 57, 1, 89 ! DC1, Plane U, wire 89 + 58, 1, 90 ! DC1, Plane U, wire 90 + 59, 1, 91 ! DC1, Plane U, wire 91 + 60, 1, 92 ! DC1, Plane U, wire 92 + 61, 1, 93 ! DC1, Plane U, wire 93 + 62, 1, 94 ! DC1, Plane U, wire 94 + 63, 1, 95 ! DC1, Plane U, wire 95 + SLOT=9 -78,1,94 ! Plane U, wire 94 -112,1,95 ! Plane U, wire 95 -113,1,96 ! Plane U, wire 96 -114,1,97 ! Plane U, wire 97 -115,1,98 ! Plane U, wire 98 -116,1,99 ! Plane U, wire 99 -117,1,100 ! Plane U, wire 100 -118,1,101 ! Plane U, wire 101 -119,1,102 ! Plane U, wire 102 -120,1,103 ! Plane U, wire 103 -121,1,104 ! Plane U, wire 104 -122,1,105 ! Plane U, wire 105 -123,1,106 ! Plane U, wire 106 +REFCHAN=79 + 112, 1, 96 ! DC1, Plane U, wire 96 + 113, 1, 97 ! DC1, Plane U, wire 97 + 114, 1, 98 ! DC1, Plane U, wire 98 + 115, 1, 99 ! DC1, Plane U, wire 99 + 116, 1, 100 ! DC1, Plane U, wire 100 + 117, 1, 101 ! DC1, Plane U, wire 101 + 118, 1, 102 ! DC1, Plane U, wire 102 + 119, 1, 103 ! DC1, Plane U, wire 103 + 120, 1, 104 ! DC1, Plane U, wire 104 + 121, 1, 105 ! DC1, Plane U, wire 105 + 122, 1, 106 ! DC1, Plane U, wire 106 + 123, 1, 107 ! DC1, Plane U, wire 107 + SLOT=8 -74,2,1 ! Plane U', wire 1 -73,2,2 ! Plane U', wire 2 -72,2,3 ! Plane U', wire 3 -71,2,4 ! Plane U', wire 4 -70,2,5 ! Plane U', wire 5 -69,2,6 ! Plane U', wire 6 -68,2,7 ! Plane U', wire 7 -67,2,8 ! Plane U', wire 8 -66,2,9 ! Plane U', wire 9 -65,2,10 ! Plane U', wire 10 -64,2,11 ! Plane U', wire 11 +REFCHAN=79 + 75, 2, 1 ! DC1, Plane U', wire 1 + 74, 2, 2 ! DC1, Plane U', wire 2 + 73, 2, 3 ! DC1, Plane U', wire 3 + 72, 2, 4 ! DC1, Plane U', wire 4 + 71, 2, 5 ! DC1, Plane U', wire 5 + 70, 2, 6 ! DC1, Plane U', wire 6 + 69, 2, 7 ! DC1, Plane U', wire 7 + 68, 2, 8 ! DC1, Plane U', wire 8 + 67, 2, 9 ! DC1, Plane U', wire 9 + 66, 2, 10 ! DC1, Plane U', wire 10 + 65, 2, 11 ! DC1, Plane U', wire 11 + 64, 2, 12 ! DC1, Plane U', wire 12 + SLOT=6 -127,2,12 ! Plane U', wire 12 -126,2,13 ! Plane U', wire 13 -125,2,14 ! Plane U', wire 14 -124,2,15 ! Plane U', wire 15 -123,2,16 ! Plane U', wire 16 -122,2,17 ! Plane U', wire 17 -121,2,18 ! Plane U', wire 18 -120,2,19 ! Plane U', wire 19 -119,2,20 ! Plane U', wire 20 -118,2,21 ! Plane U', wire 21 -117,2,22 ! Plane U', wire 22 -116,2,23 ! Plane U', wire 23 -115,2,24 ! Plane U', wire 24 -114,2,25 ! Plane U', wire 25 -113,2,26 ! Plane U', wire 26 -112,2,27 ! Plane U', wire 27 -47,2,28 ! Plane U', wire 28 -46,2,29 ! Plane U', wire 29 -45,2,30 ! Plane U', wire 30 -44,2,31 ! Plane U', wire 31 -43,2,32 ! Plane U', wire 32 -42,2,33 ! Plane U', wire 33 -41,2,34 ! Plane U', wire 34 -40,2,35 ! Plane U', wire 35 -39,2,36 ! Plane U', wire 36 -38,2,37 ! Plane U', wire 37 -37,2,38 ! Plane U', wire 38 -36,2,39 ! Plane U', wire 39 -35,2,40 ! Plane U', wire 40 -34,2,41 ! Plane U', wire 41 -33,2,42 ! Plane U', wire 42 -SLOT=8 -75,2,43 ! Plane U', wire 43 +REFCHAN=79 + 127, 2, 13 ! DC1, Plane U', wire 13 + 126, 2, 14 ! DC1, Plane U', wire 14 + 125, 2, 15 ! DC1, Plane U', wire 15 + 124, 2, 16 ! DC1, Plane U', wire 16 + 123, 2, 17 ! DC1, Plane U', wire 17 + 122, 2, 18 ! DC1, Plane U', wire 18 + 121, 2, 19 ! DC1, Plane U', wire 19 + 120, 2, 20 ! DC1, Plane U', wire 20 + 119, 2, 21 ! DC1, Plane U', wire 21 + 118, 2, 22 ! DC1, Plane U', wire 22 + 117, 2, 23 ! DC1, Plane U', wire 23 + 116, 2, 24 ! DC1, Plane U', wire 24 + 115, 2, 25 ! DC1, Plane U', wire 25 + 114, 2, 26 ! DC1, Plane U', wire 26 + 113, 2, 27 ! DC1, Plane U', wire 27 + 112, 2, 28 ! DC1, Plane U', wire 28 + 47, 2, 29 ! DC1, Plane U', wire 29 + 46, 2, 30 ! DC1, Plane U', wire 30 + 45, 2, 31 ! DC1, Plane U', wire 31 + 44, 2, 32 ! DC1, Plane U', wire 32 + 43, 2, 33 ! DC1, Plane U', wire 33 + 42, 2, 34 ! DC1, Plane U', wire 34 + 41, 2, 35 ! DC1, Plane U', wire 35 + 40, 2, 36 ! DC1, Plane U', wire 36 + 39, 2, 37 ! DC1, Plane U', wire 37 + 38, 2, 38 ! DC1, Plane U', wire 38 + 37, 2, 39 ! DC1, Plane U', wire 39 + 36, 2, 40 ! DC1, Plane U', wire 40 + 35, 2, 41 ! DC1, Plane U', wire 41 + 34, 2, 42 ! DC1, Plane U', wire 42 + 33, 2, 43 ! DC1, Plane U', wire 43 + 32, 2, 44 ! DC1, Plane U', wire 44 + SLOT=9 -0,2,44 ! Plane U', wire 44 -1,2,45 ! Plane U', wire 45 -2,2,46 ! Plane U', wire 46 -3,2,47 ! Plane U', wire 47 -4,2,48 ! Plane U', wire 48 -5,2,49 ! Plane U', wire 49 -6,2,50 ! Plane U', wire 50 -7,2,51 ! Plane U', wire 51 -8,2,52 ! Plane U', wire 52 -9,2,53 ! Plane U', wire 53 -10,2,54 ! Plane U', wire 54 -11,2,55 ! Plane U', wire 55 -12,2,56 ! Plane U', wire 56 -13,2,57 ! Plane U', wire 57 -14,2,58 ! Plane U', wire 58 -15,2,59 ! Plane U', wire 59 +REFCHAN=79 + 0, 2, 45 ! DC1, Plane U', wire 45 + 1, 2, 46 ! DC1, Plane U', wire 46 + 2, 2, 47 ! DC1, Plane U', wire 47 + 3, 2, 48 ! DC1, Plane U', wire 48 + 4, 2, 49 ! DC1, Plane U', wire 49 + 5, 2, 50 ! DC1, Plane U', wire 50 + 6, 2, 51 ! DC1, Plane U', wire 51 + 7, 2, 52 ! DC1, Plane U', wire 52 + 8, 2, 53 ! DC1, Plane U', wire 53 + 9, 2, 54 ! DC1, Plane U', wire 54 + 10, 2, 55 ! DC1, Plane U', wire 55 + 11, 2, 56 ! DC1, Plane U', wire 56 + 12, 2, 57 ! DC1, Plane U', wire 57 + 13, 2, 58 ! DC1, Plane U', wire 58 + 14, 2, 59 ! DC1, Plane U', wire 59 + 15, 2, 60 ! DC1, Plane U', wire 60 + SLOT=8 -96,2,60 ! Plane U', wire 60 -97,2,61 ! Plane U', wire 61 -98,2,62 ! Plane U', wire 62 -99,2,63 ! Plane U', wire 63 -100,2,64 ! Plane U', wire 64 -101,2,65 ! Plane U', wire 65 -102,2,66 ! Plane U', wire 66 -103,2,67 ! Plane U', wire 67 -104,2,68 ! Plane U', wire 68 -105,2,69 ! Plane U', wire 69 -106,2,70 ! Plane U', wire 70 -107,2,71 ! Plane U', wire 71 -108,2,72 ! Plane U', wire 72 -109,2,73 ! Plane U', wire 73 -110,2,74 ! Plane U', wire 74 -111,2,75 ! Plane U', wire 75 +REFCHAN=79 + 96, 2, 61 ! DC1, Plane U', wire 61 + 97, 2, 62 ! DC1, Plane U', wire 62 + 98, 2, 63 ! DC1, Plane U', wire 63 + 99, 2, 64 ! DC1, Plane U', wire 64 + 100, 2, 65 ! DC1, Plane U', wire 65 + 101, 2, 66 ! DC1, Plane U', wire 66 + 102, 2, 67 ! DC1, Plane U', wire 67 + 103, 2, 68 ! DC1, Plane U', wire 68 + 104, 2, 69 ! DC1, Plane U', wire 69 + 105, 2, 70 ! DC1, Plane U', wire 70 + 106, 2, 71 ! DC1, Plane U', wire 71 + 107, 2, 72 ! DC1, Plane U', wire 72 + 108, 2, 73 ! DC1, Plane U', wire 73 + 109, 2, 74 ! DC1, Plane U', wire 74 + 110, 2, 75 ! DC1, Plane U', wire 75 + 111, 2, 76 ! DC1, Plane U', wire 76 + SLOT=10 -80,2,76 ! Plane U', wire 76 -81,2,77 ! Plane U', wire 77 -82,2,78 ! Plane U', wire 78 -83,2,79 ! Plane U', wire 79 -84,2,80 ! Plane U', wire 80 -85,2,81 ! Plane U', wire 81 -86,2,82 ! Plane U', wire 82 -87,2,83 ! Plane U', wire 83 -88,2,84 ! Plane U', wire 84 -89,2,85 ! Plane U', wire 85 -90,2,86 ! Plane U', wire 86 -91,2,87 ! Plane U', wire 87 -92,2,88 ! Plane U', wire 88 -93,2,89 ! Plane U', wire 89 -94,2,90 ! Plane U', wire 90 -95,2,91 ! Plane U', wire 91 -16,2,92 ! Plane U', wire 92 -17,2,93 ! Plane U', wire 93 -18,2,94 ! Plane U', wire 94 -19,2,95 ! Plane U', wire 95 -20,2,96 ! Plane U', wire 96 -21,2,97 ! Plane U', wire 97 -22,2,98 ! Plane U', wire 98 -23,2,99 ! Plane U', wire 99 -24,2,100 ! Plane U', wire 100 -25,2,101 ! Plane U', wire 101 -26,2,102 ! Plane U', wire 102 -27,2,103 ! Plane U', wire 103 -28,2,104 ! Plane U', wire 104 -29,2,105 ! Plane U', wire 105 -30,2,106 ! Plane U', wire 106 +REFCHAN=79 + 80, 2, 77 ! DC1, Plane U', wire 77 + 81, 2, 78 ! DC1, Plane U', wire 78 + 82, 2, 79 ! DC1, Plane U', wire 79 + 83, 2, 80 ! DC1, Plane U', wire 80 + 84, 2, 81 ! DC1, Plane U', wire 81 + 85, 2, 82 ! DC1, Plane U', wire 82 + 86, 2, 83 ! DC1, Plane U', wire 83 + 87, 2, 84 ! DC1, Plane U', wire 84 + 88, 2, 85 ! DC1, Plane U', wire 85 + 89, 2, 86 ! DC1, Plane U', wire 86 + 90, 2, 87 ! DC1, Plane U', wire 87 + 91, 2, 88 ! DC1, Plane U', wire 88 + 92, 2, 89 ! DC1, Plane U', wire 89 + 93, 2, 90 ! DC1, Plane U', wire 90 + 94, 2, 91 ! DC1, Plane U', wire 91 + 95, 2, 92 ! DC1, Plane U', wire 92 + 16, 2, 93 ! DC1, Plane U', wire 93 + 17, 2, 94 ! DC1, Plane U', wire 94 + 18, 2, 95 ! DC1, Plane U', wire 95 + 19, 2, 96 ! DC1, Plane U', wire 96 + 20, 2, 97 ! DC1, Plane U', wire 97 + 21, 2, 98 ! DC1, Plane U', wire 98 + 22, 2, 99 ! DC1, Plane U', wire 99 + 23, 2, 100 ! DC1, Plane U', wire 100 + 24, 2, 101 ! DC1, Plane U', wire 101 + 25, 2, 102 ! DC1, Plane U', wire 102 + 26, 2, 103 ! DC1, Plane U', wire 103 + 27, 2, 104 ! DC1, Plane U', wire 104 + 28, 2, 105 ! DC1, Plane U', wire 105 + 29, 2, 106 ! DC1, Plane U', wire 106 + 30, 2, 107 ! DC1, Plane U', wire 107 + SLOT=9 -45,5,1 ! Plane V, wire 1 -44,5,2 ! Plane V, wire 2 -43,5,3 ! Plane V, wire 3 -42,5,4 ! Plane V, wire 4 -41,5,5 ! Plane V, wire 5 -40,5,6 ! Plane V, wire 6 -39,5,7 ! Plane V, wire 7 -38,5,8 ! Plane V, wire 8 -37,5,9 ! Plane V, wire 9 -36,5,10 ! Plane V, wire 10 -35,5,11 ! Plane V, wire 11 -34,5,12 ! Plane V, wire 12 -33,5,13 ! Plane V, wire 13 -32,5,14 ! Plane V, wire 14 +REFCHAN=79 + 46, 5, 1 ! DC1, Plane V, wire 1 + 45, 5, 2 ! DC1, Plane V, wire 2 + 44, 5, 3 ! DC1, Plane V, wire 3 + 43, 5, 4 ! DC1, Plane V, wire 4 + 42, 5, 5 ! DC1, Plane V, wire 5 + 41, 5, 6 ! DC1, Plane V, wire 6 + 40, 5, 7 ! DC1, Plane V, wire 7 + 39, 5, 8 ! DC1, Plane V, wire 8 + 38, 5, 9 ! DC1, Plane V, wire 9 + 37, 5, 10 ! DC1, Plane V, wire 10 + 36, 5, 11 ! DC1, Plane V, wire 11 + 35, 5, 12 ! DC1, Plane V, wire 12 + 34, 5, 13 ! DC1, Plane V, wire 13 + 33, 5, 14 ! DC1, Plane V, wire 14 + 32, 5, 15 ! DC1, Plane V, wire 15 + SLOT=8 -31,5,15 ! Plane V, wire 15 -30,5,16 ! Plane V, wire 16 -29,5,17 ! Plane V, wire 17 -28,5,18 ! Plane V, wire 18 -27,5,19 ! Plane V, wire 19 -26,5,20 ! Plane V, wire 20 -25,5,21 ! Plane V, wire 21 -24,5,22 ! Plane V, wire 22 -23,5,23 ! Plane V, wire 23 -22,5,24 ! Plane V, wire 24 -21,5,25 ! Plane V, wire 25 -20,5,26 ! Plane V, wire 26 -19,5,27 ! Plane V, wire 27 -18,5,28 ! Plane V, wire 28 -17,5,29 ! Plane V, wire 29 -16,5,30 ! Plane V, wire 30 +REFCHAN=79 + 31, 5, 16 ! DC1, Plane V, wire 16 + 30, 5, 17 ! DC1, Plane V, wire 17 + 29, 5, 18 ! DC1, Plane V, wire 18 + 28, 5, 19 ! DC1, Plane V, wire 19 + 27, 5, 20 ! DC1, Plane V, wire 20 + 26, 5, 21 ! DC1, Plane V, wire 21 + 25, 5, 22 ! DC1, Plane V, wire 22 + 24, 5, 23 ! DC1, Plane V, wire 23 + 23, 5, 24 ! DC1, Plane V, wire 24 + 22, 5, 25 ! DC1, Plane V, wire 25 + 21, 5, 26 ! DC1, Plane V, wire 26 + 20, 5, 27 ! DC1, Plane V, wire 27 + 19, 5, 28 ! DC1, Plane V, wire 28 + 18, 5, 29 ! DC1, Plane V, wire 29 + 17, 5, 30 ! DC1, Plane V, wire 30 + 16, 5, 31 ! DC1, Plane V, wire 31 + SLOT=10 -15,5,31 ! Plane V, wire 31 -14,5,32 ! Plane V, wire 32 -13,5,33 ! Plane V, wire 33 -12,5,34 ! Plane V, wire 34 -11,5,35 ! Plane V, wire 35 -10,5,36 ! Plane V, wire 36 -9,5,37 ! Plane V, wire 37 -8,5,38 ! Plane V, wire 38 -7,5,39 ! Plane V, wire 39 -6,5,40 ! Plane V, wire 40 -5,5,41 ! Plane V, wire 41 -4,5,42 ! Plane V, wire 42 -3,5,43 ! Plane V, wire 43 -2,5,44 ! Plane V, wire 44 -1,5,45 ! Plane V, wire 45 -0,5,46 ! Plane V, wire 46 +REFCHAN=79 + 15, 5, 32 ! DC1, Plane V, wire 32 + 14, 5, 33 ! DC1, Plane V, wire 33 + 13, 5, 34 ! DC1, Plane V, wire 34 + 12, 5, 35 ! DC1, Plane V, wire 35 + 11, 5, 36 ! DC1, Plane V, wire 36 + 10, 5, 37 ! DC1, Plane V, wire 37 + 9, 5, 38 ! DC1, Plane V, wire 38 + 8, 5, 39 ! DC1, Plane V, wire 39 + 7, 5, 40 ! DC1, Plane V, wire 40 + 6, 5, 41 ! DC1, Plane V, wire 41 + 5, 5, 42 ! DC1, Plane V, wire 42 + 4, 5, 43 ! DC1, Plane V, wire 43 + 3, 5, 44 ! DC1, Plane V, wire 44 + 2, 5, 45 ! DC1, Plane V, wire 45 + 1, 5, 46 ! DC1, Plane V, wire 46 + 0, 5, 47 ! DC1, Plane V, wire 47 + SLOT=9 -63,5,47 ! Plane V, wire 47 -62,5,48 ! Plane V, wire 48 -61,5,49 ! Plane V, wire 49 -60,5,50 ! Plane V, wire 50 -59,5,51 ! Plane V, wire 51 -58,5,52 ! Plane V, wire 52 -57,5,53 ! Plane V, wire 53 -56,5,54 ! Plane V, wire 54 -55,5,55 ! Plane V, wire 55 -54,5,56 ! Plane V, wire 56 -53,5,57 ! Plane V, wire 57 -52,5,58 ! Plane V, wire 58 -51,5,59 ! Plane V, wire 59 -50,5,60 ! Plane V, wire 60 -49,5,61 ! Plane V, wire 61 -48,5,62 ! Plane V, wire 62 +REFCHAN=79 + 63, 5, 48 ! DC1, Plane V, wire 48 + 62, 5, 49 ! DC1, Plane V, wire 49 + 61, 5, 50 ! DC1, Plane V, wire 50 + 60, 5, 51 ! DC1, Plane V, wire 51 + 59, 5, 52 ! DC1, Plane V, wire 52 + 58, 5, 53 ! DC1, Plane V, wire 53 + 57, 5, 54 ! DC1, Plane V, wire 54 + 56, 5, 55 ! DC1, Plane V, wire 55 + 55, 5, 56 ! DC1, Plane V, wire 56 + 54, 5, 57 ! DC1, Plane V, wire 57 + 53, 5, 58 ! DC1, Plane V, wire 58 + 52, 5, 59 ! DC1, Plane V, wire 59 + 51, 5, 60 ! DC1, Plane V, wire 60 + 50, 5, 61 ! DC1, Plane V, wire 61 + 49, 5, 62 ! DC1, Plane V, wire 62 + 48, 5, 63 ! DC1, Plane V, wire 63 + SLOT=7 -32,5,63 ! Plane V, wire 63 -33,5,64 ! Plane V, wire 64 -34,5,65 ! Plane V, wire 65 -35,5,66 ! Plane V, wire 66 -36,5,67 ! Plane V, wire 67 -37,5,68 ! Plane V, wire 68 -38,5,69 ! Plane V, wire 69 -39,5,70 ! Plane V, wire 70 -40,5,71 ! Plane V, wire 71 -41,5,72 ! Plane V, wire 72 -42,5,73 ! Plane V, wire 73 -43,5,74 ! Plane V, wire 74 -44,5,75 ! Plane V, wire 75 -45,5,76 ! Plane V, wire 76 -46,5,77 ! Plane V, wire 77 -47,5,78 ! Plane V, wire 78 -96,5,79 ! Plane V, wire 79 -97,5,80 ! Plane V, wire 80 -98,5,81 ! Plane V, wire 81 -99,5,82 ! Plane V, wire 82 -100,5,83 ! Plane V, wire 83 -101,5,84 ! Plane V, wire 84 -102,5,85 ! Plane V, wire 85 -103,5,86 ! Plane V, wire 86 -104,5,87 ! Plane V, wire 87 -105,5,88 ! Plane V, wire 88 -106,5,89 ! Plane V, wire 89 -107,5,90 ! Plane V, wire 90 -108,5,91 ! Plane V, wire 91 -109,5,92 ! Plane V, wire 92 -110,5,93 ! Plane V, wire 93 -111,5,94 ! Plane V, wire 94 -64,5,95 ! Plane V, wire 95 -65,5,96 ! Plane V, wire 96 -66,5,97 ! Plane V, wire 97 -67,5,98 ! Plane V, wire 98 -68,5,99 ! Plane V, wire 99 -69,5,100 ! Plane V, wire 100 -70,5,101 ! Plane V, wire 101 -71,5,102 ! Plane V, wire 102 -72,5,103 ! Plane V, wire 103 -73,5,104 ! Plane V, wire 104 -74,5,105 ! Plane V, wire 105 -SLOT=9 -46,5,106 ! Plane V, wire 106 +REFCHAN=79 + 32, 5, 64 ! DC1, Plane V, wire 64 + 33, 5, 65 ! DC1, Plane V, wire 65 + 34, 5, 66 ! DC1, Plane V, wire 66 + 35, 5, 67 ! DC1, Plane V, wire 67 + 36, 5, 68 ! DC1, Plane V, wire 68 + 37, 5, 69 ! DC1, Plane V, wire 69 + 38, 5, 70 ! DC1, Plane V, wire 70 + 39, 5, 71 ! DC1, Plane V, wire 71 + 40, 5, 72 ! DC1, Plane V, wire 72 + 41, 5, 73 ! DC1, Plane V, wire 73 + 42, 5, 74 ! DC1, Plane V, wire 74 + 43, 5, 75 ! DC1, Plane V, wire 75 + 44, 5, 76 ! DC1, Plane V, wire 76 + 45, 5, 77 ! DC1, Plane V, wire 77 + 46, 5, 78 ! DC1, Plane V, wire 78 + 47, 5, 79 ! DC1, Plane V, wire 79 + 96, 5, 80 ! DC1, Plane V, wire 80 + 97, 5, 81 ! DC1, Plane V, wire 81 + 98, 5, 82 ! DC1, Plane V, wire 82 + 99, 5, 83 ! DC1, Plane V, wire 83 + 100, 5, 84 ! DC1, Plane V, wire 84 + 101, 5, 85 ! DC1, Plane V, wire 85 + 102, 5, 86 ! DC1, Plane V, wire 86 + 103, 5, 87 ! DC1, Plane V, wire 87 + 104, 5, 88 ! DC1, Plane V, wire 88 + 105, 5, 89 ! DC1, Plane V, wire 89 + 106, 5, 90 ! DC1, Plane V, wire 90 + 107, 5, 91 ! DC1, Plane V, wire 91 + 108, 5, 92 ! DC1, Plane V, wire 92 + 109, 5, 93 ! DC1, Plane V, wire 93 + 110, 5, 94 ! DC1, Plane V, wire 94 + 111, 5, 95 ! DC1, Plane V, wire 95 + 64, 5, 96 ! DC1, Plane V, wire 96 + 65, 5, 97 ! DC1, Plane V, wire 97 + 66, 5, 98 ! DC1, Plane V, wire 98 + 67, 5, 99 ! DC1, Plane V, wire 99 + 68, 5, 100 ! DC1, Plane V, wire 100 + 69, 5, 101 ! DC1, Plane V, wire 101 + 70, 5, 102 ! DC1, Plane V, wire 102 + 71, 5, 103 ! DC1, Plane V, wire 103 + 72, 5, 104 ! DC1, Plane V, wire 104 + 73, 5, 105 ! DC1, Plane V, wire 105 + 74, 5, 106 ! DC1, Plane V, wire 106 + 75, 5, 107 ! DC1, Plane V, wire 107 + SLOT=10 -74,6,1 ! Plane V', wire 1 -73,6,2 ! Plane V', wire 2 -72,6,3 ! Plane V', wire 3 -71,6,4 ! Plane V', wire 4 -70,6,5 ! Plane V', wire 5 -69,6,6 ! Plane V', wire 6 -68,6,7 ! Plane V', wire 7 -67,6,8 ! Plane V', wire 8 -66,6,9 ! Plane V', wire 9 -65,6,10 ! Plane V', wire 10 -64,6,11 ! Plane V', wire 11 -47,6,12 ! Plane V', wire 12 -46,6,13 ! Plane V', wire 13 -45,6,14 ! Plane V', wire 14 -44,6,15 ! Plane V', wire 15 -43,6,16 ! Plane V', wire 16 -42,6,17 ! Plane V', wire 17 -41,6,18 ! Plane V', wire 18 -40,6,19 ! Plane V', wire 19 -39,6,20 ! Plane V', wire 20 -38,6,21 ! Plane V', wire 21 -37,6,22 ! Plane V', wire 22 -36,6,23 ! Plane V', wire 23 -35,6,24 ! Plane V', wire 24 -34,6,25 ! Plane V', wire 25 -33,6,26 ! Plane V', wire 26 -32,6,27 ! Plane V', wire 27 +REFCHAN=79 + 75, 6, 1 ! DC1, Plane V', wire 1 + 74, 6, 2 ! DC1, Plane V', wire 2 + 73, 6, 3 ! DC1, Plane V', wire 3 + 72, 6, 4 ! DC1, Plane V', wire 4 + 71, 6, 5 ! DC1, Plane V', wire 5 + 70, 6, 6 ! DC1, Plane V', wire 6 + 69, 6, 7 ! DC1, Plane V', wire 7 + 68, 6, 8 ! DC1, Plane V', wire 8 + 67, 6, 9 ! DC1, Plane V', wire 9 + 66, 6, 10 ! DC1, Plane V', wire 10 + 65, 6, 11 ! DC1, Plane V', wire 11 + 64, 6, 12 ! DC1, Plane V', wire 12 + 47, 6, 13 ! DC1, Plane V', wire 13 + 46, 6, 14 ! DC1, Plane V', wire 14 + 45, 6, 15 ! DC1, Plane V', wire 15 + 44, 6, 16 ! DC1, Plane V', wire 16 + 43, 6, 17 ! DC1, Plane V', wire 17 + 42, 6, 18 ! DC1, Plane V', wire 18 + 41, 6, 19 ! DC1, Plane V', wire 19 + 40, 6, 20 ! DC1, Plane V', wire 20 + 39, 6, 21 ! DC1, Plane V', wire 21 + 38, 6, 22 ! DC1, Plane V', wire 22 + 37, 6, 23 ! DC1, Plane V', wire 23 + 36, 6, 24 ! DC1, Plane V', wire 24 + 35, 6, 25 ! DC1, Plane V', wire 25 + 34, 6, 26 ! DC1, Plane V', wire 26 + 33, 6, 27 ! DC1, Plane V', wire 27 + 32, 6, 28 ! DC1, Plane V', wire 28 + SLOT=9 -111,6,28 ! Plane V', wire 28 -110,6,29 ! Plane V', wire 29 -109,6,30 ! Plane V', wire 30 -108,6,31 ! Plane V', wire 31 -107,6,32 ! Plane V', wire 32 -106,6,33 ! Plane V', wire 33 -105,6,34 ! Plane V', wire 34 -104,6,35 ! Plane V', wire 35 -103,6,36 ! Plane V', wire 36 -102,6,37 ! Plane V', wire 37 -101,6,38 ! Plane V', wire 38 -100,6,39 ! Plane V', wire 39 -99,6,40 ! Plane V', wire 40 -98,6,41 ! Plane V', wire 41 -97,6,42 ! Plane V', wire 42 -96,6,43 ! Plane V', wire 43 +REFCHAN=79 + 111, 6, 29 ! DC1, Plane V', wire 29 + 110, 6, 30 ! DC1, Plane V', wire 30 + 109, 6, 31 ! DC1, Plane V', wire 31 + 108, 6, 32 ! DC1, Plane V', wire 32 + 107, 6, 33 ! DC1, Plane V', wire 33 + 106, 6, 34 ! DC1, Plane V', wire 34 + 105, 6, 35 ! DC1, Plane V', wire 35 + 104, 6, 36 ! DC1, Plane V', wire 36 + 103, 6, 37 ! DC1, Plane V', wire 37 + 102, 6, 38 ! DC1, Plane V', wire 38 + 101, 6, 39 ! DC1, Plane V', wire 39 + 100, 6, 40 ! DC1, Plane V', wire 40 + 99, 6, 41 ! DC1, Plane V', wire 41 + 98, 6, 42 ! DC1, Plane V', wire 42 + 97, 6, 43 ! DC1, Plane V', wire 43 + 96, 6, 44 ! DC1, Plane V', wire 44 + SLOT=8 -80,6,44 ! Plane V', wire 44 -81,6,45 ! Plane V', wire 45 -82,6,46 ! Plane V', wire 46 -83,6,47 ! Plane V', wire 47 -84,6,48 ! Plane V', wire 48 -85,6,49 ! Plane V', wire 49 -86,6,50 ! Plane V', wire 50 -87,6,51 ! Plane V', wire 51 -88,6,52 ! Plane V', wire 52 -89,6,53 ! Plane V', wire 53 -90,6,54 ! Plane V', wire 54 -91,6,55 ! Plane V', wire 55 -92,6,56 ! Plane V', wire 56 -93,6,57 ! Plane V', wire 57 -94,6,58 ! Plane V', wire 58 -95,6,59 ! Plane V', wire 59 +REFCHAN=79 + 80, 6, 45 ! DC1, Plane V', wire 45 + 81, 6, 46 ! DC1, Plane V', wire 46 + 82, 6, 47 ! DC1, Plane V', wire 47 + 83, 6, 48 ! DC1, Plane V', wire 48 + 84, 6, 49 ! DC1, Plane V', wire 49 + 85, 6, 50 ! DC1, Plane V', wire 50 + 86, 6, 51 ! DC1, Plane V', wire 51 + 87, 6, 52 ! DC1, Plane V', wire 52 + 88, 6, 53 ! DC1, Plane V', wire 53 + 89, 6, 54 ! DC1, Plane V', wire 54 + 90, 6, 55 ! DC1, Plane V', wire 55 + 91, 6, 56 ! DC1, Plane V', wire 56 + 92, 6, 57 ! DC1, Plane V', wire 57 + 93, 6, 58 ! DC1, Plane V', wire 58 + 94, 6, 59 ! DC1, Plane V', wire 59 + 95, 6, 60 ! DC1, Plane V', wire 60 + SLOT=7 -112,6,60 ! Plane V', wire 60 -113,6,61 ! Plane V', wire 61 -114,6,62 ! Plane V', wire 62 -115,6,63 ! Plane V', wire 63 -116,6,64 ! Plane V', wire 64 -117,6,65 ! Plane V', wire 65 -118,6,66 ! Plane V', wire 66 -119,6,67 ! Plane V', wire 67 -120,6,68 ! Plane V', wire 68 -121,6,69 ! Plane V', wire 69 -122,6,70 ! Plane V', wire 70 -123,6,71 ! Plane V', wire 71 -124,6,72 ! Plane V', wire 72 -125,6,73 ! Plane V', wire 73 -126,6,74 ! Plane V', wire 74 -127,6,75 ! Plane V', wire 75 -80,6,76 ! Plane V', wire 76 -81,6,77 ! Plane V', wire 77 -82,6,78 ! Plane V', wire 78 -83,6,79 ! Plane V', wire 79 -84,6,80 ! Plane V', wire 80 -85,6,81 ! Plane V', wire 81 -86,6,82 ! Plane V', wire 82 -87,6,83 ! Plane V', wire 83 -88,6,84 ! Plane V', wire 84 -89,6,85 ! Plane V', wire 85 -90,6,86 ! Plane V', wire 86 -91,6,87 ! Plane V', wire 87 -92,6,88 ! Plane V', wire 88 -93,6,89 ! Plane V', wire 89 -94,6,90 ! Plane V', wire 90 -95,6,91 ! Plane V', wire 91 +REFCHAN=79 + 112, 6, 61 ! DC1, Plane V', wire 61 + 113, 6, 62 ! DC1, Plane V', wire 62 + 114, 6, 63 ! DC1, Plane V', wire 63 + 115, 6, 64 ! DC1, Plane V', wire 64 + 116, 6, 65 ! DC1, Plane V', wire 65 + 117, 6, 66 ! DC1, Plane V', wire 66 + 118, 6, 67 ! DC1, Plane V', wire 67 + 119, 6, 68 ! DC1, Plane V', wire 68 + 120, 6, 69 ! DC1, Plane V', wire 69 + 121, 6, 70 ! DC1, Plane V', wire 70 + 122, 6, 71 ! DC1, Plane V', wire 71 + 123, 6, 72 ! DC1, Plane V', wire 72 + 124, 6, 73 ! DC1, Plane V', wire 73 + 125, 6, 74 ! DC1, Plane V', wire 74 + 126, 6, 75 ! DC1, Plane V', wire 75 + 127, 6, 76 ! DC1, Plane V', wire 76 + 80, 6, 77 ! DC1, Plane V', wire 77 + 81, 6, 78 ! DC1, Plane V', wire 78 + 82, 6, 79 ! DC1, Plane V', wire 79 + 83, 6, 80 ! DC1, Plane V', wire 80 + 84, 6, 81 ! DC1, Plane V', wire 81 + 85, 6, 82 ! DC1, Plane V', wire 82 + 86, 6, 83 ! DC1, Plane V', wire 83 + 87, 6, 84 ! DC1, Plane V', wire 84 + 88, 6, 85 ! DC1, Plane V', wire 85 + 89, 6, 86 ! DC1, Plane V', wire 86 + 90, 6, 87 ! DC1, Plane V', wire 87 + 91, 6, 88 ! DC1, Plane V', wire 88 + 92, 6, 89 ! DC1, Plane V', wire 89 + 93, 6, 90 ! DC1, Plane V', wire 90 + 94, 6, 91 ! DC1, Plane V', wire 91 + 95, 6, 92 ! DC1, Plane V', wire 92 + SLOT=6 -64,6,92 ! Plane V', wire 92 -65,6,93 ! Plane V', wire 93 -66,6,94 ! Plane V', wire 94 -67,6,95 ! Plane V', wire 95 -68,6,96 ! Plane V', wire 96 -69,6,97 ! Plane V', wire 97 -70,6,98 ! Plane V', wire 98 -71,6,99 ! Plane V', wire 99 -72,6,100 ! Plane V', wire 100 -73,6,101 ! Plane V', wire 101 -74,6,102 ! Plane V', wire 102 -75,6,103 ! Plane V', wire 103 -76,6,104 ! Plane V', wire 104 -77,6,105 ! Plane V', wire 105 -SLOT=10 -75,6,106 ! Plane V', wire 106 +REFCHAN=79 + 64, 6, 93 ! DC1, Plane V', wire 93 + 65, 6, 94 ! DC1, Plane V', wire 94 + 66, 6, 95 ! DC1, Plane V', wire 95 + 67, 6, 96 ! DC1, Plane V', wire 96 + 68, 6, 97 ! DC1, Plane V', wire 97 + 69, 6, 98 ! DC1, Plane V', wire 98 + 70, 6, 99 ! DC1, Plane V', wire 99 + 71, 6, 100 ! DC1, Plane V', wire 100 + 72, 6, 101 ! DC1, Plane V', wire 101 + 73, 6, 102 ! DC1, Plane V', wire 102 + 74, 6, 103 ! DC1, Plane V', wire 103 + 75, 6, 104 ! DC1, Plane V', wire 104 + 76, 6, 105 ! DC1, Plane V', wire 105 + 77, 6, 106 ! DC1, Plane V', wire 106 + 78, 6, 107 ! DC1, Plane V', wire 107 + SLOT=8 -14,3,1 ! Plane X, wire 1 -13,3,2 ! Plane X, wire 2 -12,3,3 ! Plane X, wire 3 -11,3,4 ! Plane X, wire 4 -10,3,5 ! Plane X, wire 5 -9,3,6 ! Plane X, wire 6 -8,3,7 ! Plane X, wire 7 -7,3,8 ! Plane X, wire 8 -6,3,9 ! Plane X, wire 9 -5,3,10 ! Plane X, wire 10 -4,3,11 ! Plane X, wire 11 -3,3,12 ! Plane X, wire 12 -2,3,13 ! Plane X, wire 13 -1,3,14 ! Plane X, wire 14 -0,3,15 ! Plane X, wire 15 +REFCHAN=79 + 15, 3, 1 ! DC1, Plane X, wire 1 + 14, 3, 2 ! DC1, Plane X, wire 2 + 13, 3, 3 ! DC1, Plane X, wire 3 + 12, 3, 4 ! DC1, Plane X, wire 4 + 11, 3, 5 ! DC1, Plane X, wire 5 + 10, 3, 6 ! DC1, Plane X, wire 6 + 9, 3, 7 ! DC1, Plane X, wire 7 + 8, 3, 8 ! DC1, Plane X, wire 8 + 7, 3, 9 ! DC1, Plane X, wire 9 + 6, 3, 10 ! DC1, Plane X, wire 10 + 5, 3, 11 ! DC1, Plane X, wire 11 + 4, 3, 12 ! DC1, Plane X, wire 12 + 3, 3, 13 ! DC1, Plane X, wire 13 + 2, 3, 14 ! DC1, Plane X, wire 14 + 1, 3, 15 ! DC1, Plane X, wire 15 + 0, 3, 16 ! DC1, Plane X, wire 16 + SLOT=7 -63,3,16 ! Plane X, wire 16 -62,3,17 ! Plane X, wire 17 -61,3,18 ! Plane X, wire 18 -60,3,19 ! Plane X, wire 19 -59,3,20 ! Plane X, wire 20 -58,3,21 ! Plane X, wire 21 -57,3,22 ! Plane X, wire 22 -56,3,23 ! Plane X, wire 23 -55,3,24 ! Plane X, wire 24 -54,3,25 ! Plane X, wire 25 -53,3,26 ! Plane X, wire 26 -52,3,27 ! Plane X, wire 27 -51,3,28 ! Plane X, wire 28 -50,3,29 ! Plane X, wire 29 -49,3,30 ! Plane X, wire 30 -48,3,31 ! Plane X, wire 31 +REFCHAN=79 + 63, 3, 17 ! DC1, Plane X, wire 17 + 62, 3, 18 ! DC1, Plane X, wire 18 + 61, 3, 19 ! DC1, Plane X, wire 19 + 60, 3, 20 ! DC1, Plane X, wire 20 + 59, 3, 21 ! DC1, Plane X, wire 21 + 58, 3, 22 ! DC1, Plane X, wire 22 + 57, 3, 23 ! DC1, Plane X, wire 23 + 56, 3, 24 ! DC1, Plane X, wire 24 + 55, 3, 25 ! DC1, Plane X, wire 25 + 54, 3, 26 ! DC1, Plane X, wire 26 + 53, 3, 27 ! DC1, Plane X, wire 27 + 52, 3, 28 ! DC1, Plane X, wire 28 + 51, 3, 29 ! DC1, Plane X, wire 29 + 50, 3, 30 ! DC1, Plane X, wire 30 + 49, 3, 31 ! DC1, Plane X, wire 31 + 48, 3, 32 ! DC1, Plane X, wire 32 + SLOT=6 -63,3,32 ! Plane X, wire 32 -62,3,33 ! Plane X, wire 33 -61,3,34 ! Plane X, wire 34 -60,3,35 ! Plane X, wire 35 -59,3,36 ! Plane X, wire 36 -58,3,37 ! Plane X, wire 37 -57,3,38 ! Plane X, wire 38 -56,3,39 ! Plane X, wire 39 -55,3,40 ! Plane X, wire 40 -54,3,41 ! Plane X, wire 41 -53,3,42 ! Plane X, wire 42 -52,3,43 ! Plane X, wire 43 -51,3,44 ! Plane X, wire 44 -50,3,45 ! Plane X, wire 45 -49,3,46 ! Plane X, wire 46 -SLOT=8 -15,3,47 ! Plane X, wire 47 +REFCHAN=79 + 63, 3, 33 ! DC1, Plane X, wire 33 + 62, 3, 34 ! DC1, Plane X, wire 34 + 61, 3, 35 ! DC1, Plane X, wire 35 + 60, 3, 36 ! DC1, Plane X, wire 36 + 59, 3, 37 ! DC1, Plane X, wire 37 + 58, 3, 38 ! DC1, Plane X, wire 38 + 57, 3, 39 ! DC1, Plane X, wire 39 + 56, 3, 40 ! DC1, Plane X, wire 40 + 55, 3, 41 ! DC1, Plane X, wire 41 + 54, 3, 42 ! DC1, Plane X, wire 42 + 53, 3, 43 ! DC1, Plane X, wire 43 + 52, 3, 44 ! DC1, Plane X, wire 44 + 51, 3, 45 ! DC1, Plane X, wire 45 + 50, 3, 46 ! DC1, Plane X, wire 46 + 49, 3, 47 ! DC1, Plane X, wire 47 + 48, 3, 48 ! DC1, Plane X, wire 48 + SLOT=10 -48,3,48 ! Plane X, wire 48 -49,3,49 ! Plane X, wire 49 -50,3,50 ! Plane X, wire 50 -51,3,51 ! Plane X, wire 51 -52,3,52 ! Plane X, wire 52 -53,3,53 ! Plane X, wire 53 -54,3,54 ! Plane X, wire 54 -55,3,55 ! Plane X, wire 55 -56,3,56 ! Plane X, wire 56 -57,3,57 ! Plane X, wire 57 -58,3,58 ! Plane X, wire 58 -59,3,59 ! Plane X, wire 59 -60,3,60 ! Plane X, wire 60 -61,3,61 ! Plane X, wire 61 -62,3,62 ! Plane X, wire 62 -63,3,63 ! Plane X, wire 63 +REFCHAN=79 + 48, 3, 49 ! DC1, Plane X, wire 49 + 49, 3, 50 ! DC1, Plane X, wire 50 + 50, 3, 51 ! DC1, Plane X, wire 51 + 51, 3, 52 ! DC1, Plane X, wire 52 + 52, 3, 53 ! DC1, Plane X, wire 53 + 53, 3, 54 ! DC1, Plane X, wire 54 + 54, 3, 55 ! DC1, Plane X, wire 55 + 55, 3, 56 ! DC1, Plane X, wire 56 + 56, 3, 57 ! DC1, Plane X, wire 57 + 57, 3, 58 ! DC1, Plane X, wire 58 + 58, 3, 59 ! DC1, Plane X, wire 59 + 59, 3, 60 ! DC1, Plane X, wire 60 + 60, 3, 61 ! DC1, Plane X, wire 61 + 61, 3, 62 ! DC1, Plane X, wire 62 + 62, 3, 63 ! DC1, Plane X, wire 63 + 63, 3, 64 ! DC1, Plane X, wire 64 + SLOT=9 -80,3,64 ! Plane X, wire 64 -81,3,65 ! Plane X, wire 65 -82,3,66 ! Plane X, wire 66 -83,3,67 ! Plane X, wire 67 -84,3,68 ! Plane X, wire 68 -85,3,69 ! Plane X, wire 69 -86,3,70 ! Plane X, wire 70 -87,3,71 ! Plane X, wire 71 -88,3,72 ! Plane X, wire 72 -89,3,73 ! Plane X, wire 73 -90,3,74 ! Plane X, wire 74 -91,3,75 ! Plane X, wire 75 -92,3,76 ! Plane X, wire 76 -93,3,77 ! Plane X, wire 77 -94,3,78 ! Plane X, wire 78 -29,4,1 ! Plane X', wire 1 -28,4,2 ! Plane X', wire 2 -27,4,3 ! Plane X', wire 3 -26,4,4 ! Plane X', wire 4 -25,4,5 ! Plane X', wire 5 -24,4,6 ! Plane X', wire 6 -23,4,7 ! Plane X', wire 7 -22,4,8 ! Plane X', wire 8 -21,4,9 ! Plane X', wire 9 -20,4,10 ! Plane X', wire 10 -19,4,11 ! Plane X', wire 11 -18,4,12 ! Plane X', wire 12 -17,4,13 ! Plane X', wire 13 -16,4,14 ! Plane X', wire 14 +REFCHAN=79 + 80, 3, 65 ! DC1, Plane X, wire 65 + 81, 3, 66 ! DC1, Plane X, wire 66 + 82, 3, 67 ! DC1, Plane X, wire 67 + 83, 3, 68 ! DC1, Plane X, wire 68 + 84, 3, 69 ! DC1, Plane X, wire 69 + 85, 3, 70 ! DC1, Plane X, wire 70 + 86, 3, 71 ! DC1, Plane X, wire 71 + 87, 3, 72 ! DC1, Plane X, wire 72 + 88, 3, 73 ! DC1, Plane X, wire 73 + 89, 3, 74 ! DC1, Plane X, wire 74 + 90, 3, 75 ! DC1, Plane X, wire 75 + 91, 3, 76 ! DC1, Plane X, wire 76 + 92, 3, 77 ! DC1, Plane X, wire 77 + 93, 3, 78 ! DC1, Plane X, wire 78 + 94, 3, 79 ! DC1, Plane X, wire 79 + 30, 4, 1 ! DC1, Plane X', wire 1 + 29, 4, 2 ! DC1, Plane X', wire 2 + 28, 4, 3 ! DC1, Plane X', wire 3 + 27, 4, 4 ! DC1, Plane X', wire 4 + 26, 4, 5 ! DC1, Plane X', wire 5 + 25, 4, 6 ! DC1, Plane X', wire 6 + 24, 4, 7 ! DC1, Plane X', wire 7 + 23, 4, 8 ! DC1, Plane X', wire 8 + 22, 4, 9 ! DC1, Plane X', wire 9 + 21, 4, 10 ! DC1, Plane X', wire 10 + 20, 4, 11 ! DC1, Plane X', wire 11 + 19, 4, 12 ! DC1, Plane X', wire 12 + 18, 4, 13 ! DC1, Plane X', wire 13 + 17, 4, 14 ! DC1, Plane X', wire 14 + 16, 4, 15 ! DC1, Plane X', wire 15 + SLOT=8 -47,4,15 ! Plane X', wire 15 -46,4,16 ! Plane X', wire 16 -45,4,17 ! Plane X', wire 17 -44,4,18 ! Plane X', wire 18 -43,4,19 ! Plane X', wire 19 -42,4,20 ! Plane X', wire 20 -41,4,21 ! Plane X', wire 21 -40,4,22 ! Plane X', wire 22 -39,4,23 ! Plane X', wire 23 -38,4,24 ! Plane X', wire 24 -37,4,25 ! Plane X', wire 25 -36,4,26 ! Plane X', wire 26 -35,4,27 ! Plane X', wire 27 -34,4,28 ! Plane X', wire 28 -33,4,29 ! Plane X', wire 29 -32,4,30 ! Plane X', wire 30 +REFCHAN=79 + 47, 4, 16 ! DC1, Plane X', wire 16 + 46, 4, 17 ! DC1, Plane X', wire 17 + 45, 4, 18 ! DC1, Plane X', wire 18 + 44, 4, 19 ! DC1, Plane X', wire 19 + 43, 4, 20 ! DC1, Plane X', wire 20 + 42, 4, 21 ! DC1, Plane X', wire 21 + 41, 4, 22 ! DC1, Plane X', wire 22 + 40, 4, 23 ! DC1, Plane X', wire 23 + 39, 4, 24 ! DC1, Plane X', wire 24 + 38, 4, 25 ! DC1, Plane X', wire 25 + 37, 4, 26 ! DC1, Plane X', wire 26 + 36, 4, 27 ! DC1, Plane X', wire 27 + 35, 4, 28 ! DC1, Plane X', wire 28 + 34, 4, 29 ! DC1, Plane X', wire 29 + 33, 4, 30 ! DC1, Plane X', wire 30 + 32, 4, 31 ! DC1, Plane X', wire 31 + SLOT=7 -0,4,31 ! Plane X', wire 31 -1,4,32 ! Plane X', wire 32 -2,4,33 ! Plane X', wire 33 -3,4,34 ! Plane X', wire 34 -4,4,35 ! Plane X', wire 35 -5,4,36 ! Plane X', wire 36 -6,4,37 ! Plane X', wire 37 -7,4,38 ! Plane X', wire 38 -8,4,39 ! Plane X', wire 39 -9,4,40 ! Plane X', wire 40 -10,4,41 ! Plane X', wire 41 -11,4,42 ! Plane X', wire 42 -12,4,43 ! Plane X', wire 43 -13,4,44 ! Plane X', wire 44 -14,4,45 ! Plane X', wire 45 -15,4,46 ! Plane X', wire 46 -SLOT=6 -96,4,47 ! Plane X', wire 47 -97,4,48 ! Plane X', wire 48 -98,4,49 ! Plane X', wire 49 -99,4,50 ! Plane X', wire 50 -100,4,51 ! Plane X', wire 51 -101,4,52 ! Plane X', wire 52 -102,4,53 ! Plane X', wire 53 -103,4,54 ! Plane X', wire 54 -104,4,55 ! Plane X', wire 55 -105,4,56 ! Plane X', wire 56 -106,4,57 ! Plane X', wire 57 -107,4,58 ! Plane X', wire 58 -108,4,59 ! Plane X', wire 59 -109,4,60 ! Plane X', wire 60 -110,4,61 ! Plane X', wire 61 -111,4,62 ! Plane X', wire 62 -0,4,63 ! Plane X', wire 63 -1,4,64 ! Plane X', wire 64 -2,4,65 ! Plane X', wire 65 -3,4,66 ! Plane X', wire 66 -4,4,67 ! Plane X', wire 67 -5,4,68 ! Plane X', wire 68 -6,4,69 ! Plane X', wire 69 -7,4,70 ! Plane X', wire 70 -8,4,71 ! Plane X', wire 71 -9,4,72 ! Plane X', wire 72 -10,4,73 ! Plane X', wire 73 -11,4,74 ! Plane X', wire 74 -12,4,75 ! Plane X', wire 75 -13,4,76 ! Plane X', wire 76 -14,4,77 ! Plane X', wire 77 -SLOT=9 -30,4,78 ! Plane X', wire 78 +REFCHAN=79 + 0, 4, 32 ! DC1, Plane X', wire 32 + 1, 4, 33 ! DC1, Plane X', wire 33 + 2, 4, 34 ! DC1, Plane X', wire 34 + 3, 4, 35 ! DC1, Plane X', wire 35 + 4, 4, 36 ! DC1, Plane X', wire 36 + 5, 4, 37 ! DC1, Plane X', wire 37 + 6, 4, 38 ! DC1, Plane X', wire 38 + 7, 4, 39 ! DC1, Plane X', wire 39 + 8, 4, 40 ! DC1, Plane X', wire 40 + 9, 4, 41 ! DC1, Plane X', wire 41 + 10, 4, 42 ! DC1, Plane X', wire 42 + 11, 4, 43 ! DC1, Plane X', wire 43 + 12, 4, 44 ! DC1, Plane X', wire 44 + 13, 4, 45 ! DC1, Plane X', wire 45 + 14, 4, 46 ! DC1, Plane X', wire 46 + 15, 4, 47 ! DC1, Plane X', wire 47 +SLOT=6 +REFCHAN=79 + 96, 4, 48 ! DC1, Plane X', wire 48 + 97, 4, 49 ! DC1, Plane X', wire 49 + 98, 4, 50 ! DC1, Plane X', wire 50 + 99, 4, 51 ! DC1, Plane X', wire 51 + 100, 4, 52 ! DC1, Plane X', wire 52 + 101, 4, 53 ! DC1, Plane X', wire 53 + 102, 4, 54 ! DC1, Plane X', wire 54 + 103, 4, 55 ! DC1, Plane X', wire 55 + 104, 4, 56 ! DC1, Plane X', wire 56 + 105, 4, 57 ! DC1, Plane X', wire 57 + 106, 4, 58 ! DC1, Plane X', wire 58 + 107, 4, 59 ! DC1, Plane X', wire 59 + 108, 4, 60 ! DC1, Plane X', wire 60 + 109, 4, 61 ! DC1, Plane X', wire 61 + 110, 4, 62 ! DC1, Plane X', wire 62 + 111, 4, 63 ! DC1, Plane X', wire 63 + 0, 4, 64 ! DC1, Plane X', wire 64 + 1, 4, 65 ! DC1, Plane X', wire 65 + 2, 4, 66 ! DC1, Plane X', wire 66 + 3, 4, 67 ! DC1, Plane X', wire 67 + 4, 4, 68 ! DC1, Plane X', wire 68 + 5, 4, 69 ! DC1, Plane X', wire 69 + 6, 4, 70 ! DC1, Plane X', wire 70 + 7, 4, 71 ! DC1, Plane X', wire 71 + 8, 4, 72 ! DC1, Plane X', wire 72 + 9, 4, 73 ! DC1, Plane X', wire 73 + 10, 4, 74 ! DC1, Plane X', wire 74 + 11, 4, 75 ! DC1, Plane X', wire 75 + 12, 4, 76 ! DC1, Plane X', wire 76 + 13, 4, 77 ! DC1, Plane X', wire 77 + 14, 4, 78 ! DC1, Plane X', wire 78 + 15, 4, 79 ! DC1, Plane X', wire 79 -! Caen 1190 VME Modules >> DC2 SLOT=14 -45,12,1 ! Plane U, wire 1 -44,12,2 ! Plane U, wire 2 -43,12,3 ! Plane U, wire 3 -42,12,4 ! Plane U, wire 4 -41,12,5 ! Plane U, wire 5 -40,12,6 ! Plane U, wire 6 -39,12,7 ! Plane U, wire 7 -38,12,8 ! Plane U, wire 8 -37,12,9 ! Plane U, wire 9 -36,12,10 ! Plane U, wire 10 -35,12,11 ! Plane U, wire 11 -34,12,12 ! Plane U, wire 12 -33,12,13 ! Plane U, wire 13 -32,12,14 ! Plane U, wire 14 +REFCHAN=15 + 46, 12, 1 ! DC2, Plane U, wire 1 + 45, 12, 2 ! DC2, Plane U, wire 2 + 44, 12, 3 ! DC2, Plane U, wire 3 + 43, 12, 4 ! DC2, Plane U, wire 4 + 42, 12, 5 ! DC2, Plane U, wire 5 + 41, 12, 6 ! DC2, Plane U, wire 6 + 40, 12, 7 ! DC2, Plane U, wire 7 + 39, 12, 8 ! DC2, Plane U, wire 8 + 38, 12, 9 ! DC2, Plane U, wire 9 + 37, 12, 10 ! DC2, Plane U, wire 10 + 36, 12, 11 ! DC2, Plane U, wire 11 + 35, 12, 12 ! DC2, Plane U, wire 12 + 34, 12, 13 ! DC2, Plane U, wire 13 + 33, 12, 14 ! DC2, Plane U, wire 14 + 32, 12, 15 ! DC2, Plane U, wire 15 + SLOT=11 -127,12,15 ! Plane U, wire 15 -126,12,16 ! Plane U, wire 16 -125,12,17 ! Plane U, wire 17 -124,12,18 ! Plane U, wire 18 -123,12,19 ! Plane U, wire 19 -122,12,20 ! Plane U, wire 20 -121,12,21 ! Plane U, wire 21 -120,12,22 ! Plane U, wire 22 -119,12,23 ! Plane U, wire 23 -118,12,24 ! Plane U, wire 24 -117,12,25 ! Plane U, wire 25 -116,12,26 ! Plane U, wire 26 -115,12,27 ! Plane U, wire 27 -114,12,28 ! Plane U, wire 28 -113,12,29 ! Plane U, wire 29 -112,12,30 ! Plane U, wire 30 -63,12,31 ! Plane U, wire 31 -62,12,32 ! Plane U, wire 32 -61,12,33 ! Plane U, wire 33 -60,12,34 ! Plane U, wire 34 -59,12,35 ! Plane U, wire 35 -58,12,36 ! Plane U, wire 36 -57,12,37 ! Plane U, wire 37 -56,12,38 ! Plane U, wire 38 -55,12,39 ! Plane U, wire 39 -54,12,40 ! Plane U, wire 40 -53,12,41 ! Plane U, wire 41 -52,12,42 ! Plane U, wire 42 -51,12,43 ! Plane U, wire 43 -50,12,44 ! Plane U, wire 44 -49,12,45 ! Plane U, wire 45 -48,12,46 ! Plane U, wire 46 +REFCHAN=47 + 127, 12, 16 ! DC2, Plane U, wire 16 + 126, 12, 17 ! DC2, Plane U, wire 17 + 125, 12, 18 ! DC2, Plane U, wire 18 + 124, 12, 19 ! DC2, Plane U, wire 19 + 123, 12, 20 ! DC2, Plane U, wire 20 + 122, 12, 21 ! DC2, Plane U, wire 21 + 121, 12, 22 ! DC2, Plane U, wire 22 + 120, 12, 23 ! DC2, Plane U, wire 23 + 119, 12, 24 ! DC2, Plane U, wire 24 + 118, 12, 25 ! DC2, Plane U, wire 25 + 117, 12, 26 ! DC2, Plane U, wire 26 + 116, 12, 27 ! DC2, Plane U, wire 27 + 115, 12, 28 ! DC2, Plane U, wire 28 + 114, 12, 29 ! DC2, Plane U, wire 29 + 113, 12, 30 ! DC2, Plane U, wire 30 + 112, 12, 31 ! DC2, Plane U, wire 31 + 63, 12, 32 ! DC2, Plane U, wire 32 + 62, 12, 33 ! DC2, Plane U, wire 33 + 61, 12, 34 ! DC2, Plane U, wire 34 + 60, 12, 35 ! DC2, Plane U, wire 35 + 59, 12, 36 ! DC2, Plane U, wire 36 + 58, 12, 37 ! DC2, Plane U, wire 37 + 57, 12, 38 ! DC2, Plane U, wire 38 + 56, 12, 39 ! DC2, Plane U, wire 39 + 55, 12, 40 ! DC2, Plane U, wire 40 + 54, 12, 41 ! DC2, Plane U, wire 41 + 53, 12, 42 ! DC2, Plane U, wire 42 + 52, 12, 43 ! DC2, Plane U, wire 43 + 51, 12, 44 ! DC2, Plane U, wire 44 + 50, 12, 45 ! DC2, Plane U, wire 45 + 49, 12, 46 ! DC2, Plane U, wire 46 + 48, 12, 47 ! DC2, Plane U, wire 47 + SLOT=10 -127,12,47 ! Plane U, wire 47 -126,12,48 ! Plane U, wire 48 -125,12,49 ! Plane U, wire 49 -124,12,50 ! Plane U, wire 50 -123,12,51 ! Plane U, wire 51 -122,12,52 ! Plane U, wire 52 -121,12,53 ! Plane U, wire 53 -120,12,54 ! Plane U, wire 54 -119,12,55 ! Plane U, wire 55 -118,12,56 ! Plane U, wire 56 -117,12,57 ! Plane U, wire 57 -116,12,58 ! Plane U, wire 58 -115,12,59 ! Plane U, wire 59 -114,12,60 ! Plane U, wire 60 -113,12,61 ! Plane U, wire 61 -112,12,62 ! Plane U, wire 62 +REFCHAN=79 + 127, 12, 48 ! DC2, Plane U, wire 48 + 126, 12, 49 ! DC2, Plane U, wire 49 + 125, 12, 50 ! DC2, Plane U, wire 50 + 124, 12, 51 ! DC2, Plane U, wire 51 + 123, 12, 52 ! DC2, Plane U, wire 52 + 122, 12, 53 ! DC2, Plane U, wire 53 + 121, 12, 54 ! DC2, Plane U, wire 54 + 120, 12, 55 ! DC2, Plane U, wire 55 + 119, 12, 56 ! DC2, Plane U, wire 56 + 118, 12, 57 ! DC2, Plane U, wire 57 + 117, 12, 58 ! DC2, Plane U, wire 58 + 116, 12, 59 ! DC2, Plane U, wire 59 + 115, 12, 60 ! DC2, Plane U, wire 60 + 114, 12, 61 ! DC2, Plane U, wire 61 + 113, 12, 62 ! DC2, Plane U, wire 62 + 112, 12, 63 ! DC2, Plane U, wire 63 + SLOT=13 -80,12,63 ! Plane U, wire 63 -81,12,64 ! Plane U, wire 64 -82,12,65 ! Plane U, wire 65 -83,12,66 ! Plane U, wire 66 -84,12,67 ! Plane U, wire 67 -85,12,68 ! Plane U, wire 68 -86,12,69 ! Plane U, wire 69 -87,12,70 ! Plane U, wire 70 -88,12,71 ! Plane U, wire 71 -89,12,72 ! Plane U, wire 72 -90,12,73 ! Plane U, wire 73 -91,12,74 ! Plane U, wire 74 -92,12,75 ! Plane U, wire 75 -93,12,76 ! Plane U, wire 76 -94,12,77 ! Plane U, wire 77 -95,12,78 ! Plane U, wire 78 -16,12,79 ! Plane U, wire 79 -17,12,80 ! Plane U, wire 80 -18,12,81 ! Plane U, wire 81 -19,12,82 ! Plane U, wire 82 -20,12,83 ! Plane U, wire 83 -21,12,84 ! Plane U, wire 84 -22,12,85 ! Plane U, wire 85 -23,12,86 ! Plane U, wire 86 -24,12,87 ! Plane U, wire 87 -25,12,88 ! Plane U, wire 88 -26,12,89 ! Plane U, wire 89 -27,12,90 ! Plane U, wire 90 -28,12,91 ! Plane U, wire 91 -29,12,92 ! Plane U, wire 92 -30,12,93 ! Plane U, wire 93 +REFCHAN=47 + 80, 12, 64 ! DC2, Plane U, wire 64 + 81, 12, 65 ! DC2, Plane U, wire 65 + 82, 12, 66 ! DC2, Plane U, wire 66 + 83, 12, 67 ! DC2, Plane U, wire 67 + 84, 12, 68 ! DC2, Plane U, wire 68 + 85, 12, 69 ! DC2, Plane U, wire 69 + 86, 12, 70 ! DC2, Plane U, wire 70 + 87, 12, 71 ! DC2, Plane U, wire 71 + 88, 12, 72 ! DC2, Plane U, wire 72 + 89, 12, 73 ! DC2, Plane U, wire 73 + 90, 12, 74 ! DC2, Plane U, wire 74 + 91, 12, 75 ! DC2, Plane U, wire 75 + 92, 12, 76 ! DC2, Plane U, wire 76 + 93, 12, 77 ! DC2, Plane U, wire 77 + 94, 12, 78 ! DC2, Plane U, wire 78 + 95, 12, 79 ! DC2, Plane U, wire 79 + 16, 12, 80 ! DC2, Plane U, wire 80 + 17, 12, 81 ! DC2, Plane U, wire 81 + 18, 12, 82 ! DC2, Plane U, wire 82 + 19, 12, 83 ! DC2, Plane U, wire 83 + 20, 12, 84 ! DC2, Plane U, wire 84 + 21, 12, 85 ! DC2, Plane U, wire 85 + 22, 12, 86 ! DC2, Plane U, wire 86 + 23, 12, 87 ! DC2, Plane U, wire 87 + 24, 12, 88 ! DC2, Plane U, wire 88 + 25, 12, 89 ! DC2, Plane U, wire 89 + 26, 12, 90 ! DC2, Plane U, wire 90 + 27, 12, 91 ! DC2, Plane U, wire 91 + 28, 12, 92 ! DC2, Plane U, wire 92 + 29, 12, 93 ! DC2, Plane U, wire 93 + 30, 12, 94 ! DC2, Plane U, wire 94 + 31, 12, 95 ! DC2, Plane U, wire 95 + SLOT=14 -46,12,94 ! Plane U, wire 94 -80,12,95 ! Plane U, wire 95 -81,12,96 ! Plane U, wire 96 -82,12,97 ! Plane U, wire 97 -83,12,98 ! Plane U, wire 98 -84,12,99 ! Plane U, wire 99 -85,12,100 ! Plane U, wire 100 -86,12,101 ! Plane U, wire 101 -87,12,102 ! Plane U, wire 102 -88,12,103 ! Plane U, wire 103 -89,12,104 ! Plane U, wire 104 -90,12,105 ! Plane U, wire 105 -91,12,106 ! Plane U, wire 106 +REFCHAN=15 + 80, 12, 96 ! DC2, Plane U, wire 96 + 81, 12, 97 ! DC2, Plane U, wire 97 + 82, 12, 98 ! DC2, Plane U, wire 98 + 83, 12, 99 ! DC2, Plane U, wire 99 + 84, 12, 100 ! DC2, Plane U, wire 100 + 85, 12, 101 ! DC2, Plane U, wire 101 + 86, 12, 102 ! DC2, Plane U, wire 102 + 87, 12, 103 ! DC2, Plane U, wire 103 + 88, 12, 104 ! DC2, Plane U, wire 104 + 89, 12, 105 ! DC2, Plane U, wire 105 + 90, 12, 106 ! DC2, Plane U, wire 106 + 91, 12, 107 ! DC2, Plane U, wire 107 + SLOT=13 -42,11,1 ! Plane U', wire 1 -41,11,2 ! Plane U', wire 2 -40,11,3 ! Plane U', wire 3 -39,11,4 ! Plane U', wire 4 -38,11,5 ! Plane U', wire 5 -37,11,6 ! Plane U', wire 6 -36,11,7 ! Plane U', wire 7 -35,11,8 ! Plane U', wire 8 -34,11,9 ! Plane U', wire 9 -33,11,10 ! Plane U', wire 10 -32,11,11 ! Plane U', wire 11 +REFCHAN=47 + 43, 11, 1 ! DC2, Plane U', wire 1 + 42, 11, 2 ! DC2, Plane U', wire 2 + 41, 11, 3 ! DC2, Plane U', wire 3 + 40, 11, 4 ! DC2, Plane U', wire 4 + 39, 11, 5 ! DC2, Plane U', wire 5 + 38, 11, 6 ! DC2, Plane U', wire 6 + 37, 11, 7 ! DC2, Plane U', wire 7 + 36, 11, 8 ! DC2, Plane U', wire 8 + 35, 11, 9 ! DC2, Plane U', wire 9 + 34, 11, 10 ! DC2, Plane U', wire 10 + 33, 11, 11 ! DC2, Plane U', wire 11 + 32, 11, 12 ! DC2, Plane U', wire 12 + SLOT=11 -95,11,12 ! Plane U', wire 12 -94,11,13 ! Plane U', wire 13 -93,11,14 ! Plane U', wire 14 -92,11,15 ! Plane U', wire 15 -91,11,16 ! Plane U', wire 16 -90,11,17 ! Plane U', wire 17 -89,11,18 ! Plane U', wire 18 -88,11,19 ! Plane U', wire 19 -87,11,20 ! Plane U', wire 20 -86,11,21 ! Plane U', wire 21 -85,11,22 ! Plane U', wire 22 -84,11,23 ! Plane U', wire 23 -83,11,24 ! Plane U', wire 24 -82,11,25 ! Plane U', wire 25 -81,11,26 ! Plane U', wire 26 -80,11,27 ! Plane U', wire 27 -15,11,28 ! Plane U', wire 28 -14,11,29 ! Plane U', wire 29 -13,11,30 ! Plane U', wire 30 -12,11,31 ! Plane U', wire 31 -11,11,32 ! Plane U', wire 32 -10,11,33 ! Plane U', wire 33 -9,11,34 ! Plane U', wire 34 -8,11,35 ! Plane U', wire 35 -7,11,36 ! Plane U', wire 36 -6,11,37 ! Plane U', wire 37 -5,11,38 ! Plane U', wire 38 -4,11,39 ! Plane U', wire 39 -3,11,40 ! Plane U', wire 40 -2,11,41 ! Plane U', wire 41 -1,11,42 ! Plane U', wire 42 +REFCHAN=47 + 95, 11, 13 ! DC2, Plane U', wire 13 + 94, 11, 14 ! DC2, Plane U', wire 14 + 93, 11, 15 ! DC2, Plane U', wire 15 + 92, 11, 16 ! DC2, Plane U', wire 16 + 91, 11, 17 ! DC2, Plane U', wire 17 + 90, 11, 18 ! DC2, Plane U', wire 18 + 89, 11, 19 ! DC2, Plane U', wire 19 + 88, 11, 20 ! DC2, Plane U', wire 20 + 87, 11, 21 ! DC2, Plane U', wire 21 + 86, 11, 22 ! DC2, Plane U', wire 22 + 85, 11, 23 ! DC2, Plane U', wire 23 + 84, 11, 24 ! DC2, Plane U', wire 24 + 83, 11, 25 ! DC2, Plane U', wire 25 + 82, 11, 26 ! DC2, Plane U', wire 26 + 81, 11, 27 ! DC2, Plane U', wire 27 + 80, 11, 28 ! DC2, Plane U', wire 28 + 15, 11, 29 ! DC2, Plane U', wire 29 + 14, 11, 30 ! DC2, Plane U', wire 30 + 13, 11, 31 ! DC2, Plane U', wire 31 + 12, 11, 32 ! DC2, Plane U', wire 32 + 11, 11, 33 ! DC2, Plane U', wire 33 + 10, 11, 34 ! DC2, Plane U', wire 34 + 9, 11, 35 ! DC2, Plane U', wire 35 + 8, 11, 36 ! DC2, Plane U', wire 36 + 7, 11, 37 ! DC2, Plane U', wire 37 + 6, 11, 38 ! DC2, Plane U', wire 38 + 5, 11, 39 ! DC2, Plane U', wire 39 + 4, 11, 40 ! DC2, Plane U', wire 40 + 3, 11, 41 ! DC2, Plane U', wire 41 + 2, 11, 42 ! DC2, Plane U', wire 42 + 1, 11, 43 ! DC2, Plane U', wire 43 + 0, 11, 44 ! DC2, Plane U', wire 44 + SLOT=13 -43,11,43 ! Plane U', wire 43 -96,11,44 ! Plane U', wire 44 -97,11,45 ! Plane U', wire 45 -98,11,46 ! Plane U', wire 46 -99,11,47 ! Plane U', wire 47 -100,11,48 ! Plane U', wire 48 -101,11,49 ! Plane U', wire 49 -102,11,50 ! Plane U', wire 50 -103,11,51 ! Plane U', wire 51 -104,11,52 ! Plane U', wire 52 -105,11,53 ! Plane U', wire 53 -106,11,54 ! Plane U', wire 54 -107,11,55 ! Plane U', wire 55 -108,11,56 ! Plane U', wire 56 -109,11,57 ! Plane U', wire 57 -110,11,58 ! Plane U', wire 58 -111,11,59 ! Plane U', wire 59 -64,11,60 ! Plane U', wire 60 -65,11,61 ! Plane U', wire 61 -66,11,62 ! Plane U', wire 62 -67,11,63 ! Plane U', wire 63 -68,11,64 ! Plane U', wire 64 -69,11,65 ! Plane U', wire 65 -70,11,66 ! Plane U', wire 66 -71,11,67 ! Plane U', wire 67 -72,11,68 ! Plane U', wire 68 -73,11,69 ! Plane U', wire 69 -74,11,70 ! Plane U', wire 70 -75,11,71 ! Plane U', wire 71 -76,11,72 ! Plane U', wire 72 -77,11,73 ! Plane U', wire 73 -78,11,74 ! Plane U', wire 74 -79,11,75 ! Plane U', wire 75 +REFCHAN=47 + 96, 11, 45 ! DC2, Plane U', wire 45 + 97, 11, 46 ! DC2, Plane U', wire 46 + 98, 11, 47 ! DC2, Plane U', wire 47 + 99, 11, 48 ! DC2, Plane U', wire 48 + 100, 11, 49 ! DC2, Plane U', wire 49 + 101, 11, 50 ! DC2, Plane U', wire 50 + 102, 11, 51 ! DC2, Plane U', wire 51 + 103, 11, 52 ! DC2, Plane U', wire 52 + 104, 11, 53 ! DC2, Plane U', wire 53 + 105, 11, 54 ! DC2, Plane U', wire 54 + 106, 11, 55 ! DC2, Plane U', wire 55 + 107, 11, 56 ! DC2, Plane U', wire 56 + 108, 11, 57 ! DC2, Plane U', wire 57 + 109, 11, 58 ! DC2, Plane U', wire 58 + 110, 11, 59 ! DC2, Plane U', wire 59 + 111, 11, 60 ! DC2, Plane U', wire 60 + 64, 11, 61 ! DC2, Plane U', wire 61 + 65, 11, 62 ! DC2, Plane U', wire 62 + 66, 11, 63 ! DC2, Plane U', wire 63 + 67, 11, 64 ! DC2, Plane U', wire 64 + 68, 11, 65 ! DC2, Plane U', wire 65 + 69, 11, 66 ! DC2, Plane U', wire 66 + 70, 11, 67 ! DC2, Plane U', wire 67 + 71, 11, 68 ! DC2, Plane U', wire 68 + 72, 11, 69 ! DC2, Plane U', wire 69 + 73, 11, 70 ! DC2, Plane U', wire 70 + 74, 11, 71 ! DC2, Plane U', wire 71 + 75, 11, 72 ! DC2, Plane U', wire 72 + 76, 11, 73 ! DC2, Plane U', wire 73 + 77, 11, 74 ! DC2, Plane U', wire 74 + 78, 11, 75 ! DC2, Plane U', wire 75 + 79, 11, 76 ! DC2, Plane U', wire 76 + SLOT=15 -48,11,76 ! Plane U', wire 76 -49,11,77 ! Plane U', wire 77 -50,11,78 ! Plane U', wire 78 -51,11,79 ! Plane U', wire 79 -52,11,80 ! Plane U', wire 80 -53,11,81 ! Plane U', wire 81 -54,11,82 ! Plane U', wire 82 -55,11,83 ! Plane U', wire 83 -56,11,84 ! Plane U', wire 84 -57,11,85 ! Plane U', wire 85 -58,11,86 ! Plane U', wire 86 -59,11,87 ! Plane U', wire 87 -60,11,88 ! Plane U', wire 88 -61,11,89 ! Plane U', wire 89 -62,11,90 ! Plane U', wire 90 -63,11,91 ! Plane U', wire 91 +REFCHAN=47 + 48, 11, 77 ! DC2, Plane U', wire 77 + 49, 11, 78 ! DC2, Plane U', wire 78 + 50, 11, 79 ! DC2, Plane U', wire 79 + 51, 11, 80 ! DC2, Plane U', wire 80 + 52, 11, 81 ! DC2, Plane U', wire 81 + 53, 11, 82 ! DC2, Plane U', wire 82 + 54, 11, 83 ! DC2, Plane U', wire 83 + 55, 11, 84 ! DC2, Plane U', wire 84 + 56, 11, 85 ! DC2, Plane U', wire 85 + 57, 11, 86 ! DC2, Plane U', wire 86 + 58, 11, 87 ! DC2, Plane U', wire 87 + 59, 11, 88 ! DC2, Plane U', wire 88 + 60, 11, 89 ! DC2, Plane U', wire 89 + 61, 11, 90 ! DC2, Plane U', wire 90 + 62, 11, 91 ! DC2, Plane U', wire 91 + 63, 11, 92 ! DC2, Plane U', wire 92 + SLOT=14 -112,11,92 ! Plane U', wire 92 -113,11,93 ! Plane U', wire 93 -114,11,94 ! Plane U', wire 94 -115,11,95 ! Plane U', wire 95 -116,11,96 ! Plane U', wire 96 -117,11,97 ! Plane U', wire 97 -118,11,98 ! Plane U', wire 98 -119,11,99 ! Plane U', wire 99 -120,11,100 ! Plane U', wire 100 -121,11,101 ! Plane U', wire 101 -122,11,102 ! Plane U', wire 102 -123,11,103 ! Plane U', wire 103 -124,11,104 ! Plane U', wire 104 -125,11,105 ! Plane U', wire 105 -126,11,106 ! Plane U', wire 106 -13,8,1 ! Plane V, wire 1 -12,8,2 ! Plane V, wire 2 -11,8,3 ! Plane V, wire 3 -10,8,4 ! Plane V, wire 4 -9,8,5 ! Plane V, wire 5 -8,8,6 ! Plane V, wire 6 -7,8,7 ! Plane V, wire 7 -6,8,8 ! Plane V, wire 8 -5,8,9 ! Plane V, wire 9 -4,8,10 ! Plane V, wire 10 -3,8,11 ! Plane V, wire 11 -2,8,12 ! Plane V, wire 12 -1,8,13 ! Plane V, wire 13 -0,8,14 ! Plane V, wire 14 +REFCHAN=15 + 112, 11, 93 ! DC2, Plane U', wire 93 + 113, 11, 94 ! DC2, Plane U', wire 94 + 114, 11, 95 ! DC2, Plane U', wire 95 + 115, 11, 96 ! DC2, Plane U', wire 96 + 116, 11, 97 ! DC2, Plane U', wire 97 + 117, 11, 98 ! DC2, Plane U', wire 98 + 118, 11, 99 ! DC2, Plane U', wire 99 + 119, 11, 100 ! DC2, Plane U', wire 100 + 120, 11, 101 ! DC2, Plane U', wire 101 + 121, 11, 102 ! DC2, Plane U', wire 102 + 122, 11, 103 ! DC2, Plane U', wire 103 + 123, 11, 104 ! DC2, Plane U', wire 104 + 124, 11, 105 ! DC2, Plane U', wire 105 + 125, 11, 106 ! DC2, Plane U', wire 106 + 126, 11, 107 ! DC2, Plane U', wire 107 + 14, 8, 1 ! DC2, Plane V, wire 1 + 13, 8, 2 ! DC2, Plane V, wire 2 + 12, 8, 3 ! DC2, Plane V, wire 3 + 11, 8, 4 ! DC2, Plane V, wire 4 + 10, 8, 5 ! DC2, Plane V, wire 5 + 9, 8, 6 ! DC2, Plane V, wire 6 + 8, 8, 7 ! DC2, Plane V, wire 7 + 7, 8, 8 ! DC2, Plane V, wire 8 + 6, 8, 9 ! DC2, Plane V, wire 9 + 5, 8, 10 ! DC2, Plane V, wire 10 + 4, 8, 11 ! DC2, Plane V, wire 11 + 3, 8, 12 ! DC2, Plane V, wire 12 + 2, 8, 13 ! DC2, Plane V, wire 13 + 1, 8, 14 ! DC2, Plane V, wire 14 + 0, 8, 15 ! DC2, Plane V, wire 15 + SLOT=12 -127,8,15 ! Plane V, wire 15 -126,8,16 ! Plane V, wire 16 -125,8,17 ! Plane V, wire 17 -124,8,18 ! Plane V, wire 18 -123,8,19 ! Plane V, wire 19 -122,8,20 ! Plane V, wire 20 -121,8,21 ! Plane V, wire 21 -120,8,22 ! Plane V, wire 22 -119,8,23 ! Plane V, wire 23 -118,8,24 ! Plane V, wire 24 -117,8,25 ! Plane V, wire 25 -116,8,26 ! Plane V, wire 26 -115,8,27 ! Plane V, wire 27 -114,8,28 ! Plane V, wire 28 -113,8,29 ! Plane V, wire 29 -112,8,30 ! Plane V, wire 30 +REFCHAN=47 + 127, 8, 16 ! DC2, Plane V, wire 16 + 126, 8, 17 ! DC2, Plane V, wire 17 + 125, 8, 18 ! DC2, Plane V, wire 18 + 124, 8, 19 ! DC2, Plane V, wire 19 + 123, 8, 20 ! DC2, Plane V, wire 20 + 122, 8, 21 ! DC2, Plane V, wire 21 + 121, 8, 22 ! DC2, Plane V, wire 22 + 120, 8, 23 ! DC2, Plane V, wire 23 + 119, 8, 24 ! DC2, Plane V, wire 24 + 118, 8, 25 ! DC2, Plane V, wire 25 + 117, 8, 26 ! DC2, Plane V, wire 26 + 116, 8, 27 ! DC2, Plane V, wire 27 + 115, 8, 28 ! DC2, Plane V, wire 28 + 114, 8, 29 ! DC2, Plane V, wire 29 + 113, 8, 30 ! DC2, Plane V, wire 30 + 112, 8, 31 ! DC2, Plane V, wire 31 + SLOT=14 -111,8,31 ! Plane V, wire 31 -110,8,32 ! Plane V, wire 32 -109,8,33 ! Plane V, wire 33 -108,8,34 ! Plane V, wire 34 -107,8,35 ! Plane V, wire 35 -106,8,36 ! Plane V, wire 36 -105,8,37 ! Plane V, wire 37 -104,8,38 ! Plane V, wire 38 -103,8,39 ! Plane V, wire 39 -102,8,40 ! Plane V, wire 40 -101,8,41 ! Plane V, wire 41 -100,8,42 ! Plane V, wire 42 -99,8,43 ! Plane V, wire 43 -98,8,44 ! Plane V, wire 44 -97,8,45 ! Plane V, wire 45 -96,8,46 ! Plane V, wire 46 -31,8,47 ! Plane V, wire 47 -30,8,48 ! Plane V, wire 48 -29,8,49 ! Plane V, wire 49 -28,8,50 ! Plane V, wire 50 -27,8,51 ! Plane V, wire 51 -26,8,52 ! Plane V, wire 52 -25,8,53 ! Plane V, wire 53 -24,8,54 ! Plane V, wire 54 -23,8,55 ! Plane V, wire 55 -22,8,56 ! Plane V, wire 56 -21,8,57 ! Plane V, wire 57 -20,8,58 ! Plane V, wire 58 -19,8,59 ! Plane V, wire 59 -18,8,60 ! Plane V, wire 60 -17,8,61 ! Plane V, wire 61 -16,8,62 ! Plane V, wire 62 +REFCHAN=15 + 111, 8, 32 ! DC2, Plane V, wire 32 + 110, 8, 33 ! DC2, Plane V, wire 33 + 109, 8, 34 ! DC2, Plane V, wire 34 + 108, 8, 35 ! DC2, Plane V, wire 35 + 107, 8, 36 ! DC2, Plane V, wire 36 + 106, 8, 37 ! DC2, Plane V, wire 37 + 105, 8, 38 ! DC2, Plane V, wire 38 + 104, 8, 39 ! DC2, Plane V, wire 39 + 103, 8, 40 ! DC2, Plane V, wire 40 + 102, 8, 41 ! DC2, Plane V, wire 41 + 101, 8, 42 ! DC2, Plane V, wire 42 + 100, 8, 43 ! DC2, Plane V, wire 43 + 99, 8, 44 ! DC2, Plane V, wire 44 + 98, 8, 45 ! DC2, Plane V, wire 45 + 97, 8, 46 ! DC2, Plane V, wire 46 + 96, 8, 47 ! DC2, Plane V, wire 47 + 31, 8, 48 ! DC2, Plane V, wire 48 + 30, 8, 49 ! DC2, Plane V, wire 49 + 29, 8, 50 ! DC2, Plane V, wire 50 + 28, 8, 51 ! DC2, Plane V, wire 51 + 27, 8, 52 ! DC2, Plane V, wire 52 + 26, 8, 53 ! DC2, Plane V, wire 53 + 25, 8, 54 ! DC2, Plane V, wire 54 + 24, 8, 55 ! DC2, Plane V, wire 55 + 23, 8, 56 ! DC2, Plane V, wire 56 + 22, 8, 57 ! DC2, Plane V, wire 57 + 21, 8, 58 ! DC2, Plane V, wire 58 + 20, 8, 59 ! DC2, Plane V, wire 59 + 19, 8, 60 ! DC2, Plane V, wire 60 + 18, 8, 61 ! DC2, Plane V, wire 61 + 17, 8, 62 ! DC2, Plane V, wire 62 + 16, 8, 63 ! DC2, Plane V, wire 63 + SLOT=12 -0,8,63 ! Plane V, wire 63 -1,8,64 ! Plane V, wire 64 -2,8,65 ! Plane V, wire 65 -3,8,66 ! Plane V, wire 66 -4,8,67 ! Plane V, wire 67 -5,8,68 ! Plane V, wire 68 -6,8,69 ! Plane V, wire 69 -7,8,70 ! Plane V, wire 70 -8,8,71 ! Plane V, wire 71 -9,8,72 ! Plane V, wire 72 -10,8,73 ! Plane V, wire 73 -11,8,74 ! Plane V, wire 74 -12,8,75 ! Plane V, wire 75 -13,8,76 ! Plane V, wire 76 -14,8,77 ! Plane V, wire 77 -15,8,78 ! Plane V, wire 78 -64,8,79 ! Plane V, wire 79 -65,8,80 ! Plane V, wire 80 -66,8,81 ! Plane V, wire 81 -67,8,82 ! Plane V, wire 82 -68,8,83 ! Plane V, wire 83 -69,8,84 ! Plane V, wire 84 -70,8,85 ! Plane V, wire 85 -71,8,86 ! Plane V, wire 86 -72,8,87 ! Plane V, wire 87 -73,8,88 ! Plane V, wire 88 -74,8,89 ! Plane V, wire 89 -75,8,90 ! Plane V, wire 90 -76,8,91 ! Plane V, wire 91 -77,8,92 ! Plane V, wire 92 -78,8,93 ! Plane V, wire 93 -79,8,94 ! Plane V, wire 94 -32,8,95 ! Plane V, wire 95 -33,8,96 ! Plane V, wire 96 -34,8,97 ! Plane V, wire 97 -35,8,98 ! Plane V, wire 98 -36,8,99 ! Plane V, wire 99 -37,8,100 ! Plane V, wire 100 -38,8,101 ! Plane V, wire 101 -39,8,102 ! Plane V, wire 102 -40,8,103 ! Plane V, wire 103 -41,8,104 ! Plane V, wire 104 -42,8,105 ! Plane V, wire 105 -SLOT=14 -14,8,106 ! Plane V, wire 106 +REFCHAN=47 + 0, 8, 64 ! DC2, Plane V, wire 64 + 1, 8, 65 ! DC2, Plane V, wire 65 + 2, 8, 66 ! DC2, Plane V, wire 66 + 3, 8, 67 ! DC2, Plane V, wire 67 + 4, 8, 68 ! DC2, Plane V, wire 68 + 5, 8, 69 ! DC2, Plane V, wire 69 + 6, 8, 70 ! DC2, Plane V, wire 70 + 7, 8, 71 ! DC2, Plane V, wire 71 + 8, 8, 72 ! DC2, Plane V, wire 72 + 9, 8, 73 ! DC2, Plane V, wire 73 + 10, 8, 74 ! DC2, Plane V, wire 74 + 11, 8, 75 ! DC2, Plane V, wire 75 + 12, 8, 76 ! DC2, Plane V, wire 76 + 13, 8, 77 ! DC2, Plane V, wire 77 + 14, 8, 78 ! DC2, Plane V, wire 78 + 15, 8, 79 ! DC2, Plane V, wire 79 + 64, 8, 80 ! DC2, Plane V, wire 80 + 65, 8, 81 ! DC2, Plane V, wire 81 + 66, 8, 82 ! DC2, Plane V, wire 82 + 67, 8, 83 ! DC2, Plane V, wire 83 + 68, 8, 84 ! DC2, Plane V, wire 84 + 69, 8, 85 ! DC2, Plane V, wire 85 + 70, 8, 86 ! DC2, Plane V, wire 86 + 71, 8, 87 ! DC2, Plane V, wire 87 + 72, 8, 88 ! DC2, Plane V, wire 88 + 73, 8, 89 ! DC2, Plane V, wire 89 + 74, 8, 90 ! DC2, Plane V, wire 90 + 75, 8, 91 ! DC2, Plane V, wire 91 + 76, 8, 92 ! DC2, Plane V, wire 92 + 77, 8, 93 ! DC2, Plane V, wire 93 + 78, 8, 94 ! DC2, Plane V, wire 94 + 79, 8, 95 ! DC2, Plane V, wire 95 + 32, 8, 96 ! DC2, Plane V, wire 96 + 33, 8, 97 ! DC2, Plane V, wire 97 + 34, 8, 98 ! DC2, Plane V, wire 98 + 35, 8, 99 ! DC2, Plane V, wire 99 + 36, 8, 100 ! DC2, Plane V, wire 100 + 37, 8, 101 ! DC2, Plane V, wire 101 + 38, 8, 102 ! DC2, Plane V, wire 102 + 39, 8, 103 ! DC2, Plane V, wire 103 + 40, 8, 104 ! DC2, Plane V, wire 104 + 41, 8, 105 ! DC2, Plane V, wire 105 + 42, 8, 106 ! DC2, Plane V, wire 106 + 43, 8, 107 ! DC2, Plane V, wire 107 + SLOT=15 -42,7,1 ! Plane V', wire 1 -41,7,2 ! Plane V', wire 2 -40,7,3 ! Plane V', wire 3 -39,7,4 ! Plane V', wire 4 -38,7,5 ! Plane V', wire 5 -37,7,6 ! Plane V', wire 6 -36,7,7 ! Plane V', wire 7 -35,7,8 ! Plane V', wire 8 -34,7,9 ! Plane V', wire 9 -33,7,10 ! Plane V', wire 10 -32,7,11 ! Plane V', wire 11 -15,7,12 ! Plane V', wire 12 -14,7,13 ! Plane V', wire 13 -13,7,14 ! Plane V', wire 14 -12,7,15 ! Plane V', wire 15 -11,7,16 ! Plane V', wire 16 -10,7,17 ! Plane V', wire 17 -9,7,18 ! Plane V', wire 18 -8,7,19 ! Plane V', wire 19 -7,7,20 ! Plane V', wire 20 -6,7,21 ! Plane V', wire 21 -5,7,22 ! Plane V', wire 22 -4,7,23 ! Plane V', wire 23 -3,7,24 ! Plane V', wire 24 -2,7,25 ! Plane V', wire 25 -1,7,26 ! Plane V', wire 26 -0,7,27 ! Plane V', wire 27 +REFCHAN=47 + 43, 7, 1 ! DC2, Plane V', wire 1 + 42, 7, 2 ! DC2, Plane V', wire 2 + 41, 7, 3 ! DC2, Plane V', wire 3 + 40, 7, 4 ! DC2, Plane V', wire 4 + 39, 7, 5 ! DC2, Plane V', wire 5 + 38, 7, 6 ! DC2, Plane V', wire 6 + 37, 7, 7 ! DC2, Plane V', wire 7 + 36, 7, 8 ! DC2, Plane V', wire 8 + 35, 7, 9 ! DC2, Plane V', wire 9 + 34, 7, 10 ! DC2, Plane V', wire 10 + 33, 7, 11 ! DC2, Plane V', wire 11 + 32, 7, 12 ! DC2, Plane V', wire 12 + 15, 7, 13 ! DC2, Plane V', wire 13 + 14, 7, 14 ! DC2, Plane V', wire 14 + 13, 7, 15 ! DC2, Plane V', wire 15 + 12, 7, 16 ! DC2, Plane V', wire 16 + 11, 7, 17 ! DC2, Plane V', wire 17 + 10, 7, 18 ! DC2, Plane V', wire 18 + 9, 7, 19 ! DC2, Plane V', wire 19 + 8, 7, 20 ! DC2, Plane V', wire 20 + 7, 7, 21 ! DC2, Plane V', wire 21 + 6, 7, 22 ! DC2, Plane V', wire 22 + 5, 7, 23 ! DC2, Plane V', wire 23 + 4, 7, 24 ! DC2, Plane V', wire 24 + 3, 7, 25 ! DC2, Plane V', wire 25 + 2, 7, 26 ! DC2, Plane V', wire 26 + 1, 7, 27 ! DC2, Plane V', wire 27 + 0, 7, 28 ! DC2, Plane V', wire 28 + SLOT=14 -79,7,28 ! Plane V', wire 28 -78,7,29 ! Plane V', wire 29 -77,7,30 ! Plane V', wire 30 -76,7,31 ! Plane V', wire 31 -75,7,32 ! Plane V', wire 32 -74,7,33 ! Plane V', wire 33 -73,7,34 ! Plane V', wire 34 -72,7,35 ! Plane V', wire 35 -71,7,36 ! Plane V', wire 36 -70,7,37 ! Plane V', wire 37 -69,7,38 ! Plane V', wire 38 -68,7,39 ! Plane V', wire 39 -67,7,40 ! Plane V', wire 40 -66,7,41 ! Plane V', wire 41 -65,7,42 ! Plane V', wire 42 -64,7,43 ! Plane V', wire 43 +REFCHAN=15 + 79, 7, 29 ! DC2, Plane V', wire 29 + 78, 7, 30 ! DC2, Plane V', wire 30 + 77, 7, 31 ! DC2, Plane V', wire 31 + 76, 7, 32 ! DC2, Plane V', wire 32 + 75, 7, 33 ! DC2, Plane V', wire 33 + 74, 7, 34 ! DC2, Plane V', wire 34 + 73, 7, 35 ! DC2, Plane V', wire 35 + 72, 7, 36 ! DC2, Plane V', wire 36 + 71, 7, 37 ! DC2, Plane V', wire 37 + 70, 7, 38 ! DC2, Plane V', wire 38 + 69, 7, 39 ! DC2, Plane V', wire 39 + 68, 7, 40 ! DC2, Plane V', wire 40 + 67, 7, 41 ! DC2, Plane V', wire 41 + 66, 7, 42 ! DC2, Plane V', wire 42 + 65, 7, 43 ! DC2, Plane V', wire 43 + 64, 7, 44 ! DC2, Plane V', wire 44 + SLOT=13 -48,7,44 ! Plane V', wire 44 -49,7,45 ! Plane V', wire 45 -50,7,46 ! Plane V', wire 46 -51,7,47 ! Plane V', wire 47 -52,7,48 ! Plane V', wire 48 -53,7,49 ! Plane V', wire 49 -54,7,50 ! Plane V', wire 50 -55,7,51 ! Plane V', wire 51 -56,7,52 ! Plane V', wire 52 -57,7,53 ! Plane V', wire 53 -58,7,54 ! Plane V', wire 54 -59,7,55 ! Plane V', wire 55 -60,7,56 ! Plane V', wire 56 -61,7,57 ! Plane V', wire 57 -62,7,58 ! Plane V', wire 58 -63,7,59 ! Plane V', wire 59 +REFCHAN=47 + 48, 7, 45 ! DC2, Plane V', wire 45 + 49, 7, 46 ! DC2, Plane V', wire 46 + 50, 7, 47 ! DC2, Plane V', wire 47 + 51, 7, 48 ! DC2, Plane V', wire 48 + 52, 7, 49 ! DC2, Plane V', wire 49 + 53, 7, 50 ! DC2, Plane V', wire 50 + 54, 7, 51 ! DC2, Plane V', wire 51 + 55, 7, 52 ! DC2, Plane V', wire 52 + 56, 7, 53 ! DC2, Plane V', wire 53 + 57, 7, 54 ! DC2, Plane V', wire 54 + 58, 7, 55 ! DC2, Plane V', wire 55 + 59, 7, 56 ! DC2, Plane V', wire 56 + 60, 7, 57 ! DC2, Plane V', wire 57 + 61, 7, 58 ! DC2, Plane V', wire 58 + 62, 7, 59 ! DC2, Plane V', wire 59 + 63, 7, 60 ! DC2, Plane V', wire 60 + SLOT=12 -80,7,60 ! Plane V', wire 60 -81,7,61 ! Plane V', wire 61 -82,7,62 ! Plane V', wire 62 -83,7,63 ! Plane V', wire 63 -84,7,64 ! Plane V', wire 64 -85,7,65 ! Plane V', wire 65 -86,7,66 ! Plane V', wire 66 -87,7,67 ! Plane V', wire 67 -88,7,68 ! Plane V', wire 68 -89,7,69 ! Plane V', wire 69 -90,7,70 ! Plane V', wire 70 -91,7,71 ! Plane V', wire 71 -92,7,72 ! Plane V', wire 72 -93,7,73 ! Plane V', wire 73 -94,7,74 ! Plane V', wire 74 -95,7,75 ! Plane V', wire 75 -48,7,76 ! Plane V', wire 76 -49,7,77 ! Plane V', wire 77 -50,7,78 ! Plane V', wire 78 -51,7,79 ! Plane V', wire 79 -52,7,80 ! Plane V', wire 80 -53,7,81 ! Plane V', wire 81 -54,7,82 ! Plane V', wire 82 -55,7,83 ! Plane V', wire 83 -56,7,84 ! Plane V', wire 84 -57,7,85 ! Plane V', wire 85 -58,7,86 ! Plane V', wire 86 -59,7,87 ! Plane V', wire 87 -60,7,88 ! Plane V', wire 88 -61,7,89 ! Plane V', wire 89 -62,7,90 ! Plane V', wire 90 -63,7,91 ! Plane V', wire 91 +REFCHAN=47 + 80, 7, 61 ! DC2, Plane V', wire 61 + 81, 7, 62 ! DC2, Plane V', wire 62 + 82, 7, 63 ! DC2, Plane V', wire 63 + 83, 7, 64 ! DC2, Plane V', wire 64 + 84, 7, 65 ! DC2, Plane V', wire 65 + 85, 7, 66 ! DC2, Plane V', wire 66 + 86, 7, 67 ! DC2, Plane V', wire 67 + 87, 7, 68 ! DC2, Plane V', wire 68 + 88, 7, 69 ! DC2, Plane V', wire 69 + 89, 7, 70 ! DC2, Plane V', wire 70 + 90, 7, 71 ! DC2, Plane V', wire 71 + 91, 7, 72 ! DC2, Plane V', wire 72 + 92, 7, 73 ! DC2, Plane V', wire 73 + 93, 7, 74 ! DC2, Plane V', wire 74 + 94, 7, 75 ! DC2, Plane V', wire 75 + 95, 7, 76 ! DC2, Plane V', wire 76 + 48, 7, 77 ! DC2, Plane V', wire 77 + 49, 7, 78 ! DC2, Plane V', wire 78 + 50, 7, 79 ! DC2, Plane V', wire 79 + 51, 7, 80 ! DC2, Plane V', wire 80 + 52, 7, 81 ! DC2, Plane V', wire 81 + 53, 7, 82 ! DC2, Plane V', wire 82 + 54, 7, 83 ! DC2, Plane V', wire 83 + 55, 7, 84 ! DC2, Plane V', wire 84 + 56, 7, 85 ! DC2, Plane V', wire 85 + 57, 7, 86 ! DC2, Plane V', wire 86 + 58, 7, 87 ! DC2, Plane V', wire 87 + 59, 7, 88 ! DC2, Plane V', wire 88 + 60, 7, 89 ! DC2, Plane V', wire 89 + 61, 7, 90 ! DC2, Plane V', wire 90 + 62, 7, 91 ! DC2, Plane V', wire 91 + 63, 7, 92 ! DC2, Plane V', wire 92 + SLOT=11 -32,7,92 ! Plane V', wire 92 -33,7,93 ! Plane V', wire 93 -34,7,94 ! Plane V', wire 94 -35,7,95 ! Plane V', wire 95 -36,7,96 ! Plane V', wire 96 -37,7,97 ! Plane V', wire 97 -38,7,98 ! Plane V', wire 98 -39,7,99 ! Plane V', wire 99 -40,7,100 ! Plane V', wire 100 -41,7,101 ! Plane V', wire 101 -42,7,102 ! Plane V', wire 102 -43,7,103 ! Plane V', wire 103 -44,7,104 ! Plane V', wire 104 -45,7,105 ! Plane V', wire 105 -SLOT=15 -43,7,106 ! Plane V', wire 106 +REFCHAN=47 + 32, 7, 93 ! DC2, Plane V', wire 93 + 33, 7, 94 ! DC2, Plane V', wire 94 + 34, 7, 95 ! DC2, Plane V', wire 95 + 35, 7, 96 ! DC2, Plane V', wire 96 + 36, 7, 97 ! DC2, Plane V', wire 97 + 37, 7, 98 ! DC2, Plane V', wire 98 + 38, 7, 99 ! DC2, Plane V', wire 99 + 39, 7, 100 ! DC2, Plane V', wire 100 + 40, 7, 101 ! DC2, Plane V', wire 101 + 41, 7, 102 ! DC2, Plane V', wire 102 + 42, 7, 103 ! DC2, Plane V', wire 103 + 43, 7, 104 ! DC2, Plane V', wire 104 + 44, 7, 105 ! DC2, Plane V', wire 105 + 45, 7, 106 ! DC2, Plane V', wire 106 + 46, 7, 107 ! DC2, Plane V', wire 107 + SLOT=12 -110,10,1 ! Plane X, wire 1 -109,10,2 ! Plane X, wire 2 -108,10,3 ! Plane X, wire 3 -107,10,4 ! Plane X, wire 4 -106,10,5 ! Plane X, wire 5 -105,10,6 ! Plane X, wire 6 -104,10,7 ! Plane X, wire 7 -103,10,8 ! Plane X, wire 8 -102,10,9 ! Plane X, wire 9 -101,10,10 ! Plane X, wire 10 -100,10,11 ! Plane X, wire 11 -99,10,12 ! Plane X, wire 12 -98,10,13 ! Plane X, wire 13 -97,10,14 ! Plane X, wire 14 -96,10,15 ! Plane X, wire 15 -31,10,16 ! Plane X, wire 16 -30,10,17 ! Plane X, wire 17 -29,10,18 ! Plane X, wire 18 -28,10,19 ! Plane X, wire 19 -27,10,20 ! Plane X, wire 20 -26,10,21 ! Plane X, wire 21 -25,10,22 ! Plane X, wire 22 -24,10,23 ! Plane X, wire 23 -23,10,24 ! Plane X, wire 24 -22,10,25 ! Plane X, wire 25 -21,10,26 ! Plane X, wire 26 -20,10,27 ! Plane X, wire 27 -19,10,28 ! Plane X, wire 28 -18,10,29 ! Plane X, wire 29 -17,10,30 ! Plane X, wire 30 -16,10,31 ! Plane X, wire 31 +REFCHAN=47 + 111, 10, 1 ! DC2, Plane X, wire 1 + 110, 10, 2 ! DC2, Plane X, wire 2 + 109, 10, 3 ! DC2, Plane X, wire 3 + 108, 10, 4 ! DC2, Plane X, wire 4 + 107, 10, 5 ! DC2, Plane X, wire 5 + 106, 10, 6 ! DC2, Plane X, wire 6 + 105, 10, 7 ! DC2, Plane X, wire 7 + 104, 10, 8 ! DC2, Plane X, wire 8 + 103, 10, 9 ! DC2, Plane X, wire 9 + 102, 10, 10 ! DC2, Plane X, wire 10 + 101, 10, 11 ! DC2, Plane X, wire 11 + 100, 10, 12 ! DC2, Plane X, wire 12 + 99, 10, 13 ! DC2, Plane X, wire 13 + 98, 10, 14 ! DC2, Plane X, wire 14 + 97, 10, 15 ! DC2, Plane X, wire 15 + 96, 10, 16 ! DC2, Plane X, wire 16 + 31, 10, 17 ! DC2, Plane X, wire 17 + 30, 10, 18 ! DC2, Plane X, wire 18 + 29, 10, 19 ! DC2, Plane X, wire 19 + 28, 10, 20 ! DC2, Plane X, wire 20 + 27, 10, 21 ! DC2, Plane X, wire 21 + 26, 10, 22 ! DC2, Plane X, wire 22 + 25, 10, 23 ! DC2, Plane X, wire 23 + 24, 10, 24 ! DC2, Plane X, wire 24 + 23, 10, 25 ! DC2, Plane X, wire 25 + 22, 10, 26 ! DC2, Plane X, wire 26 + 21, 10, 27 ! DC2, Plane X, wire 27 + 20, 10, 28 ! DC2, Plane X, wire 28 + 19, 10, 29 ! DC2, Plane X, wire 29 + 18, 10, 30 ! DC2, Plane X, wire 30 + 17, 10, 31 ! DC2, Plane X, wire 31 + 16, 10, 32 ! DC2, Plane X, wire 32 + SLOT=11 -31,10,32 ! Plane X, wire 32 -30,10,33 ! Plane X, wire 33 -29,10,34 ! Plane X, wire 34 -28,10,35 ! Plane X, wire 35 -27,10,36 ! Plane X, wire 36 -26,10,37 ! Plane X, wire 37 -25,10,38 ! Plane X, wire 38 -24,10,39 ! Plane X, wire 39 -23,10,40 ! Plane X, wire 40 -22,10,41 ! Plane X, wire 41 -21,10,42 ! Plane X, wire 42 -20,10,43 ! Plane X, wire 43 -19,10,44 ! Plane X, wire 44 -18,10,45 ! Plane X, wire 45 -17,10,46 ! Plane X, wire 46 -SLOT=12 -111,10,47 ! Plane X, wire 47 +REFCHAN=47 + 31, 10, 33 ! DC2, Plane X, wire 33 + 30, 10, 34 ! DC2, Plane X, wire 34 + 29, 10, 35 ! DC2, Plane X, wire 35 + 28, 10, 36 ! DC2, Plane X, wire 36 + 27, 10, 37 ! DC2, Plane X, wire 37 + 26, 10, 38 ! DC2, Plane X, wire 38 + 25, 10, 39 ! DC2, Plane X, wire 39 + 24, 10, 40 ! DC2, Plane X, wire 40 + 23, 10, 41 ! DC2, Plane X, wire 41 + 22, 10, 42 ! DC2, Plane X, wire 42 + 21, 10, 43 ! DC2, Plane X, wire 43 + 20, 10, 44 ! DC2, Plane X, wire 44 + 19, 10, 45 ! DC2, Plane X, wire 45 + 18, 10, 46 ! DC2, Plane X, wire 46 + 17, 10, 47 ! DC2, Plane X, wire 47 + 16, 10, 48 ! DC2, Plane X, wire 48 + SLOT=15 -16,10,48 ! Plane X, wire 48 -17,10,49 ! Plane X, wire 49 -18,10,50 ! Plane X, wire 50 -19,10,51 ! Plane X, wire 51 -20,10,52 ! Plane X, wire 52 -21,10,53 ! Plane X, wire 53 -22,10,54 ! Plane X, wire 54 -23,10,55 ! Plane X, wire 55 -24,10,56 ! Plane X, wire 56 -25,10,57 ! Plane X, wire 57 -26,10,58 ! Plane X, wire 58 -27,10,59 ! Plane X, wire 59 -28,10,60 ! Plane X, wire 60 -29,10,61 ! Plane X, wire 61 -30,10,62 ! Plane X, wire 62 -31,10,63 ! Plane X, wire 63 +REFCHAN=47 + 16, 10, 49 ! DC2, Plane X, wire 49 + 17, 10, 50 ! DC2, Plane X, wire 50 + 18, 10, 51 ! DC2, Plane X, wire 51 + 19, 10, 52 ! DC2, Plane X, wire 52 + 20, 10, 53 ! DC2, Plane X, wire 53 + 21, 10, 54 ! DC2, Plane X, wire 54 + 22, 10, 55 ! DC2, Plane X, wire 55 + 23, 10, 56 ! DC2, Plane X, wire 56 + 24, 10, 57 ! DC2, Plane X, wire 57 + 25, 10, 58 ! DC2, Plane X, wire 58 + 26, 10, 59 ! DC2, Plane X, wire 59 + 27, 10, 60 ! DC2, Plane X, wire 60 + 28, 10, 61 ! DC2, Plane X, wire 61 + 29, 10, 62 ! DC2, Plane X, wire 62 + 30, 10, 63 ! DC2, Plane X, wire 63 + 31, 10, 64 ! DC2, Plane X, wire 64 + SLOT=14 -48,10,64 ! Plane X, wire 64 -49,10,65 ! Plane X, wire 65 -50,10,66 ! Plane X, wire 66 -51,10,67 ! Plane X, wire 67 -52,10,68 ! Plane X, wire 68 -53,10,69 ! Plane X, wire 69 -54,10,70 ! Plane X, wire 70 -55,10,71 ! Plane X, wire 71 -56,10,72 ! Plane X, wire 72 -57,10,73 ! Plane X, wire 73 -58,10,74 ! Plane X, wire 74 -59,10,75 ! Plane X, wire 75 -60,10,76 ! Plane X, wire 76 -61,10,77 ! Plane X, wire 77 -62,10,78 ! Plane X, wire 78 +REFCHAN=15 + 48, 10, 65 ! DC2, Plane X, wire 65 + 49, 10, 66 ! DC2, Plane X, wire 66 + 50, 10, 67 ! DC2, Plane X, wire 67 + 51, 10, 68 ! DC2, Plane X, wire 68 + 52, 10, 69 ! DC2, Plane X, wire 69 + 53, 10, 70 ! DC2, Plane X, wire 70 + 54, 10, 71 ! DC2, Plane X, wire 71 + 55, 10, 72 ! DC2, Plane X, wire 72 + 56, 10, 73 ! DC2, Plane X, wire 73 + 57, 10, 74 ! DC2, Plane X, wire 74 + 58, 10, 75 ! DC2, Plane X, wire 75 + 59, 10, 76 ! DC2, Plane X, wire 76 + 60, 10, 77 ! DC2, Plane X, wire 77 + 61, 10, 78 ! DC2, Plane X, wire 78 + 62, 10, 79 ! DC2, Plane X, wire 79 + SLOT=13 -125,9,1 ! Plane X', wire 1 -124,9,2 ! Plane X', wire 2 -123,9,3 ! Plane X', wire 3 -122,9,4 ! Plane X', wire 4 -121,9,5 ! Plane X', wire 5 -120,9,6 ! Plane X', wire 6 -119,9,7 ! Plane X', wire 7 -118,9,8 ! Plane X', wire 8 -117,9,9 ! Plane X', wire 9 -116,9,10 ! Plane X', wire 10 -115,9,11 ! Plane X', wire 11 -114,9,12 ! Plane X', wire 12 -113,9,13 ! Plane X', wire 13 -112,9,14 ! Plane X', wire 14 -15,9,15 ! Plane X', wire 15 -14,9,16 ! Plane X', wire 16 -13,9,17 ! Plane X', wire 17 -12,9,18 ! Plane X', wire 18 -11,9,19 ! Plane X', wire 19 -10,9,20 ! Plane X', wire 20 -9,9,21 ! Plane X', wire 21 -8,9,22 ! Plane X', wire 22 -7,9,23 ! Plane X', wire 23 -6,9,24 ! Plane X', wire 24 -5,9,25 ! Plane X', wire 25 -4,9,26 ! Plane X', wire 26 -3,9,27 ! Plane X', wire 27 -2,9,28 ! Plane X', wire 28 -1,9,29 ! Plane X', wire 29 -0,9,30 ! Plane X', wire 30 +REFCHAN=47 + 126, 9, 1 ! DC2, Plane X', wire 1 + 125, 9, 2 ! DC2, Plane X', wire 2 + 124, 9, 3 ! DC2, Plane X', wire 3 + 123, 9, 4 ! DC2, Plane X', wire 4 + 122, 9, 5 ! DC2, Plane X', wire 5 + 121, 9, 6 ! DC2, Plane X', wire 6 + 120, 9, 7 ! DC2, Plane X', wire 7 + 119, 9, 8 ! DC2, Plane X', wire 8 + 118, 9, 9 ! DC2, Plane X', wire 9 + 117, 9, 10 ! DC2, Plane X', wire 10 + 116, 9, 11 ! DC2, Plane X', wire 11 + 115, 9, 12 ! DC2, Plane X', wire 12 + 114, 9, 13 ! DC2, Plane X', wire 13 + 113, 9, 14 ! DC2, Plane X', wire 14 + 112, 9, 15 ! DC2, Plane X', wire 15 + 15, 9, 16 ! DC2, Plane X', wire 16 + 14, 9, 17 ! DC2, Plane X', wire 17 + 13, 9, 18 ! DC2, Plane X', wire 18 + 12, 9, 19 ! DC2, Plane X', wire 19 + 11, 9, 20 ! DC2, Plane X', wire 20 + 10, 9, 21 ! DC2, Plane X', wire 21 + 9, 9, 22 ! DC2, Plane X', wire 22 + 8, 9, 23 ! DC2, Plane X', wire 23 + 7, 9, 24 ! DC2, Plane X', wire 24 + 6, 9, 25 ! DC2, Plane X', wire 25 + 5, 9, 26 ! DC2, Plane X', wire 26 + 4, 9, 27 ! DC2, Plane X', wire 27 + 3, 9, 28 ! DC2, Plane X', wire 28 + 2, 9, 29 ! DC2, Plane X', wire 29 + 1, 9, 30 ! DC2, Plane X', wire 30 + 0, 9, 31 ! DC2, Plane X', wire 31 + SLOT=11 -96,9,31 ! Plane X', wire 31 -97,9,32 ! Plane X', wire 32 -98,9,33 ! Plane X', wire 33 -99,9,34 ! Plane X', wire 34 -100,9,35 ! Plane X', wire 35 -101,9,36 ! Plane X', wire 36 -102,9,37 ! Plane X', wire 37 -103,9,38 ! Plane X', wire 38 -104,9,39 ! Plane X', wire 39 -105,9,40 ! Plane X', wire 40 -106,9,41 ! Plane X', wire 41 -107,9,42 ! Plane X', wire 42 -108,9,43 ! Plane X', wire 43 -109,9,44 ! Plane X', wire 44 -110,9,45 ! Plane X', wire 45 -111,9,46 ! Plane X', wire 46 -64,9,47 ! Plane X', wire 47 -65,9,48 ! Plane X', wire 48 -66,9,49 ! Plane X', wire 49 -67,9,50 ! Plane X', wire 50 -68,9,51 ! Plane X', wire 51 -69,9,52 ! Plane X', wire 52 -70,9,53 ! Plane X', wire 53 -71,9,54 ! Plane X', wire 54 -72,9,55 ! Plane X', wire 55 -73,9,56 ! Plane X', wire 56 -74,9,57 ! Plane X', wire 57 -75,9,58 ! Plane X', wire 58 -76,9,59 ! Plane X', wire 59 -77,9,60 ! Plane X', wire 60 -78,9,61 ! Plane X', wire 61 -79,9,62 ! Plane X', wire 62 +REFCHAN=47 + 96, 9, 32 ! DC2, Plane X', wire 32 + 97, 9, 33 ! DC2, Plane X', wire 33 + 98, 9, 34 ! DC2, Plane X', wire 34 + 99, 9, 35 ! DC2, Plane X', wire 35 + 100, 9, 36 ! DC2, Plane X', wire 36 + 101, 9, 37 ! DC2, Plane X', wire 37 + 102, 9, 38 ! DC2, Plane X', wire 38 + 103, 9, 39 ! DC2, Plane X', wire 39 + 104, 9, 40 ! DC2, Plane X', wire 40 + 105, 9, 41 ! DC2, Plane X', wire 41 + 106, 9, 42 ! DC2, Plane X', wire 42 + 107, 9, 43 ! DC2, Plane X', wire 43 + 108, 9, 44 ! DC2, Plane X', wire 44 + 109, 9, 45 ! DC2, Plane X', wire 45 + 110, 9, 46 ! DC2, Plane X', wire 46 + 111, 9, 47 ! DC2, Plane X', wire 47 + 64, 9, 48 ! DC2, Plane X', wire 48 + 65, 9, 49 ! DC2, Plane X', wire 49 + 66, 9, 50 ! DC2, Plane X', wire 50 + 67, 9, 51 ! DC2, Plane X', wire 51 + 68, 9, 52 ! DC2, Plane X', wire 52 + 69, 9, 53 ! DC2, Plane X', wire 53 + 70, 9, 54 ! DC2, Plane X', wire 54 + 71, 9, 55 ! DC2, Plane X', wire 55 + 72, 9, 56 ! DC2, Plane X', wire 56 + 73, 9, 57 ! DC2, Plane X', wire 57 + 74, 9, 58 ! DC2, Plane X', wire 58 + 75, 9, 59 ! DC2, Plane X', wire 59 + 76, 9, 60 ! DC2, Plane X', wire 60 + 77, 9, 61 ! DC2, Plane X', wire 61 + 78, 9, 62 ! DC2, Plane X', wire 62 + 79, 9, 63 ! DC2, Plane X', wire 63 + SLOT=10 -96,9,63 ! Plane X', wire 63 -97,9,64 ! Plane X', wire 64 -98,9,65 ! Plane X', wire 65 -99,9,66 ! Plane X', wire 66 -100,9,67 ! Plane X', wire 67 -101,9,68 ! Plane X', wire 68 -102,9,69 ! Plane X', wire 69 -103,9,70 ! Plane X', wire 70 -104,9,71 ! Plane X', wire 71 -105,9,72 ! Plane X', wire 72 -106,9,73 ! Plane X', wire 73 -107,9,74 ! Plane X', wire 74 -108,9,75 ! Plane X', wire 75 -109,9,76 ! Plane X', wire 76 -110,9,77 ! Plane X', wire 77 -SLOT=13 -126,9,78 ! Plane X', wire 78 \ No newline at end of file +REFCHAN=79 + 96, 9, 64 ! DC2, Plane X', wire 64 + 97, 9, 65 ! DC2, Plane X', wire 65 + 98, 9, 66 ! DC2, Plane X', wire 66 + 99, 9, 67 ! DC2, Plane X', wire 67 + 100, 9, 68 ! DC2, Plane X', wire 68 + 101, 9, 69 ! DC2, Plane X', wire 69 + 102, 9, 70 ! DC2, Plane X', wire 70 + 103, 9, 71 ! DC2, Plane X', wire 71 + 104, 9, 72 ! DC2, Plane X', wire 72 + 105, 9, 73 ! DC2, Plane X', wire 73 + 106, 9, 74 ! DC2, Plane X', wire 74 + 107, 9, 75 ! DC2, Plane X', wire 75 + 108, 9, 76 ! DC2, Plane X', wire 76 + 109, 9, 77 ! DC2, Plane X', wire 77 + 110, 9, 78 ! DC2, Plane X', wire 78 + 111, 9, 79 ! DC2, Plane X', wire 79 diff --git a/MAPS/SHMS/DETEC/phgcer.map b/MAPS/SHMS/DETEC/phgcer.map new file mode 100644 index 00000000..51c53141 --- /dev/null +++ b/MAPS/SHMS/DETEC/phgcer.map @@ -0,0 +1,12 @@ +! PHGCER_ID=24 :: ADC + + +DETECTOR=24 + +ROC=2 + +SLOT=13 + 8, 1, 1, 0 ! pHGCER01 + 9, 1, 2, 0 ! pHGCER02 + 10, 1, 3, 0 ! pHGCER03 + 11, 1, 4, 0 ! pHGCER04 diff --git a/MAPS/SHMS/DETEC/phgcer_ptrig.map b/MAPS/SHMS/DETEC/phgcer_ptrig.map new file mode 100644 index 00000000..b67003d2 --- /dev/null +++ b/MAPS/SHMS/DETEC/phgcer_ptrig.map @@ -0,0 +1,71 @@ +! TSHMS_ID=20 :: ::,ADC,TDC +! PHGCER_ID=24 :: ::,ADC,TDC + + +DETECTOR=20 + +ROC=2 + +SLOT=14 + 0, 1, 1, 0 ! pAERSUM + 1, 1, 2, 0 ! pHGCERSUM + 2, 1, 3, 0 ! pNGCERSUM + +SLOT=20 + 15, 2, 1, 1 ! pT1 + +SLOT=19 + 31, 2, 2, 1 ! pT2 + 32, 2, 3, 1 ! p1X + 33, 2, 4, 1 ! p1Y + 34, 2, 5, 1 ! p2X + 35, 2, 6, 1 ! p2Y + 36, 2, 7, 1 ! p1T + 37, 2, 8, 1 ! p2T + 38, 2, 9, 1 ! pT3 + 39, 2, 10, 1 ! pAERSUM + 40, 2, 11, 1 ! pHGCERSUM + 41, 2, 12, 1 ! pNGCERSUM + +ROC=6 + +SLOT=6 + 79, 2, 13, 1 ! pDCREF1 + +SLOT=7 + 79, 2, 14, 1 ! pDCREF2 + +SLOT=8 + 79, 2, 15, 1 ! pDCREF3 + +SLOT=9 + 79, 2, 16, 1 ! pDCREF4 + +SLOT=10 + 79, 2, 17, 1 ! pDCREF5 + +SLOT=11 + 47, 2, 18, 1 ! pDCREF6 + +SLOT=12 + 47, 2, 19, 1 ! pDCREF7 + +SLOT=13 + 47, 2, 20, 1 ! pDCREF8 + +SLOT=14 + 15, 2, 21, 1 ! pDCREF9 + +SLOT=15 + 47, 2, 22, 1 ! pDCREF10 + + +DETECTOR=24 + +ROC=2 + +SLOT=13 + 8, 1, 1, 0 ! pHGCER01 + 9, 1, 2, 0 ! pHGCER02 + 10, 1, 3, 0 ! pHGCER03 + 11, 1, 4, 0 ! pHGCER04 diff --git a/MAPS/SHMS/DETEC/phodo.map b/MAPS/SHMS/DETEC/phodo.map new file mode 100644 index 00000000..5a8268fc --- /dev/null +++ b/MAPS/SHMS/DETEC/phodo.map @@ -0,0 +1,274 @@ +! PSCIN_ID=23 :: ::,ADC+,ADC-,TDC+,TDC- + + +DETECTOR=23 + +ROC=2 + +SLOT=3 + 0, 1, 1, 0 ! p1x01A+ + 1, 1, 2, 0 ! p1x02A+ + 2, 1, 3, 0 ! p1x03A+ + 3, 1, 4, 0 ! p1x04A+ + 4, 1, 5, 0 ! p1x05A+ + 5, 1, 6, 0 ! p1x06A+ + 6, 1, 7, 0 ! p1x07A+ + 7, 1, 8, 0 ! p1x08A+ + 8, 1, 9, 0 ! p1x09A+ + 9, 1, 10, 0 ! p1x10A+ + 10, 1, 11, 0 ! p1x11A+ + 11, 1, 12, 0 ! p1x12A+ + 12, 1, 13, 0 ! p1x13A+ + 13, 1, 1, 1 ! p1x01A- + 14, 1, 2, 1 ! p1x02A- + 15, 1, 3, 1 ! p1x03A- + +SLOT=4 + 0, 1, 4, 1 ! p1x04A- + 1, 1, 5, 1 ! p1x05A- + 2, 1, 6, 1 ! p1x06A- + 3, 1, 7, 1 ! p1x07A- + 4, 1, 8, 1 ! p1x08A- + 5, 1, 9, 1 ! p1x09A- + 6, 1, 10, 1 ! p1x10A- + 7, 1, 11, 1 ! p1x11A- + 8, 1, 12, 1 ! p1x12A- + 9, 1, 13, 1 ! p1x13A- + 10, 2, 1, 1 ! p1y01A- + 11, 2, 2, 1 ! p1y02A- + 12, 2, 3, 1 ! p1y03A- + 13, 2, 4, 1 ! p1y04A- + 14, 2, 5, 1 ! p1y05A- + 15, 2, 6, 1 ! p1y06A- + +SLOT=5 + 0, 2, 7, 1 ! p1y07A- + 1, 2, 8, 1 ! p1y08A- + 2, 2, 9, 1 ! p1y09A- + 3, 2, 10, 1 ! p1y10A- + 4, 2, 11, 1 ! p1y11A- + 5, 2, 12, 1 ! p1y12A- + 6, 2, 13, 1 ! p1y13A- + 7, 2, 1, 0 ! p1y01A+ + 8, 2, 2, 0 ! p1y02A+ + 9, 2, 3, 0 ! p1y03A+ + 10, 2, 4, 0 ! p1y04A+ + 11, 2, 5, 0 ! p1y05A+ + 12, 2, 6, 0 ! p1y06A+ + 13, 2, 7, 0 ! p1y07A+ + 14, 2, 8, 0 ! p1y08A+ + 15, 2, 9, 0 ! p1y09A+ + +SLOT=6 + 0, 2, 10, 0 ! p1y10A+ + 1, 2, 11, 0 ! p1y11A+ + 2, 2, 12, 0 ! p1y12A+ + 3, 2, 13, 0 ! p1y13A+ + 4, 3, 1, 0 ! p2x01A+ + 5, 3, 2, 0 ! p2x02A+ + 6, 3, 3, 0 ! p2x03A+ + 7, 3, 4, 0 ! p2x04A+ + 8, 3, 5, 0 ! p2x05A+ + 9, 3, 6, 0 ! p2x06A+ + 10, 3, 7, 0 ! p2x07A+ + 11, 3, 8, 0 ! p2x08A+ + 12, 3, 9, 0 ! p2x09A+ + 13, 3, 10, 0 ! p2x10A+ + 14, 3, 11, 0 ! p2x11A+ + 15, 3, 12, 0 ! p2x12A+ + +SLOT=7 + 0, 3, 13, 0 ! p2x13A+ + 1, 3, 14, 0 ! p2x14A+ + 2, 3, 1, 1 ! p2x01A- + 3, 3, 2, 1 ! p2x02A- + 4, 3, 3, 1 ! p2x03A- + 5, 3, 4, 1 ! p2x04A- + 6, 3, 5, 1 ! p2x05A- + 7, 3, 6, 1 ! p2x06A- + 8, 3, 7, 1 ! p2x07A- + 9, 3, 8, 1 ! p2x08A- + 10, 3, 9, 1 ! p2x09A- + 11, 3, 10, 1 ! p2x10A- + 12, 3, 11, 1 ! p2x11A- + 13, 3, 12, 1 ! p2x12A- + 14, 3, 13, 1 ! p2x13A- + 15, 3, 14, 1 ! p2x14A- + +SLOT=8 + 0, 4, 1, 1 ! p2y01A- + 1, 4, 2, 1 ! p2y02A- + 2, 4, 3, 1 ! p2y03A- + 3, 4, 4, 1 ! p2y04A- + 4, 4, 5, 1 ! p2y05A- + 5, 4, 6, 1 ! p2y06A- + 6, 4, 7, 1 ! p2y07A- + 7, 4, 8, 1 ! p2y08A- + 8, 4, 9, 1 ! p2y09A- + 9, 4, 10, 1 ! p2y10A- + 10, 4, 11, 1 ! p2y11A- + 11, 4, 12, 1 ! p2y12A- + 12, 4, 13, 1 ! p2y13A- + 13, 4, 14, 1 ! p2y14A- + 14, 4, 15, 1 ! p2y15A- + 15, 4, 16, 1 ! p2y16A- + +SLOT=9 + 0, 4, 17, 1 ! p2y17A- + 1, 4, 18, 1 ! p2y18A- + 2, 4, 19, 1 ! p2y19A- + 3, 4, 20, 1 ! p2y20A- + 4, 4, 21, 1 ! p2y21A- + 5, 4, 1, 0 ! p2y01A+ + 6, 4, 2, 0 ! p2y02A+ + 7, 4, 3, 0 ! p2y03A+ + 8, 4, 4, 0 ! p2y04A+ + 9, 4, 5, 0 ! p2y05A+ + 10, 4, 6, 0 ! p2y06A+ + 11, 4, 7, 0 ! p2y07A+ + 12, 4, 8, 0 ! p2y08A+ + 13, 4, 9, 0 ! p2y09A+ + 14, 4, 10, 0 ! p2y10A+ + 15, 4, 11, 0 ! p2y11A+ + +SLOT=10 + 0, 4, 12, 0 ! p2y12A+ + 1, 4, 13, 0 ! p2y13A+ + 2, 4, 14, 0 ! p2y14A+ + 3, 4, 15, 0 ! p2y15A+ + 4, 4, 16, 0 ! p2y16A+ + 5, 4, 17, 0 ! p2y17A+ + 6, 4, 18, 0 ! p2y18A+ + 7, 4, 19, 0 ! p2y19A+ + 8, 4, 20, 0 ! p2y20A+ + 9, 4, 21, 0 ! p2y21A+ + +SLOT=20 +REFINDEX=0 + 15,1000, 0, 0 + 0, 1, 1, 2 ! p1x01T+ + 1, 1, 3, 2 ! p1x03T+ + 2, 1, 5, 2 ! p1x05T+ + 3, 1, 7, 2 ! p1x07T+ + 4, 1, 2, 2 ! p1x02T+ + 5, 1, 4, 2 ! p1x04T+ + 6, 1, 6, 2 ! p1x06T+ + 7, 1, 8, 2 ! p1x08T+ + 8, 1, 9, 2 ! p1x09T+ + 9, 1, 11, 2 ! p1x11T+ + 10, 1, 13, 2 ! p1x13T+ + 12, 1, 10, 2 ! p1x10T+ + 13, 1, 12, 2 ! p1x12T+ + 16, 1, 1, 3 ! p1x01T- + 17, 1, 3, 3 ! p1x03T- + 18, 1, 5, 3 ! p1x05T- + 19, 1, 7, 3 ! p1x07T- + 20, 1, 2, 3 ! p1x02T- + 21, 1, 4, 3 ! p1x04T- + 22, 1, 6, 3 ! p1x06T- + 23, 1, 8, 3 ! p1x08T- + 24, 1, 9, 3 ! p1x09T- + 25, 1, 11, 3 ! p1x11T- + 26, 1, 13, 3 ! p1x13T- + 28, 1, 10, 3 ! p1x10T- + 30, 1, 12, 3 ! p1x12T- + 32, 2, 1, 3 ! p1y01T- + 33, 2, 3, 3 ! p1y03T- + 34, 2, 5, 3 ! p1y05T- + 35, 2, 7, 3 ! p1y07T- + 36, 2, 2, 3 ! p1y02T- + 37, 2, 4, 3 ! p1y04T- + 38, 2, 6, 3 ! p1y06T- + 39, 2, 8, 3 ! p1y08T- + 40, 2, 9, 3 ! p1y09T- + 41, 2, 11, 3 ! p1y11T- + 42, 2, 13, 3 ! p1y13T- + 44, 2, 10, 3 ! p1y10T- + 45, 2, 12, 3 ! p1y12T- + 48, 2, 1, 2 ! p1y01T+ + 49, 2, 3, 2 ! p1y03T+ + 50, 2, 5, 2 ! p1y05T+ + 51, 2, 7, 2 ! p1y07T+ + 52, 2, 2, 2 ! p1y02T+ + 53, 2, 4, 2 ! p1y04T+ + 54, 2, 6, 2 ! p1y06T+ + 55, 2, 8, 2 ! p1y08T+ + 56, 2, 9, 2 ! p1y09T+ + 57, 2, 11, 2 ! p1y11T+ + 58, 2, 13, 2 ! p1y13T+ + 60, 2, 10, 2 ! p1y10T+ + 61, 2, 12, 2 ! p1y12T+ + 64, 3, 1, 2 ! p2x01T+ + 65, 3, 3, 2 ! p2x03T+ + 66, 3, 5, 2 ! p2x05T+ + 67, 3, 7, 2 ! p2x07T+ + 68, 3, 2, 2 ! p2x02T+ + 69, 3, 4, 2 ! p2x04T+ + 70, 3, 6, 2 ! p2x06T+ + 71, 3, 8, 2 ! p2x08T+ + 72, 3, 9, 2 ! p2x09T+ + 73, 3, 11, 2 ! p2x11T+ + 74, 3, 13, 2 ! p2x13T+ + 76, 3, 10, 2 ! p2x10T+ + 77, 3, 12, 2 ! p2x12T+ + 78, 3, 14, 2 ! p2x14T+ + 80, 3, 1, 3 ! p2x01T- + 81, 3, 3, 3 ! p2x03T- + 82, 3, 5, 3 ! p2x05T- + 83, 3, 7, 3 ! p2x07T- + 84, 3, 2, 3 ! p2x02T- + 85, 3, 4, 3 ! p2x04T- + 86, 3, 6, 3 ! p2x06T- + 87, 3, 8, 3 ! p2x08T- + 88, 3, 9, 3 ! p2x09T- + 89, 3, 11, 3 ! p2x11T- + 90, 3, 13, 3 ! p2x13T- + 92, 3, 10, 3 ! p2x10T- + 93, 3, 12, 3 ! p2x12T- + 94, 3, 14, 3 ! p2x14T- + 96, 4, 1, 3 ! p2y01T- + 97, 4, 3, 3 ! p2y03T- + 98, 4, 5, 3 ! p2y05T- + 99, 4, 7, 3 ! p2y07T- + 100, 4, 2, 3 ! p2y02T- + 101, 4, 4, 3 ! p2y04T- + 102, 4, 6, 3 ! p2y06T- + 103, 4, 8, 3 ! p2y08T- + 104, 4, 9, 3 ! p2y09T- + 105, 4, 11, 3 ! p2y11T- + 106, 4, 13, 3 ! p2y13T- + 107, 4, 15, 3 ! p2y15T- + 108, 4, 10, 3 ! p2y10T- + 109, 4, 12, 3 ! p2y12T- + 110, 4, 14, 3 ! p2y14T- + 111, 4, 16, 3 ! p2y16T- + 112, 4, 17, 3 ! p2y17T- + 113, 4, 19, 3 ! p2y19T- + 114, 4, 21, 3 ! p2y21T- + 116, 4, 18, 3 ! p2y18T- + 117, 4, 20, 3 ! p2y20T- + +SLOT=19 +REFINDEX=0 + 31,1000, 0, 1 + 0, 4, 1, 2 ! p2y01T+ + 1, 4, 3, 2 ! p2y03T+ + 2, 4, 5, 2 ! p2y05T+ + 3, 4, 7, 2 ! p2y07T+ + 4, 4, 2, 2 ! p2y02T+ + 5, 4, 4, 2 ! p2y04T+ + 6, 4, 6, 2 ! p2y06T+ + 7, 4, 8, 2 ! p2y08T+ + 8, 4, 9, 2 ! p2y09T+ + 9, 4, 11, 2 ! p2y11T+ + 10, 4, 13, 2 ! p2y13T+ + 11, 4, 15, 2 ! p2y15T+ + 12, 4, 10, 2 ! p2y10T+ + 13, 4, 12, 2 ! p2y12T+ + 14, 4, 14, 2 ! p2y14T+ + 15, 4, 16, 2 ! p2y16T+ + 16, 4, 17, 2 ! p2y17T+ + 17, 4, 19, 2 ! p2y19T+ + 18, 4, 21, 2 ! p2y21T+ + 20, 4, 18, 2 ! p2y18T+ + 21, 4, 20, 2 ! p2y20T+ diff --git a/MAPS/SHMS/DETEC/phodo_ptrig.map b/MAPS/SHMS/DETEC/phodo_ptrig.map new file mode 100644 index 00000000..8f82c1e6 --- /dev/null +++ b/MAPS/SHMS/DETEC/phodo_ptrig.map @@ -0,0 +1,333 @@ +! TSHMS_ID=20 :: ADC,TDC +! PSCIN_ID=23 :: ,ADC+,ADC-,TDC+,TDC- + + +DETECTOR=20 + +ROC=2 + +SLOT=14 + 0, 1, 1, 0 ! pAERSUM + 1, 1, 2, 0 ! pHGCERSUM + 2, 1, 3, 0 ! pNGCERSUM + +SLOT=20 + 15, 2, 1, 1 ! pT1 + +SLOT=19 + 31, 2, 2, 1 ! pT2 + 32, 2, 3, 1 ! p1X + 33, 2, 4, 1 ! p1Y + 34, 2, 5, 1 ! p2X + 35, 2, 6, 1 ! p2Y + 36, 2, 7, 1 ! p1T + 37, 2, 8, 1 ! p2T + 38, 2, 9, 1 ! pT3 + 39, 2, 10, 1 ! pAERSUM + 40, 2, 11, 1 ! pHGCERSUM + 41, 2, 12, 1 ! pNGCERSUM + +ROC=6 + +SLOT=6 + 79, 2, 13, 1 ! pDCREF1 + +SLOT=7 + 79, 2, 14, 1 ! pDCREF2 + +SLOT=8 + 79, 2, 15, 1 ! pDCREF3 + +SLOT=9 + 79, 2, 16, 1 ! pDCREF4 + +SLOT=10 + 79, 2, 17, 1 ! pDCREF5 + +SLOT=11 + 47, 2, 18, 1 ! pDCREF6 + +SLOT=12 + 47, 2, 19, 1 ! pDCREF7 + +SLOT=13 + 47, 2, 20, 1 ! pDCREF8 + +SLOT=14 + 15, 2, 21, 1 ! pDCREF9 + +SLOT=15 + 47, 2, 22, 1 ! pDCREF10 + + +DETECTOR=23 + +ROC=2 + +SLOT=3 + 0, 1, 1, 0 ! p1x01A+ + 1, 1, 2, 0 ! p1x02A+ + 2, 1, 3, 0 ! p1x03A+ + 3, 1, 4, 0 ! p1x04A+ + 4, 1, 5, 0 ! p1x05A+ + 5, 1, 6, 0 ! p1x06A+ + 6, 1, 7, 0 ! p1x07A+ + 7, 1, 8, 0 ! p1x08A+ + 8, 1, 9, 0 ! p1x09A+ + 9, 1, 10, 0 ! p1x10A+ + 10, 1, 11, 0 ! p1x11A+ + 11, 1, 12, 0 ! p1x12A+ + 12, 1, 13, 0 ! p1x13A+ + 13, 1, 1, 1 ! p1x01A- + 14, 1, 2, 1 ! p1x02A- + 15, 1, 3, 1 ! p1x03A- + +SLOT=4 + 0, 1, 4, 1 ! p1x04A- + 1, 1, 5, 1 ! p1x05A- + 2, 1, 6, 1 ! p1x06A- + 3, 1, 7, 1 ! p1x07A- + 4, 1, 8, 1 ! p1x08A- + 5, 1, 9, 1 ! p1x09A- + 6, 1, 10, 1 ! p1x10A- + 7, 1, 11, 1 ! p1x11A- + 8, 1, 12, 1 ! p1x12A- + 9, 1, 13, 1 ! p1x13A- + 10, 2, 1, 1 ! p1y01A- + 11, 2, 2, 1 ! p1y02A- + 12, 2, 3, 1 ! p1y03A- + 13, 2, 4, 1 ! p1y04A- + 14, 2, 5, 1 ! p1y05A- + 15, 2, 6, 1 ! p1y06A- + +SLOT=5 + 0, 2, 7, 1 ! p1y07A- + 1, 2, 8, 1 ! p1y08A- + 2, 2, 9, 1 ! p1y09A- + 3, 2, 10, 1 ! p1y10A- + 4, 2, 11, 1 ! p1y11A- + 5, 2, 12, 1 ! p1y12A- + 6, 2, 13, 1 ! p1y13A- + 7, 2, 1, 0 ! p1y01A+ + 8, 2, 2, 0 ! p1y02A+ + 9, 2, 3, 0 ! p1y03A+ + 10, 2, 4, 0 ! p1y04A+ + 11, 2, 5, 0 ! p1y05A+ + 12, 2, 6, 0 ! p1y06A+ + 13, 2, 7, 0 ! p1y07A+ + 14, 2, 8, 0 ! p1y08A+ + 15, 2, 9, 0 ! p1y09A+ + +SLOT=6 + 0, 2, 10, 0 ! p1y10A+ + 1, 2, 11, 0 ! p1y11A+ + 2, 2, 12, 0 ! p1y12A+ + 3, 2, 13, 0 ! p1y13A+ + 4, 3, 1, 0 ! p2x01A+ + 5, 3, 2, 0 ! p2x02A+ + 6, 3, 3, 0 ! p2x03A+ + 7, 3, 4, 0 ! p2x04A+ + 8, 3, 5, 0 ! p2x05A+ + 9, 3, 6, 0 ! p2x06A+ + 10, 3, 7, 0 ! p2x07A+ + 11, 3, 8, 0 ! p2x08A+ + 12, 3, 9, 0 ! p2x09A+ + 13, 3, 10, 0 ! p2x10A+ + 14, 3, 11, 0 ! p2x11A+ + 15, 3, 12, 0 ! p2x12A+ + +SLOT=7 + 0, 3, 13, 0 ! p2x13A+ + 1, 3, 14, 0 ! p2x14A+ + 2, 3, 1, 1 ! p2x01A- + 3, 3, 2, 1 ! p2x02A- + 4, 3, 3, 1 ! p2x03A- + 5, 3, 4, 1 ! p2x04A- + 6, 3, 5, 1 ! p2x05A- + 7, 3, 6, 1 ! p2x06A- + 8, 3, 7, 1 ! p2x07A- + 9, 3, 8, 1 ! p2x08A- + 10, 3, 9, 1 ! p2x09A- + 11, 3, 10, 1 ! p2x10A- + 12, 3, 11, 1 ! p2x11A- + 13, 3, 12, 1 ! p2x12A- + 14, 3, 13, 1 ! p2x13A- + 15, 3, 14, 1 ! p2x14A- + +SLOT=8 + 0, 4, 1, 1 ! p2y01A- + 1, 4, 2, 1 ! p2y02A- + 2, 4, 3, 1 ! p2y03A- + 3, 4, 4, 1 ! p2y04A- + 4, 4, 5, 1 ! p2y05A- + 5, 4, 6, 1 ! p2y06A- + 6, 4, 7, 1 ! p2y07A- + 7, 4, 8, 1 ! p2y08A- + 8, 4, 9, 1 ! p2y09A- + 9, 4, 10, 1 ! p2y10A- + 10, 4, 11, 1 ! p2y11A- + 11, 4, 12, 1 ! p2y12A- + 12, 4, 13, 1 ! p2y13A- + 13, 4, 14, 1 ! p2y14A- + 14, 4, 15, 1 ! p2y15A- + 15, 4, 16, 1 ! p2y16A- + +SLOT=9 + 0, 4, 17, 1 ! p2y17A- + 1, 4, 18, 1 ! p2y18A- + 2, 4, 19, 1 ! p2y19A- + 3, 4, 20, 1 ! p2y20A- + 4, 4, 21, 1 ! p2y21A- + 5, 4, 1, 0 ! p2y01A+ + 6, 4, 2, 0 ! p2y02A+ + 7, 4, 3, 0 ! p2y03A+ + 8, 4, 4, 0 ! p2y04A+ + 9, 4, 5, 0 ! p2y05A+ + 10, 4, 6, 0 ! p2y06A+ + 11, 4, 7, 0 ! p2y07A+ + 12, 4, 8, 0 ! p2y08A+ + 13, 4, 9, 0 ! p2y09A+ + 14, 4, 10, 0 ! p2y10A+ + 15, 4, 11, 0 ! p2y11A+ + +SLOT=10 + 0, 4, 12, 0 ! p2y12A+ + 1, 4, 13, 0 ! p2y13A+ + 2, 4, 14, 0 ! p2y14A+ + 3, 4, 15, 0 ! p2y15A+ + 4, 4, 16, 0 ! p2y16A+ + 5, 4, 17, 0 ! p2y17A+ + 6, 4, 18, 0 ! p2y18A+ + 7, 4, 19, 0 ! p2y19A+ + 8, 4, 20, 0 ! p2y20A+ + 9, 4, 21, 0 ! p2y21A+ + +SLOT=20 +REFINDEX=0 + 15,1000, 0, 0 + 0, 1, 1, 2 ! p1x01T+ + 1, 1, 3, 2 ! p1x03T+ + 2, 1, 5, 2 ! p1x05T+ + 3, 1, 7, 2 ! p1x07T+ + 4, 1, 2, 2 ! p1x02T+ + 5, 1, 4, 2 ! p1x04T+ + 6, 1, 6, 2 ! p1x06T+ + 7, 1, 8, 2 ! p1x08T+ + 8, 1, 9, 2 ! p1x09T+ + 9, 1, 11, 2 ! p1x11T+ + 10, 1, 13, 2 ! p1x13T+ + 12, 1, 10, 2 ! p1x10T+ + 13, 1, 12, 2 ! p1x12T+ + 16, 1, 1, 3 ! p1x01T- + 17, 1, 3, 3 ! p1x03T- + 18, 1, 5, 3 ! p1x05T- + 19, 1, 7, 3 ! p1x07T- + 20, 1, 2, 3 ! p1x02T- + 21, 1, 4, 3 ! p1x04T- + 22, 1, 6, 3 ! p1x06T- + 23, 1, 8, 3 ! p1x08T- + 24, 1, 9, 3 ! p1x09T- + 25, 1, 11, 3 ! p1x11T- + 26, 1, 13, 3 ! p1x13T- + 28, 1, 10, 3 ! p1x10T- + 30, 1, 12, 3 ! p1x12T- + 32, 2, 1, 3 ! p1y01T- + 33, 2, 3, 3 ! p1y03T- + 34, 2, 5, 3 ! p1y05T- + 35, 2, 7, 3 ! p1y07T- + 36, 2, 2, 3 ! p1y02T- + 37, 2, 4, 3 ! p1y04T- + 38, 2, 6, 3 ! p1y06T- + 39, 2, 8, 3 ! p1y08T- + 40, 2, 9, 3 ! p1y09T- + 41, 2, 11, 3 ! p1y11T- + 42, 2, 13, 3 ! p1y13T- + 44, 2, 10, 3 ! p1y10T- + 45, 2, 12, 3 ! p1y12T- + 48, 2, 1, 2 ! p1y01T+ + 49, 2, 3, 2 ! p1y03T+ + 50, 2, 5, 2 ! p1y05T+ + 51, 2, 7, 2 ! p1y07T+ + 52, 2, 2, 2 ! p1y02T+ + 53, 2, 4, 2 ! p1y04T+ + 54, 2, 6, 2 ! p1y06T+ + 55, 2, 8, 2 ! p1y08T+ + 56, 2, 9, 2 ! p1y09T+ + 57, 2, 11, 2 ! p1y11T+ + 58, 2, 13, 2 ! p1y13T+ + 60, 2, 10, 2 ! p1y10T+ + 61, 2, 12, 2 ! p1y12T+ + 64, 3, 1, 2 ! p2x01T+ + 65, 3, 3, 2 ! p2x03T+ + 66, 3, 5, 2 ! p2x05T+ + 67, 3, 7, 2 ! p2x07T+ + 68, 3, 2, 2 ! p2x02T+ + 69, 3, 4, 2 ! p2x04T+ + 70, 3, 6, 2 ! p2x06T+ + 71, 3, 8, 2 ! p2x08T+ + 72, 3, 9, 2 ! p2x09T+ + 73, 3, 11, 2 ! p2x11T+ + 74, 3, 13, 2 ! p2x13T+ + 76, 3, 10, 2 ! p2x10T+ + 77, 3, 12, 2 ! p2x12T+ + 78, 3, 14, 2 ! p2x14T+ + 80, 3, 1, 3 ! p2x01T- + 81, 3, 3, 3 ! p2x03T- + 82, 3, 5, 3 ! p2x05T- + 83, 3, 7, 3 ! p2x07T- + 84, 3, 2, 3 ! p2x02T- + 85, 3, 4, 3 ! p2x04T- + 86, 3, 6, 3 ! p2x06T- + 87, 3, 8, 3 ! p2x08T- + 88, 3, 9, 3 ! p2x09T- + 89, 3, 11, 3 ! p2x11T- + 90, 3, 13, 3 ! p2x13T- + 92, 3, 10, 3 ! p2x10T- + 93, 3, 12, 3 ! p2x12T- + 94, 3, 14, 3 ! p2x14T- + 96, 4, 1, 3 ! p2y01T- + 97, 4, 3, 3 ! p2y03T- + 98, 4, 5, 3 ! p2y05T- + 99, 4, 7, 3 ! p2y07T- + 100, 4, 2, 3 ! p2y02T- + 101, 4, 4, 3 ! p2y04T- + 102, 4, 6, 3 ! p2y06T- + 103, 4, 8, 3 ! p2y08T- + 104, 4, 9, 3 ! p2y09T- + 105, 4, 11, 3 ! p2y11T- + 106, 4, 13, 3 ! p2y13T- + 107, 4, 15, 3 ! p2y15T- + 108, 4, 10, 3 ! p2y10T- + 109, 4, 12, 3 ! p2y12T- + 110, 4, 14, 3 ! p2y14T- + 111, 4, 16, 3 ! p2y16T- + 112, 4, 17, 3 ! p2y17T- + 113, 4, 19, 3 ! p2y19T- + 114, 4, 21, 3 ! p2y21T- + 116, 4, 18, 3 ! p2y18T- + 117, 4, 20, 3 ! p2y20T- + +SLOT=19 +REFINDEX=0 + 31,1000, 0, 1 + 0, 4, 1, 2 ! p2y01T+ + 1, 4, 3, 2 ! p2y03T+ + 2, 4, 5, 2 ! p2y05T+ + 3, 4, 7, 2 ! p2y07T+ + 4, 4, 2, 2 ! p2y02T+ + 5, 4, 4, 2 ! p2y04T+ + 6, 4, 6, 2 ! p2y06T+ + 7, 4, 8, 2 ! p2y08T+ + 8, 4, 9, 2 ! p2y09T+ + 9, 4, 11, 2 ! p2y11T+ + 10, 4, 13, 2 ! p2y13T+ + 11, 4, 15, 2 ! p2y15T+ + 12, 4, 10, 2 ! p2y10T+ + 13, 4, 12, 2 ! p2y12T+ + 14, 4, 14, 2 ! p2y14T+ + 15, 4, 16, 2 ! p2y16T+ + 16, 4, 17, 2 ! p2y17T+ + 17, 4, 19, 2 ! p2y19T+ + 18, 4, 21, 2 ! p2y21T+ + 20, 4, 18, 2 ! p2y18T+ + 21, 4, 20, 2 ! p2y20T+ diff --git a/MAPS/SHMS/DETEC/pngcer.map b/MAPS/SHMS/DETEC/pngcer.map new file mode 100644 index 00000000..518adeb5 --- /dev/null +++ b/MAPS/SHMS/DETEC/pngcer.map @@ -0,0 +1,12 @@ +! PNGCER_ID=21 :: ADC + + +DETECTOR=21 + +ROC=2 + +SLOT=13 + 12, 1, 1, 0 ! pNGCER01 + 13, 1, 2, 0 ! pNGCER02 + 14, 1, 3, 0 ! pNGCER03 + 15, 1, 4, 0 ! pNGCER04 diff --git a/MAPS/SHMS/DETEC/pngcer_ptrig.map b/MAPS/SHMS/DETEC/pngcer_ptrig.map new file mode 100644 index 00000000..697bbb6d --- /dev/null +++ b/MAPS/SHMS/DETEC/pngcer_ptrig.map @@ -0,0 +1,71 @@ +! TSHMS_ID=20 :: ::,ADC,TDC +! PNGCER_ID=21 :: ::,ADC,TDC + + +DETECTOR=20 + +ROC=2 + +SLOT=14 + 0, 1, 1, 0 ! pAERSUM + 1, 1, 2, 0 ! pHGCERSUM + 2, 1, 3, 0 ! pNGCERSUM + +SLOT=20 + 15, 2, 1, 1 ! pT1 + +SLOT=19 + 31, 2, 2, 1 ! pT2 + 32, 2, 3, 1 ! p1X + 33, 2, 4, 1 ! p1Y + 34, 2, 5, 1 ! p2X + 35, 2, 6, 1 ! p2Y + 36, 2, 7, 1 ! p1T + 37, 2, 8, 1 ! p2T + 38, 2, 9, 1 ! pT3 + 39, 2, 10, 1 ! pAERSUM + 40, 2, 11, 1 ! pHGCERSUM + 41, 2, 12, 1 ! pNGCERSUM + +ROC=6 + +SLOT=6 + 79, 2, 13, 1 ! pDCREF1 + +SLOT=7 + 79, 2, 14, 1 ! pDCREF2 + +SLOT=8 + 79, 2, 15, 1 ! pDCREF3 + +SLOT=9 + 79, 2, 16, 1 ! pDCREF4 + +SLOT=10 + 79, 2, 17, 1 ! pDCREF5 + +SLOT=11 + 47, 2, 18, 1 ! pDCREF6 + +SLOT=12 + 47, 2, 19, 1 ! pDCREF7 + +SLOT=13 + 47, 2, 20, 1 ! pDCREF8 + +SLOT=14 + 15, 2, 21, 1 ! pDCREF9 + +SLOT=15 + 47, 2, 22, 1 ! pDCREF10 + + +DETECTOR=21 + +ROC=2 + +SLOT=13 + 12, 1, 1, 0 ! pNGCER01 + 13, 1, 2, 0 ! pNGCER02 + 14, 1, 3, 0 ! pNGCER03 + 15, 1, 4, 0 ! pNGCER04 diff --git a/MAPS/SHMS/DETEC/praster_simple.map b/MAPS/SHMS/DETEC/praster_simple.map new file mode 100644 index 00000000..b0212c9b --- /dev/null +++ b/MAPS/SHMS/DETEC/praster_simple.map @@ -0,0 +1,18 @@ +!HMS: +! TSHMS_ID=20 ADC,TDC + +! Plane = 1 >> ADC Only +! Plane = 2 >> TDC Only + +detector=20 + +ROC=2 + +!F250 module +SLOT=14 +! chan plane bar sig + 12, 1, 1, 0! FR-XA + 13, 1, 2, 0! FR-XB + 14, 1, 3, 0! FR-YA + 15, 1, 4, 0! FR-YB + diff --git a/MAPS/SHMS/DETEC/ptrig.map b/MAPS/SHMS/DETEC/ptrig.map new file mode 100644 index 00000000..22a6a97e --- /dev/null +++ b/MAPS/SHMS/DETEC/ptrig.map @@ -0,0 +1,59 @@ +! TSHMS_ID=20 :: ADC,TDC + + +DETECTOR=20 + +ROC=2 + +SLOT=14 + 0, 1, 1, 0 ! pAERSUM + 1, 1, 2, 0 ! pHGCERSUM + 2, 1, 3, 0 ! pNGCERSUM + +SLOT=20 + 15, 2, 1, 1 ! pT1 + +SLOT=19 + 31, 2, 2, 1 ! pT2 + 32, 2, 3, 1 ! p1X + 33, 2, 4, 1 ! p1Y + 34, 2, 5, 1 ! p2X + 35, 2, 6, 1 ! p2Y + 36, 2, 7, 1 ! p1T + 37, 2, 8, 1 ! p2T + 38, 2, 9, 1 ! pT3 + 39, 2, 10, 1 ! pAERSUM + 40, 2, 11, 1 ! pHGCERSUM + 41, 2, 12, 1 ! pNGCERSUM + +ROC=6 + +SLOT=6 + 79, 2, 13, 1 ! pDCREF1 + +SLOT=7 + 79, 2, 14, 1 ! pDCREF2 + +SLOT=8 + 79, 2, 15, 1 ! pDCREF3 + +SLOT=9 + 79, 2, 16, 1 ! pDCREF4 + +SLOT=10 + 79, 2, 17, 1 ! pDCREF5 + +SLOT=11 + 47, 2, 18, 1 ! pDCREF6 + +SLOT=12 + 47, 2, 19, 1 ! pDCREF7 + +SLOT=13 + 47, 2, 20, 1 ! pDCREF8 + +SLOT=14 + 15, 2, 21, 1 ! pDCREF9 + +SLOT=15 + 47, 2, 22, 1 ! pDCREF10 diff --git a/MAPS/SHMS/DETEC/shms_stack.map b/MAPS/SHMS/DETEC/shms_stack.map new file mode 100644 index 00000000..c478db5a --- /dev/null +++ b/MAPS/SHMS/DETEC/shms_stack.map @@ -0,0 +1,2008 @@ +! TSHMS_ID=20 :: ADC,TDC +! PNGCER_ID=21 :: ADC +! PDC_ID=22 :: TDC +! PSCIN_ID=23 :: ,ADC+,ADC-,TDC+,TDC- +! PHGCER_ID=24 :: ADC +! PAERO_ID=25 :: ,ADC+,ADC- +! PCAL_ID=26 :: ADC + + +DETECTOR=20 + +ROC=2 + +SLOT=14 + 0, 1, 1, 0 ! pAERSUM + 1, 1, 2, 0 ! pHGCERSUM + 2, 1, 3, 0 ! pNGCERSUM + +SLOT=20 + 15, 2, 1, 1 ! pT1 + +SLOT=19 + 31, 2, 2, 1 ! pT2 + 32, 2, 3, 1 ! p1X + 33, 2, 4, 1 ! p1Y + 34, 2, 5, 1 ! p2X + 35, 2, 6, 1 ! p2Y + 36, 2, 7, 1 ! p1T + 37, 2, 8, 1 ! p2T + 38, 2, 9, 1 ! pT3 + 39, 2, 10, 1 ! pAERSUM + 40, 2, 11, 1 ! pHGCERSUM + 41, 2, 12, 1 ! pNGCERSUM + +ROC=6 + +SLOT=6 + 79, 2, 13, 1 ! pDCREF1 + +SLOT=7 + 79, 2, 14, 1 ! pDCREF2 + +SLOT=8 + 79, 2, 15, 1 ! pDCREF3 + +SLOT=9 + 79, 2, 16, 1 ! pDCREF4 + +SLOT=10 + 79, 2, 17, 1 ! pDCREF5 + +SLOT=11 + 47, 2, 18, 1 ! pDCREF6 + +SLOT=12 + 47, 2, 19, 1 ! pDCREF7 + +SLOT=13 + 47, 2, 20, 1 ! pDCREF8 + +SLOT=14 + 15, 2, 21, 1 ! pDCREF9 + +SLOT=15 + 47, 2, 22, 1 ! pDCREF10 + + +DETECTOR=21 + +ROC=2 + +SLOT=13 + 12, 1, 1, 0 ! pNGCER01 + 13, 1, 2, 0 ! pNGCER02 + 14, 1, 3, 0 ! pNGCER03 + 15, 1, 4, 0 ! pNGCER04 + + +DETECTOR=22 ! SHMS chambers + +ROC=6 + +SLOT=9 +REFCHAN=79 + 78, 1, 1 ! DC1, Plane U, wire 1 + 77, 1, 2 ! DC1, Plane U, wire 2 + 76, 1, 3 ! DC1, Plane U, wire 3 + 75, 1, 4 ! DC1, Plane U, wire 4 + 74, 1, 5 ! DC1, Plane U, wire 5 + 73, 1, 6 ! DC1, Plane U, wire 6 + 72, 1, 7 ! DC1, Plane U, wire 7 + 71, 1, 8 ! DC1, Plane U, wire 8 + 70, 1, 9 ! DC1, Plane U, wire 9 + 69, 1, 10 ! DC1, Plane U, wire 10 + 68, 1, 11 ! DC1, Plane U, wire 11 + 67, 1, 12 ! DC1, Plane U, wire 12 + 66, 1, 13 ! DC1, Plane U, wire 13 + 65, 1, 14 ! DC1, Plane U, wire 14 + 64, 1, 15 ! DC1, Plane U, wire 15 + +SLOT=7 +REFCHAN=79 + 31, 1, 16 ! DC1, Plane U, wire 16 + 30, 1, 17 ! DC1, Plane U, wire 17 + 29, 1, 18 ! DC1, Plane U, wire 18 + 28, 1, 19 ! DC1, Plane U, wire 19 + 27, 1, 20 ! DC1, Plane U, wire 20 + 26, 1, 21 ! DC1, Plane U, wire 21 + 25, 1, 22 ! DC1, Plane U, wire 22 + 24, 1, 23 ! DC1, Plane U, wire 23 + 23, 1, 24 ! DC1, Plane U, wire 24 + 22, 1, 25 ! DC1, Plane U, wire 25 + 21, 1, 26 ! DC1, Plane U, wire 26 + 20, 1, 27 ! DC1, Plane U, wire 27 + 19, 1, 28 ! DC1, Plane U, wire 28 + 18, 1, 29 ! DC1, Plane U, wire 29 + 17, 1, 30 ! DC1, Plane U, wire 30 + 16, 1, 31 ! DC1, Plane U, wire 31 + +SLOT=6 +REFCHAN=79 + 95, 1, 32 ! DC1, Plane U, wire 32 + 94, 1, 33 ! DC1, Plane U, wire 33 + 93, 1, 34 ! DC1, Plane U, wire 34 + 92, 1, 35 ! DC1, Plane U, wire 35 + 91, 1, 36 ! DC1, Plane U, wire 36 + 90, 1, 37 ! DC1, Plane U, wire 37 + 89, 1, 38 ! DC1, Plane U, wire 38 + 88, 1, 39 ! DC1, Plane U, wire 39 + 87, 1, 40 ! DC1, Plane U, wire 40 + 86, 1, 41 ! DC1, Plane U, wire 41 + 85, 1, 42 ! DC1, Plane U, wire 42 + 84, 1, 43 ! DC1, Plane U, wire 43 + 83, 1, 44 ! DC1, Plane U, wire 44 + 82, 1, 45 ! DC1, Plane U, wire 45 + 81, 1, 46 ! DC1, Plane U, wire 46 + 80, 1, 47 ! DC1, Plane U, wire 47 + 31, 1, 48 ! DC1, Plane U, wire 48 + 30, 1, 49 ! DC1, Plane U, wire 49 + 29, 1, 50 ! DC1, Plane U, wire 50 + 28, 1, 51 ! DC1, Plane U, wire 51 + 27, 1, 52 ! DC1, Plane U, wire 52 + 26, 1, 53 ! DC1, Plane U, wire 53 + 25, 1, 54 ! DC1, Plane U, wire 54 + 24, 1, 55 ! DC1, Plane U, wire 55 + 23, 1, 56 ! DC1, Plane U, wire 56 + 22, 1, 57 ! DC1, Plane U, wire 57 + 21, 1, 58 ! DC1, Plane U, wire 58 + 20, 1, 59 ! DC1, Plane U, wire 59 + 19, 1, 60 ! DC1, Plane U, wire 60 + 18, 1, 61 ! DC1, Plane U, wire 61 + 17, 1, 62 ! DC1, Plane U, wire 62 + 16, 1, 63 ! DC1, Plane U, wire 63 + +SLOT=8 +REFCHAN=79 + 112, 1, 64 ! DC1, Plane U, wire 64 + 113, 1, 65 ! DC1, Plane U, wire 65 + 114, 1, 66 ! DC1, Plane U, wire 66 + 115, 1, 67 ! DC1, Plane U, wire 67 + 116, 1, 68 ! DC1, Plane U, wire 68 + 117, 1, 69 ! DC1, Plane U, wire 69 + 118, 1, 70 ! DC1, Plane U, wire 70 + 119, 1, 71 ! DC1, Plane U, wire 71 + 120, 1, 72 ! DC1, Plane U, wire 72 + 121, 1, 73 ! DC1, Plane U, wire 73 + 122, 1, 74 ! DC1, Plane U, wire 74 + 123, 1, 75 ! DC1, Plane U, wire 75 + 124, 1, 76 ! DC1, Plane U, wire 76 + 125, 1, 77 ! DC1, Plane U, wire 77 + 126, 1, 78 ! DC1, Plane U, wire 78 + 127, 1, 79 ! DC1, Plane U, wire 79 + 48, 1, 80 ! DC1, Plane U, wire 80 + 49, 1, 81 ! DC1, Plane U, wire 81 + 50, 1, 82 ! DC1, Plane U, wire 82 + 51, 1, 83 ! DC1, Plane U, wire 83 + 52, 1, 84 ! DC1, Plane U, wire 84 + 53, 1, 85 ! DC1, Plane U, wire 85 + 54, 1, 86 ! DC1, Plane U, wire 86 + 55, 1, 87 ! DC1, Plane U, wire 87 + 56, 1, 88 ! DC1, Plane U, wire 88 + 57, 1, 89 ! DC1, Plane U, wire 89 + 58, 1, 90 ! DC1, Plane U, wire 90 + 59, 1, 91 ! DC1, Plane U, wire 91 + 60, 1, 92 ! DC1, Plane U, wire 92 + 61, 1, 93 ! DC1, Plane U, wire 93 + 62, 1, 94 ! DC1, Plane U, wire 94 + 63, 1, 95 ! DC1, Plane U, wire 95 + +SLOT=9 +REFCHAN=79 + 112, 1, 96 ! DC1, Plane U, wire 96 + 113, 1, 97 ! DC1, Plane U, wire 97 + 114, 1, 98 ! DC1, Plane U, wire 98 + 115, 1, 99 ! DC1, Plane U, wire 99 + 116, 1, 100 ! DC1, Plane U, wire 100 + 117, 1, 101 ! DC1, Plane U, wire 101 + 118, 1, 102 ! DC1, Plane U, wire 102 + 119, 1, 103 ! DC1, Plane U, wire 103 + 120, 1, 104 ! DC1, Plane U, wire 104 + 121, 1, 105 ! DC1, Plane U, wire 105 + 122, 1, 106 ! DC1, Plane U, wire 106 + 123, 1, 107 ! DC1, Plane U, wire 107 + +SLOT=8 +REFCHAN=79 + 75, 2, 1 ! DC1, Plane U', wire 1 + 74, 2, 2 ! DC1, Plane U', wire 2 + 73, 2, 3 ! DC1, Plane U', wire 3 + 72, 2, 4 ! DC1, Plane U', wire 4 + 71, 2, 5 ! DC1, Plane U', wire 5 + 70, 2, 6 ! DC1, Plane U', wire 6 + 69, 2, 7 ! DC1, Plane U', wire 7 + 68, 2, 8 ! DC1, Plane U', wire 8 + 67, 2, 9 ! DC1, Plane U', wire 9 + 66, 2, 10 ! DC1, Plane U', wire 10 + 65, 2, 11 ! DC1, Plane U', wire 11 + 64, 2, 12 ! DC1, Plane U', wire 12 + +SLOT=6 +REFCHAN=79 + 127, 2, 13 ! DC1, Plane U', wire 13 + 126, 2, 14 ! DC1, Plane U', wire 14 + 125, 2, 15 ! DC1, Plane U', wire 15 + 124, 2, 16 ! DC1, Plane U', wire 16 + 123, 2, 17 ! DC1, Plane U', wire 17 + 122, 2, 18 ! DC1, Plane U', wire 18 + 121, 2, 19 ! DC1, Plane U', wire 19 + 120, 2, 20 ! DC1, Plane U', wire 20 + 119, 2, 21 ! DC1, Plane U', wire 21 + 118, 2, 22 ! DC1, Plane U', wire 22 + 117, 2, 23 ! DC1, Plane U', wire 23 + 116, 2, 24 ! DC1, Plane U', wire 24 + 115, 2, 25 ! DC1, Plane U', wire 25 + 114, 2, 26 ! DC1, Plane U', wire 26 + 113, 2, 27 ! DC1, Plane U', wire 27 + 112, 2, 28 ! DC1, Plane U', wire 28 + 47, 2, 29 ! DC1, Plane U', wire 29 + 46, 2, 30 ! DC1, Plane U', wire 30 + 45, 2, 31 ! DC1, Plane U', wire 31 + 44, 2, 32 ! DC1, Plane U', wire 32 + 43, 2, 33 ! DC1, Plane U', wire 33 + 42, 2, 34 ! DC1, Plane U', wire 34 + 41, 2, 35 ! DC1, Plane U', wire 35 + 40, 2, 36 ! DC1, Plane U', wire 36 + 39, 2, 37 ! DC1, Plane U', wire 37 + 38, 2, 38 ! DC1, Plane U', wire 38 + 37, 2, 39 ! DC1, Plane U', wire 39 + 36, 2, 40 ! DC1, Plane U', wire 40 + 35, 2, 41 ! DC1, Plane U', wire 41 + 34, 2, 42 ! DC1, Plane U', wire 42 + 33, 2, 43 ! DC1, Plane U', wire 43 + 32, 2, 44 ! DC1, Plane U', wire 44 + +SLOT=9 +REFCHAN=79 + 0, 2, 45 ! DC1, Plane U', wire 45 + 1, 2, 46 ! DC1, Plane U', wire 46 + 2, 2, 47 ! DC1, Plane U', wire 47 + 3, 2, 48 ! DC1, Plane U', wire 48 + 4, 2, 49 ! DC1, Plane U', wire 49 + 5, 2, 50 ! DC1, Plane U', wire 50 + 6, 2, 51 ! DC1, Plane U', wire 51 + 7, 2, 52 ! DC1, Plane U', wire 52 + 8, 2, 53 ! DC1, Plane U', wire 53 + 9, 2, 54 ! DC1, Plane U', wire 54 + 10, 2, 55 ! DC1, Plane U', wire 55 + 11, 2, 56 ! DC1, Plane U', wire 56 + 12, 2, 57 ! DC1, Plane U', wire 57 + 13, 2, 58 ! DC1, Plane U', wire 58 + 14, 2, 59 ! DC1, Plane U', wire 59 + 15, 2, 60 ! DC1, Plane U', wire 60 + +SLOT=8 +REFCHAN=79 + 96, 2, 61 ! DC1, Plane U', wire 61 + 97, 2, 62 ! DC1, Plane U', wire 62 + 98, 2, 63 ! DC1, Plane U', wire 63 + 99, 2, 64 ! DC1, Plane U', wire 64 + 100, 2, 65 ! DC1, Plane U', wire 65 + 101, 2, 66 ! DC1, Plane U', wire 66 + 102, 2, 67 ! DC1, Plane U', wire 67 + 103, 2, 68 ! DC1, Plane U', wire 68 + 104, 2, 69 ! DC1, Plane U', wire 69 + 105, 2, 70 ! DC1, Plane U', wire 70 + 106, 2, 71 ! DC1, Plane U', wire 71 + 107, 2, 72 ! DC1, Plane U', wire 72 + 108, 2, 73 ! DC1, Plane U', wire 73 + 109, 2, 74 ! DC1, Plane U', wire 74 + 110, 2, 75 ! DC1, Plane U', wire 75 + 111, 2, 76 ! DC1, Plane U', wire 76 + +SLOT=10 +REFCHAN=79 + 80, 2, 77 ! DC1, Plane U', wire 77 + 81, 2, 78 ! DC1, Plane U', wire 78 + 82, 2, 79 ! DC1, Plane U', wire 79 + 83, 2, 80 ! DC1, Plane U', wire 80 + 84, 2, 81 ! DC1, Plane U', wire 81 + 85, 2, 82 ! DC1, Plane U', wire 82 + 86, 2, 83 ! DC1, Plane U', wire 83 + 87, 2, 84 ! DC1, Plane U', wire 84 + 88, 2, 85 ! DC1, Plane U', wire 85 + 89, 2, 86 ! DC1, Plane U', wire 86 + 90, 2, 87 ! DC1, Plane U', wire 87 + 91, 2, 88 ! DC1, Plane U', wire 88 + 92, 2, 89 ! DC1, Plane U', wire 89 + 93, 2, 90 ! DC1, Plane U', wire 90 + 94, 2, 91 ! DC1, Plane U', wire 91 + 95, 2, 92 ! DC1, Plane U', wire 92 + 16, 2, 93 ! DC1, Plane U', wire 93 + 17, 2, 94 ! DC1, Plane U', wire 94 + 18, 2, 95 ! DC1, Plane U', wire 95 + 19, 2, 96 ! DC1, Plane U', wire 96 + 20, 2, 97 ! DC1, Plane U', wire 97 + 21, 2, 98 ! DC1, Plane U', wire 98 + 22, 2, 99 ! DC1, Plane U', wire 99 + 23, 2, 100 ! DC1, Plane U', wire 100 + 24, 2, 101 ! DC1, Plane U', wire 101 + 25, 2, 102 ! DC1, Plane U', wire 102 + 26, 2, 103 ! DC1, Plane U', wire 103 + 27, 2, 104 ! DC1, Plane U', wire 104 + 28, 2, 105 ! DC1, Plane U', wire 105 + 29, 2, 106 ! DC1, Plane U', wire 106 + 30, 2, 107 ! DC1, Plane U', wire 107 + +SLOT=9 +REFCHAN=79 + 46, 5, 1 ! DC1, Plane V, wire 1 + 45, 5, 2 ! DC1, Plane V, wire 2 + 44, 5, 3 ! DC1, Plane V, wire 3 + 43, 5, 4 ! DC1, Plane V, wire 4 + 42, 5, 5 ! DC1, Plane V, wire 5 + 41, 5, 6 ! DC1, Plane V, wire 6 + 40, 5, 7 ! DC1, Plane V, wire 7 + 39, 5, 8 ! DC1, Plane V, wire 8 + 38, 5, 9 ! DC1, Plane V, wire 9 + 37, 5, 10 ! DC1, Plane V, wire 10 + 36, 5, 11 ! DC1, Plane V, wire 11 + 35, 5, 12 ! DC1, Plane V, wire 12 + 34, 5, 13 ! DC1, Plane V, wire 13 + 33, 5, 14 ! DC1, Plane V, wire 14 + 32, 5, 15 ! DC1, Plane V, wire 15 + +SLOT=8 +REFCHAN=79 + 31, 5, 16 ! DC1, Plane V, wire 16 + 30, 5, 17 ! DC1, Plane V, wire 17 + 29, 5, 18 ! DC1, Plane V, wire 18 + 28, 5, 19 ! DC1, Plane V, wire 19 + 27, 5, 20 ! DC1, Plane V, wire 20 + 26, 5, 21 ! DC1, Plane V, wire 21 + 25, 5, 22 ! DC1, Plane V, wire 22 + 24, 5, 23 ! DC1, Plane V, wire 23 + 23, 5, 24 ! DC1, Plane V, wire 24 + 22, 5, 25 ! DC1, Plane V, wire 25 + 21, 5, 26 ! DC1, Plane V, wire 26 + 20, 5, 27 ! DC1, Plane V, wire 27 + 19, 5, 28 ! DC1, Plane V, wire 28 + 18, 5, 29 ! DC1, Plane V, wire 29 + 17, 5, 30 ! DC1, Plane V, wire 30 + 16, 5, 31 ! DC1, Plane V, wire 31 + +SLOT=10 +REFCHAN=79 + 15, 5, 32 ! DC1, Plane V, wire 32 + 14, 5, 33 ! DC1, Plane V, wire 33 + 13, 5, 34 ! DC1, Plane V, wire 34 + 12, 5, 35 ! DC1, Plane V, wire 35 + 11, 5, 36 ! DC1, Plane V, wire 36 + 10, 5, 37 ! DC1, Plane V, wire 37 + 9, 5, 38 ! DC1, Plane V, wire 38 + 8, 5, 39 ! DC1, Plane V, wire 39 + 7, 5, 40 ! DC1, Plane V, wire 40 + 6, 5, 41 ! DC1, Plane V, wire 41 + 5, 5, 42 ! DC1, Plane V, wire 42 + 4, 5, 43 ! DC1, Plane V, wire 43 + 3, 5, 44 ! DC1, Plane V, wire 44 + 2, 5, 45 ! DC1, Plane V, wire 45 + 1, 5, 46 ! DC1, Plane V, wire 46 + 0, 5, 47 ! DC1, Plane V, wire 47 + +SLOT=9 +REFCHAN=79 + 63, 5, 48 ! DC1, Plane V, wire 48 + 62, 5, 49 ! DC1, Plane V, wire 49 + 61, 5, 50 ! DC1, Plane V, wire 50 + 60, 5, 51 ! DC1, Plane V, wire 51 + 59, 5, 52 ! DC1, Plane V, wire 52 + 58, 5, 53 ! DC1, Plane V, wire 53 + 57, 5, 54 ! DC1, Plane V, wire 54 + 56, 5, 55 ! DC1, Plane V, wire 55 + 55, 5, 56 ! DC1, Plane V, wire 56 + 54, 5, 57 ! DC1, Plane V, wire 57 + 53, 5, 58 ! DC1, Plane V, wire 58 + 52, 5, 59 ! DC1, Plane V, wire 59 + 51, 5, 60 ! DC1, Plane V, wire 60 + 50, 5, 61 ! DC1, Plane V, wire 61 + 49, 5, 62 ! DC1, Plane V, wire 62 + 48, 5, 63 ! DC1, Plane V, wire 63 + +SLOT=7 +REFCHAN=79 + 32, 5, 64 ! DC1, Plane V, wire 64 + 33, 5, 65 ! DC1, Plane V, wire 65 + 34, 5, 66 ! DC1, Plane V, wire 66 + 35, 5, 67 ! DC1, Plane V, wire 67 + 36, 5, 68 ! DC1, Plane V, wire 68 + 37, 5, 69 ! DC1, Plane V, wire 69 + 38, 5, 70 ! DC1, Plane V, wire 70 + 39, 5, 71 ! DC1, Plane V, wire 71 + 40, 5, 72 ! DC1, Plane V, wire 72 + 41, 5, 73 ! DC1, Plane V, wire 73 + 42, 5, 74 ! DC1, Plane V, wire 74 + 43, 5, 75 ! DC1, Plane V, wire 75 + 44, 5, 76 ! DC1, Plane V, wire 76 + 45, 5, 77 ! DC1, Plane V, wire 77 + 46, 5, 78 ! DC1, Plane V, wire 78 + 47, 5, 79 ! DC1, Plane V, wire 79 + 96, 5, 80 ! DC1, Plane V, wire 80 + 97, 5, 81 ! DC1, Plane V, wire 81 + 98, 5, 82 ! DC1, Plane V, wire 82 + 99, 5, 83 ! DC1, Plane V, wire 83 + 100, 5, 84 ! DC1, Plane V, wire 84 + 101, 5, 85 ! DC1, Plane V, wire 85 + 102, 5, 86 ! DC1, Plane V, wire 86 + 103, 5, 87 ! DC1, Plane V, wire 87 + 104, 5, 88 ! DC1, Plane V, wire 88 + 105, 5, 89 ! DC1, Plane V, wire 89 + 106, 5, 90 ! DC1, Plane V, wire 90 + 107, 5, 91 ! DC1, Plane V, wire 91 + 108, 5, 92 ! DC1, Plane V, wire 92 + 109, 5, 93 ! DC1, Plane V, wire 93 + 110, 5, 94 ! DC1, Plane V, wire 94 + 111, 5, 95 ! DC1, Plane V, wire 95 + 64, 5, 96 ! DC1, Plane V, wire 96 + 65, 5, 97 ! DC1, Plane V, wire 97 + 66, 5, 98 ! DC1, Plane V, wire 98 + 67, 5, 99 ! DC1, Plane V, wire 99 + 68, 5, 100 ! DC1, Plane V, wire 100 + 69, 5, 101 ! DC1, Plane V, wire 101 + 70, 5, 102 ! DC1, Plane V, wire 102 + 71, 5, 103 ! DC1, Plane V, wire 103 + 72, 5, 104 ! DC1, Plane V, wire 104 + 73, 5, 105 ! DC1, Plane V, wire 105 + 74, 5, 106 ! DC1, Plane V, wire 106 + 75, 5, 107 ! DC1, Plane V, wire 107 + +SLOT=10 +REFCHAN=79 + 75, 6, 1 ! DC1, Plane V', wire 1 + 74, 6, 2 ! DC1, Plane V', wire 2 + 73, 6, 3 ! DC1, Plane V', wire 3 + 72, 6, 4 ! DC1, Plane V', wire 4 + 71, 6, 5 ! DC1, Plane V', wire 5 + 70, 6, 6 ! DC1, Plane V', wire 6 + 69, 6, 7 ! DC1, Plane V', wire 7 + 68, 6, 8 ! DC1, Plane V', wire 8 + 67, 6, 9 ! DC1, Plane V', wire 9 + 66, 6, 10 ! DC1, Plane V', wire 10 + 65, 6, 11 ! DC1, Plane V', wire 11 + 64, 6, 12 ! DC1, Plane V', wire 12 + 47, 6, 13 ! DC1, Plane V', wire 13 + 46, 6, 14 ! DC1, Plane V', wire 14 + 45, 6, 15 ! DC1, Plane V', wire 15 + 44, 6, 16 ! DC1, Plane V', wire 16 + 43, 6, 17 ! DC1, Plane V', wire 17 + 42, 6, 18 ! DC1, Plane V', wire 18 + 41, 6, 19 ! DC1, Plane V', wire 19 + 40, 6, 20 ! DC1, Plane V', wire 20 + 39, 6, 21 ! DC1, Plane V', wire 21 + 38, 6, 22 ! DC1, Plane V', wire 22 + 37, 6, 23 ! DC1, Plane V', wire 23 + 36, 6, 24 ! DC1, Plane V', wire 24 + 35, 6, 25 ! DC1, Plane V', wire 25 + 34, 6, 26 ! DC1, Plane V', wire 26 + 33, 6, 27 ! DC1, Plane V', wire 27 + 32, 6, 28 ! DC1, Plane V', wire 28 + +SLOT=9 +REFCHAN=79 + 111, 6, 29 ! DC1, Plane V', wire 29 + 110, 6, 30 ! DC1, Plane V', wire 30 + 109, 6, 31 ! DC1, Plane V', wire 31 + 108, 6, 32 ! DC1, Plane V', wire 32 + 107, 6, 33 ! DC1, Plane V', wire 33 + 106, 6, 34 ! DC1, Plane V', wire 34 + 105, 6, 35 ! DC1, Plane V', wire 35 + 104, 6, 36 ! DC1, Plane V', wire 36 + 103, 6, 37 ! DC1, Plane V', wire 37 + 102, 6, 38 ! DC1, Plane V', wire 38 + 101, 6, 39 ! DC1, Plane V', wire 39 + 100, 6, 40 ! DC1, Plane V', wire 40 + 99, 6, 41 ! DC1, Plane V', wire 41 + 98, 6, 42 ! DC1, Plane V', wire 42 + 97, 6, 43 ! DC1, Plane V', wire 43 + 96, 6, 44 ! DC1, Plane V', wire 44 + +SLOT=8 +REFCHAN=79 + 80, 6, 45 ! DC1, Plane V', wire 45 + 81, 6, 46 ! DC1, Plane V', wire 46 + 82, 6, 47 ! DC1, Plane V', wire 47 + 83, 6, 48 ! DC1, Plane V', wire 48 + 84, 6, 49 ! DC1, Plane V', wire 49 + 85, 6, 50 ! DC1, Plane V', wire 50 + 86, 6, 51 ! DC1, Plane V', wire 51 + 87, 6, 52 ! DC1, Plane V', wire 52 + 88, 6, 53 ! DC1, Plane V', wire 53 + 89, 6, 54 ! DC1, Plane V', wire 54 + 90, 6, 55 ! DC1, Plane V', wire 55 + 91, 6, 56 ! DC1, Plane V', wire 56 + 92, 6, 57 ! DC1, Plane V', wire 57 + 93, 6, 58 ! DC1, Plane V', wire 58 + 94, 6, 59 ! DC1, Plane V', wire 59 + 95, 6, 60 ! DC1, Plane V', wire 60 + +SLOT=7 +REFCHAN=79 + 112, 6, 61 ! DC1, Plane V', wire 61 + 113, 6, 62 ! DC1, Plane V', wire 62 + 114, 6, 63 ! DC1, Plane V', wire 63 + 115, 6, 64 ! DC1, Plane V', wire 64 + 116, 6, 65 ! DC1, Plane V', wire 65 + 117, 6, 66 ! DC1, Plane V', wire 66 + 118, 6, 67 ! DC1, Plane V', wire 67 + 119, 6, 68 ! DC1, Plane V', wire 68 + 120, 6, 69 ! DC1, Plane V', wire 69 + 121, 6, 70 ! DC1, Plane V', wire 70 + 122, 6, 71 ! DC1, Plane V', wire 71 + 123, 6, 72 ! DC1, Plane V', wire 72 + 124, 6, 73 ! DC1, Plane V', wire 73 + 125, 6, 74 ! DC1, Plane V', wire 74 + 126, 6, 75 ! DC1, Plane V', wire 75 + 127, 6, 76 ! DC1, Plane V', wire 76 + 80, 6, 77 ! DC1, Plane V', wire 77 + 81, 6, 78 ! DC1, Plane V', wire 78 + 82, 6, 79 ! DC1, Plane V', wire 79 + 83, 6, 80 ! DC1, Plane V', wire 80 + 84, 6, 81 ! DC1, Plane V', wire 81 + 85, 6, 82 ! DC1, Plane V', wire 82 + 86, 6, 83 ! DC1, Plane V', wire 83 + 87, 6, 84 ! DC1, Plane V', wire 84 + 88, 6, 85 ! DC1, Plane V', wire 85 + 89, 6, 86 ! DC1, Plane V', wire 86 + 90, 6, 87 ! DC1, Plane V', wire 87 + 91, 6, 88 ! DC1, Plane V', wire 88 + 92, 6, 89 ! DC1, Plane V', wire 89 + 93, 6, 90 ! DC1, Plane V', wire 90 + 94, 6, 91 ! DC1, Plane V', wire 91 + 95, 6, 92 ! DC1, Plane V', wire 92 + +SLOT=6 +REFCHAN=79 + 64, 6, 93 ! DC1, Plane V', wire 93 + 65, 6, 94 ! DC1, Plane V', wire 94 + 66, 6, 95 ! DC1, Plane V', wire 95 + 67, 6, 96 ! DC1, Plane V', wire 96 + 68, 6, 97 ! DC1, Plane V', wire 97 + 69, 6, 98 ! DC1, Plane V', wire 98 + 70, 6, 99 ! DC1, Plane V', wire 99 + 71, 6, 100 ! DC1, Plane V', wire 100 + 72, 6, 101 ! DC1, Plane V', wire 101 + 73, 6, 102 ! DC1, Plane V', wire 102 + 74, 6, 103 ! DC1, Plane V', wire 103 + 75, 6, 104 ! DC1, Plane V', wire 104 + 76, 6, 105 ! DC1, Plane V', wire 105 + 77, 6, 106 ! DC1, Plane V', wire 106 + 78, 6, 107 ! DC1, Plane V', wire 107 + +SLOT=8 +REFCHAN=79 + 15, 3, 1 ! DC1, Plane X, wire 1 + 14, 3, 2 ! DC1, Plane X, wire 2 + 13, 3, 3 ! DC1, Plane X, wire 3 + 12, 3, 4 ! DC1, Plane X, wire 4 + 11, 3, 5 ! DC1, Plane X, wire 5 + 10, 3, 6 ! DC1, Plane X, wire 6 + 9, 3, 7 ! DC1, Plane X, wire 7 + 8, 3, 8 ! DC1, Plane X, wire 8 + 7, 3, 9 ! DC1, Plane X, wire 9 + 6, 3, 10 ! DC1, Plane X, wire 10 + 5, 3, 11 ! DC1, Plane X, wire 11 + 4, 3, 12 ! DC1, Plane X, wire 12 + 3, 3, 13 ! DC1, Plane X, wire 13 + 2, 3, 14 ! DC1, Plane X, wire 14 + 1, 3, 15 ! DC1, Plane X, wire 15 + 0, 3, 16 ! DC1, Plane X, wire 16 + +SLOT=7 +REFCHAN=79 + 63, 3, 17 ! DC1, Plane X, wire 17 + 62, 3, 18 ! DC1, Plane X, wire 18 + 61, 3, 19 ! DC1, Plane X, wire 19 + 60, 3, 20 ! DC1, Plane X, wire 20 + 59, 3, 21 ! DC1, Plane X, wire 21 + 58, 3, 22 ! DC1, Plane X, wire 22 + 57, 3, 23 ! DC1, Plane X, wire 23 + 56, 3, 24 ! DC1, Plane X, wire 24 + 55, 3, 25 ! DC1, Plane X, wire 25 + 54, 3, 26 ! DC1, Plane X, wire 26 + 53, 3, 27 ! DC1, Plane X, wire 27 + 52, 3, 28 ! DC1, Plane X, wire 28 + 51, 3, 29 ! DC1, Plane X, wire 29 + 50, 3, 30 ! DC1, Plane X, wire 30 + 49, 3, 31 ! DC1, Plane X, wire 31 + 48, 3, 32 ! DC1, Plane X, wire 32 + +SLOT=6 +REFCHAN=79 + 63, 3, 33 ! DC1, Plane X, wire 33 + 62, 3, 34 ! DC1, Plane X, wire 34 + 61, 3, 35 ! DC1, Plane X, wire 35 + 60, 3, 36 ! DC1, Plane X, wire 36 + 59, 3, 37 ! DC1, Plane X, wire 37 + 58, 3, 38 ! DC1, Plane X, wire 38 + 57, 3, 39 ! DC1, Plane X, wire 39 + 56, 3, 40 ! DC1, Plane X, wire 40 + 55, 3, 41 ! DC1, Plane X, wire 41 + 54, 3, 42 ! DC1, Plane X, wire 42 + 53, 3, 43 ! DC1, Plane X, wire 43 + 52, 3, 44 ! DC1, Plane X, wire 44 + 51, 3, 45 ! DC1, Plane X, wire 45 + 50, 3, 46 ! DC1, Plane X, wire 46 + 49, 3, 47 ! DC1, Plane X, wire 47 + 48, 3, 48 ! DC1, Plane X, wire 48 + +SLOT=10 +REFCHAN=79 + 48, 3, 49 ! DC1, Plane X, wire 49 + 49, 3, 50 ! DC1, Plane X, wire 50 + 50, 3, 51 ! DC1, Plane X, wire 51 + 51, 3, 52 ! DC1, Plane X, wire 52 + 52, 3, 53 ! DC1, Plane X, wire 53 + 53, 3, 54 ! DC1, Plane X, wire 54 + 54, 3, 55 ! DC1, Plane X, wire 55 + 55, 3, 56 ! DC1, Plane X, wire 56 + 56, 3, 57 ! DC1, Plane X, wire 57 + 57, 3, 58 ! DC1, Plane X, wire 58 + 58, 3, 59 ! DC1, Plane X, wire 59 + 59, 3, 60 ! DC1, Plane X, wire 60 + 60, 3, 61 ! DC1, Plane X, wire 61 + 61, 3, 62 ! DC1, Plane X, wire 62 + 62, 3, 63 ! DC1, Plane X, wire 63 + 63, 3, 64 ! DC1, Plane X, wire 64 + +SLOT=9 +REFCHAN=79 + 80, 3, 65 ! DC1, Plane X, wire 65 + 81, 3, 66 ! DC1, Plane X, wire 66 + 82, 3, 67 ! DC1, Plane X, wire 67 + 83, 3, 68 ! DC1, Plane X, wire 68 + 84, 3, 69 ! DC1, Plane X, wire 69 + 85, 3, 70 ! DC1, Plane X, wire 70 + 86, 3, 71 ! DC1, Plane X, wire 71 + 87, 3, 72 ! DC1, Plane X, wire 72 + 88, 3, 73 ! DC1, Plane X, wire 73 + 89, 3, 74 ! DC1, Plane X, wire 74 + 90, 3, 75 ! DC1, Plane X, wire 75 + 91, 3, 76 ! DC1, Plane X, wire 76 + 92, 3, 77 ! DC1, Plane X, wire 77 + 93, 3, 78 ! DC1, Plane X, wire 78 + 94, 3, 79 ! DC1, Plane X, wire 79 + 30, 4, 1 ! DC1, Plane X', wire 1 + 29, 4, 2 ! DC1, Plane X', wire 2 + 28, 4, 3 ! DC1, Plane X', wire 3 + 27, 4, 4 ! DC1, Plane X', wire 4 + 26, 4, 5 ! DC1, Plane X', wire 5 + 25, 4, 6 ! DC1, Plane X', wire 6 + 24, 4, 7 ! DC1, Plane X', wire 7 + 23, 4, 8 ! DC1, Plane X', wire 8 + 22, 4, 9 ! DC1, Plane X', wire 9 + 21, 4, 10 ! DC1, Plane X', wire 10 + 20, 4, 11 ! DC1, Plane X', wire 11 + 19, 4, 12 ! DC1, Plane X', wire 12 + 18, 4, 13 ! DC1, Plane X', wire 13 + 17, 4, 14 ! DC1, Plane X', wire 14 + 16, 4, 15 ! DC1, Plane X', wire 15 + +SLOT=8 +REFCHAN=79 + 47, 4, 16 ! DC1, Plane X', wire 16 + 46, 4, 17 ! DC1, Plane X', wire 17 + 45, 4, 18 ! DC1, Plane X', wire 18 + 44, 4, 19 ! DC1, Plane X', wire 19 + 43, 4, 20 ! DC1, Plane X', wire 20 + 42, 4, 21 ! DC1, Plane X', wire 21 + 41, 4, 22 ! DC1, Plane X', wire 22 + 40, 4, 23 ! DC1, Plane X', wire 23 + 39, 4, 24 ! DC1, Plane X', wire 24 + 38, 4, 25 ! DC1, Plane X', wire 25 + 37, 4, 26 ! DC1, Plane X', wire 26 + 36, 4, 27 ! DC1, Plane X', wire 27 + 35, 4, 28 ! DC1, Plane X', wire 28 + 34, 4, 29 ! DC1, Plane X', wire 29 + 33, 4, 30 ! DC1, Plane X', wire 30 + 32, 4, 31 ! DC1, Plane X', wire 31 + +SLOT=7 +REFCHAN=79 + 0, 4, 32 ! DC1, Plane X', wire 32 + 1, 4, 33 ! DC1, Plane X', wire 33 + 2, 4, 34 ! DC1, Plane X', wire 34 + 3, 4, 35 ! DC1, Plane X', wire 35 + 4, 4, 36 ! DC1, Plane X', wire 36 + 5, 4, 37 ! DC1, Plane X', wire 37 + 6, 4, 38 ! DC1, Plane X', wire 38 + 7, 4, 39 ! DC1, Plane X', wire 39 + 8, 4, 40 ! DC1, Plane X', wire 40 + 9, 4, 41 ! DC1, Plane X', wire 41 + 10, 4, 42 ! DC1, Plane X', wire 42 + 11, 4, 43 ! DC1, Plane X', wire 43 + 12, 4, 44 ! DC1, Plane X', wire 44 + 13, 4, 45 ! DC1, Plane X', wire 45 + 14, 4, 46 ! DC1, Plane X', wire 46 + 15, 4, 47 ! DC1, Plane X', wire 47 + +SLOT=6 +REFCHAN=79 + 96, 4, 48 ! DC1, Plane X', wire 48 + 97, 4, 49 ! DC1, Plane X', wire 49 + 98, 4, 50 ! DC1, Plane X', wire 50 + 99, 4, 51 ! DC1, Plane X', wire 51 + 100, 4, 52 ! DC1, Plane X', wire 52 + 101, 4, 53 ! DC1, Plane X', wire 53 + 102, 4, 54 ! DC1, Plane X', wire 54 + 103, 4, 55 ! DC1, Plane X', wire 55 + 104, 4, 56 ! DC1, Plane X', wire 56 + 105, 4, 57 ! DC1, Plane X', wire 57 + 106, 4, 58 ! DC1, Plane X', wire 58 + 107, 4, 59 ! DC1, Plane X', wire 59 + 108, 4, 60 ! DC1, Plane X', wire 60 + 109, 4, 61 ! DC1, Plane X', wire 61 + 110, 4, 62 ! DC1, Plane X', wire 62 + 111, 4, 63 ! DC1, Plane X', wire 63 + 0, 4, 64 ! DC1, Plane X', wire 64 + 1, 4, 65 ! DC1, Plane X', wire 65 + 2, 4, 66 ! DC1, Plane X', wire 66 + 3, 4, 67 ! DC1, Plane X', wire 67 + 4, 4, 68 ! DC1, Plane X', wire 68 + 5, 4, 69 ! DC1, Plane X', wire 69 + 6, 4, 70 ! DC1, Plane X', wire 70 + 7, 4, 71 ! DC1, Plane X', wire 71 + 8, 4, 72 ! DC1, Plane X', wire 72 + 9, 4, 73 ! DC1, Plane X', wire 73 + 10, 4, 74 ! DC1, Plane X', wire 74 + 11, 4, 75 ! DC1, Plane X', wire 75 + 12, 4, 76 ! DC1, Plane X', wire 76 + 13, 4, 77 ! DC1, Plane X', wire 77 + 14, 4, 78 ! DC1, Plane X', wire 78 + 15, 4, 79 ! DC1, Plane X', wire 79 + +SLOT=14 +REFCHAN=15 + 46, 12, 1 ! DC2, Plane U, wire 1 + 45, 12, 2 ! DC2, Plane U, wire 2 + 44, 12, 3 ! DC2, Plane U, wire 3 + 43, 12, 4 ! DC2, Plane U, wire 4 + 42, 12, 5 ! DC2, Plane U, wire 5 + 41, 12, 6 ! DC2, Plane U, wire 6 + 40, 12, 7 ! DC2, Plane U, wire 7 + 39, 12, 8 ! DC2, Plane U, wire 8 + 38, 12, 9 ! DC2, Plane U, wire 9 + 37, 12, 10 ! DC2, Plane U, wire 10 + 36, 12, 11 ! DC2, Plane U, wire 11 + 35, 12, 12 ! DC2, Plane U, wire 12 + 34, 12, 13 ! DC2, Plane U, wire 13 + 33, 12, 14 ! DC2, Plane U, wire 14 + 32, 12, 15 ! DC2, Plane U, wire 15 + +SLOT=11 +REFCHAN=47 + 127, 12, 16 ! DC2, Plane U, wire 16 + 126, 12, 17 ! DC2, Plane U, wire 17 + 125, 12, 18 ! DC2, Plane U, wire 18 + 124, 12, 19 ! DC2, Plane U, wire 19 + 123, 12, 20 ! DC2, Plane U, wire 20 + 122, 12, 21 ! DC2, Plane U, wire 21 + 121, 12, 22 ! DC2, Plane U, wire 22 + 120, 12, 23 ! DC2, Plane U, wire 23 + 119, 12, 24 ! DC2, Plane U, wire 24 + 118, 12, 25 ! DC2, Plane U, wire 25 + 117, 12, 26 ! DC2, Plane U, wire 26 + 116, 12, 27 ! DC2, Plane U, wire 27 + 115, 12, 28 ! DC2, Plane U, wire 28 + 114, 12, 29 ! DC2, Plane U, wire 29 + 113, 12, 30 ! DC2, Plane U, wire 30 + 112, 12, 31 ! DC2, Plane U, wire 31 + 63, 12, 32 ! DC2, Plane U, wire 32 + 62, 12, 33 ! DC2, Plane U, wire 33 + 61, 12, 34 ! DC2, Plane U, wire 34 + 60, 12, 35 ! DC2, Plane U, wire 35 + 59, 12, 36 ! DC2, Plane U, wire 36 + 58, 12, 37 ! DC2, Plane U, wire 37 + 57, 12, 38 ! DC2, Plane U, wire 38 + 56, 12, 39 ! DC2, Plane U, wire 39 + 55, 12, 40 ! DC2, Plane U, wire 40 + 54, 12, 41 ! DC2, Plane U, wire 41 + 53, 12, 42 ! DC2, Plane U, wire 42 + 52, 12, 43 ! DC2, Plane U, wire 43 + 51, 12, 44 ! DC2, Plane U, wire 44 + 50, 12, 45 ! DC2, Plane U, wire 45 + 49, 12, 46 ! DC2, Plane U, wire 46 + 48, 12, 47 ! DC2, Plane U, wire 47 + +SLOT=10 +REFCHAN=79 + 127, 12, 48 ! DC2, Plane U, wire 48 + 126, 12, 49 ! DC2, Plane U, wire 49 + 125, 12, 50 ! DC2, Plane U, wire 50 + 124, 12, 51 ! DC2, Plane U, wire 51 + 123, 12, 52 ! DC2, Plane U, wire 52 + 122, 12, 53 ! DC2, Plane U, wire 53 + 121, 12, 54 ! DC2, Plane U, wire 54 + 120, 12, 55 ! DC2, Plane U, wire 55 + 119, 12, 56 ! DC2, Plane U, wire 56 + 118, 12, 57 ! DC2, Plane U, wire 57 + 117, 12, 58 ! DC2, Plane U, wire 58 + 116, 12, 59 ! DC2, Plane U, wire 59 + 115, 12, 60 ! DC2, Plane U, wire 60 + 114, 12, 61 ! DC2, Plane U, wire 61 + 113, 12, 62 ! DC2, Plane U, wire 62 + 112, 12, 63 ! DC2, Plane U, wire 63 + +SLOT=13 +REFCHAN=47 + 80, 12, 64 ! DC2, Plane U, wire 64 + 81, 12, 65 ! DC2, Plane U, wire 65 + 82, 12, 66 ! DC2, Plane U, wire 66 + 83, 12, 67 ! DC2, Plane U, wire 67 + 84, 12, 68 ! DC2, Plane U, wire 68 + 85, 12, 69 ! DC2, Plane U, wire 69 + 86, 12, 70 ! DC2, Plane U, wire 70 + 87, 12, 71 ! DC2, Plane U, wire 71 + 88, 12, 72 ! DC2, Plane U, wire 72 + 89, 12, 73 ! DC2, Plane U, wire 73 + 90, 12, 74 ! DC2, Plane U, wire 74 + 91, 12, 75 ! DC2, Plane U, wire 75 + 92, 12, 76 ! DC2, Plane U, wire 76 + 93, 12, 77 ! DC2, Plane U, wire 77 + 94, 12, 78 ! DC2, Plane U, wire 78 + 95, 12, 79 ! DC2, Plane U, wire 79 + 16, 12, 80 ! DC2, Plane U, wire 80 + 17, 12, 81 ! DC2, Plane U, wire 81 + 18, 12, 82 ! DC2, Plane U, wire 82 + 19, 12, 83 ! DC2, Plane U, wire 83 + 20, 12, 84 ! DC2, Plane U, wire 84 + 21, 12, 85 ! DC2, Plane U, wire 85 + 22, 12, 86 ! DC2, Plane U, wire 86 + 23, 12, 87 ! DC2, Plane U, wire 87 + 24, 12, 88 ! DC2, Plane U, wire 88 + 25, 12, 89 ! DC2, Plane U, wire 89 + 26, 12, 90 ! DC2, Plane U, wire 90 + 27, 12, 91 ! DC2, Plane U, wire 91 + 28, 12, 92 ! DC2, Plane U, wire 92 + 29, 12, 93 ! DC2, Plane U, wire 93 + 30, 12, 94 ! DC2, Plane U, wire 94 + 31, 12, 95 ! DC2, Plane U, wire 95 + +SLOT=14 +REFCHAN=15 + 80, 12, 96 ! DC2, Plane U, wire 96 + 81, 12, 97 ! DC2, Plane U, wire 97 + 82, 12, 98 ! DC2, Plane U, wire 98 + 83, 12, 99 ! DC2, Plane U, wire 99 + 84, 12, 100 ! DC2, Plane U, wire 100 + 85, 12, 101 ! DC2, Plane U, wire 101 + 86, 12, 102 ! DC2, Plane U, wire 102 + 87, 12, 103 ! DC2, Plane U, wire 103 + 88, 12, 104 ! DC2, Plane U, wire 104 + 89, 12, 105 ! DC2, Plane U, wire 105 + 90, 12, 106 ! DC2, Plane U, wire 106 + 91, 12, 107 ! DC2, Plane U, wire 107 + +SLOT=13 +REFCHAN=47 + 43, 11, 1 ! DC2, Plane U', wire 1 + 42, 11, 2 ! DC2, Plane U', wire 2 + 41, 11, 3 ! DC2, Plane U', wire 3 + 40, 11, 4 ! DC2, Plane U', wire 4 + 39, 11, 5 ! DC2, Plane U', wire 5 + 38, 11, 6 ! DC2, Plane U', wire 6 + 37, 11, 7 ! DC2, Plane U', wire 7 + 36, 11, 8 ! DC2, Plane U', wire 8 + 35, 11, 9 ! DC2, Plane U', wire 9 + 34, 11, 10 ! DC2, Plane U', wire 10 + 33, 11, 11 ! DC2, Plane U', wire 11 + 32, 11, 12 ! DC2, Plane U', wire 12 + +SLOT=11 +REFCHAN=47 + 95, 11, 13 ! DC2, Plane U', wire 13 + 94, 11, 14 ! DC2, Plane U', wire 14 + 93, 11, 15 ! DC2, Plane U', wire 15 + 92, 11, 16 ! DC2, Plane U', wire 16 + 91, 11, 17 ! DC2, Plane U', wire 17 + 90, 11, 18 ! DC2, Plane U', wire 18 + 89, 11, 19 ! DC2, Plane U', wire 19 + 88, 11, 20 ! DC2, Plane U', wire 20 + 87, 11, 21 ! DC2, Plane U', wire 21 + 86, 11, 22 ! DC2, Plane U', wire 22 + 85, 11, 23 ! DC2, Plane U', wire 23 + 84, 11, 24 ! DC2, Plane U', wire 24 + 83, 11, 25 ! DC2, Plane U', wire 25 + 82, 11, 26 ! DC2, Plane U', wire 26 + 81, 11, 27 ! DC2, Plane U', wire 27 + 80, 11, 28 ! DC2, Plane U', wire 28 + 15, 11, 29 ! DC2, Plane U', wire 29 + 14, 11, 30 ! DC2, Plane U', wire 30 + 13, 11, 31 ! DC2, Plane U', wire 31 + 12, 11, 32 ! DC2, Plane U', wire 32 + 11, 11, 33 ! DC2, Plane U', wire 33 + 10, 11, 34 ! DC2, Plane U', wire 34 + 9, 11, 35 ! DC2, Plane U', wire 35 + 8, 11, 36 ! DC2, Plane U', wire 36 + 7, 11, 37 ! DC2, Plane U', wire 37 + 6, 11, 38 ! DC2, Plane U', wire 38 + 5, 11, 39 ! DC2, Plane U', wire 39 + 4, 11, 40 ! DC2, Plane U', wire 40 + 3, 11, 41 ! DC2, Plane U', wire 41 + 2, 11, 42 ! DC2, Plane U', wire 42 + 1, 11, 43 ! DC2, Plane U', wire 43 + 0, 11, 44 ! DC2, Plane U', wire 44 + +SLOT=13 +REFCHAN=47 + 96, 11, 45 ! DC2, Plane U', wire 45 + 97, 11, 46 ! DC2, Plane U', wire 46 + 98, 11, 47 ! DC2, Plane U', wire 47 + 99, 11, 48 ! DC2, Plane U', wire 48 + 100, 11, 49 ! DC2, Plane U', wire 49 + 101, 11, 50 ! DC2, Plane U', wire 50 + 102, 11, 51 ! DC2, Plane U', wire 51 + 103, 11, 52 ! DC2, Plane U', wire 52 + 104, 11, 53 ! DC2, Plane U', wire 53 + 105, 11, 54 ! DC2, Plane U', wire 54 + 106, 11, 55 ! DC2, Plane U', wire 55 + 107, 11, 56 ! DC2, Plane U', wire 56 + 108, 11, 57 ! DC2, Plane U', wire 57 + 109, 11, 58 ! DC2, Plane U', wire 58 + 110, 11, 59 ! DC2, Plane U', wire 59 + 111, 11, 60 ! DC2, Plane U', wire 60 + 64, 11, 61 ! DC2, Plane U', wire 61 + 65, 11, 62 ! DC2, Plane U', wire 62 + 66, 11, 63 ! DC2, Plane U', wire 63 + 67, 11, 64 ! DC2, Plane U', wire 64 + 68, 11, 65 ! DC2, Plane U', wire 65 + 69, 11, 66 ! DC2, Plane U', wire 66 + 70, 11, 67 ! DC2, Plane U', wire 67 + 71, 11, 68 ! DC2, Plane U', wire 68 + 72, 11, 69 ! DC2, Plane U', wire 69 + 73, 11, 70 ! DC2, Plane U', wire 70 + 74, 11, 71 ! DC2, Plane U', wire 71 + 75, 11, 72 ! DC2, Plane U', wire 72 + 76, 11, 73 ! DC2, Plane U', wire 73 + 77, 11, 74 ! DC2, Plane U', wire 74 + 78, 11, 75 ! DC2, Plane U', wire 75 + 79, 11, 76 ! DC2, Plane U', wire 76 + +SLOT=15 +REFCHAN=47 + 48, 11, 77 ! DC2, Plane U', wire 77 + 49, 11, 78 ! DC2, Plane U', wire 78 + 50, 11, 79 ! DC2, Plane U', wire 79 + 51, 11, 80 ! DC2, Plane U', wire 80 + 52, 11, 81 ! DC2, Plane U', wire 81 + 53, 11, 82 ! DC2, Plane U', wire 82 + 54, 11, 83 ! DC2, Plane U', wire 83 + 55, 11, 84 ! DC2, Plane U', wire 84 + 56, 11, 85 ! DC2, Plane U', wire 85 + 57, 11, 86 ! DC2, Plane U', wire 86 + 58, 11, 87 ! DC2, Plane U', wire 87 + 59, 11, 88 ! DC2, Plane U', wire 88 + 60, 11, 89 ! DC2, Plane U', wire 89 + 61, 11, 90 ! DC2, Plane U', wire 90 + 62, 11, 91 ! DC2, Plane U', wire 91 + 63, 11, 92 ! DC2, Plane U', wire 92 + +SLOT=14 +REFCHAN=15 + 112, 11, 93 ! DC2, Plane U', wire 93 + 113, 11, 94 ! DC2, Plane U', wire 94 + 114, 11, 95 ! DC2, Plane U', wire 95 + 115, 11, 96 ! DC2, Plane U', wire 96 + 116, 11, 97 ! DC2, Plane U', wire 97 + 117, 11, 98 ! DC2, Plane U', wire 98 + 118, 11, 99 ! DC2, Plane U', wire 99 + 119, 11, 100 ! DC2, Plane U', wire 100 + 120, 11, 101 ! DC2, Plane U', wire 101 + 121, 11, 102 ! DC2, Plane U', wire 102 + 122, 11, 103 ! DC2, Plane U', wire 103 + 123, 11, 104 ! DC2, Plane U', wire 104 + 124, 11, 105 ! DC2, Plane U', wire 105 + 125, 11, 106 ! DC2, Plane U', wire 106 + 126, 11, 107 ! DC2, Plane U', wire 107 + 14, 8, 1 ! DC2, Plane V, wire 1 + 13, 8, 2 ! DC2, Plane V, wire 2 + 12, 8, 3 ! DC2, Plane V, wire 3 + 11, 8, 4 ! DC2, Plane V, wire 4 + 10, 8, 5 ! DC2, Plane V, wire 5 + 9, 8, 6 ! DC2, Plane V, wire 6 + 8, 8, 7 ! DC2, Plane V, wire 7 + 7, 8, 8 ! DC2, Plane V, wire 8 + 6, 8, 9 ! DC2, Plane V, wire 9 + 5, 8, 10 ! DC2, Plane V, wire 10 + 4, 8, 11 ! DC2, Plane V, wire 11 + 3, 8, 12 ! DC2, Plane V, wire 12 + 2, 8, 13 ! DC2, Plane V, wire 13 + 1, 8, 14 ! DC2, Plane V, wire 14 + 0, 8, 15 ! DC2, Plane V, wire 15 + +SLOT=12 +REFCHAN=47 + 127, 8, 16 ! DC2, Plane V, wire 16 + 126, 8, 17 ! DC2, Plane V, wire 17 + 125, 8, 18 ! DC2, Plane V, wire 18 + 124, 8, 19 ! DC2, Plane V, wire 19 + 123, 8, 20 ! DC2, Plane V, wire 20 + 122, 8, 21 ! DC2, Plane V, wire 21 + 121, 8, 22 ! DC2, Plane V, wire 22 + 120, 8, 23 ! DC2, Plane V, wire 23 + 119, 8, 24 ! DC2, Plane V, wire 24 + 118, 8, 25 ! DC2, Plane V, wire 25 + 117, 8, 26 ! DC2, Plane V, wire 26 + 116, 8, 27 ! DC2, Plane V, wire 27 + 115, 8, 28 ! DC2, Plane V, wire 28 + 114, 8, 29 ! DC2, Plane V, wire 29 + 113, 8, 30 ! DC2, Plane V, wire 30 + 112, 8, 31 ! DC2, Plane V, wire 31 + +SLOT=14 +REFCHAN=15 + 111, 8, 32 ! DC2, Plane V, wire 32 + 110, 8, 33 ! DC2, Plane V, wire 33 + 109, 8, 34 ! DC2, Plane V, wire 34 + 108, 8, 35 ! DC2, Plane V, wire 35 + 107, 8, 36 ! DC2, Plane V, wire 36 + 106, 8, 37 ! DC2, Plane V, wire 37 + 105, 8, 38 ! DC2, Plane V, wire 38 + 104, 8, 39 ! DC2, Plane V, wire 39 + 103, 8, 40 ! DC2, Plane V, wire 40 + 102, 8, 41 ! DC2, Plane V, wire 41 + 101, 8, 42 ! DC2, Plane V, wire 42 + 100, 8, 43 ! DC2, Plane V, wire 43 + 99, 8, 44 ! DC2, Plane V, wire 44 + 98, 8, 45 ! DC2, Plane V, wire 45 + 97, 8, 46 ! DC2, Plane V, wire 46 + 96, 8, 47 ! DC2, Plane V, wire 47 + 31, 8, 48 ! DC2, Plane V, wire 48 + 30, 8, 49 ! DC2, Plane V, wire 49 + 29, 8, 50 ! DC2, Plane V, wire 50 + 28, 8, 51 ! DC2, Plane V, wire 51 + 27, 8, 52 ! DC2, Plane V, wire 52 + 26, 8, 53 ! DC2, Plane V, wire 53 + 25, 8, 54 ! DC2, Plane V, wire 54 + 24, 8, 55 ! DC2, Plane V, wire 55 + 23, 8, 56 ! DC2, Plane V, wire 56 + 22, 8, 57 ! DC2, Plane V, wire 57 + 21, 8, 58 ! DC2, Plane V, wire 58 + 20, 8, 59 ! DC2, Plane V, wire 59 + 19, 8, 60 ! DC2, Plane V, wire 60 + 18, 8, 61 ! DC2, Plane V, wire 61 + 17, 8, 62 ! DC2, Plane V, wire 62 + 16, 8, 63 ! DC2, Plane V, wire 63 + +SLOT=12 +REFCHAN=47 + 0, 8, 64 ! DC2, Plane V, wire 64 + 1, 8, 65 ! DC2, Plane V, wire 65 + 2, 8, 66 ! DC2, Plane V, wire 66 + 3, 8, 67 ! DC2, Plane V, wire 67 + 4, 8, 68 ! DC2, Plane V, wire 68 + 5, 8, 69 ! DC2, Plane V, wire 69 + 6, 8, 70 ! DC2, Plane V, wire 70 + 7, 8, 71 ! DC2, Plane V, wire 71 + 8, 8, 72 ! DC2, Plane V, wire 72 + 9, 8, 73 ! DC2, Plane V, wire 73 + 10, 8, 74 ! DC2, Plane V, wire 74 + 11, 8, 75 ! DC2, Plane V, wire 75 + 12, 8, 76 ! DC2, Plane V, wire 76 + 13, 8, 77 ! DC2, Plane V, wire 77 + 14, 8, 78 ! DC2, Plane V, wire 78 + 15, 8, 79 ! DC2, Plane V, wire 79 + 64, 8, 80 ! DC2, Plane V, wire 80 + 65, 8, 81 ! DC2, Plane V, wire 81 + 66, 8, 82 ! DC2, Plane V, wire 82 + 67, 8, 83 ! DC2, Plane V, wire 83 + 68, 8, 84 ! DC2, Plane V, wire 84 + 69, 8, 85 ! DC2, Plane V, wire 85 + 70, 8, 86 ! DC2, Plane V, wire 86 + 71, 8, 87 ! DC2, Plane V, wire 87 + 72, 8, 88 ! DC2, Plane V, wire 88 + 73, 8, 89 ! DC2, Plane V, wire 89 + 74, 8, 90 ! DC2, Plane V, wire 90 + 75, 8, 91 ! DC2, Plane V, wire 91 + 76, 8, 92 ! DC2, Plane V, wire 92 + 77, 8, 93 ! DC2, Plane V, wire 93 + 78, 8, 94 ! DC2, Plane V, wire 94 + 79, 8, 95 ! DC2, Plane V, wire 95 + 32, 8, 96 ! DC2, Plane V, wire 96 + 33, 8, 97 ! DC2, Plane V, wire 97 + 34, 8, 98 ! DC2, Plane V, wire 98 + 35, 8, 99 ! DC2, Plane V, wire 99 + 36, 8, 100 ! DC2, Plane V, wire 100 + 37, 8, 101 ! DC2, Plane V, wire 101 + 38, 8, 102 ! DC2, Plane V, wire 102 + 39, 8, 103 ! DC2, Plane V, wire 103 + 40, 8, 104 ! DC2, Plane V, wire 104 + 41, 8, 105 ! DC2, Plane V, wire 105 + 42, 8, 106 ! DC2, Plane V, wire 106 + 43, 8, 107 ! DC2, Plane V, wire 107 + +SLOT=15 +REFCHAN=47 + 43, 7, 1 ! DC2, Plane V', wire 1 + 42, 7, 2 ! DC2, Plane V', wire 2 + 41, 7, 3 ! DC2, Plane V', wire 3 + 40, 7, 4 ! DC2, Plane V', wire 4 + 39, 7, 5 ! DC2, Plane V', wire 5 + 38, 7, 6 ! DC2, Plane V', wire 6 + 37, 7, 7 ! DC2, Plane V', wire 7 + 36, 7, 8 ! DC2, Plane V', wire 8 + 35, 7, 9 ! DC2, Plane V', wire 9 + 34, 7, 10 ! DC2, Plane V', wire 10 + 33, 7, 11 ! DC2, Plane V', wire 11 + 32, 7, 12 ! DC2, Plane V', wire 12 + 15, 7, 13 ! DC2, Plane V', wire 13 + 14, 7, 14 ! DC2, Plane V', wire 14 + 13, 7, 15 ! DC2, Plane V', wire 15 + 12, 7, 16 ! DC2, Plane V', wire 16 + 11, 7, 17 ! DC2, Plane V', wire 17 + 10, 7, 18 ! DC2, Plane V', wire 18 + 9, 7, 19 ! DC2, Plane V', wire 19 + 8, 7, 20 ! DC2, Plane V', wire 20 + 7, 7, 21 ! DC2, Plane V', wire 21 + 6, 7, 22 ! DC2, Plane V', wire 22 + 5, 7, 23 ! DC2, Plane V', wire 23 + 4, 7, 24 ! DC2, Plane V', wire 24 + 3, 7, 25 ! DC2, Plane V', wire 25 + 2, 7, 26 ! DC2, Plane V', wire 26 + 1, 7, 27 ! DC2, Plane V', wire 27 + 0, 7, 28 ! DC2, Plane V', wire 28 + +SLOT=14 +REFCHAN=15 + 79, 7, 29 ! DC2, Plane V', wire 29 + 78, 7, 30 ! DC2, Plane V', wire 30 + 77, 7, 31 ! DC2, Plane V', wire 31 + 76, 7, 32 ! DC2, Plane V', wire 32 + 75, 7, 33 ! DC2, Plane V', wire 33 + 74, 7, 34 ! DC2, Plane V', wire 34 + 73, 7, 35 ! DC2, Plane V', wire 35 + 72, 7, 36 ! DC2, Plane V', wire 36 + 71, 7, 37 ! DC2, Plane V', wire 37 + 70, 7, 38 ! DC2, Plane V', wire 38 + 69, 7, 39 ! DC2, Plane V', wire 39 + 68, 7, 40 ! DC2, Plane V', wire 40 + 67, 7, 41 ! DC2, Plane V', wire 41 + 66, 7, 42 ! DC2, Plane V', wire 42 + 65, 7, 43 ! DC2, Plane V', wire 43 + 64, 7, 44 ! DC2, Plane V', wire 44 + +SLOT=13 +REFCHAN=47 + 48, 7, 45 ! DC2, Plane V', wire 45 + 49, 7, 46 ! DC2, Plane V', wire 46 + 50, 7, 47 ! DC2, Plane V', wire 47 + 51, 7, 48 ! DC2, Plane V', wire 48 + 52, 7, 49 ! DC2, Plane V', wire 49 + 53, 7, 50 ! DC2, Plane V', wire 50 + 54, 7, 51 ! DC2, Plane V', wire 51 + 55, 7, 52 ! DC2, Plane V', wire 52 + 56, 7, 53 ! DC2, Plane V', wire 53 + 57, 7, 54 ! DC2, Plane V', wire 54 + 58, 7, 55 ! DC2, Plane V', wire 55 + 59, 7, 56 ! DC2, Plane V', wire 56 + 60, 7, 57 ! DC2, Plane V', wire 57 + 61, 7, 58 ! DC2, Plane V', wire 58 + 62, 7, 59 ! DC2, Plane V', wire 59 + 63, 7, 60 ! DC2, Plane V', wire 60 + +SLOT=12 +REFCHAN=47 + 80, 7, 61 ! DC2, Plane V', wire 61 + 81, 7, 62 ! DC2, Plane V', wire 62 + 82, 7, 63 ! DC2, Plane V', wire 63 + 83, 7, 64 ! DC2, Plane V', wire 64 + 84, 7, 65 ! DC2, Plane V', wire 65 + 85, 7, 66 ! DC2, Plane V', wire 66 + 86, 7, 67 ! DC2, Plane V', wire 67 + 87, 7, 68 ! DC2, Plane V', wire 68 + 88, 7, 69 ! DC2, Plane V', wire 69 + 89, 7, 70 ! DC2, Plane V', wire 70 + 90, 7, 71 ! DC2, Plane V', wire 71 + 91, 7, 72 ! DC2, Plane V', wire 72 + 92, 7, 73 ! DC2, Plane V', wire 73 + 93, 7, 74 ! DC2, Plane V', wire 74 + 94, 7, 75 ! DC2, Plane V', wire 75 + 95, 7, 76 ! DC2, Plane V', wire 76 + 48, 7, 77 ! DC2, Plane V', wire 77 + 49, 7, 78 ! DC2, Plane V', wire 78 + 50, 7, 79 ! DC2, Plane V', wire 79 + 51, 7, 80 ! DC2, Plane V', wire 80 + 52, 7, 81 ! DC2, Plane V', wire 81 + 53, 7, 82 ! DC2, Plane V', wire 82 + 54, 7, 83 ! DC2, Plane V', wire 83 + 55, 7, 84 ! DC2, Plane V', wire 84 + 56, 7, 85 ! DC2, Plane V', wire 85 + 57, 7, 86 ! DC2, Plane V', wire 86 + 58, 7, 87 ! DC2, Plane V', wire 87 + 59, 7, 88 ! DC2, Plane V', wire 88 + 60, 7, 89 ! DC2, Plane V', wire 89 + 61, 7, 90 ! DC2, Plane V', wire 90 + 62, 7, 91 ! DC2, Plane V', wire 91 + 63, 7, 92 ! DC2, Plane V', wire 92 + +SLOT=11 +REFCHAN=47 + 32, 7, 93 ! DC2, Plane V', wire 93 + 33, 7, 94 ! DC2, Plane V', wire 94 + 34, 7, 95 ! DC2, Plane V', wire 95 + 35, 7, 96 ! DC2, Plane V', wire 96 + 36, 7, 97 ! DC2, Plane V', wire 97 + 37, 7, 98 ! DC2, Plane V', wire 98 + 38, 7, 99 ! DC2, Plane V', wire 99 + 39, 7, 100 ! DC2, Plane V', wire 100 + 40, 7, 101 ! DC2, Plane V', wire 101 + 41, 7, 102 ! DC2, Plane V', wire 102 + 42, 7, 103 ! DC2, Plane V', wire 103 + 43, 7, 104 ! DC2, Plane V', wire 104 + 44, 7, 105 ! DC2, Plane V', wire 105 + 45, 7, 106 ! DC2, Plane V', wire 106 + 46, 7, 107 ! DC2, Plane V', wire 107 + +SLOT=12 +REFCHAN=47 + 111, 10, 1 ! DC2, Plane X, wire 1 + 110, 10, 2 ! DC2, Plane X, wire 2 + 109, 10, 3 ! DC2, Plane X, wire 3 + 108, 10, 4 ! DC2, Plane X, wire 4 + 107, 10, 5 ! DC2, Plane X, wire 5 + 106, 10, 6 ! DC2, Plane X, wire 6 + 105, 10, 7 ! DC2, Plane X, wire 7 + 104, 10, 8 ! DC2, Plane X, wire 8 + 103, 10, 9 ! DC2, Plane X, wire 9 + 102, 10, 10 ! DC2, Plane X, wire 10 + 101, 10, 11 ! DC2, Plane X, wire 11 + 100, 10, 12 ! DC2, Plane X, wire 12 + 99, 10, 13 ! DC2, Plane X, wire 13 + 98, 10, 14 ! DC2, Plane X, wire 14 + 97, 10, 15 ! DC2, Plane X, wire 15 + 96, 10, 16 ! DC2, Plane X, wire 16 + 31, 10, 17 ! DC2, Plane X, wire 17 + 30, 10, 18 ! DC2, Plane X, wire 18 + 29, 10, 19 ! DC2, Plane X, wire 19 + 28, 10, 20 ! DC2, Plane X, wire 20 + 27, 10, 21 ! DC2, Plane X, wire 21 + 26, 10, 22 ! DC2, Plane X, wire 22 + 25, 10, 23 ! DC2, Plane X, wire 23 + 24, 10, 24 ! DC2, Plane X, wire 24 + 23, 10, 25 ! DC2, Plane X, wire 25 + 22, 10, 26 ! DC2, Plane X, wire 26 + 21, 10, 27 ! DC2, Plane X, wire 27 + 20, 10, 28 ! DC2, Plane X, wire 28 + 19, 10, 29 ! DC2, Plane X, wire 29 + 18, 10, 30 ! DC2, Plane X, wire 30 + 17, 10, 31 ! DC2, Plane X, wire 31 + 16, 10, 32 ! DC2, Plane X, wire 32 + +SLOT=11 +REFCHAN=47 + 31, 10, 33 ! DC2, Plane X, wire 33 + 30, 10, 34 ! DC2, Plane X, wire 34 + 29, 10, 35 ! DC2, Plane X, wire 35 + 28, 10, 36 ! DC2, Plane X, wire 36 + 27, 10, 37 ! DC2, Plane X, wire 37 + 26, 10, 38 ! DC2, Plane X, wire 38 + 25, 10, 39 ! DC2, Plane X, wire 39 + 24, 10, 40 ! DC2, Plane X, wire 40 + 23, 10, 41 ! DC2, Plane X, wire 41 + 22, 10, 42 ! DC2, Plane X, wire 42 + 21, 10, 43 ! DC2, Plane X, wire 43 + 20, 10, 44 ! DC2, Plane X, wire 44 + 19, 10, 45 ! DC2, Plane X, wire 45 + 18, 10, 46 ! DC2, Plane X, wire 46 + 17, 10, 47 ! DC2, Plane X, wire 47 + 16, 10, 48 ! DC2, Plane X, wire 48 + +SLOT=15 +REFCHAN=47 + 16, 10, 49 ! DC2, Plane X, wire 49 + 17, 10, 50 ! DC2, Plane X, wire 50 + 18, 10, 51 ! DC2, Plane X, wire 51 + 19, 10, 52 ! DC2, Plane X, wire 52 + 20, 10, 53 ! DC2, Plane X, wire 53 + 21, 10, 54 ! DC2, Plane X, wire 54 + 22, 10, 55 ! DC2, Plane X, wire 55 + 23, 10, 56 ! DC2, Plane X, wire 56 + 24, 10, 57 ! DC2, Plane X, wire 57 + 25, 10, 58 ! DC2, Plane X, wire 58 + 26, 10, 59 ! DC2, Plane X, wire 59 + 27, 10, 60 ! DC2, Plane X, wire 60 + 28, 10, 61 ! DC2, Plane X, wire 61 + 29, 10, 62 ! DC2, Plane X, wire 62 + 30, 10, 63 ! DC2, Plane X, wire 63 + 31, 10, 64 ! DC2, Plane X, wire 64 + +SLOT=14 +REFCHAN=15 + 48, 10, 65 ! DC2, Plane X, wire 65 + 49, 10, 66 ! DC2, Plane X, wire 66 + 50, 10, 67 ! DC2, Plane X, wire 67 + 51, 10, 68 ! DC2, Plane X, wire 68 + 52, 10, 69 ! DC2, Plane X, wire 69 + 53, 10, 70 ! DC2, Plane X, wire 70 + 54, 10, 71 ! DC2, Plane X, wire 71 + 55, 10, 72 ! DC2, Plane X, wire 72 + 56, 10, 73 ! DC2, Plane X, wire 73 + 57, 10, 74 ! DC2, Plane X, wire 74 + 58, 10, 75 ! DC2, Plane X, wire 75 + 59, 10, 76 ! DC2, Plane X, wire 76 + 60, 10, 77 ! DC2, Plane X, wire 77 + 61, 10, 78 ! DC2, Plane X, wire 78 + 62, 10, 79 ! DC2, Plane X, wire 79 + +SLOT=13 +REFCHAN=47 + 126, 9, 1 ! DC2, Plane X', wire 1 + 125, 9, 2 ! DC2, Plane X', wire 2 + 124, 9, 3 ! DC2, Plane X', wire 3 + 123, 9, 4 ! DC2, Plane X', wire 4 + 122, 9, 5 ! DC2, Plane X', wire 5 + 121, 9, 6 ! DC2, Plane X', wire 6 + 120, 9, 7 ! DC2, Plane X', wire 7 + 119, 9, 8 ! DC2, Plane X', wire 8 + 118, 9, 9 ! DC2, Plane X', wire 9 + 117, 9, 10 ! DC2, Plane X', wire 10 + 116, 9, 11 ! DC2, Plane X', wire 11 + 115, 9, 12 ! DC2, Plane X', wire 12 + 114, 9, 13 ! DC2, Plane X', wire 13 + 113, 9, 14 ! DC2, Plane X', wire 14 + 112, 9, 15 ! DC2, Plane X', wire 15 + 15, 9, 16 ! DC2, Plane X', wire 16 + 14, 9, 17 ! DC2, Plane X', wire 17 + 13, 9, 18 ! DC2, Plane X', wire 18 + 12, 9, 19 ! DC2, Plane X', wire 19 + 11, 9, 20 ! DC2, Plane X', wire 20 + 10, 9, 21 ! DC2, Plane X', wire 21 + 9, 9, 22 ! DC2, Plane X', wire 22 + 8, 9, 23 ! DC2, Plane X', wire 23 + 7, 9, 24 ! DC2, Plane X', wire 24 + 6, 9, 25 ! DC2, Plane X', wire 25 + 5, 9, 26 ! DC2, Plane X', wire 26 + 4, 9, 27 ! DC2, Plane X', wire 27 + 3, 9, 28 ! DC2, Plane X', wire 28 + 2, 9, 29 ! DC2, Plane X', wire 29 + 1, 9, 30 ! DC2, Plane X', wire 30 + 0, 9, 31 ! DC2, Plane X', wire 31 + +SLOT=11 +REFCHAN=47 + 96, 9, 32 ! DC2, Plane X', wire 32 + 97, 9, 33 ! DC2, Plane X', wire 33 + 98, 9, 34 ! DC2, Plane X', wire 34 + 99, 9, 35 ! DC2, Plane X', wire 35 + 100, 9, 36 ! DC2, Plane X', wire 36 + 101, 9, 37 ! DC2, Plane X', wire 37 + 102, 9, 38 ! DC2, Plane X', wire 38 + 103, 9, 39 ! DC2, Plane X', wire 39 + 104, 9, 40 ! DC2, Plane X', wire 40 + 105, 9, 41 ! DC2, Plane X', wire 41 + 106, 9, 42 ! DC2, Plane X', wire 42 + 107, 9, 43 ! DC2, Plane X', wire 43 + 108, 9, 44 ! DC2, Plane X', wire 44 + 109, 9, 45 ! DC2, Plane X', wire 45 + 110, 9, 46 ! DC2, Plane X', wire 46 + 111, 9, 47 ! DC2, Plane X', wire 47 + 64, 9, 48 ! DC2, Plane X', wire 48 + 65, 9, 49 ! DC2, Plane X', wire 49 + 66, 9, 50 ! DC2, Plane X', wire 50 + 67, 9, 51 ! DC2, Plane X', wire 51 + 68, 9, 52 ! DC2, Plane X', wire 52 + 69, 9, 53 ! DC2, Plane X', wire 53 + 70, 9, 54 ! DC2, Plane X', wire 54 + 71, 9, 55 ! DC2, Plane X', wire 55 + 72, 9, 56 ! DC2, Plane X', wire 56 + 73, 9, 57 ! DC2, Plane X', wire 57 + 74, 9, 58 ! DC2, Plane X', wire 58 + 75, 9, 59 ! DC2, Plane X', wire 59 + 76, 9, 60 ! DC2, Plane X', wire 60 + 77, 9, 61 ! DC2, Plane X', wire 61 + 78, 9, 62 ! DC2, Plane X', wire 62 + 79, 9, 63 ! DC2, Plane X', wire 63 + +SLOT=10 +REFCHAN=79 + 96, 9, 64 ! DC2, Plane X', wire 64 + 97, 9, 65 ! DC2, Plane X', wire 65 + 98, 9, 66 ! DC2, Plane X', wire 66 + 99, 9, 67 ! DC2, Plane X', wire 67 + 100, 9, 68 ! DC2, Plane X', wire 68 + 101, 9, 69 ! DC2, Plane X', wire 69 + 102, 9, 70 ! DC2, Plane X', wire 70 + 103, 9, 71 ! DC2, Plane X', wire 71 + 104, 9, 72 ! DC2, Plane X', wire 72 + 105, 9, 73 ! DC2, Plane X', wire 73 + 106, 9, 74 ! DC2, Plane X', wire 74 + 107, 9, 75 ! DC2, Plane X', wire 75 + 108, 9, 76 ! DC2, Plane X', wire 76 + 109, 9, 77 ! DC2, Plane X', wire 77 + 110, 9, 78 ! DC2, Plane X', wire 78 + 111, 9, 79 ! DC2, Plane X', wire 79 + + +DETECTOR=23 + +ROC=2 + +SLOT=3 + 0, 1, 1, 0 ! p1x01A+ + 1, 1, 2, 0 ! p1x02A+ + 2, 1, 3, 0 ! p1x03A+ + 3, 1, 4, 0 ! p1x04A+ + 4, 1, 5, 0 ! p1x05A+ + 5, 1, 6, 0 ! p1x06A+ + 6, 1, 7, 0 ! p1x07A+ + 7, 1, 8, 0 ! p1x08A+ + 8, 1, 9, 0 ! p1x09A+ + 9, 1, 10, 0 ! p1x10A+ + 10, 1, 11, 0 ! p1x11A+ + 11, 1, 12, 0 ! p1x12A+ + 12, 1, 13, 0 ! p1x13A+ + 13, 1, 1, 1 ! p1x01A- + 14, 1, 2, 1 ! p1x02A- + 15, 1, 3, 1 ! p1x03A- + +SLOT=4 + 0, 1, 4, 1 ! p1x04A- + 1, 1, 5, 1 ! p1x05A- + 2, 1, 6, 1 ! p1x06A- + 3, 1, 7, 1 ! p1x07A- + 4, 1, 8, 1 ! p1x08A- + 5, 1, 9, 1 ! p1x09A- + 6, 1, 10, 1 ! p1x10A- + 7, 1, 11, 1 ! p1x11A- + 8, 1, 12, 1 ! p1x12A- + 9, 1, 13, 1 ! p1x13A- + 10, 2, 1, 1 ! p1y01A- + 11, 2, 2, 1 ! p1y02A- + 12, 2, 3, 1 ! p1y03A- + 13, 2, 4, 1 ! p1y04A- + 14, 2, 5, 1 ! p1y05A- + 15, 2, 6, 1 ! p1y06A- + +SLOT=5 + 0, 2, 7, 1 ! p1y07A- + 1, 2, 8, 1 ! p1y08A- + 2, 2, 9, 1 ! p1y09A- + 3, 2, 10, 1 ! p1y10A- + 4, 2, 11, 1 ! p1y11A- + 5, 2, 12, 1 ! p1y12A- + 6, 2, 13, 1 ! p1y13A- + 7, 2, 1, 0 ! p1y01A+ + 8, 2, 2, 0 ! p1y02A+ + 9, 2, 3, 0 ! p1y03A+ + 10, 2, 4, 0 ! p1y04A+ + 11, 2, 5, 0 ! p1y05A+ + 12, 2, 6, 0 ! p1y06A+ + 13, 2, 7, 0 ! p1y07A+ + 14, 2, 8, 0 ! p1y08A+ + 15, 2, 9, 0 ! p1y09A+ + +SLOT=6 + 0, 2, 10, 0 ! p1y10A+ + 1, 2, 11, 0 ! p1y11A+ + 2, 2, 12, 0 ! p1y12A+ + 3, 2, 13, 0 ! p1y13A+ + 4, 3, 1, 0 ! p2x01A+ + 5, 3, 2, 0 ! p2x02A+ + 6, 3, 3, 0 ! p2x03A+ + 7, 3, 4, 0 ! p2x04A+ + 8, 3, 5, 0 ! p2x05A+ + 9, 3, 6, 0 ! p2x06A+ + 10, 3, 7, 0 ! p2x07A+ + 11, 3, 8, 0 ! p2x08A+ + 12, 3, 9, 0 ! p2x09A+ + 13, 3, 10, 0 ! p2x10A+ + 14, 3, 11, 0 ! p2x11A+ + 15, 3, 12, 0 ! p2x12A+ + +SLOT=7 + 0, 3, 13, 0 ! p2x13A+ + 1, 3, 14, 0 ! p2x14A+ + 2, 3, 1, 1 ! p2x01A- + 3, 3, 2, 1 ! p2x02A- + 4, 3, 3, 1 ! p2x03A- + 5, 3, 4, 1 ! p2x04A- + 6, 3, 5, 1 ! p2x05A- + 7, 3, 6, 1 ! p2x06A- + 8, 3, 7, 1 ! p2x07A- + 9, 3, 8, 1 ! p2x08A- + 10, 3, 9, 1 ! p2x09A- + 11, 3, 10, 1 ! p2x10A- + 12, 3, 11, 1 ! p2x11A- + 13, 3, 12, 1 ! p2x12A- + 14, 3, 13, 1 ! p2x13A- + 15, 3, 14, 1 ! p2x14A- + +SLOT=8 + 0, 4, 1, 1 ! p2y01A- + 1, 4, 2, 1 ! p2y02A- + 2, 4, 3, 1 ! p2y03A- + 3, 4, 4, 1 ! p2y04A- + 4, 4, 5, 1 ! p2y05A- + 5, 4, 6, 1 ! p2y06A- + 6, 4, 7, 1 ! p2y07A- + 7, 4, 8, 1 ! p2y08A- + 8, 4, 9, 1 ! p2y09A- + 9, 4, 10, 1 ! p2y10A- + 10, 4, 11, 1 ! p2y11A- + 11, 4, 12, 1 ! p2y12A- + 12, 4, 13, 1 ! p2y13A- + 13, 4, 14, 1 ! p2y14A- + 14, 4, 15, 1 ! p2y15A- + 15, 4, 16, 1 ! p2y16A- + +SLOT=9 + 0, 4, 17, 1 ! p2y17A- + 1, 4, 18, 1 ! p2y18A- + 2, 4, 19, 1 ! p2y19A- + 3, 4, 20, 1 ! p2y20A- + 4, 4, 21, 1 ! p2y21A- + 5, 4, 1, 0 ! p2y01A+ + 6, 4, 2, 0 ! p2y02A+ + 7, 4, 3, 0 ! p2y03A+ + 8, 4, 4, 0 ! p2y04A+ + 9, 4, 5, 0 ! p2y05A+ + 10, 4, 6, 0 ! p2y06A+ + 11, 4, 7, 0 ! p2y07A+ + 12, 4, 8, 0 ! p2y08A+ + 13, 4, 9, 0 ! p2y09A+ + 14, 4, 10, 0 ! p2y10A+ + 15, 4, 11, 0 ! p2y11A+ + +SLOT=10 + 0, 4, 12, 0 ! p2y12A+ + 1, 4, 13, 0 ! p2y13A+ + 2, 4, 14, 0 ! p2y14A+ + 3, 4, 15, 0 ! p2y15A+ + 4, 4, 16, 0 ! p2y16A+ + 5, 4, 17, 0 ! p2y17A+ + 6, 4, 18, 0 ! p2y18A+ + 7, 4, 19, 0 ! p2y19A+ + 8, 4, 20, 0 ! p2y20A+ + 9, 4, 21, 0 ! p2y21A+ + +SLOT=20 +REFINDEX=0 + 15,1000, 0, 0 + 0, 1, 1, 2 ! p1x01T+ + 1, 1, 3, 2 ! p1x03T+ + 2, 1, 5, 2 ! p1x05T+ + 3, 1, 7, 2 ! p1x07T+ + 4, 1, 2, 2 ! p1x02T+ + 5, 1, 4, 2 ! p1x04T+ + 6, 1, 6, 2 ! p1x06T+ + 7, 1, 8, 2 ! p1x08T+ + 8, 1, 9, 2 ! p1x09T+ + 9, 1, 11, 2 ! p1x11T+ + 10, 1, 13, 2 ! p1x13T+ + 12, 1, 10, 2 ! p1x10T+ + 13, 1, 12, 2 ! p1x12T+ + 16, 1, 1, 3 ! p1x01T- + 17, 1, 3, 3 ! p1x03T- + 18, 1, 5, 3 ! p1x05T- + 19, 1, 7, 3 ! p1x07T- + 20, 1, 2, 3 ! p1x02T- + 21, 1, 4, 3 ! p1x04T- + 22, 1, 6, 3 ! p1x06T- + 23, 1, 8, 3 ! p1x08T- + 24, 1, 9, 3 ! p1x09T- + 25, 1, 11, 3 ! p1x11T- + 26, 1, 13, 3 ! p1x13T- + 28, 1, 10, 3 ! p1x10T- + 30, 1, 12, 3 ! p1x12T- + 32, 2, 1, 3 ! p1y01T- + 33, 2, 3, 3 ! p1y03T- + 34, 2, 5, 3 ! p1y05T- + 35, 2, 7, 3 ! p1y07T- + 36, 2, 2, 3 ! p1y02T- + 37, 2, 4, 3 ! p1y04T- + 38, 2, 6, 3 ! p1y06T- + 39, 2, 8, 3 ! p1y08T- + 40, 2, 9, 3 ! p1y09T- + 41, 2, 11, 3 ! p1y11T- + 42, 2, 13, 3 ! p1y13T- + 44, 2, 10, 3 ! p1y10T- + 45, 2, 12, 3 ! p1y12T- + 48, 2, 1, 2 ! p1y01T+ + 49, 2, 3, 2 ! p1y03T+ + 50, 2, 5, 2 ! p1y05T+ + 51, 2, 7, 2 ! p1y07T+ + 52, 2, 2, 2 ! p1y02T+ + 53, 2, 4, 2 ! p1y04T+ + 54, 2, 6, 2 ! p1y06T+ + 55, 2, 8, 2 ! p1y08T+ + 56, 2, 9, 2 ! p1y09T+ + 57, 2, 11, 2 ! p1y11T+ + 58, 2, 13, 2 ! p1y13T+ + 60, 2, 10, 2 ! p1y10T+ + 61, 2, 12, 2 ! p1y12T+ + 64, 3, 1, 2 ! p2x01T+ + 65, 3, 3, 2 ! p2x03T+ + 66, 3, 5, 2 ! p2x05T+ + 67, 3, 7, 2 ! p2x07T+ + 68, 3, 2, 2 ! p2x02T+ + 69, 3, 4, 2 ! p2x04T+ + 70, 3, 6, 2 ! p2x06T+ + 71, 3, 8, 2 ! p2x08T+ + 72, 3, 9, 2 ! p2x09T+ + 73, 3, 11, 2 ! p2x11T+ + 74, 3, 13, 2 ! p2x13T+ + 76, 3, 10, 2 ! p2x10T+ + 77, 3, 12, 2 ! p2x12T+ + 78, 3, 14, 2 ! p2x14T+ + 80, 3, 1, 3 ! p2x01T- + 81, 3, 3, 3 ! p2x03T- + 82, 3, 5, 3 ! p2x05T- + 83, 3, 7, 3 ! p2x07T- + 84, 3, 2, 3 ! p2x02T- + 85, 3, 4, 3 ! p2x04T- + 86, 3, 6, 3 ! p2x06T- + 87, 3, 8, 3 ! p2x08T- + 88, 3, 9, 3 ! p2x09T- + 89, 3, 11, 3 ! p2x11T- + 90, 3, 13, 3 ! p2x13T- + 92, 3, 10, 3 ! p2x10T- + 93, 3, 12, 3 ! p2x12T- + 94, 3, 14, 3 ! p2x14T- + 96, 4, 1, 3 ! p2y01T- + 97, 4, 3, 3 ! p2y03T- + 98, 4, 5, 3 ! p2y05T- + 99, 4, 7, 3 ! p2y07T- + 100, 4, 2, 3 ! p2y02T- + 101, 4, 4, 3 ! p2y04T- + 102, 4, 6, 3 ! p2y06T- + 103, 4, 8, 3 ! p2y08T- + 104, 4, 9, 3 ! p2y09T- + 105, 4, 11, 3 ! p2y11T- + 106, 4, 13, 3 ! p2y13T- + 107, 4, 15, 3 ! p2y15T- + 108, 4, 10, 3 ! p2y10T- + 109, 4, 12, 3 ! p2y12T- + 110, 4, 14, 3 ! p2y14T- + 111, 4, 16, 3 ! p2y16T- + 112, 4, 17, 3 ! p2y17T- + 113, 4, 19, 3 ! p2y19T- + 114, 4, 21, 3 ! p2y21T- + 116, 4, 18, 3 ! p2y18T- + 117, 4, 20, 3 ! p2y20T- + +SLOT=19 +REFINDEX=0 + 31,1000, 0, 1 + 0, 4, 1, 2 ! p2y01T+ + 1, 4, 3, 2 ! p2y03T+ + 2, 4, 5, 2 ! p2y05T+ + 3, 4, 7, 2 ! p2y07T+ + 4, 4, 2, 2 ! p2y02T+ + 5, 4, 4, 2 ! p2y04T+ + 6, 4, 6, 2 ! p2y06T+ + 7, 4, 8, 2 ! p2y08T+ + 8, 4, 9, 2 ! p2y09T+ + 9, 4, 11, 2 ! p2y11T+ + 10, 4, 13, 2 ! p2y13T+ + 11, 4, 15, 2 ! p2y15T+ + 12, 4, 10, 2 ! p2y10T+ + 13, 4, 12, 2 ! p2y12T+ + 14, 4, 14, 2 ! p2y14T+ + 15, 4, 16, 2 ! p2y16T+ + 16, 4, 17, 2 ! p2y17T+ + 17, 4, 19, 2 ! p2y19T+ + 18, 4, 21, 2 ! p2y21T+ + 20, 4, 18, 2 ! p2y18T+ + 21, 4, 20, 2 ! p2y20T+ + + +DETECTOR=24 + +ROC=2 + +SLOT=13 + 8, 1, 1, 0 ! pHGCER01 + 9, 1, 2, 0 ! pHGCER02 + 10, 1, 3, 0 ! pHGCER03 + 11, 1, 4, 0 ! pHGCER04 + + +DETECTOR=25 + +ROC=2 + +SLOT=10 + 10, 1, 1, 0 ! pAER01+ + 11, 1, 2, 0 ! pAER02+ + 12, 1, 3, 0 ! pAER03+ + 13, 1, 4, 0 ! pAER04+ + 14, 1, 5, 0 ! pAER05+ + 15, 1, 6, 0 ! pAER06+ + +SLOT=13 + 0, 1, 7, 0 ! pAER07+ + 1, 1, 1, 1 ! pAER01- + 2, 1, 2, 1 ! pAER02- + 3, 1, 3, 1 ! pAER03- + 4, 1, 4, 1 ! pAER04- + 5, 1, 5, 1 ! pAER05- + 6, 1, 6, 1 ! pAER06- + 7, 1, 7, 1 ! pAER07- + + +DETECTOR=26 + +ROC=4 + +SLOT=3 + 0, 1, 1, 0 ! pPRSH1+ + 1, 1, 2, 0 ! pPRSH2+ + 2, 1, 3, 0 ! pPRSH3+ + 3, 1, 4, 0 ! pPRSH4+ + 4, 1, 5, 0 ! pPRSH5+ + 5, 1, 6, 0 ! pPRSH6+ + 6, 1, 7, 0 ! pPRSH7+ + 7, 1, 8, 0 ! pPRSH8+ + 8, 1, 9, 0 ! pPRSH9+ + 9, 1, 10, 0 ! pPRSH10+ + 10, 1, 11, 0 ! pPRSH11+ + 11, 1, 12, 0 ! pPRSH12+ + 12, 1, 13, 0 ! pPRSH13+ + 13, 1, 14, 0 ! pPRSH14+ + +SLOT=4 + 0, 1, 1, 1 ! pPRSH1- + 1, 1, 2, 1 ! pPRSH2- + 2, 1, 3, 1 ! pPRSH3- + 3, 1, 4, 1 ! pPRSH4- + 4, 1, 5, 1 ! pPRSH5- + 5, 1, 6, 1 ! pPRSH6- + 6, 1, 7, 1 ! pPRSH7- + 7, 1, 8, 1 ! pPRSH8- + 8, 1, 9, 1 ! pPRSH9- + 9, 1, 10, 1 ! pPRSH10- + 10, 1, 11, 1 ! pPRSH11- + 11, 1, 12, 1 ! pPRSH12- + 12, 1, 13, 1 ! pPRSH13- + 13, 1, 14, 1 ! pPRSH14- + +SLOT=5 + 0, 2, 1, 0 ! Row 1, Column 1 + 1, 2, 2, 0 ! Row 2, Column 1 + 2, 2, 3, 0 ! Row 3, Column 1 + 3, 2, 4, 0 ! Row 4, Column 1 + 4, 2, 5, 0 ! Row 5, Column 1 + 5, 2, 6, 0 ! Row 6, Column 1 + 6, 2, 7, 0 ! Row 7, Column 1 + 7, 2, 8, 0 ! Row 8, Column 1 + 8, 2, 9, 0 ! Row 9, Column 1 + 9, 2, 10, 0 ! Row 10, Column 1 + 10, 2, 11, 0 ! Row 11, Column 1 + 11, 2, 12, 0 ! Row 12, Column 1 + 12, 2, 13, 0 ! Row 13, Column 1 + 13, 2, 14, 0 ! Row 14, Column 1 + 14, 2, 15, 0 ! Row 15, Column 1 + 15, 2, 16, 0 ! Row 16, Column 1 + +SLOT=6 + 0, 2, 17, 0 ! Row 1, Column 2 + 1, 2, 18, 0 ! Row 2, Column 2 + 2, 2, 19, 0 ! Row 3, Column 2 + 3, 2, 20, 0 ! Row 4, Column 2 + 4, 2, 21, 0 ! Row 5, Column 2 + 5, 2, 22, 0 ! Row 6, Column 2 + 6, 2, 23, 0 ! Row 7, Column 2 + 7, 2, 24, 0 ! Row 8, Column 2 + 8, 2, 25, 0 ! Row 9, Column 2 + 9, 2, 26, 0 ! Row 10, Column 2 + 10, 2, 27, 0 ! Row 11, Column 2 + 11, 2, 28, 0 ! Row 12, Column 2 + 12, 2, 29, 0 ! Row 13, Column 2 + 13, 2, 30, 0 ! Row 14, Column 2 + 14, 2, 31, 0 ! Row 15, Column 2 + 15, 2, 32, 0 ! Row 16, Column 2 + +SLOT=7 + 0, 2, 33, 0 ! Row 1, Column 3 + 1, 2, 34, 0 ! Row 2, Column 3 + 2, 2, 35, 0 ! Row 3, Column 3 + 3, 2, 36, 0 ! Row 4, Column 3 + 4, 2, 37, 0 ! Row 5, Column 3 + 5, 2, 38, 0 ! Row 6, Column 3 + 6, 2, 39, 0 ! Row 7, Column 3 + 7, 2, 40, 0 ! Row 8, Column 3 + 8, 2, 41, 0 ! Row 9, Column 3 + 9, 2, 42, 0 ! Row 10, Column 3 + 10, 2, 43, 0 ! Row 11, Column 3 + 11, 2, 44, 0 ! Row 12, Column 3 + 12, 2, 45, 0 ! Row 13, Column 3 + 13, 2, 46, 0 ! Row 14, Column 3 + 14, 2, 47, 0 ! Row 15, Column 3 + 15, 2, 48, 0 ! Row 16, Column 3 + +SLOT=8 + 0, 2, 49, 0 ! Row 1, Column 4 + 1, 2, 50, 0 ! Row 2, Column 4 + 2, 2, 51, 0 ! Row 3, Column 4 + 3, 2, 52, 0 ! Row 4, Column 4 + 4, 2, 53, 0 ! Row 5, Column 4 + 5, 2, 54, 0 ! Row 6, Column 4 + 6, 2, 55, 0 ! Row 7, Column 4 + 7, 2, 56, 0 ! Row 8, Column 4 + 8, 2, 57, 0 ! Row 9, Column 4 + 9, 2, 58, 0 ! Row 10, Column 4 + 10, 2, 59, 0 ! Row 11, Column 4 + 11, 2, 60, 0 ! Row 12, Column 4 + 12, 2, 61, 0 ! Row 13, Column 4 + 13, 2, 62, 0 ! Row 14, Column 4 + 14, 2, 63, 0 ! Row 15, Column 4 + 15, 2, 64, 0 ! Row 16, Column 4 + +SLOT=9 + 0, 2, 65, 0 ! Row 1, Column 5 + 1, 2, 66, 0 ! Row 2, Column 5 + 2, 2, 67, 0 ! Row 3, Column 5 + 3, 2, 68, 0 ! Row 4, Column 5 + 4, 2, 69, 0 ! Row 5, Column 5 + 5, 2, 70, 0 ! Row 6, Column 5 + 6, 2, 71, 0 ! Row 7, Column 5 + 7, 2, 72, 0 ! Row 8, Column 5 + 8, 2, 73, 0 ! Row 9, Column 5 + 9, 2, 74, 0 ! Row 10, Column 5 + 10, 2, 75, 0 ! Row 11, Column 5 + 11, 2, 76, 0 ! Row 12, Column 5 + 12, 2, 77, 0 ! Row 13, Column 5 + 13, 2, 78, 0 ! Row 14, Column 5 + 14, 2, 79, 0 ! Row 15, Column 5 + 15, 2, 80, 0 ! Row 16, Column 5 + +SLOT=10 + 0, 2, 81, 0 ! Row 1, Column 6 + 1, 2, 82, 0 ! Row 2, Column 6 + 2, 2, 83, 0 ! Row 3, Column 6 + 3, 2, 84, 0 ! Row 4, Column 6 + 4, 2, 85, 0 ! Row 5, Column 6 + 5, 2, 86, 0 ! Row 6, Column 6 + 6, 2, 87, 0 ! Row 7, Column 6 + 7, 2, 88, 0 ! Row 8, Column 6 + 8, 2, 89, 0 ! Row 9, Column 6 + 9, 2, 90, 0 ! Row 10, Column 6 + 10, 2, 91, 0 ! Row 11, Column 6 + 11, 2, 92, 0 ! Row 12, Column 6 + 12, 2, 93, 0 ! Row 13, Column 6 + 13, 2, 94, 0 ! Row 14, Column 6 + 14, 2, 95, 0 ! Row 15, Column 6 + 15, 2, 96, 0 ! Row 16, Column 6 + +SLOT=13 + 0, 2, 97, 0 ! Row 1, Column 7 + 1, 2, 98, 0 ! Row 2, Column 7 + 2, 2, 99, 0 ! Row 3, Column 7 + 3, 2, 100, 0 ! Row 4, Column 7 + 4, 2, 101, 0 ! Row 5, Column 7 + 5, 2, 102, 0 ! Row 6, Column 7 + 6, 2, 103, 0 ! Row 7, Column 7 + 7, 2, 104, 0 ! Row 8, Column 7 + 8, 2, 105, 0 ! Row 9, Column 7 + 9, 2, 106, 0 ! Row 10, Column 7 + 10, 2, 107, 0 ! Row 11, Column 7 + 11, 2, 108, 0 ! Row 12, Column 7 + 12, 2, 109, 0 ! Row 13, Column 7 + 13, 2, 110, 0 ! Row 14, Column 7 + 14, 2, 111, 0 ! Row 15, Column 7 + 15, 2, 112, 0 ! Row 16, Column 7 + +SLOT=14 + 0, 2, 113, 0 ! Row 1, Column 8 + 1, 2, 114, 0 ! Row 2, Column 8 + 2, 2, 115, 0 ! Row 3, Column 8 + 3, 2, 116, 0 ! Row 4, Column 8 + 4, 2, 117, 0 ! Row 5, Column 8 + 5, 2, 118, 0 ! Row 6, Column 8 + 6, 2, 119, 0 ! Row 7, Column 8 + 7, 2, 120, 0 ! Row 8, Column 8 + 8, 2, 121, 0 ! Row 9, Column 8 + 9, 2, 122, 0 ! Row 10, Column 8 + 10, 2, 123, 0 ! Row 11, Column 8 + 11, 2, 124, 0 ! Row 12, Column 8 + 12, 2, 125, 0 ! Row 13, Column 8 + 13, 2, 126, 0 ! Row 14, Column 8 + 14, 2, 127, 0 ! Row 15, Column 8 + 15, 2, 128, 0 ! Row 16, Column 8 + +SLOT=15 + 0, 2, 129, 0 ! Row 1, Column 9 + 1, 2, 130, 0 ! Row 2, Column 9 + 2, 2, 131, 0 ! Row 3, Column 9 + 3, 2, 132, 0 ! Row 4, Column 9 + 4, 2, 133, 0 ! Row 5, Column 9 + 5, 2, 134, 0 ! Row 6, Column 9 + 6, 2, 135, 0 ! Row 7, Column 9 + 7, 2, 136, 0 ! Row 8, Column 9 + 8, 2, 137, 0 ! Row 9, Column 9 + 9, 2, 138, 0 ! Row 10, Column 9 + 10, 2, 139, 0 ! Row 11, Column 9 + 11, 2, 140, 0 ! Row 12, Column 9 + 12, 2, 141, 0 ! Row 13, Column 9 + 13, 2, 142, 0 ! Row 14, Column 9 + 14, 2, 143, 0 ! Row 15, Column 9 + 15, 2, 144, 0 ! Row 16, Column 9 + +SLOT=16 + 0, 2, 145, 0 ! Row 1, Column 10 + 1, 2, 146, 0 ! Row 2, Column 10 + 2, 2, 147, 0 ! Row 3, Column 10 + 3, 2, 148, 0 ! Row 4, Column 10 + 4, 2, 149, 0 ! Row 5, Column 10 + 5, 2, 150, 0 ! Row 6, Column 10 + 6, 2, 151, 0 ! Row 7, Column 10 + 7, 2, 152, 0 ! Row 8, Column 10 + 8, 2, 153, 0 ! Row 9, Column 10 + 9, 2, 154, 0 ! Row 10, Column 10 + 10, 2, 155, 0 ! Row 11, Column 10 + 11, 2, 156, 0 ! Row 12, Column 10 + 12, 2, 157, 0 ! Row 13, Column 10 + 13, 2, 158, 0 ! Row 14, Column 10 + 14, 2, 159, 0 ! Row 15, Column 10 + 15, 2, 160, 0 ! Row 16, Column 10 + +SLOT=17 + 0, 2, 161, 0 ! Row 1, Column 11 + 1, 2, 162, 0 ! Row 2, Column 11 + 2, 2, 163, 0 ! Row 3, Column 11 + 3, 2, 164, 0 ! Row 4, Column 11 + 4, 2, 165, 0 ! Row 5, Column 11 + 5, 2, 166, 0 ! Row 6, Column 11 + 6, 2, 167, 0 ! Row 7, Column 11 + 7, 2, 168, 0 ! Row 8, Column 11 + 8, 2, 169, 0 ! Row 9, Column 11 + 9, 2, 170, 0 ! Row 10, Column 11 + 10, 2, 171, 0 ! Row 11, Column 11 + 11, 2, 172, 0 ! Row 12, Column 11 + 12, 2, 173, 0 ! Row 13, Column 11 + 13, 2, 174, 0 ! Row 14, Column 11 + 14, 2, 175, 0 ! Row 15, Column 11 + 15, 2, 176, 0 ! Row 16, Column 11 + +SLOT=18 + 0, 2, 177, 0 ! Row 1, Column 12 + 1, 2, 178, 0 ! Row 2, Column 12 + 2, 2, 179, 0 ! Row 3, Column 12 + 3, 2, 180, 0 ! Row 4, Column 12 + 4, 2, 181, 0 ! Row 5, Column 12 + 5, 2, 182, 0 ! Row 6, Column 12 + 6, 2, 183, 0 ! Row 7, Column 12 + 7, 2, 184, 0 ! Row 8, Column 12 + 8, 2, 185, 0 ! Row 9, Column 12 + 9, 2, 186, 0 ! Row 10, Column 12 + 10, 2, 187, 0 ! Row 11, Column 12 + 11, 2, 188, 0 ! Row 12, Column 12 + 12, 2, 189, 0 ! Row 13, Column 12 + 13, 2, 190, 0 ! Row 14, Column 12 + 14, 2, 191, 0 ! Row 15, Column 12 + 15, 2, 192, 0 ! Row 16, Column 12 + +SLOT=19 + 0, 2, 193, 0 ! Row 1, Column 13 + 1, 2, 194, 0 ! Row 2, Column 13 + 2, 2, 195, 0 ! Row 3, Column 13 + 3, 2, 196, 0 ! Row 4, Column 13 + 4, 2, 197, 0 ! Row 5, Column 13 + 5, 2, 198, 0 ! Row 6, Column 13 + 6, 2, 199, 0 ! Row 7, Column 13 + 7, 2, 200, 0 ! Row 8, Column 13 + 8, 2, 201, 0 ! Row 9, Column 13 + 9, 2, 202, 0 ! Row 10, Column 13 + 10, 2, 203, 0 ! Row 11, Column 13 + 11, 2, 204, 0 ! Row 12, Column 13 + 12, 2, 205, 0 ! Row 13, Column 13 + 13, 2, 206, 0 ! Row 14, Column 13 + 14, 2, 207, 0 ! Row 15, Column 13 + 15, 2, 208, 0 ! Row 16, Column 13 + +SLOT=20 + 0, 2, 209, 0 ! Row 1, Column 14 + 1, 2, 210, 0 ! Row 2, Column 14 + 2, 2, 211, 0 ! Row 3, Column 14 + 3, 2, 212, 0 ! Row 4, Column 14 + 4, 2, 213, 0 ! Row 5, Column 14 + 5, 2, 214, 0 ! Row 6, Column 14 + 6, 2, 215, 0 ! Row 7, Column 14 + 7, 2, 216, 0 ! Row 8, Column 14 + 8, 2, 217, 0 ! Row 9, Column 14 + 9, 2, 218, 0 ! Row 10, Column 14 + 10, 2, 219, 0 ! Row 11, Column 14 + 11, 2, 220, 0 ! Row 12, Column 14 + 12, 2, 221, 0 ! Row 13, Column 14 + 13, 2, 222, 0 ! Row 14, Column 14 + 14, 2, 223, 0 ! Row 15, Column 14 + 15, 2, 224, 0 ! Row 16, Column 14 diff --git a/MAPS/db_cratemap.dat b/MAPS/db_cratemap.dat index 054ca6d7..a8397b04 100644 --- a/MAPS/db_cratemap.dat +++ b/MAPS/db_cratemap.dat @@ -18,6 +18,7 @@ 19 250 250 20 1190 1190 + ==== Crate 2 type vme Bank Decoding # slot model bank 3 250 250 diff --git a/MAPS/make_cratemap.sh b/MAPS/make_cratemap.sh index e6f96ca6..438d879b 100755 --- a/MAPS/make_cratemap.sh +++ b/MAPS/make_cratemap.sh @@ -31,7 +31,7 @@ function ask_proceed { exit elif [[ $response = "yes" ]]; then proceed - else + else echo; echo "Please respond by specifically typing yes or no"; echo; exit fi } diff --git a/MAPS/merge_list.txt b/MAPS/merge_list.txt index cf0279d5..8fe2023f 100644 --- a/MAPS/merge_list.txt +++ b/MAPS/merge_list.txt @@ -1,4 +1,8 @@ -haero.map -hcal.map +SHMS/DETEC/ptrig.map +SHMS/DETEC/pdc.map +SHMS/DETEC/phodo.map +SHMS/DETEC/phgcer.map +SHMS/DETEC/pngcer.map +SHMS/DETEC/pcal.map +SHMS/DETEC/paero.map -#hhodo.map diff --git a/MAPS/merge_maps.py b/MAPS/merge_maps.py index 6f0fab76..2ab97438 100644 --- a/MAPS/merge_maps.py +++ b/MAPS/merge_maps.py @@ -51,9 +51,12 @@ class Slot: def __init__(self): self.ID = -1 self.comment = '' - self.KWs = {kw: -1 for kw in slotKWs} + self.KWs = {} self.channels = [] + for kw in slotKWs: + self.KWs[kw] = -1 + def __str__(self): string = 'SLOT={0.ID}'.format(self) if self.comment != '': @@ -84,7 +87,7 @@ class Channel: return string -if (sys.argv[1] == '-h' or len(sys.argv) != 3): +if (len(sys.argv) != 3 or sys.argv[1] == '-h'): print('Call as:') print(' merge_maps.py merge_list.txt outfile.map') sys.exit() @@ -134,7 +137,7 @@ for fileName in fileNames: KW = line[1:i].strip() ID = line[i+4:].split()[0].strip() - signal = ','.join(line[i+4:].split()[1:]) + signal = ','.join(line[i+4:].replace('::', '').split()[1:]) if KW in header['KWs']: print('Detector keyword `{}` already present!'.format(KW)) @@ -233,8 +236,8 @@ with open(mergedName, 'w') as fo: for ID, KW, signals in sorted(zip( header['IDs'], header['KWs'], header['signals'] )): - IDString = '{}_ID={}'.format(KW, ID) - fo.write('! {:15} :: {}\n'.format(IDString, signal)) + IDString = '{0}_ID={1}'.format(KW, ID) + fo.write('! {0:15} :: {1}\n'.format(IDString, signals)) # Write detector maps sorted by IDs. for ID, KW in sorted(zip( @@ -242,16 +245,16 @@ with open(mergedName, 'w') as fo: )): for detector in detectors: if detector.ID == ID: - fo.write('\n\n{}\n'.format(detector)) + fo.write('\n\n{0}\n'.format(detector)) for roc in detector.rocs: - fo.write('\n{}\n'.format(roc)) + fo.write('\n{0}\n'.format(roc)) for slot in roc.slots: - fo.write('\n{}'.format(slot)) + fo.write('\n{0}'.format(slot)) for channel in slot.channels: - fo.write('{}\n'.format(channel)) + fo.write('{0}\n'.format(channel)) print('\nDone.') diff --git a/PARAM/HMS/CER/hcer.param b/PARAM/HMS/CER/hcer.param index a23df2e8..14db2ac6 100644 --- a/PARAM/HMS/CER/hcer.param +++ b/PARAM/HMS/CER/hcer.param @@ -1,6 +1,6 @@ hcer_width = 50, 50 -hcer_adc_to_npe = 1/145.0, 1/122.0 +hcer_adc_to_npe = 1/6353., 1/8116. hcer_chi2max = 50. diff --git a/PARAM/HMS/DC/hdc.param b/PARAM/HMS/DC/hdc.param deleted file mode 100644 index bfa88fd6..00000000 --- a/PARAM/HMS/DC/hdc.param +++ /dev/null @@ -1,33 +0,0 @@ -;--------------------------------------------------------------------- -; HMS_TRACKING -; CTP parameter file containing all tracking parameters for the HMS -;---------------------------------------------------------------------- -; sigma of wire chamber resolution for each plane - hdc_sigma = 0.020 - 0.020 - 0.020 - 0.020 - 0.020 - 0.020 - 0.020 - 0.020 - 0.020 - 0.020 - 0.020 - 0.020 - hdc_tdc_min_win = -25000,-25000,-25000,-25000,-25000,-25000 - -25000,-25000,-25000,-25000,-25000,-25000 - hdc_tdc_max_win = 25000,25000,25000,25000,25000,25000 - 25000,25000,25000,25000,25000,25000 -; hms drift chamber tdc's time per channel - hdc_tdc_time_per_channel = -0.10 -; hms zero time for drift chambers !DECREASING this number moves the hdtime plots to LOWER time. - hdc_plane_time_zero = -213.0,-213.0,-213.0,-213.0,-213.0,-213.0 - -213.0,-213.0,-213.0,-213.0,-213.0,-213.0 - -; Dave Abbott's wire velocity correction -hdc_wire_velocity = 12.0 -hdc_central_time = 7,9,3,4,6,5 - 7,5,3,4,6,6 - - diff --git a/PARAM/HMS/DC/hdc.pos b/PARAM/HMS/DC/hdc.pos index fdbf2aed..597ab6a8 100644 --- a/PARAM/HMS/DC/hdc.pos +++ b/PARAM/HMS/DC/hdc.pos @@ -1,183 +1,94 @@ -; Number of planes installed in HMS detector setup - hdc_num_planes = 12 -; Number of chambers installed in HMS detector setup - hdc_num_chambers = 2 -; Names of each wire plane -; -; Z positions of various planes in HMS chambers -; hdc_n_zpos is the surveyed Z position of the center of chamber n. - hdc_1_zpos = (-40.611-11.312+0.003) - hdc_2_zpos = (+40.611-11.312-0.008) - - hdc_zpos = hdc_1_zpos - 3.6000 - hdc_1_zpos - 1.8000 - hdc_1_zpos - 0.0000 - hdc_1_zpos + 1.8000 - hdc_1_zpos + 3.6000 - hdc_1_zpos + 5.4000 - hdc_2_zpos - 3.6000 - hdc_2_zpos - 1.8000 - hdc_2_zpos - 0.0000 - hdc_2_zpos + 1.8000 - hdc_2_zpos + 3.6000 - hdc_2_zpos + 5.4000 -; Angle alpha of wires in wire chamber planes - hdc_alpha_angle = (90. - 0.071)*raddeg - (0.0 - 0.071)*raddeg - (74.925 - 0.071)*raddeg - (105.075 - 0.071)*raddeg - (0.0 - 0.071)*raddeg - (90.0 - 0.071)*raddeg - (89.90814 - 0.153)*raddeg - (0.01611 - 0.153)*raddeg - (74.85 - 0.153)*raddeg - (105.05 - 0.153)*raddeg - (0.01611 - 0.153)*raddeg - (89.90814 - 0.153)*raddeg -; hdc_alpha_angle = ( 90.1541 - 0.071)*raddeg -; ( -0.0408 - 0.071)*raddeg -; ( 75.1267 - 0.071)*raddeg -; (105.1267 - 0.071)*raddeg -; ( -0.0408 - 0.071)*raddeg -; ( 90.1541 - 0.071)*raddeg -; ( 90.1095 - 0.153)*raddeg -; ( -0.0370 - 0.153)*raddeg -; ( 75.0904 - 0.153)*raddeg -; (105.0904 - 0.153)*raddeg -; ( -0.0370 - 0.153)*raddeg -; ( 90.1095 - 0.153)*raddeg -; -; Angle beta of wires in wire chamber planes - hdc_beta_angle = -0.041*raddeg - -0.041*raddeg - -0.041*raddeg - -0.041*raddeg - -0.041*raddeg - -0.041*raddeg - +0.054*raddeg - +0.054*raddeg - +0.054*raddeg - +0.054*raddeg - +0.054*raddeg - +0.054*raddeg -; Angle gamma of wires in wire chamber planes - hdc_gamma_angle = +0.0376*raddeg - +0.0376*raddeg - +0.0376*raddeg - +0.0376*raddeg - +0.0376*raddeg - +0.0376*raddeg - -0.145*raddeg - -0.145*raddeg - -0.145*raddeg - -0.145*raddeg - -0.145*raddeg - -0.145*raddeg -; Pitch - hdc_pitch = 1.000252 - 1.000252 - 1.000252 - 1.000252 - 1.000252 - 1.000252 - 1.000252 - 1.000252 - 1.000252 - 1.000252 - 1.000252 - 1.000252 -; Number of wires per plane - hdc_nrwire = 113 - 52 - 107 - 107 - 52 - 113 - 113 - 52 - 107 - 107 - 52 - 113 -; X,Y position of center of wire chamber -; increasing dc2 coordinates decreases dpos histograms. -; new values according to henk and rolf - hdc_xcenter = (1.670 - 0.0155 - 0.020) - (2.758 - 0.0155 + 0.040) -; hdc_xcenter = (1.670 - 0.0155) -; (2.758 - 0.0155) -; hdc_xcenter = 1.670 + 0.15 + 0.0155 -; 2.758 + 0.16 + 0.0155 -; Y CENTER CHANGED TO MATCH OPTICS DATA(offset of 1.1 cm in y) -; new values included according to henk and rolf - hdc_ycenter = (1.443 - 0.1699 - 0.0279 - 0.04) - (2.753 - 0.1699 + 0.0279 + 0.04) -; hdc_ycenter = (1.443 - 0.1699 - 0.0279 - 0.035) -; (2.753 - 0.1699 + 0.0279 + 0.035) -; hdc_ycenter = (1.443 - 0.1699 - 0.0279) -; (2.753 - 0.1699 + 0.0279) +; CHAMBER POSITION PARAMETERS -; hdc_ycenter = 0.343 + 1.1 - 0.12 + 0.1699 + 0.0279 -; 1.653 + 1.1 - 0.22 + 0.1699 - 0.0279 -; hdc_ycenter = 0.343 THESE ARE THE ORIGINAL Y CENTERS FROM SURVEY DATA -; 1.653 -; hdc_xcenter = 0.0 -; 1.22 -; hdc_ycenter = 0.0 -; 1.24 +; x, y and z position of center for each wire chamber in cm. +; From SANE with correction from C1768 using 2007 controls. +hdc_xcenter = 1.6345 - 0.37 ; TODO - final survey + 2.7825 - 0.40 +hdc_ycenter = 1.2052 - 0.11 ; TODO - final survey + 2.6510 - 0.06 +hdc_1_zpos = -51.920 - 0.44 ; TODO - final survey +hdc_2_zpos = 29.291 - 1.76 ; TODO - final survey -; Wire number of center of wire chamber -; assume 1st wire of 1st dc of a set is closest to edge where counting starts - hdc_central_wire = 57.257, 26.240, 54.001, 53.999, 26.760 , 56.743 - 57.244, 26.242, 53.998, 54.002, 26.758 , 56.756 +; Roll, pitch and yaw for each wire chamber in degrees. +; From C1768 using 2007 controls. +pdc_1_roll = 0.155 ; TODO - final survey +pdc_2_roll = 0.186 ; TODO - final survey +pdc_1_pitch = 0.080 ; TODO - final survey +pdc_2_pitch = 0.077 ; TODO - final survey +pdc_1_yaw = 0.324 ; TODO - final survey +pdc_2_yaw = 0.118 ; TODO - final survey -; hdc_central_wire = 57.25, 26.245, 54.0, 54.0, 26.755 , 56.75 -; 57.24, 26.245, 54.0, 54.0, 26.755 , 56.76 -; hdc_central_wire = 57.25, 26.25, 54.0, 54.0, 26.75 , 56.75 -; 57.24, 26.25, 54.0, 54.0, 26.75 , 56.76 -; hdc_chamber_planes array giving the chamber number for each plane - hdc_chamber_planes = 1 - 1 - 1 - 1 - 1 - 1 - 2 - 2 - 2 - 2 - 2 - 2 -; The hms readout numbers some planes in reverse order. -; The following array is a flag on the order number. -; If hdc_wire_counting(plane) = 0 -; the wire center is at (wire - hdc_central_wire) * pitch -; If hdc_wire_counting(plane) = 1 -; the wire center is at ( hdc_nrwire + 1 - wire - hdc_central_wire) * pitch - hdc_wire_counting = 1 - 1 - 0 - 1 - 0 - 0 - 1 - 1 - 0 - 1 - 0 - 0 -; The velocity correction is the distance from the center of the wire divided -; by the velocity of propagation times hdc_drifttime_sign(pln). +/-1 -; for disc. card at +/- coord. (i.e. top = -x direction, so top readout is +1) - hdc_drifttime_sign = -1 - -1 - -1 - -1 - -1 - -1 - -1 - -1 - -1 - -1 - -1 - -1 + +; PLANE POSITION PARAMETERS + +; Wire number of center of wire chamber for each plane. +; From SANE. +hdc_central_wire = 57.257, 26.240, 54.001, 53.999, 26.760 , 56.743 + 57.244, 26.242, 53.998, 54.002, 26.758 , 56.756 + +; Distance between wires for each plane in cm. +; From SANE. +hdc_pitch = 1.000252, 1.000252, 1.000252, 1.000252, 1.000252, 1.000252 + 1.000252, 1.000252, 1.000252, 1.000252, 1.000252, 1.000252 + +; Order in which wires are counted in each plane. +hdc_wire_counting = 1, 1, 0, 1, 0, 0 + 1, 1, 0, 1, 0, 0 + +; z position in cm of each plane measured from focal plane. +; From SANE. +hdc_zpos = hdc_1_zpos - 3.6 + hdc_1_zpos - 1.8 + hdc_1_zpos - 0.0 + hdc_1_zpos + 1.8 + hdc_1_zpos + 3.6 + hdc_1_zpos + 5.4 + hdc_2_zpos - 3.6 + hdc_2_zpos - 1.8 + hdc_2_zpos - 0.0 + hdc_2_zpos + 1.8 + hdc_2_zpos + 3.6 + hdc_2_zpos + 5.4 + +; Alpha angle of wires for each plane in radians. +; From SANE. +hdc_alpha_angle = ( 90.00000 + pdc_1_roll)*raddeg + ( 0.00000 + pdc_1_roll)*raddeg + ( 74.92500 + pdc_1_roll)*raddeg + (105.07500 + pdc_1_roll)*raddeg + ( 0.00000 + pdc_1_roll)*raddeg + ( 90.00000 + pdc_1_roll)*raddeg + ( 89.90814 + pdc_2_roll)*raddeg + ( 0.01611 + pdc_2_roll)*raddeg + ( 74.85000 + pdc_2_roll)*raddeg + (105.05000 + pdc_2_roll)*raddeg + ( 0.01611 + pdc_2_roll)*raddeg + ( 89.90814 + pdc_2_roll)*raddeg + +; Beta angle of wires for each plane in radians. +hdc_beta_angle = pdc_1_pitch*raddeg + pdc_1_pitch*raddeg + pdc_1_pitch*raddeg + pdc_1_pitch*raddeg + pdc_1_pitch*raddeg + pdc_1_pitch*raddeg + pdc_2_pitch*raddeg + pdc_2_pitch*raddeg + pdc_2_pitch*raddeg + pdc_2_pitch*raddeg + pdc_2_pitch*raddeg + pdc_2_pitch*raddeg + +; Gamma angle of wires for each plane in radians +hdc_gamma_angle = pdc_1_yaw*raddeg + pdc_1_yaw*raddeg + pdc_1_yaw*raddeg + pdc_1_yaw*raddeg + pdc_1_yaw*raddeg + pdc_1_yaw*raddeg + pdc_2_yaw*raddeg + pdc_2_yaw*raddeg + pdc_2_yaw*raddeg + pdc_2_yaw*raddeg + pdc_2_yaw*raddeg + pdc_2_yaw*raddeg diff --git a/PARAM/HMS/DC/hdc_offsets.param b/PARAM/HMS/DC/hdc_offsets.param index a5561b27..759fed95 100644 --- a/PARAM/HMS/DC/hdc_offsets.param +++ b/PARAM/HMS/DC/hdc_offsets.param @@ -1,3 +1,5 @@ +; deprecated parameters + ; cable id's for HMS Drift Chambers ; array is 113,12 (wires,planes) but most planes have less than 113 wires) @@ -122,4 +124,3 @@ hdc_card_delay = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 0 - diff --git a/PARAM/HMS/DC/hdc_test_stand.param b/PARAM/HMS/DC/hdc_test_stand.param index 73a7e92d..53fd4445 100644 --- a/PARAM/HMS/DC/hdc_test_stand.param +++ b/PARAM/HMS/DC/hdc_test_stand.param @@ -1,17 +1,17 @@ -; Custom parameter file which should loaded when aiming to -; analyze HMS drift chamber data with no tracking. +; TEST-STAND PARAMETERS +; Custom parameter file which should be loaded when aiming to analyze HMS DC +; data with no tracking. +; Increase HMS TDC window size. +hdc_tdc_min_win = -50000, -50000, -50000, -50000, -50000, -50000 + -50000, -50000, -50000, -50000, -50000, -50000 +hdc_tdc_max_win = 50000, 50000, 50000, 50000, 50000, 50000 + 50000, 50000, 50000, 50000, 50000, 50000 -; Increase HMS TDC window size - hdc_tdc_min_win = -50000,-50000,-50000,-50000,-50000,-50000 - -50000,-50000,-50000,-50000,-50000,-50000 - hdc_tdc_max_win = 50000,50000,50000,50000,50000,50000 - 50000,50000,50000,50000,50000,50000 -; Remove hodoscope dependence on tracking - hsel_using_scin = 0 -; hsel_using_prune = 0 - -; Adjust HMS DC plane t = 0 -; hdc_plane_time_zero = 1500.0,1500.0,1500.0,1500.0,1500.0,1500.0 -; 1500.0,1500.0,1500.0,1500.0,1500.0,1500.0 +; Remove hodoscope dependence on tracking. +hsel_using_scin = 0 +; hsel_using_prune = 0 +; Adjust HMS DC plane t = 0 +; hdc_plane_time_zero = 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0 +; 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0 diff --git a/PARAM/HMS/DC/hdc_tracking.param b/PARAM/HMS/DC/hdc_tracking.param new file mode 100644 index 00000000..9ca0e789 --- /dev/null +++ b/PARAM/HMS/DC/hdc_tracking.param @@ -0,0 +1,30 @@ +; TRACKING PARAMETERS + +; Sigma of wire chamber resolution for each plane. +; From SANE. +hdc_sigma = 0.020, 0.020, 0.020, 0.020, 0.020, 0.020 + 0.020, 0.020, 0.020, 0.020, 0.020, 0.020 + +; TDC window limits for each plane. +hdc_tdc_min_win = -14000, -14000, -14000, -14000, -14000, -14000 + -14000, -14000, -14000, -14000, -14000, -14000 +hdc_tdc_max_win = -6000, -6000, -6000, -6000, -6000, -6000 + -6000, -6000, -6000, -6000, -8000, -6000 + +; Conversion factor from TDC clicks to ns. +hdc_tdc_time_per_channel = -0.10 + +; Zero time correction for each plane in ns that is added to TDC time. +; From SANE. +hdc_plane_time_zero = 1297.19, 1299.88, 1309.39, 1305.01, 1299.32, 1306.23 + 1313.72, 1310.78, 1315.82, 1316.98, 1308.16, 1316.16 + +; For wire velocity corrections. +; From SANE. +hdc_wire_velocity = 12.0 +hdc_central_time = 7, 9, 3, 4, 6, 5 + 7, 5, 3, 4, 6, 6 +hdc_drifttime_sign = -1, -1, -1, -1, -1, -1 + -1, -1, -1, -1, -1, -1 +hdc_fix_lr = 0 +hdc_fix_propcorr = 0 diff --git a/PARAM/HMS/DC/hdeadwires.param b/PARAM/HMS/DC/hdeadwires.param index 9d8b527e..fc20ebfa 100644 --- a/PARAM/HMS/DC/hdeadwires.param +++ b/PARAM/HMS/DC/hdeadwires.param @@ -1,3 +1,5 @@ +; deprecated parameters + ; list of dead wires in the HMS (plane,wire). Dead means <20% efficiency. hdc_num_deadwires = 6 diff --git a/PARAM/HMS/DC/hdriftmap.param b/PARAM/HMS/DC/hdriftmap.param index 6da2063b..76b2da46 100644 --- a/PARAM/HMS/DC/hdriftmap.param +++ b/PARAM/HMS/DC/hdriftmap.param @@ -1,175 +1,190 @@ -; Lookup table -;number of bins in Meek's time to distance lookup table -hdriftbins=138 -;number of 1st bin in Meek's table in ns -hdrift1stbin=-24 -;bin size in ns of Meek's table +; Contains lookup tables for drift time. + +; Number of bins in table. +hdriftbins = 138 + +; Time of first bin in ns. +hdrift1stbin = 0 + +; Bin size in ns. hdriftbinsz=2 -hwc1x1fract=0.0000,0.0001,0.0001,0.0002,0.0003,0.0004,0.0004,0.0005 -0.0007,0.0008,0.0010,0.0012,0.0015,0.0020,0.0028,0.0041,0.0060,0.0086 -0.0121,0.0167,0.0230,0.0311,0.0412,0.0529,0.0658,0.0800,0.0951,0.1114 -0.1284,0.1462,0.1645,0.1838,0.2036,0.2241,0.2451,0.2667,0.2884,0.3099 -0.3319,0.3541,0.3764,0.3989,0.4213,0.4438,0.4662,0.4888,0.5113,0.5334 -0.5555,0.5777,0.5996,0.6208,0.6419,0.6628,0.6838,0.7045,0.7245,0.7446 -0.7639,0.7826,0.8007,0.8181,0.8346,0.8500,0.8646,0.8784,0.8910,0.9029 -0.9134,0.9234,0.9324,0.9405,0.9479,0.9547,0.9608,0.9663,0.9712,0.9756 -0.9795,0.9827,0.9854,0.9878,0.9897,0.9912,0.9925,0.9936,0.9945,0.9952 -0.9957,0.9963,0.9967,0.9971,0.9974,0.9977,0.9979,0.9981,0.9983,0.9984 -0.9986,0.9987,0.9989,0.9990,0.9991,0.9992,0.9992,0.9993,0.9994,0.9995 -0.9995,0.9995,0.9996,0.9996,0.9997,0.9997,0.9997,0.9998,0.9998,0.9998 -0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000 -1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -hwc1y1fract=0.0000,0.0001,0.0001,0.0002,0.0002,0.0003,0.0004,0.0005 -0.0005,0.0006,0.0008,0.0009,0.0011,0.0014,0.0019,0.0025,0.0034,0.0048 -0.0071,0.0109,0.0172,0.0263,0.0385,0.0530,0.0697,0.0879,0.1078,0.1289 -0.1506,0.1727,0.1951,0.2180,0.2406,0.2634,0.2863,0.3092,0.3320,0.3544 -0.3769,0.3986,0.4206,0.4421,0.4634,0.4851,0.5059,0.5269,0.5479,0.5685 -0.5889,0.6096,0.6299,0.6503,0.6704,0.6900,0.7097,0.7289,0.7478,0.7663 -0.7846,0.8022,0.8192,0.8357,0.8517,0.8663,0.8803,0.8931,0.9046,0.9149 -0.9246,0.9328,0.9403,0.9471,0.9529,0.9582,0.9630,0.9672,0.9710,0.9745 -0.9777,0.9802,0.9825,0.9845,0.9864,0.9880,0.9894,0.9906,0.9916,0.9924 -0.9933,0.9940,0.9946,0.9951,0.9957,0.9961,0.9965,0.9969,0.9972,0.9975 -0.9978,0.9980,0.9982,0.9984,0.9986,0.9987,0.9989,0.9990,0.9991,0.9992 -0.9993,0.9994,0.9995,0.9995,0.9996,0.9997,0.9997,0.9998,0.9998,0.9998 -0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000,1.0000,1.0000 -1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -hwc1u1fract=0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0001,0.0001 -0.0001,0.0001,0.0002,0.0002,0.0003,0.0006,0.0013,0.0025,0.0043,0.0071 -0.0108,0.0160,0.0239,0.0345,0.0472,0.0618,0.0783,0.0958,0.1143,0.1339 -0.1539,0.1743,0.1957,0.2175,0.2394,0.2614,0.2839,0.3061,0.3280,0.3503 -0.3724,0.3944,0.4163,0.4382,0.4595,0.4808,0.5023,0.5232,0.5442,0.5652 -0.5861,0.6064,0.6270,0.6474,0.6676,0.6880,0.7077,0.7272,0.7464,0.7654 -0.7838,0.8016,0.8187,0.8350,0.8502,0.8644,0.8778,0.8901,0.9014,0.9119 -0.9214,0.9297,0.9374,0.9441,0.9504,0.9559,0.9608,0.9653,0.9693,0.9730 -0.9764,0.9793,0.9818,0.9841,0.9861,0.9877,0.9891,0.9903,0.9914,0.9923 -0.9930,0.9936,0.9942,0.9948,0.9952,0.9957,0.9961,0.9965,0.9968,0.9971 -0.9975,0.9977,0.9979,0.9981,0.9983,0.9985,0.9987,0.9988,0.9990,0.9991 -0.9992,0.9993,0.9994,0.9994,0.9995,0.9996,0.9996,0.9997,0.9997,0.9997 -0.9998,0.9998,0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999 -0.9999,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -hwc1v1fract=0.0000,0.0000,0.0000,0.0000,0.0001,0.0001,0.0001,0.0001 -0.0002,0.0002,0.0003,0.0003,0.0004,0.0005,0.0006,0.0009,0.0014,0.0025 -0.0046,0.0087,0.0152,0.0250,0.0373,0.0519,0.0688,0.0872,0.1066,0.1271 -0.1481,0.1695,0.1911,0.2126,0.2344,0.2566,0.2792,0.3017,0.3238,0.3460 -0.3680,0.3900,0.4117,0.4334,0.4545,0.4761,0.4973,0.5184,0.5390,0.5597 -0.5801,0.6006,0.6215,0.6418,0.6621,0.6822,0.7018,0.7213,0.7403,0.7590 -0.7775,0.7958,0.8132,0.8303,0.8465,0.8616,0.8758,0.8885,0.9002,0.9109 -0.9205,0.9291,0.9368,0.9437,0.9498,0.9554,0.9602,0.9650,0.9691,0.9728 -0.9761,0.9791,0.9817,0.9839,0.9859,0.9875,0.9890,0.9901,0.9912,0.9921 -0.9929,0.9936,0.9942,0.9947,0.9952,0.9956,0.9960,0.9964,0.9967,0.9971 -0.9973,0.9976,0.9978,0.9981,0.9982,0.9984,0.9986,0.9988,0.9989,0.9990 -0.9991,0.9992,0.9993,0.9994,0.9995,0.9995,0.9996,0.9997,0.9997,0.9997 -0.9998,0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000 -1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -hwc1y2fract=0.0000,0.0000,0.0000,0.0001,0.0001,0.0001,0.0002,0.0002 -0.0003,0.0003,0.0004,0.0005,0.0007,0.0009,0.0012,0.0016,0.0026,0.0043 -0.0073,0.0121,0.0198,0.0299,0.0427,0.0578,0.0749,0.0937,0.1139,0.1347 -0.1561,0.1781,0.2003,0.2230,0.2455,0.2679,0.2901,0.3122,0.3344,0.3568 -0.3789,0.4010,0.4232,0.4450,0.4663,0.4873,0.5085,0.5298,0.5506,0.5714 -0.5921,0.6128,0.6332,0.6529,0.6729,0.6925,0.7119,0.7314,0.7501,0.7685 -0.7863,0.8038,0.8209,0.8371,0.8523,0.8667,0.8800,0.8925,0.9039,0.9140 -0.9230,0.9312,0.9388,0.9456,0.9516,0.9569,0.9617,0.9660,0.9697,0.9732 -0.9763,0.9789,0.9814,0.9835,0.9853,0.9870,0.9884,0.9895,0.9906,0.9915 -0.9923,0.9931,0.9938,0.9944,0.9949,0.9954,0.9959,0.9963,0.9966,0.9970 -0.9973,0.9975,0.9977,0.9980,0.9982,0.9984,0.9986,0.9987,0.9989,0.9990 -0.9992,0.9993,0.9994,0.9995,0.9995,0.9996,0.9997,0.9997,0.9998,0.9998 -0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000 -1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -hwc1x2fract=0.0000,0.0000,0.0001,0.0001,0.0001,0.0002,0.0002,0.0003 -0.0003,0.0004,0.0005,0.0006,0.0007,0.0009,0.0012,0.0018,0.0029,0.0048 -0.0076,0.0120,0.0183,0.0265,0.0369,0.0489,0.0625,0.0771,0.0930,0.1097 -0.1272,0.1458,0.1650,0.1846,0.2051,0.2256,0.2469,0.2688,0.2909,0.3128 -0.3351,0.3573,0.3798,0.4024,0.4247,0.4470,0.4691,0.4913,0.5136,0.5353 -0.5571,0.5792,0.6009,0.6223,0.6434,0.6643,0.6853,0.7060,0.7262,0.7460 -0.7651,0.7841,0.8026,0.8201,0.8363,0.8521,0.8665,0.8803,0.8930,0.9044 -0.9151,0.9247,0.9337,0.9419,0.9492,0.9558,0.9617,0.9671,0.9718,0.9761 -0.9797,0.9828,0.9854,0.9876,0.9895,0.9910,0.9923,0.9933,0.9941,0.9949 -0.9955,0.9959,0.9964,0.9967,0.9971,0.9973,0.9976,0.9978,0.9980,0.9983 -0.9984,0.9986,0.9987,0.9988,0.9990,0.9991,0.9992,0.9993,0.9993,0.9994 -0.9994,0.9995,0.9995,0.9996,0.9996,0.9997,0.9997,0.9997,0.9998,0.9998 -0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000 -1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -hwc2x1fract=0.0000,0.0001,0.0002,0.0002,0.0003,0.0003,0.0004,0.0005 -0.0006,0.0007,0.0008,0.0010,0.0012,0.0014,0.0017,0.0022,0.0030,0.0044 -0.0069,0.0107,0.0160,0.0233,0.0321,0.0431,0.0554,0.0692,0.0839,0.1000 -0.1171,0.1348,0.1536,0.1728,0.1927,0.2131,0.2343,0.2559,0.2775,0.2991 -0.3213,0.3438,0.3664,0.3889,0.4113,0.4338,0.4566,0.4789,0.5017,0.5242 -0.5464,0.5681,0.5901,0.6114,0.6331,0.6551,0.6761,0.6973,0.7178,0.7382 -0.7584,0.7776,0.7963,0.8145,0.8318,0.8481,0.8634,0.8775,0.8905,0.9025 -0.9135,0.9234,0.9326,0.9407,0.9478,0.9544,0.9606,0.9659,0.9708,0.9750 -0.9787,0.9819,0.9846,0.9870,0.9890,0.9906,0.9919,0.9930,0.9939,0.9947 -0.9953,0.9959,0.9964,0.9968,0.9971,0.9975,0.9977,0.9979,0.9982,0.9983 -0.9985,0.9986,0.9987,0.9989,0.9990,0.9991,0.9992,0.9993,0.9993,0.9994 -0.9995,0.9995,0.9996,0.9996,0.9997,0.9997,0.9998,0.9998,0.9998,0.9998 -0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000,1.0000 -1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -hwc2y1fract=0.0000,0.0000,0.0001,0.0001,0.0001,0.0001,0.0001,0.0002 -0.0002,0.0003,0.0003,0.0004,0.0005,0.0006,0.0008,0.0011,0.0017,0.0027 -0.0047,0.0083,0.0142,0.0233,0.0356,0.0507,0.0682,0.0876,0.1083,0.1304 -0.1533,0.1769,0.2002,0.2235,0.2469,0.2702,0.2935,0.3167,0.3394,0.3618 -0.3847,0.4074,0.4295,0.4515,0.4733,0.4946,0.5158,0.5368,0.5576,0.5783 -0.5991,0.6201,0.6404,0.6610,0.6811,0.7011,0.7206,0.7397,0.7587,0.7775 -0.7958,0.8131,0.8303,0.8467,0.8624,0.8770,0.8904,0.9028,0.9140,0.9238 -0.9326,0.9404,0.9473,0.9535,0.9591,0.9639,0.9681,0.9719,0.9752,0.9782 -0.9808,0.9831,0.9850,0.9867,0.9881,0.9894,0.9905,0.9916,0.9924,0.9932 -0.9938,0.9944,0.9950,0.9955,0.9959,0.9962,0.9965,0.9969,0.9971,0.9974 -0.9976,0.9978,0.9980,0.9983,0.9984,0.9986,0.9987,0.9988,0.9990,0.9991 -0.9992,0.9993,0.9994,0.9995,0.9995,0.9996,0.9997,0.9997,0.9998,0.9998 -0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000 -1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -hwc2u1fract=0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0001,0.0001 -0.0001,0.0001,0.0001,0.0002,0.0002,0.0002,0.0003,0.0004,0.0006,0.0012 -0.0024,0.0052,0.0107,0.0196,0.0320,0.0474,0.0652,0.0852,0.1066,0.1288 -0.1509,0.1737,0.1965,0.2199,0.2431,0.2663,0.2895,0.3123,0.3350,0.3577 -0.3800,0.4019,0.4240,0.4457,0.4668,0.4882,0.5093,0.5302,0.5510,0.5716 -0.5920,0.6121,0.6323,0.6525,0.6723,0.6919,0.7113,0.7306,0.7497,0.7685 -0.7869,0.8046,0.8222,0.8393,0.8555,0.8704,0.8844,0.8973,0.9087,0.9193 -0.9283,0.9363,0.9435,0.9498,0.9553,0.9602,0.9646,0.9686,0.9721,0.9752 -0.9779,0.9804,0.9827,0.9846,0.9863,0.9878,0.9891,0.9902,0.9912,0.9920 -0.9927,0.9933,0.9939,0.9944,0.9949,0.9952,0.9956,0.9959,0.9963,0.9966 -0.9969,0.9972,0.9974,0.9977,0.9979,0.9981,0.9983,0.9984,0.9986,0.9988 -0.9989,0.9990,0.9991,0.9993,0.9994,0.9995,0.9995,0.9996,0.9996,0.9997 -0.9997,0.9998,0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999 -0.9999,0.9999,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -hwc2v1fract=0.0000,0.0000,0.0000,0.0000,0.0001,0.0001,0.0001,0.0001 -0.0001,0.0002,0.0002,0.0003,0.0003,0.0004,0.0006,0.0008,0.0012,0.0020 -0.0038,0.0077,0.0148,0.0252,0.0386,0.0549,0.0738,0.0941,0.1152,0.1374 -0.1601,0.1827,0.2055,0.2288,0.2519,0.2750,0.2981,0.3207,0.3434,0.3662 -0.3881,0.4102,0.4315,0.4530,0.4746,0.4960,0.5171,0.5381,0.5585,0.5791 -0.5993,0.6196,0.6395,0.6594,0.6790,0.6989,0.7177,0.7370,0.7558,0.7744 -0.7926,0.8108,0.8278,0.8440,0.8595,0.8745,0.8879,0.9005,0.9115,0.9218 -0.9307,0.9385,0.9454,0.9514,0.9566,0.9614,0.9657,0.9695,0.9730,0.9760 -0.9789,0.9813,0.9834,0.9853,0.9869,0.9883,0.9895,0.9906,0.9915,0.9922 -0.9929,0.9936,0.9941,0.9947,0.9952,0.9955,0.9959,0.9963,0.9967,0.9970 -0.9973,0.9976,0.9978,0.9980,0.9982,0.9984,0.9986,0.9987,0.9989,0.9991 -0.9992,0.9993,0.9994,0.9995,0.9996,0.9996,0.9997,0.9997,0.9998,0.9998 -0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000,1.0000,1.0000 -1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -hwc2y2fract=0.0000,0.0000,0.0000,0.0001,0.0001,0.0001,0.0002,0.0002 -0.0002,0.0003,0.0004,0.0005,0.0006,0.0007,0.0010,0.0014,0.0022,0.0035 -0.0058,0.0097,0.0163,0.0258,0.0382,0.0539,0.0715,0.0912,0.1122,0.1341 -0.1573,0.1803,0.2038,0.2275,0.2514,0.2749,0.2984,0.3215,0.3442,0.3667 -0.3893,0.4112,0.4332,0.4549,0.4767,0.4985,0.5191,0.5403,0.5612,0.5817 -0.6025,0.6231,0.6436,0.6642,0.6839,0.7036,0.7235,0.7427,0.7617,0.7803 -0.7984,0.8159,0.8328,0.8491,0.8645,0.8788,0.8919,0.9043,0.9152,0.9250 -0.9337,0.9414,0.9482,0.9541,0.9595,0.9641,0.9683,0.9721,0.9753,0.9782 -0.9807,0.9829,0.9849,0.9866,0.9881,0.9894,0.9905,0.9914,0.9922,0.9929 -0.9936,0.9942,0.9948,0.9952,0.9956,0.9960,0.9964,0.9967,0.9970,0.9972 -0.9975,0.9977,0.9979,0.9981,0.9983,0.9985,0.9987,0.9988,0.9989,0.9990 -0.9991,0.9993,0.9994,0.9994,0.9995,0.9996,0.9996,0.9997,0.9997,0.9998 -0.9998,0.9998,0.9998,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999 -1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -hwc2x2fract=0.0000,0.0001,0.0001,0.0001,0.0002,0.0002,0.0003,0.0003 -0.0004,0.0005,0.0006,0.0007,0.0009,0.0012,0.0016,0.0023,0.0039,0.0064 -0.0100,0.0151,0.0223,0.0316,0.0430,0.0561,0.0707,0.0864,0.1032,0.1212 -0.1397,0.1592,0.1791,0.1996,0.2206,0.2422,0.2638,0.2856,0.3081,0.3308 -0.3534,0.3759,0.3990,0.4214,0.4438,0.4662,0.4885,0.5107,0.5324,0.5543 -0.5762,0.5979,0.6196,0.6411,0.6621,0.6828,0.7033,0.7238,0.7438,0.7632 -0.7824,0.8007,0.8182,0.8352,0.8514,0.8666,0.8806,0.8934,0.9052,0.9160 -0.9256,0.9346,0.9426,0.9498,0.9561,0.9617,0.9670,0.9715,0.9755,0.9790 -0.9820,0.9846,0.9869,0.9888,0.9904,0.9917,0.9929,0.9938,0.9946,0.9952 -0.9958,0.9962,0.9966,0.9970,0.9973,0.9976,0.9978,0.9981,0.9982,0.9984 -0.9986,0.9987,0.9989,0.9990,0.9991,0.9992,0.9993,0.9994,0.9994,0.9995 -0.9996,0.9996,0.9996,0.9997,0.9997,0.9997,0.9998,0.9998,0.9998,0.9998 -0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,0.9999,1.0000 -1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 + +hwc1x1fract=0.010023,0.02089,0.03447,0.04935,0.06575,0.08402,0.10200,0.12423,0.14634 +0.16998,0.19415,0.21953,0.24499,0.27093,0.29692,0.32473,0.35047,0.37690,0.40394 +0.42992,0.45336,0.47963,0.50230,0.52635,0.54813,0.56996,0.59016,0.61065,0.62920 +0.64844,0.66679,0.68574,0.70162,0.71678,0.73165,0.74483,0.75784,0.77005,0.78160 +0.79268,0.80387,0.81305,0.82177,0.83115,0.83968,0.84812,0.85552,0.86292,0.87007 +0.87706,0.88434,0.89113,0.89715,0.90252,0.90753,0.91275,0.91836,0.92350,0.92778 +0.93198,0.93518,0.93829,0.94140,0.94520,0.94795,0.95106,0.95356,0.95567,0.95854 +0.96048,0.96213,0.96399,0.96629,0.96803,0.96941,0.97074,0.97244,0.97389,0.97466 +0.97571,0.97676,0.97749,0.97846,0.97935,0.98020,0.98072,0.98157,0.98202,0.98270 +0.98359,0.98436,0.98493,0.98529,0.98590,0.98687,0.98719,0.98751,0.98788,0.98816 +0.98917,0.99026,0.99091,0.99143,0.99176,0.99208,0.99244,0.99301,0.99333,0.99366 +0.99402,0.99454,0.99503,0.99527,0.99531,0.99568,0.99584,0.99628,0.99652,0.99677 +0.99701,0.99725,0.99737,0.99762,0.99790,0.99822,0.99838,0.99855,0.99867,0.99891 +0.99907,0.99923,0.99931,0.99947,0.99956,0.99960,0.99968,0.99980,1.00000 + +hwc1y1fract=0.00162,0.00410,0.00874,0.01608,0.02777,0.04416,0.06347,0.08629,0.11324 +0.14260,0.17061,0.20166,0.23171,0.26391,0.29387,0.32348,0.35131,0.37870,0.40658 +0.43190,0.45648,0.48171,0.50458,0.52625,0.54752,0.56734,0.58701,0.60511,0.62250 +0.63875,0.65587,0.67149,0.68714,0.70098,0.71436,0.72782,0.74135,0.75419,0.76638 +0.77834,0.78985,0.80100,0.81165,0.82198,0.83167,0.84023,0.84957,0.85800,0.86578 +0.87321,0.88071,0.88743,0.89357,0.89954,0.90462,0.90961,0.91417,0.91794,0.92182 +0.92513,0.92877,0.93207,0.93566,0.93877,0.94216,0.94562,0.94850,0.95137,0.95474 +0.95775,0.96064,0.96376,0.96602,0.96842,0.97090,0.97299,0.97496,0.97645,0.97813 +0.97933,0.98064,0.98204,0.98341,0.98401,0.98488,0.98558,0.98621,0.98685,0.98751 +0.98802,0.98878,0.98922,0.98967,0.99009,0.99049,0.99106,0.99173,0.99222,0.99286 +0.99352,0.99381,0.99430,0.99461,0.99477,0.99499,0.99517,0.99523,0.99528,0.99548 +0.99583,0.99607,0.99663,0.99718,0.99747,0.99763,0.99776,0.99800,0.99820,0.99829 +0.99836,0.99871,0.99887,0.99894,0.99907,0.99916,0.99931,0.99936,0.99942,0.99949 +0.99949,0.99962,0.99962,0.99965,0.99971,0.99978,0.99987,0.99991,1.00000 + +hwc1u1fract=0.00398,0.00892,0.01588,0.02362,0.03275,0.04395,0.05640,0.07043,0.08642 +0.10347,0.12247,0.14388,0.16656,0.18915,0.21351,0.23952,0.26565,0.29077,0.31672 +0.34270,0.36939,0.39584,0.42072,0.44496,0.47035,0.49415,0.51666,0.53922,0.55969 +0.58013,0.60069,0.61901,0.63677,0.65447,0.66982,0.68619,0.70148,0.71571,0.72926 +0.74260,0.75541,0.76681,0.77786,0.78993,0.80021,0.81073,0.82012,0.82911,0.83812 +0.84551,0.85332,0.86080,0.86793,0.87429,0.88118,0.88687,0.89226,0.89759,0.90209 +0.90701,0.91137,0.91670,0.92180,0.92580,0.92990,0.93390,0.93803,0.94165,0.94513 +0.94787,0.95158,0.95499,0.95741,0.95985,0.96233,0.96463,0.96707,0.96931,0.97090 +0.97273,0.97440,0.97599,0.97747,0.97882,0.97985,0.98103,0.98221,0.98303,0.98389 +0.98465,0.98577,0.98642,0.98736,0.98781,0.98819,0.98866,0.98940,0.98990,0.99063 +0.99116,0.99158,0.99211,0.99234,0.99261,0.99305,0.99346,0.99373,0.99390,0.99423 +0.99443,0.99455,0.99473,0.99485,0.99508,0.99526,0.99576,0.99608,0.99655,0.99697 +0.99735,0.99756,0.99773,0.99782,0.99800,0.99835,0.99853,0.99873,0.99888,0.99903 +0.99906,0.99909,0.99912,0.99915,0.99935,0.99953,0.99973,0.99988,1.00000 + +hwc1v1fract=0.00580,0.01330,0.02203,0.03243,0.04381,0.05702,0.07421,0.09286,0.11261 +0.13579,0.16045,0.18710,0.21364,0.24161,0.27088,0.30018,0.32624,0.35515,0.38228 +0.40902,0.43640,0.46161,0.48598,0.50878,0.53129,0.55264,0.57352,0.59338,0.61242 +0.63096,0.64823,0.66457,0.68041,0.69542,0.70880,0.72317,0.73596,0.74839,0.76118 +0.77281,0.78341,0.79296,0.80242,0.81290,0.82220,0.83093,0.83863,0.84603,0.85294 +0.85970,0.86660,0.87204,0.87795,0.88356,0.88967,0.89455,0.89942,0.90432,0.90858 +0.91280,0.91664,0.92005,0.92365,0.92683,0.93022,0.93348,0.93695,0.94022,0.94346 +0.94627,0.94926,0.95197,0.95433,0.95625,0.95859,0.96087,0.96278,0.96447,0.96642 +0.96833,0.96997,0.97169,0.97304,0.97453,0.97546,0.97664,0.97749,0.97856,0.97943 +0.98019,0.98138,0.98231,0.98332,0.98400,0.98473,0.98527,0.98572,0.98636,0.98684 +0.98766,0.98825,0.98879,0.98929,0.98972,0.99014,0.99025,0.99065,0.99098,0.99129 +0.99180,0.99217,0.99256,0.99273,0.99307,0.99355,0.99380,0.99414,0.99445,0.99459 +0.99501,0.99524,0.99563,0.99577,0.99594,0.99617,0.99648,0.99665,0.99696,0.99715 +0.99732,0.99755,0.99777,0.99828,0.99870,0.99899,0.99935,0.99961,1.00000 + +hwc1y2fract=0.00133,0.00393,0.00838,0.01486,0.02499,0.03933,0.05745,0.08036,0.10760 +0.13765,0.16835,0.20049,0.23275,0.26415,0.29454,0.32368,0.35300,0.38126,0.40584 +0.43187,0.45559,0.48100,0.50321,0.52668,0.54773,0.56822,0.58772,0.60622,0.62490 +0.64176,0.65784,0.67377,0.68768,0.70234,0.71524,0.72963,0.74249,0.75433,0.76655 +0.77793,0.78810,0.79967,0.81040,0.81961,0.82924,0.83836,0.84769,0.85542,0.86312 +0.87130,0.87810,0.88472,0.89041,0.89579,0.90089,0.90530,0.90948,0.91379,0.91800 +0.92204,0.92606,0.92979,0.93365,0.93736,0.94117,0.94445,0.94829,0.95150,0.95489 +0.95823,0.96139,0.96444,0.96684,0.96943,0.97149,0.97352,0.97578,0.97759,0.97956 +0.98136,0.98272,0.98405,0.98507,0.98581,0.98658,0.98724,0.98803,0.98830,0.98898 +0.98963,0.99015,0.99060,0.99094,0.99148,0.99182,0.99236,0.99311,0.99354,0.99406 +0.99449,0.99478,0.99517,0.99535,0.99564,0.99580,0.99616,0.99634,0.99659,0.99675 +0.99697,0.99715,0.99724,0.99742,0.99747,0.99756,0.99776,0.99794,0.99815,0.99824 +0.99835,0.99844,0.99849,0.99867,0.99887,0.99905,0.99921,0.99934,0.99937,0.99944 +0.99959,0.99971,0.99973,0.99982,0.99982,0.99989,0.99989,0.99993,1.00000 + +hwc1x2fract=0.00841,0.01726,0.02881,0.04040,0.05336,0.06825,0.08367,0.10129,0.12053 +0.14234,0.16343,0.18757,0.21164,0.23530,0.26214,0.28874,0.31559,0.34235,0.36887 +0.39386,0.41990,0.44565,0.47161,0.49406,0.51773,0.54067,0.56264,0.58417,0.60578 +0.62397,0.64272,0.66180,0.67995,0.69625,0.71319,0.72828,0.74353,0.75794,0.77170 +0.78462,0.79689,0.80856,0.81838,0.82836,0.83863,0.84740,0.85512,0.86289,0.86961 +0.87686,0.88342,0.88921,0.89509,0.89996,0.90571,0.91034,0.91589,0.92100,0.92519 +0.92901,0.93279,0.93625,0.93976,0.94269,0.94555,0.94801,0.95086,0.95255,0.95489 +0.95686,0.95851,0.96080,0.96306,0.96551,0.96708,0.96881,0.97058,0.97183,0.97364 +0.97497,0.97642,0.97767,0.97871,0.97980,0.98060,0.98125,0.98217,0.98330,0.98418 +0.98479,0.98555,0.98624,0.98684,0.98736,0.98801,0.98841,0.98881,0.98905,0.98934 +0.98966,0.98998,0.99042,0.99086,0.99123,0.99171,0.99215,0.99260,0.99304,0.99320 +0.99344,0.99364,0.99372,0.99388,0.99408,0.99433,0.99441,0.99457,0.99497,0.99533 +0.99545,0.99561,0.99585,0.99618,0.99634,0.99658,0.99690,0.99722,0.99759,0.99779 +0.99827,0.99839,0.99851,0.99875,0.99891,0.99907,0.99928,0.99936,1.00000 + +hwc2x1fract=0.00489,0.01088,0.01743,0.02515,0.03469,0.04551,0.05803,0.07238,0.08804 +0.10482,0.12312,0.14230,0.16288,0.18402,0.20636,0.22862,0.25139,0.27465,0.29794 +0.32047,0.34303,0.36674,0.38892,0.41062,0.43218,0.45276,0.47297,0.49268,0.51171 +0.53078,0.54890,0.56641,0.58346,0.60024,0.61612,0.63105,0.64642,0.66105,0.67572 +0.68937,0.70297,0.71572,0.72826,0.74060,0.75229,0.76376,0.77455,0.78465,0.79466 +0.80490,0.81415,0.82324,0.83128,0.83896,0.84689,0.85404,0.86116,0.86806,0.87427 +0.88051,0.88590,0.89172,0.89708,0.90202,0.90726,0.91166,0.91587,0.92056,0.92494 +0.92916,0.93336,0.93726,0.94074,0.94426,0.94757,0.95091,0.95388,0.95674,0.95971 +0.96235,0.96474,0.96697,0.96907,0.97083,0.97260,0.97442,0.97593,0.97739,0.97885 +0.98012,0.98125,0.98223,0.98310,0.98410,0.98493,0.98575,0.98646,0.98696,0.98754 +0.98841,0.98916,0.98968,0.99022,0.99088,0.99141,0.99191,0.99238,0.99290,0.99325 +0.99366,0.99404,0.99429,0.99464,0.99489,0.99521,0.99543,0.99571,0.99591,0.99620 +0.99650,0.99678,0.99699,0.99718,0.99743,0.99756,0.99776,0.99795,0.99809,0.99834 +0.99851,0.99872,0.99889,0.99902,0.99921,0.99934,0.99957,0.99979,1.00000 + +hwc2y1fract=0.00221,0.00495,0.00877,0.01359,0.01918,0.02666,0.03473,0.04453,0.05562 +0.06888,0.08430,0.10080,0.11868,0.13789,0.15831,0.17942,0.20056,0.22237,0.24468 +0.26619,0.28820,0.31000,0.33257,0.35403,0.37524,0.39523,0.41537,0.43443,0.45304 +0.47131,0.48902,0.50591,0.52232,0.53901,0.55511,0.57012,0.58441,0.59808,0.61189 +0.62548,0.63822,0.65113,0.66312,0.67418,0.68568,0.69683,0.70825,0.71871,0.72914 +0.73905,0.74884,0.75813,0.76768,0.77716,0.78611,0.79438,0.80331,0.81189,0.82009 +0.82850,0.83629,0.84389,0.85158,0.85900,0.86678,0.87377,0.88068,0.88771,0.89401 +0.90018,0.90600,0.91200,0.91741,0.92284,0.92790,0.93250,0.93698,0.94118,0.94546 +0.94904,0.95186,0.95503,0.95770,0.96039,0.96265,0.96469,0.96642,0.96838,0.97023 +0.97188,0.97330,0.97468,0.97581,0.97715,0.97842,0.97955,0.98063,0.98187,0.98302 +0.98403,0.98500,0.98580,0.98659,0.98742,0.98817,0.98888,0.98961,0.99026,0.99088 +0.99152,0.99212,0.99272,0.99307,0.99355,0.99399,0.99438,0.99471,0.99520,0.99560 +0.99588,0.99628,0.99659,0.99681,0.99707,0.99725,0.99758,0.99785,0.99817,0.99837 +0.99860,0.99886,0.99904,0.99922,0.99943,0.99960,0.99972,0.99985,1.00000 + +hwc2u1fract=0.00379,0.00830,0.01338,0.01995,0.02761,0.03638,0.04694,0.05922,0.07375 +0.08955,0.10704,0.12618,0.14574,0.16695,0.18863,0.21090,0.23311,0.25590,0.27876 +0.30145,0.32359,0.34586,0.36832,0.38955,0.41039,0.43098,0.45070,0.46956,0.48793 +0.50551,0.52244,0.53887,0.55513,0.57053,0.58600,0.60085,0.61520,0.62895,0.64265 +0.65593,0.66914,0.68230,0.69489,0.70698,0.71870,0.73022,0.74153,0.75262,0.76300 +0.77321,0.78328,0.79281,0.80256,0.81130,0.81985,0.82823,0.83583,0.84322,0.85012 +0.85631,0.86292,0.86858,0.87376,0.87917,0.88455,0.88999,0.89527,0.90022,0.90505 +0.90965,0.91432,0.91881,0.92310,0.92726,0.93122,0.93480,0.93841,0.94194,0.94551 +0.94864,0.95138,0.95435,0.95712,0.95979,0.96205,0.96442,0.96639,0.96824,0.96984 +0.97150,0.97299,0.97440,0.97569,0.97689,0.97784,0.97903,0.98002,0.98118,0.98220 +0.98310,0.98393,0.98465,0.98544,0.98623,0.98704,0.98769,0.98833,0.98891,0.98954 +0.99009,0.99065,0.99102,0.99155,0.99217,0.99258,0.99300,0.99337,0.99373,0.99411 +0.99441,0.99464,0.99498,0.99543,0.99594,0.99647,0.99691,0.99719,0.99749,0.99779 +0.99816,0.99837,0.99859,0.99886,0.99907,0.99933,0.99951,0.99971,1.00000 + +hwc2v1fract=0.00288,0.00650,0.01128,0.01757,0.02438,0.03290,0.04248,0.05390,0.06736 +0.08262,0.09958,0.11796,0.13723,0.15713,0.17782,0.19995,0.22219,0.24485,0.26757 +0.29009,0.31224,0.33420,0.35570,0.37722,0.39805,0.41826,0.43765,0.45671,0.47523 +0.49369,0.51095,0.52765,0.54328,0.55853,0.57339,0.58869,0.60327,0.61736,0.63120 +0.64387,0.65678,0.66940,0.68187,0.69366,0.70560,0.71742,0.72889,0.74019,0.75072 +0.76101,0.77074,0.78032,0.78953,0.79846,0.80751,0.81551,0.82353,0.83101,0.83786 +0.84461,0.85116,0.85747,0.86350,0.86901,0.87446,0.87982,0.88511,0.89009,0.89497 +0.89970,0.90455,0.90930,0.91405,0.91846,0.92265,0.92678,0.93073,0.93466,0.93813 +0.94127,0.94425,0.94726,0.95006,0.95268,0.95521,0.95755,0.96004,0.96219,0.96412 +0.96592,0.96767,0.96928,0.97076,0.97205,0.97339,0.97469,0.97595,0.97706,0.97811 +0.97917,0.98012,0.98131,0.98230,0.98322,0.98395,0.98476,0.98549,0.98614,0.98663 +0.98723,0.98788,0.98863,0.98916,0.98978,0.99023,0.99081,0.99155,0.99224,0.99273 +0.99325,0.99367,0.99411,0.99448,0.99484,0.99533,0.99590,0.99621,0.99652,0.99691 +0.99741,0.99780,0.99827,0.99853,0.99882,0.99908,0.99943,0.99975,1.00000 + +hwc2y2fract=0.00160,0.00444,0.01062,0.02252,0.04178,0.06667,0.09457,0.12185,0.14828 +0.17321,0.19657,0.21935,0.24123,0.26183,0.28100,0.29932,0.31591,0.33280,0.34835 +0.36309,0.37696,0.39136,0.40499,0.41801,0.43102,0.44397,0.45626,0.46859,0.48057 +0.49258,0.50376,0.51498,0.52613,0.53714,0.54779,0.55825,0.56813,0.57848,0.58849 +0.59807,0.60775,0.61726,0.62647,0.63596,0.64509,0.65415,0.66298,0.67160,0.68001 +0.68776,0.69576,0.70352,0.71119,0.71877,0.72641,0.73385,0.74144,0.74869,0.75599 +0.76358,0.77097,0.77815,0.78552,0.79244,0.80001,0.80698,0.81437,0.82208,0.83020 +0.83830,0.84634,0.85478,0.86309,0.87142,0.87935,0.88763,0.89541,0.90281,0.90996 +0.91614,0.92222,0.92753,0.93246,0.93710,0.94136,0.94546,0.94895,0.95198,0.95471 +0.95757,0.96005,0.96271,0.96498,0.96713,0.96909,0.97090,0.97241,0.97381,0.97511 +0.97650,0.97790,0.97906,0.98010,0.98125,0.98232,0.98334,0.98436,0.98519,0.98596 +0.98661,0.98723,0.98782,0.98860,0.98924,0.98985,0.99050,0.99123,0.99176,0.99228 +0.99283,0.99333,0.99383,0.99424,0.99473,0.99521,0.99569,0.99610,0.99650,0.99682 +0.99725,0.99755,0.99788,0.99824,0.99860,0.99896,0.99931,0.99969,1.00000 + +hwc2x2fract=0.00395,0.00888,0.01485,0.02199,0.03022,0.04000,0.05108,0.06378,0.07859 +0.09479,0.11265,0.13127,0.15138,0.17208,0.19378,0.21665,0.24001,0.26354,0.28690 +0.30961,0.33310,0.35610,0.37755,0.39974,0.42105,0.44105,0.46108,0.48066,0.49966 +0.51830,0.53617,0.55306,0.56918,0.58553,0.60128,0.61669,0.63218,0.64669,0.66098 +0.67478,0.68766,0.70075,0.71356,0.72610,0.73756,0.74866,0.75939,0.76957,0.78017 +0.78974,0.79904,0.80810,0.81654,0.82494,0.83299,0.84084,0.84793,0.85505,0.86163 +0.86789,0.87423,0.87983,0.88542,0.89043,0.89547,0.90085,0.90593,0.91055,0.91521 +0.91932,0.92351,0.92783,0.93138,0.93526,0.93878,0.94227,0.94577,0.94897,0.95221 +0.95493,0.95768,0.96030,0.96269,0.96491,0.96710,0.96910,0.97089,0.97257,0.97413 +0.97544,0.97682,0.97818,0.97948,0.98063,0.98176,0.98267,0.98355,0.98439,0.98520 +0.98593,0.98657,0.98725,0.98788,0.98845,0.98911,0.98961,0.99009,0.99048,0.99097 +0.99139,0.99190,0.99219,0.99251,0.99288,0.99319,0.99365,0.99404,0.99445,0.99482 +0.99518,0.99556,0.99586,0.99612,0.99637,0.99667,0.99709,0.99737,0.99761,0.99781 +0.99796,0.99810,0.99829,0.99861,0.99895,0.99915,0.99949,0.99973,1.00000 diff --git a/PARAM/HMS/GEN/hcana.param b/PARAM/HMS/GEN/hcana.param index d5677d21..da2f2c65 100644 --- a/PARAM/HMS/GEN/hcana.param +++ b/PARAM/HMS/GEN/hcana.param @@ -8,13 +8,9 @@ href_nsperchan = 0.1 href_offset = 0.0 ; -hhodo_num_planes = 4 -hhodo_plane_names = "1x 1y 2x 2y" - hcal_num_layers = 4 rraster_num_signals = 4 -htofusinginvadc=0 hcer_tot_pmts = 2 # Exclusion band width for the calorimeter's fiducial volume. hcal_fv_delta = 5. @@ -29,20 +25,5 @@ hcal_layer_names = "1pr 2ta 3ta 4ta" haero_num_pairs = 8 -# Names of planes so that parameter names can be constructed -hdc_plane_names = "1x1 1y1 1u1 1v1 1y2 1x2 2x1 2y1 2u1 2v1 2y2 2x2" - # The following were defined in REPLAY.PARAM h_recon_coeff_filename = 'DATFILES/hms_recon_coeff.dat' ;hms optics matrix - -# The following are set to zero to replicate historical ENGINE behavior -# For new analyses they should be set to 1. If not defined here, -# hcana will default 1, the new and correct behaviour. - -# If 1, Let a hit have different L/R assignment for different space points -# instead of L/R assignment from first sp it appears in. -hdc_fix_lr = 0 -# If 1, don't do the the propagation along the wire each time the hit -# appears in a space point. (Which means the correction accumulates) -hdc_fix_propcorr = 0 - diff --git a/PARAM/HMS/GEN/htracking.param b/PARAM/HMS/GEN/htracking.param index 99b502a6..3ee7a1ea 100644 --- a/PARAM/HMS/GEN/htracking.param +++ b/PARAM/HMS/GEN/htracking.param @@ -1,26 +1,25 @@ -; hms pattern recognition and tracking code parameters -; hmax_pr_hits is the maximum number of decoded hits allowed in a chamber for -; pattern recognition to proceed. This protexts against unusual -; kami kaze events which hang the analyzer to a long time. -; - hmax_pr_hits = 35, 35 -; maximum number of possible focal plane tracks, must be <= 20 - hntracks_max_fp = 10 -; if h_remove_sppt_if_one_y_plane=1 then remove space point if space point -; contains only one y plane. -; Recommend h_remove_sppt_if_one_y_plane=0. - h_remove_sppt_if_one_y_plane=0 -; hminhit(i) minimum number of hits in each space point (one for each chamber) - hmin_hit = 5, 5 -; hmin_combos(i) minimum number of pairs in each space point ( one per chamber) -; should be 3/3 for 4/6 tracking, and 4/4 for 5/6 tracking (JRA) - hmin_combos = 4, 4 -; hspace_point_criterion(i) minimum separation of distinct space points -; recommended value for hspace_point_criterion ( based on meeting -; Feb 2003) - hspace_point_criterion = 1.0, 1.0 +; Maximum number of hits allowed in chambers for pattern recognition to proceed (one for each chamber) +hmax_pr_hits = 35, 35 + +; Maximum number of possible focal plane tracks, must be <= 20 +hntracks_max_fp = 10 + +; Remove space point if space point contains only one y plane (0 recommended) +h_remove_sppt_if_one_y_plane = 0 + +; Minimum number of hits in each space point (one per chamber) +hmin_hit = 4, 4 + +; Minimum number of pairs in each space point (one per chamber) +; Should be 3/3 for 4/6 tracking, and 4/4 for 5/6 tracking +hmin_combos = 3, 3 + +; Minimum separation of distinct space points +hspace_point_criterion = 1.0, 1.0 + +; Maximum difference between xp returned by stub and expected xp +hstub_max_xpdiff = .05 - hstub_max_xpdiff = .05 ; ; The following four criteria are applied to the stub fit results at the ; focal plane position to link stubs to tracks @@ -61,8 +60,11 @@ ; hstat_maxchisq chisquared limit for tracks used to measure hodo. eff. hstat_maxchisq = 10. +; if both hsel_using_scin = 0 and hsel_using_prune = 0 then best chi2 track is used. ; hsel_using_scin uses scintillator for track selection - hsel_using_scin = 1 + hsel_using_scin = 0 +; hsel_using_prune using prune + hsel_using_prune = 0 ; hstat_slop distance from center of scin. to count as expecting hit hstat_slop = 2. ; hstat_mineff warning level for scin. effic. diff --git a/PARAM/HMS/HODO/hhodo.param b/PARAM/HMS/HODO/hhodo.param index 0621446a..27b0e24f 100644 --- a/PARAM/HMS/HODO/hhodo.param +++ b/PARAM/HMS/HODO/hhodo.param @@ -1,15 +1,27 @@ -; hstart_time_center center of allowed time window +hcosmicflag=1 +; for now manually set hte FADC mode +; 1 == Use the pulse int - pulse ped +; 2 == Use the sample integral - known ped +; 3 == Use the sample integral - sample ped +; if not set then defaults to use the raw pulse integral +hhodo_adc_mode=1 +; +; hhodo_tdc_offset is array of time offsets for all paddles in a plane +; to move the tdc to between 0 and 4000 channels. + hhodo_tdc_offset = 1120, 1120, 1120, 1120 +; hhodo_tdc_offset = 1000, 1000, 1000, 1000 +; hstart_time_center center of allowed time window (ns) hstart_time_center = 32. ; hstart_time_slop 1/2 width of time window - hstart_time_slop = 25. + hstart_time_slop = 100. ; hscin_tdc_min minimum tdc value in hms scin - hscin_tdc_min = 0 + hscin_tdc_min = -500 ; hscin_tdc_max maximum allowed tdc value hscin_tdc_max = 4000 ; hscin_tdc_to_time scin tdc time per channel - hscin_tdc_to_time = 0.0259 + hscin_tdc_to_time = 0.1 ; tof and you figured out good values - htof_tolerance = 3.0 + htof_tolerance = 50.0 ; ; hms_tof_params ; hnum_scin_counters, hhodo_zpos, hhodo_center_coord, hhodo_width @@ -17,24 +29,130 @@ ; hhodo_pos_coord and hhodo_neg_coord are not yet used ; hhodo_slop = 2., 2., 4., 4. +; +htofusinginvadc=1 ; - hhodo_vel_light = 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 - 14.0,14.8,15.5,15.8 -; + +hhodo_pos_invadc_offset = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + +; +hhodo_neg_invadc_offset = 2.63295,0.592977,0.810207,2.17447 +1.6381,-2.44172,-0.167998,1.613 +2.12397,-1.11413,1.12234,2.70131 +2.23737,-3.22432,-0.0328571,2.88366 +1.84971,-2.55502,-0.325019,2.75559 +1.77137,-1.90664,-0.0557544,1.354 +1.86089,-1.9991,-1.08851,-2.15107 +2.74336,-2.60574,0.388706,3.63254 +1.53963,-1.67298,-1.06672,3.14031 +2.25306,-2.75735,0.900716,2.54422 +1.72962,0.0,-0.000925926,0.0 +0.136985,0.0,-1.90318,0.0 +1.06083,0.0,-4.18178,0.0 +1.92537,0.0,-0.688612,0.0 +1.36458,0.0,0.641606,0.0 +1.95569,0.0,-1.16377,0.0 + +; +hhodo_pos_invadc_linear = 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 +hhodo_neg_invadc_linear = 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + +hhodo_pos_invadc_adc = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; +hhodo_neg_invadc_adc = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; + hhodo_vel_light = 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + ; hhodo_pos_sigma = .3,.3,.3,.3,.3,.3,.3,.3 .3,.3,.3,.3,.3,.3,.3,.3 .3,.3,.3,.3,.3,.3,.3,.3 @@ -53,111 +171,8 @@ .3,.3,.3,.3,.3,.3,.3,.3 .3,.3,.3,.3,.3,.3,.3,.3 - hhodo_pos_minph = 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - - hhodo_neg_minph = 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - 125,135,125,120 - hhodo_pos_phc_coeff = -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - -1.45,-1.1,-1.,-1.2 - - hhodo_neg_phc_coeff = -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - -1.3,-1.1,-1.2,-1.4 - - -; csa 9/8/98 -- I had to hand-twaddle a few of the values -; based on (relative) offsets of older hhodo.param - - -hhodo_pos_time_offset = 6.7992, 0.0000, -7.1126, 4.7475 - -1.1436, 0.4026, -0.1443, 8.8108 - 5.1911, 1.7935, -7.0357, 7.7590 - 5.6115, 0.1231, -4.3477, 12.8552 - 1.2354, -6.4896, 8.6617, 9.3857 - 1.8675, -0.3651, -4.7731, 7.9034 - 6.4738, -1.0463, 1.1786, 8.9740 - 4.5395, 2.3368, -4.4623, 4.5968 - 2.6241, -2.4480, -6.4964, 6.2390 - 4.2056, 0.0000, -0.8924, -1.2482 - 6.1303, 0.0000, -7.9503, 0.0000 - 5.5326, 0.0000, -0.3564, 0.0000 - 4.3238, 0.0000, 0.8133, 0.0000 - 1.7467, 0.0000, 1.9021, 0.0000 - 4.1333, 0.0000, -5.4523, 0.0000 - 0.9416, 0.0000, 1.0158, 0.0000 -hhodo_neg_time_offset = -2.1515, 0.0000, 2.5771, 11.2323 - -1.6547, -2.2888, 10.1063, 13.3595 - -3.8050, -4.1933, 3.4133, 15.0118 - 0.7925, -1.9592, 10.9311, 15.1057 - -1.2621, -4.6538, 2.3474, 10.2752 - -2.9459, 1.2711, 9.6479, 7.8567 - 1.2439, -3.4946, 3.7283, 10.7897 - -4.8205, 1.1743, 8.5908, 11.1753 - -6.3324, -5.2290, 0.2444, 14.7184 - 1.8168, 0.0000, 11.2387, 15.5869 - 0.4240, 0.0000, 8.2657, 0.0000 - -0.9945, 0.0000, 9.2381, 0.0000 - -2.3217, 0.0000, 5.1855, 0.0000 - -5.1166, 0.0000, 10.0781, 0.0000 - 0.2537, 0.0000, 6.2455, 0.0000 - 7.0554, 0.0000, 12.8714, 0.0000 + ; hhodo_pos_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000 1000,1000,1000,1000,1000,1000,1000,1000 @@ -175,5 +190,140 @@ hhodo_neg_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000 1000,1000,1000,1000,1000,1000,1000,1000 1000,1000,1000,1000,1000,1000,1000,1000 1000,1000,1000,1000,1000,1000,1000,1000 - 1000,1000,1000,1000,1000,1000,1000,1000 - + 1000,1000,1000,1000,1000,1000,1000,1000 +; new param +hhodo_pos_invadc_offset = -0.00, -0.00, -0.70, -0.00 + -0.00, -0.00, -0.31, -2.63 + -0.00, 0.13, -1.03, -0.58 + 1.43, -0.51, -0.87, -0.63 + 0.60, -0.75, -0.66, -1.54 + 1.73, -0.66, -0.82, -1.46 + 0.89, 0.08, -0.92, -0.88 + 2.10, 0.20, -0.32, -0.39 + 0.31, -0.89, -1.14, -2.15 + -0.00, -0.00, -1.52, -0.00 + 0.80, -0.00, -0.75, -0.00 + -0.25, -0.00, -2.36, -0.00 + 0.54, -0.00, -0.00, -0.00 + 0.47, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + +hhodo_neg_invadc_offset = -0.00, -0.00, -0.97, -0.00 + -0.00, -0.00, 0.06, -2.16 + -0.00, -0.58, -1.60, -0.95 + -0.09, 0.95, -0.45, -0.49 + -0.79, -0.05, 0.21, -1.82 + 0.32, -1.02, -0.05, -0.52 + 0.02, 0.19, 0.90, 3.75 + -0.35, 0.35, 0.26, -1.65 + -0.27, -1.32, 0.33, -2.44 + -1.42, -0.00, -1.48, -0.00 + 0.14, -0.00, 0.14, -0.00 + 0.24, -0.00, -0.06, -0.00 + 0.16, -0.00, -0.00, -0.00 + -0.83, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + +hhodo_pos_invadc_linear = 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 14.56, 15.00, 15.00, 15.00 + 12.91, 15.00, 15.00, 15.00 + 12.81, 14.97, 15.00, 15.00 + 14.29, 15.00, 15.00, 15.00 + 12.94, 14.21, 14.85, 15.00 + 13.27, 13.60, 15.00, 15.00 + 13.44, 15.00, 15.00, 15.00 + 14.24, 15.00, 15.00, 15.00 + 13.24, 15.00, 14.33, 15.00 + 13.20, 15.00, 15.00, 15.00 + 13.94, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + +hhodo_neg_invadc_linear = 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 14.56, 15.00, 15.00 + 14.55, 14.16, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 13.47, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 14.69, 14.21, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 14.74, 15.00, 15.00, 15.00 + 14.66, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 13.71, 15.00, 15.00, 15.00 + 12.33, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + +hhodo_pos_invadc_adc= -0.00, -0.00, 106.88, -0.00 + -0.00, -0.00, 109.67, 122.91 + -0.00, 102.28, 127.88, 117.82 + 100.32, 76.55, 109.30, 139.97 + 72.45, 90.73, 111.62, 121.49 + 59.46, 83.45, 116.54, 123.92 + 95.04, 91.79, 125.49, 127.74 + 62.95, 53.50, 113.46, 106.91 + 78.26, 49.84, 100.37, 141.06 + 73.52, -0.00, 101.78, -0.00 + 94.23, -0.00, 129.39, -0.00 + 75.59, -0.00, 94.17, -0.00 + 79.87, -0.00, -0.00, -0.00 + 63.90, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + +hhodo_neg_invadc_adc= -0.00, -0.00, 128.32, -0.00 + -0.00, -0.00, 113.16, 159.99 + -0.00, 68.41, 116.51, 119.18 + 73.18, 65.95, 112.50, 122.16 + 96.71, 91.23, 96.00, 103.37 + 52.93, 87.48, 103.59, 122.65 + 72.72, 82.28, 118.40, 140.72 + 76.58, 68.02, 104.25, 120.16 + 73.69, 98.85, 91.95, 119.78 + 72.26, -0.00, 89.16, -0.00 + 70.89, -0.00, 113.44, -0.00 + 72.26, -0.00, 101.96, -0.00 + 76.14, -0.00, -0.00, -0.00 + 36.51, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + +hhodo_pos_sigma = 100.00, 100.00, 0.28, 100.00 + 100.00, 100.00, 0.31, 0.47 + 100.00, 0.27, 0.33, 0.34 + 0.26, 0.32, 0.35, 0.44 + 0.30, 0.30, 0.33, 0.51 + 0.38, 0.28, 0.22, 0.41 + 0.25, 0.30, 0.32, 0.46 + 0.35, 0.30, 0.31, 0.34 + 0.26, 0.25, 0.24, 0.41 + 0.27, 100.00, 0.27, 100.00 + 0.25, 100.00, 0.37, 100.00 + 0.26, 100.00, 0.24, 100.00 + 0.34, 100.00, 100.00, 100.00 + 0.37, 100.00, 100.00, 100.00 + 100.00, 100.00, 100.00, 100.00 + 100.00, 100.00, 100.00, 100.00 + +hhodo_neg_sigma = 100.00, 100.00, 0.32, 100.00 + 100.00, 100.00, 0.33, 0.52 + 100.00, 0.31, 0.35, 0.31 + 0.25, 0.30, 0.34, 0.32 + 0.28, 0.32, 0.27, 0.56 + 0.36, 0.33, 0.28, 0.31 + 0.26, 0.31, 0.37, 0.42 + 0.32, 0.30, 0.28, 0.33 + 0.24, 0.28, 0.20, 0.44 + 0.27, 100.00, 0.24, 100.00 + 0.24, 100.00, 0.29, 100.00 + 0.25, 100.00, 0.25, 100.00 + 0.28, 100.00, 100.00, 100.00 + 0.33, 100.00, 100.00, 100.00 + 100.00, 100.00, 100.00, 100.00 + 100.00, 100.00, 100.00, 100.00 diff --git a/PARAM/HMS/HODO/hhodo.pos b/PARAM/HMS/HODO/hhodo.pos index 2e37fd06..d543d89a 100644 --- a/PARAM/HMS/HODO/hhodo.pos +++ b/PARAM/HMS/HODO/hhodo.pos @@ -1,3 +1,7 @@ + +hhodo_num_planes = 4 +hhodo_plane_names = "1x 1y 2x 2y" +; hpathlength_central = 2500 ; Z positions of hodoscopes hscin_1x_zpos = (89.14-11.31) diff --git a/PARAM/HMS/HODO/hhodo_3of4trigger.param b/PARAM/HMS/HODO/hhodo_3of4trigger.param new file mode 100644 index 00000000..c59e5c44 --- /dev/null +++ b/PARAM/HMS/HODO/hhodo_3of4trigger.param @@ -0,0 +1,191 @@ +hcosmicflag=1 +; for now manually set hte FADC mode +; 1 == Use the pulse int - pulse ped +; 2 == Use the sample integral - known ped +; 3 == Use the sample integral - sample ped +; if not set then defaults to use the raw pulse integral +hhodo_adc_mode=1 +; +; hhodo_tdc_offset is array of time offsets for all paddles in a plane +; to move the tdc to between 0 and 4000 channels. + hhodo_tdc_offset = 1050, 1050, 1050, 1050 +; hstart_time_center center of allowed time window (ns) + hstart_time_center = 32. +; hstart_time_slop 1/2 width of time window + hstart_time_slop = 25. +; hscin_tdc_min minimum tdc value in hms scin + hscin_tdc_min = 0 +; hscin_tdc_max maximum allowed tdc value + hscin_tdc_max = 4000 +; hscin_tdc_to_time scin tdc time per channel + hscin_tdc_to_time = 0.1 +; tof and you figured out good values + htof_tolerance = 30.0 +; +; hms_tof_params +; hnum_scin_counters, hhodo_zpos, hhodo_center_coord, hhodo_width +; are all calculated within h_init_scin +; hhodo_pos_coord and hhodo_neg_coord are not yet used +; + hhodo_slop = 2., 2., 4., 4. +; +htofusinginvadc=1 +; + +hhodo_pos_invadc_offset = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; +hhodo_neg_invadc_offset = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; +hhodo_pos_invadc_linear = 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 +hhodo_neg_invadc_linear = 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + +hhodo_pos_invadc_adc = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; +hhodo_neg_invadc_adc = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; + hhodo_vel_light = 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 +; + hhodo_pos_sigma = .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 +; + hhodo_neg_sigma = .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + + + +; +hhodo_pos_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 +; +hhodo_neg_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + diff --git a/PARAM/HMS/HODO/hhodo_4of4trigger.param b/PARAM/HMS/HODO/hhodo_4of4trigger.param new file mode 100644 index 00000000..54596af4 --- /dev/null +++ b/PARAM/HMS/HODO/hhodo_4of4trigger.param @@ -0,0 +1,191 @@ +hcosmicflag=1 +; for now manually set hte FADC mode +; 1 == Use the pulse int - pulse ped +; 2 == Use the sample integral - known ped +; 3 == Use the sample integral - sample ped +; if not set then defaults to use the raw pulse integral +hhodo_adc_mode=1 +; +; hhodo_tdc_offset is array of time offsets for all paddles in a plane +; to move the tdc to between 0 and 4000 channels. + hhodo_tdc_offset = 1280, 1280, 1280, 1290 +; hstart_time_center center of allowed time window (ns) + hstart_time_center = 32. +; hstart_time_slop 1/2 width of time window + hstart_time_slop = 25. +; hscin_tdc_min minimum tdc value in hms scin + hscin_tdc_min = 0 +; hscin_tdc_max maximum allowed tdc value + hscin_tdc_max = 4000 +; hscin_tdc_to_time scin tdc time per channel + hscin_tdc_to_time = 0.1 +; tof and you figured out good values + htof_tolerance = 30.0 +; +; hms_tof_params +; hnum_scin_counters, hhodo_zpos, hhodo_center_coord, hhodo_width +; are all calculated within h_init_scin +; hhodo_pos_coord and hhodo_neg_coord are not yet used +; + hhodo_slop = 2., 2., 4., 4. +; +htofusinginvadc=1 +; + +hhodo_pos_invadc_offset = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; +hhodo_neg_invadc_offset = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; +hhodo_pos_invadc_linear = 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 +hhodo_neg_invadc_linear = 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + +hhodo_pos_invadc_adc = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; +hhodo_neg_invadc_adc = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; + hhodo_vel_light = 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 + 14.0,14.8,15.5,15.8 +; + hhodo_pos_sigma = .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 +; + hhodo_neg_sigma = .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + .3,.3,.3,.3,.3,.3,.3,.3 + + + +; +hhodo_pos_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 +; +hhodo_neg_ped_limit = 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + 1000,1000,1000,1000,1000,1000,1000,1000 + diff --git a/PARAM/HMS/HODO/htofcal.param b/PARAM/HMS/HODO/htofcal.param new file mode 100644 index 00000000..8ace7125 --- /dev/null +++ b/PARAM/HMS/HODO/htofcal.param @@ -0,0 +1,2 @@ +hdumptof=1 +hdumptof_filename="CALIBRATION/hodo_calib/hfort.37" diff --git a/PARAM/README.md b/PARAM/README.md new file mode 100644 index 00000000..397425b8 --- /dev/null +++ b/PARAM/README.md @@ -0,0 +1,218 @@ +# Notes + +## Naming + +* `X` stands for spectrometer name: + * `h` for HMS + * `p` for SHMS + * `s` for SOS +* `Y` stands for plane name. +* `N` stands for sequential number + +## Constants + +* `raddeg = 3.14159265/180` + * Conversion from degrees to radians. + * real + * `DBASE/general.param` +* `cminch = 2.54` + * Conversion from inches to cm. + * real + * `DBASE/general.param` + + +# Tracking + +* `Xsel_using_scin = 0` + * Use scintillator for track selection. + * {0, 1} bool + * `THcHallCSpectrometer::fSelUsingScin` + +# Drift chambers + +## `Xdc.param` + +* `Xdc_num_chambers` + * Number of drift chambers in detector. + * int + * `THcDC::fNChambers` +* `Xdc_num_planes` + * Total number of drift chamber planes in detector. + * int + * `THcDC::fNPlanes` +* `Xdc_plane_names` + * Names of planes. + * string + * `THcDC::Setup::planenamelist` +* `Xdc_chamber_planes` + * Index of chamber that each plane belongs to. Chamber number starts with 1. + * [int] + * `THcDC::fNChamber` +* `Xdc_nrwire` + * Number of wires in each plane. + * [int] + * `THcDC::fNWires` + +## `Xdc.pos` + +* `Xdc_xcenter` + * x position in cm of center for each wire chamber. + * [double] + * `THcDC::fXCenter` +* `Xdc_ycenter` + * y position in cm of center for each wire chamber. + * [double] + * `THcDC::fYCenter` +* `Xdc_N_zpos` + * z position in cm of center for each wire chamber. + * double + * internal only +* `Xdc_N_roll` + * Roll in degrees for each wire chamber. Added to `Xdc_alpha_angle`. + * double + * internal only +* `Xdc_N_pitch` + * Pitch in degrees for each wire chamber. Added to `Xdc_beta_angle`. + * double + * internal only +* `Xdc_N_yaw` + * Yaw in degrees for each wire chamber. Added to `Xdc_gamma_angle`. + * double + * internal only + + +* `Xdc_central_wire` + * Wire number of center of wire chamber for each plane. Basically, this is + number of imaginary wire, that would cross center of plane. Wire numbers + start with 1. + * [double] + * `THcDC::fCentralWire` +* `Xdc_pitch` + * Distance between wires for each plane in cm. + * [double] + * `THcDC::fPitch` +* `Xdc_wire_counting` + * Order in which wires are counted in each plane. + * `Xdc_wire_counting == 0` : `center = (wire - Xdc_central_wire) * pitch` + * `Xdc_wire_counting == 1` : `center = (Xdc_nrwire + 1 - wire - + Xdc_central_wire) * pitch` + * [{0, 1}] + * `THcDC::fWireOrder` +* `Xdc_zpos` + * Position along z in cm of each plane measured from focal plane. + * [double] + * `THcDC::fZPos` +* `Xdc_alpha_angle` + * Angle $\alpha$ of wires for each plane in radians. Basically the angle of + the wires. See also [link][SOS_tracking]. + * [double] + * `THcDC::fAlphaAngle` +* `Xdc_beta_angle` + * Angle $\beta$ of wires for each plane in radians. See also + [link][SOS_tracking]. + * [double] + * `THcDC::fBetaAngle` +* `Xdc_gamma_angle` + * Angle $\gamma$ of wires for each plane in radians. See also + [link][SOS_tracking]. + * [double] + * `THcDC::fGammaAngle` + +[SOS_tracking]: https://hallcweb.jlab.org/DocDB/0008/000812/001/SOS_Tracking.pdf (Tracking in the SOS Spectrometer) + +## `Xdc_tracking.param` + +* `Xdc_sigma` + * Sigma of wire chamber resolution for each plane. + * [double] + * `THcDC::fSigma` +* `Xdc_tdc_min_win` +* TDC window lower limit for each plane. + * [int] + * `THcDC::fTdcWinMin` + * `Xdc_tdc_max_win` +* TDC window higher limit for each plane. + * [int] + * `THcDC::fTdcWinMax` + * `Xdc_tdc_time_per_channel` +* Conversion factor from TDC clicks to ns. + * CAEN 1190 : 100 ps/click + * double + * `THcDC::fNSperChan` +* `Xdc_plane_time_zero` + * Zero time correction for each plane in ns that is added to TDC time. + * [double] + * `THcDC::fPlaneTimeZero` +* `Xdc_wire_velocity` + * Wire velocity. + * double + * `THcDC::fWireVelocity` +* `Xdc_central_time` + * Used for wire velocity correction in each plane. + * [int] + * `THcDC::fCentralTime` +* `Xdc_drifttime_sign` + * Used for wire velocity correction in each plane. + * [{-1, 1}] + * `THcDC::fDriftTimeSign` +* `Xdc_fix_lr` + * Used for wire velocity correction in each plane. + * Let hit have different L/R assignment for different space point. + * Should be 0 to mimic ENGINE behavior but 1 for more correct behavior. + * {0, 1} bool + * `THcDC::fFixLR` +* `Xdc_fix_propcorr` + * Used for wire velocity correction in each plane. + * Do propagation along wire each time hit appears in a space point. + * {0, 1} bool + * `THcDC::fFixPropagationCorrection` + +### Velocity correction + +The velocity correction is the distance from the center of the wire divided by +the velocity of propagation times Xdc_drifttime_sign(plane). +/-1 for disc. card +at +/- coord. (i.e. top = -x direction, so top readout is +1) + +## `Xdriftmap.param` + +Contains lookup table for drift time. + +* `Xdriftbins` + * Number of bins in table. + * int + * `THcDriftChamberPlane::ReadDatabase::NumDriftMapBins` +* `Xdrift1stbin` + * Time of first bin in ns. + * double + * `THcDriftChamberPlane::ReadDatabase::DriftMapFirstBin` +* `Xdriftbinsz` + * Bin size in ns. + * double + * `THcDriftChamberPlane::ReadDatabase::DriftMapBinSize` +* `XwcYfract` + * Drift time lookup table entries for plane Y. + * [double] + * `THcDriftChamberPlane::ReadDatabase::DriftMap` + +## Deprecated + +* `Xdc_num_deadwires` + * Number of dead wires in drift chambers (< 20 % efficiency) + * int +* `Xdc_deadwire_plane` + * Plane number for each dead wire. + * [int] +* `Xdc_deadwire_num` + * Wire number for each dead wire. + * [int] + + +* `Xdc_card_no` + * Index of connector card for each wire. + * Single array for all planes. + * Wires start with plane 1, wire 1. + * For each plane there must be 'max number of wires' entries. + * [int] +* `Xdc_card_delay` + * Cable delays for each connector card. + * [int] diff --git a/PARAM/SHMS/AERO/paero.param b/PARAM/SHMS/AERO/paero.param new file mode 100644 index 00000000..a469a7b9 --- /dev/null +++ b/PARAM/SHMS/AERO/paero.param @@ -0,0 +1,12 @@ + + +paero_pos_gain = 1./496.7, 1./467.5, 1./554.3, 1./766.1, 1./412.1, 1./517.9, 1./435.6, 1./500., + +paero_neg_gain = 1./586.8, 1./536.5, 1./690.5, 1./563.1, 1./574.4, 1./432.7, 1./601.5, 1./500., + + paero_pos_ped_limit = 1000., 1000., 1000., 1000., + 1000., 1000., 1000., 1000., + + paero_neg_ped_limit = 1000., 1000., 1000., 1000., + 1000., 1000., 1000., 1000., + diff --git a/PARAM/SHMS/CAL/pcal.param b/PARAM/SHMS/CAL/pcal.param new file mode 100644 index 00000000..cde530b5 --- /dev/null +++ b/PARAM/SHMS/CAL/pcal.param @@ -0,0 +1,65 @@ + +pcal_array = 1 +pcal_layer_names = "pr fly" +pcal_pr_nr = 14 # Num of rows in preshower +pcal_num_layers = 1 +pcal_arr_nrows = 16 +pcal_arr_ncolumns = 14 + +pcal_arr_front_x = 1.0 +pcal_arr_front_y = 1.0 +pcal_arr_front_z = 1.0 +pcal_arr_xstep = 1.0 +pcal_arr_ystep = 1.0 +pcal_arr_zsize = 1.0 +pcal_arr_ped_limit = 1.0 +pcal_arr_cal_const = 1.0 +pcal_arr_gain_cor = 1.0 + + +; Exclusion bandwidth for calorimeter fiducial volume. +pcal_fv_delta = 5 +# Constants for the coordiante correction of the calorimeter energy depositions +pcal_a_cor = 200. +pcal_b_cor = 8000. +pcal_c_cor = 64.36, 64.36 # for positive and negative sides +pcal_d_cor = 1.66, 1.66 + +; Parameters copied from HMS +; Slop in x possitino. Allowed distance between track and edge of block +pcal_slop = 7.5 + +pcal_pr_thick = 10.0 +; Z Position of from of preshower +pcal_pr_zpos = 200.0 + +pcal_pr_left = 35.0 +pcal_pr_right = -35.0 +pcal_pr_top = (-69.0-1.4) + (-59.0-1.4) + (-49.0-1.4) + (-39.0-1.4) + (-29.0-1.4) + (-19.0-1.4) + ( -9.0-1.4) + ( 1.0-1.4) + ( 11.0-1.4) + ( 21.0-1.4) + ( 31.0-1.4) + ( 41.0-1.4) + ( 51.0-1.4) + ( 61.0-1.4) +pcal_pos_cal_const =0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001, + 0.001,0.001,0.001,0.001,0.001,0.001 +pcal_neg_cal_const =0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001, + 0.001,0.001,0.001,0.001,0.001,0.001 +pcal_pos_ped_limit=1000,1000,1000,1000,1000,1000,1000,1000,1000,1000, + 1000,1000,1000,1000 +pcal_neg_ped_limit=1000,1000,1000,1000,1000,1000,1000,1000,1000,1000, + 1000,1000,1000,1000 + +pcal_pos_gain_cor=1.0/411.2, 1.0/378.6, 1.0/357.9, 1.0/254.8, 1.0/315.6, 1.0/331.0, 1.0/264.6, 1.0/305.4, 1.0/149.8, 1.0/380.6, 1.0/183.1, 1.0/206.5, 1.0/139.8, 1.0/163. +pcal_neg_gain_cor=1.0/466.2, 1.0/514.7, 1.0/325.5, 1.0/247.8, 1.0/322.0, 1.0/176.2, 1.0/161.9, 1.0/197.7, 1.0/269.9, 1.0/241.6, 1.0/193.7, 1.0/337.5, 1.0/237.3, 1.0/82.0 + +pcal_min_peds = 500 + diff --git a/PARAM/SHMS/DC/pdc.param b/PARAM/SHMS/DC/pdc.param index 56517a04..767a8946 100644 --- a/PARAM/SHMS/DC/pdc.param +++ b/PARAM/SHMS/DC/pdc.param @@ -1,25 +1,19 @@ -;--------------------------------------------------------------------- -; SHMS_TRACKING -; CTP parameter file containing all tracking parameters for the HMS -;---------------------------------------------------------------------- +; GENERAL PARAMETERS -; sigma of wire chabmer resolution for each plane - pdc_sigma = 0.02, 0.02, 0.02, 0.02, 0.02, 0.02 - 0.02, 0.02, 0.02, 0.02, 0.02, 0.02 +; Number of drift chambers. +pdc_num_chambers = 2 -; tdc window, wide limits for now - pdc_tdc_min_win = -55000,-55000,-55000,-55000,-55000,-55000 - -55000,-55000,-55000,-55000,-55000,-55000 - pdc_tdc_max_win = 55000,55000,55000,55000,55000,55000 - 55000,55000,55000,55000,55000,55000 +; Total number of planes. +pdc_num_planes = 12 -; conversion from tdc lciks to ns - pdc_tdc_time_per_channel = -0.10 ; CAEN1190 TDC step size = 100ps +; Names of planes. +pdc_plane_names = "1u1 1u2 1x1 1x2 1v1 1v2 2v2 2v1 2x2 2x1 2u2 2u1" ; TODO -; zero time, decreasing moves sdtime plots to lower time - pdc_plane_time_zero = 120.0,120.0,120.0,120.0,120.0,120.0 - 120.0,120.0,120.0,120.0,120.0,120.0 +; Chamber index for each plane. +pdc_chamber_planes = 1, 1, 1, 1, 1, 1 + 2, 2, 2, 2, 2, 2 -; wire velocity - pdc_wire_velocity = 13.0 - pdc_central_time = 1,1,1,1,1,1,1,1,1,1,1,1 +; Number of wires in each plane. +; Should be 109 and 80, but edge sense wire were not strung. +pdc_nrwire = 107, 107, 79, 79, 107, 107 + 107, 107, 79, 79, 107, 107 diff --git a/PARAM/SHMS/DC/pdc.param.ori b/PARAM/SHMS/DC/pdc.param.ori deleted file mode 100644 index 7d1d76cf..00000000 --- a/PARAM/SHMS/DC/pdc.param.ori +++ /dev/null @@ -1,14 +0,0 @@ - -ppartmass = 0.139 -phodo_num_planes = 1 - -; Scintillator parameters -pref_npaddles = 6 -pref_nsperchan = 0.1 -pref_offset = 0.0 - - - - - - diff --git a/PARAM/SHMS/DC/pdc.param.ori.dnd b/PARAM/SHMS/DC/pdc.param.ori.dnd deleted file mode 100644 index 4ba25d48..00000000 --- a/PARAM/SHMS/DC/pdc.param.ori.dnd +++ /dev/null @@ -1,377 +0,0 @@ - -raddeg=3.14159265/180 - -; Parameters we need to keep THcHallCSpectrometer Happy -p_recon_coeff_filename = "" -ptheta_offset = 0.0 -pphi_offset = 0.0 -pdelta_offset = 0.0 -pthetacentral_offset = 0.0 -p_oopcentral_offset = 0.0 -ppcentral_offset = 0.0 -ppcentral = 0.0 -ptheta_lab = 0.0 -ppartmass = 0.139 -phodo_num_planes = 1 - -; Scintillator parameters -pref_npaddles = 6 -pref_nsperchan = 0.1 -pref_offset = 0.0 -; - -; Number of chambers in test setup - - - pdc_num_chambers = 2 - pdc_num_planes = 12 - pdc_tdc_time_per_channel = -0.10 ; TDC step size 100ps? - pdc_wire_velocity = 13.0 - pdc_central_time = 1,1,1,1,1,1,1,1,1,1,1,1 - pdc_plane_names = "1u1 1u2 1x1 1x2 1v1 1v2 2v2 2v1 2x2 2x1 2u2 2u1 - pdc_xcenter = 0.0, 0.0 - pdc_ycenter = 0.0, 0.0 -; Order in which wires are readout - pdc_wire_counting = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -; If pdc_wire_counting(plane) = 0 -; the wire center is at (wire - pdc_central_wire) * pitch -; If pdc_wire_counting(plane) = 1 -; the wire center is at ( pdc_nrwire + 1 - wire - pdc_central_wire) * pitch - -; The velocity correction is the distance from the center of the wire divided -; by the velocity of propagation times pdc_drifttime_sign(pln). +/-1 -; for disc. card at +/- coord. (i.e. top = -x direction, so top readout is +1) -; -; These are guesses taken from the SOS Chambers -; - pdc_drifttime_sign = 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1 -; -; Wire number of center of wire chamber -; Note the convention : x : low number = -x , u,v : low number = "-x" -; x1 and x2, u1 and u2, v1 and v2 are offset by half a cell length -; assume 1st wire of 1st dc of a set is closest to edge where counting starts -; (These taken from SOS. Will be different for SHMS - pdc_central_wire = 54.25 - 53.75 - 40.25 - 40.75 - 54.25 - 53.75 - 53.75 - 54.25 - 40.75 - 40.25 - 53.75 - 54.25 - -; sigma of wire chabmer resolution for each plane - pdc_sigma = 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02 - -; tdc window. Wide limits for now - pdc_tdc_min_win = -55000,-55000,-55000,-55000,-55000,-55000,-55000,-55000,-55000,-55000,-55000,-55000 - pdc_tdc_max_win = 55000,55000,55000,55000,55000,55000,55000,55000,55000,55000,55000,55000 -; zero time. Decreasing moves sdtime plots to lower time - pdc_plane_time_zero = 120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0,120.0 - pdc_chamber_planes = 1,1,1,1,1,1,2,2,2,2,2,2 ; Chamber # for each plane - - -; pdc_1_zpos = -14.5*2.54 - pdc_1_zpos = 0 ; Don't try to project to scintillators - -; Use geometry of SOS chambers for now - pdc_zpos = pdc_1_zpos - 1.5875 - pdc_1_zpos - 0.9525 - pdc_1_zpos - 0.3175 - pdc_1_zpos + 0.3175 - pdc_1_zpos + 0.9525 - pdc_1_zpos + 1.5875 - pdc_1_zpos - 1.5875 - pdc_1_zpos - 0.9525 - pdc_1_zpos - 0.3175 - pdc_1_zpos + 0.3175 - pdc_1_zpos + 0.9525 - pdc_1_zpos + 1.5875 - -; Angle alpha of wires in wire chamber planes - pdc_roll = 0.0 ; SOS chambers had roll as installed - pdc_alpha_angle = (30-pdc_roll)*raddeg - (30-pdc_roll)*raddeg - (90-pdc_roll)*raddeg - (90-pdc_roll)*raddeg - (150-pdc_roll)*raddeg - (150-pdc_roll)*raddeg - (30-pdc_roll)*raddeg - (30-pdc_roll)*raddeg - (90-pdc_roll)*raddeg - (90-pdc_roll)*raddeg - (150-pdc_roll)*raddeg - (150-pdc_roll)*raddeg - pdc_beta = 0.0 - pdc_beta_angle = pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - - pdc_gamma = 0.0 - pdc_gamma_angle = pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_pitch = 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 -; Number of wires per plane - pdc_nrwire = 107 - 107 - 79 - 79 - 107 - 107 - 107 - 107 - 79 - 79 - 107 - 107 - -; Tracking parameters - - pmax_pr_hits = 25, 25 - pmin_hit = 5, 5 - pmin_combos = 6, 6 - pspace_point_criterion = 1.2, 1.2 - -; The following four criteria are applied to the stub fit results at the -; focal plane position to link stubs to tracks - pntracks_max_fp = 10 - pxt_track_criterion = 100.0 - pyt_track_criterion = 2.0 - pxpt_track_criterion = 1.0 - pypt_track_criterion = 1.0 - - psingle_stub = 1 ; make a track of all single stubs - ; normally 0 - pSmallAngleApprox = 0 ; No small angle approximation for - ; cosmic ray tests - -; Compatibility parameters. Should be zero to precisely mimic ENGINE -; behavior, but one for more correct behavior -pdc_fix_lr = 1 ; Let hit have different L/R assignment for different space point -pdc_fix_propcorr = 1 ; do propagation along wire each time hit appeears - ; in a space point - -; Debugging flags - not all these implemented in hcana -pdebuglinkstubs = 0 ; Dump link stub results -pdebugprintrawdc = 0 ; Dump PDC_RAW_DC bank -pdebugprintdecodeddc = 0 ; Dump PDC_DECODED_DC bank -pdebugflagpr = 0 ; Dump intermediate pattern recognition results -pdebugflagstubs= 0 ; Dump stub fit results -pdebugtrackprint = 0 ; Dump focal plane track fit results -pdebugstubchisq = 0; Dump chi2 of left-right fits - -; Drift map parameters -pdriftbins = 138 -; Number of 1st bin in table -pdrift1stbin = -24 -; Bin size in ns -pdriftbinsz = 2 -; Drift maps simply copied from the SOS chambers -pwc1u1fract=0.0002,0.0005,0.0009,0.0011,0.0015,0.0018,0.0022,0.0027 -0.0029,0.0033,0.0038,0.0044,0.0048,0.0051,0.0057,0.0070,0.0090,0.0121 -0.0167,0.0217,0.0282,0.0371,0.0467,0.0582,0.0723,0.0873,0.1038,0.1211 -0.1409,0.1609,0.1826,0.2060,0.2302,0.2542,0.2796,0.3043,0.3294,0.3555 -0.3819,0.4085,0.4343,0.4618,0.4890,0.5140,0.5384,0.5635,0.5880,0.6100 -0.6311,0.6522,0.6722,0.6928,0.7120,0.7316,0.7495,0.7684,0.7853,0.8026 -0.8191,0.8334,0.8491,0.8629,0.8771,0.8888,0.8994,0.9089,0.9170,0.9242 -0.9308,0.9364,0.9411,0.9457,0.9496,0.9538,0.9571,0.9602,0.9630,0.9654 -0.9679,0.9698,0.9718,0.9735,0.9750,0.9765,0.9778,0.9791,0.9804,0.9815 -0.9825,0.9833,0.9844,0.9851,0.9855,0.9862,0.9870,0.9874,0.9877,0.9883 -0.9889,0.9893,0.9895,0.9898,0.9901,0.9904,0.9910,0.9918,0.9923,0.9927 -0.9930,0.9935,0.9937,0.9941,0.9943,0.9947,0.9949,0.9952,0.9957,0.9962 -0.9964,0.9966,0.9970,0.9973,0.9975,0.9977,0.9979,0.9982,0.9986,0.9988 -0.9990,0.9991,0.9994,0.9995,0.9998,0.9999,1.0000,1.0000,1.0000,1.0000 -pwc1x1fract=0.0004,0.0006,0.0008,0.0010,0.0012,0.0015,0.0017,0.0021 -0.0025,0.0028,0.0031,0.0033,0.0036,0.0041,0.0045,0.0051,0.0060,0.0075 -0.0104,0.0138,0.0191,0.0265,0.0356,0.0463,0.0596,0.0743,0.0916,0.1114 -0.1316,0.1533,0.1757,0.1988,0.2209,0.2455,0.2689,0.2945,0.3196,0.3437 -0.3697,0.3950,0.4196,0.4448,0.4702,0.4953,0.5186,0.5416,0.5650,0.5877 -0.6099,0.6316,0.6519,0.6719,0.6909,0.7099,0.7277,0.7463,0.7645,0.7821 -0.7979,0.8154,0.8320,0.8477,0.8612,0.8740,0.8865,0.8973,0.9077,0.9161 -0.9234,0.9301,0.9351,0.9406,0.9454,0.9497,0.9531,0.9570,0.9605,0.9631 -0.9660,0.9690,0.9713,0.9728,0.9748,0.9762,0.9775,0.9786,0.9800,0.9807 -0.9818,0.9827,0.9833,0.9843,0.9849,0.9857,0.9861,0.9866,0.9871,0.9877 -0.9883,0.9887,0.9891,0.9895,0.9898,0.9901,0.9907,0.9913,0.9916,0.9918 -0.9921,0.9925,0.9929,0.9931,0.9935,0.9940,0.9944,0.9946,0.9949,0.9952 -0.9956,0.9960,0.9966,0.9968,0.9970,0.9972,0.9974,0.9976,0.9979,0.9980 -0.9984,0.9985,0.9988,0.9990,0.9991,0.9993,0.9996,0.9998,0.9999,1.0000 -pwc1v1fract=0.0002,0.0006,0.0008,0.0011,0.0013,0.0016,0.0019,0.0020 -0.0022,0.0025,0.0030,0.0035,0.0038,0.0042,0.0049,0.0057,0.0076,0.0103 -0.0149,0.0200,0.0273,0.0353,0.0455,0.0574,0.0719,0.0865,0.1045,0.1224 -0.1416,0.1630,0.1844,0.2074,0.2317,0.2555,0.2807,0.3046,0.3298,0.3553 -0.3826,0.4075,0.4316,0.4563,0.4823,0.5065,0.5315,0.5554,0.5781,0.6014 -0.6235,0.6434,0.6643,0.6853,0.7050,0.7238,0.7415,0.7602,0.7787,0.7975 -0.8152,0.8307,0.8456,0.8595,0.8723,0.8851,0.8957,0.9043,0.9126,0.9205 -0.9276,0.9330,0.9383,0.9437,0.9484,0.9521,0.9553,0.9582,0.9607,0.9634 -0.9657,0.9676,0.9701,0.9722,0.9738,0.9755,0.9767,0.9781,0.9794,0.9804 -0.9814,0.9825,0.9835,0.9842,0.9847,0.9853,0.9861,0.9866,0.9871,0.9878 -0.9882,0.9888,0.9891,0.9897,0.9900,0.9903,0.9909,0.9910,0.9917,0.9919 -0.9924,0.9929,0.9937,0.9939,0.9944,0.9948,0.9954,0.9956,0.9961,0.9966 -0.9968,0.9972,0.9974,0.9978,0.9980,0.9981,0.9984,0.9986,0.9989,0.9991 -0.9995,0.9996,0.9998,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -pwc1u2fract=0.0003,0.0004,0.0008,0.0011,0.0015,0.0018,0.0021,0.0024 -0.0027,0.0030,0.0033,0.0037,0.0039,0.0043,0.0046,0.0049,0.0059,0.0073 -0.0094,0.0129,0.0184,0.0267,0.0352,0.0446,0.0563,0.0707,0.0863,0.1030 -0.1206,0.1411,0.1629,0.1845,0.2087,0.2325,0.2578,0.2837,0.3091,0.3357 -0.3606,0.3867,0.4119,0.4362,0.4608,0.4857,0.5099,0.5349,0.5587,0.5814 -0.6047,0.6260,0.6480,0.6685,0.6892,0.7099,0.7282,0.7456,0.7643,0.7812 -0.7988,0.8141,0.8309,0.8454,0.8616,0.8738,0.8847,0.8955,0.9049,0.9133 -0.9199,0.9274,0.9341,0.9399,0.9445,0.9489,0.9529,0.9561,0.9593,0.9620 -0.9645,0.9667,0.9689,0.9701,0.9720,0.9740,0.9756,0.9771,0.9785,0.9796 -0.9808,0.9816,0.9823,0.9832,0.9839,0.9846,0.9854,0.9860,0.9867,0.9874 -0.9876,0.9881,0.9885,0.9889,0.9895,0.9900,0.9902,0.9907,0.9910,0.9916 -0.9919,0.9923,0.9927,0.9930,0.9934,0.9937,0.9942,0.9945,0.9949,0.9953 -0.9957,0.9962,0.9965,0.9968,0.9971,0.9973,0.9976,0.9979,0.9981,0.9984 -0.9986,0.9988,0.9989,0.9993,0.9995,0.9998,0.9999,0.9999,1.0000,1.0000 -pwc1x2fract=0.0002,0.0005,0.0008,0.0011,0.0014,0.0017,0.0021,0.0025 -0.0027,0.0031,0.0032,0.0034,0.0040,0.0045,0.0052,0.0065,0.0083,0.0112 -0.0150,0.0200,0.0264,0.0341,0.0435,0.0560,0.0701,0.0862,0.1027,0.1210 -0.1417,0.1628,0.1833,0.2069,0.2301,0.2547,0.2799,0.3062,0.3314,0.3582 -0.3860,0.4141,0.4390,0.4656,0.4903,0.5161,0.5410,0.5649,0.5874,0.6090 -0.6298,0.6507,0.6721,0.6923,0.7117,0.7312,0.7510,0.7706,0.7881,0.8052 -0.8204,0.8360,0.8525,0.8666,0.8793,0.8906,0.9019,0.9103,0.9194,0.9274 -0.9340,0.9397,0.9442,0.9483,0.9523,0.9557,0.9596,0.9625,0.9653,0.9678 -0.9698,0.9718,0.9732,0.9751,0.9768,0.9782,0.9793,0.9804,0.9813,0.9821 -0.9828,0.9834,0.9842,0.9848,0.9852,0.9857,0.9861,0.9864,0.9872,0.9877 -0.9880,0.9886,0.9889,0.9894,0.9898,0.9903,0.9908,0.9915,0.9921,0.9924 -0.9927,0.9930,0.9935,0.9939,0.9943,0.9945,0.9949,0.9952,0.9957,0.9960 -0.9963,0.9965,0.9967,0.9972,0.9975,0.9979,0.9980,0.9985,0.9987,0.9988 -0.9990,0.9991,0.9992,0.9995,0.9997,1.0000,1.0000,1.0000,1.0000,1.0000 -pwc1v2fract=0.0004,0.0006,0.0008,0.0012,0.0013,0.0016,0.0018,0.0021 -0.0024,0.0027,0.0029,0.0032,0.0036,0.0039,0.0043,0.0049,0.0063,0.0080 -0.0113,0.0155,0.0218,0.0300,0.0397,0.0508,0.0645,0.0793,0.0949,0.1135 -0.1343,0.1560,0.1786,0.2019,0.2250,0.2498,0.2756,0.3011,0.3270,0.3526 -0.3778,0.4042,0.4299,0.4570,0.4821,0.5077,0.5311,0.5540,0.5784,0.6010 -0.6219,0.6429,0.6633,0.6830,0.7023,0.7214,0.7403,0.7590,0.7786,0.7948 -0.8118,0.8288,0.8444,0.8587,0.8725,0.8842,0.8946,0.9044,0.9136,0.9208 -0.9264,0.9323,0.9377,0.9428,0.9472,0.9506,0.9541,0.9576,0.9602,0.9635 -0.9656,0.9675,0.9695,0.9715,0.9732,0.9751,0.9768,0.9777,0.9789,0.9802 -0.9809,0.9819,0.9828,0.9835,0.9841,0.9850,0.9858,0.9863,0.9866,0.9870 -0.9875,0.9880,0.9884,0.9888,0.9894,0.9899,0.9901,0.9905,0.9909,0.9912 -0.9917,0.9919,0.9922,0.9926,0.9931,0.9936,0.9941,0.9945,0.9951,0.9954 -0.9959,0.9962,0.9964,0.9967,0.9969,0.9971,0.9975,0.9978,0.9980,0.9983 -0.9986,0.9988,0.9991,0.9995,0.9998,0.9999,0.9999,0.9999,1.0000,1.0000 - -pwc2u1fract=0.0002,0.0005,0.0009,0.0011,0.0015,0.0018,0.0022,0.0027 -0.0029,0.0033,0.0038,0.0044,0.0048,0.0051,0.0057,0.0070,0.0090,0.0121 -0.0167,0.0217,0.0282,0.0371,0.0467,0.0582,0.0723,0.0873,0.1038,0.1211 -0.1409,0.1609,0.1826,0.2060,0.2302,0.2542,0.2796,0.3043,0.3294,0.3555 -0.3819,0.4085,0.4343,0.4618,0.4890,0.5140,0.5384,0.5635,0.5880,0.6100 -0.6311,0.6522,0.6722,0.6928,0.7120,0.7316,0.7495,0.7684,0.7853,0.8026 -0.8191,0.8334,0.8491,0.8629,0.8771,0.8888,0.8994,0.9089,0.9170,0.9242 -0.9308,0.9364,0.9411,0.9457,0.9496,0.9538,0.9571,0.9602,0.9630,0.9654 -0.9679,0.9698,0.9718,0.9735,0.9750,0.9765,0.9778,0.9791,0.9804,0.9815 -0.9825,0.9833,0.9844,0.9851,0.9855,0.9862,0.9870,0.9874,0.9877,0.9883 -0.9889,0.9893,0.9895,0.9898,0.9901,0.9904,0.9910,0.9918,0.9923,0.9927 -0.9930,0.9935,0.9937,0.9941,0.9943,0.9947,0.9949,0.9952,0.9957,0.9962 -0.9964,0.9966,0.9970,0.9973,0.9975,0.9977,0.9979,0.9982,0.9986,0.9988 -0.9990,0.9991,0.9994,0.9995,0.9998,0.9999,1.0000,1.0000,1.0000,1.0000 -pwc2x1fract=0.0004,0.0006,0.0008,0.0010,0.0012,0.0015,0.0017,0.0021 -0.0025,0.0028,0.0031,0.0033,0.0036,0.0041,0.0045,0.0051,0.0060,0.0075 -0.0104,0.0138,0.0191,0.0265,0.0356,0.0463,0.0596,0.0743,0.0916,0.1114 -0.1316,0.1533,0.1757,0.1988,0.2209,0.2455,0.2689,0.2945,0.3196,0.3437 -0.3697,0.3950,0.4196,0.4448,0.4702,0.4953,0.5186,0.5416,0.5650,0.5877 -0.6099,0.6316,0.6519,0.6719,0.6909,0.7099,0.7277,0.7463,0.7645,0.7821 -0.7979,0.8154,0.8320,0.8477,0.8612,0.8740,0.8865,0.8973,0.9077,0.9161 -0.9234,0.9301,0.9351,0.9406,0.9454,0.9497,0.9531,0.9570,0.9605,0.9631 -0.9660,0.9690,0.9713,0.9728,0.9748,0.9762,0.9775,0.9786,0.9800,0.9807 -0.9818,0.9827,0.9833,0.9843,0.9849,0.9857,0.9861,0.9866,0.9871,0.9877 -0.9883,0.9887,0.9891,0.9895,0.9898,0.9901,0.9907,0.9913,0.9916,0.9918 -0.9921,0.9925,0.9929,0.9931,0.9935,0.9940,0.9944,0.9946,0.9949,0.9952 -0.9956,0.9960,0.9966,0.9968,0.9970,0.9972,0.9974,0.9976,0.9979,0.9980 -0.9984,0.9985,0.9988,0.9990,0.9991,0.9993,0.9996,0.9998,0.9999,1.0000 -pwc2v1fract=0.0002,0.0006,0.0008,0.0011,0.0013,0.0016,0.0019,0.0020 -0.0022,0.0025,0.0030,0.0035,0.0038,0.0042,0.0049,0.0057,0.0076,0.0103 -0.0149,0.0200,0.0273,0.0353,0.0455,0.0574,0.0719,0.0865,0.1045,0.1224 -0.1416,0.1630,0.1844,0.2074,0.2317,0.2555,0.2807,0.3046,0.3298,0.3553 -0.3826,0.4075,0.4316,0.4563,0.4823,0.5065,0.5315,0.5554,0.5781,0.6014 -0.6235,0.6434,0.6643,0.6853,0.7050,0.7238,0.7415,0.7602,0.7787,0.7975 -0.8152,0.8307,0.8456,0.8595,0.8723,0.8851,0.8957,0.9043,0.9126,0.9205 -0.9276,0.9330,0.9383,0.9437,0.9484,0.9521,0.9553,0.9582,0.9607,0.9634 -0.9657,0.9676,0.9701,0.9722,0.9738,0.9755,0.9767,0.9781,0.9794,0.9804 -0.9814,0.9825,0.9835,0.9842,0.9847,0.9853,0.9861,0.9866,0.9871,0.9878 -0.9882,0.9888,0.9891,0.9897,0.9900,0.9903,0.9909,0.9910,0.9917,0.9919 -0.9924,0.9929,0.9937,0.9939,0.9944,0.9948,0.9954,0.9956,0.9961,0.9966 -0.9968,0.9972,0.9974,0.9978,0.9980,0.9981,0.9984,0.9986,0.9989,0.9991 -0.9995,0.9996,0.9998,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -pwc2u2fract=0.0003,0.0004,0.0008,0.0011,0.0015,0.0018,0.0021,0.0024 -0.0027,0.0030,0.0033,0.0037,0.0039,0.0043,0.0046,0.0049,0.0059,0.0073 -0.0094,0.0129,0.0184,0.0267,0.0352,0.0446,0.0563,0.0707,0.0863,0.1030 -0.1206,0.1411,0.1629,0.1845,0.2087,0.2325,0.2578,0.2837,0.3091,0.3357 -0.3606,0.3867,0.4119,0.4362,0.4608,0.4857,0.5099,0.5349,0.5587,0.5814 -0.6047,0.6260,0.6480,0.6685,0.6892,0.7099,0.7282,0.7456,0.7643,0.7812 -0.7988,0.8141,0.8309,0.8454,0.8616,0.8738,0.8847,0.8955,0.9049,0.9133 -0.9199,0.9274,0.9341,0.9399,0.9445,0.9489,0.9529,0.9561,0.9593,0.9620 -0.9645,0.9667,0.9689,0.9701,0.9720,0.9740,0.9756,0.9771,0.9785,0.9796 -0.9808,0.9816,0.9823,0.9832,0.9839,0.9846,0.9854,0.9860,0.9867,0.9874 -0.9876,0.9881,0.9885,0.9889,0.9895,0.9900,0.9902,0.9907,0.9910,0.9916 -0.9919,0.9923,0.9927,0.9930,0.9934,0.9937,0.9942,0.9945,0.9949,0.9953 -0.9957,0.9962,0.9965,0.9968,0.9971,0.9973,0.9976,0.9979,0.9981,0.9984 -0.9986,0.9988,0.9989,0.9993,0.9995,0.9998,0.9999,0.9999,1.0000,1.0000 -pwc2x2fract=0.0002,0.0005,0.0008,0.0011,0.0014,0.0017,0.0021,0.0025 -0.0027,0.0031,0.0032,0.0034,0.0040,0.0045,0.0052,0.0065,0.0083,0.0112 -0.0150,0.0200,0.0264,0.0341,0.0435,0.0560,0.0701,0.0862,0.1027,0.1210 -0.1417,0.1628,0.1833,0.2069,0.2301,0.2547,0.2799,0.3062,0.3314,0.3582 -0.3860,0.4141,0.4390,0.4656,0.4903,0.5161,0.5410,0.5649,0.5874,0.6090 -0.6298,0.6507,0.6721,0.6923,0.7117,0.7312,0.7510,0.7706,0.7881,0.8052 -0.8204,0.8360,0.8525,0.8666,0.8793,0.8906,0.9019,0.9103,0.9194,0.9274 -0.9340,0.9397,0.9442,0.9483,0.9523,0.9557,0.9596,0.9625,0.9653,0.9678 -0.9698,0.9718,0.9732,0.9751,0.9768,0.9782,0.9793,0.9804,0.9813,0.9821 -0.9828,0.9834,0.9842,0.9848,0.9852,0.9857,0.9861,0.9864,0.9872,0.9877 -0.9880,0.9886,0.9889,0.9894,0.9898,0.9903,0.9908,0.9915,0.9921,0.9924 -0.9927,0.9930,0.9935,0.9939,0.9943,0.9945,0.9949,0.9952,0.9957,0.9960 -0.9963,0.9965,0.9967,0.9972,0.9975,0.9979,0.9980,0.9985,0.9987,0.9988 -0.9990,0.9991,0.9992,0.9995,0.9997,1.0000,1.0000,1.0000,1.0000,1.0000 -pwc2v2fract=0.0004,0.0006,0.0008,0.0012,0.0013,0.0016,0.0018,0.0021 -0.0024,0.0027,0.0029,0.0032,0.0036,0.0039,0.0043,0.0049,0.0063,0.0080 -0.0113,0.0155,0.0218,0.0300,0.0397,0.0508,0.0645,0.0793,0.0949,0.1135 -0.1343,0.1560,0.1786,0.2019,0.2250,0.2498,0.2756,0.3011,0.3270,0.3526 -0.3778,0.4042,0.4299,0.4570,0.4821,0.5077,0.5311,0.5540,0.5784,0.6010 -0.6219,0.6429,0.6633,0.6830,0.7023,0.7214,0.7403,0.7590,0.7786,0.7948 -0.8118,0.8288,0.8444,0.8587,0.8725,0.8842,0.8946,0.9044,0.9136,0.9208 -0.9264,0.9323,0.9377,0.9428,0.9472,0.9506,0.9541,0.9576,0.9602,0.9635 -0.9656,0.9675,0.9695,0.9715,0.9732,0.9751,0.9768,0.9777,0.9789,0.9802 -0.9809,0.9819,0.9828,0.9835,0.9841,0.9850,0.9858,0.9863,0.9866,0.9870 -0.9875,0.9880,0.9884,0.9888,0.9894,0.9899,0.9901,0.9905,0.9909,0.9912 -0.9917,0.9919,0.9922,0.9926,0.9931,0.9936,0.9941,0.9945,0.9951,0.9954 -0.9959,0.9962,0.9964,0.9967,0.9969,0.9971,0.9975,0.9978,0.9980,0.9983 -0.9986,0.9988,0.9991,0.9995,0.9998,0.9999,0.9999,0.9999,1.0000,1.0000 - -; -; Not sure why this is here -; Makes the analyzer happy -pdc_2_zpos = 0, 0 \ No newline at end of file diff --git a/PARAM/SHMS/DC/pdc.pos b/PARAM/SHMS/DC/pdc.pos index 99e5299a..ee065a50 100644 --- a/PARAM/SHMS/DC/pdc.pos +++ b/PARAM/SHMS/DC/pdc.pos @@ -1,134 +1,92 @@ -; Number of planes installed in SHMS detector setup - pdc_num_planes = 12 -; Number of chambers installed in SHMS detector setup - pdc_num_chambers = 2 +; CHAMBER POSITION PARAMETERS +; x, y and z position of center for each wire chamber in cm. +; From survey C1771. +pdc_xcenter = -0.036, 0.008 ; TODO - final survey +pdc_ycenter = 0.019, 0.013 ; TODO - final survey +pdc_1_zpos = -40 - 0.656 ; TODO - final survey +pdc_2_zpos = 40 - 0.668 ; TODO - final survey -; Z positions of various planes in SHMS chambers -; Use geometry of previous SOS chambers for now +; Roll, pitch and yaw for each wire chamber in degrees. +; From survey C1771. +pdc_1_roll = 180.0 ; TODO - survey +pdc_2_roll = 180.0 ; TODO - survey +pdc_1_pitch = -0.006 ; TODO - final survey +pdc_2_pitch = 0.001 ; TODO - final survey +pdc_1_yaw = -0.006 ; TODO - final survey +pdc_2_yaw = -0.035 ; TODO - final survey -; pdc_1_zpos = -14.5*2.54 - pdc_1_zpos = 0 ; Chamber 1, do not try to project to scintillators - pdc_2_zpos = 0, 0 ; Chamber 2 -; Use geometry of SOS chambers for now - pdc_zpos = pdc_1_zpos - 1.5875 - pdc_1_zpos - 0.9525 - pdc_1_zpos - 0.3175 - pdc_1_zpos + 0.3175 - pdc_1_zpos + 0.9525 - pdc_1_zpos + 1.5875 - pdc_1_zpos - 1.5875 - pdc_1_zpos - 0.9525 - pdc_1_zpos - 0.3175 - pdc_1_zpos + 0.3175 - pdc_1_zpos + 0.9525 - pdc_1_zpos + 1.5875 +; PLANE POSITION PARAMETERS -; Angle alpha of wires in wire chamber planes - pdc_roll = 0.0 ; SOS chambers had roll as installed - pdc_alpha_angle = (30-pdc_roll)*raddeg - (30-pdc_roll)*raddeg - (90-pdc_roll)*raddeg - (90-pdc_roll)*raddeg - (150-pdc_roll)*raddeg - (150-pdc_roll)*raddeg - (30-pdc_roll)*raddeg - (30-pdc_roll)*raddeg - (90-pdc_roll)*raddeg - (90-pdc_roll)*raddeg - (150-pdc_roll)*raddeg - (150-pdc_roll)*raddeg +; Wire number of center of wire chamber for each plane. +; From technical drawings. +pdc_central_wire = 54.25, 53.75, 40.25, 39.75, 54.25, 53.75 + 53.75, 54.25, 39.75, 40.25, 53.75, 54.25 - pdc_beta = 0.0 - pdc_beta_angle = pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta - pdc_beta +; Distance between wires for each plane in cm. +; From technical drawings. +pdc_pitch = 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 - pdc_gamma = 0.0 - pdc_gamma_angle = pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_gamma - pdc_pitch = 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 - 1.0000 -; Number of wires per plane - pdc_nrwire = 107 - 107 - 79 - 79 - 107 - 107 - 107 - 107 - 79 - 79 - 107 - 107 +; Order in which wires are counted in each plane. +pdc_wire_counting = 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0 -; X,Y position of center of wire chamber - pdc_xcenter = 0.0, 0.0 - pdc_ycenter = 0.0, 0.0 +; z position in cm of each plane measured from focal plane. +; From technical drawings. +pdc_zpos = pdc_1_zpos - 0.68701*cminch + pdc_1_zpos - 0.43701*cminch + pdc_1_zpos - 0.18701*cminch + pdc_1_zpos + 0.18701*cminch + pdc_1_zpos + 0.43701*cminch + pdc_1_zpos + 0.68701*cminch + pdc_2_zpos - 0.68701*cminch + pdc_2_zpos - 0.43701*cminch + pdc_2_zpos - 0.18701*cminch + pdc_2_zpos + 0.18701*cminch + pdc_2_zpos + 0.43701*cminch + pdc_2_zpos + 0.68701*cminch -; Wire number of center of wire chamber -; Note the convention : x : low number = -x , u,v : low number = "-x" -; x1 and x2, u1 and u2, v1 and v2 are offset by half a cell length -; assume 1st wire of 1st dc of a set is closest to edge where counting starts -; (These taken from SOS. Will be different for SHMS - pdc_central_wire = 54.25 - 53.75 - 40.25 - 40.75 - 54.25 - 53.75 - 53.75 - 54.25 - 40.75 - 40.25 - 53.75 - 54.25 +; Alpha angle of wires for each plane in radians. +; From technical drawings. +pdc_alpha_angle = ( 30 + pdc_1_roll)*raddeg + ( 30 + pdc_1_roll)*raddeg + ( 90 + pdc_1_roll)*raddeg + ( 90 + pdc_1_roll)*raddeg + (150 + pdc_1_roll)*raddeg + (150 + pdc_1_roll)*raddeg + ( 30 + pdc_2_roll)*raddeg + ( 30 + pdc_2_roll)*raddeg + ( 90 + pdc_2_roll)*raddeg + ( 90 + pdc_2_roll)*raddeg + (150 + pdc_2_roll)*raddeg + (150 + pdc_2_roll)*raddeg -; Chamber # for each plane -pdc_chamber_planes = 1,1,1,1,1,1,2,2,2,2,2,2 +; Beta angle of wires for each plane in radians. +pdc_beta_angle = pdc_1_pitch*raddeg + pdc_1_pitch*raddeg + pdc_1_pitch*raddeg + pdc_1_pitch*raddeg + pdc_1_pitch*raddeg + pdc_1_pitch*raddeg + pdc_2_pitch*raddeg + pdc_2_pitch*raddeg + pdc_2_pitch*raddeg + pdc_2_pitch*raddeg + pdc_2_pitch*raddeg + pdc_2_pitch*raddeg -; Order in which wires are readout - pdc_wire_counting = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -; If pdc_wire_counting(plane) = 0 -; the wire center is at (wire - pdc_central_wire) * pitch -; If pdc_wire_counting(plane) = 1 -; the wire center is at ( pdc_nrwire + 1 - wire - pdc_central_wire) * pitch - -; The velocity correction is the distance from the center of the wire divided -; by the velocity of propagation times pdc_drifttime_sign(pln). +/-1 -; for disc. card at +/- coord. (i.e. top = -x direction, so top readout is +1) -; -; These are guesses taken from the SOS Chambers -; - pdc_drifttime_sign = 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1 \ No newline at end of file +; Gamma angle of wires for each plane in radians +pdc_gamma_angle = pdc_1_yaw*raddeg + pdc_1_yaw*raddeg + pdc_1_yaw*raddeg + pdc_1_yaw*raddeg + pdc_1_yaw*raddeg + pdc_1_yaw*raddeg + pdc_2_yaw*raddeg + pdc_2_yaw*raddeg + pdc_2_yaw*raddeg + pdc_2_yaw*raddeg + pdc_2_yaw*raddeg + pdc_2_yaw*raddeg diff --git a/PARAM/SHMS/DC/pdc_test_stand.param b/PARAM/SHMS/DC/pdc_test_stand.param new file mode 100644 index 00000000..be39f3af --- /dev/null +++ b/PARAM/SHMS/DC/pdc_test_stand.param @@ -0,0 +1,5 @@ +; TEST-STAND PARAMETERS +; Custom parameter file which should be loaded when aiming to analyze HMS DC +; data with no tracking. + +psel_using_scin = 0 diff --git a/PARAM/SHMS/DC/pdc_tracking.param b/PARAM/SHMS/DC/pdc_tracking.param new file mode 100644 index 00000000..13f409cb --- /dev/null +++ b/PARAM/SHMS/DC/pdc_tracking.param @@ -0,0 +1,27 @@ +; TRACKING PARAMETERS + +; Sigma of wire chamber resolution for each plane. +pdc_sigma = 0.02, 0.02, 0.02, 0.02, 0.02, 0.02 ; TODO - SOS values for now + 0.02, 0.02, 0.02, 0.02, 0.02, 0.02 + +; TDC window limits for each plane. +pdc_tdc_min_win = -55000, -55000, -55000, -55000, -55000, -55000 ; TODO - wide limits for now + -55000, -55000, -55000, -55000, -55000, -55000 +pdc_tdc_max_win = 55000, 55000, 55000, 55000, 55000, 55000 ; TODO - wide limits for now + 55000, 55000, 55000, 55000, 55000, 55000 + +; Conversion factor from TDC clicks to ns. +pdc_tdc_time_per_channel = -0.10 + +; Zero time correction for each plane in ns that is added to TDC time. +pdc_plane_time_zero = 1283.82, 1283.30, 1286.73, 1283.56, 1282.57, 1284.30 + 1283.94, 1283.34, 1286.95, 1286.46, 1286.37, 1284.47 + +; For wire velocity corrections. +pdc_wire_velocity = 13.0 ; TODO +pdc_central_time = 0, 0, 0, 0, 0, 0 ; TODO - no correction for now + 0, 0, 0, 0, 0, 0 +pdc_drifttime_sign = 0, 0, 0, 0, 0, 0 ; TODO - no correction for now + 0, 0, 0, 0, 0, 0 +pdc_fix_lr = 1 +pdc_fix_propcorr = 1 diff --git a/PARAM/SHMS/DC/pdriftmap.param b/PARAM/SHMS/DC/pdriftmap.param index d6a16be8..052b8dcc 100644 --- a/PARAM/SHMS/DC/pdriftmap.param +++ b/PARAM/SHMS/DC/pdriftmap.param @@ -1,177 +1,175 @@ -; Lookup table -; Drift map parameters +; Lookup Table: RUN 437 +; number of bins in Carlos's time to distance lookup table pdriftbins = 138 -; Number of 1st bin in table -pdrift1stbin = -24 -; Bin size in ns -pdriftbinsz = 2 -; Drift maps simply copied from the SOS chambers -pwc1u1fract=0.0002,0.0005,0.0009,0.0011,0.0015,0.0018,0.0022,0.0027 -0.0029,0.0033,0.0038,0.0044,0.0048,0.0051,0.0057,0.0070,0.0090,0.0121 -0.0167,0.0217,0.0282,0.0371,0.0467,0.0582,0.0723,0.0873,0.1038,0.1211 -0.1409,0.1609,0.1826,0.2060,0.2302,0.2542,0.2796,0.3043,0.3294,0.3555 -0.3819,0.4085,0.4343,0.4618,0.4890,0.5140,0.5384,0.5635,0.5880,0.6100 -0.6311,0.6522,0.6722,0.6928,0.7120,0.7316,0.7495,0.7684,0.7853,0.8026 -0.8191,0.8334,0.8491,0.8629,0.8771,0.8888,0.8994,0.9089,0.9170,0.9242 -0.9308,0.9364,0.9411,0.9457,0.9496,0.9538,0.9571,0.9602,0.9630,0.9654 -0.9679,0.9698,0.9718,0.9735,0.9750,0.9765,0.9778,0.9791,0.9804,0.9815 -0.9825,0.9833,0.9844,0.9851,0.9855,0.9862,0.9870,0.9874,0.9877,0.9883 -0.9889,0.9893,0.9895,0.9898,0.9901,0.9904,0.9910,0.9918,0.9923,0.9927 -0.9930,0.9935,0.9937,0.9941,0.9943,0.9947,0.9949,0.9952,0.9957,0.9962 -0.9964,0.9966,0.9970,0.9973,0.9975,0.9977,0.9979,0.9982,0.9986,0.9988 -0.9990,0.9991,0.9994,0.9995,0.9998,0.9999,1.0000,1.0000,1.0000,1.0000 -pwc1x1fract=0.0004,0.0006,0.0008,0.0010,0.0012,0.0015,0.0017,0.0021 -0.0025,0.0028,0.0031,0.0033,0.0036,0.0041,0.0045,0.0051,0.0060,0.0075 -0.0104,0.0138,0.0191,0.0265,0.0356,0.0463,0.0596,0.0743,0.0916,0.1114 -0.1316,0.1533,0.1757,0.1988,0.2209,0.2455,0.2689,0.2945,0.3196,0.3437 -0.3697,0.3950,0.4196,0.4448,0.4702,0.4953,0.5186,0.5416,0.5650,0.5877 -0.6099,0.6316,0.6519,0.6719,0.6909,0.7099,0.7277,0.7463,0.7645,0.7821 -0.7979,0.8154,0.8320,0.8477,0.8612,0.8740,0.8865,0.8973,0.9077,0.9161 -0.9234,0.9301,0.9351,0.9406,0.9454,0.9497,0.9531,0.9570,0.9605,0.9631 -0.9660,0.9690,0.9713,0.9728,0.9748,0.9762,0.9775,0.9786,0.9800,0.9807 -0.9818,0.9827,0.9833,0.9843,0.9849,0.9857,0.9861,0.9866,0.9871,0.9877 -0.9883,0.9887,0.9891,0.9895,0.9898,0.9901,0.9907,0.9913,0.9916,0.9918 -0.9921,0.9925,0.9929,0.9931,0.9935,0.9940,0.9944,0.9946,0.9949,0.9952 -0.9956,0.9960,0.9966,0.9968,0.9970,0.9972,0.9974,0.9976,0.9979,0.9980 -0.9984,0.9985,0.9988,0.9990,0.9991,0.9993,0.9996,0.9998,0.9999,1.0000 -pwc1v1fract=0.0002,0.0006,0.0008,0.0011,0.0013,0.0016,0.0019,0.0020 -0.0022,0.0025,0.0030,0.0035,0.0038,0.0042,0.0049,0.0057,0.0076,0.0103 -0.0149,0.0200,0.0273,0.0353,0.0455,0.0574,0.0719,0.0865,0.1045,0.1224 -0.1416,0.1630,0.1844,0.2074,0.2317,0.2555,0.2807,0.3046,0.3298,0.3553 -0.3826,0.4075,0.4316,0.4563,0.4823,0.5065,0.5315,0.5554,0.5781,0.6014 -0.6235,0.6434,0.6643,0.6853,0.7050,0.7238,0.7415,0.7602,0.7787,0.7975 -0.8152,0.8307,0.8456,0.8595,0.8723,0.8851,0.8957,0.9043,0.9126,0.9205 -0.9276,0.9330,0.9383,0.9437,0.9484,0.9521,0.9553,0.9582,0.9607,0.9634 -0.9657,0.9676,0.9701,0.9722,0.9738,0.9755,0.9767,0.9781,0.9794,0.9804 -0.9814,0.9825,0.9835,0.9842,0.9847,0.9853,0.9861,0.9866,0.9871,0.9878 -0.9882,0.9888,0.9891,0.9897,0.9900,0.9903,0.9909,0.9910,0.9917,0.9919 -0.9924,0.9929,0.9937,0.9939,0.9944,0.9948,0.9954,0.9956,0.9961,0.9966 -0.9968,0.9972,0.9974,0.9978,0.9980,0.9981,0.9984,0.9986,0.9989,0.9991 -0.9995,0.9996,0.9998,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -pwc1u2fract=0.0003,0.0004,0.0008,0.0011,0.0015,0.0018,0.0021,0.0024 -0.0027,0.0030,0.0033,0.0037,0.0039,0.0043,0.0046,0.0049,0.0059,0.0073 -0.0094,0.0129,0.0184,0.0267,0.0352,0.0446,0.0563,0.0707,0.0863,0.1030 -0.1206,0.1411,0.1629,0.1845,0.2087,0.2325,0.2578,0.2837,0.3091,0.3357 -0.3606,0.3867,0.4119,0.4362,0.4608,0.4857,0.5099,0.5349,0.5587,0.5814 -0.6047,0.6260,0.6480,0.6685,0.6892,0.7099,0.7282,0.7456,0.7643,0.7812 -0.7988,0.8141,0.8309,0.8454,0.8616,0.8738,0.8847,0.8955,0.9049,0.9133 -0.9199,0.9274,0.9341,0.9399,0.9445,0.9489,0.9529,0.9561,0.9593,0.9620 -0.9645,0.9667,0.9689,0.9701,0.9720,0.9740,0.9756,0.9771,0.9785,0.9796 -0.9808,0.9816,0.9823,0.9832,0.9839,0.9846,0.9854,0.9860,0.9867,0.9874 -0.9876,0.9881,0.9885,0.9889,0.9895,0.9900,0.9902,0.9907,0.9910,0.9916 -0.9919,0.9923,0.9927,0.9930,0.9934,0.9937,0.9942,0.9945,0.9949,0.9953 -0.9957,0.9962,0.9965,0.9968,0.9971,0.9973,0.9976,0.9979,0.9981,0.9984 -0.9986,0.9988,0.9989,0.9993,0.9995,0.9998,0.9999,0.9999,1.0000,1.0000 -pwc1x2fract=0.0002,0.0005,0.0008,0.0011,0.0014,0.0017,0.0021,0.0025 -0.0027,0.0031,0.0032,0.0034,0.0040,0.0045,0.0052,0.0065,0.0083,0.0112 -0.0150,0.0200,0.0264,0.0341,0.0435,0.0560,0.0701,0.0862,0.1027,0.1210 -0.1417,0.1628,0.1833,0.2069,0.2301,0.2547,0.2799,0.3062,0.3314,0.3582 -0.3860,0.4141,0.4390,0.4656,0.4903,0.5161,0.5410,0.5649,0.5874,0.6090 -0.6298,0.6507,0.6721,0.6923,0.7117,0.7312,0.7510,0.7706,0.7881,0.8052 -0.8204,0.8360,0.8525,0.8666,0.8793,0.8906,0.9019,0.9103,0.9194,0.9274 -0.9340,0.9397,0.9442,0.9483,0.9523,0.9557,0.9596,0.9625,0.9653,0.9678 -0.9698,0.9718,0.9732,0.9751,0.9768,0.9782,0.9793,0.9804,0.9813,0.9821 -0.9828,0.9834,0.9842,0.9848,0.9852,0.9857,0.9861,0.9864,0.9872,0.9877 -0.9880,0.9886,0.9889,0.9894,0.9898,0.9903,0.9908,0.9915,0.9921,0.9924 -0.9927,0.9930,0.9935,0.9939,0.9943,0.9945,0.9949,0.9952,0.9957,0.9960 -0.9963,0.9965,0.9967,0.9972,0.9975,0.9979,0.9980,0.9985,0.9987,0.9988 -0.9990,0.9991,0.9992,0.9995,0.9997,1.0000,1.0000,1.0000,1.0000,1.0000 -pwc1v2fract=0.0004,0.0006,0.0008,0.0012,0.0013,0.0016,0.0018,0.0021 -0.0024,0.0027,0.0029,0.0032,0.0036,0.0039,0.0043,0.0049,0.0063,0.0080 -0.0113,0.0155,0.0218,0.0300,0.0397,0.0508,0.0645,0.0793,0.0949,0.1135 -0.1343,0.1560,0.1786,0.2019,0.2250,0.2498,0.2756,0.3011,0.3270,0.3526 -0.3778,0.4042,0.4299,0.4570,0.4821,0.5077,0.5311,0.5540,0.5784,0.6010 -0.6219,0.6429,0.6633,0.6830,0.7023,0.7214,0.7403,0.7590,0.7786,0.7948 -0.8118,0.8288,0.8444,0.8587,0.8725,0.8842,0.8946,0.9044,0.9136,0.9208 -0.9264,0.9323,0.9377,0.9428,0.9472,0.9506,0.9541,0.9576,0.9602,0.9635 -0.9656,0.9675,0.9695,0.9715,0.9732,0.9751,0.9768,0.9777,0.9789,0.9802 -0.9809,0.9819,0.9828,0.9835,0.9841,0.9850,0.9858,0.9863,0.9866,0.9870 -0.9875,0.9880,0.9884,0.9888,0.9894,0.9899,0.9901,0.9905,0.9909,0.9912 -0.9917,0.9919,0.9922,0.9926,0.9931,0.9936,0.9941,0.9945,0.9951,0.9954 -0.9959,0.9962,0.9964,0.9967,0.9969,0.9971,0.9975,0.9978,0.9980,0.9983 -0.9986,0.9988,0.9991,0.9995,0.9998,0.9999,0.9999,0.9999,1.0000,1.0000 - -pwc2u1fract=0.0002,0.0005,0.0009,0.0011,0.0015,0.0018,0.0022,0.0027 -0.0029,0.0033,0.0038,0.0044,0.0048,0.0051,0.0057,0.0070,0.0090,0.0121 -0.0167,0.0217,0.0282,0.0371,0.0467,0.0582,0.0723,0.0873,0.1038,0.1211 -0.1409,0.1609,0.1826,0.2060,0.2302,0.2542,0.2796,0.3043,0.3294,0.3555 -0.3819,0.4085,0.4343,0.4618,0.4890,0.5140,0.5384,0.5635,0.5880,0.6100 -0.6311,0.6522,0.6722,0.6928,0.7120,0.7316,0.7495,0.7684,0.7853,0.8026 -0.8191,0.8334,0.8491,0.8629,0.8771,0.8888,0.8994,0.9089,0.9170,0.9242 -0.9308,0.9364,0.9411,0.9457,0.9496,0.9538,0.9571,0.9602,0.9630,0.9654 -0.9679,0.9698,0.9718,0.9735,0.9750,0.9765,0.9778,0.9791,0.9804,0.9815 -0.9825,0.9833,0.9844,0.9851,0.9855,0.9862,0.9870,0.9874,0.9877,0.9883 -0.9889,0.9893,0.9895,0.9898,0.9901,0.9904,0.9910,0.9918,0.9923,0.9927 -0.9930,0.9935,0.9937,0.9941,0.9943,0.9947,0.9949,0.9952,0.9957,0.9962 -0.9964,0.9966,0.9970,0.9973,0.9975,0.9977,0.9979,0.9982,0.9986,0.9988 -0.9990,0.9991,0.9994,0.9995,0.9998,0.9999,1.0000,1.0000,1.0000,1.0000 -pwc2x1fract=0.0004,0.0006,0.0008,0.0010,0.0012,0.0015,0.0017,0.0021 -0.0025,0.0028,0.0031,0.0033,0.0036,0.0041,0.0045,0.0051,0.0060,0.0075 -0.0104,0.0138,0.0191,0.0265,0.0356,0.0463,0.0596,0.0743,0.0916,0.1114 -0.1316,0.1533,0.1757,0.1988,0.2209,0.2455,0.2689,0.2945,0.3196,0.3437 -0.3697,0.3950,0.4196,0.4448,0.4702,0.4953,0.5186,0.5416,0.5650,0.5877 -0.6099,0.6316,0.6519,0.6719,0.6909,0.7099,0.7277,0.7463,0.7645,0.7821 -0.7979,0.8154,0.8320,0.8477,0.8612,0.8740,0.8865,0.8973,0.9077,0.9161 -0.9234,0.9301,0.9351,0.9406,0.9454,0.9497,0.9531,0.9570,0.9605,0.9631 -0.9660,0.9690,0.9713,0.9728,0.9748,0.9762,0.9775,0.9786,0.9800,0.9807 -0.9818,0.9827,0.9833,0.9843,0.9849,0.9857,0.9861,0.9866,0.9871,0.9877 -0.9883,0.9887,0.9891,0.9895,0.9898,0.9901,0.9907,0.9913,0.9916,0.9918 -0.9921,0.9925,0.9929,0.9931,0.9935,0.9940,0.9944,0.9946,0.9949,0.9952 -0.9956,0.9960,0.9966,0.9968,0.9970,0.9972,0.9974,0.9976,0.9979,0.9980 -0.9984,0.9985,0.9988,0.9990,0.9991,0.9993,0.9996,0.9998,0.9999,1.0000 -pwc2v1fract=0.0002,0.0006,0.0008,0.0011,0.0013,0.0016,0.0019,0.0020 -0.0022,0.0025,0.0030,0.0035,0.0038,0.0042,0.0049,0.0057,0.0076,0.0103 -0.0149,0.0200,0.0273,0.0353,0.0455,0.0574,0.0719,0.0865,0.1045,0.1224 -0.1416,0.1630,0.1844,0.2074,0.2317,0.2555,0.2807,0.3046,0.3298,0.3553 -0.3826,0.4075,0.4316,0.4563,0.4823,0.5065,0.5315,0.5554,0.5781,0.6014 -0.6235,0.6434,0.6643,0.6853,0.7050,0.7238,0.7415,0.7602,0.7787,0.7975 -0.8152,0.8307,0.8456,0.8595,0.8723,0.8851,0.8957,0.9043,0.9126,0.9205 -0.9276,0.9330,0.9383,0.9437,0.9484,0.9521,0.9553,0.9582,0.9607,0.9634 -0.9657,0.9676,0.9701,0.9722,0.9738,0.9755,0.9767,0.9781,0.9794,0.9804 -0.9814,0.9825,0.9835,0.9842,0.9847,0.9853,0.9861,0.9866,0.9871,0.9878 -0.9882,0.9888,0.9891,0.9897,0.9900,0.9903,0.9909,0.9910,0.9917,0.9919 -0.9924,0.9929,0.9937,0.9939,0.9944,0.9948,0.9954,0.9956,0.9961,0.9966 -0.9968,0.9972,0.9974,0.9978,0.9980,0.9981,0.9984,0.9986,0.9989,0.9991 -0.9995,0.9996,0.9998,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000,1.0000 -pwc2u2fract=0.0003,0.0004,0.0008,0.0011,0.0015,0.0018,0.0021,0.0024 -0.0027,0.0030,0.0033,0.0037,0.0039,0.0043,0.0046,0.0049,0.0059,0.0073 -0.0094,0.0129,0.0184,0.0267,0.0352,0.0446,0.0563,0.0707,0.0863,0.1030 -0.1206,0.1411,0.1629,0.1845,0.2087,0.2325,0.2578,0.2837,0.3091,0.3357 -0.3606,0.3867,0.4119,0.4362,0.4608,0.4857,0.5099,0.5349,0.5587,0.5814 -0.6047,0.6260,0.6480,0.6685,0.6892,0.7099,0.7282,0.7456,0.7643,0.7812 -0.7988,0.8141,0.8309,0.8454,0.8616,0.8738,0.8847,0.8955,0.9049,0.9133 -0.9199,0.9274,0.9341,0.9399,0.9445,0.9489,0.9529,0.9561,0.9593,0.9620 -0.9645,0.9667,0.9689,0.9701,0.9720,0.9740,0.9756,0.9771,0.9785,0.9796 -0.9808,0.9816,0.9823,0.9832,0.9839,0.9846,0.9854,0.9860,0.9867,0.9874 -0.9876,0.9881,0.9885,0.9889,0.9895,0.9900,0.9902,0.9907,0.9910,0.9916 -0.9919,0.9923,0.9927,0.9930,0.9934,0.9937,0.9942,0.9945,0.9949,0.9953 -0.9957,0.9962,0.9965,0.9968,0.9971,0.9973,0.9976,0.9979,0.9981,0.9984 -0.9986,0.9988,0.9989,0.9993,0.9995,0.9998,0.9999,0.9999,1.0000,1.0000 -pwc2x2fract=0.0002,0.0005,0.0008,0.0011,0.0014,0.0017,0.0021,0.0025 -0.0027,0.0031,0.0032,0.0034,0.0040,0.0045,0.0052,0.0065,0.0083,0.0112 -0.0150,0.0200,0.0264,0.0341,0.0435,0.0560,0.0701,0.0862,0.1027,0.1210 -0.1417,0.1628,0.1833,0.2069,0.2301,0.2547,0.2799,0.3062,0.3314,0.3582 -0.3860,0.4141,0.4390,0.4656,0.4903,0.5161,0.5410,0.5649,0.5874,0.6090 -0.6298,0.6507,0.6721,0.6923,0.7117,0.7312,0.7510,0.7706,0.7881,0.8052 -0.8204,0.8360,0.8525,0.8666,0.8793,0.8906,0.9019,0.9103,0.9194,0.9274 -0.9340,0.9397,0.9442,0.9483,0.9523,0.9557,0.9596,0.9625,0.9653,0.9678 -0.9698,0.9718,0.9732,0.9751,0.9768,0.9782,0.9793,0.9804,0.9813,0.9821 -0.9828,0.9834,0.9842,0.9848,0.9852,0.9857,0.9861,0.9864,0.9872,0.9877 -0.9880,0.9886,0.9889,0.9894,0.9898,0.9903,0.9908,0.9915,0.9921,0.9924 -0.9927,0.9930,0.9935,0.9939,0.9943,0.9945,0.9949,0.9952,0.9957,0.9960 -0.9963,0.9965,0.9967,0.9972,0.9975,0.9979,0.9980,0.9985,0.9987,0.9988 -0.9990,0.9991,0.9992,0.9995,0.9997,1.0000,1.0000,1.0000,1.0000,1.0000 -pwc2v2fract=0.0004,0.0006,0.0008,0.0012,0.0013,0.0016,0.0018,0.0021 -0.0024,0.0027,0.0029,0.0032,0.0036,0.0039,0.0043,0.0049,0.0063,0.0080 -0.0113,0.0155,0.0218,0.0300,0.0397,0.0508,0.0645,0.0793,0.0949,0.1135 -0.1343,0.1560,0.1786,0.2019,0.2250,0.2498,0.2756,0.3011,0.3270,0.3526 -0.3778,0.4042,0.4299,0.4570,0.4821,0.5077,0.5311,0.5540,0.5784,0.6010 -0.6219,0.6429,0.6633,0.6830,0.7023,0.7214,0.7403,0.7590,0.7786,0.7948 -0.8118,0.8288,0.8444,0.8587,0.8725,0.8842,0.8946,0.9044,0.9136,0.9208 -0.9264,0.9323,0.9377,0.9428,0.9472,0.9506,0.9541,0.9576,0.9602,0.9635 -0.9656,0.9675,0.9695,0.9715,0.9732,0.9751,0.9768,0.9777,0.9789,0.9802 -0.9809,0.9819,0.9828,0.9835,0.9841,0.9850,0.9858,0.9863,0.9866,0.9870 -0.9875,0.9880,0.9884,0.9888,0.9894,0.9899,0.9901,0.9905,0.9909,0.9912 -0.9917,0.9919,0.9922,0.9926,0.9931,0.9936,0.9941,0.9945,0.9951,0.9954 -0.9959,0.9962,0.9964,0.9967,0.9969,0.9971,0.9975,0.9978,0.9980,0.9983 -0.9986,0.9988,0.9991,0.9995,0.9998,0.9999,0.9999,0.9999,1.0000,1.0000 \ No newline at end of file +; number of 1st bin in Carlos's table in ns +pdrift1stbin=0 +; bin size in ns +pdriftbinsz=2 +pwc1u1fract=0.0020958,0.00550,0.01002,0.01739,0.02577,0.03772,0.04948,0.06559,0.08364 +0.10279,0.12221,0.14307,0.16406,0.18584,0.20811,0.23051,0.25228,0.27458,0.29806 +0.31974,0.34080,0.36412,0.38678,0.40832,0.43010,0.45152,0.47421,0.49602,0.51701 +0.53846,0.56007,0.58198,0.60153,0.62259,0.64276,0.66234,0.68271,0.70063,0.72034 +0.73878,0.75744,0.77483,0.79075,0.80817,0.82274,0.83898,0.85205,0.86623,0.87825 +0.89020,0.90140,0.91057,0.92020,0.92776,0.93441,0.94158,0.94708,0.95216,0.95635 +0.96054,0.96447,0.96788,0.97099,0.97377,0.97675,0.97934,0.98120,0.98294,0.98481 +0.98654,0.98860,0.99004,0.99132,0.99230,0.99339,0.99404,0.99515,0.99584,0.99653 +0.99695,0.99745,0.99800,0.99826,0.99849,0.99882,0.99915,0.99925,0.99941,0.99954 +0.99967,0.99977,0.99980,0.99980,0.99987,0.99993,0.99993,0.99997,0.99997,0.99997 +0.99997,0.99997,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +pwc1u2fract=0.00192,0.00536,0.01094,0.01854,0.02916,0.04075,0.05474,0.07176,0.08975 +0.11056,0.13105,0.15306,0.17436,0.19660,0.21781,0.24115,0.26408,0.28814,0.31077 +0.33350,0.35671,0.37931,0.40110,0.42399,0.44561,0.46795,0.48964,0.51143,0.53266 +0.55299,0.57546,0.59595,0.61543,0.63533,0.65579,0.67469,0.69323,0.71099,0.72852 +0.74609,0.76472,0.78174,0.79804,0.81421,0.82970,0.84343,0.85765,0.87162,0.88343 +0.89532,0.90613,0.91607,0.92412,0.93107,0.93769,0.94428,0.94883,0.95354,0.95724 +0.96110,0.96458,0.96779,0.97029,0.97312,0.97565,0.97792,0.98026,0.98266,0.98487 +0.98665,0.98851,0.98977,0.99127,0.99224,0.99308,0.99403,0.99493,0.99597,0.99643 +0.99711,0.99756,0.99786,0.99802,0.99854,0.99890,0.99919,0.99929,0.99935,0.99951 +0.99964,0.99974,0.99984,0.99987,0.99990,0.99990,0.99990,0.99990,0.99994,0.99994 +0.99994,0.99997,0.99997,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +pwc1x1fract=0.00604,0.01330,0.02308,0.03473,0.04813,0.06361,0.08088,0.09973,0.11789 +0.13855,0.15859,0.18048,0.20144,0.22475,0.24776,0.26958,0.29143,0.31348,0.33685 +0.35851,0.37901,0.39974,0.42242,0.44375,0.46547,0.48686,0.50839,0.52964,0.55256 +0.57292,0.59316,0.61379,0.63334,0.65192,0.67226,0.69124,0.70831,0.72782,0.74680 +0.76429,0.78120,0.79787,0.81335,0.82811,0.84214,0.85650,0.87020,0.88221,0.89327 +0.90324,0.91206,0.92034,0.92787,0.93543,0.94187,0.94702,0.95111,0.95471,0.95798 +0.96200,0.96544,0.96854,0.97158,0.97402,0.97643,0.97891,0.98079,0.98257,0.98409 +0.98567,0.98739,0.98914,0.99066,0.99165,0.99294,0.99422,0.99488,0.99584,0.99640 +0.99706,0.99752,0.99799,0.99825,0.99842,0.99878,0.99891,0.99908,0.99927,0.99934 +0.99954,0.99960,0.99964,0.99967,0.99970,0.99970,0.99977,0.99987,0.99987,0.99993 +0.99993,0.99993,0.99993,0.99997,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +pwc1x2fract=0.00262,0.00736,0.01364,0.02145,0.03149,0.04365,0.05850,0.07521,0.09336 +0.11409,0.13596,0.15849,0.17942,0.20123,0.22396,0.24655,0.26751,0.29037,0.31038 +0.33356,0.35491,0.37637,0.39811,0.41904,0.43843,0.45975,0.47989,0.50095,0.52302 +0.54388,0.56465,0.58508,0.60532,0.62478,0.64424,0.66343,0.68249,0.70067,0.71699 +0.73511,0.75374,0.77078,0.78834,0.80407,0.81999,0.83503,0.85050,0.86315,0.87587 +0.88771,0.89854,0.90736,0.91619,0.92384,0.93114,0.93705,0.94301,0.94804,0.95219 +0.95631,0.96014,0.96334,0.96622,0.96923,0.97201,0.97463,0.97741,0.97996,0.98182 +0.98349,0.98519,0.98699,0.98878,0.99029,0.99212,0.99313,0.99428,0.99500,0.99572 +0.99601,0.99650,0.99702,0.99745,0.99794,0.99837,0.99863,0.99879,0.99895,0.99915 +0.99922,0.99928,0.99944,0.99948,0.99957,0.99961,0.99964,0.99967,0.99967,0.99967 +0.99971,0.99974,0.99974,0.99977,0.99977,0.99980,0.99980,0.99984,0.99984,0.99984 +0.99984,0.99984,0.99987,0.99987,0.99990,0.99990,0.99990,0.99990,0.99993,0.99993 +0.99993,0.99993,0.99993,0.99993,0.99993,0.99993,0.99993,0.99993,0.99993,0.99993 +0.99993,0.99997,0.99997,0.99997,0.99997,1.00000,1.00000,1.00000,1.00000 +pwc1v1fract=0.00587,0.01226,0.02231,0.03338,0.04752,0.06370,0.08110,0.09998,0.12120 +0.14212,0.16364,0.18562,0.20819,0.23067,0.25255,0.27584,0.29838,0.31980,0.34280 +0.36468,0.38594,0.40953,0.43039,0.45280,0.47507,0.49725,0.51913,0.54075,0.56114 +0.58138,0.60115,0.62309,0.64342,0.66115,0.68069,0.69911,0.71599,0.73444,0.75210 +0.76947,0.78617,0.80225,0.81731,0.83349,0.84756,0.86078,0.87346,0.88546,0.89620 +0.90612,0.91515,0.92319,0.93021,0.93650,0.94171,0.94705,0.95087,0.95542,0.95888 +0.96326,0.96622,0.96939,0.97196,0.97443,0.97690,0.97927,0.98181,0.98359,0.98540 +0.98718,0.98890,0.99028,0.99183,0.99285,0.99433,0.99502,0.99591,0.99641,0.99700 +0.99740,0.99769,0.99806,0.99839,0.99858,0.99871,0.99895,0.99914,0.99934,0.99951 +0.99964,0.99970,0.99977,0.99984,0.99990,0.99993,0.99993,0.99993,0.99997,0.99997 +0.99997,0.99997,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +pwc1v2fract=0.00340,0.00893,0.01651,0.02543,0.03609,0.04979,0.06568,0.08337,0.10194 +0.12119,0.14185,0.16438,0.18602,0.20930,0.23231,0.25553,0.27583,0.29930,0.32258 +0.34478,0.36697,0.38927,0.41196,0.43308,0.45629,0.47891,0.50062,0.52233,0.54204 +0.56355,0.58389,0.60442,0.62498,0.64329,0.66307,0.68370,0.70181,0.72126,0.73875 +0.75477,0.77295,0.78887,0.80365,0.81797,0.83297,0.84749,0.86158,0.87485,0.88610 +0.89646,0.90617,0.91467,0.92334,0.93059,0.93674,0.94217,0.94733,0.95158,0.95606 +0.96021,0.96325,0.96587,0.96920,0.97208,0.97496,0.97754,0.97963,0.98179,0.98382 +0.98532,0.98686,0.98885,0.99019,0.99114,0.99222,0.99304,0.99405,0.99487,0.99552 +0.99637,0.99696,0.99722,0.99761,0.99804,0.99830,0.99859,0.99879,0.99886,0.99905 +0.99922,0.99938,0.99944,0.99957,0.99964,0.99967,0.99971,0.99974,0.99974,0.99977 +0.99977,0.99980,0.99984,0.99984,0.99984,0.99984,0.99984,0.99984,0.99984,0.99984 +0.99984,0.99984,0.99984,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987 +0.99987,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987,0.99987 +0.99990,0.99990,0.99993,0.99997,0.99997,0.99997,1.00000,1.00000,1.00000 +pwc2v2fract=0.00355,0.00811,0.01463,0.02407,0.03587,0.04919,0.06677,0.08541,0.10400 +0.12540,0.14794,0.17011,0.19288,0.21693,0.23949,0.26299,0.28650,0.30951,0.33287 +0.35488,0.37780,0.39963,0.42181,0.44353,0.46490,0.48629,0.50656,0.52717,0.54784 +0.56852,0.58965,0.60916,0.62797,0.64653,0.66474,0.68310,0.70099,0.71828,0.73546 +0.75155,0.76685,0.78194,0.79734,0.81166,0.82645,0.83962,0.85270,0.86479,0.87595 +0.88651,0.89623,0.90495,0.91333,0.92068,0.92721,0.93332,0.93810,0.94279,0.94743 +0.95203,0.95604,0.95939,0.96229,0.96514,0.96786,0.97076,0.97319,0.97559,0.97771 +0.97986,0.98193,0.98360,0.98553,0.98730,0.98893,0.99021,0.99108,0.99205,0.99300 +0.99375,0.99470,0.99540,0.99585,0.99629,0.99679,0.99719,0.99765,0.99799,0.99832 +0.99846,0.99862,0.99894,0.99903,0.99914,0.99923,0.99937,0.99953,0.99964,0.99968 +0.99975,0.99982,0.99982,0.99984,0.99987,0.99987,0.99991,0.99993,0.99995,0.99996 +0.99996,0.99996,0.99996,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998 +0.99998,0.99998,0.99998,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +pwc2v1fract=0.00372,0.00848,0.01548,0.02441,0.03573,0.04956,0.06476,0.08295,0.10351 +0.12426,0.14625,0.16946,0.19199,0.21540,0.23858,0.26192,0.28639,0.30861,0.33119 +0.35334,0.37566,0.39810,0.42021,0.44146,0.46266,0.48382,0.50582,0.52804,0.54885 +0.56798,0.58801,0.60859,0.62777,0.64688,0.66520,0.68353,0.70152,0.71956,0.73761 +0.75335,0.76982,0.78458,0.79995,0.81450,0.82748,0.84073,0.85341,0.86489,0.87527 +0.88573,0.89487,0.90394,0.91159,0.91911,0.92546,0.93130,0.93661,0.94148,0.94587 +0.94992,0.95404,0.95789,0.96136,0.96449,0.96755,0.97010,0.97255,0.97491,0.97713 +0.97915,0.98114,0.98275,0.98458,0.98592,0.98751,0.98881,0.99004,0.99134,0.99221 +0.99298,0.99396,0.99456,0.99526,0.99597,0.99640,0.99714,0.99754,0.99778,0.99816 +0.99841,0.99861,0.99882,0.99897,0.99915,0.99920,0.99937,0.99944,0.99953,0.99964 +0.99971,0.99976,0.99978,0.99982,0.99986,0.99986,0.99989,0.99996,0.99998,0.99998 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +pwc2x2fract=0.00273,0.00715,0.01355,0.02204,0.03274,0.04612,0.06183,0.08042,0.09892 +0.11876,0.14088,0.16295,0.18590,0.20896,0.23253,0.25474,0.27887,0.30140,0.32319 +0.34527,0.36878,0.39027,0.41159,0.43320,0.45397,0.47620,0.49685,0.51873,0.53997 +0.56079,0.58000,0.59982,0.61994,0.63833,0.65730,0.67629,0.69488,0.71185,0.72945 +0.74559,0.76034,0.77572,0.79084,0.80480,0.81885,0.83163,0.84497,0.85717,0.86887 +0.87936,0.88973,0.89888,0.90758,0.91469,0.92266,0.92871,0.93477,0.93975,0.94473 +0.94887,0.95311,0.95691,0.96043,0.96402,0.96686,0.96950,0.97235,0.97469,0.97770 +0.97983,0.98189,0.98345,0.98514,0.98657,0.98803,0.98942,0.99069,0.99178,0.99271 +0.99365,0.99440,0.99512,0.99586,0.99630,0.99685,0.99718,0.99764,0.99805,0.99826 +0.99845,0.99870,0.99887,0.99896,0.99908,0.99926,0.99944,0.99954,0.99958,0.99961 +0.99968,0.99974,0.99974,0.99975,0.99982,0.99982,0.99984,0.99986,0.99989,0.99991 +0.99993,0.99993,0.99995,0.99995,0.99996,0.99996,0.99996,0.99996,0.99996,0.99996 +0.99996,0.99996,0.99996,0.99996,0.99996,0.99996,0.99996,0.99996,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +pwc2x1fract=0.00269,0.00655,0.01238,0.02026,0.03076,0.04237,0.05721,0.07286,0.09074 +0.10990,0.13086,0.15127,0.17513,0.19808,0.21996,0.24259,0.26537,0.28700,0.30956 +0.33140,0.35472,0.37650,0.39789,0.41888,0.44103,0.46255,0.48301,0.50454,0.52595 +0.54652,0.56800,0.58817,0.60742,0.62763,0.64721,0.66513,0.68315,0.70174,0.71896 +0.73531,0.75199,0.76820,0.78380,0.79914,0.81382,0.82846,0.84117,0.85393,0.86529 +0.87711,0.88755,0.89691,0.90553,0.91347,0.92066,0.92770,0.93366,0.93864,0.94362 +0.94777,0.95195,0.95612,0.95964,0.96283,0.96603,0.96896,0.97175,0.97480,0.97722 +0.97963,0.98193,0.98357,0.98535,0.98699,0.98833,0.98957,0.99091,0.99207,0.99304 +0.99378,0.99456,0.99544,0.99616,0.99677,0.99721,0.99761,0.99778,0.99812,0.99846 +0.99870,0.99892,0.99919,0.99937,0.99951,0.99959,0.99971,0.99971,0.99976,0.99976 +0.99978,0.99978,0.99983,0.99985,0.99988,0.99990,0.99990,0.99992,0.99992,0.99992 +0.99992,0.99992,0.99992,0.99993,0.99995,0.99995,0.99995,0.99995,0.99995,0.99995 +0.99995,0.99995,0.99997,0.99998,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +pwc2u2fract=0.00237,0.00581,0.01068,0.01782,0.02712,0.03875,0.05280,0.06868,0.08541 +0.10517,0.12528,0.14629,0.16884,0.19099,0.21299,0.23643,0.25869,0.28213,0.30434 +0.32678,0.34909,0.37174,0.39436,0.41625,0.43794,0.45954,0.48214,0.50378,0.52612 +0.54676,0.56720,0.58734,0.60833,0.62706,0.64672,0.66643,0.68381,0.70311,0.72117 +0.73876,0.75651,0.77290,0.78840,0.80271,0.81762,0.83198,0.84523,0.85838,0.87054 +0.88217,0.89223,0.90219,0.91106,0.91891,0.92627,0.93193,0.93753,0.94300,0.94747 +0.95198,0.95570,0.95922,0.96280,0.96595,0.96887,0.97174,0.97436,0.97680,0.97881 +0.98093,0.98278,0.98473,0.98631,0.98770,0.98939,0.99066,0.99200,0.99297,0.99412 +0.99487,0.99556,0.99620,0.99659,0.99711,0.99744,0.99782,0.99821,0.99859,0.99886 +0.99900,0.99919,0.99928,0.99940,0.99952,0.99955,0.99962,0.99966,0.99969,0.99978 +0.99979,0.99986,0.99986,0.99990,0.99993,0.99995,0.99995,0.99995,0.99995,0.99995 +0.99995,0.99995,0.99997,0.99997,0.99998,0.99998,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +pwc2u1fract=0.00286,0.00678,0.01311,0.02071,0.03000,0.04184,0.05560,0.07218,0.08949 +0.10886,0.12878,0.15013,0.17143,0.19400,0.21638,0.23885,0.26210,0.28499,0.30799 +0.33149,0.35450,0.37694,0.39903,0.42079,0.44323,0.46431,0.48507,0.50695,0.52818 +0.54926,0.57110,0.59212,0.61239,0.63161,0.65112,0.67003,0.68866,0.70782,0.72560 +0.74401,0.76115,0.77812,0.79482,0.80987,0.82598,0.84019,0.85395,0.86640,0.87848 +0.88970,0.89967,0.90845,0.91686,0.92449,0.93102,0.93708,0.94241,0.94746,0.95154 +0.95614,0.95993,0.96300,0.96655,0.96970,0.97251,0.97476,0.97719,0.97971,0.98181 +0.98349,0.98540,0.98741,0.98885,0.99029,0.99135,0.99259,0.99369,0.99464,0.99538 +0.99599,0.99672,0.99729,0.99767,0.99797,0.99822,0.99866,0.99885,0.99898,0.99919 +0.99929,0.99931,0.99939,0.99954,0.99958,0.99966,0.99970,0.99971,0.99975,0.99980 +0.99981,0.99983,0.99986,0.99988,0.99990,0.99992,0.99992,0.99992,0.99992,0.99992 +0.99993,0.99993,0.99995,0.99997,0.99997,0.99997,0.99997,0.99997,0.99997,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 +1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000 diff --git a/PARAM/SHMS/GEN/pcana.param b/PARAM/SHMS/GEN/pcana.param index d58c0f93..8524663d 100644 --- a/PARAM/SHMS/GEN/pcana.param +++ b/PARAM/SHMS/GEN/pcana.param @@ -1,19 +1,18 @@ ; Parameters we need to keep THcHallCSpectrometer Happy -p_recon_coeff_filename = "" +p_recon_coeff_filename = "DATFILES/SHMS_fr3_rec__order_5.dat" ppartmass = 0.139 -phodo_num_planes = 1 ; Scintillator parameters pref_npaddles = 6 pref_nsperchan = 0.1 pref_offset = 0.0 -; Names of planes so that parameter names can be constructed -pdc_plane_names = "1u1 1u2 1x1 1x2 1v1 1v2 2v2 2v1 2x2 2x1 2u2 2u1" +; Number of aerogel pairs of pmt's +paero_num_pairs = 7 -; Compatibility parameters. Should be zero to precisely mimic ENGINE -; behavior, but one for more correct behavior -pdc_fix_lr = 1 ; Let hit have different L/R assignment for different space point -pdc_fix_propcorr = 1 ; do propagation along wire each time hit appeears - ; in a space point \ No newline at end of file +; Number of heavy gas Cherenkov PMT's +phgcer_tot_pmts = 4 + +; Number of noble gas Cherenkov PMT's +pngcer_tot_pmts = 4 diff --git a/PARAM/SHMS/GEN/pdebug.param b/PARAM/SHMS/GEN/pdebug.param index 3e1149e0..e36705b5 100644 --- a/PARAM/SHMS/GEN/pdebug.param +++ b/PARAM/SHMS/GEN/pdebug.param @@ -5,4 +5,17 @@ pdebugprintdecodeddc = 0 ; Dump PDC_DECODED_DC bank pdebugflagpr = 0 ; Dump intermediate pattern recognition results pdebugflagstubs= 0 ; Dump stub fit results pdebugtrackprint = 0 ; Dump focal plane track fit results -pdebugstubchisq = 0; Dump chi2 of left-right fits \ No newline at end of file +pdebugstubchisq = 0; Dump chi2 of left-right fits + +; pluno fortran lun for output + pluno = 66 +; pdebugdumptof Dump timing information for fitting offsets + pdebugdumptof = 0 +; pdebugdumpcal Dump calorimeter information for fitting gains + pdebugdumpcal = 0 +; number of pedestal events required to overwrite orig. peds. + phodo_min_peds = 500 + pcal_min_peds = 500 + pcer_min_peds = 500 + paero_min_peds = 500 + pmisc_min_peds = 500 diff --git a/PARAM/SHMS/GEN/ptracking.param b/PARAM/SHMS/GEN/ptracking.param index 1de167cf..bb63238c 100644 --- a/PARAM/SHMS/GEN/ptracking.param +++ b/PARAM/SHMS/GEN/ptracking.param @@ -13,7 +13,7 @@ pmin_hit = 5, 5 pmin_combos = 6, 6 ; hspace_point_criterion(i) minimum separation of distinct space points ; recommended value for hspace_point_criterion ( based on meeting -; Feb 2003) +; Feb 2003) pspace_point_criterion = 1.2, 1.2 ; The following four criteria are applied to the stub fit results at the @@ -25,12 +25,72 @@ pntracks_max_fp = 10 ; focal plane position to link stubs to tracks pntracks_max_fp = 10 pxt_track_criterion = 100.0 - pyt_track_criterion = 2.0 + pyt_track_criterion = 20.0 pxpt_track_criterion = 1.0 pypt_track_criterion = 1.0 ; Make a track of all single stubs normally 0 - psingle_stub = 1 + psingle_stub = 0 ; No small angle approximation for cosmic ray tests - pSmallAngleApprox = 0 \ No newline at end of file + pSmallAngleApprox = 0 + +; Crude track selection criteria in h_physics +; psel_chi2_fpperdegmax maximum chi2 per degree of freedom for track + psel_chi2_fpperdegmax = 2000000. +; psel_dedx1min minimum dedx to chose best track in scin 1 + psel_dedx1min = -100000 +; psel_dedx1max maximum dedx to chose best track in scin 1 + psel_dedx1max = 1000000. +; psel_betamin minimum track beta to chose best track + psel_betamin = -100000 +; psel_betamax maximum track beta to chose best track + psel_betamax = 100000. +; psel_etmin minimum track et to chose best track + psel_etmin = 0.05 +; psel_etmax maximum track et to chose best track + psel_etmax = 100000. +; psel_ndegreesmin minimum number of degrees of freedom for track + psel_ndegreesmin = 1 + + +; pstat_maxchisq chisquared limit for tracks used to measure hodo. eff. + pstat_maxchisq = 10. +; if both psel_using_scin = 0 and psel_using_prune = 0 then best chi2 track is used. +; psel_using_scin uses scintillator for track selection + psel_using_scin = 0 +; psel_using_prune using prune + psel_using_prune = 0 +; pstat_slop distance from center of scin. to count as expecting hit + pstat_slop = 2. +; pstat_mineff warning level for scin. effic. + pstat_mineff = .95 +; pstat_cal_maxchisq cpisquared limit for tracks used to measure cal. eff. + pstat_cal_maxchisq = 10. +; pstat_cal_slop distance from center of block to count as expecting hit + pstat_cal_slop = 2. +; phgcer_min_eff warning level for cerenkov effic. + phgcer_min_eff = .98 +; phgcer_threshold threshold for good hit (for measureing effic.) + phgcer_threshold = 0.5 +; pngcer_min_eff warning level for cerenkov effic. + pngcer_min_eff = .98 +; pngcer_threshold threshold for good hit (for measureing effic.) + pngcer_threshold = 0.5 +; pdc_min_eff warning level for dc raw effic.(1 per plane) + pdc_min_eff = .96,.98,.96,.98,.98,.94 + .96,.98,.98,.98,.98,.96 +; pdc_min_wire_eff warning level for wire effic, measured using tracking + pdc_min_wire_eff = .85 +; pdc_min_plane_eff warning level for plane effic, measured using tracking + pdc_min_plane_eff = .95,.95,.95,.95,.95,.95 + .95,.95,.95,.95,.95,.95 +;Derek added this for scintillator based fiducial cuts. Everything from +;loscin to hiscin inclusive will be included as "good" scintillator hits. + pxloscin = 4, 4 + pxhiscin = 13, 13 + pyloscin = 4, 4 + pyhiscin = 7, 7 +; ptrack_eff_test_scin_planes is the number of planes nec needed to +; set sweet spot to true. 4 is extra clean, 3 is good enough for e-'s. + ptrack_eff_test_num_scin_planes = 3 diff --git a/PARAM/SHMS/GEN/shmsflags.param b/PARAM/SHMS/GEN/shmsflags.param index 56ef41f5..78493f50 100644 --- a/PARAM/SHMS/GEN/shmsflags.param +++ b/PARAM/SHMS/GEN/shmsflags.param @@ -1,6 +1,6 @@ -; The hdelta_offset,htheta_offset,hphi_offset effect the -; reconstructed target quantities. Used in h_targ_trans.f +; The pdelta_offset,ptheta_offset,pphi_offset effect the +; reconstructed target quantities. ; For transport x is in the dispersive direction with + down ; y is in the horizontal + towards small angles. ; z is along the central optics axis. @@ -8,7 +8,7 @@ ; but for unknown reasons the yp offset is named htheta_offset ; and the xp offset is named hphi_offset ; Do not to change these values, since these are the zero order -; CMOP matrix elements. If you do change then your hms sieve +; CMOP matrix elements. If you do change then your shms sieve ; plots will be screwed up. pdelta_offset = 0.0 @@ -16,13 +16,11 @@ ptheta_offset = 0.0 pphi_offset = 0.0 ; The following offsets are applied to the central kinematic variables -; in h_apply_offsets.f . These might be modified by an experiment +; These might be modified by an experiment ; after doing calibration with elastic ep. pthetacentral_offset = 0.0 p_oopcentral_offset = 0.0 ppcentral_offset = 0.0 -ppcentral = 0.0 -ptheta_lab = 0.0 diff --git a/PARAM/SHMS/HGCER/phgcer.param b/PARAM/SHMS/HGCER/phgcer.param new file mode 100644 index 00000000..dbe8d0a6 --- /dev/null +++ b/PARAM/SHMS/HGCER/phgcer.param @@ -0,0 +1,24 @@ +phgcer_width = 50, 50 + +phgcer_adc_to_npe = 1/145.0, 1/122.0 + + +phgcer_chi2max = 50. +phgcer_beta_min = 0.8 +phgcer_beta_max = 1.2 +phgcer_et_min = 0.95 +phgcer_et_max = 5.0 +phgcer_mirror_zpos = 230 +; phgcer_region: 8 values for each region (1 per mirror + sum) +; central x,y,dx,dy values and x,y,dx,dy half widths. +phgcer_region = 30, -30, 0, + 0, 0, 0, + 0, 0, 0, + 0, 0, 0, + 20, 20, 60, + 30, 30, 30, + .1, .1, .1, + .1, .1, .1 + +phgcer_ped_limit = 1000,1000 + diff --git a/PARAM/SHMS/HODO/phodo.param b/PARAM/SHMS/HODO/phodo.param new file mode 100644 index 00000000..aaa4ea23 --- /dev/null +++ b/PARAM/SHMS/HODO/phodo.param @@ -0,0 +1,411 @@ +pcosmicflag=1 +; for now manually set hte FADC mode +; 1 == Use the pulse int - pulse ped +; 2 == Use the sample integral - known ped +; 3 == Use the sample integral - sample ped +; if not set then defaults to use the raw pulse integral +phodo_adc_mode=1 +; +; hhodo_tdc_offset is array of time offsets for all paddles in a plane +; to move the tdc to between 0 and 4000 channels. + phodo_tdc_offset = 1860, 2000, 2060, 2000 +; pstart_time_center center of allowed time window + pstart_time_center = 32. +; hstart_time_slop 1/2 width of time window + pstart_time_slop = 100. +; pscin_tdc_min minimum tdc value in hms scin + pscin_tdc_min = -500 +; pscin_tdc_max maximum allowed tdc value + pscin_tdc_max = 1000 +; pscin_tdc_to_time scin tdc time per channel + pscin_tdc_to_time = 0.1 +; tof and you figured out good values + ptof_tolerance = 100.0 +; +; shms_tof_params +; pnum_scin_counters, phodo_zpos, phodo_center_coord, phodo_width +; are all calculated within p_init_scin +; phodo_pos_coord and phodo_neg_coord are not yet used +; + phodo_slop = 2., 2., 4., 4. +; +ptofusinginvadc=1 +; + +phodo_pos_invadc_offset = -5.0000, -5.0000, 0.000, 0.000 + -5.0000, -2.0000, 0.000, 0.000 + -5.0000, -2.0000, +10.000, 0.000 + -5.0000, -4.0000, 0.000, 0.000 + -5.0000, -4.0000, +10.000, 0.000 + -5.0000, -5.0000, 0.000, 0.000 + -5.0000, -6.0000, 0.000, -14.000 + -5.0000, -4.0000, 0.000, -14.000 + -5.0000, -5.0000, 0.000, -14.000 + -5.0000, +6.0000, 0.000, -14.000 + -5.0000, 0.0000, 0.000, -14.000 + -5.0000, +5.0000, 0.000, -14.000 + -5.0000, -7.0000, 0.000, -14.000 + 0.000, 0.0000, 0.000, -14.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; +phodo_neg_invadc_offset = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, +10.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, +10.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, -14.000 + 0.000, 0.0000, 0.000, -14.000 + 0.000, 0.0000, 0.000, -14.000 + 0.000, +10.0000, 0.000, -14.000 + 0.000, 0.0000, 0.000, -14.000 + 0.000, +10.0000, 0.000, -14.000 + 0.000, 0.0000, 0.000, -14.000 + 0.000, 0.0000, 0.000, -14.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; +phodo_pos_invadc_linear = 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 +phodo_neg_invadc_linear = 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + +phodo_pos_invadc_adc = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; +phodo_neg_invadc_adc = 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 + 0.000, 0.0000, 0.000, 0.000 +; + phodo_vel_light = 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + 15.0,15.0,15.0,15.0 + + phodo_pos_sigma = .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, +; + phodo_neg_sigma = .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, + .3,.3,.3,.3, +; +phodo_pos_ped_limit = 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + ; +phodo_neg_ped_limit = 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + 1000,1000,1000,1000 + + +phodo_pos_invadc_offset = -0.00, -0.00, 0.59, -0.00 + -6.26, -4.09, 0.45, -0.00 + -2.48, -1.94, 12.41, -0.00 + 1.98, -2.95, 0.44, -0.00 + -1.71, -4.57, 9.75, -0.00 + -2.48, -5.36, 0.15, -0.00 + 0.39, -3.34, 0.75, -0.00 + -7.06, -3.12, 0.21, -0.00 + -1.75, -3.79, 1.52, -0.00 + -0.00, 5.02, 1.58, -0.00 + -3.67, -3.57, 0.80, -0.00 + 0.76, 11.15, 2.28, -0.00 + -0.00, -0.00, 3.28, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + +phodo_neg_invadc_offset = -0.00, -0.00, -5.36, -0.00 + -7.60, -2.32, -5.24, -0.00 + 0.62, -3.65, 15.02, -0.00 + -4.07, -3.42, -6.21, -0.00 + -2.60, -3.61, 10.43, -0.00 + -5.70, -2.98, -7.00, -0.00 + 1.23, -2.53, -5.65, -0.00 + -2.39, -4.13, -5.78, -0.00 + -1.38, -3.39, -7.54, -0.00 + -2.56, 7.05, -5.93, -0.00 + 1.84, -4.38, -3.91, -0.00 + -3.23, 9.84, -3.06, -0.00 + -0.00, -0.00, -5.95, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + +phodo_pos_invadc_linear = 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 14.97, 15.00 + 14.28, 13.33, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 14.76, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + +phodo_neg_invadc_linear = 15.00, 15.00, 15.00, 15.00 + 13.91, 14.43, 15.00, 15.00 + 14.52, 14.76, 15.00, 15.00 + 14.68, 14.14, 15.00, 15.00 + 14.94, 14.70, 15.00, 15.00 + 14.34, 14.14, 15.00, 15.00 + 14.82, 13.94, 15.00, 15.00 + 15.00, 14.33, 15.00, 15.00 + 14.77, 13.76, 15.00, 15.00 + 15.00, 14.75, 14.42, 15.00 + 15.00, 13.69, 13.56, 15.00 + 13.75, 13.13, 13.73, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + 15.00, 15.00, 15.00, 15.00 + +phodo_pos_invadc_adc= -0.00, -0.00, 112.14, -0.00 + 85.63, 100.91, 83.19, -0.00 + 96.42, 36.41, 116.39, -0.00 + 121.38, 90.00, 118.14, -0.00 + 114.06, 92.90, 100.01, -0.00 + 110.24, 92.14, 103.32, -0.00 + 125.76, 84.99, 122.10, -0.00 + 92.38, 91.90, 130.47, -0.00 + 116.53, 85.91, 98.54, -0.00 + 122.36, 111.70, 113.37, -0.00 + 104.33, 74.85, 80.05, -0.00 + 122.25, 100.68, 145.77, -0.00 + -0.00, -0.00, 134.86, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + +phodo_neg_invadc_adc= -0.00, -0.00, 115.40, -0.00 + 100.70, 83.97, 103.44, -0.00 + 112.43, 84.04, 158.78, -0.00 + 119.43, 89.05, 118.05, -0.00 + 101.78, 89.03, 123.62, -0.00 + 97.26, 87.19, 108.87, -0.00 + 121.57, 78.91, 104.65, -0.00 + 110.95, 85.20, 170.10, -0.00 + 109.62, 78.24, 104.81, -0.00 + 113.38, 111.82, 60.35, -0.00 + 126.61, 78.83, 62.49, -0.00 + 91.82, 87.61, 62.81, -0.00 + -0.00, -0.00, 155.93, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + -0.00, -0.00, -0.00, -0.00 + +phodo_pos_sigma = 100.00, 100.00, 0.67, 100.00 + 0.60, 0.57, 0.84, 100.00 + 0.49, 0.64, 0.64, 100.00 + 0.61, 0.50, 0.65, 100.00 + 0.59, 0.63, 0.82, 100.00 + 0.72, 0.56, 0.62, 100.00 + 0.51, 0.52, 0.68, 100.00 + 0.65, 0.56, 0.92, 100.00 + 0.69, 0.49, 0.67, 100.00 + 0.66, 0.60, 1.69, 100.00 + 0.56, 0.54, 1.72, 100.00 + 0.57, 0.51, 1.49, 100.00 + 100.00, 100.00, 2.01, 100.00 + 100.00, 100.00, 100.00, 100.00 + 100.00, 100.00, 100.00, 100.00 + 100.00, 100.00, 100.00, 100.00 + +phodo_neg_sigma = 100.00, 100.00, 0.58, 100.00 + 0.66, 0.61, 0.74, 100.00 + 0.53, 0.61, 0.60, 100.00 + 0.57, 0.46, 0.91, 100.00 + 0.55, 0.62, 0.85, 100.00 + 0.65, 0.51, 0.67, 100.00 + 0.49, 0.53, 0.62, 100.00 + 0.64, 0.54, 0.85, 100.00 + 0.65, 0.54, 0.67, 100.00 + 0.71, 0.62, 1.27, 100.00 + 0.75, 0.53, 1.67, 100.00 + 0.51, 0.57, 1.33, 100.00 + 100.00, 100.00, 2.07, 100.00 + 100.00, 100.00, 100.00, 100.00 + 100.00, 100.00, 100.00, 100.00 + 100.00, 100.00, 100.00, 100.00 diff --git a/PARAM/SHMS/HODO/phodo.pos b/PARAM/SHMS/HODO/phodo.pos new file mode 100644 index 00000000..fc5d3077 --- /dev/null +++ b/PARAM/SHMS/HODO/phodo.pos @@ -0,0 +1,101 @@ +phodo_num_planes = 4 +phodo_plane_names = "1x 1y 2x 2y" + ppathlength_central = 1800 +; Z positions of hodoscopes + pscin_1x_zpos = 56.3-9.5 + pscin_1y_zpos = 56.3+9.5 + pscin_2x_zpos = 276.35-9.5 + pscin_2y_zpos = 276.35+9.5 + pscin_1x_dzpos = 1.0 + pscin_1y_dzpos = 1.0 + pscin_2x_dzpos = 1.0 + pscin_2y_dzpos = 1.0 + pscin_1x_size = 8.0 + pscin_1y_size = 8.0 + pscin_2x_size = 8.0 + pscin_2y_size = 8.0 + pscin_1x_spacing = 7.5 + pscin_1y_spacing = 7.5 + pscin_2x_spacing = 7.5 + pscin_2y_spacing = 7.5 +; Number of hodoscope paddles per layer + pscin_1x_nr = 13 + pscin_1y_nr = 13 + pscin_2x_nr = 14 + pscin_2y_nr = 21 +; X,Y positions of hodoscope paddles + pscin_1x_left = 50. + pscin_1x_right = -50 + pscin_1x_offset= 0.0 + pscin_1x_center= -42. + -35. + -28. + -21. + -14. + -7. + 0.0 + 7. + 14. + 21. + 28. + 35. + 42. +; + pscin_1y_top = -50 + pscin_1y_bot = 50 + pscin_1y_offset= 0.0 + pscin_1y_center= +42. + +35. + +28. + +21. + +14. + +7. + 0.0 + -7. + -14. + -21. + -28. + -35. + -42. + pscin_2x_left = 55. + pscin_2x_right = -55. + pscin_2x_offset= 0.0 + pscin_2x_center= -58.5 + -49.5 + -40.5 + -31.5 + -22.5 + -13.5 + -4.5 + 4.5 + 13.5 + 22.5 + 31.5 + 40.5 + 49.5 + 58.5 + pscin_2y_top = -55 + pscin_2y_bot = 55 + pscin_2y_offset= 0.0 + pscin_2y_center= 50. + 45. + 40. + 35. + 30. + 25. + 20. + 15. + 10. + 5. + 0. + -5. + -10. + -15. + -20. + -25. + -30. + -35. + -40. + -45. + -50. + diff --git a/PARAM/SHMS/HODO/ptofcal.param b/PARAM/SHMS/HODO/ptofcal.param new file mode 100644 index 00000000..3f0ae425 --- /dev/null +++ b/PARAM/SHMS/HODO/ptofcal.param @@ -0,0 +1,2 @@ +pdumptof=1 +pdumptof_filename="CALIBRATION/hodo_calib/pfort.37" diff --git a/PARAM/SHMS/NGCER/pngcer.param b/PARAM/SHMS/NGCER/pngcer.param new file mode 100644 index 00000000..09b551b1 --- /dev/null +++ b/PARAM/SHMS/NGCER/pngcer.param @@ -0,0 +1,24 @@ +pngcer_width = 50, 50 + +pngcer_adc_to_npe = 1/145.0, 1/122.0 + + +pngcer_chi2max = 50. +pngcer_beta_min = 0.8 +pngcer_beta_max = 1.2 +pngcer_et_min = 0.95 +pngcer_et_max = 5.0 +pngcer_mirror_zpos = 230 +; pngcer_region: 8 values for each region (1 per mirror + sum) +; central x,y,dx,dy values and x,y,dx,dy half widths. +pngcer_region = 30, -30, 0, + 0, 0, 0, + 0, 0, 0, + 0, 0, 0, + 20, 20, 60, + 30, 30, 30, + .1, .1, .1, + .1, .1, .1 + +pngcer_ped_limit = 1000,1000 + diff --git a/PARAM/TRIG/thms.param b/PARAM/TRIG/thms.param index 54d1f0e5..8bfc6951 100644 --- a/PARAM/TRIG/thms.param +++ b/PARAM/TRIG/thms.param @@ -1,8 +1,8 @@ t_hms_numAdc = 8 -t_hms_numTdc = 17 +t_hms_numTdc = 21 -; bar num: 1 2 3 4 5 6 7 8 +; bar num: 1 2 3 4 5 6 7 8 t_hms_adcNames = "hASUM hBSUM hCSUM hDSUM hPSHWR hSHWR hAERSUM hCERSUM" -; bar num: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 -t_hms_tdcNames = "h1X h1Y h2X h2Y h1T h2T hT1 hASUM hBSUM hCSUM hDSUM hPSHWRLO hPSHWRHI hSHWR hAERSUM hCERSUM hT2" +; bar num: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 +t_hms_tdcNames = "h1X h1Y h2X h2Y h1T h2T hT1 hASUM hBSUM hCSUM hDSUM hPSHWRLO hPSHWRHI hSHWR hAERSUM hCERSUM hT2 hDCREF1 hDCREF2 hDCREF3 hDCREF4" diff --git a/PARAM/TRIG/thms_raster.param b/PARAM/TRIG/thms_raster.param new file mode 100644 index 00000000..7888eccf --- /dev/null +++ b/PARAM/TRIG/thms_raster.param @@ -0,0 +1,7 @@ +t_hms_numAdc = 4 +t_hms_numTdc = 1 + +; bar num: 1 2 3 4 5 6 7 8 +t_hms_adcNames = "hFRXA hFRYA hFRXB hFRYB" +t_hms_tdcNames = "hFRXA" + diff --git a/PARAM/TRIG/tshms.param b/PARAM/TRIG/tshms.param new file mode 100644 index 00000000..d30f2aca --- /dev/null +++ b/PARAM/TRIG/tshms.param @@ -0,0 +1,8 @@ +t_shms_numAdc = 3 +t_shms_numTdc = 22 + +; bar num: 1 2 3 +t_shms_adcNames = "pAERSUM pHGCSUM pNGCSUM" + +; bar num: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 +t_shms_tdcNames = "pT1 pT2 p1X p1Y p2X p2Y p1T p2T pT3 pAERSUM pHGCSUM pNGCSUM pDCREF1 pDCREF2 pDCREF3 pDCREF4 pDCREF5 pDCREF6 pDCREF7 pDCREF8 pDCREF9 pDCREF10" \ No newline at end of file diff --git a/PARAM/TRIG/tshms_raster.param b/PARAM/TRIG/tshms_raster.param new file mode 100644 index 00000000..7898b042 --- /dev/null +++ b/PARAM/TRIG/tshms_raster.param @@ -0,0 +1,7 @@ +t_shms_numAdc = 4 +t_shms_numTdc = 1 + +; bar num: 1 2 3 4 5 6 7 8 +t_shms_adcNames = "pFRXA pFRYA pFRXB pFRYB" +t_shms_tdcNames = "pFRXA" + diff --git a/SCRIPTS/HMS/hhodo_analysis.C b/SCRIPTS/HMS/hhodo_analysis.C new file mode 100644 index 00000000..f4f0fb1d --- /dev/null +++ b/SCRIPTS/HMS/hhodo_analysis.C @@ -0,0 +1,140 @@ + +// Custom analysis of the hodoscope individual channels +// Author: Eric Pooser, pooser@jlab.org, 01/06/2017 +// Script adapted from hcana/examples/hhodrawhists.C + +//#include "TF1.h" + +#define NPLANES 4 +#define NSIDES 2 +#define NSIGNALS 2 +#define MAXBARS 16 + +TString SPECTROMETER = "H"; +TString DETECTOR = "hod"; + +TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"}; +Int_t nbars[NPLANES] = {16, 10, 16, 10}; +TString sides[NSIDES] = {"neg", "pos"}; +TString signals[NSIGNALS] = {"adc", "tdc"}; + +static const Double_t ADC_MIN = 0.0; +static const Double_t ADC_MAX = 25000.0; +static const Int_t ADC_NBINS = 2500; + +static const Double_t TDC_MIN = 0.0; +static const Double_t TDC_MAX = 8000.0; +static const Int_t TDC_NBINS = 800; + +Int_t nhits[NPLANES][NSIDES][NSIGNALS]; +Double_t paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS]; +Double_t values[NPLANES][NSIDES][NSIGNALS][MAXBARS]; + +TH1F *h[NPLANES*NSIDES*NSIGNALS*MAXBARS]; +TFile *rif, *rof; + +TTree *T; + +TString base_name, ndata_name, padlist_name, vallist_name; + +Int_t nbins, hmin, hmax, hindex, hindex_base; + +TString ibarname, title, name; + +Int_t ibar; +Double_t val; + +void hhodo_analysis(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; + } + } + + // Define root in/out files + rif = new TFile(Form("ROOTfiles/hhodo_htrig_replay_%d.root", RunNumber), "READ"); + rof = new TFile(Form("ROOTfiles/hhodo_analysis_%d.root", RunNumber), "RECREATE"); + rif->cd(); + + // Acquire tree from root in file + T = new TTree(); + T = (TTree*) rif->Get("T"); + + for(Int_t iplane = 0; iplane < NPLANES; iplane++) { + for(Int_t iside = 0; iside < NSIDES; iside++) { + for(Int_t isignal = 0; isignal < NSIGNALS; isignal++) { + + base_name = SPECTROMETER + "." + DETECTOR + "." + + plane_names[iplane] + "." + sides[iside] + signals[isignal]; + ndata_name = "Ndata." + base_name + "pad"; + padlist_name = base_name + "pad"; + vallist_name = base_name + "val"; + + // Set branch addresses + T->SetBranchAddress(ndata_name, &nhits[iplane][iside][isignal]); + T->SetBranchAddress(padlist_name, &paddles[iplane][iside][isignal][0]); + T->SetBranchAddress(vallist_name, &values[iplane][iside][isignal][0]); + + // Create histograms + // ADC and TDC histogram for each + if(signals[isignal] == "adc") + nbins = ADC_NBINS; hmin = ADC_MIN; hmax = ADC_MAX; + if(signals[isignal] == "tdc") + nbins = TDC_NBINS; hmin = TDC_MIN; hmax = TDC_MAX; + + rof->cd(); + for(Int_t ibar = 0; ibar < nbars[iplane]; ibar++) { + hindex = iplane*NSIDES*NSIGNALS*MAXBARS + + iside*NSIGNALS*MAXBARS + isignal*MAXBARS + ibar; + ibarname = Form("%d", ibar + 1); + title = "h" + plane_names[iplane] + ibarname + sides[iside] + + " " + signals[isignal]; + name = "h"; name += Form("%d", hindex); + // cout << name << " " << title << " " << nbins << " " << hmin << " " + // << hmax << endl; + h[hindex] = new TH1F(name, title, nbins, hmin, hmax); + } + rif->cd(); + + } // Signal loop + } // Side loop + } // Plane loop + + // Loop over the events, filling the histograms + for(Int_t ievent = 0, N = T->GetEntries(); ievent < N; ievent++) { + T->GetEntry(ievent); + for(Int_t iplane = 0; iplane < NPLANES; iplane++){ + for(Int_t iside = 0;iside < NSIDES; iside++) { + for(Int_t isignal = 0;isignal < NSIGNALS; isignal++) { + + hindex_base = iplane*NSIDES*NSIGNALS*MAXBARS + + iside*NSIGNALS*MAXBARS + isignal*MAXBARS; + + for(Int_t ihit = 0; ihit < nhits[iplane][iside][isignal]; ihit++) { + ibar = TMath::Nint(paddles[iplane][iside][isignal][ihit]) - 1; + val = values[iplane][iside][isignal][ihit]; + hindex = hindex_base + ibar; + h[hindex]->Fill(val); + } // Hit loop + } // Signal loop + } // Side loop + } // Plane loop + + // Display or save the histograms + + } + + // Write the root out file + rof->cd(); rof->Write(); + +} diff --git a/SCRIPTS/HMS/replay_epics_test.C b/SCRIPTS/HMS/replay_epics_test.C new file mode 100644 index 00000000..78a56f46 --- /dev/null +++ b/SCRIPTS/HMS/replay_epics_test.C @@ -0,0 +1,110 @@ +void replay_epics_test(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/hms_all_%05d.dat"; + const char* ROOTFileNamePattern = "ROOTfiles/epics_variable_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS trigger configuration + gHcParms->Load("PARAM/TRIG/thms.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/HMS/DETEC/hhodo_htrig.map"); + + // debug : testing epics variable in Ttree + // gHaEvtHandlers->Add (new THaEpicsEvtHandler("epics","HC EPICS event type 180")); + + // Set up the equipment to be analyzed. + THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS"); + gHaApps->Add(HMS); + // Add hodoscope to HMS apparatus + THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope"); + HMS->AddDetector(hod); + + // Add trigger apparatus + THaApparatus* TRG = new THcTrigApp("T", "TRG"); + gHaApps->Add(TRG); + // Add trigger detector to trigger apparatus + THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information"); + TRG->AddDetector(hms); + + // Add EPICS variables + // THaEpics* epics = new THcEpics("T", "Epics"); + // gHaApps->AddDetector(epics); + + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/HMS/HODO/hhodoana.def"); + analyzer->SetCutFile("DEF-files/HMS/HODO/hhodoana_cuts.def"); // optional + + analyzer->SetOdefFile("DEF-files/HMS/EPICS/epics.def"); // Call EPICS variables K.Park + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/HMS/replay_hcal_test_stand.C b/SCRIPTS/HMS/replay_hcal_test_stand.C new file mode 100644 index 00000000..25f09d30 --- /dev/null +++ b/SCRIPTS/HMS/replay_hcal_test_stand.C @@ -0,0 +1,94 @@ +void replay_hcal_test_stand(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/hms_all_%05d.dat"; + const char* ROOTFileNamePattern = "ROOTfiles/hcal_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/HMS/DETEC/hcal.map"); + + // Set up the equipment to be analyzed. + THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS"); + gHaApps->Add(HMS); + // Add hodoscope to HMS apparatus + THcShower* cal = new THcShower("cal", "Calorimeter"); + HMS->AddDetector(cal); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/HMS/CAL/hcalana.def"); + analyzer->SetCutFile("DEF-files/HMS/CAL/hcalana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/HMS/replay_hcer_test_stand.C b/SCRIPTS/HMS/replay_hcer_test_stand.C new file mode 100644 index 00000000..83c50244 --- /dev/null +++ b/SCRIPTS/HMS/replay_hcer_test_stand.C @@ -0,0 +1,104 @@ +void replay_hcer_test_stand(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/hms_all_%05d.dat"; + const char* ROOTFileNamePattern = "ROOTfiles/hcer_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS trigger configuration + gHcParms->Load("PARAM/TRIG/thms.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/HMS/DETEC/hcer_htrig.map"); + + // Set up the equipment to be analyzed. + THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS"); + gHaApps->Add(HMS); + // Add hodoscope to HMS apparatus + THcCherenkov* cer = new THcCherenkov("cer", "Heavy Gas Cherenkov"); + HMS->AddDetector(cer); + + // Add trigger apparatus + THaApparatus* TRG = new THcTrigApp("T", "TRG"); + gHaApps->Add(TRG); + // Add trigger detector to trigger apparatus + THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information"); + TRG->AddDetector(hms); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/HMS/CER/hcerana.def"); + analyzer->SetCutFile("DEF-files/HMS/CER/hcerana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/HMS/replay_hdc_test_stand.C b/SCRIPTS/HMS/replay_hdc_test_stand.C index a8bfad8a..f45e0c3f 100644 --- a/SCRIPTS/HMS/replay_hdc_test_stand.C +++ b/SCRIPTS/HMS/replay_hdc_test_stand.C @@ -16,8 +16,8 @@ void replay_hdc_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) { } // Create file name patterns. - const char* RunFileNamePattern = "raw/test_%d.dat"; - const char* ROOTFileNamePattern = "ROOTfiles/test_%d.root"; + const char* RunFileNamePattern = "raw/hms_all_%05d.dat"; + const char* ROOTFileNamePattern = "ROOTfiles/hdc_replay_%d.root"; // Add variables to global list. gHcParms->Define("gen_run_number", "Run Number", RunNumber); gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database"); @@ -31,27 +31,34 @@ void replay_hdc_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) { // Load params for HMS DC test stand configuration gHcParms->Load("PARAM/HMS/DC/hdc_test_stand.param"); + gHcParms->Load("PARAM/TRIG/thms.param"); // Load the Hall C style detector map gHcDetectorMap = new THcDetectorMap(); //gHcDetectorMap->Load(gHcParms->GetString("g_decode_map_filename")); - gHcDetectorMap->Load("MAPS/HMS/DETEC/hdc.map"); + gHcDetectorMap->Load("MAPS/HMS/DETEC/hdc_htrig.map"); // Set up the equipment to be analyzed. THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS"); gHaApps->Add(HMS); - // Add HMS drift chambers - HMS->AddDetector(new THcDC("dc", "Drift Chambers")); - - // Additional detectors: - //HMS->AddDetector(new THcHodoscope("hod", "Hodoscope")); - //HMS->AddDetector(new THcShower("cal", "Shower")); - // - //THcCherenkov* cherenkov = new THcCherenkov("cher", "Gas Cerenkov"); - //HMS->AddDetector(cherenkov); - //THcAerogel* aerogel = new THcAerogel("aero", "Aerogel Cerenkov"); - //HMS->AddDetector(aerogel); - // + // Add drift chambers to HMS apparatus + THcDC* dc = new THcDC("dc", "Drift Chambers"); + HMS->AddDetector(dc); + // Add hodoscope to HMS apparatus + // THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope"); + // HMS->AddDetector(hod); + + // Add trigger apparatus + THaApparatus* TRG = new THcTrigApp("T", "TRG"); + gHaApps->Add(TRG); + // Add trigger detector to trigger apparatus + THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information"); + TRG->AddDetector(hms); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + //THcScalerEvtHandler *hscaler = new THcScalerEvtHandler("HS", "HC scaler event type 0"); //hscaler->SetDebugFile("HScaler.txt"); //gHaEvtHandlers->Add(hscaler); diff --git a/SCRIPTS/HMS/replay_hhodo_test_stand.C b/SCRIPTS/HMS/replay_hhodo_test_stand.C new file mode 100644 index 00000000..867c771a --- /dev/null +++ b/SCRIPTS/HMS/replay_hhodo_test_stand.C @@ -0,0 +1,104 @@ +void replay_hhodo_test_stand(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/hms_all_%05d.dat"; + const char* ROOTFileNamePattern = "ROOTfiles/hhodo_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS trigger configuration + gHcParms->Load("PARAM/TRIG/thms.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/HMS/DETEC/hhodo_htrig.map"); + + // Set up the equipment to be analyzed. + THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS"); + gHaApps->Add(HMS); + // Add hodoscope to HMS apparatus + THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope"); + HMS->AddDetector(hod); + + // Add trigger apparatus + THaApparatus* TRG = new THcTrigApp("T", "TRG"); + gHaApps->Add(TRG); + // Add trigger detector to trigger apparatus + THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information"); + TRG->AddDetector(hms); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/HMS/HODO/hhodoana.def"); + analyzer->SetCutFile("DEF-files/HMS/HODO/hhodoana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/HMS/replay_hms.C b/SCRIPTS/HMS/replay_hms.C new file mode 100644 index 00000000..c51371b8 --- /dev/null +++ b/SCRIPTS/HMS/replay_hms.C @@ -0,0 +1,117 @@ +void replay_hms(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/hms_all_%05d.dat"; + const char* ROOTFileNamePattern = "ROOTfiles/hms_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS trigger configuration + gHcParms->Load("PARAM/TRIG/thms.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/HMS/DETEC/hms_stack.map"); + + // Add trigger apparatus + THaApparatus* TRG = new THcTrigApp("T", "TRG"); + gHaApps->Add(TRG); + // Add trigger detector to trigger apparatus + THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information"); + TRG->AddDetector(hms); + + // Set up the equipment to be analyzed. + THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS"); + gHaApps->Add(HMS); + // Add drift chambers to HMS apparatus + THcDC* dc = new THcDC("dc", "Drift Chambers"); + HMS->AddDetector(dc); + // Add hodoscope to HMS apparatus + THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope"); + HMS->AddDetector(hod); + // Add Cherenkov to HMS apparatus + THcCherenkov* cer = new THcCherenkov("cer", "Heavy Gas Cherenkov"); + HMS->AddDetector(cer); + // Add calorimeter to HMS apparatus + THcShower* cal = new THcShower("cal", "Calorimeter"); + HMS->AddDetector(cal); + + // Include golden track information + THaGoldenTrack* gtr = new THaGoldenTrack("H.gtr", "HMS Golden Track", "H"); + gHaPhysics->Add(gtr); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/HMS/GEN/hstackana.def"); + analyzer->SetCutFile("DEF-files/HMS/GEN/hstackana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/HMS/replay_hms_raster_simple.C b/SCRIPTS/HMS/replay_hms_raster_simple.C new file mode 100644 index 00000000..36843a12 --- /dev/null +++ b/SCRIPTS/HMS/replay_hms_raster_simple.C @@ -0,0 +1,100 @@ +void replay_hms_raster_simple(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/hms_all_%05d.dat"; + const char* ROOTFileNamePattern = "ROOTfiles/hms_raster_simple_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS trigger configuration + gHcParms->Load("PARAM/TRIG/thms_raster.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/HMS/DETEC/hraster_simple.map"); + + // Set up the equipment to be analyzed. + //THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS"); + //gHaApps->Add(HMS); + // Add hodoscope to HMS apparatus + //THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope"); + //HMS->AddDetector(hod); + + // Add trigger apparatus + THaApparatus* TRG = new THcTrigApp("T", "TRG"); + gHaApps->Add(TRG); + // Add trigger detector to trigger apparatus + THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information"); + TRG->AddDetector(hms); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/HMS/RASTER/hms_raster_simple.def"); + analyzer->SetCutFile("DEF-files/HMS/RASTER/hms_raster_simple_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/HMS/replay_hms_report.C b/SCRIPTS/HMS/replay_hms_report.C new file mode 100644 index 00000000..249057d5 --- /dev/null +++ b/SCRIPTS/HMS/replay_hms_report.C @@ -0,0 +1,121 @@ +void replay_hms_report(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/hms_all_%05d.dat"; + const char* ROOTFileNamePattern = "ROOTfiles/hms_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS trigger configuration + gHcParms->Load("PARAM/TRIG/thms.param"); + // Load params for HODO tof calibration. + // gHcParms->Load("PARAM/HMS/HODO/htofcal.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + if ( RunNumber > 243) { + gHcDetectorMap->Load("MAPS/HMS/DETEC/hms_stack_spring17_current_run.map"); + } else { + gHcDetectorMap->Load("MAPS/HMS/DETEC/hms_stack_spring17_run_00001_00243.map"); + } + + // Add trigger apparatus + THaApparatus* TRG = new THcTrigApp("T", "TRG"); + gHaApps->Add(TRG); + // Add trigger detector to trigger apparatus + THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information"); + TRG->AddDetector(hms); + + // Set up the equipment to be analyzed. + THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS"); + gHaApps->Add(HMS); + // Add drift chambers to HMS apparatus + THcDC* dc = new THcDC("dc", "Drift Chambers"); + HMS->AddDetector(dc); + // Add hodoscope to HMS apparatus + THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope"); + HMS->AddDetector(hod); + // Add Cherenkov to HMS apparatus + THcCherenkov* cer = new THcCherenkov("cer", "Heavy Gas Cherenkov"); + HMS->AddDetector(cer); + // Add calorimeter to HMS apparatus + THcShower* cal = new THcShower("cal", "Calorimeter"); + HMS->AddDetector(cal); + + // Include golden track information + THaGoldenTrack* gtr = new THaGoldenTrack("H.gtr", "HMS Golden Track", "H"); + gHaPhysics->Add(gtr); + + // Add handler for prestart event 125. + if ( RunNumber > 243) { + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + } + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/HMS/GEN/hstackana_report.def"); + analyzer->SetCutFile("DEF-files/HMS/GEN/hstackana_report_cuts.def"); // optional + + // File to record cuts accounting information + analyzer->SetSummaryFile(Form("REPORT_OUTPUT/HMS/summary_%05d.report", RunNumber)); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + analyzer->PrintReport("TEMPLATES/hstackana.template",Form("REPORT_OUTPUT/HMS/replay_hms_%05d.report", RunNumber)); +} diff --git a/SCRIPTS/HMS/replay_htrig_test_stand.C b/SCRIPTS/HMS/replay_htrig_test_stand.C new file mode 100644 index 00000000..70effe5a --- /dev/null +++ b/SCRIPTS/HMS/replay_htrig_test_stand.C @@ -0,0 +1,97 @@ +void replay_htrig_test_stand(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/hms_all_%05d.dat"; + const char* ROOTFileNamePattern = "ROOTfiles/htrig_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS DC test stand configuration + gHcParms->Load("PARAM/TRIG/thms.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/HMS/DETEC/htrig.map"); + + // Add trigger apparatus + THaApparatus* TRG = new THcTrigApp("T", "TRG"); + gHaApps->Add(TRG); + // Add trigger detector to trigger apparatus + THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information"); + TRG->AddDetector(hms); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/HMS/TRIG/htrigana.def"); + analyzer->SetCutFile("DEF-files/HMS/TRIG/htrigana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%d.report", RunNumber) + //); +} diff --git a/SCRIPTS/SHMS/replay_paero_test_stand.C b/SCRIPTS/SHMS/replay_paero_test_stand.C new file mode 100644 index 00000000..aabfbfa8 --- /dev/null +++ b/SCRIPTS/SHMS/replay_paero_test_stand.C @@ -0,0 +1,104 @@ +void replay_paero_test_stand(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/paero_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS trigger configuration + gHcParms->Load("PARAM/TRIG/tshms.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/SHMS/DETEC/paero_ptrig.map"); + + // Set up the equipment to be analyzed. + THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS"); + gHaApps->Add(SHMS); + // Add aeroscope to HMS apparatus + THcAerogel* aero = new THcAerogel("aero", "Aerogel"); + SHMS->AddDetector(aero); + + // 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); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/SHMS/AERO/paeroana.def"); + analyzer->SetCutFile("DEF-files/SHMS/AERO/paeroana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/SHMS/replay_pcal_test_stand.C b/SCRIPTS/SHMS/replay_pcal_test_stand.C new file mode 100644 index 00000000..278a8e54 --- /dev/null +++ b/SCRIPTS/SHMS/replay_pcal_test_stand.C @@ -0,0 +1,94 @@ +void replay_pcal_test_stand(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/pcal_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/SHMS/DETEC/pcal.map"); + + // Set up the equipment to be analyzed. + THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS"); + gHaApps->Add(SHMS); + // Add hodoscope to HMS apparatus + THcShower* cal = new THcShower("cal", "Calorimeter"); + SHMS->AddDetector(cal); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/SHMS/CAL/pcalana.def"); + analyzer->SetCutFile("DEF-files/SHMS/CAL/pcalana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/SHMS/replay_pdc_test_stand.C b/SCRIPTS/SHMS/replay_pdc_test_stand.C index 1cb39342..9fcbf867 100644 --- a/SCRIPTS/SHMS/replay_pdc_test_stand.C +++ b/SCRIPTS/SHMS/replay_pdc_test_stand.C @@ -16,8 +16,8 @@ void replay_pdc_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) { } // Create file name patterns. - const char* RunFileNamePattern = "raw/shms_dc_00%d.dat"; - const char* ROOTFileNamePattern = "ROOTfiles/shms_dc_00%d.root"; + const char* RunFileNamePattern = "raw/shms_all_%05d.dat"; + const char* ROOTFileNamePattern = "ROOTfiles/pdc_replay_%d.root"; // Add variables to global list. gHcParms->Define("gen_run_number", "Run Number", RunNumber); gHcParms->AddString("g_ctp_database_filename", "DBASE/standard.database"); @@ -29,6 +29,9 @@ void replay_pdc_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) { gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber); gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename")); + // Load params for HMS DC test stand configuration + gHcParms->Load("PARAM/SHMS/DC/pdc_test_stand.param"); + gHcDetectorMap = new THcDetectorMap(); //gHcDetectorMap->Load(gHcParms->GetString("g_decode_map_filename")); gHcDetectorMap->Load("MAPS/SHMS/DETEC/pdc.map"); @@ -36,10 +39,13 @@ void replay_pdc_test_stand(Int_t RunNumber=0, Int_t MaxEvent=0) { // Set up the equipment to be analyzed. THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS"); gHaApps->Add(SHMS); - // Add SHMS drift chambers SHMS->AddDetector(new THcDC("dc", "Drift Chambers")); + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + // Additional detectors: //HMS->AddDetector(new THcHodoscope("hod", "Hodoscope")); //HMS->AddDetector(new THcShower("cal", "Shower")); diff --git a/SCRIPTS/SHMS/replay_phgcer_test_stand.C b/SCRIPTS/SHMS/replay_phgcer_test_stand.C new file mode 100644 index 00000000..53e1a432 --- /dev/null +++ b/SCRIPTS/SHMS/replay_phgcer_test_stand.C @@ -0,0 +1,104 @@ +void replay_phgcer_test_stand(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/phgcer_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS trigger configuration + gHcParms->Load("PARAM/TRIG/tshms.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/SHMS/DETEC/phgcer_ptrig.map"); + + // Set up the equipment to be analyzed. + THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS"); + gHaApps->Add(SHMS); + // Add hodoscope to HMS apparatus + THcCherenkov* hgcer = new THcCherenkov("hgcer", "Heavy Gas Cherenkov"); + SHMS->AddDetector(hgcer); + + // 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); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/SHMS/HGCER/phgcerana.def"); + analyzer->SetCutFile("DEF-files/SHMS/HGCER/phgcerana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/SHMS/replay_phodo_test_stand.C b/SCRIPTS/SHMS/replay_phodo_test_stand.C new file mode 100644 index 00000000..77a0707d --- /dev/null +++ b/SCRIPTS/SHMS/replay_phodo_test_stand.C @@ -0,0 +1,104 @@ +void replay_phodo_test_stand(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/phodo_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS trigger configuration + gHcParms->Load("PARAM/TRIG/tshms.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/SHMS/DETEC/phodo_ptrig.map"); + + // Set up the equipment to be analyzed. + THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS"); + gHaApps->Add(SHMS); + // Add hodoscope to HMS apparatus + THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope"); + SHMS->AddDetector(hod); + + // 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); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/SHMS/HODO/phodoana.def"); + analyzer->SetCutFile("DEF-files/SHMS/HODO/phodoana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/SHMS/replay_pngcer_test_stand.C b/SCRIPTS/SHMS/replay_pngcer_test_stand.C new file mode 100644 index 00000000..5efeae36 --- /dev/null +++ b/SCRIPTS/SHMS/replay_pngcer_test_stand.C @@ -0,0 +1,104 @@ +void replay_pngcer_test_stand(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/pngcer_replay_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS trigger configuration + gHcParms->Load("PARAM/TRIG/tshms.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/SHMS/DETEC/pngcer_ptrig.map"); + + // Set up the equipment to be analyzed. + THaApparatus* SHMS = new THcHallCSpectrometer("P", "SHMS"); + gHaApps->Add(SHMS); + // Add hodoscope to HMS apparatus + THcCherenkov* ngcer = new THcCherenkov("ngcer", "Noble Gas Cherenkov"); + SHMS->AddDetector(ngcer); + + // 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); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/SHMS/NGCER/pngcerana.def"); + analyzer->SetCutFile("DEF-files/SHMS/NGCER/pngcerana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/SHMS/replay_ptrig_test_stand.C b/SCRIPTS/SHMS/replay_ptrig_test_stand.C new file mode 100644 index 00000000..4c046bfe --- /dev/null +++ b/SCRIPTS/SHMS/replay_ptrig_test_stand.C @@ -0,0 +1,97 @@ +void replay_ptrig_test_stand(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/ptrig_replay_%.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS DC test stand configuration + gHcParms->Load("PARAM/TRIG/tshms.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/SHMS/DETEC/ptrig.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); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/SHMS/TRIG/ptrigana.def"); + analyzer->SetCutFile("DEF-files/SHMS/TRIG/ptrigana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/SHMS/replay_shms.C b/SCRIPTS/SHMS/replay_shms.C new file mode 100644 index 00000000..b5c23b70 --- /dev/null +++ b/SCRIPTS/SHMS/replay_shms.C @@ -0,0 +1,126 @@ +void replay_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_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for SHMS trigger configuration + gHcParms->Load("PARAM/TRIG/tshms.param"); + + // Load custom tracking params + //gHcParms->Load("PARAM/SHMS/GEN/hgoldtrack.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/SHMS/DETEC/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); + + // Include golden track information + THaGoldenTrack* gtr = new THaGoldenTrack("P.gtr", "SHMS Golden Track", "P"); + gHaPhysics->Add(gtr); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/SHMS/GEN/pstackana.def"); + analyzer->SetCutFile("DEF-files/SHMS/GEN/pstackana_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_shms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/SHMS/replay_shms_raster_simple.C b/SCRIPTS/SHMS/replay_shms_raster_simple.C new file mode 100644 index 00000000..0310699e --- /dev/null +++ b/SCRIPTS/SHMS/replay_shms_raster_simple.C @@ -0,0 +1,100 @@ +void replay_shms_raster_simple(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_raster_simple_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for HMS trigger configuration + gHcParms->Load("PARAM/TRIG/tshms_raster.param"); + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/SHMS/DETEC/praster_simple.map"); + + // Set up the equipment to be analyzed. + //THaApparatus* HMS = new THcHallCSpectrometer("H", "HMS"); + //gHaApps->Add(HMS); + // Add hodoscope to HMS apparatus + //THcHodoscope* hod = new THcHodoscope("hod", "Hodoscope"); + //HMS->AddDetector(hod); + + // 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 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/SHMS/RASTER/shms_raster_simple.def"); + analyzer->SetCutFile("DEF-files/SHMS/RASTER/shms_raster_simple_cuts.def"); // optional + + // File to record cuts accounting information + //analyzer->SetSummaryFile("summary_example.log"); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + //analyzer->PrintReport( // optional + // "TEMPLATES/dcana.template", + // Form("REPORT_OUTPUT/replay_hms_%05d.report", RunNumber) + //); +} diff --git a/SCRIPTS/SHMS/replay_shms_report.C b/SCRIPTS/SHMS/replay_shms_report.C new file mode 100644 index 00000000..42549df6 --- /dev/null +++ b/SCRIPTS/SHMS/replay_shms_report.C @@ -0,0 +1,124 @@ +void replay_shms_report(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_%d.root"; + // Add variables to global list. + gHcParms->Define("gen_run_number", "Run Number", RunNumber); + gHcParms->AddString("g_ctp_database_filename", "DBASE/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")); + + // Load params for SHMS trigger configuration + gHcParms->Load("PARAM/TRIG/tshms.param"); + + // Load params for HODO tof calibration. + //gHcParms->Load("PARAM/SHMS/HODO/ptofcal.param"); + + + // Load the Hall C style detector map + gHcDetectorMap = new THcDetectorMap(); + gHcDetectorMap->Load("MAPS/SHMS/DETEC/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); + + // Include golden track information + THaGoldenTrack* gtr = new THaGoldenTrack("P.gtr", "SHMS Golden Track", "P"); + gHaPhysics->Add(gtr); + + // Add handler for prestart event 125. + THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125"); + gHaEvtHandlers->Add(ev125); + + // 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); + + // 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); + analyzer->SetCountMode(2); // 0 = counter is # of physics triggers + // 1 = counter is # of all decode reads + // 2 = counter is event number + analyzer->SetEvent(event); + analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + analyzer->SetOutFile(ROOTFileName.Data()); + analyzer->SetOdefFile("DEF-files/SHMS/GEN/pstackana_report.def"); + analyzer->SetCutFile("DEF-files/SHMS/GEN/pstackana_report_cuts.def"); // optional + + // File to record cuts accounting information + analyzer->SetSummaryFile(Form("REPORT_OUTPUT/SHMS/summary_%05d.report", RunNumber)); // optional + + // Start the actual analysis. + analyzer->Process(run); + // Create report file from template. + analyzer->PrintReport("TEMPLATES/pstackana.template",Form("REPORT_OUTPUT/SHMS/replay_shms_%05d.report", RunNumber)); +} diff --git a/TEMPLATES/dcana.template b/TEMPLATES/dcana.template index d09f84e6..c8bf3424 100644 --- a/TEMPLATES/dcana.template +++ b/TEMPLATES/dcana.template @@ -1 +1,49 @@ Standalone drift chamber analysis report template + +hmsDC1Planes6 {hmsDC1Planes6hits.npassed} +hmsDC2Planes6 {hmsDC2Planes6hits.npassed} + +hmsDC1x1Planes5 {hmsDC1_5hits_x1.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_x1.npassed} +hmsDC1y1Planes5 {hmsDC1_5hits_y1.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_y1.npassed} +hmsDC1u1Planes5 {hmsDC1_5hits_u1.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_u1.npassed} +hmsDC1v1Planes5 {hmsDC1_5hits_v1.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_v1.npassed} +hmsDC1x2Planes5 {hmsDC1_5hits_y2.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_y2.npassed} +hmsDC1y2Planes5 {hmsDC1_5hits_x2.npassed} {hmsDC1Planes6hits.npassed/hmsDC1_5hits_x2.npassed} + +hmsDC2x1Planes5 {hmsDC2_5hits_x1.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_x1.npassed} +hmsDC2y1Planes5 {hmsDC2_5hits_y1.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_y1.npassed} +hmsDC2u1Planes5 {hmsDC2_5hits_u1.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_u1.npassed} +hmsDC2v1Planes5 {hmsDC2_5hits_v1.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_v1.npassed} +hmsDC2x2Planes5 {hmsDC2_5hits_y2.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_y2.npassed} +hmsDC2y2Planes5 {hmsDC2_5hits_x2.npassed} {hmsDC2Planes6hits.npassed/hmsDC2_5hits_x2.npassed} + + +***************************** +*HMS TRACKING EFFICIENCIES * +***************************** +htrig : {hmscoin_event.npassed} +hhitslt = passed hits/cham : {hmsHitsLt.npassed} +hhitsplanes = +planes >= 5/6 : {hmsHitsPlanes.npassed} +hhitsplanessps = + sps : {hSpacePoints.npassed} +hhitsplanesspsstubs +stub : {hSpacePointsStub.npassed} +hsfoundtrack : {hFoundTrack.npassed} +hscleantrack : {hCleanTrack.npassed} +hstublt = passed stub tests : {hStubLT.npassed} +h1hitslt : {hms1HitsLt.npassed} +h2hitslt : {hms2HitsLt.npassed} +h1planesgt : {hmsDC1PlanesGT.npassed} +h2planesgt : {hmsDC2PlanesGT.npassed} +hplanesgt = gt 5 planes/cham : {hmsPlanseGT.npassed} +f1hspacepoints : {f1HSpacePoints.npassed} +f2hspacepoints : {f2HSpacePoints.npassed} +htest1=p hits/planes, f sp : {hTest1.npassed} +htest2=p sp, f stubs : {hTest2.npassed} +hdid : {HMSScinDid.npassed} +hdide : {HMSScinDide.npassed} +hdidh : {HMSScinDidh.npassed} +hscinshould : {HMSScinShould.npassed} +hscinshoulde : {HMSScinShoulde.npassed} +hscinshouldh : {HMSScinShouldh.npassed} +SING FID TRACK EFFIC : {HMSScinDid.npassed/(HMSScinShould.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShould.npassed-HMSScinDid.npassed)/(HMSScinShould.npassed+.0001)):%8.4f} +E SING FID TRACK EFFIC : {HMSScinDide.npassed/(HMSScinShoulde.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShoulde.npassed-HMSScinDide.npassed)/(HMSScinShoulde.npassed+.0001)):%8.4f} +HADRON SING FID TRACK EFFIC : {HMSScinDidh.npassed/(HMSScinShouldh.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShouldh.npassed-HMSScinDidh.npassed)/(HMSScinShouldh.npassed+.0001)):%8.4f} diff --git a/TEMPLATES/hstackana.template b/TEMPLATES/hstackana.template new file mode 100644 index 00000000..0bffaf19 --- /dev/null +++ b/TEMPLATES/hstackana.template @@ -0,0 +1,64 @@ +Run #{gen_run_number} + Standalone drift chamber analysis report template +The names of the HMS drift chamber planes are: +{hdc_plane_names} +Horizontal drift chamber z positions: +Chamber 1: {hdc_zpos[0]:%6.2f} {hdc_zpos[1]:%6.2f} {hdc_zpos[2]:%6.2f} + {hdc_zpos[3]:%6.2f} {hdc_zpos[4]:%6.2f} {hdc_zpos[5]:%6.2f} +Chamber 2: {hdc_zpos[6]:%6.2f} {hdc_zpos[7]:%6.2f} {hdc_zpos[8]:%6.2f} + {hdc_zpos[9]:%6.2f} {hdc_zpos[10]:%6.2f} {hdc_zpos[11]:%6.2f} + +All triggers: {all_trigs.npassed} + +hmsDC1Planes_large Counts: {hmsDC1Planes_large.npassed} /all_trigs : {hmsDC1Planes_large.npassed/all_trigs.npassed} +hmsDC2Planes_large Counts: {hmsDC2Planes_large.npassed} /all_trigs : {hmsDC2Planes_large.npassed/all_trigs.npassed} + +hmsDC1Planes6 Counts: {hmsDC1Planes6hits.npassed} /all_trigs : {hmsDC1Planes6hits.npassed/all_trigs.npassed} +hmsDC2Planes6 Counts: {hmsDC2Planes6hits.npassed} /all_trigs : {hmsDC2Planes6hits.npassed/all_trigs.npassed} + +hmsDC1x1Planes5 Counts: {hmsDC1_5hits_x1.npassed} eff : {hmsDC1_6hits_x1.npassed/hmsDC1_5hits_x1.npassed} +hmsDC1u1Planes5 Counts: {hmsDC1_5hits_u1.npassed} eff : {hmsDC1_6hits_u1.npassed/hmsDC1_5hits_u1.npassed} +hmsDC1y2Planes5 Counts: {hmsDC1_5hits_y2.npassed} eff : {hmsDC1_6hits_y2.npassed/hmsDC1_5hits_y2.npassed} +hmsDC1v1Planes5 Counts: {hmsDC1_5hits_v1.npassed} eff : {hmsDC1_6hits_v1.npassed/hmsDC1_5hits_v1.npassed} +hmsDC1y1Planes5 Counts: {hmsDC1_5hits_y1.npassed} eff : {hmsDC1_6hits_y1.npassed/hmsDC1_5hits_y1.npassed} +hmsDC1x2Planes5 Counts: {hmsDC1_5hits_x2.npassed} eff : {hmsDC1_6hits_x2.npassed/hmsDC1_5hits_x2.npassed} + + +hmsDC2x1Planes5 Counts: {hmsDC2_5hits_x1.npassed} eff : {hmsDC2_6hits_x1.npassed/hmsDC2_5hits_x1.npassed} +hmsDC2u1Planes5 Counts: {hmsDC2_5hits_u1.npassed} eff : {hmsDC2_6hits_u1.npassed/hmsDC2_5hits_u1.npassed} +hmsDC2y2Planes5 Counts: {hmsDC2_5hits_y2.npassed} eff : {hmsDC2_6hits_y2.npassed/hmsDC2_5hits_y2.npassed} +hmsDC2v1Planes5 Counts: {hmsDC2_5hits_v1.npassed} eff : {hmsDC2_6hits_v1.npassed/hmsDC2_5hits_v1.npassed} +hmsDC2y1Planes5 Counts: {hmsDC2_5hits_y1.npassed} eff : {hmsDC2_6hits_y1.npassed/hmsDC2_5hits_y1.npassed} +hmsDC2x2Planes5 Counts: {hmsDC2_5hits_x2.npassed} eff : {hmsDC2_6hits_x2.npassed/hmsDC2_5hits_x2.npassed} + + + +***************************** +*HMS TRACKING EFFICIENCIES * +***************************** +htrig : {hmscoin_event.npassed} +hhitslt = passed hits/cham : {hmsHitsLt.npassed} +hhitsplanes = +planes >= 5/6 : {hmsHitsPlanes.npassed} +hhitsplanessps = + sps : {hSpacePoints.npassed} +hhitsplanesspsstubs +stub : {hSpacePointsStub.npassed} +hsfoundtrack : {hFoundTrack.npassed} +hscleantrack : {hCleanTrack.npassed} +hstublt = passed stub tests : {hStubLT.npassed} +h1hitslt : {hms1HitsLt.npassed} +h2hitslt : {hms2HitsLt.npassed} +h1planesgt : {hmsDC1PlanesGT.npassed} +h2planesgt : {hmsDC2PlanesGT.npassed} +hplanesgt = gt 5 planes/cham : {hmsPlanesGT.npassed} +f1hspacepoints : {f1HSpacePoints.npassed} +f2hspacepoints : {f2HSpacePoints.npassed} +htest1=p hits/planes, f sp : {hTest1.npassed} +htest2=p sp, f stubs : {hTest2.npassed} +hdid : {HMSScinDid.npassed} +hdide : {HMSScinDide.npassed} +hdidh : {HMSScinDidh.npassed} +hscinshould : {HMSScinShould.npassed} +hscinshoulde : {HMSScinShoulde.npassed} +hscinshouldh : {HMSScinShouldh.npassed} +SING FID TRACK EFFIC : {HMSScinDid.npassed/(HMSScinShould.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShould.npassed-HMSScinDid.npassed)/(HMSScinShould.npassed+.0001)):%8.4f} +E SING FID TRACK EFFIC : {HMSScinDide.npassed/(HMSScinShoulde.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShoulde.npassed-HMSScinDide.npassed)/(HMSScinShoulde.npassed+.0001)):%8.4f} +HADRON SING FID TRACK EFFIC : {HMSScinDidh.npassed/(HMSScinShouldh.npassed+0.0001):%8.4f} +- {(sqrt(HMSScinShouldh.npassed-HMSScinDidh.npassed)/(HMSScinShouldh.npassed+.0001)):%8.4f} diff --git a/TEMPLATES/pstackana.template b/TEMPLATES/pstackana.template new file mode 100644 index 00000000..e1ce7848 --- /dev/null +++ b/TEMPLATES/pstackana.template @@ -0,0 +1,64 @@ +Run #{gen_run_number} + Standalone drift chamber analysis report template +The names of the HMS drift chamber planes are: +{pdc_plane_names} +Horizontal drift chamber z positions: +Chamber 1: {pdc_zpos[0]:%6.2f} {pdc_zpos[1]:%6.2f} {pdc_zpos[2]:%6.2f} + {pdc_zpos[3]:%6.2f} {pdc_zpos[4]:%6.2f} {pdc_zpos[5]:%6.2f} +Chamber 2: {pdc_zpos[6]:%6.2f} {pdc_zpos[7]:%6.2f} {pdc_zpos[8]:%6.2f} + {pdc_zpos[9]:%6.2f} {pdc_zpos[10]:%6.2f} {pdc_zpos[11]:%6.2f} + +All triggers: {all_trigs.npassed} + +shmsDC1Planes_large Counts: {shmsDC1Planes_large.npassed} /all_trigs : {shmsDC1Planes_large.npassed/all_trigs.npassed} +shmsDC2Planes_large Counts: {shmsDC2Planes_large.npassed} /all_trigs : {shmsDC2Planes_large.npassed/all_trigs.npassed} + +shmsDC1Planes6 Counts: {shmsDC1Planes6hits.npassed} /all_trigs : {shmsDC1Planes6hits.npassed/all_trigs.npassed} +shmsDC2Planes6 Counts: {shmsDC2Planes6hits.npassed} /all_trigs : {shmsDC2Planes6hits.npassed/all_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} + + +***************************** +*shms TRACKING EFFICIENCIES * +***************************** +htrig : {shmscoin_event.npassed} +hhitslt = passed hits/cham : {shmsHitsLt.npassed} +hhitsplanes = +planes >= 5/6 : {shmsHitsPlanes.npassed} +hhitsplanessps = + sps : {hSpacePoints.npassed} +hhitsplanesspsstubs +stub : {hSpacePointsStub.npassed} +hsfoundtrack : {hFoundTrack.npassed} +hscleantrack : {hCleanTrack.npassed} +hstublt = passed stub tests : {hStubLT.npassed} +h1hitslt : {shms1HitsLt.npassed} +h2hitslt : {shms2HitsLt.npassed} +h1planesgt : {shmsDC1PlanesGT.npassed} +h2planesgt : {shmsDC2PlanesGT.npassed} +hplanesgt = gt 5 planes/cham : {shmsPlanesGT.npassed} +f1hspacepoints : {f1HSpacePoints.npassed} +f2hspacepoints : {f2HSpacePoints.npassed} +htest1=p hits/planes, f sp : {hTest1.npassed} +htest2=p sp, f stubs : {hTest2.npassed} +hdid : {shmsScinDid.npassed} +hdide : {shmsScinDide.npassed} +hdidh : {shmsScinDidh.npassed} +hscinshould : {shmsScinShould.npassed} +hscinshoulde : {shmsScinShoulde.npassed} +hscinshouldh : {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} diff --git a/onlineGUI/.gitignore b/onlineGUI/.gitignore index 504e5397..b7de8db4 100644 --- a/onlineGUI/.gitignore +++ b/onlineGUI/.gitignore @@ -1,3 +1,6 @@ online *.o *.d +*# +onlineDict.C +.root_history diff --git a/onlineGUI/.rootrc b/onlineGUI/.rootrc new file mode 100644 index 00000000..22df0bce --- /dev/null +++ b/onlineGUI/.rootrc @@ -0,0 +1,2 @@ +Rint.History: .root_history +Unix.*.Root.MacroPath: .:$(ROOTSYS)/macros:./Macros diff --git a/onlineGUI/Config/HMS/GEN/hallc_onlana.cfg b/onlineGUI/Config/HMS/GEN/hallc_onlana.cfg new file mode 100644 index 00000000..f9dc3e1a --- /dev/null +++ b/onlineGUI/Config/HMS/GEN/hallc_onlana.cfg @@ -0,0 +1,200 @@ +protorootfile ../ROOTfiles/hms_replay_XXXXX.root +guicolor orange +canvassize 1600 800 +#canvassize 800 800 +newpage 2 2 +title HMS Drift Chamber Reference Times +hdc_ref1 +hdc_ref2 +hdc_ref3 +hdc_ref4 +newpage 4 3 +title HMS Drift Chamber Wire Maps +hdc1x1_wirenum +hdc2x1_wirenum +hdc1y1_wirenum +hdc2y1_wirenum +hdc1u1_wirenum +hdc2u1_wirenum +hdc1v1_wirenum +hdc2v1_wirenum +hdc1y2_wirenum +hdc2y2_wirenum +hdc1x2_wirenum +hdc2x2_wirenum +newpage 4 3 logz +title HMS Drift Chamber TDC Times +hdc1x1_wirenum_vs_tdc -nostat +hdc2x1_wirenum_vs_tdc -nostat +hdc1y1_wirenum_vs_tdc -nostat +hdc2y1_wirenum_vs_tdc -nostat +hdc1u1_wirenum_vs_tdc -nostat +hdc2u1_wirenum_vs_tdc -nostat +hdc1v1_wirenum_vs_tdc -nostat +hdc2v1_wirenum_vs_tdc -nostat +hdc1y2_wirenum_vs_tdc -nostat +hdc2y2_wirenum_vs_tdc -nostat +hdc1x2_wirenum_vs_tdc -nostat +hdc2x2_wirenum_vs_tdc -nostat +newpage 4 3 +title HMS Drift Chamber Residuals +hdc1x1_wirenum_vs_resid -nostat +hdc2x1_wirenum_vs_resid -nostat +hdc1y1_wirenum_vs_resid -nostat +hdc2y1_wirenum_vs_resid -nostat +hdc1u1_wirenum_vs_resid -nostat +hdc2u1_wirenum_vs_resid -nostat +hdc1v1_wirenum_vs_resid -nostat +hdc2v1_wirenum_vs_resid -nostat +hdc1y2_wirenum_vs_resid -nostat +hdc2y2_wirenum_vs_resid -nostat +hdc1x2_wirenum_vs_resid -nostat +hdc2x2_wirenum_vs_resid -nostat +newpage 2 1 logz +title HMS Drift Chamber Focal Plane +hdc_xfp_vs_yxp -nostat +hdc_xfpp_vs_yxpp -nostat +newpage 2 3 logz +title HMS Hodoscope 1X+ (Left) +hhodo_1x_pos_adc_occu -nostat +hhodo_1x_pos_tdc_occu -nostat +hhodo_1x_pos_ped_vs_pad -nostat +hhodo_1x_pos_pi_vs_pad -nostat +hhodo_1x_pos_pamp_vs_pad -nostat +hhodo_1x_pos_tdc_time_vs_pad -nostat +newpage 2 3 logz +title HMS Hodoscope 1X- (Left) +hhodo_1x_neg_adc_occu -nostat +hhodo_1x_neg_tdc_occu -nostat +hhodo_1x_neg_ped_vs_pad -nostat +hhodo_1x_neg_pi_vs_pad -nostat +hhodo_1x_neg_pamp_vs_pad -nostat +hhodo_1x_neg_tdc_time_vs_pad -nostat +newpage 2 3 logz +title HMS Hodoscope 1Y+ (Left) +hhodo_1y_pos_adc_occu -nostat +hhodo_1y_pos_tdc_occu -nostat +hhodo_1y_pos_ped_vs_pad -nostat +hhodo_1y_pos_pi_vs_pad -nostat +hhodo_1y_pos_pamp_vs_pad -nostat +hhodo_1y_pos_tdc_time_vs_pad -nostat +newpage 2 3 logz +title HMS Hodoscope 1Y- (Left) +hhodo_1y_neg_adc_occu -nostat +hhodo_1y_neg_tdc_occu -nostat +hhodo_1y_neg_ped_vs_pad -nostat +hhodo_1y_neg_pi_vs_pad -nostat +hhodo_1y_neg_pamp_vs_pad -nostat +hhodo_1y_neg_tdc_time_vs_pad -nostat +newpage 2 3 logz +title HMS Hodoscope 2X+ (Left) +hhodo_2x_pos_adc_occu -nostat +hhodo_2x_pos_tdc_occu -nostat +hhodo_2x_pos_ped_vs_pad -nostat +hhodo_2x_pos_pi_vs_pad -nostat +hhodo_2x_pos_pamp_vs_pad -nostat +hhodo_2x_pos_tdc_time_vs_pad -nostat +newpage 2 3 logz +title HMS Hodoscope 2X- (Left) +hhodo_2x_neg_adc_occu -nostat +hhodo_2x_neg_tdc_occu -nostat +hhodo_2x_neg_ped_vs_pad -nostat +hhodo_2x_neg_pi_vs_pad -nostat +hhodo_2x_neg_pamp_vs_pad -nostat +hhodo_2x_neg_tdc_time_vs_pad -nostat +newpage 2 3 logz +title HMS Hodoscope 2Y+ (Left) +hhodo_2y_pos_adc_occu -nostat +hhodo_2y_pos_tdc_occu -nostat +hhodo_2y_pos_ped_vs_pad -nostat +hhodo_2y_pos_pi_vs_pad -nostat +hhodo_2y_pos_pamp_vs_pad -nostat +hhodo_2y_pos_tdc_time_vs_pad -nostat +newpage 2 3 logz +title HMS Hodoscope 2Y- (Left) +hhodo_2y_neg_adc_occu -nostat +hhodo_2y_neg_tdc_occu -nostat +hhodo_2y_neg_ped_vs_pad -nostat +hhodo_2y_neg_pi_vs_pad -nostat +hhodo_2y_neg_pamp_vs_pad -nostat +hhodo_2y_neg_tdc_time_vs_pad -nostat +newpage 2 2 logz +title HMS Heavy Gas Cherenkov +hgcer_occu -nostat +hgcer_ped_vs_cntr -nostat +hgcer_pi_vs_cntr -nostat +hgcer_pamp_vs_cntr -nostat +newpage 2 2 logz +title HMS Pre-Shower Layer A Positive (Left) +hcal_hA_pos_occu -nostat +hcal_hA_pos_ped_blk -nostat +hcal_hA_pos_pi_blk -nostat +hcal_hA_pos_pamp_blk -nostat +newpage 2 2 logz +title HMS Pre-Shower Layer A Negative (Right) +hcal_hA_neg_occu -nostat +hcal_hA_neg_ped_blk -nostat +hcal_hA_neg_pi_blk -nostat +hcal_hA_neg_pamp_blk -nostat +newpage 2 2 logz +title HMS Pre-Shower Layer B Positive (Left) +hcal_hB_pos_occu -nostat +hcal_hB_pos_ped_blk -nostat +hcal_hB_pos_pi_blk -nostat +hcal_hB_pos_pamp_blk -nostat +newpage 2 2 logz +title HMS Pre-Shower Layer B Negative (Right) +hcal_hB_neg_occu -nostat +hcal_hB_neg_ped_blk -nostat +hcal_hB_neg_pi_blk -nostat +hcal_hB_neg_pamp_blk -nostat +newpage 2 2 logz +title HMS Shower Layer C Negative (Right) +hcal_hC_occu -nostat +hcal_hC_ped_blk -nostat +hcal_hC_pi_blk -nostat +hcal_hC_pamp_blk -nostat +newpage 2 2 logz +title HMS Shower Layer D Negative (Right) +hcal_hD_occu -nostat +hcal_hD_ped_blk -nostat +hcal_hD_pi_blk -nostat +hcal_hD_pamp_blk -nostat +newpage 2 2 logy +title HMS Cherenkov Sum +htrig_hCERsum_pped +htrig_hCERsum_pint +htrig_hCERsum_pamp +htrig_hCERsum_tdc_time +newpage 4 4 logy +title HMS Calorimeter Layer Sums +htrig_hAsum_pped +htrig_hBsum_pped +htrig_hCsum_pped +htrig_hDsum_pped +htrig_hAsum_pint +htrig_hBsum_pint +htrig_hCsum_pint +htrig_hDsum_pint +htrig_hAsum_pamp +htrig_hBsum_pamp +htrig_hCsum_pamp +htrig_hDsum_pamp +htrig_hAsum_tdc_time +htrig_hBsum_tdc_time +htrig_hCsum_tdc_time +htrig_hDsum_tdc_time +newpage 2 3 logy +title HMS Shower Sums +htrig_hpreShwr_adc_pped +htrig_hshwr_adc_pped +htrig_hpreShwr_adc_pint +htrig_hshwr_adc_pint +htrig_hpreShwr_adc_pamp +htrig_hshwr_adc_pamp +newpage 3 1 logy +title HMS Shower TDC Times +htrig_hpreShwrLow_tdc +htrig_hpreShwrHigh_tdc +htrig_hshwr_tdc + diff --git a/onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg b/onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg new file mode 100644 index 00000000..3f6f3f06 --- /dev/null +++ b/onlineGUI/Config/HMS/HODO/good_hhodo_2d.cfg @@ -0,0 +1,363 @@ +protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 4 4 +title X1 Neg ADc v TDC +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1x16") +newpage 4 4 +title X1 Pos ADc v TDC +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1x16") +newpage 3 4 +title Y1 Neg ADc v TDC +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg1y10") +newpage 3 4 +title Y1 Pos ADc v TDC +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos1y10") +newpage 4 4 +title X2 Neg ADc v TDC +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2x16") +newpage 4 4 +title X2 Pos ADc v TDC +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2x16") +newpage 3 4 +title Y2 Neg ADc v TDC +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcneg2y10") +newpage 3 4 +title Y2 Pos ADc v TDC +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvtdcpos2y10") +newpage 4 4 +title X1 Eff Neg PMT +macro Macros/hodo_efficiency.C("uhdidneg1x1","uhshouldneg1x1") +macro Macros/hodo_efficiency.C("uhdidneg1x2","uhshouldneg1x2") +macro Macros/hodo_efficiency.C("uhdidneg1x3","uhshouldneg1x3") +macro Macros/hodo_efficiency.C("uhdidneg1x4","uhshouldneg1x4") +macro Macros/hodo_efficiency.C("uhdidneg1x5","uhshouldneg1x5") +macro Macros/hodo_efficiency.C("uhdidneg1x6","uhshouldneg1x6") +macro Macros/hodo_efficiency.C("uhdidneg1x7","uhshouldneg1x7") +macro Macros/hodo_efficiency.C("uhdidneg1x8","uhshouldneg1x8") +macro Macros/hodo_efficiency.C("uhdidneg1x9","uhshouldneg1x9") +macro Macros/hodo_efficiency.C("uhdidneg1x10","uhshouldneg1x10") +macro Macros/hodo_efficiency.C("uhdidneg1x11","uhshouldneg1x11") +macro Macros/hodo_efficiency.C("uhdidneg1x12","uhshouldneg1x12") +macro Macros/hodo_efficiency.C("uhdidneg1x13","uhshouldneg1x13") +macro Macros/hodo_efficiency.C("uhdidneg1x14","uhshouldneg1x14") +macro Macros/hodo_efficiency.C("uhdidneg1x15","uhshouldneg1x15") +macro Macros/hodo_efficiency.C("uhdidneg1x16","uhshouldneg1x16") +newpage 4 4 +title X1 Eff Pos PMT +macro Macros/hodo_efficiency.C("uhdidpos1x1","uhshouldpos1x1") +macro Macros/hodo_efficiency.C("uhdidpos1x2","uhshouldpos1x2") +macro Macros/hodo_efficiency.C("uhdidpos1x3","uhshouldpos1x3") +macro Macros/hodo_efficiency.C("uhdidpos1x4","uhshouldpos1x4") +macro Macros/hodo_efficiency.C("uhdidpos1x5","uhshouldpos1x5") +macro Macros/hodo_efficiency.C("uhdidpos1x6","uhshouldpos1x6") +macro Macros/hodo_efficiency.C("uhdidpos1x7","uhshouldpos1x7") +macro Macros/hodo_efficiency.C("uhdidpos1x8","uhshouldpos1x8") +macro Macros/hodo_efficiency.C("uhdidpos1x9","uhshouldpos1x9") +macro Macros/hodo_efficiency.C("uhdidpos1x10","uhshouldpos1x10") +macro Macros/hodo_efficiency.C("uhdidpos1x11","uhshouldpos1x11") +macro Macros/hodo_efficiency.C("uhdidpos1x12","uhshouldpos1x12") +macro Macros/hodo_efficiency.C("uhdidpos1x13","uhshouldpos1x13") +macro Macros/hodo_efficiency.C("uhdidpos1x14","uhshouldpos1x14") +macro Macros/hodo_efficiency.C("uhdidpos1x15","uhshouldpos1x15") +macro Macros/hodo_efficiency.C("uhdidpos1x16","uhshouldpos1x16") +newpage 3 4 +title Y1 Eff Neg PMT +macro Macros/hodo_efficiency.C("uhdidneg1y1","uhshouldneg1y1") +macro Macros/hodo_efficiency.C("uhdidneg1y2","uhshouldneg1y2") +macro Macros/hodo_efficiency.C("uhdidneg1y3","uhshouldneg1y3") +macro Macros/hodo_efficiency.C("uhdidneg1y4","uhshouldneg1y4") +macro Macros/hodo_efficiency.C("uhdidneg1y5","uhshouldneg1y5") +macro Macros/hodo_efficiency.C("uhdidneg1y6","uhshouldneg1y6") +macro Macros/hodo_efficiency.C("uhdidneg1y7","uhshouldneg1y7") +macro Macros/hodo_efficiency.C("uhdidneg1y8","uhshouldneg1y8") +macro Macros/hodo_efficiency.C("uhdidneg1y9","uhshouldneg1y9") +macro Macros/hodo_efficiency.C("uhdidneg1y10","uhshouldneg1y10") +newpage 3 4 +title Y1 Eff Pos PMT +macro Macros/hodo_efficiency.C("uhdidpos1y1","uhshouldpos1y1") +macro Macros/hodo_efficiency.C("uhdidpos1y2","uhshouldpos1y2") +macro Macros/hodo_efficiency.C("uhdidpos1y3","uhshouldpos1y3") +macro Macros/hodo_efficiency.C("uhdidpos1y4","uhshouldpos1y4") +macro Macros/hodo_efficiency.C("uhdidpos1y5","uhshouldpos1y5") +macro Macros/hodo_efficiency.C("uhdidpos1y6","uhshouldpos1y6") +macro Macros/hodo_efficiency.C("uhdidpos1y7","uhshouldpos1y7") +macro Macros/hodo_efficiency.C("uhdidpos1y8","uhshouldpos1y8") +macro Macros/hodo_efficiency.C("uhdidpos1y9","uhshouldpos1y9") +macro Macros/hodo_efficiency.C("uhdidpos1y10","uhshouldpos1y10") +newpage 4 4 +title X2 Eff Neg PMT +macro Macros/hodo_efficiency.C("uhdidneg2x1","uhshouldneg2x1") +macro Macros/hodo_efficiency.C("uhdidneg2x2","uhshouldneg2x2") +macro Macros/hodo_efficiency.C("uhdidneg2x3","uhshouldneg2x3") +macro Macros/hodo_efficiency.C("uhdidneg2x4","uhshouldneg2x4") +macro Macros/hodo_efficiency.C("uhdidneg2x5","uhshouldneg2x5") +macro Macros/hodo_efficiency.C("uhdidneg2x6","uhshouldneg2x6") +macro Macros/hodo_efficiency.C("uhdidneg2x7","uhshouldneg2x7") +macro Macros/hodo_efficiency.C("uhdidneg2x8","uhshouldneg2x8") +macro Macros/hodo_efficiency.C("uhdidneg2x9","uhshouldneg2x9") +macro Macros/hodo_efficiency.C("uhdidneg2x10","uhshouldneg2x10") +macro Macros/hodo_efficiency.C("uhdidneg2x11","uhshouldneg2x11") +macro Macros/hodo_efficiency.C("uhdidneg2x12","uhshouldneg2x12") +macro Macros/hodo_efficiency.C("uhdidneg2x13","uhshouldneg2x13") +macro Macros/hodo_efficiency.C("uhdidneg2x14","uhshouldneg2x14") +macro Macros/hodo_efficiency.C("uhdidneg2x15","uhshouldneg2x15") +macro Macros/hodo_efficiency.C("uhdidneg2x16","uhshouldneg2x16") +newpage 4 4 +title X2 Eff Pos PMT +macro Macros/hodo_efficiency.C("uhdidpos2x1","uhshouldpos2x1") +macro Macros/hodo_efficiency.C("uhdidpos2x2","uhshouldpos2x2") +macro Macros/hodo_efficiency.C("uhdidpos2x3","uhshouldpos2x3") +macro Macros/hodo_efficiency.C("uhdidpos2x4","uhshouldpos2x4") +macro Macros/hodo_efficiency.C("uhdidpos2x5","uhshouldpos2x5") +macro Macros/hodo_efficiency.C("uhdidpos2x6","uhshouldpos2x6") +macro Macros/hodo_efficiency.C("uhdidpos2x7","uhshouldpos2x7") +macro Macros/hodo_efficiency.C("uhdidpos2x8","uhshouldpos2x8") +macro Macros/hodo_efficiency.C("uhdidpos2x9","uhshouldpos2x9") +macro Macros/hodo_efficiency.C("uhdidpos2x10","uhshouldpos2x10") +macro Macros/hodo_efficiency.C("uhdidpos2x11","uhshouldpos2x11") +macro Macros/hodo_efficiency.C("uhdidpos2x12","uhshouldpos2x12") +macro Macros/hodo_efficiency.C("uhdidpos2x13","uhshouldpos2x13") +macro Macros/hodo_efficiency.C("uhdidpos2x14","uhshouldpos2x14") +macro Macros/hodo_efficiency.C("uhdidpos2x15","uhshouldpos2x15") +macro Macros/hodo_efficiency.C("uhdidpos2x16","uhshouldpos2x16") +newpage 3 4 +title Y2 Eff Neg PMT +macro Macros/hodo_efficiency.C("uhdidneg2y1","uhshouldneg2y1") +macro Macros/hodo_efficiency.C("uhdidneg2y2","uhshouldneg2y2") +macro Macros/hodo_efficiency.C("uhdidneg2y3","uhshouldneg2y3") +macro Macros/hodo_efficiency.C("uhdidneg2y4","uhshouldneg2y4") +macro Macros/hodo_efficiency.C("uhdidneg2y5","uhshouldneg2y5") +macro Macros/hodo_efficiency.C("uhdidneg2y6","uhshouldneg2y6") +macro Macros/hodo_efficiency.C("uhdidneg2y7","uhshouldneg2y7") +macro Macros/hodo_efficiency.C("uhdidneg2y8","uhshouldneg2y8") +macro Macros/hodo_efficiency.C("uhdidneg2y9","uhshouldneg2y9") +macro Macros/hodo_efficiency.C("uhdidneg2y10","uhshouldneg2y10") +newpage 3 4 +title Y2 Eff Pos PMT +macro Macros/hodo_efficiency.C("uhdidpos2y1","uhshouldpos2y1") +macro Macros/hodo_efficiency.C("uhdidpos2y2","uhshouldpos2y2") +macro Macros/hodo_efficiency.C("uhdidpos2y3","uhshouldpos2y3") +macro Macros/hodo_efficiency.C("uhdidpos2y4","uhshouldpos2y4") +macro Macros/hodo_efficiency.C("uhdidpos2y5","uhshouldpos2y5") +macro Macros/hodo_efficiency.C("uhdidpos2y6","uhshouldpos2y6") +macro Macros/hodo_efficiency.C("uhdidpos2y7","uhshouldpos2y7") +macro Macros/hodo_efficiency.C("uhdidpos2y8","uhshouldpos2y8") +macro Macros/hodo_efficiency.C("uhdidpos2y9","uhshouldpos2y9") +macro Macros/hodo_efficiency.C("uhdidpos2y10","uhshouldpos2y10") +newpage 4 4 +title X1 ADC int Pos vs Neg +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1x16") +newpage 3 4 +title Y1 ADC int Pos vs Neg +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc1y10") +newpage 4 4 +title X2 ADC int Pos vs Neg +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2x16") +newpage 3 4 +title Y2 ADC int Pos vs Neg +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcintgtdc2y10") +newpage 4 4 +title X1 TDC Pos vs Neg +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1x16") +newpage 3 4 +title Y1 TDC Pos vs Neg +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc1y10") +newpage 4 4 +title X2 TDC Pos vs Neg +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2x16") +newpage 3 4 +title Y2 TDC Pos vs Neg +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dtdc2y10") diff --git a/onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg b/onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg new file mode 100644 index 00000000..edd09396 --- /dev/null +++ b/onlineGUI/Config/HMS/HODO/good_hhodo_2d_dis.cfg @@ -0,0 +1,123 @@ +protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 4 4 +title X1+ ADC vs Dis +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1x16") +newpage 4 4 +title X1- ADC vs Dis +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1x16") +newpage 3 4 +title Y1+ ADC vs Dis +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos1y10") +newpage 3 4 +title Y1- ADC vs Dis +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg1y10") +newpage 4 4 +title X2+ ADC vs Dis +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2x16") +newpage 4 4 +title X2- ADC vs Dis +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x10") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x11") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x12") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x13") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x14") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x15") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2x16") +newpage 3 4 +title Y2+ ADC vs Dis +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdispos2y10") +newpage 3 4 +title Y2- ADC vs Dis +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y1") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y2") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y3") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y4") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y5") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y6") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y7") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y8") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y9") +macro Macros/gooddraw_2d_hhodo.C("uh2dadcvdisneg2y10") diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodo_1x.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodo_1x.cfg new file mode 100644 index 00000000..b0ebc09e --- /dev/null +++ b/onlineGUI/Config/HMS/HODO/raw_hhodo_1x.cfg @@ -0,0 +1,327 @@ +protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 4 4 +title HMS X1+ Raw TDCs +macro Macros/rawdraw_hhodo.C("uhtdc1x1posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x2posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x3posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x4posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x5posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x6posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x7posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x8posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x9posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x10posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x11posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x12posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x13posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x14posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x15posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x16posTimeRaw") +newpage 4 4 +title HMS X1- Raw TDCs +macro Macros/rawdraw_hhodo.C("uhtdc1x1negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x2negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x3negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x4negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x5negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x6negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x7negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x8negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x9negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x10negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x11negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x12negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x13negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x14negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x15negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1x16negTimeRaw") +newpage 4 4 +title HMS X1+ TDCs +macro Macros/rawdraw_hhodo.C("uhtdc1x1posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x2posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x3posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x4posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x5posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x6posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x7posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x8posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x9posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x10posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x11posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x12posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x13posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x14posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x15posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x16posTime") +newpage 4 4 +title HMS X1- TDCs +macro Macros/rawdraw_hhodo.C("uhtdc1x1negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x2negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x3negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x4negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x5negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x6negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x7negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x8negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x9negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x10negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x11negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x12negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x13negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x14negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x15negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1x16negTime") +newpage 4 4 +title HMS X1+ FADC Raw Pedestals +macro Macros/rawdraw_hhodo.C("uhadc1x1posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x2posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x3posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x4posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x5posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x6posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x7posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x8posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x9posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x10posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x11posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x12posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x13posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x14posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x15posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x16posPedRaw") +newpage 4 4 +title HMS X1- FADC Raw Pedestals +macro Macros/rawdraw_hhodo.C("uhadc1x1negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x2negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x3negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x4negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x5negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x6negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x7negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x8negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x9negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x10negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x11negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x12negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x13negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x14negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x15negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x16negPedRaw") +newpage 4 4 +title HMS X1+ FADC Pedestals +macro Macros/rawdraw_hhodo.C("uhadc1x1posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x2posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x3posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x4posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x5posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x6posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x7posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x8posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x9posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x10posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x11posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x12posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x13posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x14posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x15posPed") +macro Macros/rawdraw_hhodo.C("uhadc1x16posPed") +newpage 4 4 +title HMS X1- FADC Pedestals +macro Macros/rawdraw_hhodo.C("uhadc1x1negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x2negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x3negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x4negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x5negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x6negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x7negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x8negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x9negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x10negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x11negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x12negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x13negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x14negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x15negPed") +macro Macros/rawdraw_hhodo.C("uhadc1x16negPed") +newpage 4 4 +title HMS X1+ FADC Raw Integrals +macro Macros/rawdraw_hhodo.C("uhadc1x1posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x2posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x3posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x4posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x5posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x6posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x7posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x8posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x9posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x10posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x11posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x12posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x13posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x14posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x15posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x16posPulseIntRaw") +newpage 4 4 +title HMS X1- FADC Raw Integrals +macro Macros/rawdraw_hhodo.C("uhadc1x1negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x2negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x3negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x4negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x5negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x6negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x7negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x8negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x9negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x10negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x11negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x12negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x13negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x14negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x15negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x16negPulseIntRaw") +newpage 4 4 +title HMS X1+ FADC Integrals +macro Macros/rawdraw_hhodo.C("uhadc1x1posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x2posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x3posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x4posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x5posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x6posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x7posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x8posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x9posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x10posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x11posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x12posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x13posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x14posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x15posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x16posPulseInt") +newpage 4 4 +title HMS X1- FADC Integrals +macro Macros/rawdraw_hhodo.C("uhadc1x1negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x2negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x3negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x4negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x5negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x6negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x7negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x8negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x9negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x10negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x11negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x12negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x13negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x14negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x15negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1x16negPulseInt") +newpage 4 4 +title HMS X1+ FADC Amplitudes Raw +macro Macros/rawdraw_hhodo.C("uhadc1x1posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x2posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x3posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x4posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x5posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x6posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x7posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x8posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x9posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x10posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x11posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x12posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x13posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x14posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x15posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x16posPulseAmpRaw") +newpage 4 4 +title HMS X1- FADC Amplitudes Raw +macro Macros/rawdraw_hhodo.C("uhadc1x1negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x2negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x3negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x4negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x5negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x6negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x7negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x8negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x9negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x10negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x11negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x12negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x13negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x14negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x15negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x16negPulseAmpRaw") +newpage 4 4 +title HMS X1+ FADC Amplitudes +macro Macros/rawdraw_hhodo.C("uhadc1x1posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x2posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x3posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x4posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x5posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x6posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x7posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x8posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x9posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x10posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x11posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x12posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x13posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x14posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x15posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x16posPulseAmp") +newpage 4 4 +title HMS X1- FADC Amplitudes +macro Macros/rawdraw_hhodo.C("uhadc1x1negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x2negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x3negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x4negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x5negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x6negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x7negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x8negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x9negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x10negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x11negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x12negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x13negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x14negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x15negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1x16negPulseAmp") +newpage 4 4 +title HMS X1+ FADC Times Raw +macro Macros/rawdraw_hhodo.C("uhadc1x1posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x2posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x3posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x4posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x5posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x6posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x7posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x8posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x9posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x10posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x11posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x12posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x13posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x14posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x15posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x16posPulseTimeRaw") +newpage 4 4 +title HMS X1- FADC Times Raw +macro Macros/rawdraw_hhodo.C("uhadc1x1negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x2negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x3negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x4negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x5negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x6negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x7negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x8negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x9negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x10negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x11negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x12negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x13negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x14negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x15negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1x16negPulseTimeRaw") diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodo_1y.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodo_1y.cfg new file mode 100644 index 00000000..073778aa --- /dev/null +++ b/onlineGUI/Config/HMS/HODO/raw_hhodo_1y.cfg @@ -0,0 +1,219 @@ +protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 3 4 +title HMS Y1+ Raw TDCs +macro Macros/rawdraw_hhodo.C("uhtdc1y1posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y2posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y3posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y4posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y5posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y6posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y7posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y8posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y9posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y10posTimeRaw") +newpage 3 4 +title HMS Y1- Raw TDCs +macro Macros/rawdraw_hhodo.C("uhtdc1y1negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y2negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y3negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y4negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y5negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y6negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y7negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y8negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y9negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc1y10negTimeRaw") +newpage 3 4 +title HMS Y1+ TDCs +macro Macros/rawdraw_hhodo.C("uhtdc1y1posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y2posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y3posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y4posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y5posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y6posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y7posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y8posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y9posTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y10posTime") +newpage 3 4 +title HMS Y1- TDCs +macro Macros/rawdraw_hhodo.C("uhtdc1y1negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y2negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y3negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y4negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y5negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y6negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y7negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y8negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y9negTime") +macro Macros/rawdraw_hhodo.C("uhtdc1y10negTime") +newpage 3 4 +title HMS Y1+ FADC Raw Pedestals +macro Macros/rawdraw_hhodo.C("uhadc1y1posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y2posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y3posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y4posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y5posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y6posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y7posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y8posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y9posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y10posPedRaw") +newpage 3 4 +title HMS Y1- FADC Raw Pedestals +macro Macros/rawdraw_hhodo.C("uhadc1y1negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y2negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y3negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y4negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y5negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y6negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y7negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y8negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y9negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y10negPedRaw") +newpage 3 4 +title HMS Y1+ FADC Pedestals +macro Macros/rawdraw_hhodo.C("uhadc1y1posPed") +macro Macros/rawdraw_hhodo.C("uhadc1y2posPed") +macro Macros/rawdraw_hhodo.C("uhadc1y3posPed") +macro Macros/rawdraw_hhodo.C("uhadc1y4posPed") +macro Macros/rawdraw_hhodo.C("uhadc1y5posPed") +macro Macros/rawdraw_hhodo.C("uhadc1y6posPed") +macro Macros/rawdraw_hhodo.C("uhadc1y7posPed") +macro Macros/rawdraw_hhodo.C("uhadc1y8posPed") +macro Macros/rawdraw_hhodo.C("uhadc1y9posPed") +macro Macros/rawdraw_hhodo.C("uhadc1y10posPed") +newpage 3 4 +title HMS Y1- FADC Pedestals +macro Macros/rawdraw_hhodo.C("uhadc1y1negPed") +macro Macros/rawdraw_hhodo.C("uhadc1y2negPed") +macro Macros/rawdraw_hhodo.C("uhadc1y3negPed") +macro Macros/rawdraw_hhodo.C("uhadc1y4negPed") +macro Macros/rawdraw_hhodo.C("uhadc1y5negPed") +macro Macros/rawdraw_hhodo.C("uhadc1y6negPed") +macro Macros/rawdraw_hhodo.C("uhadc1y7negPed") +macro Macros/rawdraw_hhodo.C("uhadc1y8negPed") +macro Macros/rawdraw_hhodo.C("uhadc1y9negPed") +macro Macros/rawdraw_hhodo.C("uhadc1y10negPed") +newpage 3 4 +title HMS Y1+ FADC Raw Integrals +macro Macros/rawdraw_hhodo.C("uhadc1y1posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y2posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y3posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y4posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y5posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y6posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y7posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y8posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y9posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y10posPulseIntRaw") +newpage 3 4 +title HMS Y1- FADC Raw Integrals +macro Macros/rawdraw_hhodo.C("uhadc1y1negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y2negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y3negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y4negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y5negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y6negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y7negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y8negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y9negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y10negPulseIntRaw") +newpage 3 4 +title HMS Y1+ FADC Integrals +macro Macros/rawdraw_hhodo.C("uhadc1y1posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y2posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y3posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y4posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y5posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y6posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y7posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y8posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y9posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y10posPulseInt") +newpage 3 4 +title HMS Y1- FADC Integrals +macro Macros/rawdraw_hhodo.C("uhadc1y1negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y2negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y3negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y4negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y5negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y6negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y7negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y8negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y9negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc1y10negPulseInt") +newpage 3 4 +title HMS Y1+ FADC Amplitudes Raw +macro Macros/rawdraw_hhodo.C("uhadc1y1posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y2posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y3posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y4posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y5posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y6posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y7posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y8posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y9posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y10posPulseAmpRaw") +newpage 3 4 +title HMS Y1- FADC Amplitudes Raw +macro Macros/rawdraw_hhodo.C("uhadc1y1negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y2negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y3negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y4negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y5negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y6negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y7negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y8negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y9negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y10negPulseAmpRaw") +newpage 3 4 +title HMS Y1+ FADC Amplitudes +macro Macros/rawdraw_hhodo.C("uhadc1y1posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y2posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y3posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y4posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y5posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y6posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y7posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y8posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y9posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y10posPulseAmp") +newpage 3 4 +title HMS Y1- FADC Amplitudes +macro Macros/rawdraw_hhodo.C("uhadc1y1negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y2negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y3negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y4negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y5negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y6negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y7negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y8negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y9negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc1y10negPulseAmp") +newpage 3 4 +title HMS Y1+ FADC Times Raw +macro Macros/rawdraw_hhodo.C("uhadc1y1posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y2posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y3posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y4posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y5posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y6posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y7posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y8posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y9posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y10posPulseTimeRaw") +newpage 3 4 +title HMS Y1- FADC Times Raw +macro Macros/rawdraw_hhodo.C("uhadc1y1negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y2negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y3negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y4negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y5negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y6negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y7negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y8negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y9negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc1y10negPulseTimeRaw") diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg new file mode 100644 index 00000000..4754dad3 --- /dev/null +++ b/onlineGUI/Config/HMS/HODO/raw_hhodo_2d.cfg @@ -0,0 +1,304 @@ +#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 4 4 +title X1 ADC peak Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x1") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x2") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x3") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x4") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x5") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x6") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x7") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x8") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x9") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x10") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x11") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x12") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x13") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x14") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x15") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1x16") +newpage 3 4 +title Y1 ADC peak Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y1") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y2") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y3") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y4") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y5") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y6") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y7") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y8") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y9") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak1y10") +newpage 4 4 +title X2 ADC peak Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x1") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x2") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x3") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x4") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x5") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x6") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x7") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x8") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x9") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x10") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x11") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x12") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x13") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x14") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x15") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2x16") +newpage 3 4 +title Y2 ADC peak Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y1") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y2") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y3") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y4") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y5") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y6") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y7") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y8") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y9") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcpeak2y10") +newpage 4 4 +title X1 ADC int Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x1") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x2") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x3") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x4") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x5") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x6") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x7") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x8") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x9") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x10") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x11") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x12") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x13") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x14") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x15") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1x16") +newpage 3 4 +title Y1 ADC int Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y1") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y2") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y3") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y4") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y5") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y6") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y7") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y8") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y9") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint1y10") +newpage 4 4 +title X2 ADC int Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x1") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x2") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x3") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x4") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x5") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x6") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x7") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x8") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x9") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x10") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x11") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x12") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x13") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x14") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x15") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2x16") +newpage 3 4 +title Y2 ADC int Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y1") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y2") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y3") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y4") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y5") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y6") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y7") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y8") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y9") +macro Macros/rawdraw_2d_hhodo.C("uh2dadcint2y10") +newpage 4 4 +title X1 TDC Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x1") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x2") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x3") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x4") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x5") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x6") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x7") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x8") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x9") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x10") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x11") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x12") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x13") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x14") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x15") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1x16") +newpage 3 4 +title Y1 TDC Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y1") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y2") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y3") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y4") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y5") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y6") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y7") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y8") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y9") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc1y10") +newpage 4 4 +title X2 TDC Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x1") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x2") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x3") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x4") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x5") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x6") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x7") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x8") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x9") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x10") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x11") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x12") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x13") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x14") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x15") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2x16") +newpage 3 4 +title Y2 TDC Pos vs Neg +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y1") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y2") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y3") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y4") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y5") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y6") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y7") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y8") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y9") +macro Macros/rawdraw_2d_hhodo.C("uh2dtdc2y10") +newpage 4 4 +title X1- ADC (pC) vs TDC +macro Macros/rawdraw_2d_hhodo.C("uh2d1x1neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x2neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x3neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x4neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x5neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x6neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x7neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x8neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x9neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x10neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x11neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x12neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x13neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x14neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x15neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x16neg") +newpage 4 4 +title X1+ ADC (pC) vs TDC +macro Macros/rawdraw_2d_hhodo.C("uh2d1x1pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x2pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x3pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x4pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x5pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x6pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x7pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x8pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x9pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x10pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x11pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x12pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x13pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x14pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x15pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1x16pos") +newpage 3 4 +title Y1- ADC (pC) vs TDC +macro Macros/rawdraw_2d_hhodo.C("uh2d1y1neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y2neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y3neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y4neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y5neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y6neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y7neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y8neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y9neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y10neg") +newpage 3 4 +title Y1+ ADC (pC) vs TDC +macro Macros/rawdraw_2d_hhodo.C("uh2d1y1pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y2pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y3pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y4pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y5pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y6pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y7pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y8pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y9pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d1y10pos") +newpage 4 4 +title X2- ADC (pC) vs TDC +macro Macros/rawdraw_2d_hhodo.C("uh2d2x1neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x2neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x3neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x4neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x5neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x6neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x7neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x8neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x9neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x10neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x11neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x12neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x13neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x14neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x15neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x16neg") +newpage 4 4 +title X2+ ADC (pC) vs TDC +macro Macros/rawdraw_2d_hhodo.C("uh2d2x1pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x2pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x3pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x4pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x5pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x6pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x7pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x8pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x9pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x10pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x11pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x12pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x13pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x14pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x15pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2x16pos") +newpage 3 4 +title Y2- ADC (pC) vs TDC +macro Macros/rawdraw_2d_hhodo.C("uh2d2y1neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y2neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y3neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y4neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y5neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y6neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y7neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y8neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y9neg") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y10neg") +newpage 3 4 +title Y2+ ADC (pC) vs TDC +macro Macros/rawdraw_2d_hhodo.C("uh2d2y1pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y2pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y3pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y4pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y5pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y6pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y7pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y8pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y9pos") +macro Macros/rawdraw_2d_hhodo.C("uh2d2y10pos") diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodo_2x.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodo_2x.cfg new file mode 100644 index 00000000..81ca7007 --- /dev/null +++ b/onlineGUI/Config/HMS/HODO/raw_hhodo_2x.cfg @@ -0,0 +1,327 @@ +protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 4 4 +title HMS X2+ Raw TDCs +macro Macros/rawdraw_hhodo.C("uhtdc2x1posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x2posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x3posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x4posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x5posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x6posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x7posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x8posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x9posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x10posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x11posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x12posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x13posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x14posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x15posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x16posTimeRaw") +newpage 4 4 +title HMS X2- Raw TDCs +macro Macros/rawdraw_hhodo.C("uhtdc2x1negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x2negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x3negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x4negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x5negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x6negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x7negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x8negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x9negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x10negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x11negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x12negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x13negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x14negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x15negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2x16negTimeRaw") +newpage 4 4 +title HMS X2+ TDCs +macro Macros/rawdraw_hhodo.C("uhtdc2x1posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x2posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x3posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x4posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x5posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x6posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x7posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x8posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x9posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x10posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x11posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x12posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x13posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x14posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x15posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x16posTime") +newpage 4 4 +title HMS X2- TDCs +macro Macros/rawdraw_hhodo.C("uhtdc2x1negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x2negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x3negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x4negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x5negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x6negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x7negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x8negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x9negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x10negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x11negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x12negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x13negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x14negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x15negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2x16negTime") +newpage 4 4 +title HMS X2+ FADC Raw Pedestals +macro Macros/rawdraw_hhodo.C("uhadc2x1posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x2posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x3posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x4posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x5posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x6posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x7posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x8posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x9posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x10posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x11posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x12posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x13posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x14posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x15posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x16posPedRaw") +newpage 4 4 +title HMS X2- FADC Raw Pedestals +macro Macros/rawdraw_hhodo.C("uhadc2x1negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x2negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x3negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x4negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x5negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x6negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x7negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x8negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x9negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x10negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x11negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x12negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x13negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x14negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x15negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x16negPedRaw") +newpage 4 4 +title HMS X2+ FADC Pedestals +macro Macros/rawdraw_hhodo.C("uhadc2x1posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x2posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x3posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x4posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x5posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x6posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x7posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x8posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x9posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x10posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x11posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x12posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x13posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x14posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x15posPed") +macro Macros/rawdraw_hhodo.C("uhadc2x16posPed") +newpage 4 4 +title HMS X2- FADC Pedestals +macro Macros/rawdraw_hhodo.C("uhadc2x1negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x2negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x3negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x4negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x5negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x6negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x7negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x8negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x9negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x10negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x11negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x12negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x13negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x14negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x15negPed") +macro Macros/rawdraw_hhodo.C("uhadc2x16negPed") +newpage 4 4 +title HMS X2+ FADC Raw Integrals +macro Macros/rawdraw_hhodo.C("uhadc2x1posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x2posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x3posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x4posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x5posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x6posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x7posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x8posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x9posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x10posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x11posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x12posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x13posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x14posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x15posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x16posPulseIntRaw") +newpage 4 4 +title HMS X2- FADC Raw Integrals +macro Macros/rawdraw_hhodo.C("uhadc2x1negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x2negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x3negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x4negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x5negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x6negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x7negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x8negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x9negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x10negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x11negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x12negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x13negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x14negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x15negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x16negPulseIntRaw") +newpage 4 4 +title HMS X2+ FADC Integrals +macro Macros/rawdraw_hhodo.C("uhadc2x1posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x2posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x3posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x4posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x5posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x6posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x7posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x8posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x9posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x10posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x11posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x12posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x13posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x14posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x15posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x16posPulseInt") +newpage 4 4 +title HMS X2- FADC Integrals +macro Macros/rawdraw_hhodo.C("uhadc2x1negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x2negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x3negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x4negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x5negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x6negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x7negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x8negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x9negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x10negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x11negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x12negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x13negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x14negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x15negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2x16negPulseInt") +newpage 4 4 +title HMS X2+ FADC Amplitudes Raw +macro Macros/rawdraw_hhodo.C("uhadc2x1posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x2posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x3posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x4posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x5posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x6posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x7posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x8posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x9posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x10posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x11posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x12posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x13posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x14posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x15posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x16posPulseAmpRaw") +newpage 4 4 +title HMS X2- FADC Amplitudes Raw +macro Macros/rawdraw_hhodo.C("uhadc2x1negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x2negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x3negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x4negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x5negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x6negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x7negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x8negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x9negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x10negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x11negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x12negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x13negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x14negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x15negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x16negPulseAmpRaw") +newpage 4 4 +title HMS X2+ FADC Amplitudes +macro Macros/rawdraw_hhodo.C("uhadc2x1posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x2posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x3posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x4posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x5posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x6posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x7posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x8posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x9posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x10posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x11posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x12posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x13posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x14posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x15posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x16posPulseAmp") +newpage 4 4 +title HMS X2- FADC Amplitudes +macro Macros/rawdraw_hhodo.C("uhadc2x1negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x2negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x3negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x4negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x5negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x6negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x7negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x8negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x9negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x10negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x11negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x12negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x13negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x14negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x15negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2x16negPulseAmp") +newpage 4 4 +title HMS X2+ FADC Times Raw +macro Macros/rawdraw_hhodo.C("uhadc2x1posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x2posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x3posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x4posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x5posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x6posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x7posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x8posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x9posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x10posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x11posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x12posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x13posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x14posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x15posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x16posPulseTimeRaw") +newpage 4 4 +title HMS X2- FADC Times Raw +macro Macros/rawdraw_hhodo.C("uhadc2x1negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x2negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x3negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x4negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x5negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x6negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x7negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x8negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x9negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x10negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x11negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x12negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x13negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x14negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x15negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2x16negPulseTimeRaw") diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodo_2y.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodo_2y.cfg new file mode 100644 index 00000000..b7aeb03e --- /dev/null +++ b/onlineGUI/Config/HMS/HODO/raw_hhodo_2y.cfg @@ -0,0 +1,219 @@ +protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 3 4 +title HMS Y2+ Raw TDCs +macro Macros/rawdraw_hhodo.C("uhtdc2y1posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y2posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y3posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y4posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y5posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y6posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y7posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y8posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y9posTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y10posTimeRaw") +newpage 3 4 +title HMS Y2- Raw TDCs +macro Macros/rawdraw_hhodo.C("uhtdc2y1negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y2negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y3negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y4negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y5negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y6negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y7negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y8negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y9negTimeRaw") +macro Macros/rawdraw_hhodo.C("uhtdc2y10negTimeRaw") +newpage 3 4 +title HMS Y2+ TDCs +macro Macros/rawdraw_hhodo.C("uhtdc2y1posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y2posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y3posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y4posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y5posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y6posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y7posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y8posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y9posTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y10posTime") +newpage 3 4 +title HMS Y2- TDCs +macro Macros/rawdraw_hhodo.C("uhtdc2y1negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y2negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y3negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y4negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y5negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y6negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y7negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y8negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y9negTime") +macro Macros/rawdraw_hhodo.C("uhtdc2y10negTime") +newpage 3 4 +title HMS Y2+ FADC Raw Pedestals +macro Macros/rawdraw_hhodo.C("uhadc2y1posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y2posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y3posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y4posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y5posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y6posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y7posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y8posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y9posPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y10posPedRaw") +newpage 3 4 +title HMS Y2- FADC Raw Pedestals +macro Macros/rawdraw_hhodo.C("uhadc2y1negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y2negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y3negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y4negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y5negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y6negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y7negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y8negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y9negPedRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y10negPedRaw") +newpage 3 4 +title HMS Y2+ FADC Pedestals +macro Macros/rawdraw_hhodo.C("uhadc2y1posPed") +macro Macros/rawdraw_hhodo.C("uhadc2y2posPed") +macro Macros/rawdraw_hhodo.C("uhadc2y3posPed") +macro Macros/rawdraw_hhodo.C("uhadc2y4posPed") +macro Macros/rawdraw_hhodo.C("uhadc2y5posPed") +macro Macros/rawdraw_hhodo.C("uhadc2y6posPed") +macro Macros/rawdraw_hhodo.C("uhadc2y7posPed") +macro Macros/rawdraw_hhodo.C("uhadc2y8posPed") +macro Macros/rawdraw_hhodo.C("uhadc2y9posPed") +macro Macros/rawdraw_hhodo.C("uhadc2y10posPed") +newpage 3 4 +title HMS Y2- FADC Pedestals +macro Macros/rawdraw_hhodo.C("uhadc2y1negPed") +macro Macros/rawdraw_hhodo.C("uhadc2y2negPed") +macro Macros/rawdraw_hhodo.C("uhadc2y3negPed") +macro Macros/rawdraw_hhodo.C("uhadc2y4negPed") +macro Macros/rawdraw_hhodo.C("uhadc2y5negPed") +macro Macros/rawdraw_hhodo.C("uhadc2y6negPed") +macro Macros/rawdraw_hhodo.C("uhadc2y7negPed") +macro Macros/rawdraw_hhodo.C("uhadc2y8negPed") +macro Macros/rawdraw_hhodo.C("uhadc2y9negPed") +macro Macros/rawdraw_hhodo.C("uhadc2y10negPed") +newpage 3 4 +title HMS Y2+ FADC Raw Integrals +macro Macros/rawdraw_hhodo.C("uhadc2y1posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y2posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y3posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y4posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y5posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y6posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y7posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y8posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y9posPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y10posPulseIntRaw") +newpage 3 4 +title HMS Y2- FADC Raw Integrals +macro Macros/rawdraw_hhodo.C("uhadc2y1negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y2negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y3negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y4negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y5negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y6negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y7negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y8negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y9negPulseIntRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y10negPulseIntRaw") +newpage 3 4 +title HMS Y2+ FADC Integrals +macro Macros/rawdraw_hhodo.C("uhadc2y1posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y2posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y3posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y4posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y5posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y6posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y7posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y8posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y9posPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y10posPulseInt") +newpage 3 4 +title HMS Y2- FADC Integrals +macro Macros/rawdraw_hhodo.C("uhadc2y1negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y2negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y3negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y4negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y5negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y6negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y7negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y8negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y9negPulseInt") +macro Macros/rawdraw_hhodo.C("uhadc2y10negPulseInt") +newpage 3 4 +title HMS Y2+ FADC Amplitudes Raw +macro Macros/rawdraw_hhodo.C("uhadc2y1posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y2posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y3posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y4posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y5posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y6posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y7posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y8posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y9posPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y10posPulseAmpRaw") +newpage 3 4 +title HMS Y2- FADC Amplitudes Raw +macro Macros/rawdraw_hhodo.C("uhadc2y1negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y2negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y3negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y4negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y5negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y6negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y7negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y8negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y9negPulseAmpRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y10negPulseAmpRaw") +newpage 3 4 +title HMS Y2+ FADC Amplitudes +macro Macros/rawdraw_hhodo.C("uhadc2y1posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y2posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y3posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y4posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y5posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y6posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y7posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y8posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y9posPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y10posPulseAmp") +newpage 3 4 +title HMS Y2- FADC Amplitudes +macro Macros/rawdraw_hhodo.C("uhadc2y1negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y2negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y3negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y4negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y5negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y6negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y7negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y8negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y9negPulseAmp") +macro Macros/rawdraw_hhodo.C("uhadc2y10negPulseAmp") +newpage 3 4 +title HMS Y2+ FADC Times Raw +macro Macros/rawdraw_hhodo.C("uhadc2y1posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y2posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y3posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y4posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y5posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y6posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y7posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y8posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y9posPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y10posPulseTimeRaw") +newpage 3 4 +title HMS Y2- FADC Times Raw +macro Macros/rawdraw_hhodo.C("uhadc2y1negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y2negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y3negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y4negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y5negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y6negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y7negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y8negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y9negPulseTimeRaw") +macro Macros/rawdraw_hhodo.C("uhadc2y10negPulseTimeRaw") diff --git a/onlineGUI/Config/HMS/HODO/raw_hhodoana.cfg b/onlineGUI/Config/HMS/HODO/raw_hhodoana.cfg new file mode 100644 index 00000000..bcf99634 --- /dev/null +++ b/onlineGUI/Config/HMS/HODO/raw_hhodoana.cfg @@ -0,0 +1,130 @@ +#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 2 2 +title HMS Hodo Nhits +hhodo_1x_multi +hhodo_1y_multi +hhodo_2x_multi +hhodo_2y_multi +newpage 2 2 +title HMS Hodo Raw ADC Occupancy +macro Macros/overlay.C("hhodo_1x_pos_adc_occu","hhodo_1x_neg_adc_occu") +macro Macros/overlay.C("hhodo_1y_pos_adc_occu","hhodo_1y_neg_adc_occu") +macro Macros/overlay.C("hhodo_2x_pos_adc_occu","hhodo_2x_neg_adc_occu") +macro Macros/overlay.C("hhodo_2y_pos_adc_occu","hhodo_2y_neg_adc_occu") +newpage 2 2 +title HMS Hodo Raw TDC Occupancy +macro Macros/overlay.C("hhodo_1x_pos_tdc_occu","hhodo_1x_neg_tdc_occu") +macro Macros/overlay.C("hhodo_1y_pos_tdc_occu","hhodo_1y_neg_tdc_occu") +macro Macros/overlay.C("hhodo_2x_pos_tdc_occu","hhodo_2x_neg_tdc_occu") +macro Macros/overlay.C("hhodo_2y_pos_tdc_occu","hhodo_2y_neg_tdc_occu") +newpage 2 2 +title HMS Hodo Raw Ped PMT+ +hhodo_1x_pos_rawped_vs_pad -type colz +hhodo_1y_pos_rawped_vs_pad -type colz +hhodo_2x_pos_rawped_vs_pad -type colz +hhodo_2y_pos_rawped_vs_pad -type colz +newpage 2 2 +title HMS Hodo Raw Ped PMT- +hhodo_1x_neg_rawped_vs_pad -type colz +hhodo_1y_neg_rawped_vs_pad -type colz +hhodo_2x_neg_rawped_vs_pad -type colz +hhodo_2y_neg_rawped_vs_pad -type colz +newpage 2 2 +title HMS Hodo Raw Int PMT+ +hhodo_1x_pos_rawpi_vs_pad -type colz +hhodo_1y_pos_rawpi_vs_pad -type colz +hhodo_2x_pos_rawpi_vs_pad -type colz +hhodo_2y_pos_rawpi_vs_pad -type colz +newpage 2 2 +title HMS Hodo Raw Int PMT- +hhodo_1x_neg_rawpi_vs_pad -type colz +hhodo_1y_neg_rawpi_vs_pad -type colz +hhodo_2x_neg_rawpi_vs_pad -type colz +hhodo_2y_neg_rawpi_vs_pad -type colz +newpage 2 2 +title HMS Hodo Raw Peak PMT+ +hhodo_1x_pos_rawpamp_vs_pad -type colz +hhodo_1y_pos_rawpamp_vs_pad -type colz +hhodo_2x_pos_rawpamp_vs_pad -type colz +hhodo_2y_pos_rawpamp_vs_pad -type colz +newpage 2 2 +title HMS Hodo Raw Peak PMT- +hhodo_1x_neg_rawpamp_vs_pad -type colz +hhodo_1y_neg_rawpamp_vs_pad -type colz +hhodo_2x_neg_rawpamp_vs_pad -type colz +hhodo_2y_neg_rawpamp_vs_pad -type colz +newpage 2 2 +title HMS Hodo Raw Adc Time PMT+ +hhodo_1x_pos_rawptime_vs_pad -type colz +hhodo_1y_pos_rawptime_vs_pad -type colz +hhodo_2x_pos_rawptime_vs_pad -type colz +hhodo_2y_pos_rawptime_vs_pad -type colz +newpage 2 2 +title HMS Hodo Raw ADc Time PMT- +hhodo_1x_neg_rawptime_vs_pad -type colz +hhodo_1y_neg_rawptime_vs_pad -type colz +hhodo_2x_neg_rawptime_vs_pad -type colz +hhodo_2y_neg_rawptime_vs_pad -type colz +newpage 2 2 +title HMS Hodo Raw TDC time PMT+ +hhodo_1x_pos_raw_tdc_time_vs_pad -type colz +hhodo_1y_pos_raw_tdc_time_vs_pad -type colz +hhodo_2x_pos_raw_tdc_time_vs_pad -type colz +hhodo_2y_pos_raw_tdc_time_vs_pad -type colz +newpage 2 2 +title HMS Hodo Raw TDC time PMT- +hhodo_1x_neg_raw_tdc_time_vs_pad -type colz +hhodo_1y_neg_raw_tdc_time_vs_pad -type colz +hhodo_2x_neg_raw_tdc_time_vs_pad -type colz +hhodo_2y_neg_raw_tdc_time_vs_pad -type colz +newpage 2 2 +title HMS Hodo Ped PMT+ +hhodo_1x_pos_ped_vs_pad -type colz +hhodo_1y_pos_ped_vs_pad -type colz +hhodo_2x_pos_ped_vs_pad -type colz +hhodo_2y_pos_ped_vs_pad -type colz +newpage 2 2 +title HMS Hodo Ped PMT- +hhodo_1x_neg_ped_vs_pad -type colz +hhodo_1y_neg_ped_vs_pad -type colz +hhodo_2x_neg_ped_vs_pad -type colz +hhodo_2y_neg_ped_vs_pad -type colz +newpage 2 2 +title HMS Hodo ADC Int PMT+ +hhodo_1x_pos_pi_vs_pad -type colz +hhodo_1y_pos_pi_vs_pad -type colz +hhodo_2x_pos_pi_vs_pad -type colz +hhodo_2y_pos_pi_vs_pad -type colz +newpage 2 2 +title HMS Hodo ADC Int PMT- +hhodo_1x_neg_pi_vs_pad -type colz +hhodo_1y_neg_pi_vs_pad -type colz +hhodo_2x_neg_pi_vs_pad -type colz +hhodo_2y_neg_pi_vs_pad -type colz +newpage 2 2 +title HMS Hodo ADC Peak PMT+ +hhodo_1x_pos_pamp_vs_pad -type colz +hhodo_1y_pos_pamp_vs_pad -type colz +hhodo_2x_pos_pamp_vs_pad -type colz +hhodo_2y_pos_pamp_vs_pad -type colz +newpage 2 2 +title HMS Hodo ADc Peak PMT- +hhodo_1x_neg_pamp_vs_pad -type colz +hhodo_1y_neg_pamp_vs_pad -type colz +hhodo_2x_neg_pamp_vs_pad -type colz +hhodo_2y_neg_pamp_vs_pad -type colz +newpage 2 2 +title HMS Hodo TDC time PMT+ +hhodo_1x_pos_tdc_time_vs_pad -type colz +hhodo_1y_pos_tdc_time_vs_pad -type colz +hhodo_2x_pos_tdc_time_vs_pad -type colz +hhodo_2y_pos_tdc_time_vs_pad -type colz +newpage 2 2 +title HMS Hodo TDC time PMT- +hhodo_1x_neg_tdc_time_vs_pad -type colz +hhodo_1y_neg_tdc_time_vs_pad -type colz +hhodo_2x_neg_tdc_time_vs_pad -type colz +hhodo_2y_neg_tdc_time_vs_pad -type colz diff --git a/onlineGUI/Config/HMS/RASTER/simple_raster.cfg b/onlineGUI/Config/HMS/RASTER/simple_raster.cfg new file mode 100644 index 00000000..16bc0673 --- /dev/null +++ b/onlineGUI/Config/HMS/RASTER/simple_raster.cfg @@ -0,0 +1,20 @@ +#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +protorootfile ../ROOTfiles/hms_raster_simple_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 2 2 +title HMS 1D Raster Raw ADC +hFRXA +hFRXB +hFRYA +hFRYB +newpage 2 2 +title HMS 1D Raster (Volts) +hFRXA_V +hFRXB_V +hFRYA_V +hFRYB_V +newpage 1 2 +title HMS Hodo Raw Ped PMT+ +hFRA_XvsY -type colz +hFRB_XvsY -type colz diff --git a/onlineGUI/Config/SHMS/GEN/hallc_onlana.cfg b/onlineGUI/Config/SHMS/GEN/hallc_onlana.cfg new file mode 100644 index 00000000..56384302 --- /dev/null +++ b/onlineGUI/Config/SHMS/GEN/hallc_onlana.cfg @@ -0,0 +1,191 @@ +protorootfile ../ROOTfiles/shms_replay_XXXXX.root +guicolor orange +canvassize 1600 800 +#canvassize 800 800 +newpage 2 2 logz +title SHMS Noble Gas Cherenkov +pngcer_occu -nostat +pngcer_ped_vs_cntr -nostat +pngcer_pi_vs_cntr -nostat +pngcer_amp_vs_cntr -nostat +newpage 4 3 +title SHMS Drift Chamber Reference Times +pdc_ref1 +pdc_ref2 +pdc_ref3 +pdc_ref4 +pdc_ref5 +pdc_ref6 +pdc_ref7 +pdc_ref8 +pdc_ref9 +pdc_ref10 +newpage 4 3 +title SHMS Drift Chamber Wire Maps +pdc1u1_wirenum +pdc2u1_wirenum +pdc1u2_wirenum +pdc2u2_wirenum +pdc1x1_wirenum +pdc2x1_wirenum +pdc1x2_wirenum +pdc2x2_wirenum +pdc1v1_wirenum +pdc2v1_wirenum +pdc1v2_wirenum +pdc2v2_wirenum +newpage 4 3 logz +title SHMS Drift Chamber TDC Times +pdc1u1_wirenum_vs_tdc -nostat +pdc2u1_wirenum_vs_tdc -nostat +pdc1u2_wirenum_vs_tdc -nostat +pdc2u2_wirenum_vs_tdc -nostat +pdc1x1_wirenum_vs_tdc -nostat +pdc2x1_wirenum_vs_tdc -nostat +pdc1x2_wirenum_vs_tdc -nostat +pdc2x2_wirenum_vs_tdc -nostat +pdc1v1_wirenum_vs_tdc -nostat +pdc2v1_wirenum_vs_tdc -nostat +pdc1v2_wirenum_vs_tdc -nostat +pdc2v2_wirenum_vs_tdc -nostat +newpage 4 3 +title SHMS Drift Chamber Residuals +pdc1u1_wirenum_vs_resid -nostat +pdc2u1_wirenum_vs_resid -nostat +pdc1u2_wirenum_vs_resid -nostat +pdc2u2_wirenum_vs_resid -nostat +pdc1x1_wirenum_vs_resid -nostat +pdc2x1_wirenum_vs_resid -nostat +pdc1x2_wirenum_vs_resid -nostat +pdc2x2_wirenum_vs_resid -nostat +pdc1v1_wirenum_vs_resid -nostat +pdc2v1_wirenum_vs_resid -nostat +pdc1v2_wirenum_vs_resid -nostat +pdc2v2_wirenum_vs_resid -nostat +newpage 2 1 logz +title SHMS Drift Chamber Focal Plane +pdc_xfp_vs_yxp -nostat +pdc_xfpp_vs_yxpp -nostat +newpage 2 3 logz +title SHMS Hodoscope 1X+ (Left) +phodo_1x_pos_adc_occu -nostat +phodo_1x_pos_tdc_occu -nostat +phodo_1x_pos_ped_vs_pad -nostat +phodo_1x_pos_pi_vs_pad -nostat +phodo_1x_pos_pamp_vs_pad -nostat +phodo_1x_pos_tdc_time_vs_pad -nostat +newpage 2 3 logz +title SHMS Hodoscope 1X- (Left) +phodo_1x_neg_adc_occu -nostat +phodo_1x_neg_tdc_occu -nostat +phodo_1x_neg_ped_vs_pad -nostat +phodo_1x_neg_pi_vs_pad -nostat +phodo_1x_neg_pamp_vs_pad -nostat +phodo_1x_neg_tdc_time_vs_pad -nostat +newpage 2 3 logz +title SHMS Hodoscope 1Y+ (Left) +phodo_1y_pos_adc_occu -nostat +phodo_1y_pos_tdc_occu -nostat +phodo_1y_pos_ped_vs_pad -nostat +phodo_1y_pos_pi_vs_pad -nostat +phodo_1y_pos_pamp_vs_pad -nostat +phodo_1y_pos_tdc_time_vs_pad -nostat +newpage 2 3 logz +title SHMS Hodoscope 1Y- (Left) +phodo_1y_neg_adc_occu -nostat +phodo_1y_neg_tdc_occu -nostat +phodo_1y_neg_ped_vs_pad -nostat +phodo_1y_neg_pi_vs_pad -nostat +phodo_1y_neg_pamp_vs_pad -nostat +phodo_1y_neg_tdc_time_vs_pad -nostat +newpage 2 3 logz +title SHMS Hodoscope 2X+ (Left) +phodo_2x_pos_adc_occu -nostat +phodo_2x_pos_tdc_occu -nostat +phodo_2x_pos_ped_vs_pad -nostat +phodo_2x_pos_pi_vs_pad -nostat +phodo_2x_pos_pamp_vs_pad -nostat +phodo_2x_pos_tdc_time_vs_pad -nostat +newpage 2 3 logz +title SHMS Hodoscope 2X- (Left) +phodo_2x_neg_adc_occu -nostat +phodo_2x_neg_tdc_occu -nostat +phodo_2x_neg_ped_vs_pad -nostat +phodo_2x_neg_pi_vs_pad -nostat +phodo_2x_neg_pamp_vs_pad -nostat +phodo_2x_neg_tdc_time_vs_pad -nostat +newpage 2 3 logz +title SHMS Hodoscope 2Y+ (Left) +phodo_2y_pos_adc_occu -nostat +phodo_2y_pos_tdc_occu -nostat +phodo_2y_pos_ped_vs_pad -nostat +phodo_2y_pos_pi_vs_pad -nostat +phodo_2y_pos_pamp_vs_pad -nostat +phodo_2y_pos_tdc_time_vs_pad -nostat +newpage 2 3 logz +title SHMS Hodoscope 2Y- (Left) +phodo_2y_neg_adc_occu -nostat +phodo_2y_neg_tdc_occu -nostat +phodo_2y_neg_ped_vs_pad -nostat +phodo_2y_neg_pi_vs_pad -nostat +phodo_2y_neg_pamp_vs_pad -nostat +phodo_2y_neg_tdc_time_vs_pad -nostat +newpage 2 2 logz +title SHMS Heavy Gas Cherenkov +phgcer_occu -nostat +phgcer_ped_vs_cntr -nostat +phgcer_pi_vs_cntr -nostat +phgcer_amp_vs_cntr -nostat +newpage 2 2 logz +title SHMS Aerogel Positive (Left) +paero_pos_occu -nostat +paero_pos_ped_vs_cntr -nostat +paero_pos_pi_vs_cntr -nostat +paero_pos_amp_vs_cntr -nostat +newpage 2 2 logz +title SHMS Aerogel Negative (Right) +paero_neg_occu -nostat +paero_neg_ped_vs_cntr -nostat +paero_neg_pi_vs_cntr -nostat +paero_neg_amp_vs_cntr -nostat +newpage 2 2 logz +title SHMS Pre-Shower Positive (Left) +pcal_prshwr_pos_occu -nostat +pcal_prshwr_pos_ped_blk -nostat +pcal_prshwr_pos_pi_blk -nostat +pcal_prshwr_pos_amp_blk -nostat +newpage 2 2 logz +title SHMS Pre-Shower Negative (Right) +pcal_prshwr_neg_occu -nostat +pcal_prshwr_neg_ped_blk -nostat +pcal_prshwr_neg_pi_blk -nostat +pcal_prshwr_neg_amp_blk -nostat +newpage 2 2 logz +title SHMS Shower +pcal_shwr_occu -nostat +pcal_shwr_ped_blk -nostat +pcal_shwr_pi_blk -nostat +pcal_shwr_amp_blk -nostat +newpage 4 3 logz +title SHMS HGC/NGC Sums +ptrig_pngc_sum_pped +ptrig_pngc_sum_pint +ptrig_pngc_sum_pamp +ptrig_pngc_sum_ptime +ptrig_pngc_sum_tdc +ptrig_phgc_sum_pped +ptrig_phgc_sum_pint +ptrig_phgc_sum_pamp +ptrig_phgc_sum_ptime +ptrig_phgc_sum_tdc +newpage 3 3 logy +title SHMS Trigger Times +ptrig_p1x_tdc +ptrig_p1y_tdc +ptrig_p2x_tdc +ptrig_p2y_tdc +ptrig_p1T_tdc +ptrig_p2T_tdc +ptrig_pT1_tdc +ptrig_pT2_tdc +ptrig_pT3_tdc \ No newline at end of file diff --git a/onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg b/onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg new file mode 100644 index 00000000..a3e090af --- /dev/null +++ b/onlineGUI/Config/SHMS/HODO/good_phodo_2d.cfg @@ -0,0 +1,367 @@ +#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +protorootfile ../ROOTfiles/phodo_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 1 1 +title Beta notrack +macro Macros/gooddraw_2d_phodo.C("hbeta") +newpage 2 2 +title fptime +macro Macros/gooddraw_2d_phodo.C("fptime1x") +macro Macros/gooddraw_2d_phodo.C("fptime1y") +macro Macros/gooddraw_2d_phodo.C("fptime2x") +macro Macros/gooddraw_2d_phodo.C("fptime2y") +newpage 2 2 +title fptime +macro Macros/gooddraw_2d_phodo.C("fptime1x_pad") +macro Macros/gooddraw_2d_phodo.C("fptime1y_pad") +macro Macros/gooddraw_2d_phodo.C("fptime2x_pad") +macro Macros/gooddraw_2d_phodo.C("fptime2y_pad") +newpage 4 4 +title X1 Neg ADc v TDC +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1x13") +newpage 4 4 +title X1 Pos ADc v TDC +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1x13") +newpage 4 4 +title Y1 Neg ADc v TDC +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg1y13") +newpage 4 4 +title Y1 Pos ADc v TDC +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos1y13") +newpage 4 4 +title X2 Neg ADc v TDC +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x13") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2x14") +newpage 4 4 +title X2 Pos ADc v TDC +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x13") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2x14") +newpage 3 4 +title Y2 Neg ADc v TDC +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y13") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y14") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y15") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcneg2y16") +newpage 3 4 +title Y2 Pos ADc v TDC +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y13") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y14") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y15") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvtdcpos2y16") +newpage 4 4 +title X1 Eff Neg PMT +macro Macros/hodo_efficiency.C("uhdidneg1x1","uhshouldneg1x1") +macro Macros/hodo_efficiency.C("uhdidneg1x2","uhshouldneg1x2") +macro Macros/hodo_efficiency.C("uhdidneg1x3","uhshouldneg1x3") +macro Macros/hodo_efficiency.C("uhdidneg1x4","uhshouldneg1x4") +macro Macros/hodo_efficiency.C("uhdidneg1x5","uhshouldneg1x5") +macro Macros/hodo_efficiency.C("uhdidneg1x6","uhshouldneg1x6") +macro Macros/hodo_efficiency.C("uhdidneg1x7","uhshouldneg1x7") +macro Macros/hodo_efficiency.C("uhdidneg1x8","uhshouldneg1x8") +macro Macros/hodo_efficiency.C("uhdidneg1x9","uhshouldneg1x9") +macro Macros/hodo_efficiency.C("uhdidneg1x10","uhshouldneg1x10") +macro Macros/hodo_efficiency.C("uhdidneg1x11","uhshouldneg1x11") +macro Macros/hodo_efficiency.C("uhdidneg1x12","uhshouldneg1x12") +macro Macros/hodo_efficiency.C("uhdidneg1x13","uhshouldneg1x13") +newpage 4 4 +title X1 Eff Pos PMT +macro Macros/hodo_efficiency.C("uhdidpos1x1","uhshouldpos1x1") +macro Macros/hodo_efficiency.C("uhdidpos1x2","uhshouldpos1x2") +macro Macros/hodo_efficiency.C("uhdidpos1x3","uhshouldpos1x3") +macro Macros/hodo_efficiency.C("uhdidpos1x4","uhshouldpos1x4") +macro Macros/hodo_efficiency.C("uhdidpos1x5","uhshouldpos1x5") +macro Macros/hodo_efficiency.C("uhdidpos1x6","uhshouldpos1x6") +macro Macros/hodo_efficiency.C("uhdidpos1x7","uhshouldpos1x7") +macro Macros/hodo_efficiency.C("uhdidpos1x8","uhshouldpos1x8") +macro Macros/hodo_efficiency.C("uhdidpos1x9","uhshouldpos1x9") +macro Macros/hodo_efficiency.C("uhdidpos1x10","uhshouldpos1x10") +macro Macros/hodo_efficiency.C("uhdidpos1x11","uhshouldpos1x11") +macro Macros/hodo_efficiency.C("uhdidpos1x12","uhshouldpos1x12") +macro Macros/hodo_efficiency.C("uhdidpos1x13","uhshouldpos1x13") +newpage 3 4 +title Y1 Eff Neg PMT +macro Macros/hodo_efficiency.C("uhdidneg1y1","uhshouldneg1y1") +macro Macros/hodo_efficiency.C("uhdidneg1y2","uhshouldneg1y2") +macro Macros/hodo_efficiency.C("uhdidneg1y3","uhshouldneg1y3") +macro Macros/hodo_efficiency.C("uhdidneg1y4","uhshouldneg1y4") +macro Macros/hodo_efficiency.C("uhdidneg1y5","uhshouldneg1y5") +macro Macros/hodo_efficiency.C("uhdidneg1y6","uhshouldneg1y6") +macro Macros/hodo_efficiency.C("uhdidneg1y7","uhshouldneg1y7") +macro Macros/hodo_efficiency.C("uhdidneg1y8","uhshouldneg1y8") +macro Macros/hodo_efficiency.C("uhdidneg1y9","uhshouldneg1y9") +macro Macros/hodo_efficiency.C("uhdidneg1y10","uhshouldneg1y10") +macro Macros/hodo_efficiency.C("uhdidneg1y11","uhshouldneg1y11") +macro Macros/hodo_efficiency.C("uhdidneg1y12","uhshouldneg1y12") +macro Macros/hodo_efficiency.C("uhdidneg1y13","uhshouldneg1y13") +newpage 3 4 +title Y1 Eff Pos PMT +macro Macros/hodo_efficiency.C("uhdidpos1y1","uhshouldpos1y1") +macro Macros/hodo_efficiency.C("uhdidpos1y2","uhshouldpos1y2") +macro Macros/hodo_efficiency.C("uhdidpos1y3","uhshouldpos1y3") +macro Macros/hodo_efficiency.C("uhdidpos1y4","uhshouldpos1y4") +macro Macros/hodo_efficiency.C("uhdidpos1y5","uhshouldpos1y5") +macro Macros/hodo_efficiency.C("uhdidpos1y6","uhshouldpos1y6") +macro Macros/hodo_efficiency.C("uhdidpos1y7","uhshouldpos1y7") +macro Macros/hodo_efficiency.C("uhdidpos1y8","uhshouldpos1y8") +macro Macros/hodo_efficiency.C("uhdidpos1y9","uhshouldpos1y9") +macro Macros/hodo_efficiency.C("uhdidpos1y10","uhshouldpos1y10") +macro Macros/hodo_efficiency.C("uhdidpos1y11","uhshouldpos1y11") +macro Macros/hodo_efficiency.C("uhdidpos1y12","uhshouldpos1y12") +macro Macros/hodo_efficiency.C("uhdidpos1y13","uhshouldpos1y13") +newpage 4 4 +title X2 Eff Neg PMT +macro Macros/hodo_efficiency.C("uhdidneg2x1","uhshouldneg2x1") +macro Macros/hodo_efficiency.C("uhdidneg2x2","uhshouldneg2x2") +macro Macros/hodo_efficiency.C("uhdidneg2x3","uhshouldneg2x3") +macro Macros/hodo_efficiency.C("uhdidneg2x4","uhshouldneg2x4") +macro Macros/hodo_efficiency.C("uhdidneg2x5","uhshouldneg2x5") +macro Macros/hodo_efficiency.C("uhdidneg2x6","uhshouldneg2x6") +macro Macros/hodo_efficiency.C("uhdidneg2x7","uhshouldneg2x7") +macro Macros/hodo_efficiency.C("uhdidneg2x8","uhshouldneg2x8") +macro Macros/hodo_efficiency.C("uhdidneg2x9","uhshouldneg2x9") +macro Macros/hodo_efficiency.C("uhdidneg2x10","uhshouldneg2x10") +macro Macros/hodo_efficiency.C("uhdidneg2x11","uhshouldneg2x11") +macro Macros/hodo_efficiency.C("uhdidneg2x12","uhshouldneg2x12") +macro Macros/hodo_efficiency.C("uhdidneg2x13","uhshouldneg2x13") +macro Macros/hodo_efficiency.C("uhdidneg2x14","uhshouldneg2x14") +newpage 4 4 +title X2 Eff Pos PMT +macro Macros/hodo_efficiency.C("uhdidpos2x1","uhshouldpos2x1") +macro Macros/hodo_efficiency.C("uhdidpos2x2","uhshouldpos2x2") +macro Macros/hodo_efficiency.C("uhdidpos2x3","uhshouldpos2x3") +macro Macros/hodo_efficiency.C("uhdidpos2x4","uhshouldpos2x4") +macro Macros/hodo_efficiency.C("uhdidpos2x5","uhshouldpos2x5") +macro Macros/hodo_efficiency.C("uhdidpos2x6","uhshouldpos2x6") +macro Macros/hodo_efficiency.C("uhdidpos2x7","uhshouldpos2x7") +macro Macros/hodo_efficiency.C("uhdidpos2x8","uhshouldpos2x8") +macro Macros/hodo_efficiency.C("uhdidpos2x9","uhshouldpos2x9") +macro Macros/hodo_efficiency.C("uhdidpos2x10","uhshouldpos2x10") +macro Macros/hodo_efficiency.C("uhdidpos2x11","uhshouldpos2x11") +macro Macros/hodo_efficiency.C("uhdidpos2x12","uhshouldpos2x12") +macro Macros/hodo_efficiency.C("uhdidpos2x13","uhshouldpos2x13") +macro Macros/hodo_efficiency.C("uhdidpos2x14","uhshouldpos2x14") +newpage 3 4 +title Y2 Eff Neg PMT +macro Macros/hodo_efficiency.C("uhdidneg2y7","uhshouldneg2y7") +macro Macros/hodo_efficiency.C("uhdidneg2y8","uhshouldneg2y8") +macro Macros/hodo_efficiency.C("uhdidneg2y9","uhshouldneg2y9") +macro Macros/hodo_efficiency.C("uhdidneg2y10","uhshouldneg2y10") +macro Macros/hodo_efficiency.C("uhdidneg2y11","uhshouldneg2y11") +macro Macros/hodo_efficiency.C("uhdidneg2y12","uhshouldneg2y12") +macro Macros/hodo_efficiency.C("uhdidneg2y13","uhshouldneg2y13") +macro Macros/hodo_efficiency.C("uhdidneg2y14","uhshouldneg2y14") +macro Macros/hodo_efficiency.C("uhdidneg2y15","uhshouldneg2y15") +macro Macros/hodo_efficiency.C("uhdidneg2y16","uhshouldneg2y16") +newpage 3 4 +title Y2 Eff Pos PMT +macro Macros/hodo_efficiency.C("uhdidpos2y7","uhshouldpos2y7") +macro Macros/hodo_efficiency.C("uhdidpos2y8","uhshouldpos2y8") +macro Macros/hodo_efficiency.C("uhdidpos2y9","uhshouldpos2y9") +macro Macros/hodo_efficiency.C("uhdidpos2y10","uhshouldpos2y10") +macro Macros/hodo_efficiency.C("uhdidpos2y11","uhshouldpos2y11") +macro Macros/hodo_efficiency.C("uhdidpos2y12","uhshouldpos2y12") +macro Macros/hodo_efficiency.C("uhdidpos2y13","uhshouldpos2y13") +macro Macros/hodo_efficiency.C("uhdidpos2y14","uhshouldpos2y14") +macro Macros/hodo_efficiency.C("uhdidpos2y15","uhshouldpos2y15") +macro Macros/hodo_efficiency.C("uhdidpos2y16","uhshouldpos2y16") +newpage 4 4 +title X1 ADC int Pos vs Neg +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1x13") +newpage 3 4 +title Y1 ADC int Pos vs Neg +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc1y13") +newpage 4 4 +title X2 ADC int Pos vs Neg +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x13") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2x14") +newpage 3 4 +title Y2 ADC int Pos vs Neg +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y13") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y14") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y15") +macro Macros/gooddraw_2d_phodo.C("uh2dadcintgtdc2y16") +newpage 4 4 +title X1 TDC Pos vs Neg +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1x13") +newpage 3 4 +title Y1 TDC Pos vs Neg +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc1y13") +newpage 4 4 +title X2 TDC Pos vs Neg +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x13") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2x14") +newpage 3 4 +title Y2 TDC Pos vs Neg +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y13") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y14") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y15") +macro Macros/gooddraw_2d_phodo.C("uh2dtdc2y16") diff --git a/onlineGUI/Config/SHMS/HODO/good_phodo_2d_dis.cfg b/onlineGUI/Config/SHMS/HODO/good_phodo_2d_dis.cfg new file mode 100644 index 00000000..15452cad --- /dev/null +++ b/onlineGUI/Config/SHMS/HODO/good_phodo_2d_dis.cfg @@ -0,0 +1,293 @@ +protorootfile ../ROOTfiles/phodo_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 4 4 +title X1+ ADC vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1x13") +newpage 4 4 +title X1- ADC vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1x13") +newpage 4 4 +title Y1+ ADC vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos1y13") +newpage 4 4 +title Y1- ADC vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg1y13") +newpage 4 4 +title X2+ ADC vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x13") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2x14") +newpage 4 4 +title X2- ADC vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x1") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x2") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x3") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x4") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x5") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x6") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x13") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2x14") +newpage 3 3 +title Y2+ ADC vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y13") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y14") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y15") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdispos2y16") +newpage 3 3 +title Y2- ADC vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y7") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y8") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y9") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y10") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y11") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y12") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y13") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y14") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y15") +macro Macros/gooddraw_2d_phodo.C("uh2dadcvdisneg2y16") +newpage 4 4 +title X1+ tdc vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1x13") +newpage 4 4 +title X1- tdc vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1x13") +newpage 4 4 +title Y1+ tdc vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos1y13") +newpage 4 4 +title Y1- tdc vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg1y13") +newpage 4 4 +title X2+ tdc vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x13") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2x14") +newpage 4 4 +title X2- tdc vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x13") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2x14") +newpage 3 4 +title Y2+ tdc vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y13") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y14") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y15") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdispos2y16") +newpage 3 4 +title Y2- tdc vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y13") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y14") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y15") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcvdisneg2y16") +newpage 4 4 +title X1+ tdc diff vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1x13") +newpage 4 4 +title Y1+ tdc diff vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis1y13") +newpage 4 4 +title X2+ tdc vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x1") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x2") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x3") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x4") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x5") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x6") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x13") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2x14") +newpage 3 4 +title Y2+ tdc vs Dis +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y7") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y8") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y9") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y10") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y11") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y12") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y13") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y14") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y15") +macro Macros/gooddraw_2d_phodo.C("uh2dtdcdiffvdis2y16") diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_1x.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_1x.cfg new file mode 100644 index 00000000..bf655d26 --- /dev/null +++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_1x.cfg @@ -0,0 +1,273 @@ +protorootfile ../ROOTfiles/phodo_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 4 4 +title HMS X1+ Raw TDCs +macro Macros/rawdraw_phodo.C("uhtdc1x1posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x2posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x3posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x4posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x5posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x6posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x7posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x8posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x9posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x10posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x11posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x12posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x13posTimeRaw") +newpage 4 4 +title HMS X1- Raw TDCs +macro Macros/rawdraw_phodo.C("uhtdc1x1negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x2negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x3negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x4negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x5negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x6negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x7negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x8negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x9negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x10negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x11negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x12negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1x13negTimeRaw") +newpage 4 4 +title HMS X1+ TDCs +macro Macros/rawdraw_phodo.C("uhtdc1x1posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x2posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x3posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x4posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x5posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x6posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x7posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x8posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x9posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x10posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x11posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x12posTime") +macro Macros/rawdraw_phodo.C("uhtdc1x13posTime") +newpage 4 4 +title HMS X1- TDCs +macro Macros/rawdraw_phodo.C("uhtdc1x1negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x2negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x3negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x4negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x5negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x6negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x7negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x8negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x9negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x10negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x11negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x12negTime") +macro Macros/rawdraw_phodo.C("uhtdc1x13negTime") +newpage 4 4 +title HMS X1+ FADC Raw Pedestals +macro Macros/rawdraw_phodo.C("uhadc1x1posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x2posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x3posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x4posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x5posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x6posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x7posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x8posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x9posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x10posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x11posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x12posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x13posPedRaw") +newpage 4 4 +title HMS X1- FADC Raw Pedestals +macro Macros/rawdraw_phodo.C("uhadc1x1negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x2negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x3negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x4negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x5negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x6negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x7negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x8negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x9negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x10negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x11negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x12negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1x13negPedRaw") +newpage 4 4 +title HMS X1+ FADC Pedestals +macro Macros/rawdraw_phodo.C("uhadc1x1posPed") +macro Macros/rawdraw_phodo.C("uhadc1x2posPed") +macro Macros/rawdraw_phodo.C("uhadc1x3posPed") +macro Macros/rawdraw_phodo.C("uhadc1x4posPed") +macro Macros/rawdraw_phodo.C("uhadc1x5posPed") +macro Macros/rawdraw_phodo.C("uhadc1x6posPed") +macro Macros/rawdraw_phodo.C("uhadc1x7posPed") +macro Macros/rawdraw_phodo.C("uhadc1x8posPed") +macro Macros/rawdraw_phodo.C("uhadc1x9posPed") +macro Macros/rawdraw_phodo.C("uhadc1x10posPed") +macro Macros/rawdraw_phodo.C("uhadc1x11posPed") +macro Macros/rawdraw_phodo.C("uhadc1x12posPed") +macro Macros/rawdraw_phodo.C("uhadc1x13posPed") +newpage 4 4 +title HMS X1- FADC Pedestals +macro Macros/rawdraw_phodo.C("uhadc1x1negPed") +macro Macros/rawdraw_phodo.C("uhadc1x2negPed") +macro Macros/rawdraw_phodo.C("uhadc1x3negPed") +macro Macros/rawdraw_phodo.C("uhadc1x4negPed") +macro Macros/rawdraw_phodo.C("uhadc1x5negPed") +macro Macros/rawdraw_phodo.C("uhadc1x6negPed") +macro Macros/rawdraw_phodo.C("uhadc1x7negPed") +macro Macros/rawdraw_phodo.C("uhadc1x8negPed") +macro Macros/rawdraw_phodo.C("uhadc1x9negPed") +macro Macros/rawdraw_phodo.C("uhadc1x10negPed") +macro Macros/rawdraw_phodo.C("uhadc1x11negPed") +macro Macros/rawdraw_phodo.C("uhadc1x12negPed") +macro Macros/rawdraw_phodo.C("uhadc1x13negPed") +newpage 4 4 +title HMS X1+ FADC Raw Integrals +macro Macros/rawdraw_phodo.C("uhadc1x1posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x2posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x3posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x4posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x5posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x6posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x7posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x8posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x9posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x10posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x11posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x12posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x13posPulseIntRaw") +newpage 4 4 +title HMS X1- FADC Raw Integrals +macro Macros/rawdraw_phodo.C("uhadc1x1negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x2negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x3negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x4negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x5negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x6negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x7negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x8negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x9negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x10negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x11negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x12negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1x13negPulseIntRaw") +newpage 4 4 +title HMS X1+ FADC Integrals +macro Macros/rawdraw_phodo.C("uhadc1x1posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x2posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x3posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x4posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x5posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x6posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x7posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x8posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x9posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x10posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x11posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x12posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x13posPulseInt") +newpage 4 4 +title HMS X1- FADC Integrals +macro Macros/rawdraw_phodo.C("uhadc1x1negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x2negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x3negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x4negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x5negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x6negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x7negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x8negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x9negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x10negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x11negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x12negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1x13negPulseInt") +newpage 4 4 +title HMS X1+ FADC Amplitudes Raw +macro Macros/rawdraw_phodo.C("uhadc1x1posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x2posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x3posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x4posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x5posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x6posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x7posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x8posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x9posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x10posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x11posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x12posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x13posPulseAmpRaw") +newpage 4 4 +title HMS X1- FADC Amplitudes Raw +macro Macros/rawdraw_phodo.C("uhadc1x1negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x2negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x3negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x4negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x5negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x6negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x7negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x8negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x9negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x10negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x11negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x12negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1x13negPulseAmpRaw") +newpage 4 4 +title HMS X1+ FADC Amplitudes +macro Macros/rawdraw_phodo.C("uhadc1x1posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x2posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x3posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x4posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x5posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x6posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x7posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x8posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x9posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x10posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x11posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x12posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x13posPulseAmp") +newpage 4 4 +title HMS X1- FADC Amplitudes +macro Macros/rawdraw_phodo.C("uhadc1x1negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x2negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x3negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x4negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x5negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x6negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x7negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x8negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x9negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x10negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x11negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x12negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1x13negPulseAmp") +newpage 4 4 +title HMS X1+ FADC Times Raw +macro Macros/rawdraw_phodo.C("uhadc1x1posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x2posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x3posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x4posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x5posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x6posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x7posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x8posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x9posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x10posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x11posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x12posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x13posPulseTimeRaw") +newpage 4 4 +title HMS X1- FADC Times Raw +macro Macros/rawdraw_phodo.C("uhadc1x1negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x2negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x3negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x4negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x5negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x6negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x7negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x8negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x9negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x10negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x11negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x12negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1x13negPulseTimeRaw") diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_1y.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_1y.cfg new file mode 100644 index 00000000..f96b971f --- /dev/null +++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_1y.cfg @@ -0,0 +1,270 @@ +protorootfile ../ROOTfiles/phodo_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 3 4 +title HMS Y1+ Raw TDCs +macro Macros/rawdraw_phodo.C("uhtdc1y1posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y2posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y3posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y4posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y5posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y6posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y7posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y8posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y9posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y10posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y11posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y12posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y13posTimeRaw") +newpage 3 4 +title HMS Y1- Raw TDCs +macro Macros/rawdraw_phodo.C("uhtdc1y1negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y2negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y3negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y4negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y5negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y6negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y7negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y8negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y9negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y10negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y11negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y12negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc1y13negTimeRaw") +newpage 3 4 +title HMS Y1+ TDCs +macro Macros/rawdraw_phodo.C("uhtdc1y1posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y2posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y3posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y4posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y5posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y6posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y7posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y8posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y9posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y10posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y11posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y12posTime") +macro Macros/rawdraw_phodo.C("uhtdc1y13posTime") +newpage 3 4 +title HMS Y1- TDCs +macro Macros/rawdraw_phodo.C("uhtdc1y1negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y2negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y3negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y4negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y5negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y6negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y7negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y8negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y9negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y10negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y11negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y12negTime") +macro Macros/rawdraw_phodo.C("uhtdc1y13negTime") +newpage 3 4 +title HMS Y1+ FADC Raw Pedestals +macro Macros/rawdraw_phodo.C("uhadc1y1posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y2posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y3posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y4posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y5posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y6posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y7posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y8posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y9posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y10posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y11posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y12posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y13posPedRaw") +newpage 3 4 +title HMS Y1- FADC Raw Pedestals +macro Macros/rawdraw_phodo.C("uhadc1y1negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y2negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y3negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y4negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y5negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y6negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y7negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y8negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y9negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y10negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y11negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y12negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc1y13negPedRaw") +newpage 3 4 +title HMS Y1+ FADC Pedestals +macro Macros/rawdraw_phodo.C("uhadc1y1posPed") +macro Macros/rawdraw_phodo.C("uhadc1y2posPed") +macro Macros/rawdraw_phodo.C("uhadc1y3posPed") +macro Macros/rawdraw_phodo.C("uhadc1y4posPed") +macro Macros/rawdraw_phodo.C("uhadc1y5posPed") +macro Macros/rawdraw_phodo.C("uhadc1y6posPed") +macro Macros/rawdraw_phodo.C("uhadc1y7posPed") +macro Macros/rawdraw_phodo.C("uhadc1y8posPed") +macro Macros/rawdraw_phodo.C("uhadc1y9posPed") +macro Macros/rawdraw_phodo.C("uhadc1y10posPed") +macro Macros/rawdraw_phodo.C("uhadc1y11posPed") +macro Macros/rawdraw_phodo.C("uhadc1y12posPed") +macro Macros/rawdraw_phodo.C("uhadc1y13posPed") +newpage 3 4 +title HMS Y1- FADC Pedestals +macro Macros/rawdraw_phodo.C("uhadc1y1negPed") +macro Macros/rawdraw_phodo.C("uhadc1y2negPed") +macro Macros/rawdraw_phodo.C("uhadc1y3negPed") +macro Macros/rawdraw_phodo.C("uhadc1y4negPed") +macro Macros/rawdraw_phodo.C("uhadc1y5negPed") +macro Macros/rawdraw_phodo.C("uhadc1y6negPed") +macro Macros/rawdraw_phodo.C("uhadc1y7negPed") +macro Macros/rawdraw_phodo.C("uhadc1y8negPed") +macro Macros/rawdraw_phodo.C("uhadc1y9negPed") +macro Macros/rawdraw_phodo.C("uhadc1y10negPed") +macro Macros/rawdraw_phodo.C("uhadc1y11negPed") +macro Macros/rawdraw_phodo.C("uhadc1y12negPed") +macro Macros/rawdraw_phodo.C("uhadc1y13negPed") +newpage 3 4 +title HMS Y1+ FADC Raw Integrals +macro Macros/rawdraw_phodo.C("uhadc1y1posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y2posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y3posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y4posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y5posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y6posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y7posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y8posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y9posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y10posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y11posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y12posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y13posPulseIntRaw") +newpage 3 4 +title HMS Y1- FADC Raw Integrals +macro Macros/rawdraw_phodo.C("uhadc1y1negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y2negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y3negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y4negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y5negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y6negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y7negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y8negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y9negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y10negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y11negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y12negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc1y13negPulseIntRaw") +newpage 3 4 +title HMS Y1+ FADC Integrals +macro Macros/rawdraw_phodo.C("uhadc1y1posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y2posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y3posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y4posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y5posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y6posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y7posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y8posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y9posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y10posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y11posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y12posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y13posPulseInt") +newpage 3 4 +title HMS Y1- FADC Integrals +macro Macros/rawdraw_phodo.C("uhadc1y1negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y2negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y3negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y4negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y5negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y6negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y7negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y8negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y9negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y10negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y11negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y12negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc1y13negPulseInt") +newpage 3 4 +title HMS Y1+ FADC Amplitudes Raw +macro Macros/rawdraw_phodo.C("uhadc1y1posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y2posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y3posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y4posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y5posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y6posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y7posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y8posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y9posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y10posPulseAmpRaw") +newpage 3 4 +title HMS Y1- FADC Amplitudes Raw +macro Macros/rawdraw_phodo.C("uhadc1y1negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y2negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y3negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y4negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y5negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y6negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y7negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y8negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y9negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y10negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y11negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y12negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc1y13negPulseAmpRaw") +newpage 3 4 +title HMS Y1+ FADC Amplitudes +macro Macros/rawdraw_phodo.C("uhadc1y1posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y2posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y3posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y4posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y5posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y6posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y7posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y8posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y9posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y10posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y11posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y12posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y13posPulseAmp") +newpage 3 4 +title HMS Y1- FADC Amplitudes +macro Macros/rawdraw_phodo.C("uhadc1y1negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y2negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y3negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y4negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y5negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y6negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y7negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y8negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y9negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y10negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y11negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y12negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc1y13negPulseAmp") +newpage 3 4 +title HMS Y1+ FADC Times Raw +macro Macros/rawdraw_phodo.C("uhadc1y1posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y2posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y3posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y4posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y5posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y6posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y7posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y8posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y9posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y10posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y11posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y12posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y13posPulseTimeRaw") +newpage 3 4 +title HMS Y1- FADC Times Raw +macro Macros/rawdraw_phodo.C("uhadc1y1negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y2negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y3negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y4negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y5negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y6negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y7negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y8negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y9negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y10negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y11negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y12negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc1y13negPulseTimeRaw") diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg new file mode 100644 index 00000000..af177db3 --- /dev/null +++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_2d.cfg @@ -0,0 +1,306 @@ +#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +protorootfile ../ROOTfiles/phodo_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 4 4 +title X1 ADC peak Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x1") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x2") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x3") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x4") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x5") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x6") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x7") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x8") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x9") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x10") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x11") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x12") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1x13") +newpage 4 4 +title Y1 ADC peak Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y1") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y2") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y3") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y4") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y5") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y6") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y7") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y8") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y9") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y10") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y11") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y12") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak1y13") +newpage 4 4 +title X2 ADC peak Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x1") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x2") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x3") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x4") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x5") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x6") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x7") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x8") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x9") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x10") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x11") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x12") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x13") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2x14") +newpage 3 4 +title Y2 ADC peak Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y7") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y8") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y9") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y10") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y11") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y12") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y13") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y14") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y15") +macro Macros/rawdraw_2d_phodo.C("uh2dadcpeak2y16") +newpage 4 4 +title X1 ADC int Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x1") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x2") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x3") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x4") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x5") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x6") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x7") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x8") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x9") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x10") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x11") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x12") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1x13") +newpage 4 4 +title Y1 ADC int Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y1") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y2") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y3") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y4") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y5") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y6") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y7") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y8") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y9") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y10") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y11") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y12") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint1y13") +newpage 4 4 +title X2 ADC int Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x1") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x2") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x3") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x4") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x5") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x6") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x7") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x8") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x9") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x10") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x11") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x12") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x13") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2x14") +newpage 3 4 +title Y2 ADC int Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y7") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y8") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y9") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y10") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y11") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y12") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y13") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y14") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y15") +macro Macros/rawdraw_2d_phodo.C("uh2dadcint2y16") +newpage 3 4 +title Y2 ADC int cut Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y7") +macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y8") +macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y9") +macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y10") +macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y11") +macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y12") +macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y13") +macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y14") +macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y15") +macro Macros/rawdraw_2d_phodo.C("uh2dadcintcut2y16") +newpage 4 4 +title X1 TDC Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x1") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x2") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x3") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x4") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x5") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x6") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1x13") +newpage 4 4 +title Y1 TDC Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y1") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y2") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y3") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y4") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y5") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y6") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc1y13") +newpage 4 4 +title X2 TDC Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x1") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x2") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x3") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x4") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x5") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x6") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x13") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2x14") +newpage 3 4 +title Y2 TDC Pos vs Neg +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y13") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y14") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y15") +macro Macros/rawdraw_2d_phodo.C("uh2dtdc2y16") +newpage 4 4 +title X1- ADC (pC) vs TDC +macro Macros/rawdraw_2d_phodo.C("uh2d1x1neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x2neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x3neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x4neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x5neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x6neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x7neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x8neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x9neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x10neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x11neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x12neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1x13neg") +newpage 4 4 +title X1+ ADC (pC) vs TDC +macro Macros/rawdraw_2d_phodo.C("uh2d1x1pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x2pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x3pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x4pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x5pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x6pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x7pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x8pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x9pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x10pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x11pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x12pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1x13pos") +newpage 4 4 +title Y1- ADC (pC) vs TDC +macro Macros/rawdraw_2d_phodo.C("uh2d1y1neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y2neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y3neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y4neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y5neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y6neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y7neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y8neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y9neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y10neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y11neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y12neg") +macro Macros/rawdraw_2d_phodo.C("uh2d1y13neg") +newpage 4 4 +title Y1+ ADC (pC) vs TDC +macro Macros/rawdraw_2d_phodo.C("uh2d1y1pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y2pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y3pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y4pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y5pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y6pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y7pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y8pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y9pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y10pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y11pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y12pos") +macro Macros/rawdraw_2d_phodo.C("uh2d1y13pos") +newpage 4 4 +title X2- ADC (pC) vs TDC +macro Macros/rawdraw_2d_phodo.C("uh2d2x1neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x2neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x3neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x4neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x5neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x6neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x7neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x8neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x9neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x10neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x11neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x12neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x13neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2x14neg") +newpage 4 4 +title X2- ADC (pC) vs TDC +macro Macros/rawdraw_2d_phodo.C("uh2d2x1pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x2pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x3pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x4pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x5pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x6pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x7pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x8pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x9pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x10pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x11pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x12pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x13pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2x14pos") +newpage 3 4 +title Y2- ADC (pC) vs TDC +macro Macros/rawdraw_2d_phodo.C("uh2d2y7neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2y8neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2y9neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2y10neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2y11neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2y12neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2y13neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2y14neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2y15neg") +macro Macros/rawdraw_2d_phodo.C("uh2d2y16neg") +newpage 3 4 +title Y2+ ADC (pC) vs TDC +macro Macros/rawdraw_2d_phodo.C("uh2d2y7pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2y8pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2y9pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2y10pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2y11pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2y12pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2y13pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2y14pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2y15pos") +macro Macros/rawdraw_2d_phodo.C("uh2d2y16pos") diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_2d_pad.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_2d_pad.cfg new file mode 100644 index 00000000..a2fa99c2 --- /dev/null +++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_2d_pad.cfg @@ -0,0 +1,120 @@ +protorootfile ../ROOTfiles/phodo_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 4 4 +title X1 Neg TDC vs Y1 paddle +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x1") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x2") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x3") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x4") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x5") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x6") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1x13") +newpage 4 4 +title X1 Pos TDC vs Y1 paddle +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x1") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x2") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x3") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x4") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x5") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x6") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1x13") +newpage 4 4 +title Y1 Neg TDC vs X1 paddle +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y1") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y2") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y3") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y4") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y5") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y6") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg1y13") +newpage 4 4 +title Y1 Pos TDC vs X1 paddle +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y1") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y2") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y3") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y4") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y5") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y6") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos1y13") +newpage 4 4 +title X2 Neg TDC vs Y1 paddle +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x1") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x2") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x3") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x4") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x5") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x6") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x13") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2x14") +newpage 4 4 +title X2 Pos TDC vs Y1 paddle +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x1") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x2") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x3") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x4") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x5") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x6") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x13") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2x14") +newpage 3 3 +title Y2 Neg TDC vs X2 paddle +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y13") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y14") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y15") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdisneg2y16") +newpage 3 3 +title Y2 Pos TDC vs X2 paddle +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y7") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y8") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y9") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y10") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y11") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y12") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y13") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y14") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y15") +macro Macros/rawdraw_2d_phodo.C("uh2dtdcvdispos2y16") + diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_2x.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_2x.cfg new file mode 100644 index 00000000..8ef90da9 --- /dev/null +++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_2x.cfg @@ -0,0 +1,291 @@ +protorootfile ../ROOTfiles/phodo_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 4 4 +title HMS X2+ Raw TDCs +macro Macros/rawdraw_phodo.C("uhtdc2x1posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x2posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x3posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x4posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x5posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x6posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x7posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x8posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x9posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x10posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x11posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x12posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x13posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x14posTimeRaw") +newpage 4 4 +title HMS X2- Raw TDCs +macro Macros/rawdraw_phodo.C("uhtdc2x1negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x2negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x3negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x4negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x5negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x6negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x7negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x8negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x9negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x10negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x11negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x12negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x13negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2x14negTimeRaw") +newpage 4 4 +title HMS X2+ TDCs +macro Macros/rawdraw_phodo.C("uhtdc2x1posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x2posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x3posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x4posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x5posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x6posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x7posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x8posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x9posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x10posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x11posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x12posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x13posTime") +macro Macros/rawdraw_phodo.C("uhtdc2x14posTime") +newpage 4 4 +title HMS X2- TDCs +macro Macros/rawdraw_phodo.C("uhtdc2x1negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x2negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x3negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x4negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x5negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x6negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x7negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x8negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x9negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x10negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x11negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x12negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x13negTime") +macro Macros/rawdraw_phodo.C("uhtdc2x14negTime") +newpage 4 4 +title HMS X2+ FADC Raw Pedestals +macro Macros/rawdraw_phodo.C("uhadc2x1posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x2posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x3posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x4posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x5posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x6posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x7posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x8posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x9posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x10posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x11posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x12posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x13posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x14posPedRaw") +newpage 4 4 +title HMS X2- FADC Raw Pedestals +macro Macros/rawdraw_phodo.C("uhadc2x1negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x2negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x3negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x4negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x5negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x6negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x7negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x8negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x9negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x10negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x11negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x12negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x13negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2x14negPedRaw") +newpage 4 4 +title HMS X2+ FADC Pedestals +macro Macros/rawdraw_phodo.C("uhadc2x1posPed") +macro Macros/rawdraw_phodo.C("uhadc2x2posPed") +macro Macros/rawdraw_phodo.C("uhadc2x3posPed") +macro Macros/rawdraw_phodo.C("uhadc2x4posPed") +macro Macros/rawdraw_phodo.C("uhadc2x5posPed") +macro Macros/rawdraw_phodo.C("uhadc2x6posPed") +macro Macros/rawdraw_phodo.C("uhadc2x7posPed") +macro Macros/rawdraw_phodo.C("uhadc2x8posPed") +macro Macros/rawdraw_phodo.C("uhadc2x9posPed") +macro Macros/rawdraw_phodo.C("uhadc2x10posPed") +macro Macros/rawdraw_phodo.C("uhadc2x11posPed") +macro Macros/rawdraw_phodo.C("uhadc2x12posPed") +macro Macros/rawdraw_phodo.C("uhadc2x13posPed") +macro Macros/rawdraw_phodo.C("uhadc2x14posPed") +newpage 4 4 +title HMS X2- FADC Pedestals +macro Macros/rawdraw_phodo.C("uhadc2x1negPed") +macro Macros/rawdraw_phodo.C("uhadc2x2negPed") +macro Macros/rawdraw_phodo.C("uhadc2x3negPed") +macro Macros/rawdraw_phodo.C("uhadc2x4negPed") +macro Macros/rawdraw_phodo.C("uhadc2x5negPed") +macro Macros/rawdraw_phodo.C("uhadc2x6negPed") +macro Macros/rawdraw_phodo.C("uhadc2x7negPed") +macro Macros/rawdraw_phodo.C("uhadc2x8negPed") +macro Macros/rawdraw_phodo.C("uhadc2x9negPed") +macro Macros/rawdraw_phodo.C("uhadc2x10negPed") +macro Macros/rawdraw_phodo.C("uhadc2x11negPed") +macro Macros/rawdraw_phodo.C("uhadc2x12negPed") +macro Macros/rawdraw_phodo.C("uhadc2x13negPed") +macro Macros/rawdraw_phodo.C("uhadc2x14negPed") +newpage 4 4 +title HMS X2+ FADC Raw Integrals +macro Macros/rawdraw_phodo.C("uhadc2x1posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x2posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x3posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x4posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x5posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x6posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x7posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x8posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x9posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x10posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x11posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x12posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x13posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x14posPulseIntRaw") +newpage 4 4 +title HMS X2- FADC Raw Integrals +macro Macros/rawdraw_phodo.C("uhadc2x1negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x2negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x3negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x4negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x5negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x6negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x7negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x8negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x9negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x10negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x11negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x12negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x13negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2x14negPulseIntRaw") +newpage 4 4 +title HMS X2+ FADC Integrals +macro Macros/rawdraw_phodo.C("uhadc2x1posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x2posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x3posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x4posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x5posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x6posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x7posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x8posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x9posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x10posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x11posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x12posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x13posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x14posPulseInt") +newpage 4 4 +title HMS X2- FADC Integrals +macro Macros/rawdraw_phodo.C("uhadc2x1negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x2negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x3negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x4negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x5negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x6negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x7negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x8negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x9negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x10negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x11negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x12negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x13negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2x14negPulseInt") +newpage 4 4 +title HMS X2+ FADC Amplitudes Raw +macro Macros/rawdraw_phodo.C("uhadc2x1posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x2posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x3posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x4posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x5posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x6posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x7posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x8posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x9posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x10posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x11posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x12posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x13posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x14posPulseAmpRaw") +newpage 4 4 +title HMS X2- FADC Amplitudes Raw +macro Macros/rawdraw_phodo.C("uhadc2x1negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x2negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x3negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x4negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x5negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x6negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x7negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x8negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x9negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x10negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x11negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x12negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x13negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2x14negPulseAmpRaw") +newpage 4 4 +title HMS X2+ FADC Amplitudes +macro Macros/rawdraw_phodo.C("uhadc2x1posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x2posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x3posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x4posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x5posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x6posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x7posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x8posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x9posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x10posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x11posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x12posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x13posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x14posPulseAmp") +newpage 4 4 +title HMS X2- FADC Amplitudes +macro Macros/rawdraw_phodo.C("uhadc2x1negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x2negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x3negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x4negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x5negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x6negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x7negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x8negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x9negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x10negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x11negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x12negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x13negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2x14negPulseAmp") +newpage 4 4 +title HMS X2+ FADC Times Raw +macro Macros/rawdraw_phodo.C("uhadc2x1posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x2posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x3posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x4posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x5posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x6posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x7posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x8posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x9posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x10posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x11posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x12posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x13posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x14posPulseTimeRaw") +newpage 4 4 +title HMS X2- FADC Times Raw +macro Macros/rawdraw_phodo.C("uhadc2x1negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x2negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x3negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x4negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x5negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x6negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x7negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x8negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x9negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x10negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x11negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x12negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x13negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2x14negPulseTimeRaw") diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodo_2y.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodo_2y.cfg new file mode 100644 index 00000000..c14971fb --- /dev/null +++ b/onlineGUI/Config/SHMS/HODO/raw_phodo_2y.cfg @@ -0,0 +1,417 @@ +protorootfile ../ROOTfiles/phodo_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 5 4 +title HMS Y2+ Raw TDCs +macro Macros/rawdraw_phodo.C("uhtdc2y1posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y2posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y3posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y4posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y5posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y6posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y7posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y8posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y9posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y10posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y11posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y12posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y13posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y14posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y15posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y16posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y17posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y18posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y19posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y20posTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y21posTimeRaw") +newpage 3 4 +title HMS Y2- Raw TDCs +macro Macros/rawdraw_phodo.C("uhtdc2y1negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y2negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y3negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y4negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y5negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y6negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y7negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y8negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y9negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y10negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y11negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y12negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y13negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y14negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y15negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y16negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y17negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y18negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y19negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y20negTimeRaw") +macro Macros/rawdraw_phodo.C("uhtdc2y21negTimeRaw") +newpage 3 4 +title HMS Y2+ TDCs +macro Macros/rawdraw_phodo.C("uhtdc2y1posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y2posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y3posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y4posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y5posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y6posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y7posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y8posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y9posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y10posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y11posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y12posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y13posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y14posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y15posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y16posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y17posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y18posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y19posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y20posTime") +macro Macros/rawdraw_phodo.C("uhtdc2y21posTime") +newpage 3 4 +title HMS Y2- TDCs +macro Macros/rawdraw_phodo.C("uhtdc2y1negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y2negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y3negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y4negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y5negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y6negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y7negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y8negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y9negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y10negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y11negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y12negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y13negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y14negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y15negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y16negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y17negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y18negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y19negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y20negTime") +macro Macros/rawdraw_phodo.C("uhtdc2y21negTime") +newpage 3 4 +title HMS Y2+ FADC Raw Pedestals +macro Macros/rawdraw_phodo.C("uhadc2y1posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y2posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y3posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y4posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y5posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y6posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y7posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y8posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y9posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y10posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y11posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y12posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y13posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y14posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y15posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y16posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y17posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y18posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y19posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y20posPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y21posPedRaw") +newpage 3 4 +title HMS Y2- FADC Raw Pedestals +macro Macros/rawdraw_phodo.C("uhadc2y1negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y2negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y3negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y4negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y5negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y6negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y7negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y8negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y9negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y10negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y11negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y12negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y13negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y14negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y15negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y16negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y17negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y18negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y19negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y20negPedRaw") +macro Macros/rawdraw_phodo.C("uhadc2y21negPedRaw") +newpage 3 4 +title HMS Y2+ FADC Pedestals +macro Macros/rawdraw_phodo.C("uhadc2y1posPed") +macro Macros/rawdraw_phodo.C("uhadc2y2posPed") +macro Macros/rawdraw_phodo.C("uhadc2y3posPed") +macro Macros/rawdraw_phodo.C("uhadc2y4posPed") +macro Macros/rawdraw_phodo.C("uhadc2y5posPed") +macro Macros/rawdraw_phodo.C("uhadc2y6posPed") +macro Macros/rawdraw_phodo.C("uhadc2y7posPed") +macro Macros/rawdraw_phodo.C("uhadc2y8posPed") +macro Macros/rawdraw_phodo.C("uhadc2y9posPed") +macro Macros/rawdraw_phodo.C("uhadc2y10posPed") +macro Macros/rawdraw_phodo.C("uhadc2y11posPed") +macro Macros/rawdraw_phodo.C("uhadc2y12posPed") +macro Macros/rawdraw_phodo.C("uhadc2y13posPed") +macro Macros/rawdraw_phodo.C("uhadc2y14posPed") +macro Macros/rawdraw_phodo.C("uhadc2y15posPed") +macro Macros/rawdraw_phodo.C("uhadc2y16posPed") +macro Macros/rawdraw_phodo.C("uhadc2y17posPed") +macro Macros/rawdraw_phodo.C("uhadc2y18posPed") +macro Macros/rawdraw_phodo.C("uhadc2y19posPed") +macro Macros/rawdraw_phodo.C("uhadc2y20posPed") +macro Macros/rawdraw_phodo.C("uhadc2y21posPed") +newpage 3 4 +title HMS Y2- FADC Pedestals +macro Macros/rawdraw_phodo.C("uhadc2y1negPed") +macro Macros/rawdraw_phodo.C("uhadc2y2negPed") +macro Macros/rawdraw_phodo.C("uhadc2y3negPed") +macro Macros/rawdraw_phodo.C("uhadc2y4negPed") +macro Macros/rawdraw_phodo.C("uhadc2y5negPed") +macro Macros/rawdraw_phodo.C("uhadc2y6negPed") +macro Macros/rawdraw_phodo.C("uhadc2y7negPed") +macro Macros/rawdraw_phodo.C("uhadc2y8negPed") +macro Macros/rawdraw_phodo.C("uhadc2y9negPed") +macro Macros/rawdraw_phodo.C("uhadc2y10negPed") +macro Macros/rawdraw_phodo.C("uhadc2y11negPed") +macro Macros/rawdraw_phodo.C("uhadc2y12negPed") +macro Macros/rawdraw_phodo.C("uhadc2y13negPed") +macro Macros/rawdraw_phodo.C("uhadc2y14negPed") +macro Macros/rawdraw_phodo.C("uhadc2y15negPed") +macro Macros/rawdraw_phodo.C("uhadc2y16negPed") +macro Macros/rawdraw_phodo.C("uhadc2y17negPed") +macro Macros/rawdraw_phodo.C("uhadc2y18negPed") +macro Macros/rawdraw_phodo.C("uhadc2y19negPed") +macro Macros/rawdraw_phodo.C("uhadc2y20negPed") +macro Macros/rawdraw_phodo.C("uhadc2y21negPed") +newpage 3 4 +title HMS Y2+ FADC Raw Integrals +macro Macros/rawdraw_phodo.C("uhadc2y1posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y2posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y3posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y4posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y5posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y6posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y7posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y8posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y9posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y10posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y11posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y12posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y13posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y14posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y15posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y16posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y17posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y18posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y19posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y20posPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y21posPulseIntRaw") +newpage 3 4 +title HMS Y2- FADC Raw Integrals +macro Macros/rawdraw_phodo.C("uhadc2y1negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y2negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y3negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y4negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y5negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y6negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y7negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y8negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y9negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y10negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y11negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y12negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y13negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y14negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y15negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y16negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y17negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y18negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y19negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y20negPulseIntRaw") +macro Macros/rawdraw_phodo.C("uhadc2y21negPulseIntRaw") +newpage 3 4 +title HMS Y2+ FADC Integrals +macro Macros/rawdraw_phodo.C("uhadc2y1posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y2posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y3posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y4posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y5posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y6posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y7posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y8posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y9posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y10posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y11posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y12posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y13posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y14posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y15posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y16posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y17posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y18posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y19posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y20posPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y21posPulseInt") +newpage 3 4 +title HMS Y2- FADC Integrals +macro Macros/rawdraw_phodo.C("uhadc2y1negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y2negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y3negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y4negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y5negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y6negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y7negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y8negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y9negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y10negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y11negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y12negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y13negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y14negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y15negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y16negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y17negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y18negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y19negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y20negPulseInt") +macro Macros/rawdraw_phodo.C("uhadc2y21negPulseInt") +newpage 3 4 +title HMS Y2+ FADC Amplitudes Raw +macro Macros/rawdraw_phodo.C("uhadc2y1posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y2posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y3posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y4posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y5posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y6posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y7posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y8posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y9posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y10posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y11posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y12posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y13posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y14posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y15posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y16posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y17posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y18posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y19posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y20posPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y20posPulseAmpRaw") +newpage 3 4 +title HMS Y2- FADC Amplitudes Raw +macro Macros/rawdraw_phodo.C("uhadc2y1negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y2negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y3negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y4negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y5negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y6negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y7negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y8negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y9negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y10negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y11negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y12negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y13negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y14negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y15negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y16negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y17negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y18negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y19negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y20negPulseAmpRaw") +macro Macros/rawdraw_phodo.C("uhadc2y21negPulseAmpRaw") +newpage 3 4 +title HMS Y2+ FADC Amplitudes +macro Macros/rawdraw_phodo.C("uhadc2y1posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y2posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y3posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y4posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y5posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y6posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y7posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y8posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y9posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y10posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y11posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y12posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y13posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y14posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y15posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y16posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y17posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y18posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y19posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y20posPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y21posPulseAmp") +newpage 3 4 +title HMS Y2- FADC Amplitudes +macro Macros/rawdraw_phodo.C("uhadc2y1negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y2negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y3negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y4negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y5negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y6negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y7negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y8negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y9negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y10negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y11negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y12negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y13negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y14negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y15negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y16negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y17negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y18negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y19negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y20negPulseAmp") +macro Macros/rawdraw_phodo.C("uhadc2y21negPulseAmp") +newpage 3 4 +title HMS Y2+ FADC Times Raw +macro Macros/rawdraw_phodo.C("uhadc2y1posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y2posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y3posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y4posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y5posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y6posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y7posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y8posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y9posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y10posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y11posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y12posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y13posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y14posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y15posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y16posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y17posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y18posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y19posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y20posPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y21posPulseTimeRaw") +newpage 3 4 +title HMS Y2- FADC Times Raw +macro Macros/rawdraw_phodo.C("uhadc2y1negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y2negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y3negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y4negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y5negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y6negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y7negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y8negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y9negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y10negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y11negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y12negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y13negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y14negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y15negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y16negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y17negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y18negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y19negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y20negPulseTimeRaw") +macro Macros/rawdraw_phodo.C("uhadc2y21negPulseTimeRaw") diff --git a/onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg b/onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg new file mode 100644 index 00000000..758bdd23 --- /dev/null +++ b/onlineGUI/Config/SHMS/HODO/raw_phodoana.cfg @@ -0,0 +1,130 @@ +#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +protorootfile ../ROOTfiles/phodo_replay_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 2 2 +title SHMS Hodo Nhits +phodo_1x_multi +phodo_1y_multi +phodo_2x_multi +phodo_2y_multi +newpage 2 2 +title SHMS Hodo Raw ADC Occupancy +macro Macros/overlay.C("phodo_1x_pos_adc_occu","phodo_1x_neg_adc_occu") +macro Macros/overlay.C("phodo_1y_pos_adc_occu","phodo_1y_neg_adc_occu") +macro Macros/overlay.C("phodo_2x_pos_adc_occu","phodo_2x_neg_adc_occu") +macro Macros/overlay.C("phodo_2y_pos_adc_occu","phodo_2y_neg_adc_occu") +newpage 2 2 +title SHMS Hodo Raw TDC Occupancy +macro Macros/overlay.C("phodo_1x_pos_tdc_occu","phodo_1x_neg_tdc_occu") +macro Macros/overlay.C("phodo_1y_pos_tdc_occu","phodo_1y_neg_tdc_occu") +macro Macros/overlay.C("phodo_2x_pos_tdc_occu","phodo_2x_neg_tdc_occu") +macro Macros/overlay.C("phodo_2y_pos_tdc_occu","phodo_2y_neg_tdc_occu") +newpage 2 2 +title SHMS Hodo Raw Ped PMT+ +phodo_1x_pos_rawped_vs_pad -type colz +phodo_1y_pos_rawped_vs_pad -type colz +phodo_2x_pos_rawped_vs_pad -type colz +phodo_2y_pos_rawped_vs_pad -type colz +newpage 2 2 +title SHMS Hodo Raw Ped PMT- +phodo_1x_neg_rawped_vs_pad -type colz +phodo_1y_neg_rawped_vs_pad -type colz +phodo_2x_neg_rawped_vs_pad -type colz +phodo_2y_neg_rawped_vs_pad -type colz +newpage 2 2 +title SHMS Hodo Raw Int PMT+ +phodo_1x_pos_rawpi_vs_pad -type colz +phodo_1y_pos_rawpi_vs_pad -type colz +phodo_2x_pos_rawpi_vs_pad -type colz +phodo_2y_pos_rawpi_vs_pad -type colz +newpage 2 2 +title SHMS Hodo Raw Int PMT- +phodo_1x_neg_rawpi_vs_pad -type colz +phodo_1y_neg_rawpi_vs_pad -type colz +phodo_2x_neg_rawpi_vs_pad -type colz +phodo_2y_neg_rawpi_vs_pad -type colz +newpage 2 2 +title SHMS Hodo Raw Peak PMT+ +phodo_1x_pos_rawpamp_vs_pad -type colz +phodo_1y_pos_rawpamp_vs_pad -type colz +phodo_2x_pos_rawpamp_vs_pad -type colz +phodo_2y_pos_rawpamp_vs_pad -type colz +newpage 2 2 +title SHMS Hodo Raw Peak PMT- +phodo_1x_neg_rawpamp_vs_pad -type colz +phodo_1y_neg_rawpamp_vs_pad -type colz +phodo_2x_neg_rawpamp_vs_pad -type colz +phodo_2y_neg_rawpamp_vs_pad -type colz +newpage 2 2 +title SHMS Hodo Raw Adc Time PMT+ +phodo_1x_pos_rawptime_vs_pad -type colz +phodo_1y_pos_rawptime_vs_pad -type colz +phodo_2x_pos_rawptime_vs_pad -type colz +phodo_2y_pos_rawptime_vs_pad -type colz +newpage 2 2 +title SHMS Hodo Raw ADc Time PMT- +phodo_1x_neg_rawptime_vs_pad -type colz +phodo_1y_neg_rawptime_vs_pad -type colz +phodo_2x_neg_rawptime_vs_pad -type colz +phodo_2y_neg_rawptime_vs_pad -type colz +newpage 2 2 +title SHMS Hodo Raw TDC time PMT+ +phodo_1x_pos_raw_tdc_time_vs_pad -type colz +phodo_1y_pos_raw_tdc_time_vs_pad -type colz +phodo_2x_pos_raw_tdc_time_vs_pad -type colz +phodo_2y_pos_raw_tdc_time_vs_pad -type colz +newpage 2 2 +title SHMS Hodo Raw TDC time PMT- +phodo_1x_neg_raw_tdc_time_vs_pad -type colz +phodo_1y_neg_raw_tdc_time_vs_pad -type colz +phodo_2x_neg_raw_tdc_time_vs_pad -type colz +phodo_2y_neg_raw_tdc_time_vs_pad -type colz +newpage 2 2 +title SHMS Hodo Ped PMT+ +phodo_1x_pos_ped_vs_pad -type colz +phodo_1y_pos_ped_vs_pad -type colz +phodo_2x_pos_ped_vs_pad -type colz +phodo_2y_pos_ped_vs_pad -type colz +newpage 2 2 +title SHMS Hodo Ped PMT- +phodo_1x_neg_ped_vs_pad -type colz +phodo_1y_neg_ped_vs_pad -type colz +phodo_2x_neg_ped_vs_pad -type colz +phodo_2y_neg_ped_vs_pad -type colz +newpage 2 2 +title SHMS Hodo ADC Int PMT+ +phodo_1x_pos_pi_vs_pad -type colz +phodo_1y_pos_pi_vs_pad -type colz +phodo_2x_pos_pi_vs_pad -type colz +phodo_2y_pos_pi_vs_pad -type colz +newpage 2 2 +title SHMS Hodo ADC Int PMT- +phodo_1x_neg_pi_vs_pad -type colz +phodo_1y_neg_pi_vs_pad -type colz +phodo_2x_neg_pi_vs_pad -type colz +phodo_2y_neg_pi_vs_pad -type colz +newpage 2 2 +title SHMS Hodo ADC Peak PMT+ +phodo_1x_pos_pamp_vs_pad -type colz +phodo_1y_pos_pamp_vs_pad -type colz +phodo_2x_pos_pamp_vs_pad -type colz +phodo_2y_pos_pamp_vs_pad -type colz +newpage 2 2 +title SHMS Hodo ADc Peak PMT- +phodo_1x_neg_pamp_vs_pad -type colz +phodo_1y_neg_pamp_vs_pad -type colz +phodo_2x_neg_pamp_vs_pad -type colz +phodo_2y_neg_pamp_vs_pad -type colz +newpage 2 2 +title SHMS Hodo TDC time PMT+ +phodo_1x_pos_tdc_time_vs_pad -type colz +phodo_1y_pos_tdc_time_vs_pad -type colz +phodo_2x_pos_tdc_time_vs_pad -type colz +phodo_2y_pos_tdc_time_vs_pad -type colz +newpage 2 2 +title SHMS Hodo TDC time PMT- +phodo_1x_neg_tdc_time_vs_pad -type colz +phodo_1y_neg_tdc_time_vs_pad -type colz +phodo_2x_neg_tdc_time_vs_pad -type colz +phodo_2y_neg_tdc_time_vs_pad -type colz diff --git a/onlineGUI/Config/SHMS/RASTER/simple_raster.cfg b/onlineGUI/Config/SHMS/RASTER/simple_raster.cfg new file mode 100644 index 00000000..670f32da --- /dev/null +++ b/onlineGUI/Config/SHMS/RASTER/simple_raster.cfg @@ -0,0 +1,20 @@ +#protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +protorootfile ../ROOTfiles/shms_raster_simple_XXXXX.root +guicolor lightblue +canvassize 800 800 +newpage 2 2 +title HMS 1D Raster Raw ADC +pFRXA +pFRXB +pFRYA +pFRYB +newpage 2 2 +title HMS 1D Raster (Volts) +pFRXA_V +pFRXB_V +pFRYA_V +pFRYB_V +newpage 1 2 +title HMS Hodo Raw Ped PMT+ +pFRA_XvsY -type colz +pFRB_XvsY -type colz diff --git a/onlineGUI/Config/kpp.cfg b/onlineGUI/Config/kpp.cfg new file mode 100755 index 00000000..3ba6650a --- /dev/null +++ b/onlineGUI/Config/kpp.cfg @@ -0,0 +1,121 @@ +protorootfile ../ROOTfiles/shms_replay_XXXXX.root +guicolor orange +canvassize 1600 800 +#canvassize 800 800 +newpage 3 3 +title Trigger Times +macro Macros/kpp_analysis.C("h_p1X_tdc") +macro Macros/kpp_analysis.C("h_p1Y_tdc") +macro Macros/kpp_analysis.C("h_p2X_tdc") +macro Macros/kpp_analysis.C("h_p2Y_tdc") +macro Macros/kpp_analysis.C("h_p1T_tdc") +macro Macros/kpp_analysis.C("h_p2T_tdc") +macro Macros/kpp_analysis.C("h_pT1_tdc") +macro Macros/kpp_analysis.C("h_pT2_tdc") +macro Macros/kpp_analysis.C("h_pT3_tdc") +newpage 4 3 +title Hodoscope Plane Reference Times +macro Macros/kpp_analysis.C("h_p1XmpT2_tdc") +macro Macros/kpp_analysis.C("h_p1YmpT2_tdc") +macro Macros/kpp_analysis.C("h_p2XmpT2_tdc") +macro Macros/kpp_analysis.C("h_p2YmpT2_tdc") +macro Macros/kpp_analysis.C("h_p1XmpT3_tdc") +macro Macros/kpp_analysis.C("h_p1YmpT3_tdc") +macro Macros/kpp_analysis.C("h_p2XmpT3_tdc") +macro Macros/kpp_analysis.C("h_p2YmpT3_tdc") +macro Macros/kpp_analysis.C("h_p1TmpT2_tdc") +macro Macros/kpp_analysis.C("h_p1TmpT3_tdc") +macro Macros/kpp_analysis.C("h_p2TmpT2_tdc") +macro Macros/kpp_analysis.C("h_p2TmpT3_tdc") +newpage 2 2 logz +title Negative Hodoscope Corrected TDC Times +macro Macros/kpp_analysis.C("h2_p1X_negTdcCorr") +macro Macros/kpp_analysis.C("h2_p1Y_negTdcCorr") +macro Macros/kpp_analysis.C("h2_p2X_negTdcCorr") +macro Macros/kpp_analysis.C("h2_p2Y_negTdcCorr") +newpage 2 2 logz +title Positive Hodoscope Corrected TDC Times +macro Macros/kpp_analysis.C("h2_p1X_posTdcCorr") +macro Macros/kpp_analysis.C("h2_p1Y_posTdcCorr") +macro Macros/kpp_analysis.C("h2_p2X_posTdcCorr") +macro Macros/kpp_analysis.C("h2_p2Y_posTdcCorr") +newpage 2 2 logz +title Negative Hodoscope Pulse Time - TDC Time +macro Macros/kpp_analysis.C("h2_p1Xneg_pt_tt_diff") +macro Macros/kpp_analysis.C("h2_p1Yneg_pt_tt_diff") +macro Macros/kpp_analysis.C("h2_p2Xneg_pt_tt_diff") +macro Macros/kpp_analysis.C("h2_p2Yneg_pt_tt_diff") +newpage 2 2 logz +title Positive Hodoscope Pulse Time - TDC Time +macro Macros/kpp_analysis.C("h2_p1Xpos_pt_tt_diff") +macro Macros/kpp_analysis.C("h2_p1Ypos_pt_tt_diff") +macro Macros/kpp_analysis.C("h2_p2Xpos_pt_tt_diff") +macro Macros/kpp_analysis.C("h2_p2Ypos_pt_tt_diff") +newpage 2 2 logz +title Hodoscope Corrected TDC Time Differences +macro Macros/kpp_analysis.C("h2_p1X_tdcCorrDiff") +macro Macros/kpp_analysis.C("h2_p1Y_tdcCorrDiff") +macro Macros/kpp_analysis.C("h2_p2X_tdcCorrDiff") +macro Macros/kpp_analysis.C("h2_p2Y_tdcCorrDiff") +newpage 2 2 +title Plane Times +macro Macros/kpp_analysis.C("h_p1X_plTime") +macro Macros/kpp_analysis.C("h_p1Y_plTime") +macro Macros/kpp_analysis.C("h_p2X_plTime") +macro Macros/kpp_analysis.C("h_p2Y_plTime") +newpage 2 2 +title Focal Plane Times +macro Macros/kpp_analysis.C("h_p1X_fpTime") +macro Macros/kpp_analysis.C("h_p1Y_fpTime") +macro Macros/kpp_analysis.C("h_p2X_fpTime") +macro Macros/kpp_analysis.C("h_p2Y_fpTime") +newpage 2 3 logz +title Aerogel ADC Pulse Times +macro Macros/kpp_analysis.C("h2_paero_posPulseTime_pT1_diff") +macro Macros/kpp_analysis.C("h2_paero_negPulseTime_pT1_diff") +macro Macros/kpp_analysis.C("h2_paero_posPulseTime_pT2_diff") +macro Macros/kpp_analysis.C("h2_paero_negPulseTime_pT2_diff") +macro Macros/kpp_analysis.C("h2_paero_posPulseTime_pT3_diff") +macro Macros/kpp_analysis.C("h2_paero_negPulseTime_pT3_diff") +newpage 2 3 logz +title Pre-Shower ADC Pulse Times +macro Macros/kpp_analysis.C("h2_ppshwr_posPulseTime_pT1_diff") +macro Macros/kpp_analysis.C("h2_ppshwr_negPulseTime_pT1_diff") +macro Macros/kpp_analysis.C("h2_ppshwr_posPulseTime_pT2_diff") +macro Macros/kpp_analysis.C("h2_ppshwr_negPulseTime_pT2_diff") +macro Macros/kpp_analysis.C("h2_ppshwr_posPulseTime_pT3_diff") +macro Macros/kpp_analysis.C("h2_ppshwr_negPulseTime_pT3_diff") +newpage 3 1 logz +title Shower ADC Pulse Times +macro Macros/kpp_analysis.C("h2_pshwr_pulseTime_pT1_diff") +macro Macros/kpp_analysis.C("h2_pshwr_pulseTime_pT2_diff") +macro Macros/kpp_analysis.C("h2_pshwr_pulseTime_pT3_diff") +newpage 3 1 logz +title Heavy Gas ADC Pulse Times +macro Macros/kpp_analysis.C("h2_phgc_pulseTime_pT1_diff") +macro Macros/kpp_analysis.C("h2_phgc_pulseTime_pT2_diff") +macro Macros/kpp_analysis.C("h2_phgc_pulseTime_pT3_diff") +newpage 3 1 logz +title Noble Gas ADC Pulse Times +macro Macros/kpp_analysis.C("h2_pngc_pulseTime_pT1_diff") +macro Macros/kpp_analysis.C("h2_pngc_pulseTime_pT2_diff") +macro Macros/kpp_analysis.C("h2_pngc_pulseTime_pT3_diff") +newpage 3 2 +title Detector ADC Sums +macro Macros/kpp_analysis.C("h_paero_sum") +macro Macros/kpp_analysis.C("h_phgc_sum") +macro Macros/kpp_analysis.C("h_pngc_sum") +macro Macros/kpp_analysis.C("h_ppshwr_sum") +macro Macros/kpp_analysis.C("h_pshwr_sum") +macro Macros/kpp_analysis.C("h_ptotshwr_sum") +newpage 2 2 logz +title SHMS Particle Identification +macro Macros/kpp_analysis.C("h2_pshwr_vs_phgcer") +macro Macros/kpp_analysis.C("h2_pshwr_vs_pngcer") +macro Macros/kpp_analysis.C("h2_pshwr_vs_ppshwr") +macro Macros/kpp_analysis.C("h2_EdivP_vs_P") + + + + + diff --git a/onlineGUI/Config/rawhmshodo.cfg b/onlineGUI/Config/rawhmshodo.cfg new file mode 100755 index 00000000..21ec6189 --- /dev/null +++ b/onlineGUI/Config/rawhmshodo.cfg @@ -0,0 +1,243 @@ +protorootfile ../ROOTfiles/hhodo_htrig_replay_XXXXX.root +guicolor lightblue +canvassize 1600 800 +newpage 4 4 +title HMS X1+ Raw TDCS +macro Macros/rawdraw.C("uhtdc1x1posTime") +macro Macros/rawdraw.C("uhtdc1x2posTime") +macro Macros/rawdraw.C("uhtdc1x3posTime") +macro Macros/rawdraw.C("uhtdc1x4posTime") +macro Macros/rawdraw.C("uhtdc1x5posTime") +macro Macros/rawdraw.C("uhtdc1x6posTime") +macro Macros/rawdraw.C("uhtdc1x7posTime") +macro Macros/rawdraw.C("uhtdc1x8posTime") +macro Macros/rawdraw.C("uhtdc1x9posTime") +macro Macros/rawdraw.C("uhtdc1x10posTime") +macro Macros/rawdraw.C("uhtdc1x11posTime") +macro Macros/rawdraw.C("uhtdc1x12posTime") +macro Macros/rawdraw.C("uhtdc1x13posTime") +macro Macros/rawdraw.C("uhtdc1x14posTime") +macro Macros/rawdraw.C("uhtdc1x15posTime") +macro Macros/rawdraw.C("uhtdc1x16posTime") +newpage 4 4 +title HMS X1- Raw TDCS +macro Macros/rawdraw.C("uhtdc1x1negTime") +macro Macros/rawdraw.C("uhtdc1x2negTime") +macro Macros/rawdraw.C("uhtdc1x3negTime") +macro Macros/rawdraw.C("uhtdc1x4negTime") +macro Macros/rawdraw.C("uhtdc1x5negTime") +macro Macros/rawdraw.C("uhtdc1x6negTime") +macro Macros/rawdraw.C("uhtdc1x7negTime") +macro Macros/rawdraw.C("uhtdc1x8negTime") +macro Macros/rawdraw.C("uhtdc1x9negTime") +macro Macros/rawdraw.C("uhtdc1x10negTime") +macro Macros/rawdraw.C("uhtdc1x11negTime") +macro Macros/rawdraw.C("uhtdc1x12negTime") +macro Macros/rawdraw.C("uhtdc1x13negTime") +macro Macros/rawdraw.C("uhtdc1x14negTime") +macro Macros/rawdraw.C("uhtdc1x15negTime") +macro Macros/rawdraw.C("uhtdc1x16negTime") +newpage 4 4 +title HMS X1+ Raw ADCS +macro Macros/rawdraw.C("uhadc1x1posPed") +macro Macros/rawdraw.C("uhadc1x2posPed") +macro Macros/rawdraw.C("uhadc1x3posPed") +macro Macros/rawdraw.C("uhadc1x4posPed") +macro Macros/rawdraw.C("uhadc1x5posPed") +macro Macros/rawdraw.C("uhadc1x6posPed") +macro Macros/rawdraw.C("uhadc1x7posPed") +macro Macros/rawdraw.C("uhadc1x8posPed") +macro Macros/rawdraw.C("uhadc1x9posPed") +macro Macros/rawdraw.C("uhadc1x10posPed") +macro Macros/rawdraw.C("uhadc1x11posPed") +macro Macros/rawdraw.C("uhadc1x12posPed") +macro Macros/rawdraw.C("uhadc1x13posPed") +macro Macros/rawdraw.C("uhadc1x14posPed") +macro Macros/rawdraw.C("uhadc1x15posPed") +macro Macros/rawdraw.C("uhadc1x16posPed") +newpage 4 4 +title HMS X1- Raw ADCS +macro Macros/rawdraw.C("uhadc1x1negPed") +macro Macros/rawdraw.C("uhadc1x2negPed") +macro Macros/rawdraw.C("uhadc1x3negPed") +macro Macros/rawdraw.C("uhadc1x4negPed") +macro Macros/rawdraw.C("uhadc1x5negPed") +macro Macros/rawdraw.C("uhadc1x6negPed") +macro Macros/rawdraw.C("uhadc1x7negPed") +macro Macros/rawdraw.C("uhadc1x8negPed") +macro Macros/rawdraw.C("uhadc1x9negPed") +macro Macros/rawdraw.C("uhadc1x10negPed") +macro Macros/rawdraw.C("uhadc1x11negPed") +macro Macros/rawdraw.C("uhadc1x12negPed") +macro Macros/rawdraw.C("uhadc1x13negPed") +macro Macros/rawdraw.C("uhadc1x14negPed") +macro Macros/rawdraw.C("uhadc1x15negPed") +macro Macros/rawdraw.C("uhadc1x16negPed") +newpage 4 4 +title HMS Y1+ Raw TDCS +macro Macros/rawdraw.C("uhtdc1y1posTime") +macro Macros/rawdraw.C("uhtdc1y2posTime") +macro Macros/rawdraw.C("uhtdc1y3posTime") +macro Macros/rawdraw.C("uhtdc1y4posTime") +macro Macros/rawdraw.C("uhtdc1y5posTime") +macro Macros/rawdraw.C("uhtdc1y6posTime") +macro Macros/rawdraw.C("uhtdc1y7posTime") +macro Macros/rawdraw.C("uhtdc1y8posTime") +macro Macros/rawdraw.C("uhtdc1y9posTime") +macro Macros/rawdraw.C("uhtdc1y10posTime") +newpage 4 4 +title HMS Y1- Raw TDCS +macro Macros/rawdraw.C("uhtdc1y1negTime") +macro Macros/rawdraw.C("uhtdc1y2negTime") +macro Macros/rawdraw.C("uhtdc1y3negTime") +macro Macros/rawdraw.C("uhtdc1y4negTime") +macro Macros/rawdraw.C("uhtdc1y5negTime") +macro Macros/rawdraw.C("uhtdc1y6negTime") +macro Macros/rawdraw.C("uhtdc1y7negTime") +macro Macros/rawdraw.C("uhtdc1y8negTime") +macro Macros/rawdraw.C("uhtdc1y9negTime") +macro Macros/rawdraw.C("uhtdc1y10negTime") +newpage 4 4 +title HMS Y1+ Raw ADCS +macro Macros/rawdraw.C("uhadc1y1posPed") +macro Macros/rawdraw.C("uhadc1y2posPed") +macro Macros/rawdraw.C("uhadc1y3posPed") +macro Macros/rawdraw.C("uhadc1y4posPed") +macro Macros/rawdraw.C("uhadc1y5posPed") +macro Macros/rawdraw.C("uhadc1y6posPed") +macro Macros/rawdraw.C("uhadc1y7posPed") +macro Macros/rawdraw.C("uhadc1y8posPed") +macro Macros/rawdraw.C("uhadc1y9posPed") +macro Macros/rawdraw.C("uhadc1y10posPed") +newpage 4 4 +title HMS Y1- Raw ADCS +macro Macros/rawdraw.C("uhadc1y1negPed") +macro Macros/rawdraw.C("uhadc1y2negPed") +macro Macros/rawdraw.C("uhadc1y3negPed") +macro Macros/rawdraw.C("uhadc1y4negPed") +macro Macros/rawdraw.C("uhadc1y5negPed") +macro Macros/rawdraw.C("uhadc1y6negPed") +macro Macros/rawdraw.C("uhadc1y7negPed") +macro Macros/rawdraw.C("uhadc1y8negPed") +macro Macros/rawdraw.C("uhadc1y9negPed") +macro Macros/rawdraw.C("uhadc1y10negPed") +newpage 4 4 +title HMS X2+ Raw TDCS +macro Macros/rawdraw.C("uhtdc2x1posTime") +macro Macros/rawdraw.C("uhtdc2x2posTime") +macro Macros/rawdraw.C("uhtdc2x3posTime") +macro Macros/rawdraw.C("uhtdc2x4posTime") +macro Macros/rawdraw.C("uhtdc2x5posTime") +macro Macros/rawdraw.C("uhtdc2x6posTime") +macro Macros/rawdraw.C("uhtdc2x7posTime") +macro Macros/rawdraw.C("uhtdc2x8posTime") +macro Macros/rawdraw.C("uhtdc2x9posTime") +macro Macros/rawdraw.C("uhtdc2x10posTime") +macro Macros/rawdraw.C("uhtdc2x11posTime") +macro Macros/rawdraw.C("uhtdc2x12posTime") +macro Macros/rawdraw.C("uhtdc2x13posTime") +macro Macros/rawdraw.C("uhtdc2x14posTime") +macro Macros/rawdraw.C("uhtdc2x15posTime") +macro Macros/rawdraw.C("uhtdc2x16posTime") +newpage 4 4 +title HMS X2- Raw TDCS +macro Macros/rawdraw.C("uhtdc2x1negTime") +macro Macros/rawdraw.C("uhtdc2x2negTime") +macro Macros/rawdraw.C("uhtdc2x3negTime") +macro Macros/rawdraw.C("uhtdc2x4negTime") +macro Macros/rawdraw.C("uhtdc2x5negTime") +macro Macros/rawdraw.C("uhtdc2x6negTime") +macro Macros/rawdraw.C("uhtdc2x7negTime") +macro Macros/rawdraw.C("uhtdc2x8negTime") +macro Macros/rawdraw.C("uhtdc2x9negTime") +macro Macros/rawdraw.C("uhtdc2x10negTime") +macro Macros/rawdraw.C("uhtdc2x11negTime") +macro Macros/rawdraw.C("uhtdc2x12negTime") +macro Macros/rawdraw.C("uhtdc2x13negTime") +macro Macros/rawdraw.C("uhtdc2x14negTime") +macro Macros/rawdraw.C("uhtdc2x15negTime") +macro Macros/rawdraw.C("uhtdc2x16negTime") +newpage 4 4 +title HMS X2+ Raw ADCS +macro Macros/rawdraw.C("uhadc2x1posPed") +macro Macros/rawdraw.C("uhadc2x2posPed") +macro Macros/rawdraw.C("uhadc2x3posPed") +macro Macros/rawdraw.C("uhadc2x4posPed") +macro Macros/rawdraw.C("uhadc2x5posPed") +macro Macros/rawdraw.C("uhadc2x6posPed") +macro Macros/rawdraw.C("uhadc2x7posPed") +macro Macros/rawdraw.C("uhadc2x8posPed") +macro Macros/rawdraw.C("uhadc2x9posPed") +macro Macros/rawdraw.C("uhadc2x10posPed") +macro Macros/rawdraw.C("uhadc2x11posPed") +macro Macros/rawdraw.C("uhadc2x12posPed") +macro Macros/rawdraw.C("uhadc2x13posPed") +macro Macros/rawdraw.C("uhadc2x14posPed") +macro Macros/rawdraw.C("uhadc2x15posPed") +macro Macros/rawdraw.C("uhadc2x16posPed") +newpage 4 4 +title HMS X2- Raw ADCS +macro Macros/rawdraw.C("uhadc2x1negPed") +macro Macros/rawdraw.C("uhadc2x2negPed") +macro Macros/rawdraw.C("uhadc2x3negPed") +macro Macros/rawdraw.C("uhadc2x4negPed") +macro Macros/rawdraw.C("uhadc2x5negPed") +macro Macros/rawdraw.C("uhadc2x6negPed") +macro Macros/rawdraw.C("uhadc2x7negPed") +macro Macros/rawdraw.C("uhadc2x8negPed") +macro Macros/rawdraw.C("uhadc2x9negPed") +macro Macros/rawdraw.C("uhadc2x10negPed") +macro Macros/rawdraw.C("uhadc2x11negPed") +macro Macros/rawdraw.C("uhadc2x12negPed") +macro Macros/rawdraw.C("uhadc2x13negPed") +macro Macros/rawdraw.C("uhadc2x14negPed") +macro Macros/rawdraw.C("uhadc2x15negPed") +macro Macros/rawdraw.C("uhadc2x16negPed") +newpage 4 4 +title HMS Y2+ Raw TDCS +macro Macros/rawdraw.C("uhtdc2y1posTime") +macro Macros/rawdraw.C("uhtdc2y2posTime") +macro Macros/rawdraw.C("uhtdc2y3posTime") +macro Macros/rawdraw.C("uhtdc2y4posTime") +macro Macros/rawdraw.C("uhtdc2y5posTime") +macro Macros/rawdraw.C("uhtdc2y6posTime") +macro Macros/rawdraw.C("uhtdc2y7posTime") +macro Macros/rawdraw.C("uhtdc2y8posTime") +macro Macros/rawdraw.C("uhtdc2y9posTime") +macro Macros/rawdraw.C("uhtdc2y10posTime") +newpage 4 4 +title HMS Y2- Raw TDCS +macro Macros/rawdraw.C("uhtdc2y1negTime") +macro Macros/rawdraw.C("uhtdc2y2negTime") +macro Macros/rawdraw.C("uhtdc2y3negTime") +macro Macros/rawdraw.C("uhtdc2y4negTime") +macro Macros/rawdraw.C("uhtdc2y5negTime") +macro Macros/rawdraw.C("uhtdc2y6negTime") +macro Macros/rawdraw.C("uhtdc2y7negTime") +macro Macros/rawdraw.C("uhtdc2y8negTime") +macro Macros/rawdraw.C("uhtdc2y9negTime") +macro Macros/rawdraw.C("uhtdc2y10negTime") +newpage 4 4 +title HMS Y2+ Raw ADCS +macro Macros/rawdraw.C("uhadc2y1posPed") +macro Macros/rawdraw.C("uhadc2y2posPed") +macro Macros/rawdraw.C("uhadc2y3posPed") +macro Macros/rawdraw.C("uhadc2y4posPed") +macro Macros/rawdraw.C("uhadc2y5posPed") +macro Macros/rawdraw.C("uhadc2y6posPed") +macro Macros/rawdraw.C("uhadc2y7posPed") +macro Macros/rawdraw.C("uhadc2y8posPed") +macro Macros/rawdraw.C("uhadc2y9posPed") +macro Macros/rawdraw.C("uhadc2y10posPed") +newpage 4 4 +title HMS Y2- Raw ADCS +macro Macros/rawdraw.C("uhadc2y1negPed") +macro Macros/rawdraw.C("uhadc2y2negPed") +macro Macros/rawdraw.C("uhadc2y3negPed") +macro Macros/rawdraw.C("uhadc2y4negPed") +macro Macros/rawdraw.C("uhadc2y5negPed") +macro Macros/rawdraw.C("uhadc2y6negPed") +macro Macros/rawdraw.C("uhadc2y7negPed") +macro Macros/rawdraw.C("uhadc2y8negPed") +macro Macros/rawdraw.C("uhadc2y9negPed") +macro Macros/rawdraw.C("uhadc2y10negPed") diff --git a/onlineGUI/Config/standard.cfg b/onlineGUI/Config/standard.cfg new file mode 100755 index 00000000..5057a8d9 --- /dev/null +++ b/onlineGUI/Config/standard.cfg @@ -0,0 +1,57 @@ +protorootfile ../../engine_comparison/hcana_replay/Rootfiles/replay_baryon_XXXXX.root +guicolor lightblue +canvassize 500 800 + +definecut thtarcut abs(H.tr.tg_th)<0.01 +definecut phtarcut abs(H.tr.tg_ph)<0.01 +definecut ytarcut abs(H.tr.tg_y)<4 +definecut tarcut phtarcut&&thtarcut + +newpage 2 2 +title HMS focal plane/target +H.dc.x:H.dc.y -type scat +H.tr.tg_y ytarcut -title "Target Position" +RB.raster.frx:RB.raster.fry -type colz +H.tr.tg_ph:H.tr.tg_th phtarcut&&thtarcut -type colz -title "Target Xp vs Yp" + +newpage 2 3 +title HMS DC Wire Maps (Red=DC2) +macro Macros/overlay.C("hdc1x1_wm","hdc2x1_wm") +macro Macros/overlay.C("hdc1y1_wm","hdc2y1_wm") +macro Macros/overlay.C("hdc1u1_wm","hdc2u1_wm") +macro Macros/overlay.C("hdc1v1_wm","hdc2v1_wm") +macro Macros/overlay.C("hdc1y2_wm","hdc2y2_wm") +macro Macros/overlay.C("hdc1x2_wm","hdc2x2_wm") + +newpage 2 3 +title HDC1&2 drift distance (Red=DC2) +macro Macros/overlay.C("hdc1x1_dd","hdc2x1_dd") +macro Macros/overlay.C("hdc1y1_dd","hdc2y1_dd") +macro Macros/overlay.C("hdc1u1_dd","hdc2u1_dd") +macro Macros/overlay.C("hdc1v1_dd","hdc2v1_dd") +macro Macros/overlay.C("hdc1y2_dd","hdc2y2_dd") +macro Macros/overlay.C("hdc1x2_dd","hdc2x2_dd") + + +newpage 2 3 +title HDC1&2 drift time (Red=DC2) +macro Macros/overlay.C("hdc1x1_dt","hdc2x1_dt") +macro Macros/overlay.C("hdc1y1_dt","hdc2y1_dt") +macro Macros/overlay.C("hdc1u1_dt","hdc2u1_dt") +macro Macros/overlay.C("hdc1v1_dt","hdc2v1_dt") +macro Macros/overlay.C("hdc1y2_dt","hdc2y2_dt") +macro Macros/overlay.C("hdc1x2_dt","hdc2x2_dt") + +newpage 2 4 +title HMS Hodo Hits +macro Macros/overlay.C("hpostdc1","hnegtdc1") +macro Macros/overlay.C("hposadc1","hnegadc1") +macro Macros/overlay.C("hpostdc2","hnegtdc2") +macro Macros/overlay.C("hposadc2","hnegadc2") +macro Macros/overlay.C("hpostdc3","hnegtdc3") +macro Macros/overlay.C("hposadc3","hnegadc3") +macro Macros/overlay.C("hpostdc4","hnegtdc4") +macro Macros/overlay.C("hposadc4","hnegadc4") + + + diff --git a/onlineGUI/Macros/gooddraw_2d_hhodo.C b/onlineGUI/Macros/gooddraw_2d_hhodo.C new file mode 100644 index 00000000..4c28b069 --- /dev/null +++ b/onlineGUI/Macros/gooddraw_2d_hhodo.C @@ -0,0 +1,286 @@ +// UserScript.C +// +// Helper macro to build additional histograms + +void UserScript() +{ + + const UInt_t NPLANES = 4; + const UInt_t NSIDES = 2; + const UInt_t MAXBARS = 16; + const UInt_t MAXHITS = 16*16; + const UInt_t NSIGNALS = 2; + const UInt_t NADCSIGNALS = 1; + const UInt_t NTDCSIGNALS = 3; + + const TString SPECTROMETER = "H"; + const TString DETECTOR = "hod"; + + const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"}; + const TString plane_check_names[NPLANES] = {"1y", "1x", "2y", "2x"}; + const UInt_t nbars[NPLANES] = {16, 10, 16, 10}; + const UInt_t nbars_check[NPLANES] = {10, 16, 10, 16}; + const TString sides[NSIDES] = {"GoodNeg", "GoodPos"}; + const TString signals[NSIGNALS] = {"Adc", "Tdc"}; + const TString adc_signals[NADCSIGNALS] = {"PulseInt"}; + const Double_t adc_min[NADCSIGNALS] = {0}; + const Double_t adc_max[NADCSIGNALS] = {5000}; + const Int_t adc_nbins[NADCSIGNALS] = {500}; + const TString tdc_signals[NTDCSIGNALS] = {"Chan", "TimeCorr", "TimeTOFCorr"}; + const Double_t tdc_min[NTDCSIGNALS] = {0.,0.,0.}; + const Double_t tdc_max[NTDCSIGNALS] = {4000.,50.,50.}; + const Int_t tdc_nbins[NTDCSIGNALS] = {100,500,500}; + + Double_t adcbit_to_pC = 1.0/(50*4096)*4*1000. ;// 1V/(50 Ohms)/4096*4ns* = .020 pC + Double_t adcpeak_to_mV = 1.0/4096.*1000;// 1.0V per 4096 bits + Double_t fac_for_disc[4]= {2.0,2.,2.,2.};// Factor to have ADC at FADC match signal at discriminatir assuming split of 2/3 to 1/3( 2Y plane has linear FI/FO not a splitter) + + Int_t nhits[NPLANES]; + Double_t adc_tdc_ymin[4]={20.,20.,20.,20.}; + Double_t adc_tdc_ymax[4]={45.,45.,45.,45.}; + Int_t nhits_temp; + Double_t paddles[NPLANES][MAXHITS]; + + + Double_t adc_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS]; + Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXHITS]; + + + // + TH2F* htdc_tdc[NPLANES*MAXBARS]; + TH2F* hadc_adc[NPLANES*MAXBARS]; + TH2F* hadc_adc_good[NPLANES*MAXBARS]; + TH2F* hadc_tdc[NPLANES*MAXBARS][2]; + /* + make histogram of plane ADC versus position in perpendicalur plane + */ + TH2F* hadc_dis[NPLANES*MAXBARS][2]; + Int_t dis_bin[4]={10,16,10,16}; + Double_t dis_min[4]; + Double_t dis_max[4]; + Double_t dis_center_pad1[4]={33.75,-56.25,33.75,-56.25}; + Double_t dis_sign[4]={-1.,1.,-1.,1.}; + Double_t dis_space=7.5; + // + TH2F* hpadx; + TH2F* hpadxy1; + TH2F* hpady; + hpadx= new TH2F("hpadx",";paddle X1;paddle X2",16,1,17,16,1,17); + hpadxy1= new TH2F("hpadxy1",";paddle X1;paddle Y1",16,1,17,10,1,11); + hpady= new TH2F("hpady",";paddle Y1;paddle Y2",10,1,11,10,1,11); + // + /* +Histograms for Neg and Pos PMT efficiencies as function of paddle in other perpendicular plane + Each X1 paddle efficiency as function of Y1 paddle. + Each Y1 paddle efficiency as function of X1 paddle. + Each X2 paddle efficiency as function of Y2 paddle. + Each Y2 paddle efficiency as function of X2 paddle. +Tree has data in which at least one PMT had a good TDC time. +If the other PMT did not have a good time then its TDC =-999. +For each event +Set good_should=kTRUE if nhits==1 all planes. +Loop through all hits in each plane ip=0,3 + If good_should=kTRUE and tdc_neg_val>0 good_neg[ip][bar]=kTRUE + If good_should=kTRUE and tdc_pos_val>0 good_neg[ip][bar]=kTRUE +endloop +Loop through all planes and all bars in that plane ib=0,nbars[ip] + if good_pos[ip][ib] then negative end should have had a hit + fill "should" neg PMT histogram with perpendicular paddle + if good_pos[ip][ib] and good_neg[ip][ib] + fill "did" neg PMT histogram with perpendicular paddle + if good_neg[ip][ib] then positive end should have had a hit + fill "should" pos PMT histogram with perpendicular paddle + if good_pos[ip][ib] and good_neg[ip][ib] + fill "did" pos PMT histogram with perpendicular paddle +end event +Efficiency is ratio of did/should which is calculated using hodo_efficiency.C + */ + TH1F* hgood_neg_should[4][16]; + TH1F* hgood_pos_should[4][16]; + TH1F* hgood_neg_did[4][16]; + TH1F* hgood_pos_did[4][16]; + // + Int_t adc_ihit, tdc_ihit; + + TTree *T=(TTree*)gDirectory->Get("T"); + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + TString i2dbarname = Form("%d",ibar+1); + TString h2dttitle= "TDC 1ns/chan "+plane_names[ip]+i2dbarname+"; Neg ; Pos "; + TString h2dtname="uh2dtdc"+plane_names[ip]+i2dbarname; + htdc_tdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,200,25,75,200,25,75.); + TString h2dnegtitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles; Counts neg "; + TString h2dnegname="uhdidneg"+plane_names[ip]+i2dbarname; + hgood_neg_did[ip][ibar]= new TH1F(h2dnegname,h2dnegtitle,nbars_check[ip],1,nbars_check[ip]+1); + TString h2dnegtitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles; Counts neg "; + TString h2dnegname="uhshouldneg"+plane_names[ip]+i2dbarname; + hgood_neg_should[ip][ibar]= new TH1F(h2dnegname,h2dnegtitle,nbars_check[ip],1,nbars_check[ip]+1); + TString h2dpostitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles;Counts pos "; + TString h2dposname="uhdidpos"+plane_names[ip]+i2dbarname; + hgood_pos_did[ip][ibar]= new TH1F(h2dposname,h2dpostitle,nbars_check[ip],1,nbars_check[ip]+1); + TString h2dpostitle="Pos PMT Pad "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles;Counts pos "; + TString h2dposname="uhshouldpos"+plane_names[ip]+i2dbarname; + hgood_pos_should[ip][ibar]= new TH1F(h2dposname,h2dpostitle,nbars_check[ip],1,nbars_check[ip]+1); + } + } + // + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + TString i2dbarname = Form("%d",ibar+1); + TString h2dttitle= "ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)"; + TString h2dtname="uh2dadcint"+plane_names[ip]+i2dbarname; + hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,0,100,50,0,100.); + TString h2dttitle= "Good TDC ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)"; + TString h2dtname="uh2dadcintgtdc"+plane_names[ip]+i2dbarname; + hadc_adc_good[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,0,100,50,0,100.); + TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+"; Adc (pC); Time (ns)"; + TString h2dtname="uh2dadcvtdcneg"+plane_names[ip]+i2dbarname; + hadc_tdc[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,50,0,100,50,adc_tdc_ymin[ip],adc_tdc_ymax[ip]); + TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+"; Adc (pC); Time (ns)"; + TString h2dtname="uh2dadcvtdcpos"+plane_names[ip]+i2dbarname; + hadc_tdc[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,50,0,100,50,adc_tdc_ymin[ip],adc_tdc_ymax[ip]); + TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+"; Pos (cm); Adc (pC)"; + TString h2dtname="uh2dadcvdisneg"+plane_names[ip]+i2dbarname; + hadc_dis[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],dis_sign[ip]*dis_center_pad1[ip]-dis_space/2.,-dis_sign[ip]*dis_center_pad1[ip]+dis_space/2.,50,0,100); + TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+"; Pos (cm); Adc (pC)"; + TString h2dtname="uh2dadcvdispos"+plane_names[ip]+i2dbarname; + hadc_dis[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],dis_sign[ip]*dis_center_pad1[ip]-dis_space/2.,-dis_sign[ip]*dis_center_pad1[ip]+dis_space/2.,50,0,100); + } + } + // set up branches + + for(UInt_t ip = 0; ip < NPLANES; ip++) { + TString base2_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip]; + TString ndata_name = "Ndata."+base2_name+".GoodPaddle"; + T->SetBranchAddress(ndata_name, &nhits[ip]); + TString paddle_name = base2_name+".GoodPaddle"; + T->SetBranchAddress(paddle_name, &paddles[ip][0]); + //s cout << ip << " " << paddle_name << endl; + for(UInt_t iside = 0; iside < NSIDES; iside++) { + for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) { + + if(signals[isignal] == "Adc") { + TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + TString adclist_name = adc_base_name+adc_signals[iadcsignal]; + T->SetBranchAddress(adclist_name, &adc_values[ip][iside][iadcsignal][0]); + } + } + + if(signals[isignal] == "Tdc") { + TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + TString tdclist_name = tdc_base_name+tdc_signals[itdcsignal]; + T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]); + } + } + } // isginal + } //iside + } // ip + // Loop over the events, filling the histograms + Bool_t good_should; + Double_t good_pad[4]; + Double_t good_adc[4][2]; + Int_t check_plane[4]={1,0,3,2}; + Bool_t good_neg[4][16],good_pos[4][16]; + for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) { + T->GetEntry(iev); + if (iev%10000==0) cout << " iev = " << iev << endl; + // get events with x paddle number equal and y paddle equal + // + good_should=kFALSE; + for(UInt_t ip = 0; ip < NPLANES; ip++){ + for(UInt_t ib = 0; ib < nbars[ip]; ib++){ + good_neg[ip][ib]=kFALSE; + good_pos[ip][ib]=kFALSE; + } + } + if (nhits[0]==1&&nhits[1]==1&&nhits[2]==1&&nhits[3]==1) good_should = kTRUE; + for(UInt_t ip = 0; ip < NPLANES; ip++){ + // cout << iev << " " << ip << " " << nhits[ip]<< endl; + for(Int_t ihit = 0; ihit < nhits[ip]; ihit++) { + UInt_t bar = TMath::Nint(paddles[ip][ihit]) - 1; + Double_t tdc_neg_val = tdc_values[ip][0][1][ihit]; + Double_t tdc_pos_val =tdc_values[ip][1][1][ihit]; + Double_t adc_neg_val = adc_values[ip][0][0][ihit]*adcbit_to_pC; + Double_t adc_pos_val = adc_values[ip][1][0][ihit]*adcbit_to_pC; + // cout << " " << ihit << " " << bar << " " << tdc_neg_val << endl; + htdc_tdc[ip*MAXBARS+bar]->Fill(tdc_neg_val,tdc_pos_val); + // if (tdc_neg_val > 0 && tdc_pos_val >0) hadc_adc[ip*MAXBARS+bar]->Fill(adc_neg_val,adc_pos_val); + hadc_adc[ip*MAXBARS+bar]->Fill(adc_neg_val,adc_pos_val); + if (tdc_pos_val>0 && tdc_neg_val>0 ) { + hadc_adc_good[ip*MAXBARS+bar]->Fill(adc_neg_val,adc_pos_val); + hadc_tdc[ip*MAXBARS+bar][0]->Fill(adc_neg_val,tdc_neg_val); + hadc_tdc[ip*MAXBARS+bar][1]->Fill(adc_pos_val,tdc_pos_val); + } + good_pad[ip]=bar+1; + good_adc[ip][0]=adc_neg_val; + good_adc[ip][1]=adc_pos_val; + if (good_should && tdc_neg_val>0 ) good_neg[ip][bar]=kTRUE; + if (good_should && tdc_pos_val>0 ) good_pos[ip][bar]=kTRUE; + } + } + // + if (good_should ) { + for(UInt_t ip = 0; ip < NPLANES; ip++){ + // cout << " ip = " << ip << " " << good_should<< endl; + // cout << " pad = " << good_pad[check_plane[ip]] << " check_plane = " << check_plane[ip] << endl; + for(UInt_t ib = 0; ib < nbars[ip]; ib++){ + // cout << ib << " " << good_neg[ip][ib] << " " << good_pos[ip][ib] << endl; + if (good_pos[ip][ib]) hgood_neg_should[ip][ib]->Fill(good_pad[check_plane[ip]]); + if (good_neg[ip][ib]) hgood_pos_should[ip][ib]->Fill(good_pad[check_plane[ip]]); + if (good_neg[ip][ib] && good_pos[ip][ib]) { + hgood_neg_did[ip][ib]->Fill(good_pad[check_plane[ip]]); + hgood_pos_did[ip][ib]->Fill(good_pad[check_plane[ip]]); + hadc_dis[ip*MAXBARS+ib][0]->Fill(dis_center_pad1[ip]+dis_sign[ip]*dis_space*(good_pad[check_plane[ip]]-1),good_adc[ip][0]); + hadc_dis[ip*MAXBARS+ib][1]->Fill(dis_center_pad1[ip]+dis_sign[ip]*dis_space*(good_pad[check_plane[ip]]-1),good_adc[ip][1]); + } + } + } + } + } // loop over entries + // + return; +} + + + +void gooddraw_2d_hhodo(TString histname) { + + TH1F* h1d; + TH2F* h2d; + + h1d = (TH1F*) gDirectory->Get(histname); + h2d = (TH2F*) gDirectory->Get(histname); + if(!h1d && !h2d) { + UserScript(); + h1d = (TH1F*) gDirectory->Get(histname); + h2d = (TH2F*) gDirectory->Get(histname); + if(!h1d || !h2d) { + cout << "User histogram " << histname << " not found" << endl; + exit(1); + } + } + if (h2d) { + h2d->SetStats(0); + h2d->Draw("colz"); + h2d->GetXaxis()->SetTitleOffset(.6); + h2d->GetXaxis()->SetTitleSize(0.08); + h2d->GetYaxis()->SetTitleOffset(.6); + h2d->GetYaxis()->SetTitleSize(0.08); + } + else { + cout << "1d drawing " << histname << endl; + h1d->SetStats(0); + h1d->Draw(); + h1d->GetXaxis()->SetTitleOffset(.6); + h1d->GetXaxis()->SetTitleSize(0.08); + h1d->GetYaxis()->SetTitleOffset(.6); + h1d->GetYaxis()->SetTitleSize(0.08); + } +} + diff --git a/onlineGUI/Macros/gooddraw_2d_phodo.C b/onlineGUI/Macros/gooddraw_2d_phodo.C new file mode 100644 index 00000000..e4141adf --- /dev/null +++ b/onlineGUI/Macros/gooddraw_2d_phodo.C @@ -0,0 +1,325 @@ +// UserScript.C +// +// Helper macro to build additional histograms + +void UserScript() +{ + + const UInt_t NPLANES = 4; + const UInt_t NSIDES = 2; + const UInt_t MAXBARS = 21; + const UInt_t MAXHITS = 16*16; + const UInt_t NSIGNALS = 2; + const UInt_t NADCSIGNALS = 1; + const UInt_t NTDCSIGNALS = 3; + + const TString SPECTROMETER = "P"; + const TString DETECTOR = "hod"; + + const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"}; + const TString plane_check_names[NPLANES] = {"1y", "1x", "2y", "2x"}; + const UInt_t nbars[NPLANES] = {13, 13, 14, 21}; + const UInt_t nbars_check[NPLANES] = {13, 13, 21, 14}; + const TString sides[NSIDES] = {"GoodNeg", "GoodPos"}; + const TString signals[NSIGNALS] = {"Adc", "Tdc"}; + const TString adc_signals[NADCSIGNALS] = {"PulseInt"}; + const Double_t adc_min[NADCSIGNALS] = {0}; + const Double_t adc_max[NADCSIGNALS] = {5000}; + const Int_t adc_nbins[NADCSIGNALS] = {500}; + const TString tdc_signals[NTDCSIGNALS] = {"Chan", "TimeCorr", "TimeTOFCorr"}; + const Double_t tdc_min[NTDCSIGNALS] = {0.,0.,0.}; + const Double_t tdc_max[NTDCSIGNALS] = {4000.,50.,50.}; + const Int_t tdc_nbins[NTDCSIGNALS] = {100,500,500}; + + Double_t adcbit_to_pC = 1.0/(50*4096)*4*1000. ;// 1V/(50 Ohms)/4096*4ns* = .020 pC + Double_t adcpeak_to_mV = 1.0/4096.*1000;// 1.0V per 4096 bits + Double_t fac_for_disc[4]= {2.0,2.,2.,2.};// Factor to have ADC at FADC match signal at discriminatir assuming split of 2/3 to 1/3( 2Y plane has linear FI/FO not a splitter) + + Int_t nhits[NPLANES]; + Double_t adc_tdc_ymin[4]={-20.,-20.,-20.,-20.}; + Double_t adc_tdc_ymax[4]={45.,45.,70.,70.}; + Double_t adc_hmin[4]={0.,0.,0.,0.}; + Double_t adc_hmax[4]={75.,75.,75.,200.}; + Int_t nhits_temp; + Double_t paddles[NPLANES][MAXHITS]; + const TString opp_plane[4] = {";Y1 plane paddle number; Adc (pC)",";X1 plane paddle number; Adc (pC)",";X1 plane paddle number; Adc (pC)",";X2 plane paddle number; Adc (pC)"}; + const TString opp_planet[4] = {";Y1 plane paddle number; tdc (ns)",";X1 plane paddle number; tdc (ns)",";X1 plane paddle number; tdc (ns)",";X2 plane paddle number; tdc (ns)"}; + const TString opp_planetdiff[4] = {";Y1 plane paddle number; tdc diff(ns)",";X1 plane paddle number; tdc diff (ns)",";X1 plane paddle number; tdc diff(ns)",";X2 plane paddle number; tdc diff (ns)"}; + + + Double_t adc_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS]; + Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXHITS]; + + + // + TH2F* htdc_tdc[NPLANES*MAXBARS]; + TH2F* hadc_adc[NPLANES*MAXBARS]; + TH2F* hadc_adc_good[NPLANES*MAXBARS]; + TH2F* hadc_tdc[NPLANES*MAXBARS][2]; + /* + make histogram of plane ADC versus position in perpendicalur plane + */ + TH2F* hadc_dis[NPLANES*MAXBARS][2]; + TH2F* htdc_dis[NPLANES*MAXBARS][2]; + TH2F* htdcdiff_dis[NPLANES*MAXBARS]; + Int_t dis_bin[4]={13,13,13,14}; + Double_t dis_min[4]; + Double_t dis_max[4]; + Double_t dis_center_pad1[4]={-33.75,-56.25,-33.75,-56.25}; + Double_t dis_sign[4]={1.,1.,1.,1.}; + Double_t dis_space=7.5; + /* +Histograms for Neg and Pos PMT efficiencies as function of paddle in other perpendicular plane + Each X1 paddle efficiency as function of Y1 paddle. + Each Y1 paddle efficiency as function of X1 paddle. + Each X2 paddle efficiency as function of Y2 paddle. + Each Y2 paddle efficiency as function of X2 paddle. +Tree has data in which at least one PMT had a good TDC time. +If the other PMT did not have a good time then its TDC =-999. +For each event +Set good_should=kTRUE if nhits==1 all planes. +Loop through all hits in each plane ip=0,3 + If good_should=kTRUE and tdc_neg_val>0 good_neg[ip][bar]=kTRUE + If good_should=kTRUE and tdc_pos_val>0 good_neg[ip][bar]=kTRUE +endloop +Loop through all planes and all bars in that plane ib=0,nbars[ip] + if good_pos[ip][ib] then negative end should have had a hit + fill "should" neg PMT histogram with perpendicular paddle + if good_pos[ip][ib] and good_neg[ip][ib] + fill "did" neg PMT histogram with perpendicular paddle + if good_neg[ip][ib] then positive end should have had a hit + fill "should" pos PMT histogram with perpendicular paddle + if good_pos[ip][ib] and good_neg[ip][ib] + fill "did" pos PMT histogram with perpendicular paddle +end event +Efficiency is ratio of did/should which is calculated using hodo_efficiency.C + */ + TH1F* hgood_neg_should[4][MAXBARS]; + TH1F* hgood_pos_should[4][MAXBARS]; + TH1F* hgood_neg_did[4][MAXBARS]; + TH1F* hgood_pos_did[4][MAXBARS]; + // + Int_t adc_ihit, tdc_ihit; + + TTree *T=(TTree*)gDirectory->Get("T"); + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + TString i2dbarname = Form("%d",ibar+1); + TString h2dttitle= "TDC 1ns/chan "+plane_names[ip]+i2dbarname+"; Neg ; Pos "; + TString h2dtname="uh2dtdc"+plane_names[ip]+i2dbarname; + htdc_tdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,100,0,50,100,0,50.); + TString h2dnegtitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles; Counts neg "; + TString h2dnegname="uhdidneg"+plane_names[ip]+i2dbarname; + hgood_neg_did[ip][ibar]= new TH1F(h2dnegname,h2dnegtitle,nbars_check[ip],1,nbars_check[ip]+1); + TString h2dnegtitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles; Counts neg "; + TString h2dnegname="uhshouldneg"+plane_names[ip]+i2dbarname; + hgood_neg_should[ip][ibar]= new TH1F(h2dnegname,h2dnegtitle,nbars_check[ip],1,nbars_check[ip]+1); + TString h2dpostitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles;Counts pos "; + TString h2dposname="uhdidpos"+plane_names[ip]+i2dbarname; + hgood_pos_did[ip][ibar]= new TH1F(h2dposname,h2dpostitle,nbars_check[ip],1,nbars_check[ip]+1); + TString h2dpostitle="Pos PMT Pad "+plane_names[ip]+i2dbarname+"; plane "+plane_check_names[ip]+" paddles;Counts pos "; + TString h2dposname="uhshouldpos"+plane_names[ip]+i2dbarname; + hgood_pos_should[ip][ibar]= new TH1F(h2dposname,h2dpostitle,nbars_check[ip],1,nbars_check[ip]+1); + } + } + // + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + TString i2dbarname = Form("%d",ibar+1); + TString h2dttitle= "ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)"; + TString h2dtname="uh2dadcint"+plane_names[ip]+i2dbarname; + hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,adc_hmin[ip],adc_hmax[ip],50,adc_hmin[ip],adc_hmax[ip]); + TString h2dttitle= "Good TDC ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)"; + TString h2dtname="uh2dadcintgtdc"+plane_names[ip]+i2dbarname; + hadc_adc_good[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,adc_hmin[ip],adc_hmax[ip],50,adc_hmin[ip],adc_hmax[ip]); + TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+"; Adc (pC); Time (ns)"; + TString h2dtname="uh2dadcvtdcneg"+plane_names[ip]+i2dbarname; + hadc_tdc[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,50,adc_hmin[ip],adc_hmax[ip],50,adc_tdc_ymin[ip],adc_tdc_ymax[ip]); + TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+"; Adc (pC); Time (ns)"; + TString h2dtname="uh2dadcvtdcpos"+plane_names[ip]+i2dbarname; + hadc_tdc[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,50,adc_hmin[ip],adc_hmax[ip],50,adc_tdc_ymin[ip],adc_tdc_ymax[ip]); + TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+opp_plane[ip]; + TString h2dtname="uh2dadcvdisneg"+plane_names[ip]+i2dbarname; + hadc_dis[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,50,0,adc_hmax[ip]); + TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+opp_plane[ip]; + TString h2dtname="uh2dadcvdispos"+plane_names[ip]+i2dbarname; + hadc_dis[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,50,0,adc_hmax[ip]); + TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+opp_planet[ip]; + TString h2dtname="uh2dtdcvdisneg"+plane_names[ip]+i2dbarname; + htdc_dis[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,40,-80,80); + TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+opp_planet[ip]; + TString h2dtname="uh2dtdcvdispos"+plane_names[ip]+i2dbarname; + htdc_dis[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,40,-80,80); + TString h2dttitle= "PMT Pad "+plane_names[ip]+i2dbarname+opp_planetdiff[ip]; + TString h2dtname="uh2dtdcdiffvdis"+plane_names[ip]+i2dbarname; + htdcdiff_dis[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,40,-20,20); + } + } + // set up branches + Double_t betanotrack; + TString beta_name = SPECTROMETER+"."+DETECTOR+".betanotrack"; + T->SetBranchAddress(beta_name, &betanotrack); + TH1F* hbeta= new TH1F("hbeta","; Beta ;COunts",150,-1.5,1.5); + Double_t fptime[4]; + TString fpname = SPECTROMETER+"."+DETECTOR+".1x.fptime"; + T->SetBranchAddress(fpname, &fptime[0]); + TString fpname = SPECTROMETER+"."+DETECTOR+".1y.fptime"; + T->SetBranchAddress(fpname, &fptime[1]); + TString fpname = SPECTROMETER+"."+DETECTOR+".2x.fptime"; + T->SetBranchAddress(fpname, &fptime[2]); + TString fpname = SPECTROMETER+"."+DETECTOR+".2y.fptime"; + T->SetBranchAddress(fpname, &fptime[3]); + TH1F* hfptime[4]; + hfptime[0]= new TH1F("fptime1x","; fptime 1x ;COunts",50,0,50); + hfptime[1]= new TH1F("fptime1y","; fptime 1y ;COunts",50,0,50); + hfptime[2]= new TH1F("fptime2x","; fptime 2x ;COunts",50,0,50); + hfptime[3]= new TH1F("fptime2y","; fptime 2y ;COunts",50,0,50); + TH2F* hfptime_pad[4]; + hfptime_pad[0]= new TH2F("fptime1x_pad","; fptime 1x ;Paddle",50,0,50,14,0,14); + hfptime_pad[1]= new TH2F("fptime1y_pad","; fptime 1y ;Paddle",50,0,50,14,0,14); + hfptime_pad[2]= new TH2F("fptime2x_pad","; fptime 2x ;Paddle",50,0,50,15,0,15); + hfptime_pad[3]= new TH2F("fptime2y_pad","; fptime 2y ;Paddle",50,0,50,22,0,22); + + for(UInt_t ip = 0; ip < NPLANES; ip++) { + TString base2_name = SPECTROMETER+"."+DETECTOR+"."+plane_names[ip]; + TString ndata_name = "Ndata."+base2_name+".GoodPaddle"; + T->SetBranchAddress(ndata_name, &nhits[ip]); + TString paddle_name = base2_name+".GoodPaddle"; + T->SetBranchAddress(paddle_name, &paddles[ip][0]); + //s cout << ip << " " << paddle_name << endl; + for(UInt_t iside = 0; iside < NSIDES; iside++) { + for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) { + + if(signals[isignal] == "Adc") { + TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + TString adclist_name = adc_base_name+adc_signals[iadcsignal]; + T->SetBranchAddress(adclist_name, &adc_values[ip][iside][iadcsignal][0]); + } + } + + if(signals[isignal] == "Tdc") { + TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + TString tdclist_name = tdc_base_name+tdc_signals[itdcsignal]; + T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]); + } + } + } // isginal + } //iside + } // ip + // Loop over the events, filling the histograms + Bool_t good_should; + Double_t good_pad[4]; + Double_t good_adc[4][2]; + Double_t good_tdc[4][2]; + Int_t check_plane[4]={1,0,0,2}; + Bool_t good_neg[4][MAXBARS],good_pos[4][MAXBARS]; + for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) { + T->GetEntry(iev); + if (iev%10000==0) cout << " iev = " << iev << endl; + // get events with x paddle number equal and y paddle equal + // + good_should=kFALSE; + for(UInt_t ip = 0; ip < NPLANES; ip++){ + for(UInt_t ib = 0; ib < nbars[ip]; ib++){ + good_neg[ip][ib]=kFALSE; + good_pos[ip][ib]=kFALSE; + } + } + if (nhits[0]==1&&nhits[1]==1&&nhits[2]==1&&nhits[3]<=1) good_should = kTRUE; + if ( good_should) hbeta->Fill(betanotrack); + for(UInt_t ip = 0; ip < NPLANES; ip++){ + if ( good_should) hfptime[ip]->Fill(fptime[ip]); + // cout << iev << " plane = " << ip+1 << " nhits = " << nhits[ip]<< endl; + for(Int_t ihit = 0; ihit < nhits[ip]; ihit++) { + UInt_t bar = TMath::Nint(paddles[ip][ihit]) - 1; + Double_t tdc_neg_val = tdc_values[ip][0][1][ihit]; + Double_t tdc_pos_val =tdc_values[ip][1][1][ihit]; + Double_t adc_neg_val = adc_values[ip][0][0][ihit]*adcbit_to_pC; + Double_t adc_pos_val = adc_values[ip][1][0][ihit]*adcbit_to_pC; + // cout << " " << ihit << " " << bar << " " << tdc_neg_val << endl; + hadc_adc[ip*MAXBARS+bar]->Fill(adc_neg_val,adc_pos_val); + if (good_should && tdc_pos_val>0 && tdc_neg_val>0 && adc_neg_val > 5. && adc_pos_val > 5. ) { + htdc_tdc[ip*MAXBARS+bar]->Fill(tdc_neg_val,tdc_pos_val); + hadc_adc_good[ip*MAXBARS+bar]->Fill(adc_neg_val,adc_pos_val); + hadc_tdc[ip*MAXBARS+bar][0]->Fill(adc_neg_val,tdc_neg_val); + hadc_tdc[ip*MAXBARS+bar][1]->Fill(adc_pos_val,tdc_neg_val); + hfptime_pad[ip]->Fill(fptime[ip],float(bar+1)); + } + good_pad[ip]=bar+1; + good_adc[ip][0]=adc_neg_val; + good_adc[ip][1]=adc_pos_val; + good_tdc[ip][0]=tdc_neg_val; + good_tdc[ip][1]=tdc_pos_val; + if (good_should && tdc_pos_val>0 && tdc_neg_val>0&& adc_neg_val > 5. && adc_pos_val > 5. ) good_neg[ip][bar]=kTRUE; + if (good_should && tdc_pos_val>0 && tdc_neg_val>0&& adc_neg_val > 5. && adc_pos_val > 5. ) good_pos[ip][bar]=kTRUE; + } + } + // + if (good_should ) { + for(UInt_t ip = 0; ip < NPLANES; ip++){ + // cout << " ip = " << ip << " " << good_should<< endl; + // cout << " pad = " << good_pad[check_plane[ip]] << " check_plane = " << check_plane[ip] << endl; + for(UInt_t ib = 0; ib < nbars[ip]; ib++){ + // cout << ib << " " << good_neg[ip][ib] << " " << good_pos[ip][ib] << endl; + if (good_pos[ip][ib]) hgood_neg_should[ip][ib]->Fill(good_pad[check_plane[ip]]); + if (good_neg[ip][ib]) hgood_pos_should[ip][ib]->Fill(good_pad[check_plane[ip]]); + if (good_neg[ip][ib] && good_pos[ip][ib]) { + hgood_neg_did[ip][ib]->Fill(good_pad[check_plane[ip]]); + hgood_pos_did[ip][ib]->Fill(good_pad[check_plane[ip]]); + hadc_dis[ip*MAXBARS+ib][0]->Fill(good_pad[check_plane[ip]],good_adc[ip][0]); + hadc_dis[ip*MAXBARS+ib][1]->Fill(good_pad[check_plane[ip]],good_adc[ip][1]); + htdc_dis[ip*MAXBARS+ib][0]->Fill(good_pad[check_plane[ip]],good_tdc[ip][0]); + htdc_dis[ip*MAXBARS+ib][1]->Fill(good_pad[check_plane[ip]],good_tdc[ip][1]); + htdcdiff_dis[ip*MAXBARS+ib]->Fill(good_pad[check_plane[ip]],good_tdc[ip][1]-good_tdc[ip][0]); + } + } + } + } + } // loop over entries + // + return; +} + + + +void gooddraw_2d_phodo(TString histname) { + + TH1F* h1d; + TH2F* h2d; + + h1d = (TH1F*) gDirectory->Get(histname); + h2d = (TH2F*) gDirectory->Get(histname); + if(!h1d && !h2d) { + UserScript(); + h1d = (TH1F*) gDirectory->Get(histname); + h2d = (TH2F*) gDirectory->Get(histname); + if(!h1d || !h2d) { + cout << "User histogram " << histname << " not found" << endl; + exit(1); + } + } + if (h2d) { + h2d->SetStats(0); + h2d->Draw("colz"); + h2d->GetXaxis()->SetTitleOffset(.6); + h2d->GetXaxis()->SetTitleSize(0.08); + h2d->GetYaxis()->SetTitleOffset(.6); + h2d->GetYaxis()->SetTitleSize(0.08); + } + else { + cout << "1d drawing " << histname << endl; + h1d->SetStats(0); + h1d->Draw(); + h1d->GetXaxis()->SetTitleOffset(.6); + h1d->GetXaxis()->SetTitleSize(0.08); + h1d->GetYaxis()->SetTitleOffset(.6); + h1d->GetYaxis()->SetTitleSize(0.08); + } +} + diff --git a/onlineGUI/Macros/hodo_efficiency.C b/onlineGUI/Macros/hodo_efficiency.C new file mode 100644 index 00000000..a8dd7cd0 --- /dev/null +++ b/onlineGUI/Macros/hodo_efficiency.C @@ -0,0 +1,24 @@ +void hodo_efficiency(TString hist1name, TString hist2name){ + TH1F* H1; + TH1F* H2; + + H1 = (TH1F*) gDirectory->Get(hist1name); + H2 = (TH1F*) gDirectory->Get(hist2name); + if (H1 && H2) { + H1->Sumw2(); + H2->Sumw2(); + TH1F* Hratio=(TH1F*)H1->Clone(); + Hratio->Divide(H1,H2,1,1,"B"); + Hratio->SetStats(0); + Hratio->SetMinimum(0.95); + Hratio->SetMaximum(1.05); + Hratio->Draw("EP"); + Hratio->GetXaxis()->SetTitleOffset(.6); + Hratio->GetXaxis()->SetTitleSize(0.08); + Hratio->GetYaxis()->SetTitleOffset(.6); + Hratio->GetYaxis()->SetTitleSize(0.08); + } else { + if (!H1) cout << " Histogram " << hist1name << " does not exist" << endl; + if (!H2) cout << " Histogram " << hist2name << " does not exist" << endl; + } +} diff --git a/onlineGUI/Macros/kpp_analysis.C b/onlineGUI/Macros/kpp_analysis.C new file mode 100644 index 00000000..b4b866a2 --- /dev/null +++ b/onlineGUI/Macros/kpp_analysis.C @@ -0,0 +1,686 @@ + +void UserScript() { + + // Declare constants + static const Double_t clk2tdc = 0.100; + static const Double_t clk2adc = 0.0625; + static const UInt_t ndcRefTimes = 10; + + static const UInt_t nbars_1x = 13; + static const UInt_t nbars_1y = 13; + static const UInt_t nbars_2x = 14; + static const UInt_t nbars_2y = 21; + + static const UInt_t nshwr_blks = 224; + static const UInt_t npos_pshwr_blks = 14; + static const UInt_t nneg_pshwr_blks = 14; + + static const UInt_t nhgc_pmts = 4; + static const UInt_t nngc_pmts = 4; + + static const UInt_t npos_aero_pmts = 7; + static const UInt_t nneg_aero_pmts = 7; + + static const UInt_t maxTdcHits = 128; + static const UInt_t maxAdcHits = 4; + + static const Double_t pshwr_adc2GeV = 0.001; + static const Double_t shwr_adc2GeV = 0.0005; + + static const Double_t hgc_adc2npe = 1./205.; + static const Double_t ngc_adc2npe = 1./150.; + + static const Double_t aero_adc2npe = 1./500.; + + static const UInt_t maxNumTracks = 10; + + // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: + + // Declare variables + Double_t p1X_tdcTime, p1Y_tdcTime, p2X_tdcTime, p2Y_tdcTime; + Double_t p1T_tdcTime, p2T_tdcTime; + Double_t pT1_tdcTime, pT2_tdcTime, pT3_tdcTime; + Double_t pDCREF_tdcTime[ndcRefTimes]; + + // Hodoscope hits + Int_t p1X_negAdcHits, p1Y_negAdcHits, p2X_negAdcHits, p2Y_negAdcHits; + Int_t p1X_negTdcHits, p1Y_negTdcHits, p2X_negTdcHits, p2Y_negTdcHits; + Double_t p1X_negAdcPaddle[maxAdcHits*nbars_1x], p1Y_negAdcPaddle[maxAdcHits*nbars_1y]; + Double_t p2X_negAdcPaddle[maxAdcHits*nbars_2x], p2Y_negAdcPaddle[maxAdcHits*nbars_2y]; + Double_t p1X_negTdcPaddle[maxTdcHits*nbars_1x], p1Y_negTdcPaddle[maxTdcHits*nbars_1y]; + Double_t p2X_negTdcPaddle[maxTdcHits*nbars_2x], p2Y_negTdcPaddle[maxTdcHits*nbars_2y]; + Double_t p1X_negAdcPulseTime[maxAdcHits*nbars_1x], p1Y_negAdcPulseTime[maxAdcHits*nbars_1y]; + Double_t p2X_negAdcPulseTime[maxAdcHits*nbars_2x], p2Y_negAdcPulseTime[maxAdcHits*nbars_2y]; + Double_t p1X_negTdcTime[maxTdcHits*nbars_1x], p1Y_negTdcTime[maxTdcHits*nbars_1y]; + Double_t p2X_negTdcTime[maxTdcHits*nbars_2x], p2Y_negTdcTime[maxTdcHits*nbars_2y]; + Int_t p1X_posAdcHits, p1Y_posAdcHits, p2X_posAdcHits, p2Y_posAdcHits; + Int_t p1X_posTdcHits, p1Y_posTdcHits, p2X_posTdcHits, p2Y_posTdcHits; + Double_t p1X_posAdcPaddle[maxAdcHits*nbars_1x], p1Y_posAdcPaddle[maxAdcHits*nbars_1y]; + Double_t p2X_posAdcPaddle[maxAdcHits*nbars_2x], p2Y_posAdcPaddle[maxAdcHits*nbars_2y]; + Double_t p1X_posTdcPaddle[maxTdcHits*nbars_1x], p1Y_posTdcPaddle[maxTdcHits*nbars_1y]; + Double_t p2X_posTdcPaddle[maxTdcHits*nbars_2x], p2Y_posTdcPaddle[maxTdcHits*nbars_2y]; + Double_t p1X_posAdcPulseTime[maxAdcHits*nbars_1x], p1Y_posAdcPulseTime[maxAdcHits*nbars_1y]; + Double_t p2X_posAdcPulseTime[maxAdcHits*nbars_2x], p2Y_posAdcPulseTime[maxAdcHits*nbars_2y]; + Double_t p1X_posTdcTime[maxTdcHits*nbars_1x], p1Y_posTdcTime[maxTdcHits*nbars_1y]; + Double_t p2X_posTdcTime[maxTdcHits*nbars_2x], p2Y_posTdcTime[maxTdcHits*nbars_2y]; + + // "Good" hodo hits + Int_t p1X_nGoodHodoHits, p1Y_nGoodHodoHits, p2X_nGoodHodoHits, p2Y_nGoodHodoHits; + Double_t p1X_goodPaddle[maxAdcHits*nbars_1x], p1Y_goodPaddle[maxAdcHits*nbars_1y]; + Double_t p2X_goodPaddle[maxAdcHits*nbars_2x], p2Y_goodPaddle[maxAdcHits*nbars_2y]; + Double_t p1X_goodNegTdcTimeCorr[maxTdcHits*nbars_1x], p1Y_goodNegTdcTimeCorr[maxTdcHits*nbars_1y]; + Double_t p2X_goodNegTdcTimeCorr[maxTdcHits*nbars_2x], p2Y_goodNegTdcTimeCorr[maxTdcHits*nbars_2y]; + Double_t p1X_goodPosTdcTimeCorr[maxTdcHits*nbars_1x], p1Y_goodPosTdcTimeCorr[maxTdcHits*nbars_1y]; + Double_t p2X_goodPosTdcTimeCorr[maxTdcHits*nbars_2x], p2Y_goodPosTdcTimeCorr[maxTdcHits*nbars_2y]; + + // Hodoscope focal plane times + Double_t p1X_fpTime, p1Y_fpTime, p2X_fpTime, p2Y_fpTime; + Double_t p1X_plTime, p1Y_plTime, p2X_plTime, p2Y_plTime; + + // Aerogel ADC + Int_t paero_posHits, paero_negHits; + Double_t paero_posPmt[maxAdcHits*npos_aero_pmts], paero_negPmt[maxAdcHits*nneg_aero_pmts]; + Double_t paero_posPulseTime[maxAdcHits*npos_aero_pmts], paero_negPulseTime[maxAdcHits*nneg_aero_pmts]; + Double_t paero_posPulseInt[maxAdcHits*npos_aero_pmts], paero_negPulseInt[maxAdcHits*nneg_aero_pmts]; + + // Pre-Shower ADC + Int_t ppshwr_posHits, ppshwr_negHits; + Double_t ppshwr_posPmt[maxAdcHits*npos_pshwr_blks], ppshwr_negPmt[maxAdcHits*nneg_pshwr_blks]; + Double_t ppshwr_posPulseTime[maxAdcHits*npos_pshwr_blks], ppshwr_negPulseTime[maxAdcHits*nneg_pshwr_blks]; + Double_t ppshwr_posPulseInt[maxAdcHits*npos_pshwr_blks], ppshwr_negPulseInt[maxAdcHits*nneg_pshwr_blks]; + + // Shower ADC + Int_t pshwr_hits; + Double_t pshwr_pmt[maxAdcHits*nshwr_blks], pshwr_pulseTime[maxAdcHits*nshwr_blks]; + Double_t pshwr_pulseInt[maxAdcHits*nshwr_blks]; + + // Heavy gas Cherenkov ADC + Int_t phgc_hits; + Double_t phgc_pmt[maxAdcHits*nhgc_pmts], phgc_pulseTime[maxAdcHits*nhgc_pmts]; + Double_t phgc_pulseInt[maxAdcHits*nhgc_pmts]; + + // Noble gas Cherenkov ADC + Int_t pngc_hits; + Double_t pngc_pmt[maxAdcHits*nngc_pmts], pngc_pulseTime[maxAdcHits*nngc_pmts]; + Double_t pngc_pulseInt[maxAdcHits*nngc_pmts]; + + // Tracking information + Int_t ntracks; + Double_t trk_pmag[maxNumTracks]; + + Long64_t nentries; + + // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: + + // Declare Histos + TH1F *h_p1X_tdc, *h_p1Y_tdc, *h_p2X_tdc, *h_p2Y_tdc; + TH1F *h_p1T_tdc, *h_p2T_tdc; + TH1F *h_pT1_tdc, *h_pT2_tdc, *h_pT3_tdc; + TH1F *h_p1XmpT2_tdc, *h_p1YmpT2_tdc, *h_p2XmpT2_tdc, *h_p2YmpT2_tdc; + TH1F *h_p1XmpT3_tdc, *h_p1YmpT3_tdc, *h_p2XmpT3_tdc, *h_p2YmpT3_tdc; + TH1F *h_p1TmpT2_tdc, *h_p2TmpT2_tdc, *h_p1TmpT3_tdc, *h_p2TmpT3_tdc; + TH1F *h_pDCREF_tdc[ndcRefTimes]; + + TH2F *h2_p1Xneg_pt_tt_diff, *h2_p1Yneg_pt_tt_diff, *h2_p2Xneg_pt_tt_diff, *h2_p2Yneg_pt_tt_diff; + TH2F *h2_p1Xpos_pt_tt_diff, *h2_p1Ypos_pt_tt_diff, *h2_p2Xpos_pt_tt_diff, *h2_p2Ypos_pt_tt_diff; + + TH1F *h_p1X_fpTime, *h_p1Y_fpTime, *h_p2X_fpTime, *h_p2Y_fpTime; + TH1F *h_p1X_plTime, *h_p1Y_plTime, *h_p2X_plTime, *h_p2Y_plTime; + + TH2F *h2_p1X_negTdcCorr, *h2_p1Y_negTdcCorr, *h2_p2X_negTdcCorr, *h2_p2Y_negTdcCorr; + TH2F *h2_p1X_posTdcCorr, *h2_p1Y_posTdcCorr, *h2_p2X_posTdcCorr, *h2_p2Y_posTdcCorr; + TH2F *h2_p1X_tdcCorrDiff, *h2_p1Y_tdcCorrDiff, *h2_p2X_tdcCorrDiff, *h2_p2Y_tdcCorrDiff; + + TH2F *h2_paero_posPulseTime_pT1_diff, *h2_paero_negPulseTime_pT1_diff; + TH2F *h2_paero_posPulseTime_pT2_diff, *h2_paero_negPulseTime_pT2_diff; + TH2F *h2_paero_posPulseTime_pT3_diff, *h2_paero_negPulseTime_pT3_diff; + + TH2F *h2_ppshwr_posPulseTime_pT1_diff, *h2_ppshwr_negPulseTime_pT1_diff; + TH2F *h2_ppshwr_posPulseTime_pT2_diff, *h2_ppshwr_negPulseTime_pT2_diff; + TH2F *h2_ppshwr_posPulseTime_pT3_diff, *h2_ppshwr_negPulseTime_pT3_diff; + + TH2F *h2_pshwr_pulseTime_pT1_diff; + TH2F *h2_pshwr_pulseTime_pT2_diff; + TH2F *h2_pshwr_pulseTime_pT3_diff; + + TH2F *h2_phgc_pulseTime_pT1_diff; + TH2F *h2_phgc_pulseTime_pT2_diff; + TH2F *h2_phgc_pulseTime_pT3_diff; + + TH2F *h2_pngc_pulseTime_pT1_diff; + TH2F *h2_pngc_pulseTime_pT2_diff; + TH2F *h2_pngc_pulseTime_pT3_diff; + + TH2F *h2_pshwr_vs_phgcer, *h2_pshwr_vs_pngcer, *h2_pshwr_vs_ppshwr; + TH1F *h_paero_sum, *h_ppshwr_sum, *h_pshwr_sum, *h_ptotshwr_sum, *h_phgc_sum, *h_pngc_sum; + + TH2F *h2_EdivP_vs_P; + + // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: + + // Declare trees + TTree *T = (TTree*) gDirectory->Get("T"); + + // Acquire the number of entries + nentries = T->GetEntries(); + + // Acquire the branches + // Trigger time information + T->SetBranchAddress("T.shms.p1X_tdcTime", &p1X_tdcTime); + T->SetBranchAddress("T.shms.p1Y_tdcTime", &p1Y_tdcTime); + T->SetBranchAddress("T.shms.p2X_tdcTime", &p2X_tdcTime); + T->SetBranchAddress("T.shms.p2Y_tdcTime", &p2Y_tdcTime); + T->SetBranchAddress("T.shms.p1T_tdcTime", &p1T_tdcTime); + T->SetBranchAddress("T.shms.p2T_tdcTime", &p2T_tdcTime); + T->SetBranchAddress("T.shms.pT1_tdcTime", &pT1_tdcTime); + T->SetBranchAddress("T.shms.pT2_tdcTime", &pT2_tdcTime); + T->SetBranchAddress("T.shms.pT3_tdcTime", &pT3_tdcTime); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + // DC reference times + for (UInt_t iref = 0; iref < ndcRefTimes; iref++) + T->SetBranchAddress(Form("T.shms.pDCREF%d_tdcTime", iref+1), &pDCREF_tdcTime[iref]); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + // Hodoscope focal plane time calculation + T->SetBranchAddress("P.hod.1x.fptime", &p1X_fpTime); + T->SetBranchAddress("P.hod.1y.fptime", &p1Y_fpTime); + T->SetBranchAddress("P.hod.2x.fptime", &p2X_fpTime); + T->SetBranchAddress("P.hod.2y.fptime", &p2Y_fpTime); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + // Hodoscope ADC information + T->SetBranchAddress("Ndata.P.hod.1x.negAdcCounter", &p1X_negAdcHits); + T->SetBranchAddress("Ndata.P.hod.1y.negAdcCounter", &p1Y_negAdcHits); + T->SetBranchAddress("Ndata.P.hod.2x.negAdcCounter", &p2X_negAdcHits); + T->SetBranchAddress("Ndata.P.hod.2y.negAdcCounter", &p2Y_negAdcHits); + T->SetBranchAddress("P.hod.1x.negAdcCounter", p1X_negAdcPaddle); + T->SetBranchAddress("P.hod.1y.negAdcCounter", p1Y_negAdcPaddle); + T->SetBranchAddress("P.hod.2x.negAdcCounter", p2X_negAdcPaddle); + T->SetBranchAddress("P.hod.2y.negAdcCounter", p2Y_negAdcPaddle); + T->SetBranchAddress("P.hod.1x.negAdcPulseTimeRaw", p1X_negAdcPulseTime); + T->SetBranchAddress("P.hod.1y.negAdcPulseTimeRaw", p1Y_negAdcPulseTime); + T->SetBranchAddress("P.hod.2x.negAdcPulseTimeRaw", p2X_negAdcPulseTime); + T->SetBranchAddress("P.hod.2y.negAdcPulseTimeRaw", p2Y_negAdcPulseTime); + T->SetBranchAddress("Ndata.P.hod.1x.posAdcCounter", &p1X_posAdcHits); + T->SetBranchAddress("Ndata.P.hod.1y.posAdcCounter", &p1Y_posAdcHits); + T->SetBranchAddress("Ndata.P.hod.2x.posAdcCounter", &p2X_posAdcHits); + T->SetBranchAddress("Ndata.P.hod.2y.posAdcCounter", &p2Y_posAdcHits); + T->SetBranchAddress("P.hod.1x.posAdcCounter", p1X_posAdcPaddle); + T->SetBranchAddress("P.hod.1y.posAdcCounter", p1Y_posAdcPaddle); + T->SetBranchAddress("P.hod.2x.posAdcCounter", p2X_posAdcPaddle); + T->SetBranchAddress("P.hod.2y.posAdcCounter", p2Y_posAdcPaddle); + T->SetBranchAddress("P.hod.1x.posAdcPulseTimeRaw", p1X_posAdcPulseTime); + T->SetBranchAddress("P.hod.1y.posAdcPulseTimeRaw", p1Y_posAdcPulseTime); + T->SetBranchAddress("P.hod.2x.posAdcPulseTimeRaw", p2X_posAdcPulseTime); + T->SetBranchAddress("P.hod.2y.posAdcPulseTimeRaw", p2Y_posAdcPulseTime); + // Hodoscope TDC information + T->SetBranchAddress("Ndata.P.hod.1x.negTdcCounter", &p1X_negTdcHits); + T->SetBranchAddress("Ndata.P.hod.1y.negTdcCounter", &p1Y_negTdcHits); + T->SetBranchAddress("Ndata.P.hod.2x.negTdcCounter", &p2X_negTdcHits); + T->SetBranchAddress("Ndata.P.hod.2y.negTdcCounter", &p2Y_negTdcHits); + T->SetBranchAddress("P.hod.1x.negTdcCounter", p1X_negTdcPaddle); + T->SetBranchAddress("P.hod.1y.negTdcCounter", p1Y_negTdcPaddle); + T->SetBranchAddress("P.hod.2x.negTdcCounter", p2X_negTdcPaddle); + T->SetBranchAddress("P.hod.2y.negTdcCounter", p2Y_negTdcPaddle); + T->SetBranchAddress("P.hod.1x.negTdcTime", p1X_negTdcTime); + T->SetBranchAddress("P.hod.1y.negTdcTime", p1Y_negTdcTime); + T->SetBranchAddress("P.hod.2x.negTdcTime", p2X_negTdcTime); + T->SetBranchAddress("P.hod.2y.negTdcTime", p2Y_negTdcTime); + T->SetBranchAddress("Ndata.P.hod.1x.posTdcCounter", &p1X_posTdcHits); + T->SetBranchAddress("Ndata.P.hod.1y.posTdcCounter", &p1Y_posTdcHits); + T->SetBranchAddress("Ndata.P.hod.2x.posTdcCounter", &p2X_posTdcHits); + T->SetBranchAddress("Ndata.P.hod.2y.posTdcCounter", &p2Y_posTdcHits); + T->SetBranchAddress("P.hod.1x.posTdcCounter", p1X_posTdcPaddle); + T->SetBranchAddress("P.hod.1y.posTdcCounter", p1Y_posTdcPaddle); + T->SetBranchAddress("P.hod.2x.posTdcCounter", p2X_posTdcPaddle); + T->SetBranchAddress("P.hod.2y.posTdcCounter", p2Y_posTdcPaddle); + T->SetBranchAddress("P.hod.1x.posTdcTime", p1X_posTdcTime); + T->SetBranchAddress("P.hod.1y.posTdcTime", p1Y_posTdcTime); + T->SetBranchAddress("P.hod.2x.posTdcTime", p2X_posTdcTime); + T->SetBranchAddress("P.hod.2y.posTdcTime", p2Y_posTdcTime); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + // "Good" hodoscope hits + // Hodoscope corrected times (not corrected for TOF to focal plane) + T->SetBranchAddress("Ndata.P.hod.1x.GoodPaddle", &p1X_nGoodHodoHits); + T->SetBranchAddress("Ndata.P.hod.1y.GoodPaddle", &p1Y_nGoodHodoHits); + T->SetBranchAddress("Ndata.P.hod.2x.GoodPaddle", &p2X_nGoodHodoHits); + T->SetBranchAddress("Ndata.P.hod.2y.GoodPaddle", &p2Y_nGoodHodoHits); + T->SetBranchAddress("P.hod.1x.GoodPaddle", p1X_goodPaddle); + T->SetBranchAddress("P.hod.1y.GoodPaddle", p1Y_goodPaddle); + T->SetBranchAddress("P.hod.2x.GoodPaddle", p2X_goodPaddle); + T->SetBranchAddress("P.hod.2y.GoodPaddle", p2Y_goodPaddle); + T->SetBranchAddress("P.hod.1x.GoodNegTdcTimeCorr", p1X_goodNegTdcTimeCorr); + T->SetBranchAddress("P.hod.1y.GoodNegTdcTimeCorr", p1Y_goodNegTdcTimeCorr); + T->SetBranchAddress("P.hod.2x.GoodNegTdcTimeCorr", p2X_goodNegTdcTimeCorr); + T->SetBranchAddress("P.hod.2y.GoodNegTdcTimeCorr", p2Y_goodNegTdcTimeCorr); + T->SetBranchAddress("P.hod.1x.GoodPosTdcTimeCorr", p1X_goodPosTdcTimeCorr); + T->SetBranchAddress("P.hod.1y.GoodPosTdcTimeCorr", p1Y_goodPosTdcTimeCorr); + T->SetBranchAddress("P.hod.2x.GoodPosTdcTimeCorr", p2X_goodPosTdcTimeCorr); + T->SetBranchAddress("P.hod.2y.GoodPosTdcTimeCorr", p2Y_goodPosTdcTimeCorr); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + T->SetBranchAddress("Ndata.P.aero.negAdcCounter", &paero_negHits); + T->SetBranchAddress("Ndata.P.aero.posAdcCounter", &paero_posHits); + T->SetBranchAddress("P.aero.negAdcCounter", paero_negPmt); + T->SetBranchAddress("P.aero.posAdcCounter", paero_posPmt); + T->SetBranchAddress("P.aero.negAdcPulseTimeRaw", paero_negPulseTime); + T->SetBranchAddress("P.aero.posAdcPulseTimeRaw", paero_posPulseTime); + T->SetBranchAddress("P.aero.negAdcPulseInt", paero_negPulseInt); + T->SetBranchAddress("P.aero.posAdcPulseInt", paero_posPulseInt); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + T->SetBranchAddress("Ndata.P.cal.pr.negAdcCounter", &ppshwr_negHits); + T->SetBranchAddress("Ndata.P.cal.pr.posAdcCounter", &ppshwr_posHits); + T->SetBranchAddress("P.cal.pr.negAdcCounter", ppshwr_negPmt); + T->SetBranchAddress("P.cal.pr.posAdcCounter", ppshwr_posPmt); + T->SetBranchAddress("P.cal.pr.negAdcPulseTimeRaw", ppshwr_negPulseTime); + T->SetBranchAddress("P.cal.pr.posAdcPulseTimeRaw", ppshwr_posPulseTime); + T->SetBranchAddress("P.cal.pr.negAdcPulseInt", ppshwr_negPulseInt); + T->SetBranchAddress("P.cal.pr.posAdcPulseInt", ppshwr_posPulseInt); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + T->SetBranchAddress("Ndata.P.cal.fly.adcCounter", &pshwr_hits); + T->SetBranchAddress("P.cal.fly.adcCounter", pshwr_pmt); + T->SetBranchAddress("P.cal.fly.adcPulseTimeRaw", pshwr_pulseTime); + T->SetBranchAddress("P.cal.fly.adcPulseInt", pshwr_pulseInt); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + T->SetBranchAddress("Ndata.P.hgcer.adcCounter", &phgc_hits); + T->SetBranchAddress("P.hgcer.adcCounter", phgc_pmt); + T->SetBranchAddress("P.hgcer.adcPulseTimeRaw", phgc_pulseTime); + T->SetBranchAddress("P.hgcer.adcPulseInt", phgc_pulseInt); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + T->SetBranchAddress("Ndata.P.ngcer.adcCounter", &pngc_hits); + T->SetBranchAddress("P.ngcer.adcCounter", pngc_pmt); + T->SetBranchAddress("P.ngcer.adcPulseTimeRaw", pngc_pulseTime); + T->SetBranchAddress("P.ngcer.adcPulseInt", pngc_pulseInt); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + T->SetBranchAddress("Ndata.P.tr.p", &ntracks); + T->SetBranchAddress("P.tr.p", trk_pmag); + + // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: + + // Create histos + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + h_p1X_tdc = new TH1F("h_p1X_tdc", "S1X Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300); + h_p1Y_tdc = new TH1F("h_p1Y_tdc", "S1Y Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300); + h_p2X_tdc = new TH1F("h_p2X_tdc", "S2X Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300); + h_p2Y_tdc = new TH1F("h_p2Y_tdc", "S2Y Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300); + h_p1T_tdc = new TH1F("h_p1T_tdc", "S1X/S1Y Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300); + h_p2T_tdc = new TH1F("h_p2T_tdc", "S2X/S2Y Coincidence Time; TDC Time (ns); Counts / 1 ns", 300, 0, 300); + h_pT1_tdc = new TH1F("h_pT1_tdc", "Hodoscope Trigger (Slot 20 Channel 15); TDC Time (ns); Counts / 1 ns", 300, 0, 300); + h_pT2_tdc = new TH1F("h_pT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31); TDC Time (ns); Counts / 1 ns", 300, 0, 300); + h_pT3_tdc = new TH1F("h_pT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38); TDC Time (ns); Counts / 1 ns", 300, 0, 300); + for (UInt_t iref = 0; iref < ndcRefTimes; iref++) + h_pDCREF_tdc[iref] = new TH1F(Form("h_pDCREF%d_tdc", iref+1), Form("DC Reference Time %d; TDC Time (ns); Counts / 1 ns", iref+1), 200, 400, 600); + h_p1XmpT2_tdc = new TH1F("h_p1XmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S1X; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + h_p1YmpT2_tdc = new TH1F("h_p1YmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S1Y; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + h_p2XmpT2_tdc = new TH1F("h_p2XmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S2X; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + h_p2YmpT2_tdc = new TH1F("h_p2YmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S2Y; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + h_p1TmpT2_tdc = new TH1F("h_p1TmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S1; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + h_p2TmpT2_tdc = new TH1F("h_p2TmpT2_tdc", "Hodoscope Trigger (Slot 19 Channel 31) - S2; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + h_p1XmpT3_tdc = new TH1F("h_p1XmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S1X; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + h_p1YmpT3_tdc = new TH1F("h_p1YmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S1Y; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + h_p2XmpT3_tdc = new TH1F("h_p2XmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S2X; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + h_p2YmpT3_tdc = new TH1F("h_p2YmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S2Y; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + h_p1TmpT3_tdc = new TH1F("h_p1TmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S1; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + h_p2TmpT3_tdc = new TH1F("h_p2TmpT3_tdc", "Hodoscope Trigger (Slot 19 Channel 38) - S2; TDC Time (ns); Counts / 1 ns", 150, 0, 150); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + h2_p1Xneg_pt_tt_diff = new TH2F("h2_p1Xneg_pt_tt_diff", "S1X- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_1x, 0.5, nbars_1x + 0.5, 300, 0, 300); + h2_p1Yneg_pt_tt_diff = new TH2F("h2_p1Yneg_pt_tt_diff", "S1Y- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_1y, 0.5, nbars_1y + 0.5, 300, 0, 300); + h2_p2Xneg_pt_tt_diff = new TH2F("h2_p2Xneg_pt_tt_diff", "S2X- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_2x, 0.5, nbars_2x + 0.5, 300, 0, 300); + h2_p2Yneg_pt_tt_diff = new TH2F("h2_p2Yneg_pt_tt_diff", "S2Y- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_2y, 0.5, nbars_2y + 0.5, 300, 0, 300); + h2_p1Xpos_pt_tt_diff = new TH2F("h2_p1Xpos_pt_tt_diff", "S1X- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_1x, 0.5, nbars_1x + 0.5, 300, 0, 300); + h2_p1Ypos_pt_tt_diff = new TH2F("h2_p1Ypos_pt_tt_diff", "S1Y- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_1y, 0.5, nbars_1y + 0.5, 300, 0, 300); + h2_p2Xpos_pt_tt_diff = new TH2F("h2_p2Xpos_pt_tt_diff", "S2X- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_2x, 0.5, nbars_2x + 0.5, 300, 0, 300); + h2_p2Ypos_pt_tt_diff = new TH2F("h2_p2Ypos_pt_tt_diff", "S2Y- Pulse Time - TDC Time; Pulse Time - TDC Time (ns); Counts / 1 ns", nbars_2y, 0.5, nbars_2y + 0.5, 300, 0, 300); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + h_p1X_fpTime = new TH1F("h_p1X_fpTime", "S1X Focal Plane Time; TDC Time (ns); Counts / 1ns", 100, 0, 100); + h_p1Y_fpTime = new TH1F("h_p1Y_fpTime", "S1Y Focal Plane Time; TDC Time (ns); Counts / 1ns", 100, 0, 100); + h_p2X_fpTime = new TH1F("h_p2X_fpTime", "S2X Focal Plane Time; TDC Time (ns); Counts / 1ns", 100, 0, 100); + h_p2Y_fpTime = new TH1F("h_p2Y_fpTime", "S2Y Focal Plane Time; TDC Time (ns); Counts / 1ns", 100, 0, 100); + + h_p1X_plTime = new TH1F("h_p1X_plTime", "S1X Plane Time; TDC Time (ns); Counts / 1ns", 120, -20, 100); + h_p1Y_plTime = new TH1F("h_p1Y_plTime", "S1Y Plane Time; TDC Time (ns); Counts / 1ns", 120, -20, 100); + h_p2X_plTime = new TH1F("h_p2X_plTime", "S2X Plane Time; TDC Time (ns); Counts / 1ns", 120, -20, 100); + h_p2Y_plTime = new TH1F("h_p2Y_plTime", "S2Y Plane Time; TDC Time (ns); Counts / 1ns", 120, -20, 100); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + h2_p1X_negTdcCorr = new TH2F("h2_p1X_negTdcCorr", "S1X- Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1x, 0.5, nbars_1x + 0.5, 200, -100, 100); + h2_p1Y_negTdcCorr = new TH2F("h2_p1Y_negTdcCorr", "S1Y- Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1y, 0.5, nbars_1y + 0.5, 200, -100, 100); + h2_p2X_negTdcCorr = new TH2F("h2_p2X_negTdcCorr", "S2X- Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2x, 0.5, nbars_2x + 0.5, 200, -100, 100); + h2_p2Y_negTdcCorr = new TH2F("h2_p2Y_negTdcCorr", "S2Y- Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2y, 0.5, nbars_2y + 0.5, 200, -100, 100); + h2_p1X_posTdcCorr = new TH2F("h2_p1X_posTdcCorr", "S1X+ Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1x, 0.5, nbars_1x + 0.5, 200, -100, 100); + h2_p1Y_posTdcCorr = new TH2F("h2_p1Y_posTdcCorr", "S1Y+ Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1y, 0.5, nbars_1y + 0.5, 200, -100, 100); + h2_p2X_posTdcCorr = new TH2F("h2_p2X_posTdcCorr", "S2X+ Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2x, 0.5, nbars_2x + 0.5, 200, -100, 100); + h2_p2Y_posTdcCorr = new TH2F("h2_p2Y_posTdcCorr", "S2Y+ Corrected TDC Time vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2y, 0.5, nbars_2y + 0.5, 200, -100, 100); + h2_p1X_tdcCorrDiff = new TH2F("h2_p1X_tdcCorrDiff", "S1X-/S1X+ Corrected TDC Time Difference vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1x, 0.5, nbars_1x + 0.5, 100, -50, 50); + h2_p1Y_tdcCorrDiff = new TH2F("h2_p1Y_tdcCorrDiff", "S1Y-/S1Y+ Corrected TDC Time Difference vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_1y, 0.5, nbars_1y + 0.5, 100, -50, 50); + h2_p2X_tdcCorrDiff = new TH2F("h2_p2X_tdcCorrDiff", "S2X-/S2X+ Corrected TDC Time Difference vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2x, 0.5, nbars_2x + 0.5, 100, -50, 50); + h2_p2Y_tdcCorrDiff = new TH2F("h2_p2Y_tdcCorrDiff", "S2Y-/S2Y+ Corrected TDC Time Difference vs. Paddle Number; Paddle Number; TDC Time (ns)", nbars_2y, 0.5, nbars_2y + 0.5, 100, -50, 50); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + h2_paero_negPulseTime_pT1_diff = new TH2F("h2_paero_negPulseTime_pT1_diff", "SHMS Negative Aerogel ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", nneg_aero_pmts, 0.5, nneg_aero_pmts + 0.5, 300, -300, 0); + h2_paero_negPulseTime_pT2_diff = new TH2F("h2_paero_negPulseTime_pT2_diff", "SHMS Negative Aerogel ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", nneg_aero_pmts, 0.5, nneg_aero_pmts + 0.5, 300, -300, 0); + h2_paero_negPulseTime_pT3_diff = new TH2F("h2_paero_negPulseTime_pT3_diff", "SHMS Negative Aerogel ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", nneg_aero_pmts, 0.5, nneg_aero_pmts + 0.5, 300, -300, 0); + h2_paero_posPulseTime_pT1_diff = new TH2F("h2_paero_posPulseTime_pT1_diff", "SHMS Positive Aerogel ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", npos_aero_pmts, 0.5, npos_aero_pmts + 0.5, 300, -300, 0); + h2_paero_posPulseTime_pT2_diff = new TH2F("h2_paero_posPulseTime_pT2_diff", "SHMS Positive Aerogel ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", npos_aero_pmts, 0.5, npos_aero_pmts + 0.5, 300, -300, 0); + h2_paero_posPulseTime_pT3_diff = new TH2F("h2_paero_posPulseTime_pT3_diff", "SHMS Positive Aerogel ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", npos_aero_pmts, 0.5, npos_aero_pmts + 0.5, 300, -300, 0); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + h2_ppshwr_negPulseTime_pT1_diff = new TH2F("h2_ppshwr_negPulseTime_pT1_diff", "SHMS Negative Pre Shower ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", nneg_pshwr_blks, 0.5, nneg_pshwr_blks + 0.5, 300, -300, 0); + h2_ppshwr_negPulseTime_pT2_diff = new TH2F("h2_ppshwr_negPulseTime_pT2_diff", "SHMS Negative Pre Shower ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", nneg_pshwr_blks, 0.5, nneg_pshwr_blks + 0.5, 300, -300, 0); + h2_ppshwr_negPulseTime_pT3_diff = new TH2F("h2_ppshwr_negPulseTime_pT3_diff", "SHMS Negative Pre Shower ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", nneg_pshwr_blks, 0.5, nneg_pshwr_blks + 0.5, 300, -300, 0); + h2_ppshwr_posPulseTime_pT1_diff = new TH2F("h2_ppshwr_posPulseTime_pT1_diff", "SHMS Positive Pre Shower ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", npos_pshwr_blks, 0.5, npos_pshwr_blks + 0.5, 300, -300, 0); + h2_ppshwr_posPulseTime_pT2_diff = new TH2F("h2_ppshwr_posPulseTime_pT2_diff", "SHMS Positive Pre Shower ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", npos_pshwr_blks, 0.5, npos_pshwr_blks + 0.5, 300, -300, 0); + h2_ppshwr_posPulseTime_pT3_diff = new TH2F("h2_ppshwr_posPulseTime_pT3_diff", "SHMS Positive Pre Shower ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", npos_pshwr_blks, 0.5, npos_pshwr_blks + 0.5, 300, -300, 0); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + h2_pshwr_pulseTime_pT1_diff = new TH2F("h2_pshwr_pulseTime_pT1_diff", "SHMS Shower ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", nshwr_blks, 0.5, nshwr_blks + 0.5, 300, -300, 0); + h2_pshwr_pulseTime_pT2_diff = new TH2F("h2_pshwr_pulseTime_pT2_diff", "SHMS Shower ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", nshwr_blks, 0.5, nshwr_blks + 0.5, 300, -300, 0); + h2_pshwr_pulseTime_pT3_diff = new TH2F("h2_pshwr_pulseTime_pT3_diff", "SHMS Shower ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", nshwr_blks, 0.5, nshwr_blks + 0.5, 300, -300, 0); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + h2_phgc_pulseTime_pT1_diff = new TH2F("h2_phgc_pulseTime_pT1_diff", "SHMS Heavy Gas Cherenkov ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", nhgc_pmts, 0.5, nhgc_pmts + 0.5, 300, -300, 0); + h2_phgc_pulseTime_pT2_diff = new TH2F("h2_phgc_pulseTime_pT2_diff", "SHMS Heavy Gas Cherenkov ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", nhgc_pmts, 0.5, nhgc_pmts + 0.5, 300, -300, 0); + h2_phgc_pulseTime_pT3_diff = new TH2F("h2_phgc_pulseTime_pT3_diff", "SHMS Heavy Gas Cherenkov ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", nhgc_pmts, 0.5, nhgc_pmts + 0.5, 300, -300, 0); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + h2_pngc_pulseTime_pT1_diff = new TH2F("h2_pngc_pulseTime_pT1_diff", "SHMS Noble Gas Cherenkov ADC Pulse Time - T1; PMT Number; ADC Pulse Time - Trigger 1 Time (ns)", nngc_pmts, 0.5, nngc_pmts + 0.5, 300, -300, 0); + h2_pngc_pulseTime_pT2_diff = new TH2F("h2_pngc_pulseTime_pT2_diff", "SHMS Noble Gas Cherenkov ADC Pulse Time - T2; PMT Number; ADC Pulse Time - Trigger 2 Time (ns)", nngc_pmts, 0.5, nngc_pmts + 0.5, 300, -300, 0); + h2_pngc_pulseTime_pT3_diff = new TH2F("h2_pngc_pulseTime_pT3_diff", "SHMS Noble Gas Cherenkov ADC Pulse Time - T3; PMT Number; ADC Pulse Time - Trigger 3 Time (ns)", nngc_pmts, 0.5, nngc_pmts + 0.5, 300, -300, 0); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + h2_pshwr_vs_phgcer = new TH2F ("h2_pshwr_vs_phgcer", "SHMS Shower vs. Heavy Gas Cherenkov; Number of HGC Photoelectrons / 1 Photoelectron; Shower Energy / 1 MeV", 500, 0, 500, 4000, 0, 4); + h2_pshwr_vs_pngcer = new TH2F ("h2_pshwr_vs_pngcer", "SHMS Shower vs. Noble Gas Cherenkov; Number of NGC Photoelectrons / 1 Photoelectron; Shower Energy / 1 MeV", 500, 0, 500, 4000, 0, 4); + h2_pshwr_vs_ppshwr = new TH2F ("h2_pshwr_vs_ppshwr", "SHMS Shower vs. Pre-Shower; Pre-Shower Energy / 1 MeV; Shower Energy / 1 MeV", 4000, 0, 4, 4000, 0, 4); + h_paero_sum = new TH1F ("h_paero_sum", "SHMS Number of Aerogrel Photoelectrons; Number of Aerogel Photoelectrons; Counts / 1 Photoelectron", 500, 0, 500); + h_ppshwr_sum = new TH1F ("h_ppshwr_sum", "SHMS Pre-Shower Energy; Pre-Shower Energy; Counts / 10 MeV", 4000, 0, 4); + h_pshwr_sum = new TH1F ("h_pshwr_sum", "SHMS Shower Energy; Shower Energy; Counts / 10 MeV", 4000, 0, 4); + h_ptotshwr_sum = new TH1F ("h_ptotshwr_sum", "SHMS Total Shower Energy; Total Shower Energy; Counts / 10 MeV", 1200, 0, 12); + h_phgc_sum = new TH1F ("h_phgc_sum", "SHMS Number of HGC Photoelectrons; Number of HGC Photoelectrons; Counts / 1 Photoelectron", 500, 0, 500); + h_pngc_sum = new TH1F ("h_pngc_sum", "SHMS Number of NGC Photoelectrons; Number of NGC Photoelectrons; Counts / 1 Photoelectron", 500, 0, 500); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==// + + h2_EdivP_vs_P = new TH2F ("h2_EdivP_vs_P", "SHMS E/p vs. p; p (geV); E/p", 600, 0, 6, 100, 0, 1); + + // =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: + + // Loop of entries in tree + for(UInt_t ievent = 0; ievent < nentries; ievent++) { + + T->GetEntry(ievent); + + // cout << "========================" << endl; + // cout << "Event Number = " << ievent << endl; + // cout << "========================" << endl; + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//== + + // Fill "good" hit histos + for (UInt_t igoodhit = 0; igoodhit < p1X_nGoodHodoHits; igoodhit++) { + h2_p1X_negTdcCorr->Fill(p1X_goodPaddle[igoodhit], p1X_goodNegTdcTimeCorr[igoodhit]); + h2_p1X_posTdcCorr->Fill(p1X_goodPaddle[igoodhit], p1X_goodPosTdcTimeCorr[igoodhit]); + h2_p1X_tdcCorrDiff->Fill(p1X_goodPaddle[igoodhit], p1X_goodPosTdcTimeCorr[igoodhit] - p1X_goodNegTdcTimeCorr[igoodhit]); + if (TMath::Abs(p1X_goodPosTdcTimeCorr[igoodhit] - p1X_goodNegTdcTimeCorr[igoodhit]) > 0.1) continue; + h_p1X_plTime->Fill(p1X_goodPosTdcTimeCorr[igoodhit]); + } + for (UInt_t igoodhit = 0; igoodhit < p1Y_nGoodHodoHits; igoodhit++) { + h2_p1Y_negTdcCorr->Fill(p1Y_goodPaddle[igoodhit], p1Y_goodNegTdcTimeCorr[igoodhit]); + h2_p1Y_posTdcCorr->Fill(p1Y_goodPaddle[igoodhit], p1Y_goodPosTdcTimeCorr[igoodhit]); + h2_p1Y_tdcCorrDiff->Fill(p1Y_goodPaddle[igoodhit], p1Y_goodPosTdcTimeCorr[igoodhit] - p1Y_goodNegTdcTimeCorr[igoodhit]); + if (TMath::Abs(p1Y_goodPosTdcTimeCorr[igoodhit] - p1Y_goodNegTdcTimeCorr[igoodhit]) > 0.1) continue; + h_p1Y_plTime->Fill(p1Y_goodPosTdcTimeCorr[igoodhit]); + } + for (UInt_t igoodhit = 0; igoodhit < p2X_nGoodHodoHits; igoodhit++) { + h2_p2X_negTdcCorr->Fill(p2X_goodPaddle[igoodhit], p2X_goodNegTdcTimeCorr[igoodhit]); + h2_p2X_posTdcCorr->Fill(p2X_goodPaddle[igoodhit], p2X_goodPosTdcTimeCorr[igoodhit]); + h2_p2X_tdcCorrDiff->Fill(p2X_goodPaddle[igoodhit], p2X_goodPosTdcTimeCorr[igoodhit] - p2X_goodNegTdcTimeCorr[igoodhit]); + if (TMath::Abs(p2X_goodPosTdcTimeCorr[igoodhit] - p2X_goodNegTdcTimeCorr[igoodhit]) > 0.1) continue; + h_p2X_plTime->Fill(p2X_goodPosTdcTimeCorr[igoodhit]); + } + for (UInt_t igoodhit = 0; igoodhit < p2Y_nGoodHodoHits; igoodhit++) { + h2_p2Y_negTdcCorr->Fill(p2Y_goodPaddle[igoodhit], p2Y_goodNegTdcTimeCorr[igoodhit]); + h2_p2Y_posTdcCorr->Fill(p2Y_goodPaddle[igoodhit], p2Y_goodPosTdcTimeCorr[igoodhit]); + h2_p2Y_tdcCorrDiff->Fill(p2Y_goodPaddle[igoodhit], p2Y_goodPosTdcTimeCorr[igoodhit] - p2Y_goodNegTdcTimeCorr[igoodhit]); + if (TMath::Abs(p2Y_goodPosTdcTimeCorr[igoodhit] - p2Y_goodNegTdcTimeCorr[igoodhit]) > 0.1) continue; + h_p2Y_plTime->Fill(p2Y_goodPosTdcTimeCorr[igoodhit]); + } + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//== + + // Fill pulse/tdc time difference histos + + // cout << "Num of ADC Hits = " << p1X_negAdcHits << endl; + // cout << "ADC Paddle Number = " << p1X_negAdcPaddle[iadchit] << endl; + // cout << "Num of TDC Hits = " << p1X_negTdcHits << endl; + // cout << "TDC Paddle Number = " << p1X_negTdcPaddle[itdchit] << endl; + + for (UInt_t iadchit = 0; iadchit < p1X_negAdcHits; iadchit++) { + for (UInt_t itdchit = 0; itdchit < p1X_negTdcHits; itdchit++) { + if (p1X_negAdcPaddle[iadchit] != p1X_negTdcPaddle[itdchit]) continue; + h2_p1Xneg_pt_tt_diff->Fill(p1X_negAdcPaddle[iadchit], p1X_negAdcPulseTime[iadchit]*clk2adc - p1X_negTdcTime[itdchit]*clk2tdc); + } + } + for (UInt_t iadchit = 0; iadchit < p1Y_negAdcHits; iadchit++) { + for (UInt_t itdchit = 0; itdchit < p1Y_negTdcHits; itdchit++) { + if (p1Y_negAdcPaddle[iadchit] != p1Y_negTdcPaddle[itdchit]) continue; + h2_p1Yneg_pt_tt_diff->Fill(p1Y_negAdcPaddle[iadchit], p1Y_negAdcPulseTime[iadchit]*clk2adc - p1Y_negTdcTime[itdchit]*clk2tdc); + } + } + for (UInt_t iadchit = 0; iadchit < p2X_negAdcHits; iadchit++) { + for (UInt_t itdchit = 0; itdchit < p2X_negTdcHits; itdchit++) { + if (p2X_negAdcPaddle[iadchit] != p2X_negTdcPaddle[itdchit]) continue; + h2_p2Xneg_pt_tt_diff->Fill(p2X_negAdcPaddle[iadchit], p2X_negAdcPulseTime[iadchit]*clk2adc - p2X_negTdcTime[itdchit]*clk2tdc); + } + } + for (UInt_t iadchit = 0; iadchit < p2Y_negAdcHits; iadchit++) { + for (UInt_t itdchit = 0; itdchit < p2Y_negTdcHits; itdchit++) { + if (p2Y_negAdcPaddle[iadchit] != p2Y_negTdcPaddle[itdchit]) continue; + h2_p2Yneg_pt_tt_diff->Fill(p2Y_negAdcPaddle[iadchit], p2Y_negAdcPulseTime[iadchit]*clk2adc - p2Y_negTdcTime[itdchit]*clk2tdc); + } + } + for (UInt_t iadchit = 0; iadchit < p1X_posAdcHits; iadchit++) { + for (UInt_t itdchit = 0; itdchit < p1X_posTdcHits; itdchit++) { + if (p1X_posAdcPaddle[iadchit] != p1X_posTdcPaddle[itdchit]) continue; + h2_p1Xpos_pt_tt_diff->Fill(p1X_posAdcPaddle[iadchit], p1X_posAdcPulseTime[iadchit]*clk2adc - p1X_posTdcTime[itdchit]*clk2tdc); + } + } + for (UInt_t iadchit = 0; iadchit < p1Y_posAdcHits; iadchit++) { + for (UInt_t itdchit = 0; itdchit < p1Y_posTdcHits; itdchit++) { + if (p1Y_nGoodHodoHits < 1) continue; + if (p1Y_posAdcPaddle[iadchit] != p1Y_posTdcPaddle[itdchit]) continue; + h2_p1Ypos_pt_tt_diff->Fill(p1Y_posAdcPaddle[iadchit], p1Y_posAdcPulseTime[iadchit]*clk2adc - p1Y_posTdcTime[itdchit]*clk2tdc); + } + } + for (UInt_t iadchit = 0; iadchit < p2X_posAdcHits; iadchit++) { + for (UInt_t itdchit = 0; itdchit < p2X_posTdcHits; itdchit++) { + if (p2X_posAdcPaddle[iadchit] != p2X_posTdcPaddle[itdchit]) continue; + h2_p2Xpos_pt_tt_diff->Fill(p2X_posAdcPaddle[iadchit], p2X_posAdcPulseTime[iadchit]*clk2adc - p2X_posTdcTime[itdchit]*clk2tdc); + } + } + for (UInt_t iadchit = 0; iadchit < p2Y_posAdcHits; iadchit++) { + for (UInt_t itdchit = 0; itdchit < p2Y_posTdcHits; itdchit++) { + if (p2Y_posAdcPaddle[iadchit] != p2Y_posTdcPaddle[itdchit]) continue; + h2_p2Ypos_pt_tt_diff->Fill(p2Y_posAdcPaddle[iadchit], p2Y_posAdcPulseTime[iadchit]*clk2adc - p2Y_posTdcTime[itdchit]*clk2tdc); + } + } + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//== + + // Fill trigger time histos + if (p1X_tdcTime != 0.0) h_p1X_tdc->Fill(p1X_tdcTime*clk2tdc); + if (p1Y_tdcTime != 0.0) h_p1Y_tdc->Fill(p1Y_tdcTime*clk2tdc); + if (p2X_tdcTime != 0.0) h_p2X_tdc->Fill(p2X_tdcTime*clk2tdc); + if (p2Y_tdcTime != 0.0) h_p2Y_tdc->Fill(p2Y_tdcTime*clk2tdc); + if (p1T_tdcTime != 0.0) h_p1T_tdc->Fill(p1T_tdcTime*clk2tdc); + if (p2T_tdcTime != 0.0) h_p2T_tdc->Fill(p2T_tdcTime*clk2tdc); + + h_pT1_tdc->Fill(pT1_tdcTime*clk2tdc); + h_pT2_tdc->Fill(pT2_tdcTime*clk2tdc); + h_pT3_tdc->Fill(pT3_tdcTime*clk2tdc); + + for (UInt_t iref = 0; iref < ndcRefTimes; iref++) + h_pDCREF_tdc[iref]->Fill(pDCREF_tdcTime[iref]*clk2tdc); + + if (p1X_tdcTime != 0.0) h_p1XmpT2_tdc->Fill((pT2_tdcTime - p1X_tdcTime)*clk2tdc); + if (p1Y_tdcTime != 0.0) h_p1YmpT2_tdc->Fill((pT2_tdcTime - p1Y_tdcTime)*clk2tdc); + if (p2X_tdcTime != 0.0) h_p2XmpT2_tdc->Fill((pT2_tdcTime - p2X_tdcTime)*clk2tdc); + if (p2Y_tdcTime != 0.0) h_p2YmpT2_tdc->Fill((pT2_tdcTime - p2Y_tdcTime)*clk2tdc); + if (p1T_tdcTime != 0.0) h_p1TmpT2_tdc->Fill((pT2_tdcTime - p1T_tdcTime)*clk2tdc); + if (p2T_tdcTime != 0.0) h_p2TmpT2_tdc->Fill((pT2_tdcTime - p2T_tdcTime)*clk2tdc); + + if (p1X_tdcTime != 0.0) h_p1XmpT3_tdc->Fill((pT3_tdcTime - p1X_tdcTime)*clk2tdc); + if (p1Y_tdcTime != 0.0) h_p1YmpT3_tdc->Fill((pT3_tdcTime - p1Y_tdcTime)*clk2tdc); + if (p2X_tdcTime != 0.0) h_p2XmpT3_tdc->Fill((pT3_tdcTime - p2X_tdcTime)*clk2tdc); + if (p2Y_tdcTime != 0.0) h_p2YmpT3_tdc->Fill((pT3_tdcTime - p2Y_tdcTime)*clk2tdc); + if (p1T_tdcTime != 0.0) h_p1TmpT3_tdc->Fill((pT3_tdcTime - p1T_tdcTime)*clk2tdc); + if (p2T_tdcTime != 0.0) h_p2TmpT3_tdc->Fill((pT3_tdcTime - p2T_tdcTime)*clk2tdc); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//== + + h_p1X_fpTime->Fill(p1X_fpTime); h_p1Y_fpTime->Fill(p1Y_fpTime); + h_p2X_fpTime->Fill(p2X_fpTime); h_p2Y_fpTime->Fill(p2Y_fpTime); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//== + + Double_t paero_sum = 0.0; + for (UInt_t iaerohit = 0; iaerohit < paero_negHits; iaerohit++) { + h2_paero_negPulseTime_pT1_diff->Fill(paero_negPmt[iaerohit], paero_negPulseTime[iaerohit]*clk2adc - pT1_tdcTime*clk2tdc); + h2_paero_negPulseTime_pT2_diff->Fill(paero_negPmt[iaerohit], paero_negPulseTime[iaerohit]*clk2adc - pT2_tdcTime*clk2tdc); + h2_paero_negPulseTime_pT3_diff->Fill(paero_negPmt[iaerohit], paero_negPulseTime[iaerohit]*clk2adc - pT3_tdcTime*clk2tdc); + paero_sum += paero_negPulseInt[iaerohit]*aero_adc2npe; + } + for (UInt_t iaerohit = 0; iaerohit < paero_posHits; iaerohit++) { + h2_paero_posPulseTime_pT1_diff->Fill(paero_posPmt[iaerohit], paero_posPulseTime[iaerohit]*clk2adc - pT1_tdcTime*clk2tdc); + h2_paero_posPulseTime_pT2_diff->Fill(paero_posPmt[iaerohit], paero_posPulseTime[iaerohit]*clk2adc - pT2_tdcTime*clk2tdc); + h2_paero_posPulseTime_pT3_diff->Fill(paero_posPmt[iaerohit], paero_posPulseTime[iaerohit]*clk2adc - pT3_tdcTime*clk2tdc); + paero_sum += paero_posPulseInt[iaerohit]*aero_adc2npe; + } + if (paero_sum != 0.0) h_paero_sum->Fill(paero_sum); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//== + + Double_t ppshwr_sum = 0.0; + for (UInt_t ipshwrhit = 0; ipshwrhit < ppshwr_negHits; ipshwrhit++) { + h2_ppshwr_negPulseTime_pT1_diff->Fill(ppshwr_negPmt[ipshwrhit], ppshwr_negPulseTime[ipshwrhit]*clk2adc - pT1_tdcTime*clk2tdc); + h2_ppshwr_negPulseTime_pT2_diff->Fill(ppshwr_negPmt[ipshwrhit], ppshwr_negPulseTime[ipshwrhit]*clk2adc - pT2_tdcTime*clk2tdc); + h2_ppshwr_negPulseTime_pT3_diff->Fill(ppshwr_negPmt[ipshwrhit], ppshwr_negPulseTime[ipshwrhit]*clk2adc - pT3_tdcTime*clk2tdc); + ppshwr_sum += ppshwr_negPulseInt[ipshwrhit]*pshwr_adc2GeV; + } + for (UInt_t ipshwrhit = 0; ipshwrhit < ppshwr_posHits; ipshwrhit++) { + h2_ppshwr_posPulseTime_pT1_diff->Fill(ppshwr_posPmt[ipshwrhit], ppshwr_posPulseTime[ipshwrhit]*clk2adc - pT1_tdcTime*clk2tdc); + h2_ppshwr_posPulseTime_pT2_diff->Fill(ppshwr_posPmt[ipshwrhit], ppshwr_posPulseTime[ipshwrhit]*clk2adc - pT2_tdcTime*clk2tdc); + h2_ppshwr_posPulseTime_pT3_diff->Fill(ppshwr_posPmt[ipshwrhit], ppshwr_posPulseTime[ipshwrhit]*clk2adc - pT3_tdcTime*clk2tdc); + ppshwr_sum += ppshwr_posPulseInt[ipshwrhit]*pshwr_adc2GeV; + } + if (ppshwr_sum != 0.0) h_ppshwr_sum->Fill(ppshwr_sum); + + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//== + + Double_t pshwr_sum = 0.0; + for (UInt_t ishwrhit = 0; ishwrhit < pshwr_hits; ishwrhit++) { + h2_pshwr_pulseTime_pT1_diff->Fill(pshwr_pmt[ishwrhit], pshwr_pulseTime[ishwrhit]*clk2adc - pT1_tdcTime*clk2tdc); + h2_pshwr_pulseTime_pT2_diff->Fill(pshwr_pmt[ishwrhit], pshwr_pulseTime[ishwrhit]*clk2adc - pT2_tdcTime*clk2tdc); + h2_pshwr_pulseTime_pT3_diff->Fill(pshwr_pmt[ishwrhit], pshwr_pulseTime[ishwrhit]*clk2adc - pT3_tdcTime*clk2tdc); + pshwr_sum += pshwr_pulseInt[ishwrhit]*shwr_adc2GeV; + } + if (pshwr_sum != 0.0) h_pshwr_sum->Fill(pshwr_sum); + if ((ppshwr_sum + pshwr_sum) != 0.0) h_ptotshwr_sum->Fill(ppshwr_sum + pshwr_sum); + if (ppshwr_sum != 0.0 && pshwr_sum != 0.0) { + h2_pshwr_vs_ppshwr->Fill(ppshwr_sum, pshwr_sum); + } + + for (UInt_t itrack = 0; itrack < ntracks; itrack++) + if (trk_pmag != 0.0 && ntracks == 1) h2_EdivP_vs_P->Fill(trk_pmag[0], (ppshwr_sum + pshwr_sum)/trk_pmag[0]); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//== + + Double_t phgc_sum = 0.0; + for (UInt_t ihgchit = 0; ihgchit < phgc_hits; ihgchit++) { + h2_phgc_pulseTime_pT1_diff->Fill(phgc_pmt[ihgchit], phgc_pulseTime[ihgchit]*clk2adc - pT1_tdcTime*clk2tdc); + h2_phgc_pulseTime_pT2_diff->Fill(phgc_pmt[ihgchit], phgc_pulseTime[ihgchit]*clk2adc - pT2_tdcTime*clk2tdc); + h2_phgc_pulseTime_pT3_diff->Fill(phgc_pmt[ihgchit], phgc_pulseTime[ihgchit]*clk2adc - pT3_tdcTime*clk2tdc); + phgc_sum += phgc_pulseInt[ihgchit]*hgc_adc2npe; + } + if (phgc_sum != 0.0) h_phgc_sum->Fill(phgc_sum); + if (phgc_sum != 0.0 && (ppshwr_sum + pshwr_sum) != 0.0) h2_pshwr_vs_phgcer->Fill(phgc_sum, ppshwr_sum + pshwr_sum); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//== + + Double_t pngc_sum = 0.0; + for (UInt_t ingchit = 0; ingchit < pngc_hits; ingchit++) { + h2_pngc_pulseTime_pT1_diff->Fill(pngc_pmt[ingchit], pngc_pulseTime[ingchit]*clk2adc - pT1_tdcTime*clk2tdc); + h2_pngc_pulseTime_pT2_diff->Fill(pngc_pmt[ingchit], pngc_pulseTime[ingchit]*clk2adc - pT2_tdcTime*clk2tdc); + h2_pngc_pulseTime_pT3_diff->Fill(pngc_pmt[ingchit], pngc_pulseTime[ingchit]*clk2adc - pT3_tdcTime*clk2tdc); + pngc_sum += pngc_pulseInt[ingchit]*ngc_adc2npe; + } + if (pngc_sum != 0.0) h_pngc_sum->Fill(pngc_sum); + if (pngc_sum != 0.0 && (ppshwr_sum + pshwr_sum) != 0.0) h2_pshwr_vs_pngcer->Fill(pngc_sum, ppshwr_sum + pshwr_sum); + + // ==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//== + + if ((ievent)%1000 == 0) + cout << "ievent = " << ievent << endl; + + } // Entries loop +} // UserScript function + +void kpp_analysis(TString histname) { + + // Grab the histo + TH1F *h1d; + TH2F *h2d; + + h1d = dynamic_cast <TH1F*> (gDirectory->Get(histname)); + h2d = dynamic_cast <TH2F*> (gDirectory->Get(histname)); + + // Grab histo directly if it does not already exist + if(!h1d && !h2d) { + UserScript(); + h1d = (TH1F*) (gDirectory->Get(histname)); + h2d = (TH2F*) (gDirectory->Get(histname)); + // Throw error + if(!h1d || !h2d) { + cout << "User histogram " << histname << " not found" << endl; + exit(1); + } + } + //else + if (h2d) { + h2d->SetStats(0); + h2d->Draw("colz"); + } + else { + h1d->SetStats(0); + h1d->Draw(); + } +} // kpp_analysis function diff --git a/onlineGUI/Macros/overlay.C b/onlineGUI/Macros/overlay.C new file mode 100755 index 00000000..ac7f0389 --- /dev/null +++ b/onlineGUI/Macros/overlay.C @@ -0,0 +1,54 @@ +void overlay(TString hist1name, TString hist2name, Bool_t golden=false,TString samestr=""){ + TH1F* H1; + TH1F* H2; + + H1 = (TH1F*) gDirectory->Get(hist1name); + H2 = (TH1F*) gDirectory->Get(hist2name); + if (H1 && H2) { + if(golden){ + H1->SetLineColor(30); + H1->SetFillColor(30); + H1->SetFillStyle(3027); + H2->SetLineColor(46); + H2->SetFillColor(46); + H2->SetFillStyle(3027); + } else { + H1->SetLineColor(4); + H2->SetLineColor(2); + H1->SetStats(0); + H2->SetStats(0); + H1->SetMinimum(0); + H2->SetMinimum(0); + } + + if(golden){ + if(!samestr.Contains("sames")) samestr += "sames"; + H1->Draw(samestr); + H2->Draw(samestr); + } else { + if(!golden && !samestr.Contains("sames")){ + // pick which hist to draw first: + if(H1->GetMaximum() > H2->GetMaximum()){ + H1->Draw(samestr); + if(!samestr.Contains("sames")) samestr += "sames"; + H2->Draw(samestr); + } else { + H2->Draw(samestr); + if(!samestr.Contains("sames")) samestr += "sames"; + H1->Draw(samestr); + } + } else { + H1->Draw(samestr); + if(!samestr.Contains("sames")) samestr += "sames"; + H2->Draw(samestr); + H2->GetXaxis()->SetTitleOffset(.6); + H2->GetXaxis()->SetTitleSize(0.08); + H2->GetYaxis()->SetTitleOffset(.6); + H2->GetYaxis()->SetTitleSize(0.08); + } + } + } else { + if (!H1) cout << " Histogram " << hist1name << " does not exist" << endl; + if (!H2) cout << " Histogram " << hist2name << " does not exist" << endl; + } +} diff --git a/onlineGUI/Macros/rawdraw.C b/onlineGUI/Macros/rawdraw.C new file mode 100755 index 00000000..f05e820f --- /dev/null +++ b/onlineGUI/Macros/rawdraw.C @@ -0,0 +1,265 @@ +// UserScript.C +// +// Helper macro to build additional histograms + +void UserScript() +{ + + const UInt_t NPLANES = 4; + const UInt_t NSIDES = 2; + const UInt_t MAXBARS = 16; + const UInt_t NSIGNALS = 2; + const UInt_t NADCSIGNALS = 2; + const UInt_t NTDCSIGNALS = 2; + + const TString SPECTROMETER = "H"; + const TString DETECTOR = "hod"; + + const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"}; + const UInt_t nbars[NPLANES] = {16, 10, 16, 10}; + const TString sides[NSIDES] = {"neg", "pos"}; + const TString signals[NSIGNALS] = {"Adc", "Tdc"}; + const TString adc_signals[NADCSIGNALS] = {"Ped", "PedRaw"}; + const TString tdc_signals[NTDCSIGNALS] = {"Time", "TimeRaw"}; + + const Double_t ADC_MIN = 0.0; + const Double_t ADC_MAX = 25000.0; + const Int_t ADC_NBINS = 2500; + const Double_t TDC_MIN = -8000.0; + const Double_t TDC_MAX = 8000.0; + const Int_t TDC_NBINS = 1600; + + Int_t nadchits[NPLANES][NSIDES][NSIGNALS]; + Int_t ntdchits[NPLANES][NSIDES][NSIGNALS]; + + Double_t adc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS]; + Double_t tdc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS]; + + Double_t ped_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + Double_t pedraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + + Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS]; + Double_t tdcraw_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS]; + + TH1F* hadc[NPLANES*NSIDES*NADCSIGNALS*MAXBARS]; + TH1F* htdc[NPLANES*NSIDES*NTDCSIGNALS*MAXBARS]; + + Int_t adc_ihit, tdc_ihit; + + TTree *T=(TTree*)gDirectory->Get("T"); + + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t iside = 0; iside < NSIDES; iside++) { + for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) { + + if(signals[isignal] == "Adc") { + TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + TString adc_ndata_name = "Ndata."+adc_base_name+"Counter"; + T->SetBranchAddress(adc_ndata_name, &nadchits[ip][iside][isignal]); + TString adc_paddle_name = adc_base_name+"Counter"; + T->SetBranchAddress(adc_paddle_name, &adc_paddles[ip][iside][isignal][0]); + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + if (adc_signals[iadcsignal] == "Ped") { + TString pedlist_name = adc_base_name+"Ped"; + T->SetBranchAddress(pedlist_name, &ped_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PedRaw") { + TString pedrawlist_name = adc_base_name+"PedRaw"; + T->SetBranchAddress(pedrawlist_name, &pedraw_values[ip][iside][iadcsignal][0]); + } + } + } + + if(signals[isignal] == "Tdc") { + TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + TString tdc_ndata_name = "Ndata."+tdc_base_name+"Counter"; + T->SetBranchAddress(tdc_ndata_name, &ntdchits[ip][iside][isignal]); + TString tdc_paddle_name = tdc_base_name+"Counter"; + T->SetBranchAddress(tdc_paddle_name, &tdc_paddles[ip][iside][isignal][0]); + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + if (tdc_signals[itdcsignal] == "Time") { + TString tdclist_name = tdc_base_name+"Time"; + T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]); + } + if (tdc_signals[itdcsignal] == "TimeRaw") { + TString tdcrawlist_name = tdc_base_name+"TimeRaw"; + T->SetBranchAddress(tdcrawlist_name, &tdcraw_values[ip][iside][itdcsignal][0]); + } + } + } + + // Create histograms + // ADC and TDC histogram for each + if(signals[isignal] == "Adc") { + UInt_t nadcbins = ADC_NBINS; + Double_t hadcmin = ADC_MIN; + Double_t hadcmax = ADC_MAX; + } + if(signals[isignal] == "Tdc") { + UInt_t ntdcbins = TDC_NBINS; + Double_t htdcmin = TDC_MIN; + Double_t htdcmax = TDC_MAX; + } + + if(signals[isignal] == "Adc") { + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + UInt_t hadcindex = ip*NSIDES*NADCSIGNALS*MAXBARS + +iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS+ibar; + TString iadcbarname = Form("%d",ibar+1); + TString adctitle= "hadc"+plane_names[ip]+iadcbarname+sides[iside] + +" "+adc_signals[iadcsignal]; + TString adcname="uhadc"+plane_names[ip]+iadcbarname+sides[iside]+ + adc_signals[iadcsignal]; + + hadc[hadcindex]=new TH1F(adcname, adctitle, nadcbins, hadcmin, hadcmax); + } + } + } + + if(signals[isignal] == "Tdc") { + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + UInt_t htdcindex = ip*NSIDES*NTDCSIGNALS*MAXBARS + +iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS+ibar; + TString itdcbarname = Form("%d",ibar+1); + TString tdctitle= "htdc"+plane_names[ip]+itdcbarname+sides[iside] + +" "+tdc_signals[itdcsignal]; + TString tdcname="uhtdc"+plane_names[ip]+itdcbarname+sides[iside]+ + tdc_signals[itdcsignal]; + + htdc[htdcindex]=new TH1F(tdcname, tdctitle, ntdcbins, htdcmin, htdcmax); + } + } + } + + } + } + } + + // Loop over the events, filling the histograms + for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) { + T->GetEntry(iev); + + cout << "**************************" << endl; + cout << "Event Number = " << iev << endl; + cout << "**************************" << endl; + + for(UInt_t ip = 0; ip < NPLANES; ip++){ + for(UInt_t iside = 0; iside < NSIDES; iside++) { + for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) { + + if(signals[isignal] == "Adc") { + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + + UInt_t hadcindex_base = ip*NSIDES*NADCSIGNALS*MAXBARS + +iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS; + + cout << "============= ADC =============" << endl; + cout << "ip = " << ip << ", iside = " << iside << ", iadcsignal = " << iadcsignal << ", hadcindex_base = " << hadcindex_base << endl; + + cout << "nadchits = " << nadchits[ip][iside][isignal] << endl; + + for(Int_t adc_ihit = 0; adc_ihit < nadchits[ip][iside][isignal]; adc_ihit++) { + + //UInt_t ibar = TMath::Nint(paddles[ip][iside][isignal][adc_ihit]) - 1; + UInt_t ibar = TMath::Nint(adc_paddles[ip][iside][isignal][adc_ihit]) - 1; + + cout << "ibar = " << ibar << ", adc_ihit = " << adc_ihit << endl; + + cout << "level 1" << endl; + + if (adc_signals[iadcsignal] == "Ped") { + Double_t pedval = ped_values[ip][iside][iadcsignal][adc_ihit]; + } + + cout << "level 2" << endl; + + if (adc_signals[iadcsignal] == "PedRaw") { + Double_t pedrawval = pedraw_values[ip][iside][iadcsignal][adc_ihit]; + } + + cout << "level 3" << endl; + + // if (hadcindex_base == 0 && ibar == 0) UInt_t hadcindex = 1; + // else UInt_t hadcindex = hadcindex_base + ibar; + + UInt_t hadcindex = hadcindex_base + ibar; + + cout << "hadcindex = " << hadcindex << endl; + + if (adc_signals[iadcsignal] == "Ped") { + cout << "pedval = " << pedval << endl; + hadc[hadcindex]->Fill(pedval); + } + if (adc_signals[iadcsignal] == "PedRaw") { + cout << "pedrawval = " << pedrawval << endl; + hadc[hadcindex]->Fill(pedrawval); + } + + } + } + } + + if(signals[isignal] == "Tdc") { + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + + UInt_t htdcindex_base = ip*NSIDES*NTDCSIGNALS*MAXBARS + +iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS; + + cout << "============= TDC =============" << endl; + cout << "ip = " << ip << ", iside = " << iside << ", itdcsignal = " << itdcsignal << ", htdcindex_base = " << htdcindex_base << endl; + + cout << "ntdchits = " << ntdchits[ip][iside][isignal] << endl; + + for(Int_t tdc_ihit = 0; tdc_ihit < ntdchits[ip][iside][isignal]; tdc_ihit++) { + + UInt_t ibar = TMath::Nint(tdc_paddles[ip][iside][isignal][tdc_ihit]) - 1; + + cout << "ibar = " << ibar << endl; + + Double_t tdcval = tdc_values[ip][iside][itdcsignal][tdc_ihit]; + Double_t tdcrawval = tdcraw_values[ip][iside][itdcsignal][tdc_ihit]; + UInt_t htdcindex = htdcindex_base + ibar; + + cout << "htdcindex = " << htdcindex << endl; + + if (tdc_signals[itdcsignal] == "Time") { + cout << "Time = " << tdcval << endl; + htdc[htdcindex]->Fill(tdcval); + } + if (tdc_signals[itdcsignal] == "TimeRaw") { + cout << "RawTime = " << tdcrawval << endl; + htdc[htdcindex]->Fill(tdcrawval); + } + } + } + } + + } + } + } + } + + return; + +} + +void rawdraw(TString histname) { + + TH1F* h; + + h = (TH1F*) gDirectory->Get(histname); + if(!h) { + UserScript(); + h = (TH1F*) gDirectory->Get(histname); + if(!h) { + cout << "User histogram " << histname << " not found" << endl; + exit(1); + } + } + h->Draw(); +} + diff --git a/onlineGUI/Macros/rawdraw_2d_hhodo.C b/onlineGUI/Macros/rawdraw_2d_hhodo.C new file mode 100644 index 00000000..980b0a40 --- /dev/null +++ b/onlineGUI/Macros/rawdraw_2d_hhodo.C @@ -0,0 +1,275 @@ +// UserScript.C +// +// Helper macro to build additional histograms + +void UserScript() +{ + + const UInt_t NPLANES = 4; + const UInt_t NSIDES = 2; + const UInt_t MAXBARS = 16; // FIX ME: Parameter should be 16 + const UInt_t NSIGNALS = 2; + const UInt_t NADCSIGNALS = 7; + const UInt_t NTDCSIGNALS = 2; + const UInt_t MAXHITS=16*16; + + const TString SPECTROMETER = "H"; + const TString DETECTOR = "hod"; + + const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"}; + const UInt_t nbars[NPLANES] = {16, 10, 16, 10}; + const TString sides[NSIDES] = {"neg", "pos"}; + const TString signals[NSIGNALS] = {"Adc", "Tdc"}; + const TString adc_signals[NADCSIGNALS] = {"Ped", "PedRaw", "PulseInt", "PulseIntRaw", + "PulseAmp", "PulseAmpRaw", "PulseTimeRaw"}; + const TString tdc_signals[NTDCSIGNALS] = {"Time", "TimeRaw"}; + + Double_t adcbit_to_pC = 1.0/(50*4096)*4*1000. ;// 1V/(50 Ohms)/4096*4ns* = .020 pC + cout << adcbit_to_pC << endl; + Int_t nadchits[NPLANES][NSIDES][NSIGNALS]; + Int_t ntdchits[NPLANES][NSIDES][NSIGNALS]; + + Double_t adc_paddles[NPLANES][NSIDES][NSIGNALS][MAXHITS]; + Double_t tdc_paddles[NPLANES][NSIDES][NSIGNALS][MAXHITS]; + + Double_t ped_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS]; + Double_t pedraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS]; + + Double_t int_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS]; + Double_t intraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS]; + + Double_t amp_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS]; + Double_t ampraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS]; + + Double_t ptraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS]; + + Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXHITS]; + Double_t tdcraw_values[NPLANES][NSIDES][NTDCSIGNALS][MAXHITS]; + + TH2F* htdc_adc[NPLANES*NSIDES*MAXBARS]; + TH2F* htdc_tdc[NPLANES*MAXBARS]; + TH2F* hadc_adc[NPLANES*MAXBARS]; + TH2F* hadcint_adcint[NPLANES*MAXBARS]; + TH2F* hatdc_atdc[NPLANES*MAXBARS]; + TH2F* hadc_atdc[NPLANES*NSIDES*MAXBARS]; + Int_t adc_ihit, tdc_ihit; + + TTree *T=(TTree*)gDirectory->Get("T"); + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + TString i2dbarname = Form("%d",ibar+1); + TString h2dttitle= "TDC 0.1ns/chan "+plane_names[ip]+i2dbarname+"; Neg ; Pos "; + TString h2dtname="uh2dtdc"+plane_names[ip]+i2dbarname; + htdc_tdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,100,-1000,-500,100,-1000,-500.); + } + } + // + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + TString i2dbarname = Form("%d",ibar+1); + TString h2dttitle= "ADC Peak Amp "+plane_names[ip]+i2dbarname+"; Neg (mV); Pos (mV)"; + TString h2dtname="uh2dadcpeak"+plane_names[ip]+i2dbarname; + // hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,500,-200,5800,500,-200,5800.); + hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,160,0,800,160,0,800.); + TString h2dttitle= "ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)"; + TString h2dtname="uh2dadcint"+plane_names[ip]+i2dbarname; + hadcint_adcint[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,0,100,50,0,100.); + } + } + // + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + TString i2dbarname = Form("%d",ibar+1); + TString h2dttitle= "h2dadctdc"+plane_names[ip]+i2dbarname; + TString h2dtname="uh2dadctdc"+plane_names[ip]+i2dbarname; + hatdc_atdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,100,1000,2000,100,1000,2000.); + } + } + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t iside = 0; iside < NSIDES; iside++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + UInt_t h2dindex = ip*NSIDES*MAXBARS+iside*MAXBARS+ibar; + TString i2dbarname = Form("%d",ibar+1); + TString h2dtitle= "ADC (pc) vs TDC (0.1ns/chan) "+plane_names[ip]+i2dbarname+sides[iside]; + TString h2dname="uh2d"+plane_names[ip]+i2dbarname+sides[iside]; + TString h2datitle= "h2dadcAtdc"+plane_names[ip]+i2dbarname+sides[iside]; + TString h2daname="uh2dadcAtdc"+plane_names[ip]+i2dbarname+sides[iside]; + if ( h2dindex < NPLANES*NSIDES*MAXBARS) { + htdc_adc[h2dindex]= new TH2F(h2dname,h2dtitle,200,-1000,-500,50,0.,100.); + hadc_atdc[h2dindex]= new TH2F(h2daname,h2datitle,50,0,100.,300,1000,2000.); + // cout << " index = " << h2dindex << " " << h2dname << endl; + } else { + cout << " index = " << h2dindex << " too large" << endl; + } + } + for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) { + + if(signals[isignal] == "Adc") { + TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + TString adc_ndata_name = "Ndata."+adc_base_name+"Counter"; + T->SetBranchAddress(adc_ndata_name, &nadchits[ip][iside][isignal]); + TString adc_paddle_name = adc_base_name+"Counter"; + T->SetBranchAddress(adc_paddle_name, &adc_paddles[ip][iside][isignal][0]); + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + if (adc_signals[iadcsignal] == "Ped") { + TString pedlist_name = adc_base_name+"Ped"; + T->SetBranchAddress(pedlist_name, &ped_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PedRaw") { + TString pedrawlist_name = adc_base_name+"PedRaw"; + T->SetBranchAddress(pedrawlist_name, &pedraw_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseInt") { + TString intlist_name = adc_base_name+"PulseInt"; + T->SetBranchAddress(intlist_name, &int_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseIntRaw") { + TString intrawlist_name = adc_base_name+"PulseIntRaw"; + T->SetBranchAddress(intrawlist_name, &intraw_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseAmp") { + TString amplist_name = adc_base_name+"PulseAmp"; + T->SetBranchAddress(amplist_name, &_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseAmpRaw") { + TString amprawlist_name = adc_base_name+"PulseAmpRaw"; + T->SetBranchAddress(amprawlist_name, &raw_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseTimeRaw") { + TString ptrawlist_name = adc_base_name+"PulseTimeRaw"; + T->SetBranchAddress(ptrawlist_name, &ptraw_values[ip][iside][iadcsignal][0]); + } + } + } + + if(signals[isignal] == "Tdc") { + TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + TString tdc_ndata_name = "Ndata."+tdc_base_name+"Counter"; + T->SetBranchAddress(tdc_ndata_name, &ntdchits[ip][iside][isignal]); + TString tdc_paddle_name = tdc_base_name+"Counter"; + T->SetBranchAddress(tdc_paddle_name, &tdc_paddles[ip][iside][isignal][0]); + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + if (tdc_signals[itdcsignal] == "Time") { + TString tdclist_name = tdc_base_name+"Time"; + T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]); + } + if (tdc_signals[itdcsignal] == "TimeRaw") { + TString tdcrawlist_name = tdc_base_name+"TimeRaw"; + T->SetBranchAddress(tdcrawlist_name, &tdcraw_values[ip][iside][itdcsignal][0]); + } + } + } + + } + } + } + + // Loop over the events, filling the histograms + cout << " looping over data " << endl; + for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) { + if (iev%10000==0) cout << " iev = " << iev << endl; + T->GetEntry(iev); + // + Double_t tdcbar_save=-1; + for(UInt_t ip = 0; ip < NPLANES; ip++) { + // cout << iev << " " << ip << " " << ntdchits[ip][0][1]<< " " << ntdchits[ip][1][1] << endl; + for(Int_t tdc1_ihit = 0; tdc1_ihit < ntdchits[ip][0][1]; tdc1_ihit++) { + UInt_t tdc1bar = TMath::Nint(tdc_paddles[ip][0][1][tdc1_ihit]) - 1; + Double_t tdc1val = tdc_values[ip][0][0][tdc1_ihit]; + for(Int_t tdc2_ihit = 0; tdc2_ihit < ntdchits[ip][1][1]; tdc2_ihit++) { + UInt_t tdc2bar = TMath::Nint(tdc_paddles[ip][1][1][tdc2_ihit]) - 1; + Double_t tdc2val =tdc_values[ip][1][0][tdc2_ihit]; + // cout << iev << " " << tdc1_ihit << " " << tdc1val << " " << tdc1bar << " tdc 2 = " << tdc2_ihit << " " << tdc2val << " " << tdc2bar << endl; + if ( tdc2bar == tdc1bar) htdc_tdc[ip*MAXBARS+tdc1bar]->Fill(tdc1val,tdc2val); + if ( ip==3 && tdc2bar == tdc1bar) tdcbar_save=tdc2bar; + } + } + } + for(UInt_t ip = 0; ip < NPLANES; ip++) { + // + for(Int_t adc1_ihit = 0; adc1_ihit < nadchits[ip][0][0]; adc1_ihit++) { + UInt_t adc1bar = TMath::Nint(adc_paddles[ip][0][0][adc1_ihit]) - 1; + Double_t adc1val = int_values[ip][0][2][adc1_ihit]*adcbit_to_pC; + Double_t adc1pval = amp_values[ip][0][4][adc1_ihit]; + Double_t adc1tval = ptraw_values[ip][0][6][adc1_ihit]; + for(Int_t adc2_ihit = 0; adc2_ihit < nadchits[ip][1][0]; adc2_ihit++) { + UInt_t adc2bar = TMath::Nint(adc_paddles[ip][1][0][adc2_ihit]) - 1; + Double_t adc2val =int_values[ip][1][2][adc2_ihit]*adcbit_to_pC; + Double_t adc2pval =amp_values[ip][1][4][adc2_ihit]; + Double_t adc2tval =ptraw_values[ip][1][6][adc2_ihit]; + // cout << iev << " " << adc1_ihit << " " << adc1tval << " " << adc1bar << " adc 2 = " << adc2_ihit << " " << adc2tval << " " << adc2bar << endl; + if ( adc2bar == adc1bar ) hadc_adc[ip*MAXBARS+adc1bar]->Fill(adc1pval*.244*2,adc2pval*.244*2); + if ( adc2bar == adc1bar ) hadcint_adcint[ip*MAXBARS+adc1bar]->Fill(adc1val,adc2val); + if ( adc2bar == adc1bar) hatdc_atdc[ip*MAXBARS+adc1bar]->Fill(adc1tval,adc2tval); + } + } + } + // + + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t iside = 0; iside < NSIDES; iside++) { + // + UInt_t hindex_base = ip*NSIDES*MAXBARS+iside*MAXBARS; + for(Int_t tdc1_ihit = 0; tdc1_ihit < ntdchits[ip][iside][1]; tdc1_ihit++) { + UInt_t tdc1bar = TMath::Nint(tdc_paddles[ip][iside][1][tdc1_ihit]) - 1; + Double_t tdc1val = tdc_values[ip][0][0][tdc1_ihit]; + for(Int_t adc2_ihit = 0; adc2_ihit < nadchits[ip][iside][0]; adc2_ihit++) { + UInt_t adc2bar = TMath::Nint(adc_paddles[ip][iside][0][adc2_ihit]) - 1; + Double_t adc2val =int_values[ip][iside][2][adc2_ihit]; + // cout << iev << " " << tdc1_ihit << " " << tdc1val << " " << tdc1bar << " tdc 2 = " << tdc2_ihit << " " << tdc2val << " " << tdc2bar << endl; + if (tdc1bar==adc2bar) htdc_adc[hindex_base+adc2bar]->Fill(tdc1val,adc2val*adcbit_to_pC); + } + } + // + } + } + + } + return; +} + +void rawdraw_2d_hhodo(TString histname) { + + TH1F* h; + + h = (TH1F*) gDirectory->Get(histname); + if(!h) { + UserScript(); + h = (TH1F*) gDirectory->Get(histname); + if(!h) { + cout << "User histogram " << histname << " not found" << endl; + exit(1); + } + } + TLine *pline = new TLine(0,30.,800.,30.); + TLine *pline2 = new TLine(30,0.,30.,800.); + // cout << histname.Contains("adcpeak") << endl; + h->SetStats(0); + h->Draw("colz"); + if (histname.Contains("adcpeak")) { + pline->Draw(); + pline->SetLineColor(2); + pline->SetLineWidth(3); + pline2->Draw(); + pline2->SetLineColor(2); + pline2->SetLineWidth(3); + h->GetXaxis()->SetTitleOffset(.6); + h->GetXaxis()->SetTitleSize(0.08); + h->GetYaxis()->SetTitleOffset(.6); + h->GetYaxis()->SetTitleSize(0.08); + } + if (histname.Contains("adcint")) { + h->GetXaxis()->SetTitleOffset(.6); + h->GetXaxis()->SetTitleSize(0.08); + h->GetYaxis()->SetTitleOffset(.6); + h->GetYaxis()->SetTitleSize(0.08); + } +} + diff --git a/onlineGUI/Macros/rawdraw_2d_phodo.C b/onlineGUI/Macros/rawdraw_2d_phodo.C new file mode 100644 index 00000000..c9232e0f --- /dev/null +++ b/onlineGUI/Macros/rawdraw_2d_phodo.C @@ -0,0 +1,377 @@ +// UserScript.C +// +// Helper macro to build additional histograms + +void UserScript() +{ + const UInt_t NPLANES = 4; + const UInt_t NSIDES = 2; + const UInt_t MAXBARS = 21; // FIX ME: Parameter should be 16 + const UInt_t NSIGNALS = 2; + const UInt_t NADCSIGNALS = 7; + const UInt_t NTDCSIGNALS = 2; + const UInt_t MAXHITS=128*16; + + const TString SPECTROMETER = "P"; + const TString DETECTOR = "hod"; + + const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"}; + const UInt_t nbars[NPLANES] = {13, 13, 14, 21}; + const TString sides[NSIDES] = {"neg", "pos"}; + const TString signals[NSIGNALS] = {"Adc", "Tdc"}; + const TString adc_signals[NADCSIGNALS] = {"Ped", "PedRaw", "PulseInt", "PulseIntRaw", + "PulseAmp", "PulseAmpRaw", "PulseTimeRaw"}; + const TString tdc_signals[NTDCSIGNALS] = {"Time", "TimeRaw"}; + + Double_t adcbit_to_pC = 1.0/(50*4096)*4*1000. ;// 1V/(50 Ohms)/4096*4ns* = .020 pC + Double_t adcpeak_to_mV = 1.0/4096.*1000;// 1.0V per 4096 bits + Double_t fac_for_disc[4]= {2.0,2.,2.,1.};// Factor to have ADC at FADC match signal at discriminatir assuming split of 2/3 to 1/3( 2Y plane has linear FI/FO not a splitter) + cout << adcbit_to_pC << endl; + Int_t nadchits[NPLANES][NSIDES]; + Int_t ntdchits[NPLANES][NSIDES]; + + Double_t adc_paddles[NPLANES][NSIDES][MAXHITS]; + Double_t tdc_paddles[NPLANES][NSIDES][MAXHITS]; + + Double_t adc_values[NPLANES][NSIDES][NADCSIGNALS][MAXHITS]; + Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXHITS]; + + TH2F* htdc_adc[NPLANES*NSIDES*MAXBARS]; + TH2F* htdc_dis[NPLANES*MAXBARS][2]; + Int_t dis_bin[4]={13,13,13,14}; + Double_t dis_min[4]; + Double_t dis_max[4]; + Double_t dis_center_pad1[4]={-33.75,-56.25,-33.75,-56.25}; + Double_t dis_sign[4]={1.,1.,1.,1.}; + Double_t dis_space=7.5; + Int_t pair_pl[4]={1,0,0,2}; + Double_t dis_tdc_min[4]={-1600.,-1700.,-1800.,-1900.}; + Double_t dis_tdc_max[4]={-1100.,-1200.,-1400.,-1100.}; + const TString opp_plane[4] = {";Y1 plane paddle number; Tdc (.1/chan)",";X1 plane paddle number;Tdc (.1/chan) ",";X1 plane paddle number;Tdc (.1/chan) ",";X2 plane paddle number;Tdc (.1/chan) "}; + Double_t htdc_tdc_min1[4]={-1600.,-1700.,-1800.,-1900.}; + Double_t htdc_tdc_max1[4]={-1100.,-1300.,-1400.,-1100.}; + Double_t htdc_tdc_min2[4]={-1500.,-1700.,-1800.,-1900.}; + Double_t htdc_tdc_max2[4]={-1200.,-1300.,-1400.,-1100.}; + Int_t htdc_tdc_bin1[4]; + Int_t htdc_tdc_bin2[4]; + Double_t htdc_adc_min1[4]={-1500.,-1700.,-1800.,-1900.}; + Double_t htdc_adc_max1[4]={-1200.,-1300.,-1400.,-1100.}; + Double_t htdc_adc_min2[4]={0.,0.,0.,0.}; + Double_t htdc_adc_max2[4]={250.,250.,250.,250.}; + Int_t htdc_adc_bin1[4]; + Int_t htdc_adc_bin2[4]; + TH2F* htdc_tdc[NPLANES*MAXBARS]; + TH2F* hadc_adc[NPLANES*MAXBARS]; + TH2F* hadcint_adcint[NPLANES*MAXBARS]; + TH2F* hadc_adc_cut[NPLANES*MAXBARS]; + TH2F* hadcint_adcint_cut[NPLANES*MAXBARS]; + TH2F* hatdc_atdc[NPLANES*MAXBARS]; + TH2F* hadc_atdc[NPLANES*NSIDES*MAXBARS]; + TH2F* hnhits_negtdc_paddle[NPLANES]; + TH2F* hnhits_postdc_paddle[NPLANES]; + Int_t adc_ihit, tdc_ihit; + + TTree *T=(TTree*)gDirectory->Get("T"); + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + TString h2dttitle= "Neg TDC nhits vs paddle Plane "+plane_names[ip]+"; Paddle ; Nhits "; + TString h2dtname="uh1dnegtdcNhitsPad"+plane_names[ip]; + hnhits_negtdc_paddle[ip]= new TH2F(h2dtname,h2dttitle,nbars[ip],1,nbars[ip]+1,10,0,10); + TString h2dttitle= "Pos TDC nhits vs paddle Plane "+plane_names[ip]+"; Paddle ; Nhits "; + TString h2dtname="uh1dpostdcNhitsPad"+plane_names[ip]; + hnhits_postdc_paddle[ip]= new TH2F(h2dtname,h2dttitle,nbars[ip],1,nbars[ip]+1,10,0,10); + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + TString i2dbarname = Form("%d",ibar+1); + TString h2dttitle= "TDC 0.1ns/chan "+plane_names[ip]+i2dbarname+"; Neg ; Pos "; + TString h2dtname="uh2dtdc"+plane_names[ip]+i2dbarname; + htdc_tdc_bin1[ip]=(htdc_tdc_max1[ip]-htdc_tdc_min1[ip])/10.; + htdc_tdc_bin2[ip]=(htdc_tdc_max2[ip]-htdc_tdc_min2[ip])/10.; + htdc_tdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,htdc_tdc_bin1[ip],htdc_tdc_min1[ip],htdc_tdc_max1[ip],htdc_tdc_bin2[ip],htdc_tdc_min2[ip],htdc_tdc_max2[ip]); + TString h2dttitle= "Neg PMT Pad "+plane_names[ip]+i2dbarname+opp_plane[ip]; + TString h2dtname="uh2dtdcvdisneg"+plane_names[ip]+i2dbarname; + htdc_dis[ip*MAXBARS+ibar][0]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,(dis_tdc_max[ip]-dis_tdc_min[ip])/10,dis_tdc_min[ip],dis_tdc_max[ip]); + TString h2dttitle= "Pos PMT Pad "+plane_names[ip]+i2dbarname+opp_plane[ip]; + TString h2dtname="uh2dtdcvdispos"+plane_names[ip]+i2dbarname; + htdc_dis[ip*MAXBARS+ibar][1]= new TH2F(h2dtname,h2dttitle,dis_bin[ip],1,dis_bin[ip]+1,(dis_tdc_max[ip]-dis_tdc_min[ip])/10,dis_tdc_min[ip],dis_tdc_max[ip]); + } + } + // + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + TString i2dbarname = Form("%d",ibar+1); + TString h2dttitle= "ADC Peak Amp "+plane_names[ip]+i2dbarname+"; Neg (mV); Pos (mV)"; + TString h2dtname="uh2dadcpeak"+plane_names[ip]+i2dbarname; + // hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,500,-200,5800,500,-200,5800.); + hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,160,0,800,160,0,800.); + TString h2dtname="uh2dadcpeakcut"+plane_names[ip]+i2dbarname; + // hadc_adc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,500,-200,5800,500,-200,5800.); + hadc_adc_cut[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,160,0,800,160,0,800.); + TString h2dttitle= "ADC Int Amp "+plane_names[ip]+i2dbarname+"; Neg (pC); Pos (pC)"; + TString h2dtname="uh2dadcint"+plane_names[ip]+i2dbarname; + hadcint_adcint[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,0,100,50,0,100.); + TString h2dtname="uh2dadcintcut"+plane_names[ip]+i2dbarname; + hadcint_adcint_cut[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,50,0,100,50,0,100.); + } + } + // + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + TString i2dbarname = Form("%d",ibar+1); + TString h2dttitle= "h2dadctdc"+plane_names[ip]+i2dbarname; + TString h2dtname="uh2dadctdc"+plane_names[ip]+i2dbarname; + hatdc_atdc[ip*MAXBARS+ibar]= new TH2F(h2dtname,h2dttitle,100,1000,2000,100,1000,2000.); + } + } + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t iside = 0; iside < NSIDES; iside++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + UInt_t h2dindex = ip*NSIDES*MAXBARS+iside*MAXBARS+ibar; + TString i2dbarname = Form("%d",ibar+1); + TString h2dtitle= "ADC peak (mV) vs TDC (0.1ns/chan) "+plane_names[ip]+i2dbarname+sides[iside]; + TString h2dname="uh2d"+plane_names[ip]+i2dbarname+sides[iside]; + TString h2datitle= "h2dadcAtdc"+plane_names[ip]+i2dbarname+sides[iside]; + TString h2daname="uh2dadcAtdc"+plane_names[ip]+i2dbarname+sides[iside]; + if ( h2dindex < NPLANES*NSIDES*MAXBARS) { + htdc_adc_bin1[ip]=(htdc_adc_max1[ip]-htdc_adc_min1[ip])/10.; + htdc_adc_bin2[ip]=(htdc_adc_max2[ip]-htdc_adc_min2[ip])/2.; + htdc_adc[h2dindex]= new TH2F(h2dname,h2dtitle,htdc_adc_bin1[ip],htdc_adc_min1[ip],htdc_adc_max1[ip],htdc_adc_bin2[ip],htdc_adc_min2[ip],htdc_adc_max2[ip]); + hadc_atdc[h2dindex]= new TH2F(h2daname,h2datitle,50,0,100.,300,1000,2000.); + // cout << " index = " << h2dindex << " " << h2dname << endl; + } else { + cout << " index = " << h2dindex << " too large" << endl; + } + } + for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) { + + if(signals[isignal] == "Adc") { + TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + TString adc_ndata_name = "Ndata."+adc_base_name+"Counter"; + T->SetBranchAddress(adc_ndata_name, &nadchits[ip][iside]); + TString adc_paddle_name = adc_base_name+"Counter"; + T->SetBranchAddress(adc_paddle_name, &adc_paddles[ip][iside][0]); + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + if (adc_signals[iadcsignal] == "Ped") { + TString pedlist_name = adc_base_name+"Ped"; + T->SetBranchAddress(pedlist_name, &adc_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PedRaw") { + TString pedrawlist_name = adc_base_name+"PedRaw"; + T->SetBranchAddress(pedrawlist_name, &adc_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseInt") { + TString intlist_name = adc_base_name+"PulseInt"; + T->SetBranchAddress(intlist_name, &adc_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseIntRaw") { + TString intrawlist_name = adc_base_name+"PulseIntRaw"; + T->SetBranchAddress(intrawlist_name, &adc_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseAmp") { + TString amplist_name = adc_base_name+"PulseAmp"; + T->SetBranchAddress(amplist_name, &adc_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseAmpRaw") { + TString amprawlist_name = adc_base_name+"PulseAmpRaw"; + T->SetBranchAddress(amprawlist_name, &adc_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseTimeRaw") { + TString ptrawlist_name = adc_base_name+"PulseTimeRaw"; + T->SetBranchAddress(ptrawlist_name, &adc_values[ip][iside][iadcsignal][0]); + } + } + } + + if(signals[isignal] == "Tdc") { + TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + TString tdc_ndata_name = "Ndata."+tdc_base_name+"Counter"; + T->SetBranchAddress(tdc_ndata_name, &ntdchits[ip][iside]); + TString tdc_paddle_name = tdc_base_name+"Counter"; + T->SetBranchAddress(tdc_paddle_name, &tdc_paddles[ip][iside][0]); + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + if (tdc_signals[itdcsignal] == "Time") { + TString tdclist_name = tdc_base_name+"Time"; + T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]); + } + if (tdc_signals[itdcsignal] == "TimeRaw") { + TString tdcrawlist_name = tdc_base_name+"TimeRaw"; + T->SetBranchAddress(tdcrawlist_name, &tdc_values[ip][iside][itdcsignal][0]); + } + } + } + + } + } + } + + // Loop over the events, filling the histograms + // cout << " looping over data " << endl; + Double_t good_pad[4]; + Double_t good_adc[4][2]; + Bool_t good_neg[4][MAXBARS],good_pos[4][MAXBARS]; + for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) { + if (iev%1000==0) cout << " iev = " << iev << endl; + // cout << " get entry = " << iev << endl; + T->GetEntry(iev); + Double_t tdcbarx1_save=-1; + Double_t tdcbarx2_save=-10; + Double_t tdcbary1_save=-1; + Double_t tdcbary2_save=-10; + /* + for(UInt_t ip = 0; ip < NPLANES; ip++) { + Double_t nhits_neg[21]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}; + Double_t nhits_pos[21]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}; + for(Int_t tdc3_ihit = 0; tdc3_ihit < ntdchits[ip][0]; tdc3_ihit++) { + UInt_t tdc3bar = TMath::Nint(tdc_paddles[ip][0][1][tdc3_ihit]) - 1; + nhits_neg[tdc3bar]++; + } + for(Int_t tdc4_ihit = 0; tdc4_ihit < ntdchits[ip][1]; tdc4_ihit++) { + UInt_t tdc4bar = TMath::Nint(tdc_paddles[ip][1][1][tdc4_ihit]) - 1; + nhits_pos[tdc4bar]++; + } + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + hnhits_negtdc_paddle[ip]->Fill(float(ibar+1),nhits_neg[ibar]); + hnhits_postdc_paddle[ip]->Fill(float(ibar+1),nhits_pos[ibar]); + } + } + */ + // cout << " start nplane loop" << endl; + // if (ntdchits[0][0]==1&&ntdchits[0][1]==1&&ntdchits[1][0]==1&&ntdchits[1][1]==1&&ntdchits[2][0]==1&&ntdchits[2][1]==1) { + if (ntdchits[0][0]==1&&ntdchits[0][1]==1) { + // if (1==1) { + for(UInt_t ip = 0; ip < NPLANES; ip++) { + // cout << iev << " " << ip << " " << ntdchits[ip][0]<< " " << ntdchits[ip][1] << endl; + for(Int_t tdc1_ihit = 0; tdc1_ihit < ntdchits[ip][0]; tdc1_ihit++) { + UInt_t tdc1bar = TMath::Nint(tdc_paddles[ip][0][tdc1_ihit]) - 1; + Double_t tdc1val = tdc_values[ip][0][0][tdc1_ihit]; + for(Int_t tdc2_ihit = 0; tdc2_ihit < ntdchits[ip][1]; tdc2_ihit++) { + UInt_t tdc2bar = TMath::Nint(tdc_paddles[ip][1][tdc2_ihit]) - 1; + Double_t tdc2val =tdc_values[ip][1][0][tdc2_ihit]; + // cout << iev << " " << tdc1_ihit << " " << tdc1val << " " << tdc1bar << " tdc 2 = " << tdc2_ihit << " " << tdc2val << " " << tdc2bar << endl; + if ( tdc2bar == tdc1bar) htdc_tdc[ip*MAXBARS+tdc1bar]->Fill(tdc1val,tdc2val); + if ( ip==0 && tdc2bar == tdc1bar) tdcbarx1_save=tdc2bar; + if ( ip==1 && tdc2bar == tdc1bar) tdcbary1_save=tdc2bar; + if ( ip==2 && tdc2bar == tdc1bar) tdcbarx2_save=tdc2bar; + if ( ip==3 && tdc2bar == tdc1bar) tdcbary2_save=tdc2bar; + } + } + // + for(Int_t tdc1_ihit = 0; tdc1_ihit < ntdchits[ip][0]; tdc1_ihit++) { + UInt_t tdc1bar = TMath::Nint(tdc_paddles[ip][0][tdc1_ihit]) - 1; + Double_t tdc1val = tdc_values[ip][0][0][tdc1_ihit]; + for(Int_t tdc3_ihit = 0; tdc3_ihit < ntdchits[pair_pl[ip]][0]; tdc3_ihit++) { + UInt_t tdc3bar = TMath::Nint(tdc_paddles[pair_pl[ip]][0][tdc3_ihit]) - 1; + for(Int_t tdc4_ihit = 0; tdc4_ihit < ntdchits[pair_pl[ip]][1]; tdc4_ihit++) { + UInt_t tdc4bar = TMath::Nint(tdc_paddles[pair_pl[ip]][1][tdc4_ihit]) - 1; + if (tdc3bar == tdc4bar) htdc_dis[ip*MAXBARS+tdc1bar][0]->Fill(float(tdc4bar+1),tdc1val); + }} + } + // + // + for(Int_t tdc2_ihit = 0; tdc2_ihit < ntdchits[ip][1]; tdc2_ihit++) { + UInt_t tdc2bar = TMath::Nint(tdc_paddles[ip][1][tdc2_ihit]) - 1; + Double_t tdc2val = tdc_values[ip][1][0][tdc2_ihit]; + for(Int_t tdc3_ihit = 0; tdc3_ihit < ntdchits[pair_pl[ip]][0]; tdc3_ihit++) { + UInt_t tdc3bar = TMath::Nint(tdc_paddles[pair_pl[ip]][0][tdc3_ihit]) - 1; + for(Int_t tdc4_ihit = 0; tdc4_ihit < ntdchits[pair_pl[ip]][1]; tdc4_ihit++) { + UInt_t tdc4bar = TMath::Nint(tdc_paddles[pair_pl[ip]][1][tdc4_ihit]) - 1; + if (tdc3bar == tdc4bar) htdc_dis[ip*MAXBARS+tdc2bar][1]->Fill(float(tdc4bar+1),tdc2val); + }} + } + // + } + + for(UInt_t ip = 0; ip < NPLANES; ip++) { + // + for(Int_t adc1_ihit = 0; adc1_ihit < nadchits[ip][0]; adc1_ihit++) { + UInt_t adc1bar = TMath::Nint(adc_paddles[ip][0][adc1_ihit]) - 1; + Double_t adc1val = adc_values[ip][0][2][adc1_ihit]*adcbit_to_pC; + Double_t adc1pval = adc_values[ip][0][4][adc1_ihit]*adcpeak_to_mV*fac_for_disc[ip]; + Double_t adc1tval = adc_values[ip][0][6][adc1_ihit]; + for(Int_t adc2_ihit = 0; adc2_ihit < nadchits[ip][1]; adc2_ihit++) { + UInt_t adc2bar = TMath::Nint(adc_paddles[ip][1][adc2_ihit]) - 1; + Double_t adc2val =adc_values[ip][1][2][adc2_ihit]*adcbit_to_pC; + Double_t adc2pval =adc_values[ip][1][4][adc2_ihit]*adcpeak_to_mV*fac_for_disc[ip]; + Double_t adc2tval =adc_values[ip][1][6][adc2_ihit]; + if (ip*MAXBARS+adc1bar > NPLANES*MAXBARS) cout << iev << " " << adc1_ihit << " " << adc1tval << " " << adc1bar << " adc 2 = " << adc2_ihit << " " << adc2tval << " " << adc2bar << endl; + // cout << iev << " " << adc1_ihit << " " << adc1tval << " " << adc1bar << " adc 2 = " << adc2_ihit << " " << adc2tval << " " << adc2bar << endl; + if ( adc2bar == adc1bar) hadc_adc[ip*MAXBARS+adc1bar]->Fill(adc1pval,adc2pval); + if ( adc2bar == adc1bar && TMath::Abs(tdcbarx1_save-tdcbarx2_save)<2) hadc_adc_cut[ip*MAXBARS+adc1bar]->Fill(adc1pval,adc2pval); + if ( adc2bar == adc1bar) hadcint_adcint[ip*MAXBARS+adc1bar]->Fill(adc1val,adc2val); + if ( adc2bar == adc1bar && TMath::Abs(tdcbarx1_save-tdcbarx2_save)<2) hadcint_adcint_cut[ip*MAXBARS+adc1bar]->Fill(adc1val,adc2val); + if ( adc2bar == adc1bar) hatdc_atdc[ip*MAXBARS+adc1bar]->Fill(adc1tval,adc2tval); + } + } + } + // + + // + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t iside = 0; iside < NSIDES; iside++) { + // + UInt_t hindex_base = ip*NSIDES*MAXBARS+iside*MAXBARS; + // cout << " pl = " << ip+1 << " side = " << iside << " number of adc hits = " << nadchits[ip][iside] << " number of tdc hits = " << nadchits[ip][iside] << endl; + for(Int_t tdc1_ihit = 0; tdc1_ihit < ntdchits[ip][iside]; tdc1_ihit++) { + UInt_t tdc1bar = TMath::Nint(tdc_paddles[ip][iside][tdc1_ihit]) - 1; + Double_t tdc1val = tdc_values[ip][iside][0][tdc1_ihit]; + for(Int_t adc2_ihit = 0; adc2_ihit < nadchits[ip][iside]; adc2_ihit++) { + UInt_t adc2bar = TMath::Nint(adc_paddles[ip][iside][adc2_ihit]) - 1; + Double_t adc2val =adc_values[ip][iside][4][adc2_ihit]*adcpeak_to_mV; + // Double_t adc2val =adc_values[ip][iside][2][adc2_ihit]*adcbit_to_pC; + + if (hindex_base+adc2bar > NPLANES*NSIDES*MAXBARS) cout << " adc2bar too large " << tdc1_ihit << " " << tdc1val << " " << tdc1bar << " adc 2 = " << adc2_ihit << " " << adc2val << " " << adc2bar << endl; + // cout << iev << " " << tdc1_ihit << " " << tdc1val << " " << tdc1bar << " adc 2 = " << adc2_ihit << " " << adc2val << " " << adc2bar << endl; + if (tdc1bar==adc2bar) htdc_adc[hindex_base+adc2bar]->Fill(tdc1val,adc2val); + } + } + // + } + } + } + // cout << " finish event = " << iev << endl; + } + return; +} + +void rawdraw_2d_phodo(TString histname) { + + TH1F* h; + + h = (TH1F*) gDirectory->Get(histname); + if(!h) { + UserScript(); + h = (TH1F*) gDirectory->Get(histname); + if(!h) { + cout << "User histogram " << histname << " not found" << endl; + exit(1); + } + } + TLine *pline = new TLine(0,30.,800.,30.); + TLine *pline2 = new TLine(30,0.,30.,800.); + // cout << histname.Contains("adcpeak") << endl; + h->SetStats(0); + h->Draw("colz"); + if (histname.Contains("adcpeak")) { + pline->Draw(); + pline->SetLineColor(2); + pline->SetLineWidth(3); + pline2->Draw(); + pline2->SetLineColor(2); + pline2->SetLineWidth(3); + h->GetXaxis()->SetTitleOffset(.6); + h->GetXaxis()->SetTitleSize(0.08); + h->GetYaxis()->SetTitleOffset(.6); + h->GetYaxis()->SetTitleSize(0.08); + } + if (histname.Contains("adcint")) { + h->GetXaxis()->SetTitleOffset(.6); + h->GetXaxis()->SetTitleSize(0.08); + h->GetYaxis()->SetTitleOffset(.6); + h->GetYaxis()->SetTitleSize(0.08); + } +} + diff --git a/onlineGUI/Macros/rawdraw_hhodo.C b/onlineGUI/Macros/rawdraw_hhodo.C new file mode 100755 index 00000000..56d013a3 --- /dev/null +++ b/onlineGUI/Macros/rawdraw_hhodo.C @@ -0,0 +1,349 @@ +// UserScript.C +// +// Helper macro to build additional histograms + +void UserScript() +{ + + const UInt_t NPLANES = 4; + const UInt_t NSIDES = 2; + const UInt_t MAXBARS = 32; // FIX ME: Parameter should be 16 + const UInt_t NSIGNALS = 2; + const UInt_t NADCSIGNALS = 7; + const UInt_t NTDCSIGNALS = 2; + + const TString SPECTROMETER = "H"; + const TString DETECTOR = "hod"; + + const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"}; + const UInt_t nbars[NPLANES] = {16, 10, 16, 10}; + const TString sides[NSIDES] = {"neg", "pos"}; + const TString signals[NSIGNALS] = {"Adc", "Tdc"}; + const TString adc_signals[NADCSIGNALS] = {"Ped", "PedRaw", "PulseInt", "PulseIntRaw", + "PulseAmp", "PulseAmpRaw", "PulseTimeRaw"}; + const TString tdc_signals[NTDCSIGNALS] = {"Time", "TimeRaw"}; + + const Double_t ADCPED_MIN = 400.0; + const Double_t ADCPED_MAX = 600.0; + const Int_t ADCPED_NBINS = 200; + + const Double_t ADCPEDRAW_MIN = 1700.0; + const Double_t ADCPEDRAW_MAX = 2300.0; + const Int_t ADCPEDRAW_NBINS = 600; + + const Double_t ADCINT_MIN = 0.0; + const Double_t ADCINT_MAX = 25000.0; + const Int_t ADCINT_NBINS = 2500; + + const Double_t ADCINTRAW_MIN = 0.0; + const Double_t ADCINTRAW_MAX = 25000.0; + const Int_t ADCINTRAW_NBINS = 2500; + + const Double_t ADCAMP_MIN = 0.0; + const Double_t ADCAMP_MAX = 4100.0; + const Int_t ADCAMP_NBINS = 410; + + const Double_t ADCAMPRAW_MIN = 0.0; + const Double_t ADCAMPRAW_MAX = 4100.0; + const Int_t ADCAMPRAW_NBINS = 410; + + const Double_t ADCPTRAW_MIN = 500.0; + const Double_t ADCPTRAW_MAX = 2500.0; + const Int_t ADCPTRAW_NBINS = 200; + + const Double_t TDC_MIN = -1200.0; + const Double_t TDC_MAX = -800.0; + const Int_t TDC_NBINS = 40; + + const Double_t RAWTDC_MIN = 3250.0; + const Double_t RAWTDC_MAX = 4250.0; + const Int_t RAWTDC_NBINS = 100; + + Int_t nadchits[NPLANES][NSIDES][NSIGNALS]; + Int_t ntdchits[NPLANES][NSIDES][NSIGNALS]; + + Double_t adc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS]; + Double_t tdc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS]; + + Double_t ped_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + Double_t pedraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + + Double_t int_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + Double_t intraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + + Double_t amp_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + Double_t ampraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + + Double_t ptraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + + Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS]; + Double_t tdcraw_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS]; + + TH1F* hadc[NPLANES*NSIDES*NADCSIGNALS*MAXBARS]; + TH1F* htdc[NPLANES*NSIDES*NTDCSIGNALS*MAXBARS]; + + Int_t adc_ihit, tdc_ihit; + + TTree *T=(TTree*)gDirectory->Get("T"); + + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t iside = 0; iside < NSIDES; iside++) { + for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) { + + if(signals[isignal] == "Adc") { + TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + TString adc_ndata_name = "Ndata."+adc_base_name+"Counter"; + T->SetBranchAddress(adc_ndata_name, &nadchits[ip][iside][isignal]); + TString adc_paddle_name = adc_base_name+"Counter"; + T->SetBranchAddress(adc_paddle_name, &adc_paddles[ip][iside][isignal][0]); + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + if (adc_signals[iadcsignal] == "Ped") { + TString pedlist_name = adc_base_name+"Ped"; + T->SetBranchAddress(pedlist_name, &ped_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PedRaw") { + TString pedrawlist_name = adc_base_name+"PedRaw"; + T->SetBranchAddress(pedrawlist_name, &pedraw_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseInt") { + TString intlist_name = adc_base_name+"PulseInt"; + T->SetBranchAddress(intlist_name, &int_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseIntRaw") { + TString intrawlist_name = adc_base_name+"PulseIntRaw"; + T->SetBranchAddress(intrawlist_name, &intraw_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseAmp") { + TString amplist_name = adc_base_name+"PulseAmp"; + T->SetBranchAddress(amplist_name, &_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseAmpRaw") { + TString amprawlist_name = adc_base_name+"PulseAmpRaw"; + T->SetBranchAddress(amprawlist_name, &raw_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseTimeRaw") { + TString ptrawlist_name = adc_base_name+"PulseTimeRaw"; + T->SetBranchAddress(ptrawlist_name, &ptraw_values[ip][iside][iadcsignal][0]); + } + } + } + + if(signals[isignal] == "Tdc") { + TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + TString tdc_ndata_name = "Ndata."+tdc_base_name+"Counter"; + T->SetBranchAddress(tdc_ndata_name, &ntdchits[ip][iside][isignal]); + TString tdc_paddle_name = tdc_base_name+"Counter"; + T->SetBranchAddress(tdc_paddle_name, &tdc_paddles[ip][iside][isignal][0]); + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + if (tdc_signals[itdcsignal] == "Time") { + TString tdclist_name = tdc_base_name+"Time"; + T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]); + } + if (tdc_signals[itdcsignal] == "TimeRaw") { + TString tdcrawlist_name = tdc_base_name+"TimeRaw"; + T->SetBranchAddress(tdcrawlist_name, &tdcraw_values[ip][iside][itdcsignal][0]); + } + } + } + + if(signals[isignal] == "Adc") { + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + UInt_t hadcindex = ip*NSIDES*NADCSIGNALS*MAXBARS + +iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS+ibar; + TString iadcbarname = Form("%d",ibar+1); + TString adctitle= "hadc"+plane_names[ip]+iadcbarname+sides[iside] + +" "+adc_signals[iadcsignal]; + TString adcname="uhadc"+plane_names[ip]+iadcbarname+sides[iside]+ + adc_signals[iadcsignal]; + + if (adc_signals[iadcsignal] == "Ped") { + UInt_t nadcbins = ADCPED_NBINS; + Double_t hadcmin = ADCPED_MIN; + Double_t hadcmax = ADCPED_MAX; + } + if (adc_signals[iadcsignal] == "PedRaw") { + UInt_t nadcbins = ADCPEDRAW_NBINS; + Double_t hadcmin = ADCPEDRAW_MIN; + Double_t hadcmax = ADCPEDRAW_MAX; + } + if (adc_signals[iadcsignal] == "PulseInt") { + UInt_t nadcbins = ADCINT_NBINS; + Double_t hadcmin = ADCINT_MIN; + Double_t hadcmax = ADCINT_MAX; + } + if (adc_signals[iadcsignal] == "PulseIntRaw") { + UInt_t nadcbins = ADCINTRAW_NBINS; + Double_t hadcmin = ADCINTRAW_MIN; + Double_t hadcmax = ADCINTRAW_MAX; + } + if (adc_signals[iadcsignal] == "PulseAmp") { + UInt_t nadcbins = ADCAMP_NBINS; + Double_t hadcmin = ADCAMP_MIN; + Double_t hadcmax = ADCAMP_MAX; + } + if (adc_signals[iadcsignal] == "PulseAmpRaw") { + UInt_t nadcbins = ADCAMPRAW_NBINS; + Double_t hadcmin = ADCAMPRAW_MIN; + Double_t hadcmax = ADCAMPRAW_MAX; + } + if (adc_signals[iadcsignal] == "PulseTimeRaw") { + UInt_t nadcbins = ADCPTRAW_NBINS; + Double_t hadcmin = ADCPTRAW_MIN; + Double_t hadcmax = ADCPTRAW_MAX; + } + hadc[hadcindex]=new TH1F(adcname, adctitle, nadcbins, hadcmin, hadcmax); + } + } + } + + if(signals[isignal] == "Tdc") { + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + UInt_t htdcindex = ip*NSIDES*NTDCSIGNALS*MAXBARS + +iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS+ibar; + TString itdcbarname = Form("%d",ibar+1); + TString tdctitle= "htdc"+plane_names[ip]+itdcbarname+sides[iside] + +" "+tdc_signals[itdcsignal]; + TString tdcname="uhtdc"+plane_names[ip]+itdcbarname+sides[iside]+ + tdc_signals[itdcsignal]; + + if (tdc_signals[itdcsignal] == "TimeRaw") { + UInt_t ntdcbins = RAWTDC_NBINS; + Double_t htdcmin = RAWTDC_MIN; + Double_t htdcmax = RAWTDC_MAX; + } + if (tdc_signals[itdcsignal] == "Time") { + UInt_t ntdcbins = TDC_NBINS; + Double_t htdcmin = TDC_MIN; + Double_t htdcmax = TDC_MAX; + } + htdc[htdcindex]=new TH1F(tdcname, tdctitle, ntdcbins, htdcmin, htdcmax); + } + } + } + } + } + } + + // Loop over the events, filling the histograms + for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) { + T->GetEntry(iev); + + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t iside = 0; iside < NSIDES; iside++) { + for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) { + + if(signals[isignal] == "Adc") { + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + + UInt_t hadcindex_base = ip*NSIDES*NADCSIGNALS*MAXBARS + +iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS; + + for(Int_t adc_ihit = 0; adc_ihit < nadchits[ip][iside][isignal]; adc_ihit++) { + + UInt_t ibar = TMath::Nint(adc_paddles[ip][iside][isignal][adc_ihit]) - 1; + + if (adc_signals[iadcsignal] == "Ped") + Double_t pedval = ped_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PedRaw") + Double_t pedrawval = pedraw_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PulseInt") + Double_t intval = int_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PulseIntRaw") + Double_t intrawval = intraw_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PulseAmp") + Double_t ampval = amp_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PulseAmpRaw") + Double_t amprawval = ampraw_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PulseTimeRaw") + Double_t ptrawval = ptraw_values[ip][iside][iadcsignal][adc_ihit]; + + UInt_t hadcindex = hadcindex_base + ibar; + + // cout << "hadcindex = " << hadcindex << endl; + + if (hadcindex < NPLANES*NSIDES*NADCSIGNALS*MAXBARS) { + if (adc_signals[iadcsignal] == "Ped") { + // cout << "pedval = " << pedval << endl; + hadc[hadcindex]->Fill(pedval); + } + if (adc_signals[iadcsignal] == "PedRaw") { + // cout << "pedrawval = " << pedrawval << endl; + hadc[hadcindex]->Fill(pedrawval); + } + if (adc_signals[iadcsignal] == "PulseInt") { + // cout << "intval = " << intval << endl; + hadc[hadcindex]->Fill(intval); + } + if (adc_signals[iadcsignal] == "PulseIntRaw") { + // cout << "intrawval = " << intrawval << endl; + hadc[hadcindex]->Fill(intrawval); + } + if (adc_signals[iadcsignal] == "PulseAmp") { + // cout << "ampval = " << ampval << endl; + hadc[hadcindex]->Fill(ampval); + } + if (adc_signals[iadcsignal] == "PulseAmpRaw") { + // cout << "amprawval = " << amprawval << endl; + hadc[hadcindex]->Fill(amprawval); + } + if (adc_signals[iadcsignal] == "PulseTimeRaw") { + // cout << "ptrawval = " << ptrawval << endl; + hadc[hadcindex]->Fill(ptrawval); + } + } + } + } + } + + if(signals[isignal] == "Tdc") { + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + + UInt_t htdcindex_base = ip*NSIDES*NTDCSIGNALS*MAXBARS + +iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS; + + for(Int_t tdc_ihit = 0; tdc_ihit < ntdchits[ip][iside][isignal]; tdc_ihit++) { + + UInt_t ibar = TMath::Nint(tdc_paddles[ip][iside][isignal][tdc_ihit]) - 1; + + Double_t tdcval = tdc_values[ip][iside][itdcsignal][tdc_ihit]; + Double_t tdcrawval = tdcraw_values[ip][iside][itdcsignal][tdc_ihit]; + UInt_t htdcindex = htdcindex_base + ibar; + + if (tdc_signals[itdcsignal] == "Time") { + // cout << "Time = " << tdcval << endl; + htdc[htdcindex]->Fill(tdcval); + } + if (tdc_signals[itdcsignal] == "TimeRaw") { + // cout << "RawTime = " << tdcrawval << endl; + htdc[htdcindex]->Fill(tdcrawval); + } + } + } + } + } + } + } + } + return; +} + +void rawdraw_hhodo(TString histname) { + + TH1F* h; + + h = (TH1F*) gDirectory->Get(histname); + if(!h) { + UserScript(); + h = (TH1F*) gDirectory->Get(histname); + if(!h) { + cout << "User histogram " << histname << " not found" << endl; + exit(1); + } + } + h->Draw(); +} + diff --git a/onlineGUI/Macros/rawdraw_phodo.C b/onlineGUI/Macros/rawdraw_phodo.C new file mode 100755 index 00000000..077221f4 --- /dev/null +++ b/onlineGUI/Macros/rawdraw_phodo.C @@ -0,0 +1,349 @@ +// UserScript.C +// +// Helper macro to build additional histograms + +void UserScript() +{ + + const UInt_t NPLANES = 4; + const UInt_t NSIDES = 2; + const UInt_t MAXBARS = 100; // FIX ME: Parameter should be 21 + const UInt_t NSIGNALS = 2; + const UInt_t NADCSIGNALS = 7; + const UInt_t NTDCSIGNALS = 2; + + const TString SPECTROMETER = "P"; + const TString DETECTOR = "hod"; + + const TString plane_names[NPLANES] = {"1x", "1y", "2x", "2y"}; + const UInt_t nbars[NPLANES] = {13, 13, 14, 21}; + const TString sides[NSIDES] = {"neg", "pos"}; + const TString signals[NSIGNALS] = {"Adc", "Tdc"}; + const TString adc_signals[NADCSIGNALS] = {"Ped", "PedRaw", "PulseInt", "PulseIntRaw", + "PulseAmp", "PulseAmpRaw", "PulseTimeRaw"}; + const TString tdc_signals[NTDCSIGNALS] = {"Time", "TimeRaw"}; + + const Double_t ADCPED_MIN = 400.0; + const Double_t ADCPED_MAX = 600.0; + const Int_t ADCPED_NBINS = 200; + + const Double_t ADCPEDRAW_MIN = 1700.0; + const Double_t ADCPEDRAW_MAX = 2300.0; + const Int_t ADCPEDRAW_NBINS = 600; + + const Double_t ADCINT_MIN = 0.0; + const Double_t ADCINT_MAX = 25000.0; + const Int_t ADCINT_NBINS = 2500; + + const Double_t ADCINTRAW_MIN = 0.0; + const Double_t ADCINTRAW_MAX = 25000.0; + const Int_t ADCINTRAW_NBINS = 2500; + + const Double_t ADCAMP_MIN = 0.0; + const Double_t ADCAMP_MAX = 4100.0; + const Int_t ADCAMP_NBINS = 410; + + const Double_t ADCAMPRAW_MIN = 0.0; + const Double_t ADCAMPRAW_MAX = 4100.0; + const Int_t ADCAMPRAW_NBINS = 410; + + const Double_t ADCPTRAW_MIN = 500.0; + const Double_t ADCPTRAW_MAX = 2500.0; + const Int_t ADCPTRAW_NBINS = 200; + + const Double_t TDC_MIN = -1800.0; + const Double_t TDC_MAX = -600.0; + const Int_t TDC_NBINS = 120; + + const Double_t RAWTDC_MIN = 4000.0; + const Double_t RAWTDC_MAX = 7000.0; + const Int_t RAWTDC_NBINS = 300; + + Int_t nadchits[NPLANES][NSIDES][NSIGNALS]; + Int_t ntdchits[NPLANES][NSIDES][NSIGNALS]; + + Double_t adc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS]; + Double_t tdc_paddles[NPLANES][NSIDES][NSIGNALS][MAXBARS]; + + Double_t ped_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + Double_t pedraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + + Double_t int_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + Double_t intraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + + Double_t amp_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + Double_t ampraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + + Double_t ptraw_values[NPLANES][NSIDES][NADCSIGNALS][MAXBARS]; + + Double_t tdc_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS]; + Double_t tdcraw_values[NPLANES][NSIDES][NTDCSIGNALS][MAXBARS]; + + TH1F* hadc[NPLANES*NSIDES*NADCSIGNALS*MAXBARS]; + TH1F* htdc[NPLANES*NSIDES*NTDCSIGNALS*MAXBARS]; + + Int_t adc_ihit, tdc_ihit; + + TTree *T=(TTree*)gDirectory->Get("T"); + + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t iside = 0; iside < NSIDES; iside++) { + for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) { + + if(signals[isignal] == "Adc") { + TString adc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + TString adc_ndata_name = "Ndata."+adc_base_name+"Counter"; + T->SetBranchAddress(adc_ndata_name, &nadchits[ip][iside][isignal]); + TString adc_paddle_name = adc_base_name+"Counter"; + T->SetBranchAddress(adc_paddle_name, &adc_paddles[ip][iside][isignal][0]); + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + if (adc_signals[iadcsignal] == "Ped") { + TString pedlist_name = adc_base_name+"Ped"; + T->SetBranchAddress(pedlist_name, &ped_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PedRaw") { + TString pedrawlist_name = adc_base_name+"PedRaw"; + T->SetBranchAddress(pedrawlist_name, &pedraw_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseInt") { + TString intlist_name = adc_base_name+"PulseInt"; + T->SetBranchAddress(intlist_name, &int_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseIntRaw") { + TString intrawlist_name = adc_base_name+"PulseIntRaw"; + T->SetBranchAddress(intrawlist_name, &intraw_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseAmp") { + TString amplist_name = adc_base_name+"PulseAmp"; + T->SetBranchAddress(amplist_name, &_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseAmpRaw") { + TString amprawlist_name = adc_base_name+"PulseAmpRaw"; + T->SetBranchAddress(amprawlist_name, &raw_values[ip][iside][iadcsignal][0]); + } + if (adc_signals[iadcsignal] == "PulseTimeRaw") { + TString ptrawlist_name = adc_base_name+"PulseTimeRaw"; + T->SetBranchAddress(ptrawlist_name, &ptraw_values[ip][iside][iadcsignal][0]); + } + } + } + + if(signals[isignal] == "Tdc") { + TString tdc_base_name = SPECTROMETER+"."+DETECTOR+"."+ + plane_names[ip]+"."+sides[iside]+signals[isignal]; + TString tdc_ndata_name = "Ndata."+tdc_base_name+"Counter"; + T->SetBranchAddress(tdc_ndata_name, &ntdchits[ip][iside][isignal]); + TString tdc_paddle_name = tdc_base_name+"Counter"; + T->SetBranchAddress(tdc_paddle_name, &tdc_paddles[ip][iside][isignal][0]); + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + if (tdc_signals[itdcsignal] == "Time") { + TString tdclist_name = tdc_base_name+"Time"; + T->SetBranchAddress(tdclist_name, &tdc_values[ip][iside][itdcsignal][0]); + } + if (tdc_signals[itdcsignal] == "TimeRaw") { + TString tdcrawlist_name = tdc_base_name+"TimeRaw"; + T->SetBranchAddress(tdcrawlist_name, &tdcraw_values[ip][iside][itdcsignal][0]); + } + } + } + + if(signals[isignal] == "Adc") { + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + UInt_t hadcindex = ip*NSIDES*NADCSIGNALS*MAXBARS + +iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS+ibar; + TString iadcbarname = Form("%d",ibar+1); + TString adctitle= "hadc"+plane_names[ip]+iadcbarname+sides[iside] + +" "+adc_signals[iadcsignal]; + TString adcname="uhadc"+plane_names[ip]+iadcbarname+sides[iside]+ + adc_signals[iadcsignal]; + + if (adc_signals[iadcsignal] == "Ped") { + UInt_t nadcbins = ADCPED_NBINS; + Double_t hadcmin = ADCPED_MIN; + Double_t hadcmax = ADCPED_MAX; + } + if (adc_signals[iadcsignal] == "PedRaw") { + UInt_t nadcbins = ADCPEDRAW_NBINS; + Double_t hadcmin = ADCPEDRAW_MIN; + Double_t hadcmax = ADCPEDRAW_MAX; + } + if (adc_signals[iadcsignal] == "PulseInt") { + UInt_t nadcbins = ADCINT_NBINS; + Double_t hadcmin = ADCINT_MIN; + Double_t hadcmax = ADCINT_MAX; + } + if (adc_signals[iadcsignal] == "PulseIntRaw") { + UInt_t nadcbins = ADCINTRAW_NBINS; + Double_t hadcmin = ADCINTRAW_MIN; + Double_t hadcmax = ADCINTRAW_MAX; + } + if (adc_signals[iadcsignal] == "PulseAmp") { + UInt_t nadcbins = ADCAMP_NBINS; + Double_t hadcmin = ADCAMP_MIN; + Double_t hadcmax = ADCAMP_MAX; + } + if (adc_signals[iadcsignal] == "PulseAmpRaw") { + UInt_t nadcbins = ADCAMPRAW_NBINS; + Double_t hadcmin = ADCAMPRAW_MIN; + Double_t hadcmax = ADCAMPRAW_MAX; + } + if (adc_signals[iadcsignal] == "PulseTimeRaw") { + UInt_t nadcbins = ADCPTRAW_NBINS; + Double_t hadcmin = ADCPTRAW_MIN; + Double_t hadcmax = ADCPTRAW_MAX; + } + hadc[hadcindex]=new TH1F(adcname, adctitle, nadcbins, hadcmin, hadcmax); + } + } + } + + if(signals[isignal] == "Tdc") { + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + for(UInt_t ibar = 0; ibar < nbars[ip]; ibar++) { + UInt_t htdcindex = ip*NSIDES*NTDCSIGNALS*MAXBARS + +iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS+ibar; + TString itdcbarname = Form("%d",ibar+1); + TString tdctitle= "htdc"+plane_names[ip]+itdcbarname+sides[iside] + +" "+tdc_signals[itdcsignal]; + TString tdcname="uhtdc"+plane_names[ip]+itdcbarname+sides[iside]+ + tdc_signals[itdcsignal]; + + if (tdc_signals[itdcsignal] == "TimeRaw") { + UInt_t ntdcbins = RAWTDC_NBINS; + Double_t htdcmin = RAWTDC_MIN; + Double_t htdcmax = RAWTDC_MAX; + } + if (tdc_signals[itdcsignal] == "Time") { + UInt_t ntdcbins = TDC_NBINS; + Double_t htdcmin = TDC_MIN; + Double_t htdcmax = TDC_MAX; + } + htdc[htdcindex]=new TH1F(tdcname, tdctitle, ntdcbins, htdcmin, htdcmax); + } + } + } + } + } + } + + // Loop over the events, filling the histograms + for(UInt_t iev = 0, N = T->GetEntries(); iev < N; iev++) { + T->GetEntry(iev); + + for(UInt_t ip = 0; ip < NPLANES; ip++) { + for(UInt_t iside = 0; iside < NSIDES; iside++) { + for(UInt_t isignal = 0; isignal < NSIGNALS; isignal++) { + + if(signals[isignal] == "Adc") { + for (UInt_t iadcsignal = 0; iadcsignal < NADCSIGNALS; iadcsignal++) { + + UInt_t hadcindex_base = ip*NSIDES*NADCSIGNALS*MAXBARS + +iside*NADCSIGNALS*MAXBARS+iadcsignal*MAXBARS; + + for(Int_t adc_ihit = 0; adc_ihit < nadchits[ip][iside][isignal]; adc_ihit++) { + + UInt_t ibar = TMath::Nint(adc_paddles[ip][iside][isignal][adc_ihit]) - 1; + + if (adc_signals[iadcsignal] == "Ped") + Double_t pedval = ped_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PedRaw") + Double_t pedrawval = pedraw_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PulseInt") + Double_t intval = int_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PulseIntRaw") + Double_t intrawval = intraw_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PulseAmp") + Double_t ampval = amp_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PulseAmpRaw") + Double_t amprawval = ampraw_values[ip][iside][iadcsignal][adc_ihit]; + if (adc_signals[iadcsignal] == "PulseTimeRaw") + Double_t ptrawval = ptraw_values[ip][iside][iadcsignal][adc_ihit]; + + UInt_t hadcindex = hadcindex_base + ibar; + + // cout << "hadcindex = " << hadcindex << endl; + + if (hadcindex < NPLANES*NSIDES*NADCSIGNALS*MAXBARS) { + if (adc_signals[iadcsignal] == "Ped") { + // cout << "pedval = " << pedval << endl; + hadc[hadcindex]->Fill(pedval); + } + if (adc_signals[iadcsignal] == "PedRaw") { + // cout << "pedrawval = " << pedrawval << endl; + hadc[hadcindex]->Fill(pedrawval); + } + if (adc_signals[iadcsignal] == "PulseInt") { + // cout << "intval = " << intval << endl; + hadc[hadcindex]->Fill(intval); + } + if (adc_signals[iadcsignal] == "PulseIntRaw") { + // cout << "intrawval = " << intrawval << endl; + hadc[hadcindex]->Fill(intrawval); + } + if (adc_signals[iadcsignal] == "PulseAmp") { + // cout << "ampval = " << ampval << endl; + hadc[hadcindex]->Fill(ampval); + } + if (adc_signals[iadcsignal] == "PulseAmpRaw") { + // cout << "amprawval = " << amprawval << endl; + hadc[hadcindex]->Fill(amprawval); + } + if (adc_signals[iadcsignal] == "PulseTimeRaw") { + // cout << "ptrawval = " << ptrawval << endl; + hadc[hadcindex]->Fill(ptrawval); + } + } + } + } + } + + if(signals[isignal] == "Tdc") { + for (UInt_t itdcsignal = 0; itdcsignal < NTDCSIGNALS; itdcsignal++) { + + UInt_t htdcindex_base = ip*NSIDES*NTDCSIGNALS*MAXBARS + +iside*NTDCSIGNALS*MAXBARS+itdcsignal*MAXBARS; + + for(Int_t tdc_ihit = 0; tdc_ihit < ntdchits[ip][iside][isignal]; tdc_ihit++) { + + UInt_t ibar = TMath::Nint(tdc_paddles[ip][iside][isignal][tdc_ihit]) - 1; + + Double_t tdcval = tdc_values[ip][iside][itdcsignal][tdc_ihit]; + Double_t tdcrawval = tdcraw_values[ip][iside][itdcsignal][tdc_ihit]; + UInt_t htdcindex = htdcindex_base + ibar; + + if (tdc_signals[itdcsignal] == "Time") { + // cout << "Time = " << tdcval << endl; + htdc[htdcindex]->Fill(tdcval); + } + if (tdc_signals[itdcsignal] == "TimeRaw") { + // cout << "RawTime = " << tdcrawval << endl; + htdc[htdcindex]->Fill(tdcrawval); + } + } + } + } + } + } + } + } + return; +} + +void rawdraw_phodo(TString histname) { + + TH1F* h; + + h = (TH1F*) gDirectory->Get(histname); + if(!h) { + UserScript(); + h = (TH1F*) gDirectory->Get(histname); + if(!h) { + cout << "User histogram " << histname << " not found" << endl; + exit(1); + } + } + h->Draw(); +} + diff --git a/onlineGUI/README.md b/onlineGUI/README.md new file mode 100644 index 00000000..2f31aaf6 --- /dev/null +++ b/onlineGUI/README.md @@ -0,0 +1,37 @@ +onlineGUI +============================================ +This is the GUI that is used for the monitoring of online replay. + +Directory structure +---------------------- +* Config : directory with the onlineGUI configuration files + *Files in Config: + *HMS/HODO/raw_hhodoana.cfg (Plots standard hisotgrams in DEF-files/HMS/HODO/hhodoana.def ) + *SHMS/HODO/raw_phodoana.cfg (Plots standard hisotgrams in DEF-files/SHMS/HODO/phodoana.def ) + *HMS/HODO/raw_hhodo_2d.cfg (2d plots of Good HMS Hodoscope data, efficiency plots) + *HMS/HODO/good_hhodo_2d.cfg (2d plots of Good HMS Hodoscope data, efficiency plots) + *SHMS/HODO/good_phodo_2d.cfg (2d of Good SHMS Hodoscope data, efficiency plots) +* Macros : directory with root macros that can be called by the onlineGUI code + * Files in Macro: + * overlay.C (script to overlay 2 histograms) + * rawdraw_2d_hhodo.C ( Used by raw_hhodo_2d.cfg) + * rawdraw_2d_phodo.C ( Used by raw_phodo_2d.cfg) + * gooddraw_2d_hhodo.C ( Used by good_hhodo_2d.cfg) + * gooddraw_2d_phodo.C ( Used by good_phodo_2d.cfg) + * hodo_efficiency.C ( Used by good_phodo_2d.cfg,good_hhodo_2d.cfg) +* onlineGUI_v1.2.1: directory with the online.c and other files. + +Compiling code +---------------------- +* In onlineGUI_v1.2.1 directory type: make +* executable "online" is created in the onlineGUI directory + +Documentation and Running the code +---------------- +* The pdf file guiHOWTO2007.pdf documents how to use the code +* One method to run the code is: + * online -f Config/hmsdc.cfg -r 60 + * "60" is the run number + * This assumes that hmsdc.cfg as a line such as:protorootfile ../ROOTfiles/hms1190_XXXXX.root + + diff --git a/onlineGUI/onlineGUI_v1.2.1/Makefile b/onlineGUI/onlineGUI_v1.2.1/Makefile index 51e80b0e..0fee22ee 100644 --- a/onlineGUI/onlineGUI_v1.2.1/Makefile +++ b/onlineGUI/onlineGUI_v1.2.1/Makefile @@ -1,6 +1,6 @@ # Makefile for standalone version of panguin/onlineGUI -# - B. Moffit -# +# - B. Moffit +# # Choose the compiler. GCC=g++ @@ -10,14 +10,15 @@ ifdef INSURE GLD=insure endif +ROOTMVERSION = $(shell root-config --version | cut -f1 -d.) ROOTLIBS = $(shell root-config --libs) ROOTGLIBS = $(shell root-config --glibs) INCLUDES = -I$(ROOTSYS)/include CXX = $(GCC) CXXFLAGS = -Wall -fno-exceptions -fPIC $(INCLUDES) -fpermissive LD = $(GLD) -LDFLAGS = -SOFLAGS = -shared +LDFLAGS = +SOFLAGS = -shared GLIBS = $(ROOTGLIBS) -L/usr/X11R6/lib -lXpm -lX11 LIBS = $(GLIBS) $(ROOTLIBS) $(ROOTGLIBS) @@ -25,9 +26,13 @@ MAKEDEPEND = $(GCC) ALL_LIBS = $(LIBS) - CXXFLAGS += -DSTANDALONE +ifeq ($(ROOTMVERSION), 6) + CXXFLAGS += -std=c++11 + MAKEDEPEND += -std=c++11 +endif + # Insert extra headers needed by GetRootFileName.C or GetRunNumber.C ifdef PAN_SRC_PATH PANSRCPATH = $(PAN_SRC_PATH) @@ -42,7 +47,7 @@ endif SRC = online.C DEPS = $(SRC:.C=.d) -OBJS = $(SRC:.C=.o) +OBJS = $(SRC:.C=.o) HEAD = $(SRC:.C=.h) # Make the dictionary @@ -54,12 +59,12 @@ PROGS = online install: all mv $(PROGS) ../ -all: $(PROGS) +all: $(PROGS) -$(PROGS): $(OBJS) $(SRC) $(HEAD) +$(PROGS): $(OBJS) $(SRC) $(HEAD) rm -f $@ @echo "Generating" $@ - $(LD) $(CXXFLAGS) -o $@ $(OBJS) $(ALL_LIBS) + $(LD) $(CXXFLAGS) -o $@ $(OBJS) $(ALL_LIBS) # Dictionary onlineDict.C: $(DOBJS) onlineLinkDef.h @@ -71,7 +76,7 @@ clean: rm -f *.o core *~ *.d *.tar *.so *Dict* $(PROGS) realclean: clean - rm -f *.d ../$(PROGS) + rm -f *.d ../$(PROGS) .SUFFIXES: .SUFFIXES: .c .cc .cpp .C .o .d @@ -87,5 +92,3 @@ realclean: clean [ -s $@ ] || rm -f $@' -include $(DEPS) - - diff --git a/onlineGUI/onlineGUI_v1.2.1/guiHOWTO2007.pdf b/onlineGUI/onlineGUI_v1.2.1/guiHOWTO2007.pdf deleted file mode 100644 index 254bcfaefa1a588802bf9009961886d572a65bc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157338 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%0DVQToilz&wAPkqsi+Z915y`-mxYs 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 AkN^Mx diff --git a/onlineGUI/onlineGUI_v1.2.1/online.C b/onlineGUI/onlineGUI_v1.2.1/online.C old mode 100644 new mode 100755 index f397908e..ad2a619c --- a/onlineGUI/onlineGUI_v1.2.1/online.C +++ b/onlineGUI/onlineGUI_v1.2.1/online.C @@ -1,2015 +1,2083 @@ -/////////////////////////////////////////////////////////////////// -// Macro to help with online analysis -// B. Moffit (moffit@jlab.org) -// - Originally written in Oct. 2003 -// Documentation and updates available at: -// http://www.jlab.org/~moffit/onlineGUI/ -// - -#include "online.h" -#include <string> -#include <fstream> -#include <iostream> -#include <list> -#include <TMath.h> -#include <TBranch.h> -#include <TGClient.h> -#include <TCanvas.h> -#include <TStyle.h> -#include <TROOT.h> -#include <TGImageMap.h> -#include <TGFileDialog.h> -#include <TKey.h> -#include <TObjString.h> -#include <TSystem.h> -#include <TLatex.h> -#include <TText.h> -#include <TGraph.h> -#include "GetRootFileName.C" -#include "GetRunNumber.C" -#include "TPaveText.h" -#ifdef STANDALONE -#include <TApplication.h> -#endif -// #define DEBUGGETFILEOBJECTS -// #define DEBUGPARSE -// #define DEBUG -//#define DEBUG2 -//#define NOISY -//#define INTERNALSTYLE - -TString guiDirectory = "onlineGUI_v1.2.1/"; - -/////////////////////////////////////////////////////////////////// -// Class: OnlineConfig -// -// Utility class that reads in a text file (.cfg) and -// stores it's contents. -// -// - -OnlineConfig::OnlineConfig() -{ - // Constructor. Without an argument, will use default "standard" config - fMonitor = kFALSE; - OnlineConfig("standard"); -} - -OnlineConfig::OnlineConfig(TString anatype) -{ - // Constructor. Takes the config anatype as the only argument. - // Loads up the configuration file, and stores it's contents for access. - - confFileName = anatype; - if(!confFileName.Contains(".cfg")) - confFileName += ".cfg"; - fMonitor = kFALSE; - fFoundCfg = kFALSE; - - // Attempt to find the config file in specified (first argument, - // relative or absolute) location, then in guiDirectory - fConfFile = new ifstream(confFileName.Data()); - if ( ! (*fConfFile) ) { - cerr << "OnlineConfig() WARNING: config file " << confFileName.Data() - << " does not exist" << endl; - cerr << " Checking the " << guiDirectory << " directory" << endl; - confFileName.Prepend(guiDirectory+"/"); - fConfFile = new ifstream(confFileName.Data()); - if ( ! (*fConfFile) ) { - // Didn't find it... load up the default config - confFileName = guiDirectory+"/default.cfg"; - cout << "OnlineConfig() Trying " << confFileName.Data() - << " as default configuration." << endl - << " (May be ok.)" << endl; - fConfFile = new ifstream(confFileName.Data()); - if ( ! (*fConfFile) ) { - cerr << "OnlineConfig() WARNING: no file " - << confFileName.Data() <<endl; - cerr << "You need a configuration to run. Ask an expert."<<endl; - fFoundCfg = kFALSE; - // return; - } else { - fFoundCfg = kTRUE; - } - } else { - fFoundCfg = kTRUE; - } - } else { - fFoundCfg = kTRUE; - } - - if(fFoundCfg) { - clog << "GUI Configuration loading from " - << confFileName.Data() << endl; - } - - ParseFile(); - - // Load up a user configurable style (if it exists) - TString styleFile = guiDirectory+"onlineGUI_Style.C"; - if(!gSystem->AccessPathName(styleFile)) - gROOT->Macro(styleFile); - - fConfFile->close(); - delete fConfFile; - -} - -void OnlineConfig::ParseFile() -{ - // Reads in the Config File, and makes the proper calls to put - // the information contained into memory. - - if(!fFoundCfg) { - return; - } - - TString comment = "#"; - vector<TString> strvect; - TString sinput, sline; - while (sline.ReadLine(*fConfFile)) { - strvect.clear(); - // Strip away leading and trailing spaces. - sline = sline.Strip(TString::kBoth,' '); - // If the line starts with a comment, skip it. - if(sline.BeginsWith(comment)) continue; - // If the line contains a comment, split it up into two and keep - // the uncommented (first) part - if(sline.Contains(comment)) { - TObjArray *tmpoarr = sline.Tokenize(comment); - TObjString *tmpostr = (TObjString*)tmpoarr->First(); - sline = tmpostr->GetString().Strip(TString::kTrailing,' '); - delete tmpoarr; - } - // Now split up the line according to 's and spaces. This is for - // looking for the histogram using it's title (which may contain - // spaces) instead of its name. - if(sline.Contains("'")) { - TObjArray *tmpoarr = sline.Tokenize("'"); - Bool_t quote_on_odd = kTRUE; - if(!(sline.BeginsWith("'"))) quote_on_odd=kFALSE; - TIterator *next = tmpoarr->MakeIterator(); - TObjString *tmpostr; Bool_t odd=kTRUE; - while((tmpostr=(TObjString*)next->Next())!=NULL) { - if((quote_on_odd&&odd) || (!quote_on_odd&&!odd)) { - strvect.push_back(tmpostr->GetString()); - odd = !odd; - } else { - TObjArray *tmpoarr2 = tmpostr->GetString().Tokenize(" "); - TIterator *next2 = tmpoarr2->MakeIterator(); - TObjString *tmpostr2; - while((tmpostr2=(TObjString*)next2->Next())!=NULL) { - strvect.push_back(tmpostr2->GetString()); - } - delete tmpoarr2; - odd = !odd; - } - } - delete tmpoarr; - } else { // No 's.. just split according to spaces - TObjArray *tmpoarr2 = sline.Tokenize(" "); - TIterator *next2 = tmpoarr2->MakeIterator(); - TObjString *tmpostr2; - while((tmpostr2=(TObjString*)next2->Next())!=NULL) { - strvect.push_back(tmpostr2->GetString()); - } - delete tmpoarr2; - } - sConfFile.push_back(strvect); - -} - -#ifdef DEBUGPARSE - for(UInt_t ii=0; ii<sConfFile.size(); ii++) { - cout << "Line " << ii << endl << " "; - for(UInt_t jj=0; jj<sConfFile[ii].size(); jj++) - cout << sConfFile[ii][jj] << " "; - cout << endl; - } -#endif - - cout << " " << sConfFile.size() << " lines read from " - << confFileName << endl; - -} - -Bool_t OnlineConfig::ParseConfig() -{ - // Goes through each line of the config [must have been ParseFile()'d] - // and interprets. - - if(!fFoundCfg) { - return kFALSE; - } - - UInt_t command_cnt=0; - UInt_t j=0; - Bool_t hasMultiPlots=kFALSE; - // If statement for each high level command (cut, newpage, etc) - for(UInt_t i=0;i<sConfFile.size();i++) { - // "newpage" command - if(sConfFile[i][0] == "newpage") { - // sConfFile[i] is first of pair - for(j=i+1;j<sConfFile.size();j++) { - if(sConfFile[j][0] != "newpage") { - // Count how many commands within the page - command_cnt++; - } else break; - } - pageInfo.push_back(make_pair(i,command_cnt)); - i += command_cnt; - command_cnt=0; - } - if(sConfFile[i][0] == "watchfile") { - fMonitor = kTRUE; - } - if(sConfFile[i][0] == "definecut") { - if(sConfFile[i].size()>3) { - cerr << "cut command has too many arguments" << endl; - continue; - } - TCut tempCut(sConfFile[i][1],sConfFile[i][2]); - cutList.push_back(tempCut); - } - if(sConfFile[i][0] == "rootfile") { - if(sConfFile[i].size() != 2) { - cerr << "WARNING: rootfile command does not have the " - << "correct number of arguments" - << endl; - continue; - } - if(!rootfilename.IsNull()) { - cerr << "WARNING: too many rootfile's defined. " - << " Will only use the first one." - << endl; - continue; - } - rootfilename = sConfFile[i][1]; - } - if(sConfFile[i][0] == "goldenrootfile") { - if(sConfFile[i].size() != 2) { - cerr << "WARNING: goldenfile command does not have the " - << "correct number of arguments" - << endl; - continue; - } - if(!goldenrootfilename.IsNull()) { - cerr << "WARNING: too many goldenrootfile's defined. " - << " Will only use the first one." - << endl; - continue; - } - goldenrootfilename = sConfFile[i][1]; - } - if(sConfFile[i][0] == "protorootfile") { - if(sConfFile[i].size() != 2) { - cerr << "WARNING: protorootfile command does not have the " - << "correct number of arguments" - << endl; - continue; - } - if(!protorootfile.IsNull()) { - cerr << "WARNING: too many protorootfile's defined. " - << " Will only use the first one." - << endl; - continue; - } - protorootfile = sConfFile[i][1]; - } - if(sConfFile[i][0] == "guicolor") { - if(sConfFile[i].size() != 2) { - cerr << "WARNING: guicolor command does not have the " - << "correct number of arguments (needs 1)" - << endl; - continue; - } - if(!guicolor.IsNull()) { - cerr << "WARNING: too many guicolor's defined. " - << " Will only use the first one." - << endl; - continue; - } - guicolor = sConfFile[i][1]; - } - if(sConfFile[i][0] == "plotsdir") { - if(sConfFile[i].size() != 2) { - cerr << "WARNING: plotsdir command does not have the " - << "correct number of arguments (needs 1)" - << endl; - continue; - } - if(!plotsdir.IsNull()) { - cerr << "WARNING: too many plotdir's defined. " - << " Will only use the first one." - << endl; - continue; - } - plotsdir = sConfFile[i][1]; - } - if(sConfFile[i][0] == "multiplot") { - hasMultiPlots = kTRUE; - } - - } - - if(hasMultiPlots) { - if(!ParseForMultiPlots()) { - cerr << "ParseForMultiPlots() Failed" << endl; - } - } - -#ifdef NOISY - for(UInt_t i=0; i<GetPageCount(); i++) { - cout << "Page " << i << " (" << GetPageTitle(i) << ")" - << " will draw " << GetDrawCount(i) - << " histograms." << endl; - } -#endif - - cout << "Number of pages defined = " << GetPageCount() << endl; - cout << "Number of cuts defined = " << cutList.size() << endl; - - if (fMonitor) - cout << "Will periodically update plots" << endl; - if(!goldenrootfilename.IsNull()) { - cout << "Will compare chosen histrograms with the golden rootfile: " - << endl - << goldenrootfilename << endl; - } - - return kTRUE; - -} - -Bool_t OnlineConfig::ParseForMultiPlots() { - // Parse through each line of sConfFile, - // and replace each "multiplot" command with a real draw entry - - vector < vector <TString> > newConfFile; - for(UInt_t iter=0;iter<sConfFile.size();iter++) { - if(sConfFile[iter][0]=="multiplot") { - // First argument is the low limit, - // second argument is the high limit - UInt_t lolimit = (UInt_t)sConfFile[iter][1].Atoi(); - UInt_t hilimit = (UInt_t)sConfFile[iter][2].Atoi(); - - // For the rest of the line, replace all of the XXXXX's - // with an iteration from lolimit to hilimit. - for(UInt_t imult=lolimit;imult<=hilimit;imult++) { - vector <TString> newline; - for(UInt_t ielem=3; ielem<sConfFile[iter].size();ielem++) { - TString origString = sConfFile[iter][ielem]; - TString newString = origString; - newString.ReplaceAll("XXXXX",Form("%d",imult)); - newline.push_back(newString); - } - newConfFile.push_back(newline); - } - } else { - newConfFile.push_back(sConfFile[iter]); - } - } - -#ifdef DEBUG - for(UInt_t iter=0;iter<newConfFile.size();iter++) { - for(UInt_t iline=0;iline<newConfFile[iter].size();iline++) { - cout << newConfFile[iter][iline] << " "; - } - cout << endl; - } -#endif - - // Out with the old, in with the new. - sConfFile.clear(); - sConfFile = newConfFile; - - // Now need to recalculate pageInfo. - UInt_t command_cnt=0; - UInt_t j=0; - - pageInfo.clear(); - // If statement for each high level command (cut, newpage, etc) - for(UInt_t i=0;i<sConfFile.size();i++) { - // "newpage" command - if(sConfFile[i][0] == "newpage") { - // sConfFile[i] is first of pair - for(j=i+1;j<sConfFile.size();j++) { - if(sConfFile[j][0] != "newpage") { - // Count how many commands within the page - command_cnt++; - } else break; - } - pageInfo.push_back(make_pair(i,command_cnt)); - i += command_cnt; - command_cnt=0; - } - } - - return kTRUE; - -} - -TCut OnlineConfig::GetDefinedCut(TString ident) { - // Returns the defined cut, according to the identifier - - for(UInt_t i=0; i<cutList.size(); i++) { - if((TString)cutList[i].GetName() == ident.Data()) { - TCut tempCut = cutList[i].GetTitle(); - return tempCut; - } - } - return ""; -} - -vector <TString> OnlineConfig::GetCutIdent() { - // Returns a vector of the cut identifiers, specified in config - vector <TString> out; - - for(UInt_t i=0; i<cutList.size(); i++) { - out.push_back(cutList[i].GetName()); - } - - return out; -} - -Bool_t OnlineConfig::IsLogx(UInt_t page) { -// Check if last word on line is "logx" - - UInt_t page_index = pageInfo[page].first; - Int_t word_index = sConfFile[page_index].size()-1; - if (word_index <= 0) return kFALSE; - TString option = sConfFile[page_index][word_index]; - if(option == "logx") return kTRUE; - return kFALSE; - -} - -Bool_t OnlineConfig::IsLogy(UInt_t page) { -// Check if last word on line is "logy" - - UInt_t page_index = pageInfo[page].first; - Int_t word_index = sConfFile[page_index].size()-1; - if (word_index <= 0) return kFALSE; - TString option = sConfFile[page_index][word_index]; - if(option == "logy") return kTRUE; - return kFALSE; - -} - -Bool_t OnlineConfig::IsLogz(UInt_t page) { -// Check if last word on line is "logz" - - UInt_t page_index = pageInfo[page].first; - Int_t word_index = sConfFile[page_index].size()-1; - if (word_index <= 0) return kFALSE; - TString option = sConfFile[page_index][word_index]; - if(option == "logz") return kTRUE; - return kFALSE; - -} - - -pair <UInt_t, UInt_t> OnlineConfig::GetPageDim(UInt_t page) -{ - // If defined in the config, will return those dimensions - // for the indicated page. Otherwise, will return the - // calculated dimensions required to fit all histograms. - - pair <UInt_t, UInt_t> outDim; - - // This is the page index in sConfFile. - UInt_t page_index = pageInfo[page].first; - - UInt_t size1 = 2; - if (IsLogy(page)) size1 = 3; // last word is "logy" - - // If the dimensions are defined, return them. - if(sConfFile[page_index].size()>size1-1) { - if(sConfFile[page_index].size() == size1) { - outDim = make_pair(UInt_t(atoi(sConfFile[page_index][1])), - UInt_t(atoi(sConfFile[page_index][1]))); - return outDim; - } else if (sConfFile[page_index].size() == size1+1) { - outDim = make_pair(UInt_t(atoi(sConfFile[page_index][1])), - UInt_t(atoi(sConfFile[page_index][2]))); - return outDim; - } else { - cout << "Warning: newpage command has too many arguments. " - << "Will automatically determine dimensions of page." - << endl; - } - } - - // If not defined, return the "default." - UInt_t draw_count = GetDrawCount(page); - UInt_t dim = UInt_t(TMath::Nint(sqrt(Double_t(draw_count+1)))); - outDim = make_pair(dim,dim); - - return outDim; -} - -TString OnlineConfig::GetPageTitle(UInt_t page) -{ - // Returns the title of the page. - // if it is not defined in the config, then return "Page #" - - TString title; - - UInt_t iter_command = pageInfo[page].first+1; - - for(UInt_t i=0; i<pageInfo[page].second; i++) { // go through each command - if(sConfFile[iter_command+i][0] == "title") { - // Combine the strings, and return it - for (UInt_t j=1; j<sConfFile[iter_command+i].size(); j++) { - title += sConfFile[iter_command+i][j]; - title += " "; - } - title.Chop(); - return title; - } - } - title = "Page "; title += page; - return title; -} - -vector <UInt_t> OnlineConfig::GetDrawIndex(UInt_t page) -{ - // Returns an index of where to find the draw commands within a page - // within the sConfFile vector - - vector <UInt_t> index; - UInt_t iter_command = pageInfo[page].first+1; - - for(UInt_t i=0; i<pageInfo[page].second; i++) { - if(sConfFile[iter_command+i][0] != "title") { - index.push_back(iter_command+i); - } - } - - return index; -} - -UInt_t OnlineConfig::GetDrawCount(UInt_t page) -{ - // Returns the number of histograms that have been request for this page - UInt_t draw_count=0; - - for(UInt_t i=0; i<pageInfo[page].second; i++) { - if(sConfFile[pageInfo[page].first+i+1][0] != "title") draw_count++; - } - - return draw_count; - -} - -drawcommand OnlineConfig::GetDrawCommand(UInt_t page, UInt_t nCommand) -{ - // Returns the vector of strings pertaining to a specific page, and - // draw command from the config. - // Return vector of TStrings: - // 0: variable - // 1: cut - only for Tree variables - // 2: type - // 3: title - // 4: treename - only for Tree variables - // 5: nostat - // 6: noshowgolden - only for Histograms - // This should probably be replaced with an actual structure - - drawcommand out_command; - vector <UInt_t> command_vector = GetDrawIndex(page); - UInt_t index = command_vector[nCommand]; - -#ifdef DEBUG - cout << "OnlineConfig::GetDrawCommand(" << page << "," - << nCommand << ")" << endl; -#endif - - // First line is the variable - if(sConfFile[index].size()>=1) { - out_command.variable = sConfFile[index][0]; - } - if(sConfFile[index].size()>=2) { - if((sConfFile[index][1] != "-type") && - (sConfFile[index][1] != "-title") && - (sConfFile[index][1] != "-tree") && - (sConfFile[index][1] != "-noshowgolden") && - (sConfFile[index][1] != "-nostat")) - { - if(out_command.variable=="macro") { - out_command.macro = sConfFile[index][1]; - } else { - out_command.cut = sConfFile[index][1]; - } - } - } - - // Now go through the rest of that line.. - for (UInt_t i=1; i<sConfFile[index].size(); i++) { - if(sConfFile[index][i]=="-type") { - out_command.type = sConfFile[index][i+1]; - i = i+1; - } else if(sConfFile[index][i]=="-title") { - // Put the entire title, surrounded by quotes, as one TString - TString title; - UInt_t j=0; - for(j=i+1; j<sConfFile[index].size(); j++) { - TString word = sConfFile[index][j]; - if( (word.BeginsWith("\"")) && (word.EndsWith("\"")) ) { - title = word.ReplaceAll("\"",""); - out_command.title = title; - i = j; - break; - } else if(word.BeginsWith("\"")) { - title = word.ReplaceAll("\"",""); - } else if(word.EndsWith("\"")) { - title += " " + word.ReplaceAll("\"",""); - out_command.title = title; - i = j; - break; - } else { - title += " " + word; - } - } - // If we got here, and out_command.title is null... then just copy the contents - // of "title" to out_command.title (taking out any "'s along the way) - if(out_command.title.IsNull()) - out_command.title = title.ReplaceAll("\"",""); - } else if(sConfFile[index][i]=="-tree") { - out_command.treename = sConfFile[index][i+1]; - i = i+1; - } else if(sConfFile[index][i]=="-nostat") { - out_command.nostat = "nostat"; - } else if(sConfFile[index][i]=="-noshowgolden") { - out_command.noshowgolden = "noshowgolden"; - } - - -#ifdef DEBUG - cout << endl; -#endif - } -#ifdef DEBUG - cout << sConfFile[index].size() << ": "; - for(UInt_t i=0; i<sConfFile[index].size(); i++) { - cout << sConfFile[index][i] << " "; - } - cout << endl; -#endif - return out_command; -} - -vector <TString> OnlineConfig::SplitString(TString instring,TString delim) -{ - // Utility to split up a string on the deliminator. - // returns a vector of strings. - - vector <TString> v; - - TString remainingString = instring; - TString tempstring = instring; - int i; - - while (remainingString.Index(delim) != -1) { - i = remainingString.Index(delim); - tempstring.Remove(i); - v.push_back(tempstring); - remainingString.Remove(0,i+1); - while(remainingString.Index(delim) == 0) { - remainingString.Remove(0,1); - } - tempstring = remainingString; - // Cut out the rest, if it's a comment (starts with #) - if(TString(remainingString.Strip(TString::kLeading,' ')).BeginsWith("#")) { - tempstring = ""; - break; - } - } - - while(tempstring.EndsWith(delim)) { - tempstring.Chop(); - } - - if(!tempstring.IsNull()) v.push_back(tempstring); - - return v; -} - -void OnlineConfig::OverrideRootFile(UInt_t runnumber) -{ - // Override the ROOT file defined in the cfg file If - // protorootfile is used, construct filename using it, otherwise - // uses a helper macro "GetRootFileName.C(UInt_t runnumber) - - if(!protorootfile.IsNull()) { - TString rn = ""; - rn += runnumber; - protorootfile.ReplaceAll("XXXXX",rn.Data()); - rootfilename = protorootfile; - } else { - rootfilename = GetRootFileName(runnumber); - } - - cout << "Overridden File name: " << rootfilename << endl; -} - -/////////////////////////////////////////////////////////////////// -// Class: OnlineGUI -// -// Creates a GUI to display the commands used in OnlineConfig -// -// - -OnlineGUI::OnlineGUI(OnlineConfig& config, Bool_t printonly,UInt_t RunNum): - runNumber(RunNum), - timer(0), - fFileAlive(kFALSE) -{ - // Constructor. Get the config pointer, and make the GUI. - - fConfig = &config; - - if(printonly) { - fPrintOnly=kTRUE; - PrintPages(); - } else { - fPrintOnly=kFALSE; - CreateGUI(gClient->GetRoot(),200,200); - } -} - -void OnlineGUI::CreateGUI(const TGWindow *p, UInt_t w, UInt_t h) -{ - - // Open the RootFile. Die if it doesn't exist. - // unless we're watching a file. - fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ"); - if(!fRootFile.RootFile->IsOpen()) { - cout << "ERROR: rootfile: " << fConfig->GetRootFile() - << " does not exist" - << endl; - if(fConfig->IsMonitor()) { - cout << "Will wait... hopefully.." << endl; - } else { -#ifdef STANDALONE - gApplication->Terminate(); -#else - return; -#endif - } - } else { - fFileAlive = kTRUE; - ObtainRunNumber(); - // Open the Root Trees. Give a warning if it's not there.. - GetFileObjects(&fRootFile); - GetRootTree(&fRootFile); - GetTreeVars(&fRootFile); - for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) { - if(fRootFile.RootTree[i]==0) { - fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i); - } - } - - } - TString goldenfilename=fConfig->GetGoldenFile(); - if(!goldenfilename.IsNull()) { - fGoldenFile.RootFile = new TFile(goldenfilename,"READ"); - if(!fGoldenFile.RootFile->IsOpen()) { - cout << "ERROR: goldenrootfile: " << goldenfilename - << " does not exist. Oh well, no comparison plots." - << endl; - doGolden = kFALSE; - fGoldenFile.RootFile=NULL; - } else { - // Open the Root Trees. Give a warning if it's not there.. - GetFileObjects(&fGoldenFile); - GetRootTree(&fGoldenFile); - GetTreeVars(&fGoldenFile); - for(UInt_t i=0; i<fGoldenFile.RootTree.size(); i++) { - if(fGoldenFile.RootTree[i]==0) { - fGoldenFile.RootTree.erase(fGoldenFile.RootTree.begin() + i); - } - } - doGolden = kTRUE; - } - } else { - doGolden=kFALSE; - fGoldenFile.RootFile=NULL; - } - - - // Create the main frame - fMain = new TGMainFrame(p,w,h); - fMain->Connect("CloseWindow()", "OnlineGUI", this, "MyCloseWindow()"); - ULong_t lightgreen, lightblue, red, mainguicolor; - gClient->GetColorByName("lightgreen",lightgreen); - gClient->GetColorByName("lightblue",lightblue); - gClient->GetColorByName("red",red); - - Bool_t good_color=kFALSE; - TString usercolor = fConfig->GetGuiColor(); - if(!usercolor.IsNull()) { - good_color = gClient->GetColorByName(usercolor,mainguicolor); - } - - if(!good_color) { - if(!usercolor.IsNull()) { - cout << "Bad guicolor (" << usercolor << ").. using default." << endl; - } - if(fConfig->IsMonitor()) { - // Default background color for Online Monitor - mainguicolor = lightgreen; - } else { - // Default background color for Normal Online Display - mainguicolor = lightblue; - } - } - - fMain->SetBackgroundColor(mainguicolor); - - // Top frame, to hold page buttons and canvas - fTopframe = new TGHorizontalFrame(fMain,200,200); - fTopframe->SetBackgroundColor(mainguicolor); - fMain->AddFrame(fTopframe, new TGLayoutHints(kLHintsExpandX - | kLHintsExpandY,10,10,10,1)); - - // Create a verticle frame widget with radio buttons - // This will hold the page buttons - vframe = new TGVerticalFrame(fTopframe,40,200); - vframe->SetBackgroundColor(mainguicolor); - TString buff; - for(UInt_t i=0; i<fConfig->GetPageCount(); i++) { - buff = fConfig->GetPageTitle(i); - fRadioPage[i] = new TGRadioButton(vframe,buff,i); - fRadioPage[i]->SetBackgroundColor(mainguicolor); - } - - fRadioPage[0]->SetState(kButtonDown); - current_page = 0; - - for (UInt_t i=0; i<fConfig->GetPageCount(); i++) { - vframe->AddFrame(fRadioPage[i], - new TGLayoutHints(kLHintsLeft | - kLHintsCenterY,5,5,3,4)); - fRadioPage[i]->Connect("Pressed()", "OnlineGUI", this, "DoRadio()"); - } - if(!fConfig->IsMonitor()) { - wile = - new TGPictureButton(vframe, - gClient->GetPicture(guiDirectory+"/defaultPic.xpm")); - wile->Connect("Pressed()","OnlineGUI", this,"DoDraw()"); - } else { - wile = - new TGPictureButton(vframe, - gClient->GetPicture(guiDirectory+"/panguin.xpm")); - wile->Connect("Pressed()","OnlineGUI", this,"DoDrawClear(&fRootFile)"); - } - wile->SetBackgroundColor(mainguicolor); - - vframe->AddFrame(wile, - new TGLayoutHints(kLHintsBottom|kLHintsLeft,5,10,4,2)); - - - fTopframe->AddFrame(vframe, - new TGLayoutHints(kLHintsCenterX| - kLHintsCenterY,2,2,2,2)); - - // Create canvas widget - fEcanvas = new TRootEmbeddedCanvas("Ecanvas", fTopframe, 800, 600); - fEcanvas->SetBackgroundColor(mainguicolor); - fTopframe->AddFrame(fEcanvas, new TGLayoutHints(kLHintsExpandY,10,10,10,1)); - fCanvas = fEcanvas->GetCanvas(); - - // Create the bottom frame. Contains control buttons - fBottomFrame = new TGHorizontalFrame(fMain,1200,200); - fBottomFrame->SetBackgroundColor(mainguicolor); - fMain->AddFrame(fBottomFrame, new TGLayoutHints(kLHintsExpandX,10,10,10,10)); - - // Create a horizontal frame widget with buttons - hframe = new TGHorizontalFrame(fBottomFrame,1200,40); - hframe->SetBackgroundColor(mainguicolor); - fBottomFrame->AddFrame(hframe,new TGLayoutHints(kLHintsExpandX,200,20,2,2)); - - fPrev = new TGTextButton(hframe,"Prev"); - fPrev->SetBackgroundColor(mainguicolor); - fPrev->Connect("Clicked()","OnlineGUI",this,"DrawPrev()"); - hframe->AddFrame(fPrev, new TGLayoutHints(kLHintsCenterX,5,5,1,1)); - - fNext = new TGTextButton(hframe,"Next"); - fNext->SetBackgroundColor(mainguicolor); - fNext->Connect("Clicked()","OnlineGUI",this,"DrawNext()"); - hframe->AddFrame(fNext, new TGLayoutHints(kLHintsCenterX,5,5,1,1)); - - fExit = new TGTextButton(hframe,"Exit GUI"); - fExit->SetBackgroundColor(red); - fExit->Connect("Clicked()","OnlineGUI",this,"CloseGUI()"); - - hframe->AddFrame(fExit, new TGLayoutHints(kLHintsCenterX,5,5,1,1)); - - TString Buff; - if(runNumber==0) { - Buff = ""; - } else { - Buff = "Run #"; - Buff += runNumber; - } - TGString labelBuff(Buff); - - fRunNumber = new TGLabel(hframe,Buff); - fRunNumber->SetBackgroundColor(mainguicolor); - hframe->AddFrame(fRunNumber,new TGLayoutHints(kLHintsCenterX,5,5,1,1)); - - fPrint = new TGTextButton(hframe,"Print To &File"); - fPrint->SetBackgroundColor(mainguicolor); - fPrint->Connect("Clicked()","OnlineGUI",this,"PrintToFile()"); - hframe->AddFrame(fPrint, new TGLayoutHints(kLHintsCenterX,5,5,1,1)); - - - // Set a name to the main frame - if(fConfig->IsMonitor()) { - fMain->SetWindowName("Parity ANalysis GUI moNitor"); - } else { - fMain->SetWindowName("Online Analysis GUI"); - } - - // Map all sub windows to main frame - fMain->MapSubwindows(); - - // Initialize the layout algorithm - fMain->Resize(fMain->GetDefaultSize()); - - // Map main frame - fMain->MapWindow(); - -#ifdef DEBUG - fMain->Print(); -#endif - - if(fFileAlive) DoDraw(); - - if(fConfig->IsMonitor()) { - timer = new TTimer(); - if(fFileAlive) { - timer->Connect(timer,"Timeout()","OnlineGUI",this,"TimerUpdate()"); - } else { - timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()"); - } - timer->Start(UPDATETIME); - } - -} - -void OnlineGUI::DoDraw() -{ - // The main Drawing Routine. - -#ifdef INTERNALSTYLE - gStyle->SetOptStat(1110); - gStyle->SetStatFontSize(0.1); -#endif - if (fConfig->IsLogx(current_page)) { - gStyle->SetOptLogx(1); - } else { - gStyle->SetOptLogx(0); - } - if (fConfig->IsLogy(current_page)) { - gStyle->SetOptLogy(1); - } else { - gStyle->SetOptLogy(0); - } - if (fConfig->IsLogz(current_page)) { - gStyle->SetOptLogz(1); - } else { - gStyle->SetOptLogz(0); - } -#ifdef INTERNALSTYLE - gStyle->SetTitleH(0.10); - gStyle->SetTitleW(0.40); -// gStyle->SetLabelSize(0.10,"X"); -// gStyle->SetLabelSize(0.10,"Y"); - gStyle->SetLabelSize(0.05,"X"); - gStyle->SetLabelSize(0.05,"Y"); - gStyle->SetPadLeftMargin(0.14); - gStyle->SetNdivisions(505,"X"); - gStyle->SetNdivisions(404,"Y"); - gStyle->SetPalette(1); - gROOT->ForceStyle(); -#endif - - // Determine the dimensions of the canvas.. - UInt_t draw_count = fConfig->GetDrawCount(current_page); -#ifdef INTERNALSTYLE - if(draw_count>=8) { - gStyle->SetLabelSize(0.08,"X"); - gStyle->SetLabelSize(0.08,"Y"); - } -#endif -// Int_t dim = Int_t(round(sqrt(double(draw_count)))); - pair <UInt_t,UInt_t> dim = fConfig->GetPageDim(current_page); - -#ifdef DEBUG - cout << "Dimensions: " << dim.first << "X" - << dim.second << endl; -#endif - - // Create a nice clean canvas. - fCanvas->Clear(); - fCanvas->Divide(dim.first,dim.second); - - drawcommand thiscommand; - // Draw the histograms. - for(UInt_t i=0; i<draw_count; i++) { - thiscommand = fConfig->GetDrawCommand(current_page,i); - thiscommand = fileObject2command(thiscommand,&fRootFile); - fCanvas->cd(i+1); - if (thiscommand.variable == "macro") { - MacroDraw(thiscommand); - } else if (thiscommand.objtype.Contains("TH")) { - HistDraw(thiscommand); - } else if (thiscommand.objtype.Contains("TCanvas")) { - CanvasDraw(thiscommand,i+1); - } else if (thiscommand.objtype.Contains("TGraph")) { - GraphDraw(thiscommand); - } else { // otherwise... assume that the objtype is a branch from a tree - TreeDraw(thiscommand); - } - } - - fCanvas->cd(); - fCanvas->Update(); - - if(!fPrintOnly) { - CheckPageButtons(); - } - -} - -void OnlineGUI::DrawNext() -{ - // Handler for the "Next" button. - fRadioPage[current_page]->SetState(kButtonUp); - // The following line triggers DoRadio() - fRadioPage[current_page+1]->SetState(kButtonDown,true); - -} - -void OnlineGUI::DrawPrev() -{ - // Handler for the "Prev" button. - fRadioPage[current_page]->SetState(kButtonUp); - // The following line triggers DoRadio() - fRadioPage[current_page-1]->SetState(kButtonDown,true); - -} - -void OnlineGUI::DoRadio() -{ - // Handle the radio buttons - // Find out which button has been pressed.. - // turn off the previous button... - // then draw the appropriate page. - // This routine also handles the Draw from the Prev/Next buttons - // - makes a call to DoDraw() - - UInt_t pagecount = fConfig->GetPageCount(); - TGButton *btn = (TGButton *) gTQSender; - UInt_t id = btn->WidgetId(); - - if (id <= pagecount) { - fRadioPage[current_page]->SetState(kButtonUp); - } - - current_page = id; - if(!fConfig->IsMonitor()) DoDraw(); - -} - -void OnlineGUI::CheckPageButtons() -{ - // Checks the current page to see if it's the first or last page. - // If so... turn off the appropriate button. - // If not.. turn on both buttons. - - if(current_page==0) { - fPrev->SetState(kButtonDisabled); - if(fConfig->GetPageCount()!=1) - fNext->SetState(kButtonUp); - } else if(current_page==fConfig->GetPageCount()-1) { - fNext->SetState(kButtonDisabled); - if(fConfig->GetPageCount()!=1) - fPrev->SetState(kButtonUp); - } else { - fPrev->SetState(kButtonUp); - fNext->SetState(kButtonUp); - } -} - -void OnlineGUI::GetFileObjects(RootFileObject* fLocalRootFileObj) -{ - // Utility to find all of the objects within a File (TTree, TH1F, etc). - // The pair stored in the vector is <ObjName, ObjType> - // For histograms, the title is also stored - // (in case the the name is not very descriptive... like when - // using h2root) - // If there's no good keys.. do nothing. -#ifdef DEBUGGETFILEOBJECTS - cout << "Keys = " << fLocalRootFileObj->RootFile->ReadKeys() << endl; -#endif - if(fLocalRootFileObj->RootFile->ReadKeys()==0) { - fLocalRootFileObj->fUpdate = kFALSE; -// delete fLocalRootFileObj->RootFile; -// fLocalRootFileObj->RootFile = 0; -// CheckRootFile(); - return; - } - fLocalRootFileObj->vfileObjects.clear(); - - TIter next( (fLocalRootFileObj->RootFile)->GetListOfKeys() ); - TKey *key = new TKey(); - - // Do the search - while((key=(TKey*)next())!=0) { -#ifdef DEBUGGETFILEOBJECTS - cout << "Key = " << key << endl; -#endif - TString objname = key->GetName(); - TString objtype = key->GetClassName(); - TString objtitle = key->GetTitle(); -#ifdef DEBUGGETFILEOBJECTS - cout << objname << " " << objtype << endl; -#endif - - if(objtype.Contains("TDirectory")) { - TDirectory *thisdir = (TDirectory*)fLocalRootFileObj->RootFile->Get(objname); - TIter nextInDir(thisdir->GetListOfKeys()); - TKey *innerkey = new TKey(); - while((innerkey=(TKey*)nextInDir())!=0) { - TString iobjname = innerkey->GetName(); - TString iobjtype = innerkey->GetClassName(); - TString iobjtitle = innerkey->GetTitle(); - TString iobjdir = objname; -#ifdef DEBUGGETFILEOBJECTS - cout << iobjname << " " << iobjtype << endl; -#endif - fileObject thisObject; - thisObject.name = iobjname; - thisObject.type = iobjtype; - thisObject.title = iobjtitle; - thisObject.directory = objname; - fLocalRootFileObj->vfileObjects.push_back(thisObject); - } - } else { - fileObject thisObject; - thisObject.name = objname; - thisObject.type = objtype; - thisObject.title = objtitle; - thisObject.directory = ""; - fLocalRootFileObj->vfileObjects.push_back(thisObject); - } - - } - fLocalRootFileObj->fUpdate = kTRUE; - delete key; -} - -void OnlineGUI::GetTreeVars(RootFileObject* fLocalRootFileObj) -{ - // Utility to find all of the variables (leaf's/branches) within a - // Specified TTree and put them within the TreeVars vector. - fLocalRootFileObj->TreeVars.clear(); - TObjArray *branchList; - vector <TString> currentTree; - - for(UInt_t i=0; i<fLocalRootFileObj->RootTree.size(); i++) { - currentTree.clear(); - branchList = fLocalRootFileObj->RootTree[i]->GetListOfBranches(); - TIter next(branchList); - TBranch *brc; - - while((brc=(TBranch*)next())!=0) { - TString found = brc->GetName(); - // Not sure if the line below is so smart... - currentTree.push_back(found); - } - fLocalRootFileObj->TreeVars.push_back(currentTree); - } -#ifdef DEBUG2 - for(UInt_t iTree=0; iTree<fLocalRootFileObj->TreeVars.size(); iTree++) { - cout << "In Tree " << iTree << ": " << endl; - for(UInt_t i=0; i<fLocalRootFileObj->TreeVars[iTree].size(); i++) { - cout << fLocalRootFileObj->TreeVars[iTree][i] << endl; - } - } -#endif -} - - -void OnlineGUI::GetRootTree(RootFileObject* fLocalRootFileObj ) { - // Utility to search a ROOT File for ROOT Trees - // Fills the RootTree vector - fLocalRootFileObj->RootTree.clear(); - - list <TString> found; - for(UInt_t i=0; i<fLocalRootFileObj->vfileObjects.size(); i++) { -#ifdef DEBUGGETROOTTREE - cout << "Object = " << fLocalRootFileObj->vfileObjects[i].type << - " Name = " << fLocalRootFileObj->vfileObjects[i].name << endl; -#endif - if(fLocalRootFileObj->vfileObjects[i].type.Contains("TTree")) - found.push_back(fLocalRootFileObj->vfileObjects[i].name); - } - - // Remove duplicates, then insert into fLocalRootFileObj->RootTree - found.unique(); - UInt_t nTrees = found.size(); - - for(UInt_t i=0; i<nTrees; i++) { - fLocalRootFileObj->RootTree.push_back( (TTree*) fLocalRootFileObj->RootFile->Get(found.front()) ); - found.pop_front(); - } - // Initialize the TreeEntries vector - fLocalRootFileObj->TreeEntries.clear(); - for(UInt_t i=0;i<fLocalRootFileObj->RootTree.size();i++) { - fLocalRootFileObj->TreeEntries.push_back(0); - } - -} - -UInt_t OnlineGUI::GetTreeIndex(TString var, RootFileObject* fLocalRootFileObj ) { - // Utility to find out which Tree (in fRootFile.RootTree) has the specified - // variable "var". If the variable is a collection of Tree - // variables (e.g. bcm1:lumi1), will only check the first - // (e.g. bcm1). - // Returns the correct index. if not found returns an index 1 - // larger than fRootFile.RootTree.size() - - // This is for 2d draws... look for the first only - if(var.Contains(":")) { - TString first_var = fConfig->SplitString(var,":")[0]; - var = first_var; - } - - // This is for variables with multiple dimensions. - if(var.Contains("[")) { - TString first_var = fConfig->SplitString(var,"[")[0]; - var = first_var; - } - - for(UInt_t iTree=0; iTree<fLocalRootFileObj->TreeVars.size(); iTree++) { - for(UInt_t ivar=0; ivar<fLocalRootFileObj->TreeVars[iTree].size(); ivar++) { - if(var == fLocalRootFileObj->TreeVars[iTree][ivar]) return iTree; - } - } - - return fLocalRootFileObj->RootTree.size()+1; -} - -UInt_t OnlineGUI::GetTreeIndexFromName(TString name, RootFileObject* fLocalRootFileObj) { - // Called by TreeDraw(). Tries to find the Tree index provided the - // name. If it doesn't match up, return a number that's one larger - // than the number of found trees. - for(UInt_t iTree=0; iTree<fLocalRootFileObj->RootTree.size(); iTree++) { - TString treename = fLocalRootFileObj->RootTree[iTree]->GetName(); - if(name == treename) { - return iTree; - } - } - - return fLocalRootFileObj->RootTree.size()+1; -} - -void OnlineGUI::MacroDraw(drawcommand command) { - // Called by DoDraw(), this will make a call to the defined macro, and - // plot it in it's own pad. One plot per macro, please. - - if(command.macro.IsNull()) { - cout << "macro command doesn't contain a macro to execute" << endl; - return; - } - - if(doGolden) fRootFile.RootFile->cd(); - gROOT->Macro(command.macro); - -} - -void OnlineGUI::CanvasDraw(drawcommand command,UInt_t padnum) { - // Called by DoDraw(), this will draw the TCanvas in the current Canvas - - TString rootversion = gROOT->GetVersion(); - TString slash = "/"; - TString rootversion_cut = (fConfig->SplitString(rootversion,slash))[0]; - Double_t ver_num = rootversion_cut.Atof(); - if(ver_num<5.16) { - TString badstring = "TCanvas Drawing Unsupported in ROOT v"+rootversion; - BadDraw(badstring); - return; - } - - TDirectory *fDir; - if(command.directory.IsNull()) { - fDir = 0; - } else { - fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory); - } - - if(fDir) fDir->cd(); - fRootFile.RootFile->cd(); - TCanvas *tcanv = (TCanvas*)fRootFile.RootFile->Get(command.objname); - fCanvas->cd(padnum); - tcanv->DrawClonePad(); - delete tcanv; - -} - -void OnlineGUI::GraphDraw(drawcommand command) { - // Called by DoDraw(), this will draw the TCanvas in the current Canvas - - TString rootversion = gROOT->GetVersion(); - fRootFile.RootFile->cd(); - TDirectory *fDir; - if(command.directory.IsNull()) { - fDir = 0; - } else { - fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory); - } - - if(fDir) fDir->cd(); - TGraph *thisgraph = (TGraph*)fRootFile.RootFile->Get(command.objname); - TString drawopt = command.type; - if(drawopt.IsNull()) drawopt = "AP"; - if(!command.title.IsNull()) thisgraph->SetTitle(command.title); - thisgraph->Draw(drawopt); - -} - - -void OnlineGUI::DoDrawClear(RootFileObject* fLocalRootFileObj) { - // Utility to grab the number of entries in each tree. This info is - // then used, if watching a file, to "clear" the TreeDraw - // histograms, and begin looking at new data. - for(UInt_t i=0; i<fLocalRootFileObj->TreeEntries.size(); i++) { - fLocalRootFileObj->TreeEntries[i] = (Int_t) fLocalRootFileObj->RootTree[i]->GetEntries(); - } - - -} - -void OnlineGUI::TimerUpdate() { - // Called periodically by the timer, if "watchfile" is indicated - // in the config. Reloads the ROOT file, and updates the current page. -#ifdef DEBUG - cout << "Update Now" << endl; -#endif - - if(fRootFile.RootFile->IsZombie() || (fRootFile.RootFile->GetSize() == -1) - || (fRootFile.RootFile->ReadKeys()==0)) { - cout << "New run not yet available. Waiting..." << endl; - fRootFile.RootFile->Close(); - delete fRootFile.RootFile; - fRootFile.RootFile = 0; - timer->Reset(); - timer->Disconnect(); - timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()"); - return; - } - for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) { - fRootFile.RootTree[i]->Refresh(); - } - DoDraw(); - timer->Reset(); - -} - -void OnlineGUI::BadDraw(TString errMessage) { - // Routine to display (in Pad) why a particular draw method has - // failed. - TPaveText *pt = new TPaveText(0.1,0.1,0.9,0.9,"brNDC"); - pt->SetBorderSize(3); - pt->SetFillColor(10); - pt->SetTextAlign(22); - pt->SetTextFont(72); - pt->SetTextColor(2); - pt->AddText(errMessage.Data()); - pt->Draw(); -// cout << errMessage << endl; - -} - - -void OnlineGUI::CheckRootFile() { - // Check the path to the rootfile (should follow symbolic links) - // ... If found: - // Reopen new root file, - // Reconnect the timer to TimerUpdate() - - if(gSystem->AccessPathName(fConfig->GetRootFile())==0) { - cout << "Found the new run" << endl; - if(OpenRootFile()==0) { - timer->Reset(); - timer->Disconnect(); - timer->Connect(timer,"Timeout()","OnlineGUI",this,"TimerUpdate()"); - } - } else { - TString rnBuff = "Waiting for run"; - fRunNumber->SetText(rnBuff.Data()); - hframe->Layout(); - } - -} - -Int_t OnlineGUI::OpenRootFile() { - - - fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ"); - if(fRootFile.RootFile->IsZombie() || (fRootFile.RootFile->GetSize() == -1) - || (fRootFile.RootFile->ReadKeys()==0)) { - cout << "New run not yet available. Waiting..." << endl; - fRootFile.RootFile->Close(); - delete fRootFile.RootFile; - fRootFile.RootFile = 0; - timer->Reset(); - timer->Disconnect(); - timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()"); - return -1; - } - - // Update the runnumber - ObtainRunNumber(); - if(runNumber != 0) { - TString rnBuff = "Run #"; - rnBuff += runNumber; - fRunNumber->SetText(rnBuff.Data()); - hframe->Layout(); - } - - // Open the Root Trees. Give a warning if it's not there.. - GetFileObjects(&fRootFile); - if (fRootFile.fUpdate) { // Only do this stuff if there are valid keys - GetRootTree(&fRootFile); - GetTreeVars(&fRootFile); - for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) { - if(fRootFile.RootTree[i]==0) { - fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i); - } - } - DoDraw(); - } else { - return -1; - } - return 0; - -} - -void OnlineGUI::HistDraw(drawcommand command) { - // Called by DoDraw(), this will plot a histogram. - - Bool_t showGolden=kFALSE; - if(doGolden) showGolden=kTRUE; - Bool_t showStat=kTRUE; - TString htitle; - - if(command.noshowgolden=="noshowgolden") - showGolden = kFALSE; - if(command.nostat=="nostat") - showStat=kFALSE; - htitle = command.title; - - TString type=command.type; - TDirectory *fDir; - - if(command.directory.IsNull()) { - fDir = 0; - } else { - fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory); - } - - // Determine dimensionality of histogram, then draw it - if(command.objtype.Contains("TH1")) { - // Operation for TH1 - fRootFile.RootFile->cd(); - if(fDir) fDir->cd(); - fRootFile.mytemp1d = (TH1D*)gDirectory->Get(command.objname); - if(!fRootFile.mytemp1d) BadDraw(command.variable+" not found"); - if(fRootFile.mytemp1d->GetEntries()==0) { - BadDraw("Empty Histogram"); - } else { - if(showGolden) { - fGoldenFile.RootFile->cd(); - if(fDir) fDir->cd(); - fGoldenFile.mytemp1d = (TH1D*)gDirectory->Get(command.objname); - fGoldenFile.mytemp1d->SetLineColor(30); - fGoldenFile.mytemp1d->SetFillColor(30); - Int_t fillstyle=3027; - if(fPrintOnly) fillstyle=3010; - fGoldenFile.mytemp1d->SetFillStyle(fillstyle); - fRootFile.mytemp1d->SetStats(showStat); - fGoldenFile.mytemp1d->SetStats(kFALSE); - fGoldenFile.mytemp1d->Draw(); - if(!htitle.IsNull()) fGoldenFile.mytemp1d->SetTitle(htitle); - fRootFile.mytemp1d->Draw("sames"+type); - } else { - fRootFile.mytemp1d->SetStats(showStat); - if(!htitle.IsNull()) fRootFile.mytemp1d->SetTitle(htitle); - fRootFile.mytemp1d->Draw(type); - } - } - return; - } - - if(command.objtype.Contains("TH2")) { - // Operation for TH2 - if(!showGolden) fRootFile.RootFile->cd(); - if(fDir) fDir->cd(); - fRootFile.mytemp2d = (TH2D*)gDirectory->Get(command.objname); - if(fRootFile.mytemp2d->GetEntries()==0) { - BadDraw("Empty Histogram"); - } else { - if(showGolden) { - fGoldenFile.RootFile->cd(); - if(fDir) fDir->cd(); - fGoldenFile.mytemp2d = (TH2D*)gDirectory->Get(command.objname); - fGoldenFile.mytemp2d->SetMarkerColor(2); - fRootFile.mytemp2d->SetStats(showStat); - fGoldenFile.mytemp2d->SetStats(kFALSE); - fGoldenFile.mytemp2d->Draw(type); - if(!htitle.IsNull()) fGoldenFile.mytemp2d->SetTitle(htitle); - fRootFile.mytemp2d->Draw("sames"+type); - } else { - fRootFile.mytemp2d->SetStats(showStat); - if(!htitle.IsNull()) fGoldenFile.mytemp2d->SetTitle(htitle); - fRootFile.mytemp2d->Draw(type); - } - } - return; - } - - if(command.objtype.Contains("TH3")) { - // Operation for TH3 - if(!showGolden) fRootFile.RootFile->cd(); - if(fDir) fDir->cd(); - fRootFile.mytemp3d = (TH3D*)gDirectory->Get(command.objname); - if(fRootFile.mytemp3d->GetEntries()==0) { - BadDraw("Empty Histogram"); - } else { - fRootFile.mytemp3d->Draw(); - if(showGolden) { - fGoldenFile.RootFile->cd(); - if(fDir) fDir->cd(); - fGoldenFile.mytemp3d = (TH3D*)gDirectory->Get(command.objname); - fGoldenFile.mytemp3d->SetMarkerColor(2); - fRootFile.mytemp3d->SetStats(showStat); - fGoldenFile.mytemp3d->SetStats(kFALSE); - fGoldenFile.mytemp3d->Draw(type); - if(!htitle.IsNull()) fGoldenFile.mytemp3d->SetTitle(htitle); - fRootFile.mytemp3d->Draw("sames"+type); - } else { - fRootFile.mytemp3d->SetStats(showStat); - if(!htitle.IsNull()) fGoldenFile.mytemp3d->SetTitle(htitle); - fRootFile.mytemp3d->Draw(type); - } - } - return; - } - -} - -drawcommand OnlineGUI::fileObject2command(drawcommand command, RootFileObject* fLocalRootFileObj) { - // Fill in gaps in the drawcommand with items from the - // vfileObject. This elimates the need for duplicate code in - // the different *Draw routines. - for(UInt_t i=0; i<fLocalRootFileObj->vfileObjects.size(); i++) { - if(fLocalRootFileObj->vfileObjects[i].name==command.variable || - fLocalRootFileObj->vfileObjects[i].title==command.variable ) { - command.objname = fLocalRootFileObj->vfileObjects[i].name; - command.objtitle = fLocalRootFileObj->vfileObjects[i].title; - command.objtype = fLocalRootFileObj->vfileObjects[i].type; - command.directory = fLocalRootFileObj->vfileObjects[i].directory; -#ifdef DEBUGf2command - cout << command.directory << " " - << command.objtype << " " - << command.objname - << endl; -#endif - return command; - } - } - return command; - - -} - -void OnlineGUI::TreeDraw(drawcommand command) { - // Called by DoDraw(), this will plot a Tree Variable - - TString var = command.variable; - Bool_t showGolden=kFALSE; - if(doGolden) showGolden=kTRUE; - - Bool_t showStat=kTRUE; - if(command.nostat=="nostat") showStat=kFALSE; - - //TObject *hobj; - - // Combine the cuts (definecuts and specific cuts) - TCut cut = ""; - TString tempCut; - if(!command.cut.IsNull()) { - tempCut = command.cut; - vector <TString> cutIdents = fConfig->GetCutIdent(); - for(UInt_t i=0; i<cutIdents.size(); i++) { - if(tempCut.Contains(cutIdents[i])) { - TString cut_found = (TString)fConfig->GetDefinedCut(cutIdents[i]); - tempCut.ReplaceAll(cutIdents[i],cut_found); - } - } - cut = (TCut)tempCut; - } - - // Determine which Tree the variable comes from, then draw it. - UInt_t iTree; - if(command.treename.IsNull()) { - iTree = GetTreeIndex(var,&fRootFile); - } else { - iTree = GetTreeIndexFromName(command.treename,&fRootFile); - } - TString drawopt = command.type; - Int_t errcode=0; - if(drawopt.IsNull() && var.Contains(":")) drawopt = "cont"; - if(drawopt=="scat") drawopt = ""; - - fRootFile.RootFile->cd(); - if (iTree <= fRootFile.RootTree.size() ) { - TObjArray* tok = var.Tokenize(">()"); - TString myvar = ((TObjString*)tok->First())->GetString(); - TString hname = "h"; - TString histdef = ((TObjString*)tok->Last())->GetString(); - if(tok->GetEntries() == 1) histdef = ""; // ie "var[0]" - if(tok->GetEntries() == 2) { - if(! histdef.Contains(",") ) { // ie "var[0]>>h1" - hname = histdef; - histdef = ""; - } - } - if(tok->GetEntries() == 3) hname = ((TObjString*)tok->At(1))->GetString(); // ie "var[0]>>h1(100,0,100)" - delete tok; - TString tmp = var + tempCut; - hname = Form("%s_%u",hname.Data(),tmp.Hash()); // unique id so caching histos works - - errcode=1; - TObject *hobj = gDirectory->Get(hname); - if(hobj == NULL) { - errcode = fRootFile.RootTree[iTree]->Draw(myvar+">>"+hname+"("+histdef+")",cut,drawopt, - 1000000000,fRootFile.TreeEntries[iTree]); - hobj = gDirectory->Get(hname); - } - TH1F *mainhist = (TH1F*)hobj; - mainhist->Draw(drawopt); - //tmp = myvar+">>"+hname+"("+histdef+")"; - //printf("hist: '%s', opt: '%s', \"%s\"\n", hname.Data(), drawopt.Data(),tmp.Data()); - - if(errcode==-1) { - BadDraw(var+" not found"); - } else if (errcode!=0) { - TString htype = hobj->ClassName(); - if(! htype.Contains("TH1F") ) { - //printf("skipping.\n"); - showGolden=kFALSE; - } - if(showGolden) { - errcode=1; - TString goldname = "gold"+hname; - TH1F *goldhist = (TH1F*)gDirectory->Get(goldname); - if(goldhist == NULL) { - goldhist = (TH1F*)mainhist->Clone(hname); - goldhist->SetName(goldname); - errcode = fGoldenFile.RootTree[iTree]->Project(goldname,myvar,cut); - } - if(errcode>0) { - goldhist->SetFillColor(30); - Int_t fillstyle=3027; - if(fPrintOnly) fillstyle=3010; - goldhist->SetFillStyle(fillstyle); - goldhist->Draw(drawopt); - mainhist->SetFillColor(0); - mainhist->SetFillStyle(1001); - mainhist->Draw("same"); - if(!command.title.IsNull()) goldhist->SetTitle(command.title); - if(!showStat) goldhist->SetStats(kFALSE); - } - } else { - if(!command.title.IsNull()) mainhist->SetTitle(command.title); - if(!showStat) mainhist->SetStats(kFALSE); - } - } else { - BadDraw("Empty Histogram"); - } - } else { - BadDraw(var+" not found"); - if (fConfig->IsMonitor()){ - // Maybe we missed it... look again. I dont like the code - // below... maybe I can come up with something better - GetFileObjects(&fRootFile); - GetRootTree(&fRootFile); - GetTreeVars(&fRootFile); - } - } - -} - -void OnlineGUI::ObtainRunNumber() -{ - // Utility to obtain the runnumber through a helper macro - // "GetRunNumber.C" - - if (runNumber==0) runNumber = GetRunNumber(); -#ifdef DEBUG - cout << "Runnumber from file: " << runNumber << endl; -#endif -} - -void OnlineGUI::PrintToFile() -{ - // Routine to print the current page to a File. - // A file dialog pop's up to request the file name. - fCanvas = fEcanvas->GetCanvas(); - gStyle->SetPaperSize(20,24); - static TString dir("printouts"); - TGFileInfo fi; - const char *myfiletypes[] = - { "All files","*", - "PostScript files","*.ps", - "Encapsulated PostScript files","*.eps", - "GIF files","*.gif", - "JPG files","*.jpg", - 0, 0 }; - fi.fFileTypes = myfiletypes; - fi.fIniDir = StrDup(dir.Data()); - - new TGFileDialog(gClient->GetRoot(), fMain, kFDSave, &fi); - if(fi.fFilename!=NULL) fCanvas->Print(fi.fFilename); -} - -void OnlineGUI::PrintPages() { - // Routine to go through each defined page, and print the output to - // a postscript file. (good for making sample histograms). - - // Open the RootFile - // unless we're watching a file. - fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ"); - if(!fRootFile.RootFile->IsOpen()) { - cout << "ERROR: rootfile: " << fConfig->GetRootFile() - << " does not exist" - << endl; -#ifdef STANDALONE - gApplication->Terminate(); -#else - return; -#endif - } else { - fFileAlive = kTRUE; - ObtainRunNumber(); - // Open the Root Trees. Give a warning if it's not there.. - GetFileObjects(&fRootFile); - GetRootTree(&fRootFile); - GetTreeVars(&fRootFile); - for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) { - if(fRootFile.RootTree[i]==0) { - fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i); - } - } - - } - TString goldenfilename=fConfig->GetGoldenFile(); - if(!goldenfilename.IsNull()) { - fGoldenFile.RootFile = new TFile(goldenfilename,"READ"); - if(!fGoldenFile.RootFile->IsOpen()) { - cout << "ERROR: goldenrootfile: " << goldenfilename - << " does not exist. Oh well, no comparison plots." - << endl; - doGolden = kFALSE; - fGoldenFile.RootFile=NULL; - } else { - // Open the Root Trees. Give a warning if it's not there.. - GetFileObjects(&fGoldenFile); - GetRootTree(&fGoldenFile); - GetTreeVars(&fGoldenFile); - for(UInt_t i=0; i<fGoldenFile.RootTree.size(); i++) { - if(fGoldenFile.RootTree[i]==0) { - fGoldenFile.RootTree.erase(fGoldenFile.RootTree.begin() + i); - } - } - doGolden = kTRUE; - } - } else { - doGolden=kFALSE; - fGoldenFile.RootFile=NULL; - } - - // I'm not sure exactly how this works. But it does. - fCanvas = new TCanvas("fCanvas","trythis",850,1100); -// TCanvas *maincanvas = new TCanvas("maincanvas","whatever",850,1100); -// maincanvas->SetCanvas(fCanvas); - TLatex *lt = new TLatex(); - - TString plotsdir = fConfig->GetPlotsDir(); - Bool_t useJPG = kFALSE; - if(!plotsdir.IsNull()) useJPG = kTRUE; - - TString filename = "summaryplots"; - if(runNumber!=0) { - filename += "_"; - filename += runNumber; - } - if(useJPG) { - filename.Prepend(plotsdir+"/"); - filename += "_pageXXXX.jpg"; - } - else filename += ".ps"; - - TString pagehead = "Summary Plots"; - if(runNumber!=0) { - pagehead += "(Run #"; - pagehead += runNumber; - pagehead += ")"; - } - pagehead += ": "; - - gStyle->SetPalette(1); - gStyle->SetTitleX(0.15); - gStyle->SetTitleY(0.9); - gStyle->SetPadBorderMode(0); - gStyle->SetHistLineColor(1); - gStyle->SetHistFillColor(1); - if(!useJPG) fCanvas->Print(filename+"["); - TString origFilename = filename; - for(UInt_t i=0; i<fConfig->GetPageCount(); i++) { - current_page=i; - DoDraw(); - TString pagename = pagehead + fConfig->GetPageTitle(current_page); - lt->SetTextSize(0.025); - lt->DrawLatex(0.05,0.98,pagename); - if(useJPG) { - filename = origFilename; - filename.ReplaceAll("XXXX",Form("%d",current_page)); - cout << "Printing page " << current_page - << " to file = " << filename << endl; - } - fCanvas->Print(filename); - } - if(!useJPG) fCanvas->Print(filename+"]"); - -#ifdef STANDALONE - gApplication->Terminate(); -#endif -} - -void OnlineGUI::MyCloseWindow() -{ - fMain->SendCloseMessage(); - cout << "OnlineGUI Closed." << endl; - if(timer!=NULL) { - timer->Stop(); - delete timer; - } - delete fPrint; - delete fExit; - delete fRunNumber; - delete fPrev; - delete fNext; - delete wile; - for(UInt_t i=0; i<fConfig->GetPageCount(); i++) - delete fRadioPage[i]; - delete hframe; - delete fEcanvas; - delete fBottomFrame; - delete vframe; - delete fTopframe; - delete fMain; - if(fGoldenFile.RootFile!=NULL) delete fGoldenFile.RootFile; - if(fRootFile.RootFile!=NULL) delete fRootFile.RootFile; - delete fConfig; - -#ifdef STANDALONE - gApplication->Terminate(); -#endif -} - -void OnlineGUI::CloseGUI() -{ - // Routine to take care of the Exit GUI button - fMain->SendCloseMessage(); -} - -OnlineGUI::~OnlineGUI() -{ - // fMain->SendCloseMessage(); - if(timer!=NULL) { - timer->Stop(); - delete timer; - } - delete fPrint; - delete fExit; - delete fRunNumber; - delete fPrev; - delete fNext; - delete wile; - for(UInt_t i=0; i<fConfig->GetPageCount(); i++) - delete fRadioPage[i]; - delete hframe; - delete fEcanvas; - delete vframe; - delete fBottomFrame; - delete fTopframe; - delete fMain; - if(fGoldenFile.RootFile!=NULL) delete fGoldenFile.RootFile; - if(fRootFile.RootFile!=NULL) delete fRootFile.RootFile; - delete fConfig; -} - -void online(TString type="standard",UInt_t run=0,Bool_t printonly=kFALSE) -{ - // "main" routine. Run this at the ROOT commandline. - - if(printonly) { - if(!gROOT->IsBatch()) { -#ifdef STANDALONE - gROOT->SetBatch(); -#else - cout << "Sorry... the print summary plots option only works " - << "in BATCH mode." << endl; - return; -#endif - } - } - - OnlineConfig *fconfig = new OnlineConfig(type); - // OnlineConfig *fconfig = new OnlineConfig("halla"); - - if(!fconfig->ParseConfig()) { -#ifdef STANDALONE - gApplication->Terminate(); -#else - return; -#endif - } - - if(run!=0) fconfig->OverrideRootFile(run); - - new OnlineGUI(*fconfig,printonly,run); - -} - -#ifdef STANDALONE -void Usage() -{ - cerr << "Usage: online [-r] [-f] [-P]" - << endl; - cerr << "Options:" << endl; - cerr << " -r : runnumber" << endl; - cerr << " -f : configuration file" << endl; - cerr << " -P : Only Print Summary Plots" << endl; - cerr << endl; - -} - -int main(int argc, char **argv) -{ - TString type="default"; - UInt_t run=0; - Bool_t printonly=kFALSE; - Bool_t showedUsage=kFALSE; - - TApplication theApp("App",&argc,argv,NULL,-1); - - for(Int_t i=1;i<theApp.Argc();i++) - { - TString sArg = theApp.Argv(i); - if(sArg=="-f") { - type = theApp.Argv(++i); - cout << " File specifier: " - << type << endl; - } else if (sArg=="-r") { - run = atoi(theApp.Argv(++i)); - cout << " Runnumber: " - << run << endl; - } else if (sArg=="-P") { - printonly = kTRUE; - cout << " PrintOnly" << endl; - } else if (sArg=="-h") { - if(!showedUsage) Usage(); - showedUsage=kTRUE; - return 0; - } else { - cerr << "\"" << sArg << "\"" << " not recognized. Ignored." << endl; - if(!showedUsage) Usage(); - showedUsage=kTRUE; - } - } - - online(type,run,printonly); - theApp.Run(); - - return 0; -} - -#endif +/////////////////////////////////////////////////////////////////// +// Macro to help with online analysis +// B. Moffit (moffit@jlab.org) +// - Originally written in Oct. 2003 +// Documentation and updates available at: +// http://www.jlab.org/~moffit/onlineGUI/ +// + +#include "online.h" +#include <string> +#include <fstream> +#include <iostream> +#include <list> +#include <TMath.h> +#include <TBranch.h> +#include <TGClient.h> +#include <TCanvas.h> +#include <TStyle.h> +#include <TROOT.h> +#include <TGImageMap.h> +#include <TGFileDialog.h> +#include <TKey.h> +#include <TObjString.h> +#include <TSystem.h> +#include <TLatex.h> +#include <TText.h> +#include <TGraph.h> +#include "GetRootFileName.C" +#include "GetRunNumber.C" +#include "TPaveText.h" +#ifdef STANDALONE +#include <TApplication.h> +#endif +// #define DEBUGGETFILEOBJECTS +// #define DEBUGPARSE +// #define DEBUG +//#define DEBUG2 +//#define NOISY +//#define INTERNALSTYLE + +//TString guiDirectory = "onlineGUI_v1.2.1/"; +TString guiDirectory = "./"; + +/////////////////////////////////////////////////////////////////// +// Class: OnlineConfig +// +// Utility class that reads in a text file (.cfg) and +// stores it's contents. +// +// + +OnlineConfig::OnlineConfig() +{ + // Constructor. Without an argument, will use default "standard" config + fMonitor = kFALSE; + OnlineConfig("standard"); +} + +OnlineConfig::OnlineConfig(TString anatype) +{ + // Constructor. Takes the config anatype as the only argument. + // Loads up the configuration file, and stores it's contents for access. + + confFileName = anatype; + configfilestart=anatype; + if(!confFileName.Contains(".cfg")) + confFileName += ".cfg"; + fMonitor = kFALSE; + fFoundCfg = kFALSE; + + // Attempt to find the config file in specified (first argument, + // relative or absolute) location, then in guiDirectory + fConfFile = new ifstream(confFileName.Data()); + if ( ! (*fConfFile) ) { + cerr << "OnlineConfig() WARNING: config file " << confFileName.Data() + << " does not exist" << endl; + cerr << " Checking the " << guiDirectory << " directory" << endl; + confFileName.Prepend(guiDirectory+"/"); + fConfFile = new ifstream(confFileName.Data()); + if ( ! (*fConfFile) ) { + // Didn't find it... load up the default config + confFileName = guiDirectory+"/default.cfg"; + cout << "OnlineConfig() Trying " << confFileName.Data() + << " as default configuration." << endl + << " (May be ok.)" << endl; + fConfFile = new ifstream(confFileName.Data()); + if ( ! (*fConfFile) ) { + cerr << "OnlineConfig() WARNING: no file " + << confFileName.Data() <<endl; + cerr << "You need a configuration to run. Ask an expert."<<endl; + fFoundCfg = kFALSE; + // return; + } else { + fFoundCfg = kTRUE; + } + } else { + fFoundCfg = kTRUE; + } + } else { + fFoundCfg = kTRUE; + } + + if(fFoundCfg) { + clog << "GUI Configuration loading from " + << confFileName.Data() << endl; + } + + ParseFile(); + + // Load up a user configurable style (if it exists) + TString styleFile = guiDirectory+"onlineGUI_Style.C"; + if(!gSystem->AccessPathName(styleFile)) + gROOT->Macro(styleFile); + + fConfFile->close(); + delete fConfFile; + +} + +void OnlineConfig::ParseFile() +{ + // Reads in the Config File, and makes the proper calls to put + // the information contained into memory. + + if(!fFoundCfg) { + return; + } + + TString comment = "#"; + vector<TString> strvect; + TString sinput, sline; + while (sline.ReadLine(*fConfFile)) { + strvect.clear(); + // Strip away leading and trailing spaces. + sline = sline.Strip(TString::kBoth,' '); + // If the line starts with a comment, skip it. + if(sline.BeginsWith(comment)) continue; + // If the line contains a comment, split it up into two and keep + // the uncommented (first) part + if(sline.Contains(comment)) { + TObjArray *tmpoarr = sline.Tokenize(comment); + TObjString *tmpostr = (TObjString*)tmpoarr->First(); + sline = tmpostr->GetString().Strip(TString::kTrailing,' '); + delete tmpoarr; + } + // Now split up the line according to 's and spaces. This is for + // looking for the histogram using it's title (which may contain + // spaces) instead of its name. + if(sline.Contains("'")) { + TObjArray *tmpoarr = sline.Tokenize("'"); + Bool_t quote_on_odd = kTRUE; + if(!(sline.BeginsWith("'"))) quote_on_odd=kFALSE; + TIterator *next = tmpoarr->MakeIterator(); + TObjString *tmpostr; Bool_t odd=kTRUE; + while((tmpostr=(TObjString*)next->Next())!=NULL) { + if((quote_on_odd&&odd) || (!quote_on_odd&&!odd)) { + strvect.push_back(tmpostr->GetString()); + odd = !odd; + } else { + TObjArray *tmpoarr2 = tmpostr->GetString().Tokenize(" "); + TIterator *next2 = tmpoarr2->MakeIterator(); + TObjString *tmpostr2; + while((tmpostr2=(TObjString*)next2->Next())!=NULL) { + strvect.push_back(tmpostr2->GetString()); + } + delete tmpoarr2; + odd = !odd; + } + } + delete tmpoarr; + } else { // No 's.. just split according to spaces + TObjArray *tmpoarr2 = sline.Tokenize(" "); + TIterator *next2 = tmpoarr2->MakeIterator(); + TObjString *tmpostr2; + while((tmpostr2=(TObjString*)next2->Next())!=NULL) { + strvect.push_back(tmpostr2->GetString()); + } + delete tmpoarr2; + } + sConfFile.push_back(strvect); + +} + +#ifdef DEBUGPARSE + for(UInt_t ii=0; ii<sConfFile.size(); ii++) { + cout << "Line " << ii << endl << " "; + for(UInt_t jj=0; jj<sConfFile[ii].size(); jj++) + cout << sConfFile[ii][jj] << " "; + cout << endl; + } +#endif + + cout << " " << sConfFile.size() << " lines read from " + << confFileName << endl; + +} + +Bool_t OnlineConfig::ParseConfig() +{ + // Goes through each line of the config [must have been ParseFile()'d] + // and interprets. + + if(!fFoundCfg) { + return kFALSE; + } + + UInt_t command_cnt=0; + UInt_t j=0; + Bool_t hasMultiPlots=kFALSE; + canvaswidth = 800; // Default canvas size + canvasheight = 600; + // If statement for each high level command (cut, newpage, etc) + for(UInt_t i=0;i<sConfFile.size();i++) { + // "newpage" command + if(sConfFile[i][0] == "newpage") { + // sConfFile[i] is first of pair + for(j=i+1;j<sConfFile.size();j++) { + if(sConfFile[j][0] != "newpage") { + // Count how many commands within the page + command_cnt++; + } else break; + } + pageInfo.push_back(make_pair(i,command_cnt)); + i += command_cnt; + command_cnt=0; + } + if(sConfFile[i][0] == "watchfile") { + fMonitor = kTRUE; + } + if(sConfFile[i][0] == "definecut") { + if(sConfFile[i].size()>3) { + cerr << "cut command has too many arguments" << endl; + continue; + } + TCut tempCut(sConfFile[i][1],sConfFile[i][2]); + cutList.push_back(tempCut); + } + if(sConfFile[i][0] == "rootfile") { + if(sConfFile[i].size() != 2) { + cerr << "WARNING: rootfile command does not have the " + << "correct number of arguments" + << endl; + continue; + } + if(!rootfilename.IsNull()) { + cerr << "WARNING: too many rootfile's defined. " + << " Will only use the first one." + << endl; + continue; + } + rootfilename = sConfFile[i][1]; + } + if(sConfFile[i][0] == "goldenrootfile") { + if(sConfFile[i].size() != 2) { + cerr << "WARNING: goldenfile command does not have the " + << "correct number of arguments" + << endl; + continue; + } + if(!goldenrootfilename.IsNull()) { + cerr << "WARNING: too many goldenrootfile's defined. " + << " Will only use the first one." + << endl; + continue; + } + goldenrootfilename = sConfFile[i][1]; + } + if(sConfFile[i][0] == "protorootfile") { + if(sConfFile[i].size() != 2) { + cerr << "WARNING: protorootfile command does not have the " + << "correct number of arguments" + << endl; + continue; + } + if(!protorootfile.IsNull()) { + cerr << "WARNING: too many protorootfile's defined. " + << " Will only use the first one." + << endl; + continue; + } + protorootfile = sConfFile[i][1]; + } + if(sConfFile[i][0] == "guicolor") { + if(sConfFile[i].size() != 2) { + cerr << "WARNING: guicolor command does not have the " + << "correct number of arguments (needs 1)" + << endl; + continue; + } + if(!guicolor.IsNull()) { + cerr << "WARNING: too many guicolor's defined. " + << " Will only use the first one." + << endl; + continue; + } + guicolor = sConfFile[i][1]; + } + if(sConfFile[i][0] == "canvassize") { + if(sConfFile[i].size() != 3) { + cerr << "WARNING: canvassize command does not have the " + << "correct number of arguments (needs 2)" + << endl; + continue; + } + canvaswidth = UInt_t(atoi(sConfFile[i][1])); + canvasheight = UInt_t(atoi(sConfFile[i][2])); + } + if(sConfFile[i][0] == "plotsdir") { + if(sConfFile[i].size() != 2) { + cerr << "WARNING: plotsdir command does not have the " + << "correct number of arguments (needs 1)" + << endl; + continue; + } + if(!plotsdir.IsNull()) { + cerr << "WARNING: too many plotdir's defined. " + << " Will only use the first one." + << endl; + continue; + } + plotsdir = sConfFile[i][1]; + } + if(sConfFile[i][0] == "multiplot") { + hasMultiPlots = kTRUE; + } + + } + + if(hasMultiPlots) { + if(!ParseForMultiPlots()) { + cerr << "ParseForMultiPlots() Failed" << endl; + } + } + +#ifdef NOISY + for(UInt_t i=0; i<GetPageCount(); i++) { + cout << "Page " << i << " (" << GetPageTitle(i) << ")" + << " will draw " << GetDrawCount(i) + << " histograms." << endl; + } +#endif + + cout << "Number of pages defined = " << GetPageCount() << endl; + cout << "Number of cuts defined = " << cutList.size() << endl; + + if (fMonitor) + cout << "Will periodically update plots" << endl; + if(!goldenrootfilename.IsNull()) { + cout << "Will compare chosen histrograms with the golden rootfile: " + << endl + << goldenrootfilename << endl; + } + + return kTRUE; + +} + +Bool_t OnlineConfig::ParseForMultiPlots() { + // Parse through each line of sConfFile, + // and replace each "multiplot" command with a real draw entry + + vector < vector <TString> > newConfFile; + for(UInt_t iter=0;iter<sConfFile.size();iter++) { + if(sConfFile[iter][0]=="multiplot") { + // First argument is the low limit, + // second argument is the high limit + UInt_t lolimit = (UInt_t)sConfFile[iter][1].Atoi(); + UInt_t hilimit = (UInt_t)sConfFile[iter][2].Atoi(); + + // For the rest of the line, replace all of the XXXXX's + // with an iteration from lolimit to hilimit. + for(UInt_t imult=lolimit;imult<=hilimit;imult++) { + vector <TString> newline; + for(UInt_t ielem=3; ielem<sConfFile[iter].size();ielem++) { + TString origString = sConfFile[iter][ielem]; + TString newString = origString; + newString.ReplaceAll("XXXXX",Form("%d",imult)); + newline.push_back(newString); + } + newConfFile.push_back(newline); + } + } else { + newConfFile.push_back(sConfFile[iter]); + } + } + +#ifdef DEBUG + for(UInt_t iter=0;iter<newConfFile.size();iter++) { + for(UInt_t iline=0;iline<newConfFile[iter].size();iline++) { + cout << newConfFile[iter][iline] << " "; + } + cout << endl; + } +#endif + + // Out with the old, in with the new. + sConfFile.clear(); + sConfFile = newConfFile; + + // Now need to recalculate pageInfo. + UInt_t command_cnt=0; + UInt_t j=0; + + pageInfo.clear(); + // If statement for each high level command (cut, newpage, etc) + for(UInt_t i=0;i<sConfFile.size();i++) { + // "newpage" command + if(sConfFile[i][0] == "newpage") { + // sConfFile[i] is first of pair + for(j=i+1;j<sConfFile.size();j++) { + if(sConfFile[j][0] != "newpage") { + // Count how many commands within the page + command_cnt++; + } else break; + } + pageInfo.push_back(make_pair(i,command_cnt)); + i += command_cnt; + command_cnt=0; + } + } + + return kTRUE; + +} + +TCut OnlineConfig::GetDefinedCut(TString ident) { + // Returns the defined cut, according to the identifier + + for(UInt_t i=0; i<cutList.size(); i++) { + if((TString)cutList[i].GetName() == ident.Data()) { + TCut tempCut = cutList[i].GetTitle(); + return tempCut; + } + } + return ""; +} + +vector <TString> OnlineConfig::GetCutIdent() { + // Returns a vector of the cut identifiers, specified in config + vector <TString> out; + + for(UInt_t i=0; i<cutList.size(); i++) { + out.push_back(cutList[i].GetName()); + } + + return out; +} + +Bool_t OnlineConfig::IsLogx(UInt_t page) { +// Check if last word on line is "logx" + + UInt_t page_index = pageInfo[page].first; + Int_t word_index = sConfFile[page_index].size()-1; + if (word_index <= 0) return kFALSE; + TString option = sConfFile[page_index][word_index]; + if(option == "logx") return kTRUE; + return kFALSE; + +} + +Bool_t OnlineConfig::IsLogy(UInt_t page) { +// Check if last word on line is "logy" + + UInt_t page_index = pageInfo[page].first; + Int_t word_index = sConfFile[page_index].size()-1; + if (word_index <= 0) return kFALSE; + TString option = sConfFile[page_index][word_index]; + if(option == "logy") return kTRUE; + return kFALSE; + +} + +Bool_t OnlineConfig::IsLogz(UInt_t page) { +// Check if last word on line is "logz" + + UInt_t page_index = pageInfo[page].first; + Int_t word_index = sConfFile[page_index].size()-1; + if (word_index <= 0) return kFALSE; + TString option = sConfFile[page_index][word_index]; + if(option == "logz") return kTRUE; + return kFALSE; + +} + + +pair <UInt_t, UInt_t> OnlineConfig::GetPageDim(UInt_t page) +{ + // If defined in the config, will return those dimensions + // for the indicated page. Otherwise, will return the + // calculated dimensions required to fit all histograms. + + pair <UInt_t, UInt_t> outDim; + + // This is the page index in sConfFile. + UInt_t page_index = pageInfo[page].first; + + UInt_t size1 = 2; + + if (IsLogx(page)) size1 = 3; // last word is "logy" + if (IsLogy(page)) size1 = 3; // last word is "logy" + if (IsLogz(page)) size1 = 3; // last word is "logy" + + // If the dimensions are defined, return them. + if(sConfFile[page_index].size()>size1-1) { + if(sConfFile[page_index].size() == size1) { + outDim = make_pair(UInt_t(atoi(sConfFile[page_index][1])), + UInt_t(atoi(sConfFile[page_index][1]))); + return outDim; + } else if (sConfFile[page_index].size() == size1+1) { + outDim = make_pair(UInt_t(atoi(sConfFile[page_index][1])), + UInt_t(atoi(sConfFile[page_index][2]))); + return outDim; + } else { + cout << "Warning: newpage command has too many arguments. " + << "Will automatically determine dimensions of page." + << endl; + } + } + + // If not defined, return the "default." + UInt_t draw_count = GetDrawCount(page); + UInt_t dim = UInt_t(TMath::Nint(sqrt(double(draw_count+1)))); + outDim = make_pair(dim,dim); + + return outDim; +} + +TString OnlineConfig::GetPageTitle(UInt_t page) +{ + // Returns the title of the page. + // if it is not defined in the config, then return "Page #" + + TString title; + + UInt_t iter_command = pageInfo[page].first+1; + + for(UInt_t i=0; i<pageInfo[page].second; i++) { // go through each command + if(sConfFile[iter_command+i][0] == "title") { + // Combine the strings, and return it + for (UInt_t j=1; j<sConfFile[iter_command+i].size(); j++) { + title += sConfFile[iter_command+i][j]; + title += " "; + } + title.Chop(); + return title; + } + } + title = "Page "; title += page; + return title; +} + +vector <UInt_t> OnlineConfig::GetDrawIndex(UInt_t page) +{ + // Returns an index of where to find the draw commands within a page + // within the sConfFile vector + + vector <UInt_t> index; + UInt_t iter_command = pageInfo[page].first+1; + + for(UInt_t i=0; i<pageInfo[page].second; i++) { + if(sConfFile[iter_command+i][0] != "title") { + index.push_back(iter_command+i); + } + } + + return index; +} + +UInt_t OnlineConfig::GetDrawCount(UInt_t page) +{ + // Returns the number of histograms that have been request for this page + UInt_t draw_count=0; + + for(UInt_t i=0; i<pageInfo[page].second; i++) { + if(sConfFile[pageInfo[page].first+i+1][0] != "title") draw_count++; + } + + return draw_count; + +} + +drawcommand OnlineConfig::GetDrawCommand(UInt_t page, UInt_t nCommand) +{ + // Returns the vector of strings pertaining to a specific page, and + // draw command from the config. + // Return vector of TStrings: + // 0: variable + // 1: cut - only for Tree variables + // 2: type + // 3: title + // 4: treename - only for Tree variables + // 5: nostat + // 6: noshowgolden - only for Histograms + // This should probably be replaced with an actual structure + + drawcommand out_command; + vector <UInt_t> command_vector = GetDrawIndex(page); + UInt_t index = command_vector[nCommand]; + +#ifdef DEBUG + cout << "OnlineConfig::GetDrawCommand(" << page << "," + << nCommand << ")" << endl; +#endif + + // First line is the variable + if(sConfFile[index].size()>=1) { + out_command.variable = sConfFile[index][0]; + } + if(sConfFile[index].size()>=2) { + if((sConfFile[index][1] != "-type") && + (sConfFile[index][1] != "-title") && + (sConfFile[index][1] != "-tree") && + (sConfFile[index][1] != "-noshowgolden") && + (sConfFile[index][1] != "-nostat")) { + if(out_command.variable=="macro") { + out_command.macro = sConfFile[index][1]; + } else { + out_command.cut = sConfFile[index][1]; + } + } + } + + // Now go through the rest of that line.. + for (UInt_t i=1; i<sConfFile[index].size(); i++) { + if(sConfFile[index][i]=="-type") { + out_command.type = sConfFile[index][i+1]; + i = i+1; + } else if(sConfFile[index][i]=="-title") { + // Put the entire title, surrounded by quotes, as one TString + TString title; + UInt_t j=0; + for(j=i+1; j<sConfFile[index].size(); j++) { + TString word = sConfFile[index][j]; + if( (word.BeginsWith("\"")) && (word.EndsWith("\"")) ) { + title = word.ReplaceAll("\"",""); + out_command.title = title; + i = j; + break; + } else if(word.BeginsWith("\"")) { + title = word.ReplaceAll("\"",""); + } else if(word.EndsWith("\"")) { + title += " " + word.ReplaceAll("\"",""); + out_command.title = title; + i = j; + break; + } else { + title += " " + word; + } + } + // If we got here, and out_command.title is null... then just copy the contents + // of "title" to out_command.title (taking out any "'s along the way) + if(out_command.title.IsNull()) + out_command.title = title.ReplaceAll("\"",""); + } else if(sConfFile[index][i]=="-tree") { + out_command.treename = sConfFile[index][i+1]; + i = i+1; + } else if(sConfFile[index][i]=="-nostat") { + out_command.nostat = "nostat"; + } else if(sConfFile[index][i]=="-noshowgolden") { + out_command.noshowgolden = "noshowgolden"; + } + + +#ifdef DEBUG + cout << endl; +#endif + } +#ifdef DEBUG + cout << sConfFile[index].size() << ": "; + for(UInt_t i=0; i<sConfFile[index].size(); i++) { + cout << sConfFile[index][i] << " "; + } + cout << endl; +#endif + return out_command; +} + +vector <TString> OnlineConfig::SplitString(TString instring,TString delim) +{ + // Utility to split up a string on the deliminator. + // returns a vector of strings. + + vector <TString> v; + + TString remainingString = instring; + TString tempstring = instring; + int i; + + while (remainingString.Index(delim) != -1) { + i = remainingString.Index(delim); + tempstring.Remove(i); + v.push_back(tempstring); + remainingString.Remove(0,i+1); + while(remainingString.Index(delim) == 0) { + remainingString.Remove(0,1); + } + tempstring = remainingString; + // Cut out the rest, if it's a comment (starts with #) + if(TString(remainingString.Strip(TString::kLeading,' ')).BeginsWith("#")) { + tempstring = ""; + break; + } + } + + while(tempstring.EndsWith(delim)) { + tempstring.Chop(); + } + + if(!tempstring.IsNull()) v.push_back(tempstring); + + return v; +} + +void OnlineConfig::OverrideRootFile(UInt_t runnumber) +{ + // Override the ROOT file defined in the cfg file If + // protorootfile is used, construct filename using it, otherwise + // uses a helper macro "GetRootFileName.C(UInt_t runnumber) + + if(!protorootfile.IsNull()) { + TString rn = ""; + rn += runnumber; + protorootfile.ReplaceAll("XXXXX",rn.Data()); + rootfilename = protorootfile; + } else { + rootfilename = GetRootFileName(runnumber); + } + + cout << "Overridden File name: " << rootfilename << endl; +} + +/////////////////////////////////////////////////////////////////// +// Class: OnlineGUI +// +// Creates a GUI to display the commands used in OnlineConfig +// +// + +OnlineGUI::OnlineGUI(OnlineConfig& config, Bool_t printonly, Bool_t rootonly,UInt_t RunNum): + runNumber(RunNum), + timer(0), + fFileAlive(kFALSE) +{ + // Constructor. Get the config pointer, and make the GUI. + + fConfig = &config; + + if(printonly || rootonly) { + fPrintOnly=kTRUE; + PrintPages(); + } else { + fPrintOnly=kFALSE; + CreateGUI(gClient->GetRoot(),200,200); + } +} + +void OnlineGUI::CreateGUI(const TGWindow *p, UInt_t w, UInt_t h) +{ + + // Open the RootFile. Die if it doesn't exist. + // unless we're watching a file. + fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ"); + if(!fRootFile.RootFile->IsOpen()) { + cout << "ERROR: rootfile: " << fConfig->GetRootFile() + << " does not exist" + << endl; + if(fConfig->IsMonitor()) { + cout << "Will wait... hopefully.." << endl; + } else { +#ifdef STANDALONE + gApplication->Terminate(); +#else + return; +#endif + } + } else { + fFileAlive = kTRUE; + ObtainRunNumber(); + // Open the Root Trees. Give a warning if it's not there.. + GetFileObjects(&fRootFile); + GetRootTree(&fRootFile); + GetTreeVars(&fRootFile); + for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) { + if(fRootFile.RootTree[i]==0) { + fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i); + } + } + + } + TString goldenfilename=fConfig->GetGoldenFile(); + if(!goldenfilename.IsNull()) { + fGoldenFile.RootFile = new TFile(goldenfilename,"READ"); + if(!fGoldenFile.RootFile->IsOpen()) { + cout << "ERROR: goldenrootfile: " << goldenfilename + << " does not exist. Oh well, no comparison plots." + << endl; + doGolden = kFALSE; + fGoldenFile.RootFile=NULL; + } else { + // Open the Root Trees. Give a warning if it's not there.. + GetFileObjects(&fGoldenFile); + GetRootTree(&fGoldenFile); + GetTreeVars(&fGoldenFile); + for(UInt_t i=0; i<fGoldenFile.RootTree.size(); i++) { + if(fGoldenFile.RootTree[i]==0) { + fGoldenFile.RootTree.erase(fGoldenFile.RootTree.begin() + i); + } + } + doGolden = kTRUE; + } + } else { + doGolden=kFALSE; + fGoldenFile.RootFile=NULL; + } + + + // Create the main frame + fMain = new TGMainFrame(p,w,h); + fMain->Connect("CloseWindow()", "OnlineGUI", this, "MyCloseWindow()"); + ULong_t lightgreen, lightblue, red, mainguicolor; + gClient->GetColorByName("lightgreen",lightgreen); + gClient->GetColorByName("lightblue",lightblue); + gClient->GetColorByName("red",red); + + UInt_t canvas_width = fConfig->GetCanvasWidth(); + UInt_t canvas_height = fConfig->GetCanvasHeight(); + + Bool_t good_color=kFALSE; + TString usercolor = fConfig->GetGuiColor(); + if(!usercolor.IsNull()) { + good_color = gClient->GetColorByName(usercolor,mainguicolor); + } + + if(!good_color) { + if(!usercolor.IsNull()) { + cout << "Bad guicolor (" << usercolor << ").. using default." << endl; + } + if(fConfig->IsMonitor()) { + // Default background color for Online Monitor + mainguicolor = lightgreen; + } else { + // Default background color for Normal Online Display + mainguicolor = lightblue; + } + } + + fMain->SetBackgroundColor(mainguicolor); + + // Top frame, to hold page buttons and canvas + fTopframe = new TGHorizontalFrame(fMain,200,200); + fTopframe->SetBackgroundColor(mainguicolor); + fMain->AddFrame(fTopframe, new TGLayoutHints(kLHintsExpandX + | kLHintsExpandY,10,10,10,1)); + + // Create a verticle frame widget with radio buttons + // This will hold the page buttons + vframe = new TGVerticalFrame(fTopframe,40,200); + vframe->SetBackgroundColor(mainguicolor); + TString buff; + for(UInt_t i=0; i<fConfig->GetPageCount(); i++) { + buff = fConfig->GetPageTitle(i); + fRadioPage[i] = new TGRadioButton(vframe,buff,i); + fRadioPage[i]->SetBackgroundColor(mainguicolor); + } + + fRadioPage[0]->SetState(kButtonDown); + current_page = 0; + + for (UInt_t i=0; i<fConfig->GetPageCount(); i++) { + vframe->AddFrame(fRadioPage[i], + new TGLayoutHints(kLHintsLeft | + kLHintsCenterY,5,5,3,4)); + fRadioPage[i]->Connect("Pressed()", "OnlineGUI", this, "DoRadio()"); + } + if(!fConfig->IsMonitor()) { + wile = + new TGPictureButton(vframe, + gClient->GetPicture(guiDirectory+"/hcsmall.png")); + wile->Connect("Pressed()","OnlineGUI", this,"DoDraw()"); + } else { + wile = + new TGPictureButton(vframe, + gClient->GetPicture(guiDirectory+"/panguin.xpm")); + wile->Connect("Pressed()","OnlineGUI", this,"DoDrawClear(&fRootFile)"); + } + wile->SetBackgroundColor(mainguicolor); + + vframe->AddFrame(wile, + new TGLayoutHints(kLHintsBottom|kLHintsLeft,5,10,4,2)); + + + fTopframe->AddFrame(vframe, + new TGLayoutHints(kLHintsCenterX| + kLHintsCenterY,2,2,2,2)); + + // Create canvas widget + fEcanvas = new TRootEmbeddedCanvas("Ecanvas", fTopframe, canvas_width, canvas_height); + fEcanvas->SetBackgroundColor(mainguicolor); + fTopframe->AddFrame(fEcanvas, new TGLayoutHints(kLHintsExpandY,10,10,10,1)); + fCanvas = fEcanvas->GetCanvas(); + + // Create the bottom frame. Contains control buttons + fBottomFrame = new TGHorizontalFrame(fMain,canvas_width+400,200); + fBottomFrame->SetBackgroundColor(mainguicolor); + fMain->AddFrame(fBottomFrame, new TGLayoutHints(kLHintsExpandX,10,10,10,10)); + + // Create a horizontal frame widget with buttons + hframe = new TGHorizontalFrame(fBottomFrame,canvas_width+400,40); + hframe->SetBackgroundColor(mainguicolor); + fBottomFrame->AddFrame(hframe,new TGLayoutHints(kLHintsExpandX,200,20,2,2)); + + fPrev = new TGTextButton(hframe,"Prev"); + fPrev->SetBackgroundColor(mainguicolor); + fPrev->Connect("Clicked()","OnlineGUI",this,"DrawPrev()"); + hframe->AddFrame(fPrev, new TGLayoutHints(kLHintsCenterX,5,5,1,1)); + + fNext = new TGTextButton(hframe,"Next"); + fNext->SetBackgroundColor(mainguicolor); + fNext->Connect("Clicked()","OnlineGUI",this,"DrawNext()"); + hframe->AddFrame(fNext, new TGLayoutHints(kLHintsCenterX,5,5,1,1)); + + fExit = new TGTextButton(hframe,"Exit GUI"); + fExit->SetBackgroundColor(red); + fExit->Connect("Clicked()","OnlineGUI",this,"CloseGUI()"); + + hframe->AddFrame(fExit, new TGLayoutHints(kLHintsCenterX,5,5,1,1)); + + TString Buff; + if(runNumber==0) { + Buff = ""; + } else { + Buff = "Run #"; + Buff += runNumber; + } + TGString labelBuff(Buff); + + fRunNumber = new TGLabel(hframe,Buff); + fRunNumber->SetBackgroundColor(mainguicolor); + hframe->AddFrame(fRunNumber,new TGLayoutHints(kLHintsCenterX,5,5,1,1)); + + fPrint = new TGTextButton(hframe,"Print To &File"); + fPrint->SetBackgroundColor(mainguicolor); + fPrint->Connect("Clicked()","OnlineGUI",this,"PrintToFile()"); + hframe->AddFrame(fPrint, new TGLayoutHints(kLHintsCenterX,5,5,1,1)); + + + // Set a name to the main frame + if(fConfig->IsMonitor()) { + fMain->SetWindowName("Parity ANalysis GUI moNitor"); + } else { + fMain->SetWindowName("Online Analysis GUI"); + } + + // Map all sub windows to main frame + fMain->MapSubwindows(); + + // Initialize the layout algorithm + fMain->Resize(fMain->GetDefaultSize()); + + // Map main frame + fMain->MapWindow(); + +#ifdef DEBUG + fMain->Print(); +#endif + + if(fFileAlive) DoDraw(); + + if(fConfig->IsMonitor()) { + timer = new TTimer(); + if(fFileAlive) { + timer->Connect(timer,"Timeout()","OnlineGUI",this,"TimerUpdate()"); + } else { + timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()"); + } + timer->Start(UPDATETIME); + } + +} + +void OnlineGUI::DoDraw() +{ + // The main Drawing Routine. + +#ifdef INTERNALSTYLE + gStyle->SetOptStat(1110); + gStyle->SetStatFontSize(0.1); +#endif + if (fConfig->IsLogx(current_page)) { + gStyle->SetOptLogx(1); + } else { + gStyle->SetOptLogx(0); + } + if (fConfig->IsLogy(current_page)) { + gStyle->SetOptLogy(1); + } else { + gStyle->SetOptLogy(0); + } + if (fConfig->IsLogz(current_page)) { + gStyle->SetOptLogz(1); + } else { + gStyle->SetOptLogz(0); + } +#ifdef INTERNALSTYLE + gStyle->SetTitleH(0.10); + gStyle->SetTitleW(0.40); +// gStyle->SetLabelSize(0.10,"X"); +// gStyle->SetLabelSize(0.10,"Y"); + gStyle->SetLabelSize(0.05,"X"); + gStyle->SetLabelSize(0.05,"Y"); + gStyle->SetPadLeftMargin(0.14); + gStyle->SetNdivisions(505,"X"); + gStyle->SetNdivisions(404,"Y"); + gStyle->SetPalette(1); + gROOT->ForceStyle(); +#endif + + // Determine the dimensions of the canvas.. + UInt_t draw_count = fConfig->GetDrawCount(current_page); +#ifdef INTERNALSTYLE + if(draw_count>=8) { + gStyle->SetLabelSize(0.08,"X"); + gStyle->SetLabelSize(0.08,"Y"); + } +#endif +// Int_t dim = Int_t(round(sqrt(double(draw_count)))); + pair <UInt_t,UInt_t> dim = fConfig->GetPageDim(current_page); + +#ifdef DEBUG + cout << "Dimensions: " << dim.first << "X" + << dim.second << endl; +#endif + + // Create a nice clean canvas. + fCanvas->Clear(); + fCanvas->Divide(dim.first,dim.second); + + drawcommand thiscommand; + // Draw the histograms. + for(UInt_t i=0; i<draw_count; i++) { + thiscommand = fConfig->GetDrawCommand(current_page,i); + thiscommand = fileObject2command(thiscommand,&fRootFile); + fCanvas->cd(i+1); + if (thiscommand.variable == "macro") { + MacroDraw(thiscommand); + } else if (thiscommand.objtype.Contains("TH")) { + HistDraw(thiscommand); + } else if (thiscommand.objtype.Contains("TCanvas")) { + CanvasDraw(thiscommand,i+1); + } else if (thiscommand.objtype.Contains("TGraph")) { + GraphDraw(thiscommand); + } else { // otherwise... assume that the objtype is a branch from a tree + TreeDraw(thiscommand); + } + } + + fCanvas->cd(); + fCanvas->Update(); + + if(!fPrintOnly) { + CheckPageButtons(); + } + +} + +void OnlineGUI::DrawNext() +{ + // Handler for the "Next" button. + fRadioPage[current_page]->SetState(kButtonUp); + // The following line triggers DoRadio() + fRadioPage[current_page+1]->SetState(kButtonDown,true); + +} + +void OnlineGUI::DrawPrev() +{ + // Handler for the "Prev" button. + fRadioPage[current_page]->SetState(kButtonUp); + // The following line triggers DoRadio() + fRadioPage[current_page-1]->SetState(kButtonDown,true); + +} + +void OnlineGUI::DoRadio() +{ + // Handle the radio buttons + // Find out which button has been pressed.. + // turn off the previous button... + // then draw the appropriate page. + // This routine also handles the Draw from the Prev/Next buttons + // - makes a call to DoDraw() + + UInt_t pagecount = fConfig->GetPageCount(); + TGButton *btn = (TGButton *) gTQSender; + UInt_t id = btn->WidgetId(); + + if (id <= pagecount) { + fRadioPage[current_page]->SetState(kButtonUp); + } + + current_page = id; + if(!fConfig->IsMonitor()) DoDraw(); + +} + +void OnlineGUI::CheckPageButtons() +{ + // Checks the current page to see if it's the first or last page. + // If so... turn off the appropriate button. + // If not.. turn on both buttons. + + if(current_page==0) { + fPrev->SetState(kButtonDisabled); + if(fConfig->GetPageCount()!=1) + fNext->SetState(kButtonUp); + } else if(current_page==fConfig->GetPageCount()-1) { + fNext->SetState(kButtonDisabled); + if(fConfig->GetPageCount()!=1) + fPrev->SetState(kButtonUp); + } else { + fPrev->SetState(kButtonUp); + fNext->SetState(kButtonUp); + } +} + +void OnlineGUI::GetFileObjects(RootFileObject* fLocalRootFileObj) +{ + // Utility to find all of the objects within a File (TTree, TH1F, etc). + // The pair stored in the vector is <ObjName, ObjType> + // For histograms, the title is also stored + // (in case the the name is not very descriptive... like when + // using h2root) + // If there's no good keys.. do nothing. +#ifdef DEBUGGETFILEOBJECTS + cout << "Keys = " << fLocalRootFileObj->RootFile->ReadKeys() << endl; +#endif + if(fLocalRootFileObj->RootFile->ReadKeys()==0) { + fLocalRootFileObj->fUpdate = kFALSE; +// delete fLocalRootFileObj->RootFile; +// fLocalRootFileObj->RootFile = 0; +// CheckRootFile(); + return; + } + fLocalRootFileObj->vfileObjects.clear(); + + TIter next( (fLocalRootFileObj->RootFile)->GetListOfKeys() ); + TKey *key = new TKey(); + + // Do the search + while((key=(TKey*)next())!=0) { +#ifdef DEBUGGETFILEOBJECTS + cout << "Key = " << key << endl; +#endif + TString objname = key->GetName(); + TString objtype = key->GetClassName(); + TString objtitle = key->GetTitle(); +#ifdef DEBUGGETFILEOBJECTS + cout << objname << " " << objtype << endl; +#endif + + if(objtype.Contains("TDirectory")) { + TDirectory *thisdir = (TDirectory*)fLocalRootFileObj->RootFile->Get(objname); + TIter nextInDir(thisdir->GetListOfKeys()); + TKey *innerkey = new TKey(); + while((innerkey=(TKey*)nextInDir())!=0) { + TString iobjname = innerkey->GetName(); + TString iobjtype = innerkey->GetClassName(); + TString iobjtitle = innerkey->GetTitle(); + TString iobjdir = objname; +#ifdef DEBUGGETFILEOBJECTS + cout << iobjname << " " << iobjtype << endl; +#endif + fileObject thisObject; + thisObject.name = iobjname; + thisObject.type = iobjtype; + thisObject.title = iobjtitle; + thisObject.directory = objname; + fLocalRootFileObj->vfileObjects.push_back(thisObject); + } + } else { + fileObject thisObject; + thisObject.name = objname; + thisObject.type = objtype; + thisObject.title = objtitle; + thisObject.directory = ""; + fLocalRootFileObj->vfileObjects.push_back(thisObject); + } + + } + fLocalRootFileObj->fUpdate = kTRUE; + delete key; +} + +void OnlineGUI::GetTreeVars(RootFileObject* fLocalRootFileObj) +{ + // Utility to find all of the variables (leaf's/branches) within a + // Specified TTree and put them within the TreeVars vector. + fLocalRootFileObj->TreeVars.clear(); + TObjArray *branchList; + vector <TString> currentTree; + + for(UInt_t i=0; i<fLocalRootFileObj->RootTree.size(); i++) { + currentTree.clear(); + branchList = fLocalRootFileObj->RootTree[i]->GetListOfBranches(); + TIter next(branchList); + TBranch *brc; + + while((brc=(TBranch*)next())!=0) { + TString found = brc->GetName(); + // Not sure if the line below is so smart... + currentTree.push_back(found); + } + fLocalRootFileObj->TreeVars.push_back(currentTree); + } +#ifdef DEBUG2 + for(UInt_t iTree=0; iTree<fLocalRootFileObj->TreeVars.size(); iTree++) { + cout << "In Tree " << iTree << ": " << endl; + for(UInt_t i=0; i<fLocalRootFileObj->TreeVars[iTree].size(); i++) { + cout << fLocalRootFileObj->TreeVars[iTree][i] << endl; + } + } +#endif +} + + +void OnlineGUI::GetRootTree(RootFileObject* fLocalRootFileObj ) { + // Utility to search a ROOT File for ROOT Trees + // Fills the RootTree vector + fLocalRootFileObj->RootTree.clear(); + + list <TString> found; + for(UInt_t i=0; i<fLocalRootFileObj->vfileObjects.size(); i++) { +#ifdef DEBUGGETROOTTREE + cout << "Object = " << fLocalRootFileObj->vfileObjects[i].type << + " Name = " << fLocalRootFileObj->vfileObjects[i].name << endl; +#endif + if(fLocalRootFileObj->vfileObjects[i].type.Contains("TTree")) + found.push_back(fLocalRootFileObj->vfileObjects[i].name); + } + + // Remove duplicates, then insert into fLocalRootFileObj->RootTree + found.unique(); + UInt_t nTrees = found.size(); + + for(UInt_t i=0; i<nTrees; i++) { + fLocalRootFileObj->RootTree.push_back( (TTree*) fLocalRootFileObj->RootFile->Get(found.front()) ); + found.pop_front(); + } + // Initialize the TreeEntries vector + fLocalRootFileObj->TreeEntries.clear(); + for(UInt_t i=0;i<fLocalRootFileObj->RootTree.size();i++) { + fLocalRootFileObj->TreeEntries.push_back(0); + } + +} + +UInt_t OnlineGUI::GetTreeIndex(TString var, RootFileObject* fLocalRootFileObj ) { + // Utility to find out which Tree (in fRootFile.RootTree) has the specified + // variable "var". If the variable is a collection of Tree + // variables (e.g. bcm1:lumi1), will only check the first + // (e.g. bcm1). + // Returns the correct index. if not found returns an index 1 + // larger than fRootFile.RootTree.size() + + // This is for 2d draws... look for the first only + if(var.Contains(":")) { + TString first_var = fConfig->SplitString(var,":")[0]; + var = first_var; + } + + // This is for variables with multiple dimensions. + if(var.Contains("[")) { + TString first_var = fConfig->SplitString(var,"[")[0]; + var = first_var; + } + + for(UInt_t iTree=0; iTree<fLocalRootFileObj->TreeVars.size(); iTree++) { + for(UInt_t ivar=0; ivar<fLocalRootFileObj->TreeVars[iTree].size(); ivar++) { + if(var == fLocalRootFileObj->TreeVars[iTree][ivar]) return iTree; + } + } + + return fLocalRootFileObj->RootTree.size()+1; +} + +UInt_t OnlineGUI::GetTreeIndexFromName(TString name, RootFileObject* fLocalRootFileObj) { + // Called by TreeDraw(). Tries to find the Tree index provided the + // name. If it doesn't match up, return a number that's one larger + // than the number of found trees. + for(UInt_t iTree=0; iTree<fLocalRootFileObj->RootTree.size(); iTree++) { + TString treename = fLocalRootFileObj->RootTree[iTree]->GetName(); + if(name == treename) { + return iTree; + } + } + + return fLocalRootFileObj->RootTree.size()+1; +} + +void OnlineGUI::MacroDraw(drawcommand command) { + // Called by DoDraw(), this will make a call to the defined macro, and + // plot it in it's own pad. One plot per macro, please. + + if(command.macro.IsNull()) { + cout << "macro command doesn't contain a macro to execute" << endl; + return; + } + + if(doGolden) fRootFile.RootFile->cd(); + gROOT->Macro(command.macro); + +} + +void OnlineGUI::CanvasDraw(drawcommand command,UInt_t padnum) { + // Called by DoDraw(), this will draw the TCanvas in the current Canvas + + TString rootversion = gROOT->GetVersion(); + TString slash = "/"; + TString rootversion_cut = (fConfig->SplitString(rootversion,slash))[0]; + Double_t ver_num = rootversion_cut.Atof(); + if(ver_num<5.16) { + TString badstring = "TCanvas Drawing Unsupported in ROOT v"+rootversion; + BadDraw(badstring); + return; + } + + TDirectory *fDir; + if(command.directory.IsNull()) { + fDir = 0; + } else { + fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory); + } + + if(fDir) fDir->cd(); + fRootFile.RootFile->cd(); + TCanvas *tcanv = (TCanvas*)fRootFile.RootFile->Get(command.objname); + fCanvas->cd(padnum); + tcanv->DrawClonePad(); + delete tcanv; + +} + +void OnlineGUI::GraphDraw(drawcommand command) { + // Called by DoDraw(), this will draw the TCanvas in the current Canvas + + TString rootversion = gROOT->GetVersion(); + fRootFile.RootFile->cd(); + TDirectory *fDir; + if(command.directory.IsNull()) { + fDir = 0; + } else { + fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory); + } + + if(fDir) fDir->cd(); + TGraph *thisgraph = (TGraph*)fRootFile.RootFile->Get(command.objname); + TString drawopt = command.type; + if(drawopt.IsNull()) drawopt = "AP"; + if(!command.title.IsNull()) thisgraph->SetTitle(command.title); + thisgraph->Draw(drawopt); + +} + + +void OnlineGUI::DoDrawClear(RootFileObject* fLocalRootFileObj) { + // Utility to grab the number of entries in each tree. This info is + // then used, if watching a file, to "clear" the TreeDraw + // histograms, and begin looking at new data. + for(UInt_t i=0; i<fLocalRootFileObj->TreeEntries.size(); i++) { + fLocalRootFileObj->TreeEntries[i] = (Int_t) fLocalRootFileObj->RootTree[i]->GetEntries(); + } + + +} + +void OnlineGUI::TimerUpdate() { + // Called periodically by the timer, if "watchfile" is indicated + // in the config. Reloads the ROOT file, and updates the current page. +#ifdef DEBUG + cout << "Update Now" << endl; +#endif + + if(fRootFile.RootFile->IsZombie() || (fRootFile.RootFile->GetSize() == -1) + || (fRootFile.RootFile->ReadKeys()==0)) { + cout << "New run not yet available. Waiting..." << endl; + fRootFile.RootFile->Close(); + delete fRootFile.RootFile; + fRootFile.RootFile = 0; + timer->Reset(); + timer->Disconnect(); + timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()"); + return; + } + for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) { + fRootFile.RootTree[i]->Refresh(); + } + DoDraw(); + timer->Reset(); + +} + +void OnlineGUI::BadDraw(TString errMessage) { + // Routine to display (in Pad) why a particular draw method has + // failed. + TPaveText *pt = new TPaveText(0.1,0.1,0.9,0.9,"brNDC"); + pt->SetBorderSize(3); + pt->SetFillColor(10); + pt->SetTextAlign(22); + pt->SetTextFont(72); + pt->SetTextColor(2); + pt->AddText(errMessage.Data()); + pt->Draw(); +// cout << errMessage << endl; + +} + + +void OnlineGUI::CheckRootFile() { + // Check the path to the rootfile (should follow symbolic links) + // ... If found: + // Reopen new root file, + // Reconnect the timer to TimerUpdate() + + if(gSystem->AccessPathName(fConfig->GetRootFile())==0) { + cout << "Found the new run" << endl; + if(OpenRootFile()==0) { + timer->Reset(); + timer->Disconnect(); + timer->Connect(timer,"Timeout()","OnlineGUI",this,"TimerUpdate()"); + } + } else { + TString rnBuff = "Waiting for run"; + fRunNumber->SetText(rnBuff.Data()); + hframe->Layout(); + } + +} + +Int_t OnlineGUI::OpenRootFile() { + + + fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ"); + if(fRootFile.RootFile->IsZombie() || (fRootFile.RootFile->GetSize() == -1) + || (fRootFile.RootFile->ReadKeys()==0)) { + cout << "New run not yet available. Waiting..." << endl; + fRootFile.RootFile->Close(); + delete fRootFile.RootFile; + fRootFile.RootFile = 0; + timer->Reset(); + timer->Disconnect(); + timer->Connect(timer,"Timeout()","OnlineGUI",this,"CheckRootFile()"); + return -1; + } + + // Update the runnumber + ObtainRunNumber(); + if(runNumber != 0) { + TString rnBuff = "Run #"; + rnBuff += runNumber; + fRunNumber->SetText(rnBuff.Data()); + hframe->Layout(); + } + + // Open the Root Trees. Give a warning if it's not there.. + GetFileObjects(&fRootFile); + if (fRootFile.fUpdate) { // Only do this stuff if there are valid keys + GetRootTree(&fRootFile); + GetTreeVars(&fRootFile); + for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) { + if(fRootFile.RootTree[i]==0) { + fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i); + } + } + DoDraw(); + } else { + return -1; + } + return 0; + +} + +void OnlineGUI::HistDraw(drawcommand command) { + // Called by DoDraw(), this will plot a histogram. + + Bool_t showGolden=kFALSE; + if(doGolden) showGolden=kTRUE; + Bool_t showStat=kTRUE; + TString htitle; + + if(command.noshowgolden=="noshowgolden") + showGolden = kFALSE; + if(command.nostat=="nostat") + showStat=kFALSE; + htitle = command.title; + + TString type=command.type; + TDirectory *fDir; + + if(command.directory.IsNull()) { + fDir = 0; + } else { + fDir = (TDirectory*)fRootFile.RootFile->Get(command.directory); + } + + // Determine dimensionality of histogram, then draw it + if(command.objtype.Contains("TH1")) { + // Operation for TH1 + fRootFile.RootFile->cd(); + if(fDir) fDir->cd(); + fRootFile.mytemp1d = (TH1D*)gDirectory->Get(command.objname); + if(!fRootFile.mytemp1d) BadDraw(command.variable+" not found"); + if(fRootFile.mytemp1d->GetEntries()==0) { + BadDraw("Empty Histogram"); + } else { + if(showGolden) { + fGoldenFile.RootFile->cd(); + if(fDir) fDir->cd(); + fGoldenFile.mytemp1d = (TH1D*)gDirectory->Get(command.objname); + fGoldenFile.mytemp1d->SetLineColor(30); + fGoldenFile.mytemp1d->SetFillColor(30); + Int_t fillstyle=3027; + if(fPrintOnly) fillstyle=3010; + fGoldenFile.mytemp1d->SetFillStyle(fillstyle); + fRootFile.mytemp1d->SetStats(showStat); + fGoldenFile.mytemp1d->SetStats(kFALSE); + fGoldenFile.mytemp1d->Draw(); + if(!htitle.IsNull()) fGoldenFile.mytemp1d->SetTitle(htitle); + fRootFile.mytemp1d->Draw("sames"+type); + } else { + fRootFile.mytemp1d->SetStats(showStat); + if(!htitle.IsNull()) fRootFile.mytemp1d->SetTitle(htitle); + fRootFile.mytemp1d->Draw(type); + } + } + return; + } + + if(command.objtype.Contains("TH2")) { + // Operation for TH2 + if(!showGolden) fRootFile.RootFile->cd(); + if(fDir) fDir->cd(); + fRootFile.mytemp2d = (TH2D*)gDirectory->Get(command.objname); + if(fRootFile.mytemp2d->GetEntries()==0) { + BadDraw("Empty Histogram"); + } else { + if(showGolden) { + fGoldenFile.RootFile->cd(); + if(fDir) fDir->cd(); + fGoldenFile.mytemp2d = (TH2D*)gDirectory->Get(command.objname); + fGoldenFile.mytemp2d->SetMarkerColor(2); + fRootFile.mytemp2d->SetStats(showStat); + fGoldenFile.mytemp2d->SetStats(kFALSE); + fGoldenFile.mytemp2d->Draw(type); + if(!htitle.IsNull()) fGoldenFile.mytemp2d->SetTitle(htitle); + fRootFile.mytemp2d->Draw("sames"+type); + } else { + fRootFile.mytemp2d->SetStats(showStat); + if(!htitle.IsNull()) fGoldenFile.mytemp2d->SetTitle(htitle); + fRootFile.mytemp2d->Draw(type); + fRootFile.mytemp2d->Draw("colz"); + } + } + return; + } + + if(command.objtype.Contains("TH3")) { + // Operation for TH3 + if(!showGolden) fRootFile.RootFile->cd(); + if(fDir) fDir->cd(); + fRootFile.mytemp3d = (TH3D*)gDirectory->Get(command.objname); + if(fRootFile.mytemp3d->GetEntries()==0) { + BadDraw("Empty Histogram"); + } else { + fRootFile.mytemp3d->Draw(); + if(showGolden) { + fGoldenFile.RootFile->cd(); + if(fDir) fDir->cd(); + fGoldenFile.mytemp3d = (TH3D*)gDirectory->Get(command.objname); + fGoldenFile.mytemp3d->SetMarkerColor(2); + fRootFile.mytemp3d->SetStats(showStat); + fGoldenFile.mytemp3d->SetStats(kFALSE); + fGoldenFile.mytemp3d->Draw(type); + if(!htitle.IsNull()) fGoldenFile.mytemp3d->SetTitle(htitle); + fRootFile.mytemp3d->Draw("sames"+type); + } else { + fRootFile.mytemp3d->SetStats(showStat); + if(!htitle.IsNull()) fGoldenFile.mytemp3d->SetTitle(htitle); + fRootFile.mytemp3d->Draw(type); + } + } + return; + } + +} + +drawcommand OnlineGUI::fileObject2command(drawcommand command, RootFileObject* fLocalRootFileObj) { + // Fill in gaps in the drawcommand with items from the + // vfileObject. This elimates the need for duplicate code in + // the different *Draw routines. + for(UInt_t i=0; i<fLocalRootFileObj->vfileObjects.size(); i++) { + if(fLocalRootFileObj->vfileObjects[i].name==command.variable || + fLocalRootFileObj->vfileObjects[i].title==command.variable ) { + command.objname = fLocalRootFileObj->vfileObjects[i].name; + command.objtitle = fLocalRootFileObj->vfileObjects[i].title; + command.objtype = fLocalRootFileObj->vfileObjects[i].type; + command.directory = fLocalRootFileObj->vfileObjects[i].directory; +#ifdef DEBUGf2command + cout << command.directory << " " + << command.objtype << " " + << command.objname + << endl; +#endif + return command; + } + } + return command; + + +} + +void OnlineGUI::TreeDraw(drawcommand command) { + // Called by DoDraw(), this will plot a Tree Variable + + TString var = command.variable; + Bool_t showGolden=kFALSE; + if(doGolden) showGolden=kTRUE; + + Bool_t showStat=kTRUE; + if(command.nostat=="nostat") showStat=kFALSE; + + //TObject *hobj; + + // Combine the cuts (definecuts and specific cuts) + TCut cut = ""; + TString tempCut; + if(!command.cut.IsNull()) { + tempCut = command.cut; + vector <TString> cutIdents = fConfig->GetCutIdent(); + for(UInt_t i=0; i<cutIdents.size(); i++) { + if(tempCut.Contains(cutIdents[i])) { + TString cut_found = (TString)fConfig->GetDefinedCut(cutIdents[i]); + tempCut.ReplaceAll(cutIdents[i],cut_found); + } + } + cut = (TCut)tempCut; + } + + // Determine which Tree the variable comes from, then draw it. + UInt_t iTree; + if(command.treename.IsNull()) { + iTree = GetTreeIndex(var,&fRootFile); + } else { + iTree = GetTreeIndexFromName(command.treename,&fRootFile); + } + TString drawopt = command.type; + Int_t errcode=0; + if(drawopt.IsNull() && var.Contains(":")) drawopt = "cont"; + if(drawopt=="scat") drawopt = ""; + + fRootFile.RootFile->cd(); + if (iTree <= fRootFile.RootTree.size() ) { + TObjArray* tok = var.Tokenize(">()"); + TString myvar = ((TObjString*)tok->First())->GetString(); + TString hname = "h"; + TString histdef = ((TObjString*)tok->Last())->GetString(); + if(tok->GetEntries() == 1) histdef = ""; // ie "var[0]" + if(tok->GetEntries() == 2) { + if(! histdef.Contains(",") ) { // ie "var[0]>>h1" + hname = histdef; + histdef = ""; + } + } + if(tok->GetEntries() == 3) hname = ((TObjString*)tok->At(1))->GetString(); // ie "var[0]>>h1(100,0,100)" + delete tok; + TString tmp = var + tempCut; + hname = Form("%s_%u",hname.Data(),tmp.Hash()); // unique id so caching histos works + + errcode=1; + TObject *hobj = gDirectory->Get(hname); + if(hobj == NULL) { + errcode = fRootFile.RootTree[iTree]->Draw(myvar+">>"+hname+"("+histdef+")",cut,drawopt, + 1000000000,fRootFile.TreeEntries[iTree]); + hobj = gDirectory->Get(hname); + } + TH1F *mainhist = (TH1F*)hobj; + mainhist->Draw(drawopt); + //tmp = myvar+">>"+hname+"("+histdef+")"; + //printf("hist: '%s', opt: '%s', \"%s\"\n", hname.Data(), drawopt.Data(),tmp.Data()); + + if(errcode==-1) { + BadDraw(var+" not found"); + } else if (errcode!=0) { + TString htype = hobj->ClassName(); + if(! htype.Contains("TH1F") ) { + //printf("skipping.\n"); + showGolden=kFALSE; + } + if(showGolden) { + errcode=1; + TString goldname = "gold"+hname; + TH1F *goldhist = (TH1F*)gDirectory->Get(goldname); + if(goldhist == NULL) { + goldhist = (TH1F*)mainhist->Clone(hname); + goldhist->SetName(goldname); + errcode = fGoldenFile.RootTree[iTree]->Project(goldname,myvar,cut); + } + if(errcode>0) { + goldhist->SetFillColor(30); + Int_t fillstyle=3027; + if(fPrintOnly) fillstyle=3010; + goldhist->SetFillStyle(fillstyle); + goldhist->Draw(drawopt); + mainhist->SetFillColor(0); + mainhist->SetFillStyle(1001); + mainhist->Draw("same"); + if(!command.title.IsNull()) goldhist->SetTitle(command.title); + if(!showStat) goldhist->SetStats(kFALSE); + } + } else { + if(!command.title.IsNull()) mainhist->SetTitle(command.title); + if(!showStat) mainhist->SetStats(kFALSE); + } + } else { + BadDraw("Empty Histogram"); + } + } else { + BadDraw(var+" not found"); + if (fConfig->IsMonitor()){ + // Maybe we missed it... look again. I dont like the code + // below... maybe I can come up with something better + GetFileObjects(&fRootFile); + GetRootTree(&fRootFile); + GetTreeVars(&fRootFile); + } + } + +} + +void OnlineGUI::ObtainRunNumber() +{ + // Utility to obtain the runnumber through a helper macro + // "GetRunNumber.C" + + if (runNumber==0) runNumber = GetRunNumber(); +#ifdef DEBUG + cout << "Runnumber from file: " << runNumber << endl; +#endif +} + +void OnlineGUI::PrintToFile() +{ + // Routine to print the current page to a File. + // A file dialog pop's up to request the file name. + fCanvas = fEcanvas->GetCanvas(); + gStyle->SetPaperSize(20,24); + static TString dir("."); + TGFileInfo fi; + const char *myfiletypes[] = + { "All files","*", + "PDF files","*.pdf", + "PNG files","*.png", + "GIF files","*.gif", + "JPG files","*.jpg", + 0, 0 }; + fi.fFileTypes = myfiletypes; + fi.fIniDir = StrDup(dir.Data()); + cout << " INitiail = " << fi.fIniDir << endl; + new TGFileDialog(gClient->GetRoot(), fMain, kFDSave, &fi); + if(fi.fFilename!=NULL) { + fCanvas->Print(fi.fFilename); + } +} + +void OnlineGUI::PrintPages() { + // Routine to go through each defined page, and print the output to + // a postscript file. (good for making sample histograms). + + // Open the RootFile + // unless we're watching a file. + fRootFile.RootFile = new TFile(fConfig->GetRootFile(),"READ"); + if(!fRootFile.RootFile->IsOpen()) { + cout << "ERROR: rootfile: " << fConfig->GetRootFile() + << " does not exist" + << endl; +#ifdef STANDALONE + gApplication->Terminate(); +#else + return; +#endif + } else { + fFileAlive = kTRUE; + ObtainRunNumber(); + // Open the Root Trees. Give a warning if it's not there.. + GetFileObjects(&fRootFile); + GetRootTree(&fRootFile); + GetTreeVars(&fRootFile); + for(UInt_t i=0; i<fRootFile.RootTree.size(); i++) { + if(fRootFile.RootTree[i]==0) { + fRootFile.RootTree.erase(fRootFile.RootTree.begin() + i); + } + } + + } + TString goldenfilename=fConfig->GetGoldenFile(); + if(!goldenfilename.IsNull()) { + fGoldenFile.RootFile = new TFile(goldenfilename,"READ"); + if(!fGoldenFile.RootFile->IsOpen()) { + cout << "ERROR: goldenrootfile: " << goldenfilename + << " does not exist. Oh well, no comparison plots." + << endl; + doGolden = kFALSE; + fGoldenFile.RootFile=NULL; + } else { + // Open the Root Trees. Give a warning if it's not there.. + GetFileObjects(&fGoldenFile); + GetRootTree(&fGoldenFile); + GetTreeVars(&fGoldenFile); + for(UInt_t i=0; i<fGoldenFile.RootTree.size(); i++) { + if(fGoldenFile.RootTree[i]==0) { + fGoldenFile.RootTree.erase(fGoldenFile.RootTree.begin() + i); + } + } + doGolden = kTRUE; + } + } else { + doGolden=kFALSE; + fGoldenFile.RootFile=NULL; + } + + // I'm not sure exactly how this works. But it does. + fCanvas = new TCanvas("fCanvas","trythis",850,1100); +// TCanvas *maincanvas = new TCanvas("maincanvas","whatever",850,1100); +// maincanvas->SetCanvas(fCanvas); + TLatex *lt = new TLatex(); + + TString plotsdir = fConfig->GetPlotsDir(); + Bool_t useJPG = kFALSE; + if(!plotsdir.IsNull()) useJPG = kTRUE; + + // TString filename = "summaryplots"; + TString ConfigStartAll=fConfig->GetConfigStart(); + TObjArray *tx= ConfigStartAll.Tokenize("/"); + TString temp=((TObjString *)(tx->At(tx->GetEntries()-1)))->String(); + Ssiz_t pos=temp.Index(".cfg"); + TString filename=temp(0,pos); + if(runNumber!=0) { + filename += "_"; + filename += runNumber; + } + if(useJPG) { + filename.Prepend(plotsdir+"/"); + filename += "_pageXXXX.jpg"; + } + else filename += ".pdf"; + + TString pagehead = "Summary Plots"; + if(runNumber!=0) { + pagehead += "(Run #"; + pagehead += runNumber; + pagehead += ")"; + } + pagehead += ": "; + + gStyle->SetPalette(1); + gStyle->SetTitleX(0.5); + gStyle->SetTitleY(0.95); + gStyle->SetPadBorderMode(0); + gStyle->SetHistLineColor(1); + gStyle->SetHistFillColor(1); + cout << filename << endl; + if(!useJPG) fCanvas->Print(filename+"["); + TString origFilename = filename; + for(UInt_t i=0; i<fConfig->GetPageCount(); i++) { + current_page=i; + DoDraw(); + TString pagename = pagehead + fConfig->GetPageTitle(current_page); + lt->SetTextSize(0.025); + lt->DrawLatex(0.05,0.98,pagename); + if(useJPG) { + filename = origFilename; + filename.ReplaceAll("XXXX",Form("%d",current_page)); + cout << "Printing page " << current_page + << " to file = " << filename << endl; + } + fCanvas->Print(filename); + } + if(!useJPG) fCanvas->Print(filename+"]"); + // + + cout << "Writing histograms to root file '" << filename << "'." << endl; + + filename.Resize(filename.Last('.')); + filename += ".root"; + TFile* hroot = new TFile(filename,"recreate"); + + UInt_t pageCount = fConfig->GetPageCount(); + for (UInt_t iPage=0; iPage<pageCount; ++iPage) { + UInt_t drawCount = fConfig->GetDrawCount(iPage); + for (UInt_t iDraw=0; iDraw<drawCount; ++iDraw) { + TString macro = fConfig->GetDrawCommand(iPage, iDraw).macro; + if (macro != "") { + TString histName = macro.Remove(0, macro.First('\"')+1); + histName.Resize(macro.First('\"')); + + fRootFile.RootFile->cd(); + TH1F* h1f = dynamic_cast<TH1F*>(gDirectory->Get(histName)); + TH2F* h2f = dynamic_cast<TH2F*>(gDirectory->Get(histName)); + hroot->cd(); + + if (h1f) h1f->Write(); + else if (h2f) h2f->Write(); + else cout << histName << " not found!" << endl; + } + } + } + + hroot->Write(); + hroot->Close(); + delete hroot; + + cout << "Root file '" << filename << "' done." << endl; + + // +#ifdef STANDALONE + gApplication->Terminate(); +#endif +} + +void OnlineGUI::MyCloseWindow() +{ + fMain->SendCloseMessage(); + cout << "OnlineGUI Closed." << endl; + if(timer!=NULL) { + timer->Stop(); + delete timer; + } + delete fPrint; + delete fExit; + delete fRunNumber; + delete fPrev; + delete fNext; + delete wile; + for(UInt_t i=0; i<fConfig->GetPageCount(); i++) + delete fRadioPage[i]; + delete hframe; + delete fEcanvas; + delete fBottomFrame; + delete vframe; + delete fTopframe; + delete fMain; + if(fGoldenFile.RootFile!=NULL) delete fGoldenFile.RootFile; + if(fRootFile.RootFile!=NULL) delete fRootFile.RootFile; + delete fConfig; + +#ifdef STANDALONE + gApplication->Terminate(); +#endif +} + +void OnlineGUI::CloseGUI() +{ + // Routine to take care of the Exit GUI button + fMain->SendCloseMessage(); +} + +OnlineGUI::~OnlineGUI() +{ + // fMain->SendCloseMessage(); + if(timer!=NULL) { + timer->Stop(); + delete timer; + } + delete fPrint; + delete fExit; + delete fRunNumber; + delete fPrev; + delete fNext; + delete wile; + for(UInt_t i=0; i<fConfig->GetPageCount(); i++) + delete fRadioPage[i]; + delete hframe; + delete fEcanvas; + delete vframe; + delete fBottomFrame; + delete fTopframe; + delete fMain; + if(fGoldenFile.RootFile!=NULL) delete fGoldenFile.RootFile; + if(fRootFile.RootFile!=NULL) delete fRootFile.RootFile; + delete fConfig; +} + +void online(TString type="standard",UInt_t run=0,Bool_t printonly=kFALSE,Bool_t rootonly=kFALSE) +{ + // "main" routine. Run this at the ROOT commandline. + + if(printonly || rootonly) { + if(!gROOT->IsBatch()) { +#ifdef STANDALONE + gROOT->SetBatch(); +#else + cout << "Sorry... the print summary plots option only works " + << "in BATCH mode." << endl; + return; +#endif + } + } + + OnlineConfig *fconfig = new OnlineConfig(type); + // OnlineConfig *fconfig = new OnlineConfig("halla"); + + if(!fconfig->ParseConfig()) { +#ifdef STANDALONE + gApplication->Terminate(); +#else + return; +#endif + } + + if(run!=0) fconfig->OverrideRootFile(run); + + new OnlineGUI(*fconfig,printonly,rootonly,run); + +} + +#ifdef STANDALONE +void Usage() +{ + cerr << "Usage: online [-r] [-f] [-P]" + << endl; + cerr << "Options:" << endl; + cerr << " -r : runnumber" << endl; + cerr << " -f : configuration file" << endl; + cerr << " -P : Only Print Summary Plots" << endl; + cerr << " -R : Only Rootfile " << endl; + cerr << endl; + +} + +int main(int argc, char **argv) +{ + TString type="default"; + UInt_t run=0; + Bool_t printonly=kFALSE; + Bool_t rootonly=kFALSE; + Bool_t showedUsage=kFALSE; + + TApplication theApp("App",&argc,argv,NULL,-1); + + for(Int_t i=1;i<theApp.Argc();i++) + { + TString sArg = theApp.Argv(i); + if(sArg=="-f") { + type = theApp.Argv(++i); + cout << " File specifier: " + << type << endl; + } else if (sArg=="-r") { + run = atoi(theApp.Argv(++i)); + cout << " Runnumber: " + << run << endl; + } else if (sArg=="-P") { + printonly = kTRUE; + cout << " PrintOnly" << endl; + } else if (sArg=="-R") { + rootonly = kTRUE; + cout << " RootOnly" << endl; + } else if (sArg=="-h") { + if(!showedUsage) Usage(); + showedUsage=kTRUE; + return 0; + } else { + cerr << "\"" << sArg << "\"" << " not recognized. Ignored." << endl; + if(!showedUsage) Usage(); + showedUsage=kTRUE; + } + } + + online(type,run,printonly,rootonly); + theApp.Run(); + + return 0; +} + +#endif diff --git a/onlineGUI/onlineGUI_v1.2.1/online.h b/onlineGUI/onlineGUI_v1.2.1/online.h old mode 100644 new mode 100755 index 186e0128..6e6e10e2 --- a/onlineGUI/onlineGUI_v1.2.1/online.h +++ b/onlineGUI/onlineGUI_v1.2.1/online.h @@ -1,172 +1,179 @@ -/////////////////////////////////////////////////////////////////// -// Macro to help with online analysis -// B. Moffit (moffit@jlab.org) -// - Originally written in Oct. 2003 -// Documentation and updates available at: -// http://www.jlab.org/~moffit/onlineGUI/ -// - -#include <TTree.h> -#include <TFile.h> -#include <TGButton.h> -#include <TGFrame.h> -#include <TRootEmbeddedCanvas.h> -#include "TGLabel.h" -#include "TGString.h" -#include <RQ_OBJECT.h> -#include <TQObject.h> -#include <vector> -#include <TString.h> -#include <TCut.h> -#include <TTimer.h> -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" - -#define UPDATETIME 2000 - -using namespace std; - -/* TTree *raw; */ -/* TFile *file; */ -struct fileObject { - TString name; - TString title; - TString type; - TString directory; -}; - -struct RootFileObject { - TFile* RootFile; - vector <TTree*> RootTree; - vector <Int_t> TreeEntries; - vector < vector <TString> > TreeVars; - Bool_t fUpdate; - TH1D *mytemp1d; - TH2D *mytemp2d; - TH3D *mytemp3d; - vector <fileObject> vfileObjects; -}; - -struct drawcommand { - TString variable; - TString cut; - TString type; - TString title; - TString treename; - TString nostat; - TString noshowgolden; - TString macro; - TString directory; - TString objname; - TString objtype; - TString objtitle; -}; - -class OnlineConfig { - RQ_OBJECT("OnlineConfig"); - // Class that takes care of the config file -private: - TString confFileName; // config filename - ifstream *fConfFile; // original config file - void ParseFile(); - vector < vector <TString> > sConfFile; // the config file, in memory - // pageInfo is the vector of the pages containing the sConfFile index - // and how many commands issued within that page (title, 1d, etc.) - TString rootfilename; // Just the name - TString goldenrootfilename; // Golden rootfile for comparisons - TString protorootfile; // Prototype for getting the rootfilename - TString guicolor; // User's choice of background color - TString plotsdir; // Where to store sample plots.. automatically stored as .jpg's). - vector < pair <UInt_t,UInt_t> > pageInfo; - vector <TCut> cutList; - vector <UInt_t> GetDrawIndex(UInt_t); - Bool_t fFoundCfg; - Bool_t fMonitor; - Bool_t ParseForMultiPlots(); - -public: - OnlineConfig(); - OnlineConfig(TString); - Bool_t ParseConfig(); - TString GetRootFile() { return rootfilename; }; - TString GetGoldenFile() { return goldenrootfilename; }; - TString GetGuiColor() { return guicolor; }; - TString GetPlotsDir() { return plotsdir; }; - TCut GetDefinedCut(TString ident); - vector <TString> GetCutIdent(); - // Page utilites - UInt_t GetPageCount() { return pageInfo.size(); }; - pair <UInt_t,UInt_t> GetPageDim(UInt_t); - Bool_t IsLogx(UInt_t page); - Bool_t IsLogy(UInt_t page); - Bool_t IsLogz(UInt_t page); - TString GetPageTitle(UInt_t); - UInt_t GetDrawCount(UInt_t); // Number of histograms in a page - drawcommand GetDrawCommand(UInt_t,UInt_t); - vector <TString> SplitString(TString,TString); - void OverrideRootFile(UInt_t); - Bool_t IsMonitor() { return fMonitor; }; -}; - -class OnlineGUI { - // Class that takes care of the GUI - RQ_OBJECT("OnlineGUI") -private: - //UInt_t fRunNum; - TGMainFrame *fMain; - TGHorizontalFrame *fTopframe; - TGVerticalFrame *vframe; - TGRadioButton *fRadioPage[50]; - TGPictureButton *wile; - TRootEmbeddedCanvas *fEcanvas; - TGHorizontalFrame *fBottomFrame; - TGHorizontalFrame *hframe; - TGTextButton *fNext; - TGTextButton *fPrev; - TGTextButton *fExit; - TGLabel *fRunNumber; - TGTextButton *fPrint; - TCanvas *fCanvas; // Present Embedded canvas - OnlineConfig *fConfig; - UInt_t current_page; - RootFileObject fRootFile; - RootFileObject fGoldenFile; - Bool_t doGolden; - UInt_t runNumber; - TTimer *timer; - Bool_t fPrintOnly; - Bool_t fFileAlive; - -public: - OnlineGUI(OnlineConfig&,Bool_t,UInt_t RunNum=0); - void CreateGUI(const TGWindow *p, UInt_t w, UInt_t h); - virtual ~OnlineGUI(); - void DoDraw(); - void DrawPrev(); - void DrawNext(); - void DoRadio(); - void CheckPageButtons(); - // Specific Draw Methods - void GetFileObjects(RootFileObject *r); - void GetTreeVars(RootFileObject *r); - void GetRootTree(RootFileObject *r); - UInt_t GetTreeIndex(TString,RootFileObject *r); - UInt_t GetTreeIndexFromName(TString, RootFileObject *r); - drawcommand fileObject2command(drawcommand,RootFileObject *r); - void TreeDraw(drawcommand); - void HistDraw(drawcommand); - void MacroDraw(drawcommand); - void CanvasDraw(drawcommand,UInt_t); - void GraphDraw(drawcommand); - void DoDrawClear(RootFileObject *r); - void TimerUpdate(); - void BadDraw(TString); - void CheckRootFile(); - Int_t OpenRootFile(); - void ObtainRunNumber(); - void PrintToFile(); - void PrintPages(); - void MyCloseWindow(); - void CloseGUI(); -}; +/////////////////////////////////////////////////////////////////// +// Macro to help with online analysis +// B. Moffit (moffit@jlab.org) +// - Originally written in Oct. 2003 +// Documentation and updates available at: +// http://www.jlab.org/~moffit/onlineGUI/ +// + +#include <TTree.h> +#include <TFile.h> +#include <TGButton.h> +#include <TGFrame.h> +#include <TRootEmbeddedCanvas.h> +#include "TGLabel.h" +#include "TGString.h" +#include <RQ_OBJECT.h> +#include <TQObject.h> +#include <vector> +#include <TString.h> +#include <TCut.h> +#include <TTimer.h> +#include "TH1.h" +#include "TH2.h" +#include "TH3.h" + +#define UPDATETIME 2000 + +using namespace std; + +/* TTree *raw; */ +/* TFile *file; */ +struct fileObject { + TString name; + TString title; + TString type; + TString directory; +}; + +struct RootFileObject { + TFile* RootFile; + vector <TTree*> RootTree; + vector <Int_t> TreeEntries; + vector < vector <TString> > TreeVars; + Bool_t fUpdate; + TH1D *mytemp1d; + TH2D *mytemp2d; + TH3D *mytemp3d; + vector <fileObject> vfileObjects; +}; + +struct drawcommand { + TString variable; + TString cut; + TString type; + TString title; + TString treename; + TString nostat; + TString noshowgolden; + TString macro; + TString directory; + TString objname; + TString objtype; + TString objtitle; +}; + +class OnlineConfig { + RQ_OBJECT("OnlineConfig"); + // Class that takes care of the config file +private: + TString confFileName; // config filename + ifstream *fConfFile; // original config file + void ParseFile(); + vector < vector <TString> > sConfFile; // the config file, in memory + // pageInfo is the vector of the pages containing the sConfFile index + // and how many commands issued within that page (title, 1d, etc.) + TString rootfilename; // Just the name + TString goldenrootfilename; // Golden rootfile for comparisons + TString protorootfile; // Prototype for getting the rootfilename + TString configfilestart; // + TString guicolor; // User's choice of background color + TString plotsdir; // Where to store sample plots.. automatically stored as .jpg's). + UInt_t canvaswidth; // Width of histogram canvas + UInt_t canvasheight; // Width of histogram canvas + vector < pair <UInt_t,UInt_t> > pageInfo; + vector <TCut> cutList; + vector <UInt_t> GetDrawIndex(UInt_t); + Bool_t fFoundCfg; + Bool_t fMonitor; + Bool_t ParseForMultiPlots(); + +public: + OnlineConfig(); + OnlineConfig(TString); + Bool_t ParseConfig(); + TString GetRootFile() { return rootfilename; }; + TString GetGoldenFile() { return goldenrootfilename; }; + TString GetGuiColor() { return guicolor; }; + TString GetPlotsDir() { return plotsdir; }; + TCut GetDefinedCut(TString ident); + vector <TString> GetCutIdent(); + // Page utilites + UInt_t GetPageCount() { return pageInfo.size(); }; + pair <UInt_t,UInt_t> GetPageDim(UInt_t); + Bool_t IsLogx(UInt_t page); + Bool_t IsLogy(UInt_t page); + Bool_t IsLogz(UInt_t page); + TString GetPageTitle(UInt_t); + UInt_t GetDrawCount(UInt_t); // Number of histograms in a page + drawcommand GetDrawCommand(UInt_t,UInt_t); + vector <TString> SplitString(TString,TString); + void OverrideRootFile(UInt_t); + Bool_t IsMonitor() { return fMonitor; }; + UInt_t GetCanvasWidth() { return canvaswidth; }; + UInt_t GetCanvasHeight() { return canvasheight; }; + TString GetConfigStart() {return configfilestart;}; // +}; + +class OnlineGUI { + // Class that takes care of the GUI + RQ_OBJECT("OnlineGUI") +private: + //UInt_t fRunNum; + TGMainFrame *fMain; + TGHorizontalFrame *fTopframe; + TGVerticalFrame *vframe; + TGRadioButton *fRadioPage[50]; + TGPictureButton *wile; + TRootEmbeddedCanvas *fEcanvas; + TGHorizontalFrame *fBottomFrame; + TGHorizontalFrame *hframe; + TGTextButton *fNext; + TGTextButton *fPrev; + TGTextButton *fExit; + TGLabel *fRunNumber; + TGTextButton *fPrint; + TCanvas *fCanvas; // Present Embedded canvas + OnlineConfig *fConfig; + UInt_t current_page; + RootFileObject fRootFile; + RootFileObject fGoldenFile; + Bool_t doGolden; + UInt_t runNumber; + TTimer *timer; + Bool_t fPrintOnly; + Bool_t fRootOnly; + Bool_t fFileAlive; + +public: + OnlineGUI(OnlineConfig&,Bool_t,Bool_t,UInt_t RunNum=0); + void CreateGUI(const TGWindow *p, UInt_t w, UInt_t h); + virtual ~OnlineGUI(); + void DoDraw(); + void DrawPrev(); + void DrawNext(); + void DoRadio(); + void CheckPageButtons(); + // Specific Draw Methods + void GetFileObjects(RootFileObject *r); + void GetTreeVars(RootFileObject *r); + void GetRootTree(RootFileObject *r); + UInt_t GetTreeIndex(TString,RootFileObject *r); + UInt_t GetTreeIndexFromName(TString, RootFileObject *r); + drawcommand fileObject2command(drawcommand,RootFileObject *r); + void TreeDraw(drawcommand); + void HistDraw(drawcommand); + void MacroDraw(drawcommand); + void CanvasDraw(drawcommand,UInt_t); + void GraphDraw(drawcommand); + void DoDrawClear(RootFileObject *r); + void TimerUpdate(); + void BadDraw(TString); + void CheckRootFile(); + Int_t OpenRootFile(); + void ObtainRunNumber(); + void PrintToFile(); + void PrintPages(); + void MyCloseWindow(); + void CloseGUI(); +}; diff --git a/onlineGUI/onlineGUI_v1.2.1/onlineDict.C b/onlineGUI/onlineGUI_v1.2.1/onlineDict.C deleted file mode 100644 index eaf7eebd..00000000 --- a/onlineGUI/onlineGUI_v1.2.1/onlineDict.C +++ /dev/null @@ -1,2058 +0,0 @@ -// -// File generated by /apps/root/PRO/root/bin/rootcint at Mon Dec 5 11:52:05 2016 - -// Do NOT change. Changes will be lost next time file is generated -// - -#define R__DICTIONARY_FILENAME onlineDict -#include "RConfig.h" //rootcint 4834 -#if !defined(R__ACCESS_IN_SYMBOL) -//Break the privacy of classes -- Disabled for the moment -#define private public -#define protected public -#endif - -// Since CINT ignores the std namespace, we need to do so in this file. -namespace std {} using namespace std; -#include "onlineDict.h" - -#include "TClass.h" -#include "TBuffer.h" -#include "TMemberInspector.h" -#include "TInterpreter.h" -#include "TVirtualMutex.h" -#include "TError.h" - -#ifndef G__ROOT -#define G__ROOT -#endif - -#include "RtypesImp.h" -#include "TIsAProxy.h" -#include "TFileMergeInfo.h" - -// Direct notice to TROOT of the dictionary's loading. -namespace { - static struct DictInit { - DictInit() { - ROOT::RegisterModule(); - } - } __TheDictionaryInitializer; -} - -// START OF SHADOWS - -namespace ROOTShadow { - namespace Shadow { - } // of namespace Shadow -} // of namespace ROOTShadow -// END OF SHADOWS - -namespace ROOTDict { - void OnlineConfig_ShowMembers(void *obj, TMemberInspector &R__insp); - static void OnlineConfig_Dictionary(); - static void *new_OnlineConfig(void *p = 0); - static void *newArray_OnlineConfig(Long_t size, void *p); - static void delete_OnlineConfig(void *p); - static void deleteArray_OnlineConfig(void *p); - static void destruct_OnlineConfig(void *p); - - // Function generating the singleton type initializer - static ROOT::TGenericClassInfo *GenerateInitInstanceLocal(const ::OnlineConfig*) - { - ::OnlineConfig *ptr = 0; - static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(typeid(::OnlineConfig),0); - static ::ROOT::TGenericClassInfo - instance("OnlineConfig", "./online.h", 66, - typeid(::OnlineConfig), ::ROOT::DefineBehavior(ptr, ptr), - 0, &OnlineConfig_Dictionary, isa_proxy, 0, - sizeof(::OnlineConfig) ); - instance.SetNew(&new_OnlineConfig); - instance.SetNewArray(&newArray_OnlineConfig); - instance.SetDelete(&delete_OnlineConfig); - instance.SetDeleteArray(&deleteArray_OnlineConfig); - instance.SetDestructor(&destruct_OnlineConfig); - return &instance; - } - ROOT::TGenericClassInfo *GenerateInitInstance(const ::OnlineConfig*) - { - return GenerateInitInstanceLocal((::OnlineConfig*)0); - } - // Static variable to force the class initialization - static ::ROOT::TGenericClassInfo *_R__UNIQUE_(Init) = GenerateInitInstanceLocal((const ::OnlineConfig*)0x0); R__UseDummy(_R__UNIQUE_(Init)); - - // Dictionary for non-ClassDef classes - static void OnlineConfig_Dictionary() { - ::ROOTDict::GenerateInitInstanceLocal((const ::OnlineConfig*)0x0)->GetClass(); - } - -} // end of namespace ROOTDict - -namespace ROOTDict { - void OnlineGUI_ShowMembers(void *obj, TMemberInspector &R__insp); - static void OnlineGUI_Dictionary(); - static void delete_OnlineGUI(void *p); - static void deleteArray_OnlineGUI(void *p); - static void destruct_OnlineGUI(void *p); - - // Function generating the singleton type initializer - static ROOT::TGenericClassInfo *GenerateInitInstanceLocal(const ::OnlineGUI*) - { - ::OnlineGUI *ptr = 0; - static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(typeid(::OnlineGUI),0); - static ::ROOT::TGenericClassInfo - instance("OnlineGUI", "./online.h", 112, - typeid(::OnlineGUI), ::ROOT::DefineBehavior(ptr, ptr), - 0, &OnlineGUI_Dictionary, isa_proxy, 0, - sizeof(::OnlineGUI) ); - instance.SetDelete(&delete_OnlineGUI); - instance.SetDeleteArray(&deleteArray_OnlineGUI); - instance.SetDestructor(&destruct_OnlineGUI); - return &instance; - } - ROOT::TGenericClassInfo *GenerateInitInstance(const ::OnlineGUI*) - { - return GenerateInitInstanceLocal((::OnlineGUI*)0); - } - // Static variable to force the class initialization - static ::ROOT::TGenericClassInfo *_R__UNIQUE_(Init) = GenerateInitInstanceLocal((const ::OnlineGUI*)0x0); R__UseDummy(_R__UNIQUE_(Init)); - - // Dictionary for non-ClassDef classes - static void OnlineGUI_Dictionary() { - ::ROOTDict::GenerateInitInstanceLocal((const ::OnlineGUI*)0x0)->GetClass(); - } - -} // end of namespace ROOTDict - -namespace ROOTDict { - // Wrapper around operator delete - static void delete_OnlineGUI(void *p) { - delete ((::OnlineGUI*)p); - } - static void deleteArray_OnlineGUI(void *p) { - delete [] ((::OnlineGUI*)p); - } - static void destruct_OnlineGUI(void *p) { - typedef ::OnlineGUI current_t; - ((current_t*)p)->~current_t(); - } -} // end of namespace ROOTDict for class ::OnlineGUI - -namespace ROOTDict { - // Wrappers around operator new - static void *new_OnlineConfig(void *p) { - return p ? ::new((::ROOT::TOperatorNewHelper*)p) ::OnlineConfig : new ::OnlineConfig; - } - static void *newArray_OnlineConfig(Long_t nElements, void *p) { - return p ? ::new((::ROOT::TOperatorNewHelper*)p) ::OnlineConfig[nElements] : new ::OnlineConfig[nElements]; - } - // Wrapper around operator delete - static void delete_OnlineConfig(void *p) { - delete ((::OnlineConfig*)p); - } - static void deleteArray_OnlineConfig(void *p) { - delete [] ((::OnlineConfig*)p); - } - static void destruct_OnlineConfig(void *p) { - typedef ::OnlineConfig current_t; - ((current_t*)p)->~current_t(); - } -} // end of namespace ROOTDict for class ::OnlineConfig - -/******************************************************** -* onlineDict.C -* CAUTION: DON'T CHANGE THIS FILE. THIS FILE IS AUTOMATICALLY GENERATED -* FROM HEADER FILES LISTED IN G__setup_cpp_environmentXXX(). -* CHANGE THOSE HEADER FILES AND REGENERATE THIS FILE. -********************************************************/ - -#ifdef G__MEMTEST -#undef malloc -#undef free -#endif - -#if defined(__GNUC__) && __GNUC__ >= 4 && ((__GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ >= 1) || (__GNUC_MINOR__ >= 3)) -#pragma GCC diagnostic ignored "-Wstrict-aliasing" -#endif - -extern "C" void G__cpp_reset_tagtableonlineDict(); - -extern "C" void G__set_cpp_environmentonlineDict() { - G__cpp_reset_tagtableonlineDict(); -} -#include <new> -extern "C" int G__cpp_dllrevonlineDict() { return(30051515); } - -/********************************************************* -* Member function Interface Method -*********************************************************/ - -/* OnlineConfig */ -static int G__onlineDict_704_0_1(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 85, (long) ((const OnlineConfig*) G__getstructoffset())->GetListOfSignals()); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_2(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->Connect((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1]) -, (void*) G__int(libp->para[2]), (const char*) G__int(libp->para[3]))); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_3(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - switch (libp->paran) { - case 3: - G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0]), (void*) G__int(libp->para[1]) -, (const char*) G__int(libp->para[2]))); - break; - case 2: - G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0]), (void*) G__int(libp->para[1]))); - break; - case 1: - G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0]))); - break; - case 0: - G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->Disconnect()); - break; - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_4(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - switch (libp->paran) { - case 2: - ((OnlineConfig*) G__getstructoffset())->HighPriority((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1])); - G__setnull(result7); - break; - case 1: - ((OnlineConfig*) G__getstructoffset())->HighPriority((const char*) G__int(libp->para[0])); - G__setnull(result7); - break; - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_5(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - switch (libp->paran) { - case 2: - ((OnlineConfig*) G__getstructoffset())->LowPriority((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1])); - G__setnull(result7); - break; - case 1: - ((OnlineConfig*) G__getstructoffset())->LowPriority((const char*) G__int(libp->para[0])); - G__setnull(result7); - break; - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_6(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - const int imax = 6, dmax = 8, umax = 50; - int objsize, type, i, icnt = 0, dcnt = 0, ucnt = 0; - G__value *pval; - G__int64 lval[imax] = {0}; - double dval[dmax] = {0}; - union { G__int64 lval; double dval; } u[umax] = {{0}}; - lval[icnt] = G__getstructoffset(); icnt++; // this pointer - for (i = 0; i < libp->paran; i++) { - type = G__value_get_type(&libp->para[i]); - pval = &libp->para[i]; - if (isupper(type)) - objsize = G__LONGALLOC; - else - objsize = G__sizeof(pval); - switch (type) { - case 'c': case 'b': case 's': case 'r': objsize = sizeof(int); break; - case 'f': objsize = sizeof(double); break; - } -#ifdef G__VAARG_PASS_BY_REFERENCE - if (objsize > G__VAARG_PASS_BY_REFERENCE) { - if (pval->ref > 0x1000) { - if (icnt < imax) { - lval[icnt] = pval->ref; icnt++; - } else { - u[ucnt].lval = pval->ref; ucnt++; - } - } else { - if (icnt < imax) { - lval[icnt] = G__int(*pval); icnt++; - } else { - u[ucnt].lval = G__int(*pval); ucnt++; - } - } - type = 'z'; - } -#endif - switch (type) { - case 'n': case 'm': - if (icnt < imax) { - lval[icnt] = (G__int64)G__Longlong(*pval); icnt++; - } else { - u[ucnt].lval = (G__int64)G__Longlong(*pval); ucnt++; - } break; - case 'f': case 'd': - if (dcnt < dmax) { - dval[dcnt] = G__double(*pval); dcnt++; - } else { - u[ucnt].dval = G__double(*pval); ucnt++; - } break; - case 'z': break; - case 'u': - if (objsize >= 16) { - memcpy(&u[ucnt].lval, (void*)pval->obj.i, objsize); - ucnt += objsize/8; - break; - } - // objsize < 16 -> fall through - case 'g': case 'c': case 'b': case 'r': case 's': case 'h': case 'i': - case 'k': case 'l': - default: - if (icnt < imax) { - lval[icnt] = G__int(*pval); icnt++; - } else { - u[ucnt].lval = G__int(*pval); ucnt++; - } break; - } - if (ucnt >= 50) printf("EmitVA: more than 56 var args\n"); - } - ((OnlineConfig*) G__getstructoffset())->EmitVA((const char*) G__int(libp->para[0]), (Int_t) G__int(libp->para[1]), dval[0], dval[1], dval[2], dval[3], dval[4], dval[5], dval[6], dval[7], lval[3], lval[4], lval[5], u[0].lval, u[1].lval, u[2].lval, u[3].lval, u[4].lval, u[5].lval, u[6].lval, u[7].lval, u[8].lval, u[9].lval, u[10].lval, u[11].lval, u[12].lval, u[13].lval, u[14].lval, u[15].lval, u[16].lval, u[17].lval, u[18].lval, u[19].lval, u[20].lval, u[21].lval, u[22].lval, u[23].lval, u[24].lval, u[25].lval, u[26].lval, u[27].lval, u[28].lval, u[29].lval, u[30].lval, u[31].lval, u[32].lval, u[33].lval, u[34].lval, u[35].lval, u[36].lval, u[37].lval, u[38].lval, u[39].lval, u[40].lval, u[41].lval, u[42].lval, u[43].lval, u[44].lval, u[45].lval, u[46].lval, u[47].lval, u[48].lval, u[49].lval); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_7(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_8(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_9(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long_t*) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_10(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Double_t) G__double(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_11(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_12(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long64_t) G__Longlong(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_13(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (ULong64_t) G__ULonglong(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_14(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Bool_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_15(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Char_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_16(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UChar_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_17(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Short_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_18(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UShort_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_19(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Int_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_20(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UInt_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_21(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (ULong_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_22(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Float_t) G__double(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_23(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Destroyed(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_24(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->ChangedBy((const char*) G__int(libp->para[0])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_25(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->Message((const char*) G__int(libp->para[0])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_29(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - OnlineConfig* p = NULL; - char* gvp = (char*) G__getgvp(); - int n = G__getaryconstruct(); - if (n) { - if ((gvp == (char*)G__PVOID) || (gvp == 0)) { - p = new OnlineConfig[n]; - } else { - p = new((void*) gvp) OnlineConfig[n]; - } - } else { - if ((gvp == (char*)G__PVOID) || (gvp == 0)) { - p = new OnlineConfig; - } else { - p = new((void*) gvp) OnlineConfig; - } - } - result7->obj.i = (long) p; - result7->ref = (long) p; - G__set_tagnum(result7,G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig)); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_30(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - OnlineConfig* p = NULL; - char* gvp = (char*) G__getgvp(); - //m: 1 - if ((gvp == (char*)G__PVOID) || (gvp == 0)) { - p = new OnlineConfig(*((TString*) G__int(libp->para[0]))); - } else { - p = new((void*) gvp) OnlineConfig(*((TString*) G__int(libp->para[0]))); - } - result7->obj.i = (long) p; - result7->ref = (long) p; - G__set_tagnum(result7,G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig)); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_31(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->ParseConfig()); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_32(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - { - TString* pobj; - TString xobj = ((OnlineConfig*) G__getstructoffset())->GetRootFile(); - pobj = new TString(xobj); - result7->obj.i = (long) ((void*) pobj); - result7->ref = result7->obj.i; - G__store_tempobject(*result7); - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_33(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - { - TString* pobj; - TString xobj = ((OnlineConfig*) G__getstructoffset())->GetGoldenFile(); - pobj = new TString(xobj); - result7->obj.i = (long) ((void*) pobj); - result7->ref = result7->obj.i; - G__store_tempobject(*result7); - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_34(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - { - TString* pobj; - TString xobj = ((OnlineConfig*) G__getstructoffset())->GetGuiColor(); - pobj = new TString(xobj); - result7->obj.i = (long) ((void*) pobj); - result7->ref = result7->obj.i; - G__store_tempobject(*result7); - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_35(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - { - TString* pobj; - TString xobj = ((OnlineConfig*) G__getstructoffset())->GetPlotsDir(); - pobj = new TString(xobj); - result7->obj.i = (long) ((void*) pobj); - result7->ref = result7->obj.i; - G__store_tempobject(*result7); - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_36(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - { - TCut* pobj; - TCut xobj = ((OnlineConfig*) G__getstructoffset())->GetDefinedCut(*((TString*) G__int(libp->para[0]))); - pobj = new TCut(xobj); - result7->obj.i = (long) ((void*) pobj); - result7->ref = result7->obj.i; - G__store_tempobject(*result7); - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_37(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - { - vector<TString>* pobj; - vector<TString> xobj = ((OnlineConfig*) G__getstructoffset())->GetCutIdent(); - pobj = new vector<TString>(xobj); - result7->obj.i = (long) ((void*) pobj); - result7->ref = result7->obj.i; - G__store_tempobject(*result7); - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_38(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 104, (long) ((OnlineConfig*) G__getstructoffset())->GetPageCount()); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_39(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - { - pair<UInt_t,UInt_t>* pobj; - pair<UInt_t,UInt_t> xobj = ((OnlineConfig*) G__getstructoffset())->GetPageDim((UInt_t) G__int(libp->para[0])); - pobj = new pair<UInt_t,UInt_t>(xobj); - result7->obj.i = (long) ((void*) pobj); - result7->ref = result7->obj.i; - G__store_tempobject(*result7); - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_40(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->IsLogx((UInt_t) G__int(libp->para[0]))); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_41(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->IsLogy((UInt_t) G__int(libp->para[0]))); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_42(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->IsLogz((UInt_t) G__int(libp->para[0]))); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_43(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - { - TString* pobj; - TString xobj = ((OnlineConfig*) G__getstructoffset())->GetPageTitle((UInt_t) G__int(libp->para[0])); - pobj = new TString(xobj); - result7->obj.i = (long) ((void*) pobj); - result7->ref = result7->obj.i; - G__store_tempobject(*result7); - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_44(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 104, (long) ((OnlineConfig*) G__getstructoffset())->GetDrawCount((UInt_t) G__int(libp->para[0]))); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_45(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - { - drawcommand* pobj; - drawcommand xobj = ((OnlineConfig*) G__getstructoffset())->GetDrawCommand((UInt_t) G__int(libp->para[0]), (UInt_t) G__int(libp->para[1])); - pobj = new drawcommand(xobj); - result7->obj.i = (long) ((void*) pobj); - result7->ref = result7->obj.i; - G__store_tempobject(*result7); - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_46(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - { - vector<TString>* pobj; - vector<TString> xobj = ((OnlineConfig*) G__getstructoffset())->SplitString(*((TString*) G__int(libp->para[0])), *((TString*) G__int(libp->para[1]))); - pobj = new vector<TString>(xobj); - result7->obj.i = (long) ((void*) pobj); - result7->ref = result7->obj.i; - G__store_tempobject(*result7); - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_47(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineConfig*) G__getstructoffset())->OverrideRootFile((UInt_t) G__int(libp->para[0])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_704_0_48(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 103, (long) ((OnlineConfig*) G__getstructoffset())->IsMonitor()); - return(1 || funcname || hash || result7 || libp) ; -} - -// automatic destructor -typedef OnlineConfig G__TOnlineConfig; -static int G__onlineDict_704_0_49(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - char* gvp = (char*) G__getgvp(); - long soff = G__getstructoffset(); - int n = G__getaryconstruct(); - // - //has_a_delete: 0 - //has_own_delete1arg: 0 - //has_own_delete2arg: 0 - // - if (!soff) { - return(1); - } - if (n) { - if (gvp == (char*)G__PVOID) { - delete[] (OnlineConfig*) soff; - } else { - G__setgvp((long) G__PVOID); - for (int i = n - 1; i >= 0; --i) { - ((OnlineConfig*) (soff+(sizeof(OnlineConfig)*i)))->~G__TOnlineConfig(); - } - G__setgvp((long)gvp); - } - } else { - if (gvp == (char*)G__PVOID) { - delete (OnlineConfig*) soff; - } else { - G__setgvp((long) G__PVOID); - ((OnlineConfig*) (soff))->~G__TOnlineConfig(); - G__setgvp((long)gvp); - } - } - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - - -/* OnlineGUI */ -static int G__onlineDict_714_0_1(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 85, (long) ((const OnlineGUI*) G__getstructoffset())->GetListOfSignals()); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_2(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 103, (long) ((OnlineGUI*) G__getstructoffset())->Connect((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1]) -, (void*) G__int(libp->para[2]), (const char*) G__int(libp->para[3]))); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_3(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - switch (libp->paran) { - case 3: - G__letint(result7, 103, (long) ((OnlineGUI*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0]), (void*) G__int(libp->para[1]) -, (const char*) G__int(libp->para[2]))); - break; - case 2: - G__letint(result7, 103, (long) ((OnlineGUI*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0]), (void*) G__int(libp->para[1]))); - break; - case 1: - G__letint(result7, 103, (long) ((OnlineGUI*) G__getstructoffset())->Disconnect((const char*) G__int(libp->para[0]))); - break; - case 0: - G__letint(result7, 103, (long) ((OnlineGUI*) G__getstructoffset())->Disconnect()); - break; - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_4(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - switch (libp->paran) { - case 2: - ((OnlineGUI*) G__getstructoffset())->HighPriority((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1])); - G__setnull(result7); - break; - case 1: - ((OnlineGUI*) G__getstructoffset())->HighPriority((const char*) G__int(libp->para[0])); - G__setnull(result7); - break; - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_5(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - switch (libp->paran) { - case 2: - ((OnlineGUI*) G__getstructoffset())->LowPriority((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1])); - G__setnull(result7); - break; - case 1: - ((OnlineGUI*) G__getstructoffset())->LowPriority((const char*) G__int(libp->para[0])); - G__setnull(result7); - break; - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_6(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - const int imax = 6, dmax = 8, umax = 50; - int objsize, type, i, icnt = 0, dcnt = 0, ucnt = 0; - G__value *pval; - G__int64 lval[imax] = {0}; - double dval[dmax] = {0}; - union { G__int64 lval; double dval; } u[umax] = {{0}}; - lval[icnt] = G__getstructoffset(); icnt++; // this pointer - for (i = 0; i < libp->paran; i++) { - type = G__value_get_type(&libp->para[i]); - pval = &libp->para[i]; - if (isupper(type)) - objsize = G__LONGALLOC; - else - objsize = G__sizeof(pval); - switch (type) { - case 'c': case 'b': case 's': case 'r': objsize = sizeof(int); break; - case 'f': objsize = sizeof(double); break; - } -#ifdef G__VAARG_PASS_BY_REFERENCE - if (objsize > G__VAARG_PASS_BY_REFERENCE) { - if (pval->ref > 0x1000) { - if (icnt < imax) { - lval[icnt] = pval->ref; icnt++; - } else { - u[ucnt].lval = pval->ref; ucnt++; - } - } else { - if (icnt < imax) { - lval[icnt] = G__int(*pval); icnt++; - } else { - u[ucnt].lval = G__int(*pval); ucnt++; - } - } - type = 'z'; - } -#endif - switch (type) { - case 'n': case 'm': - if (icnt < imax) { - lval[icnt] = (G__int64)G__Longlong(*pval); icnt++; - } else { - u[ucnt].lval = (G__int64)G__Longlong(*pval); ucnt++; - } break; - case 'f': case 'd': - if (dcnt < dmax) { - dval[dcnt] = G__double(*pval); dcnt++; - } else { - u[ucnt].dval = G__double(*pval); ucnt++; - } break; - case 'z': break; - case 'u': - if (objsize >= 16) { - memcpy(&u[ucnt].lval, (void*)pval->obj.i, objsize); - ucnt += objsize/8; - break; - } - // objsize < 16 -> fall through - case 'g': case 'c': case 'b': case 'r': case 's': case 'h': case 'i': - case 'k': case 'l': - default: - if (icnt < imax) { - lval[icnt] = G__int(*pval); icnt++; - } else { - u[ucnt].lval = G__int(*pval); ucnt++; - } break; - } - if (ucnt >= 50) printf("EmitVA: more than 56 var args\n"); - } - ((OnlineGUI*) G__getstructoffset())->EmitVA((const char*) G__int(libp->para[0]), (Int_t) G__int(libp->para[1]), dval[0], dval[1], dval[2], dval[3], dval[4], dval[5], dval[6], dval[7], lval[3], lval[4], lval[5], u[0].lval, u[1].lval, u[2].lval, u[3].lval, u[4].lval, u[5].lval, u[6].lval, u[7].lval, u[8].lval, u[9].lval, u[10].lval, u[11].lval, u[12].lval, u[13].lval, u[14].lval, u[15].lval, u[16].lval, u[17].lval, u[18].lval, u[19].lval, u[20].lval, u[21].lval, u[22].lval, u[23].lval, u[24].lval, u[25].lval, u[26].lval, u[27].lval, u[28].lval, u[29].lval, u[30].lval, u[31].lval, u[32].lval, u[33].lval, u[34].lval, u[35].lval, u[36].lval, u[37].lval, u[38].lval, u[39].lval, u[40].lval, u[41].lval, u[42].lval, u[43].lval, u[44].lval, u[45].lval, u[46].lval, u[47].lval, u[48].lval, u[49].lval); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_7(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_8(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (const char*) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_9(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long_t*) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_10(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Double_t) G__double(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_11(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_12(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Long64_t) G__Longlong(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_13(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (ULong64_t) G__ULonglong(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_14(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Bool_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_15(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Char_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_16(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UChar_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_17(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Short_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_18(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UShort_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_19(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Int_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_20(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (UInt_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_21(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (ULong_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_22(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Emit((const char*) G__int(libp->para[0]), (Float_t) G__double(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_23(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Destroyed(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_24(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->ChangedBy((const char*) G__int(libp->para[0])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_25(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->Message((const char*) G__int(libp->para[0])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_26(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - OnlineGUI* p = NULL; - char* gvp = (char*) G__getgvp(); - switch (libp->paran) { - case 3: - //m: 3 - if ((gvp == (char*)G__PVOID) || (gvp == 0)) { - p = new OnlineGUI( -*(OnlineConfig*) libp->para[0].ref, (Bool_t) G__int(libp->para[1]) -, (UInt_t) G__int(libp->para[2])); - } else { - p = new((void*) gvp) OnlineGUI( -*(OnlineConfig*) libp->para[0].ref, (Bool_t) G__int(libp->para[1]) -, (UInt_t) G__int(libp->para[2])); - } - break; - case 2: - //m: 2 - if ((gvp == (char*)G__PVOID) || (gvp == 0)) { - p = new OnlineGUI(*(OnlineConfig*) libp->para[0].ref, (Bool_t) G__int(libp->para[1])); - } else { - p = new((void*) gvp) OnlineGUI(*(OnlineConfig*) libp->para[0].ref, (Bool_t) G__int(libp->para[1])); - } - break; - } - result7->obj.i = (long) p; - result7->ref = (long) p; - G__set_tagnum(result7,G__get_linked_tagnum(&G__onlineDictLN_OnlineGUI)); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_27(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->CreateGUI((TGWindow*) G__int(libp->para[0]), (UInt_t) G__int(libp->para[1]) -, (UInt_t) G__int(libp->para[2])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_28(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->DoDraw(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_29(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->DrawPrev(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_30(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->DrawNext(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_31(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->DoRadio(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_32(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->CheckPageButtons(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_33(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->GetFileObjects((RootFileObject*) G__int(libp->para[0])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_34(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->GetTreeVars((RootFileObject*) G__int(libp->para[0])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_35(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->GetRootTree((RootFileObject*) G__int(libp->para[0])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_36(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 104, (long) ((OnlineGUI*) G__getstructoffset())->GetTreeIndex(*((TString*) G__int(libp->para[0])), (RootFileObject*) G__int(libp->para[1]))); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_37(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 104, (long) ((OnlineGUI*) G__getstructoffset())->GetTreeIndexFromName(*((TString*) G__int(libp->para[0])), (RootFileObject*) G__int(libp->para[1]))); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_38(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - { - drawcommand* pobj; - drawcommand xobj = ((OnlineGUI*) G__getstructoffset())->fileObject2command(*((drawcommand*) G__int(libp->para[0])), (RootFileObject*) G__int(libp->para[1])); - pobj = new drawcommand(xobj); - result7->obj.i = (long) ((void*) pobj); - result7->ref = result7->obj.i; - G__store_tempobject(*result7); - } - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_39(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->TreeDraw(*((drawcommand*) G__int(libp->para[0]))); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_40(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->HistDraw(*((drawcommand*) G__int(libp->para[0]))); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_41(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->MacroDraw(*((drawcommand*) G__int(libp->para[0]))); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_42(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->CanvasDraw(*((drawcommand*) G__int(libp->para[0])), (UInt_t) G__int(libp->para[1])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_43(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->GraphDraw(*((drawcommand*) G__int(libp->para[0]))); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_44(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->DoDrawClear((RootFileObject*) G__int(libp->para[0])); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_45(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->TimerUpdate(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_46(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->BadDraw(*((TString*) G__int(libp->para[0]))); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_47(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->CheckRootFile(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_48(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - G__letint(result7, 105, (long) ((OnlineGUI*) G__getstructoffset())->OpenRootFile()); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_49(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->ObtainRunNumber(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_50(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->PrintToFile(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_51(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->PrintPages(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_52(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->MyCloseWindow(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -static int G__onlineDict_714_0_53(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - ((OnlineGUI*) G__getstructoffset())->CloseGUI(); - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - -// automatic destructor -typedef OnlineGUI G__TOnlineGUI; -static int G__onlineDict_714_0_54(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) -{ - char* gvp = (char*) G__getgvp(); - long soff = G__getstructoffset(); - int n = G__getaryconstruct(); - // - //has_a_delete: 0 - //has_own_delete1arg: 0 - //has_own_delete2arg: 0 - // - if (!soff) { - return(1); - } - if (n) { - if (gvp == (char*)G__PVOID) { - delete[] (OnlineGUI*) soff; - } else { - G__setgvp((long) G__PVOID); - for (int i = n - 1; i >= 0; --i) { - ((OnlineGUI*) (soff+(sizeof(OnlineGUI)*i)))->~G__TOnlineGUI(); - } - G__setgvp((long)gvp); - } - } else { - if (gvp == (char*)G__PVOID) { - delete (OnlineGUI*) soff; - } else { - G__setgvp((long) G__PVOID); - ((OnlineGUI*) (soff))->~G__TOnlineGUI(); - G__setgvp((long)gvp); - } - } - G__setnull(result7); - return(1 || funcname || hash || result7 || libp) ; -} - - -/* Setting up global function */ - -/********************************************************* -* Member function Stub -*********************************************************/ - -/* OnlineConfig */ - -/* OnlineGUI */ - -/********************************************************* -* Global function Stub -*********************************************************/ - -/********************************************************* -* Get size of pointer to member function -*********************************************************/ -class G__Sizep2memfunconlineDict { - public: - G__Sizep2memfunconlineDict(): p(&G__Sizep2memfunconlineDict::sizep2memfunc) {} - size_t sizep2memfunc() { return(sizeof(p)); } - private: - size_t (G__Sizep2memfunconlineDict::*p)(); -}; - -size_t G__get_sizep2memfunconlineDict() -{ - G__Sizep2memfunconlineDict a; - G__setsizep2memfunc((int)a.sizep2memfunc()); - return((size_t)a.sizep2memfunc()); -} - - -/********************************************************* -* virtual base class offset calculation interface -*********************************************************/ - - /* Setting up class inheritance */ - -/********************************************************* -* Inheritance information setup/ -*********************************************************/ -extern "C" void G__cpp_setup_inheritanceonlineDict() { - - /* Setting up class inheritance */ -} - -/********************************************************* -* typedef information setup/ -*********************************************************/ -extern "C" void G__cpp_setup_typetableonlineDict() { - - /* Setting up typedef entry */ - G__search_typename2("Char_t",99,-1,0,-1); - G__setnewtype(-1,"Signed Character 1 byte (char)",0); - G__search_typename2("UChar_t",98,-1,0,-1); - G__setnewtype(-1,"Unsigned Character 1 byte (unsigned char)",0); - G__search_typename2("Short_t",115,-1,0,-1); - G__setnewtype(-1,"Signed Short integer 2 bytes (short)",0); - G__search_typename2("UShort_t",114,-1,0,-1); - G__setnewtype(-1,"Unsigned Short integer 2 bytes (unsigned short)",0); - G__search_typename2("Int_t",105,-1,0,-1); - G__setnewtype(-1,"Signed integer 4 bytes (int)",0); - G__search_typename2("UInt_t",104,-1,0,-1); - G__setnewtype(-1,"Unsigned integer 4 bytes (unsigned int)",0); - G__search_typename2("Long_t",108,-1,0,-1); - G__setnewtype(-1,"Signed long integer 8 bytes (long)",0); - G__search_typename2("ULong_t",107,-1,0,-1); - G__setnewtype(-1,"Unsigned long integer 8 bytes (unsigned long)",0); - G__search_typename2("Float_t",102,-1,0,-1); - G__setnewtype(-1,"Float 4 bytes (float)",0); - G__search_typename2("Double_t",100,-1,0,-1); - G__setnewtype(-1,"Double 8 bytes",0); - G__search_typename2("Bool_t",103,-1,0,-1); - G__setnewtype(-1,"Boolean (0=false, 1=true) (bool)",0); - G__search_typename2("Long64_t",110,-1,0,-1); - G__setnewtype(-1,"Portable signed long integer 8 bytes",0); - G__search_typename2("ULong64_t",109,-1,0,-1); - G__setnewtype(-1,"Portable unsigned long integer 8 bytes",0); - G__search_typename2("vector<ROOT::TSchemaHelper>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<TVirtualArray*>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("iterator<std::bidirectional_iterator_tag,TObject*,std::ptrdiff_t,const TObject**,const TObject*&>",117,G__get_linked_tagnum(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("iterator<bidirectional_iterator_tag,TObject*,std::ptrdiff_t,const TObject**,const TObject*&>",117,G__get_linked_tagnum(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("iterator<bidirectional_iterator_tag,TObject*>",117,G__get_linked_tagnum(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("iterator<bidirectional_iterator_tag,TObject*,long>",117,G__get_linked_tagnum(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("iterator<bidirectional_iterator_tag,TObject*,long,const TObject**>",117,G__get_linked_tagnum(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("map<std::string,TObjArray*>",117,G__get_linked_tagnum(&G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("map<string,TObjArray*>",117,G__get_linked_tagnum(&G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("map<string,TObjArray*>",117,G__get_linked_tagnum(&G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("map<string,TObjArray*,less<string> >",117,G__get_linked_tagnum(&G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("pair<UInt_t,Int_t>",117,G__get_linked_tagnum(&G__onlineDictLN_pairlEunsignedsPintcOintgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<std::pair<UInt_t,Int_t> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<pair<UInt_t,Int_t> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<pair<unsigned int,int> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("TVectorT<Float_t>",117,G__get_linked_tagnum(&G__onlineDictLN_TVectorTlEfloatgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("TVectorT<Double_t>",117,G__get_linked_tagnum(&G__onlineDictLN_TVectorTlEdoublegR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("TMatrixTBase<Float_t>",117,G__get_linked_tagnum(&G__onlineDictLN_TMatrixTBaselEfloatgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("TMatrixTBase<Double_t>",117,G__get_linked_tagnum(&G__onlineDictLN_TMatrixTBaselEdoublegR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<TTree*>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETTreemUcOallocatorlETTreemUgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETTreemUcOallocatorlETTreemUgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<Int_t>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEintcOallocatorlEintgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEintcOallocatorlEintgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<int>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<TString>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETStringcOallocatorlETStringgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETStringcOallocatorlETStringgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<vector<TString> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<vector<TString,allocator<TString> > >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<fileObject>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEfileObjectcOallocatorlEfileObjectgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEfileObjectcOallocatorlEfileObjectgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("pair<UInt_t,UInt_t>",117,G__get_linked_tagnum(&G__onlineDictLN_pairlEunsignedsPintcOunsignedsPintgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<pair<UInt_t,UInt_t> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<pair<unsigned int,unsigned int> >",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<TCut>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETCutcOallocatorlETCutgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__onlineDictLN_reverse_iteratorlEvectorlETCutcOallocatorlETCutgRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR)); - G__setnewtype(-1,NULL,0); - G__search_typename2("vector<UInt_t>",117,G__get_linked_tagnum(&G__onlineDictLN_vectorlEunsignedsPintcOallocatorlEunsignedsPintgRsPgR),0,-1); - G__setnewtype(-1,NULL,0); -} - -/********************************************************* -* Data Member information setup/ -*********************************************************/ - - /* Setting up class,struct,union tag member variable */ - - /* OnlineConfig */ -static void G__setup_memvarOnlineConfig(void) { - G__tag_memvar_setup(G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig)); - { OnlineConfig *p; p=(OnlineConfig*)0x1000; if (p) { } - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TQObjSender),-1,-1,4,"fQObject=",0,(char*)NULL); - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"confFileName=",0,"config filename"); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_basic_ifstreamlEcharcOchar_traitslEchargRsPgR),G__defined_typename("ifstream"),-1,4,"fConfFile=",0,"original config file"); - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR),G__defined_typename("vector<vector<TString> >"),-1,4,"sConfFile=",0,"the config file, in memory"); - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"rootfilename=",0,"Just the name"); - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"goldenrootfilename=",0,"Golden rootfile for comparisons"); - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"protorootfile=",0,"Prototype for getting the rootfilename"); - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"guicolor=",0,"User's choice of background color"); - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TString),-1,-1,4,"plotsdir=",0,"Where to store sample plots.. automatically stored as .jpg's)."); - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR),G__defined_typename("vector<pair<UInt_t,UInt_t> >"),-1,4,"pageInfo=",0,(char*)NULL); - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR),G__defined_typename("vector<TCut>"),-1,4,"cutList=",0,(char*)NULL); - G__memvar_setup((void*)0,103,0,0,-1,G__defined_typename("Bool_t"),-1,4,"fFoundCfg=",0,(char*)NULL); - G__memvar_setup((void*)0,103,0,0,-1,G__defined_typename("Bool_t"),-1,4,"fMonitor=",0,(char*)NULL); - } - G__tag_memvar_reset(); -} - - - /* OnlineGUI */ -static void G__setup_memvarOnlineGUI(void) { - G__tag_memvar_setup(G__get_linked_tagnum(&G__onlineDictLN_OnlineGUI)); - { OnlineGUI *p; p=(OnlineGUI*)0x1000; if (p) { } - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_TQObjSender),-1,-1,4,"fQObject=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGMainFrame),-1,-1,4,"fMain=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGHorizontalFrame),-1,-1,4,"fTopframe=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGVerticalFrame),-1,-1,4,"vframe=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGRadioButton),-1,-1,4,"fRadioPage[50]=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGPictureButton),-1,-1,4,"wile=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TRootEmbeddedCanvas),-1,-1,4,"fEcanvas=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGHorizontalFrame),-1,-1,4,"fBottomFrame=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGHorizontalFrame),-1,-1,4,"hframe=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGTextButton),-1,-1,4,"fNext=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGTextButton),-1,-1,4,"fPrev=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGTextButton),-1,-1,4,"fExit=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGLabel),-1,-1,4,"fRunNumber=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TGTextButton),-1,-1,4,"fPrint=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TCanvas),-1,-1,4,"fCanvas=",0,"Present Embedded canvas"); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig),-1,-1,4,"fConfig=",0,(char*)NULL); - G__memvar_setup((void*)0,104,0,0,-1,G__defined_typename("UInt_t"),-1,4,"current_page=",0,(char*)NULL); - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_RootFileObject),-1,-1,4,"fRootFile=",0,(char*)NULL); - G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__onlineDictLN_RootFileObject),-1,-1,4,"fGoldenFile=",0,(char*)NULL); - G__memvar_setup((void*)0,103,0,0,-1,G__defined_typename("Bool_t"),-1,4,"doGolden=",0,(char*)NULL); - G__memvar_setup((void*)0,104,0,0,-1,G__defined_typename("UInt_t"),-1,4,"runNumber=",0,(char*)NULL); - G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__onlineDictLN_TTimer),-1,-1,4,"timer=",0,(char*)NULL); - G__memvar_setup((void*)0,103,0,0,-1,G__defined_typename("Bool_t"),-1,4,"fPrintOnly=",0,(char*)NULL); - G__memvar_setup((void*)0,103,0,0,-1,G__defined_typename("Bool_t"),-1,4,"fFileAlive=",0,(char*)NULL); - G__memvar_setup((void*)0,108,0,0,-1,-1,-1,4,"G__virtualinfo=",0,(char*)NULL); - } - G__tag_memvar_reset(); -} - -extern "C" void G__cpp_setup_memvaronlineDict() { -} -/*********************************************************** -************************************************************ -************************************************************ -************************************************************ -************************************************************ -************************************************************ -************************************************************ -***********************************************************/ - -/********************************************************* -* Member function information setup for each class -*********************************************************/ -static void G__setup_memfuncOnlineConfig(void) { - /* OnlineConfig */ - G__tag_memfunc_setup(G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig)); - G__memfunc_setup("GetListOfSignals",1602,G__onlineDict_704_0_1, 85, G__get_linked_tagnum(&G__onlineDictLN_TList), -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Connect",714,G__onlineDict_704_0_2, 103, -1, G__defined_typename("Bool_t"), 0, 4, 1, 1, 0, -"C - - 10 - sig C - - 10 - cl " -"Y - - 0 - rcvr C - - 10 - slt", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Disconnect",1034,G__onlineDict_704_0_3, 103, -1, G__defined_typename("Bool_t"), 0, 3, 1, 1, 0, -"C - - 10 '0' sig Y - - 0 '0' rcvr " -"C - - 10 '0' slt", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("HighPriority",1250,G__onlineDict_704_0_4, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal_name C - - 10 '0' slot_name", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("LowPriority",1172,G__onlineDict_704_0_5, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal_name C - - 10 '0' slot_name", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("EmitVA",550,G__onlineDict_704_0_6, 121, -1, -1, 0, 2, 8, 1, 0, -"C - - 10 - signal i - 'Int_t' 0 - nargs", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_7, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - signal", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_8, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal C - - 10 - params", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_9, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal L - 'Long_t' 0 - paramArr", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_10, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal d - 'Double_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_11, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal l - 'Long_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_12, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal n - 'Long64_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_13, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal m - 'ULong64_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_14, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal g - 'Bool_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_15, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal c - 'Char_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_16, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal b - 'UChar_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_17, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal s - 'Short_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_18, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal r - 'UShort_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_19, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal i - 'Int_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_20, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal h - 'UInt_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_21, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal k - 'ULong_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_704_0_22, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal f - 'Float_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Destroyed",947,G__onlineDict_704_0_23, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("ChangedBy",869,G__onlineDict_704_0_24, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - method", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Message",709,G__onlineDict_704_0_25, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - msg", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("ParseFile",891,(G__InterfaceMethod) NULL, 121, -1, -1, 0, 0, 1, 4, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetDrawIndex",1190,(G__InterfaceMethod) NULL, 117, G__get_linked_tagnum(&G__onlineDictLN_vectorlEunsignedsPintcOallocatorlEunsignedsPintgRsPgR), G__defined_typename("vector<UInt_t>"), 0, 1, 1, 4, 0, "h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("ParseForMultiPlots",1855,(G__InterfaceMethod) NULL, 103, -1, G__defined_typename("Bool_t"), 0, 0, 1, 4, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("OnlineConfig",1211,G__onlineDict_704_0_29, 105, G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("OnlineConfig",1211,G__onlineDict_704_0_30, 105, G__get_linked_tagnum(&G__onlineDictLN_OnlineConfig), -1, 0, 1, 1, 1, 0, "u 'TString' - 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("ParseConfig",1105,G__onlineDict_704_0_31, 103, -1, G__defined_typename("Bool_t"), 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetRootFile",1092,G__onlineDict_704_0_32, 117, G__get_linked_tagnum(&G__onlineDictLN_TString), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetGoldenFile",1273,G__onlineDict_704_0_33, 117, G__get_linked_tagnum(&G__onlineDictLN_TString), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetGuiColor",1092,G__onlineDict_704_0_34, 117, G__get_linked_tagnum(&G__onlineDictLN_TString), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetPlotsDir",1105,G__onlineDict_704_0_35, 117, G__get_linked_tagnum(&G__onlineDictLN_TString), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetDefinedCut",1275,G__onlineDict_704_0_36, 117, G__get_linked_tagnum(&G__onlineDictLN_TCut), -1, 0, 1, 1, 1, 0, "u 'TString' - 0 - ident", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetCutIdent",1088,G__onlineDict_704_0_37, 117, G__get_linked_tagnum(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR), G__defined_typename("vector<TString>"), 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetPageCount",1190,G__onlineDict_704_0_38, 104, -1, G__defined_typename("UInt_t"), 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetPageDim",951,G__onlineDict_704_0_39, 117, G__get_linked_tagnum(&G__onlineDictLN_pairlEunsignedsPintcOunsignedsPintgR), G__defined_typename("pair<UInt_t,UInt_t>"), 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("IsLogx",598,G__onlineDict_704_0_40, 103, -1, G__defined_typename("Bool_t"), 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - page", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("IsLogy",599,G__onlineDict_704_0_41, 103, -1, G__defined_typename("Bool_t"), 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - page", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("IsLogz",600,G__onlineDict_704_0_42, 103, -1, G__defined_typename("Bool_t"), 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - page", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetPageTitle",1183,G__onlineDict_704_0_43, 117, G__get_linked_tagnum(&G__onlineDictLN_TString), -1, 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetDrawCount",1207,G__onlineDict_704_0_44, 104, -1, G__defined_typename("UInt_t"), 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - -", "Number of histograms in a page", (void*) NULL, 0); - G__memfunc_setup("GetDrawCommand",1389,G__onlineDict_704_0_45, 117, G__get_linked_tagnum(&G__onlineDictLN_drawcommand), -1, 0, 2, 1, 1, 0, -"h - 'UInt_t' 0 - - h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("SplitString",1155,G__onlineDict_704_0_46, 117, G__get_linked_tagnum(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR), G__defined_typename("vector<TString>"), 0, 2, 1, 1, 0, -"u 'TString' - 0 - - u 'TString' - 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("OverrideRootFile",1636,G__onlineDict_704_0_47, 121, -1, -1, 0, 1, 1, 1, 0, "h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("IsMonitor",932,G__onlineDict_704_0_48, 103, -1, G__defined_typename("Bool_t"), 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - // automatic destructor - G__memfunc_setup("~OnlineConfig", 1337, G__onlineDict_704_0_49, (int) ('y'), -1, -1, 0, 0, 1, 1, 0, "", (char*) NULL, (void*) NULL, 0); - G__tag_memfunc_reset(); -} - -static void G__setup_memfuncOnlineGUI(void) { - /* OnlineGUI */ - G__tag_memfunc_setup(G__get_linked_tagnum(&G__onlineDictLN_OnlineGUI)); - G__memfunc_setup("GetListOfSignals",1602,G__onlineDict_714_0_1, 85, G__get_linked_tagnum(&G__onlineDictLN_TList), -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Connect",714,G__onlineDict_714_0_2, 103, -1, G__defined_typename("Bool_t"), 0, 4, 1, 1, 0, -"C - - 10 - sig C - - 10 - cl " -"Y - - 0 - rcvr C - - 10 - slt", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Disconnect",1034,G__onlineDict_714_0_3, 103, -1, G__defined_typename("Bool_t"), 0, 3, 1, 1, 0, -"C - - 10 '0' sig Y - - 0 '0' rcvr " -"C - - 10 '0' slt", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("HighPriority",1250,G__onlineDict_714_0_4, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal_name C - - 10 '0' slot_name", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("LowPriority",1172,G__onlineDict_714_0_5, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal_name C - - 10 '0' slot_name", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("EmitVA",550,G__onlineDict_714_0_6, 121, -1, -1, 0, 2, 8, 1, 0, -"C - - 10 - signal i - 'Int_t' 0 - nargs", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_7, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - signal", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_8, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal C - - 10 - params", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_9, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal L - 'Long_t' 0 - paramArr", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_10, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal d - 'Double_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_11, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal l - 'Long_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_12, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal n - 'Long64_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_13, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal m - 'ULong64_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_14, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal g - 'Bool_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_15, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal c - 'Char_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_16, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal b - 'UChar_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_17, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal s - 'Short_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_18, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal r - 'UShort_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_19, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal i - 'Int_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_20, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal h - 'UInt_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_21, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal k - 'ULong_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Emit",399,G__onlineDict_714_0_22, 121, -1, -1, 0, 2, 1, 1, 0, -"C - - 10 - signal f - 'Float_t' 0 - param", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Destroyed",947,G__onlineDict_714_0_23, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("ChangedBy",869,G__onlineDict_714_0_24, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - method", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("Message",709,G__onlineDict_714_0_25, 121, -1, -1, 0, 1, 1, 1, 0, "C - - 10 - msg", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("OnlineGUI",842,G__onlineDict_714_0_26, 105, G__get_linked_tagnum(&G__onlineDictLN_OnlineGUI), -1, 0, 3, 1, 1, 0, -"u 'OnlineConfig' - 1 - - g - 'Bool_t' 0 - - " -"h - 'UInt_t' 0 '0' RunNum", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("CreateGUI",825,G__onlineDict_714_0_27, 121, -1, -1, 0, 3, 1, 1, 0, -"U 'TGWindow' - 10 - p h - 'UInt_t' 0 - w " -"h - 'UInt_t' 0 - h", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("DoDraw",577,G__onlineDict_714_0_28, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("DrawPrev",811,G__onlineDict_714_0_29, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("DrawNext",813,G__onlineDict_714_0_30, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("DoRadio",674,G__onlineDict_714_0_31, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("CheckPageButtons",1610,G__onlineDict_714_0_32, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetFileObjects",1386,G__onlineDict_714_0_33, 121, -1, -1, 0, 1, 1, 1, 0, "U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetTreeVars",1100,G__onlineDict_714_0_34, 121, -1, -1, 0, 1, 1, 1, 0, "U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetRootTree",1108,G__onlineDict_714_0_35, 121, -1, -1, 0, 1, 1, 1, 0, "U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetTreeIndex",1192,G__onlineDict_714_0_36, 104, -1, G__defined_typename("UInt_t"), 0, 2, 1, 1, 0, -"u 'TString' - 0 - - U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GetTreeIndexFromName",1981,G__onlineDict_714_0_37, 104, -1, G__defined_typename("UInt_t"), 0, 2, 1, 1, 0, -"u 'TString' - 0 - - U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("fileObject2command",1800,G__onlineDict_714_0_38, 117, G__get_linked_tagnum(&G__onlineDictLN_drawcommand), -1, 0, 2, 1, 1, 0, -"u 'drawcommand' - 0 - - U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("TreeDraw",798,G__onlineDict_714_0_39, 121, -1, -1, 0, 1, 1, 1, 0, "u 'drawcommand' - 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("HistDraw",806,G__onlineDict_714_0_40, 121, -1, -1, 0, 1, 1, 1, 0, "u 'drawcommand' - 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("MacroDraw",896,G__onlineDict_714_0_41, 121, -1, -1, 0, 1, 1, 1, 0, "u 'drawcommand' - 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("CanvasDraw",1002,G__onlineDict_714_0_42, 121, -1, -1, 0, 2, 1, 1, 0, -"u 'drawcommand' - 0 - - h - 'UInt_t' 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("GraphDraw",896,G__onlineDict_714_0_43, 121, -1, -1, 0, 1, 1, 1, 0, "u 'drawcommand' - 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("DoDrawClear",1064,G__onlineDict_714_0_44, 121, -1, -1, 0, 1, 1, 1, 0, "U 'RootFileObject' - 0 - r", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("TimerUpdate",1124,G__onlineDict_714_0_45, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("BadDraw",661,G__onlineDict_714_0_46, 121, -1, -1, 0, 1, 1, 1, 0, "u 'TString' - 0 - -", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("CheckRootFile",1282,G__onlineDict_714_0_47, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("OpenRootFile",1206,G__onlineDict_714_0_48, 105, -1, G__defined_typename("Int_t"), 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("ObtainRunNumber",1531,G__onlineDict_714_0_49, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("PrintToFile",1104,G__onlineDict_714_0_50, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("PrintPages",1021,G__onlineDict_714_0_51, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("MyCloseWindow",1332,G__onlineDict_714_0_52, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - G__memfunc_setup("CloseGUI",731,G__onlineDict_714_0_53, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0); - // automatic destructor - G__memfunc_setup("~OnlineGUI", 968, G__onlineDict_714_0_54, (int) ('y'), -1, -1, 0, 0, 1, 1, 0, "", (char*) NULL, (void*) NULL, 1); - G__tag_memfunc_reset(); -} - - -/********************************************************* -* Member function information setup -*********************************************************/ -extern "C" void G__cpp_setup_memfunconlineDict() { -} - -/********************************************************* -* Global variable information setup for each class -*********************************************************/ -static void G__cpp_setup_global0() { - - /* Setting up global variables */ - G__resetplocal(); - -} - -static void G__cpp_setup_global1() { -} - -static void G__cpp_setup_global2() { -} - -static void G__cpp_setup_global3() { -} - -static void G__cpp_setup_global4() { -} - -static void G__cpp_setup_global5() { - - G__resetglobalenv(); -} -extern "C" void G__cpp_setup_globalonlineDict() { - G__cpp_setup_global0(); - G__cpp_setup_global1(); - G__cpp_setup_global2(); - G__cpp_setup_global3(); - G__cpp_setup_global4(); - G__cpp_setup_global5(); -} - -/********************************************************* -* Global function information setup for each class -*********************************************************/ -static void G__cpp_setup_func0() { - G__lastifuncposition(); - -} - -static void G__cpp_setup_func1() { -} - -static void G__cpp_setup_func2() { -} - -static void G__cpp_setup_func3() { -} - -static void G__cpp_setup_func4() { -} - -static void G__cpp_setup_func5() { -} - -static void G__cpp_setup_func6() { -} - -static void G__cpp_setup_func7() { -} - -static void G__cpp_setup_func8() { -} - -static void G__cpp_setup_func9() { -} - -static void G__cpp_setup_func10() { -} - -static void G__cpp_setup_func11() { -} - -static void G__cpp_setup_func12() { -} - -static void G__cpp_setup_func13() { -} - -static void G__cpp_setup_func14() { -} - -static void G__cpp_setup_func15() { -} - -static void G__cpp_setup_func16() { -} - -static void G__cpp_setup_func17() { -} - -static void G__cpp_setup_func18() { -} - -static void G__cpp_setup_func19() { -} - -static void G__cpp_setup_func20() { -} - -static void G__cpp_setup_func21() { -} - -static void G__cpp_setup_func22() { -} - -static void G__cpp_setup_func23() { -} - -static void G__cpp_setup_func24() { -} - -static void G__cpp_setup_func25() { -} - -static void G__cpp_setup_func26() { -} - -static void G__cpp_setup_func27() { -} - -static void G__cpp_setup_func28() { -} - -static void G__cpp_setup_func29() { -} - -static void G__cpp_setup_func30() { -} - -static void G__cpp_setup_func31() { -} - -static void G__cpp_setup_func32() { -} - -static void G__cpp_setup_func33() { - - G__resetifuncposition(); -} - -extern "C" void G__cpp_setup_funconlineDict() { - G__cpp_setup_func0(); - G__cpp_setup_func1(); - G__cpp_setup_func2(); - G__cpp_setup_func3(); - G__cpp_setup_func4(); - G__cpp_setup_func5(); - G__cpp_setup_func6(); - G__cpp_setup_func7(); - G__cpp_setup_func8(); - G__cpp_setup_func9(); - G__cpp_setup_func10(); - G__cpp_setup_func11(); - G__cpp_setup_func12(); - G__cpp_setup_func13(); - G__cpp_setup_func14(); - G__cpp_setup_func15(); - G__cpp_setup_func16(); - G__cpp_setup_func17(); - G__cpp_setup_func18(); - G__cpp_setup_func19(); - G__cpp_setup_func20(); - G__cpp_setup_func21(); - G__cpp_setup_func22(); - G__cpp_setup_func23(); - G__cpp_setup_func24(); - G__cpp_setup_func25(); - G__cpp_setup_func26(); - G__cpp_setup_func27(); - G__cpp_setup_func28(); - G__cpp_setup_func29(); - G__cpp_setup_func30(); - G__cpp_setup_func31(); - G__cpp_setup_func32(); - G__cpp_setup_func33(); -} - -/********************************************************* -* Class,struct,union,enum tag information setup -*********************************************************/ -/* Setup class/struct taginfo */ -G__linked_taginfo G__onlineDictLN_TString = { "TString" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_vectorlEunsignedsPintcOallocatorlEunsignedsPintgRsPgR = { "vector<unsigned int,allocator<unsigned int> >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_basic_ifstreamlEcharcOchar_traitslEchargRsPgR = { "basic_ifstream<char,char_traits<char> >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR = { "vector<ROOT::TSchemaHelper,allocator<ROOT::TSchemaHelper> >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR = { "reverse_iterator<vector<ROOT::TSchemaHelper,allocator<ROOT::TSchemaHelper> >::iterator>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TList = { "TList" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TTimer = { "TTimer" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR = { "vector<TVirtualArray*,allocator<TVirtualArray*> >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<TVirtualArray*,allocator<TVirtualArray*> >::iterator>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR = { "iterator<bidirectional_iterator_tag,TObject*,long,const TObject**,const TObject*&>" , 115 , -1 }; -G__linked_taginfo G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR = { "map<string,TObjArray*,less<string>,allocator<pair<const string,TObjArray*> > >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TCut = { "TCut" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TQObjSender = { "TQObjSender" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TGWindow = { "TGWindow" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_pairlEunsignedsPintcOintgR = { "pair<unsigned int,int>" , 115 , -1 }; -G__linked_taginfo G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR = { "vector<pair<unsigned int,int>,allocator<pair<unsigned int,int> > >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<pair<unsigned int,int>,allocator<pair<unsigned int,int> > >::iterator>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TGTextButton = { "TGTextButton" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TGVerticalFrame = { "TGVerticalFrame" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TGHorizontalFrame = { "TGHorizontalFrame" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TGMainFrame = { "TGMainFrame" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TGPictureButton = { "TGPictureButton" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TGRadioButton = { "TGRadioButton" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TCanvas = { "TCanvas" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TRootEmbeddedCanvas = { "TRootEmbeddedCanvas" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TGLabel = { "TGLabel" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TVectorTlEfloatgR = { "TVectorT<float>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TVectorTlEdoublegR = { "TVectorT<double>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TMatrixTBaselEfloatgR = { "TMatrixTBase<float>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_TMatrixTBaselEdoublegR = { "TMatrixTBase<double>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_RootFileObject = { "RootFileObject" , 115 , -1 }; -G__linked_taginfo G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR = { "vector<TTree*,allocator<TTree*> >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlETTreemUcOallocatorlETTreemUgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<TTree*,allocator<TTree*> >::iterator>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR = { "vector<int,allocator<int> >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEintcOallocatorlEintgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<int,allocator<int> >::iterator>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR = { "vector<TString,allocator<TString> >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlETStringcOallocatorlETStringgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<TString,allocator<TString> >::iterator>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR = { "vector<vector<TString,allocator<TString> >,allocator<vector<TString,allocator<TString> > > >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<vector<TString,allocator<TString> >,allocator<vector<TString,allocator<TString> > > >::iterator>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR = { "vector<fileObject,allocator<fileObject> >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEfileObjectcOallocatorlEfileObjectgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<fileObject,allocator<fileObject> >::iterator>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_drawcommand = { "drawcommand" , 115 , -1 }; -G__linked_taginfo G__onlineDictLN_OnlineConfig = { "OnlineConfig" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_pairlEunsignedsPintcOunsignedsPintgR = { "pair<unsigned int,unsigned int>" , 115 , -1 }; -G__linked_taginfo G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR = { "vector<pair<unsigned int,unsigned int>,allocator<pair<unsigned int,unsigned int> > >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<pair<unsigned int,unsigned int>,allocator<pair<unsigned int,unsigned int> > >::iterator>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR = { "vector<TCut,allocator<TCut> >" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_reverse_iteratorlEvectorlETCutcOallocatorlETCutgRsPgRcLcLiteratorgR = { "reverse_iterator<vector<TCut,allocator<TCut> >::iterator>" , 99 , -1 }; -G__linked_taginfo G__onlineDictLN_OnlineGUI = { "OnlineGUI" , 99 , -1 }; - -/* Reset class/struct taginfo */ -extern "C" void G__cpp_reset_tagtableonlineDict() { - G__onlineDictLN_TString.tagnum = -1 ; - G__onlineDictLN_vectorlEunsignedsPintcOallocatorlEunsignedsPintgRsPgR.tagnum = -1 ; - G__onlineDictLN_basic_ifstreamlEcharcOchar_traitslEchargRsPgR.tagnum = -1 ; - G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR.tagnum = -1 ; - G__onlineDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR.tagnum = -1 ; - G__onlineDictLN_TList.tagnum = -1 ; - G__onlineDictLN_TTimer.tagnum = -1 ; - G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR.tagnum = -1 ; - G__onlineDictLN_reverse_iteratorlEvectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgRcLcLiteratorgR.tagnum = -1 ; - G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR.tagnum = -1 ; - G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR.tagnum = -1 ; - G__onlineDictLN_TCut.tagnum = -1 ; - G__onlineDictLN_TQObjSender.tagnum = -1 ; - G__onlineDictLN_TGWindow.tagnum = -1 ; - G__onlineDictLN_pairlEunsignedsPintcOintgR.tagnum = -1 ; - G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR.tagnum = -1 ; - G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgRcLcLiteratorgR.tagnum = -1 ; - G__onlineDictLN_TGTextButton.tagnum = -1 ; - G__onlineDictLN_TGVerticalFrame.tagnum = -1 ; - G__onlineDictLN_TGHorizontalFrame.tagnum = -1 ; - G__onlineDictLN_TGMainFrame.tagnum = -1 ; - G__onlineDictLN_TGPictureButton.tagnum = -1 ; - G__onlineDictLN_TGRadioButton.tagnum = -1 ; - G__onlineDictLN_TCanvas.tagnum = -1 ; - G__onlineDictLN_TRootEmbeddedCanvas.tagnum = -1 ; - G__onlineDictLN_TGLabel.tagnum = -1 ; - G__onlineDictLN_TVectorTlEfloatgR.tagnum = -1 ; - G__onlineDictLN_TVectorTlEdoublegR.tagnum = -1 ; - G__onlineDictLN_TMatrixTBaselEfloatgR.tagnum = -1 ; - G__onlineDictLN_TMatrixTBaselEdoublegR.tagnum = -1 ; - G__onlineDictLN_RootFileObject.tagnum = -1 ; - G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR.tagnum = -1 ; - G__onlineDictLN_reverse_iteratorlEvectorlETTreemUcOallocatorlETTreemUgRsPgRcLcLiteratorgR.tagnum = -1 ; - G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR.tagnum = -1 ; - G__onlineDictLN_reverse_iteratorlEvectorlEintcOallocatorlEintgRsPgRcLcLiteratorgR.tagnum = -1 ; - G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR.tagnum = -1 ; - G__onlineDictLN_reverse_iteratorlEvectorlETStringcOallocatorlETStringgRsPgRcLcLiteratorgR.tagnum = -1 ; - G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR.tagnum = -1 ; - G__onlineDictLN_reverse_iteratorlEvectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgRcLcLiteratorgR.tagnum = -1 ; - G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR.tagnum = -1 ; - G__onlineDictLN_reverse_iteratorlEvectorlEfileObjectcOallocatorlEfileObjectgRsPgRcLcLiteratorgR.tagnum = -1 ; - G__onlineDictLN_drawcommand.tagnum = -1 ; - G__onlineDictLN_OnlineConfig.tagnum = -1 ; - G__onlineDictLN_pairlEunsignedsPintcOunsignedsPintgR.tagnum = -1 ; - G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR.tagnum = -1 ; - G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgRcLcLiteratorgR.tagnum = -1 ; - G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR.tagnum = -1 ; - G__onlineDictLN_reverse_iteratorlEvectorlETCutcOallocatorlETCutgRsPgRcLcLiteratorgR.tagnum = -1 ; - G__onlineDictLN_OnlineGUI.tagnum = -1 ; -} - - -extern "C" void G__cpp_setup_tagtableonlineDict() { - - /* Setting up class,struct,union tag entry */ - G__get_linked_tagnum_fwd(&G__onlineDictLN_TString); - G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEunsignedsPintcOallocatorlEunsignedsPintgRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_basic_ifstreamlEcharcOchar_traitslEchargRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TList); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TTimer); - G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgRcLcLiteratorgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_maplEstringcOTObjArraymUcOlesslEstringgRcOallocatorlEpairlEconstsPstringcOTObjArraymUgRsPgRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TCut); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TQObjSender); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TGWindow); - G__get_linked_tagnum_fwd(&G__onlineDictLN_pairlEunsignedsPintcOintgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOintgRcOallocatorlEpairlEunsignedsPintcOintgRsPgRsPgRcLcLiteratorgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TGTextButton); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TGVerticalFrame); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TGHorizontalFrame); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TGMainFrame); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TGPictureButton); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TGRadioButton); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TCanvas); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TRootEmbeddedCanvas); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TGLabel); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TVectorTlEfloatgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TVectorTlEdoublegR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TMatrixTBaselEfloatgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_TMatrixTBaselEdoublegR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_RootFileObject); - G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlETTreemUcOallocatorlETTreemUgRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlETTreemUcOallocatorlETTreemUgRsPgRcLcLiteratorgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEintcOallocatorlEintgRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEintcOallocatorlEintgRsPgRcLcLiteratorgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlETStringcOallocatorlETStringgRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlETStringcOallocatorlETStringgRsPgRcLcLiteratorgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEvectorlETStringcOallocatorlETStringgRsPgRcOallocatorlEvectorlETStringcOallocatorlETStringgRsPgRsPgRsPgRcLcLiteratorgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEfileObjectcOallocatorlEfileObjectgRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEfileObjectcOallocatorlEfileObjectgRsPgRcLcLiteratorgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_drawcommand); - G__tagtable_setup(G__get_linked_tagnum_fwd(&G__onlineDictLN_OnlineConfig),sizeof(OnlineConfig),-1,33024,(char*)NULL,G__setup_memvarOnlineConfig,G__setup_memfuncOnlineConfig); - G__get_linked_tagnum_fwd(&G__onlineDictLN_pairlEunsignedsPintcOunsignedsPintgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlEpairlEunsignedsPintcOunsignedsPintgRcOallocatorlEpairlEunsignedsPintcOunsignedsPintgRsPgRsPgRcLcLiteratorgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_vectorlETCutcOallocatorlETCutgRsPgR); - G__get_linked_tagnum_fwd(&G__onlineDictLN_reverse_iteratorlEvectorlETCutcOallocatorlETCutgRsPgRcLcLiteratorgR); - G__tagtable_setup(G__get_linked_tagnum_fwd(&G__onlineDictLN_OnlineGUI),sizeof(OnlineGUI),-1,33792,(char*)NULL,G__setup_memvarOnlineGUI,G__setup_memfuncOnlineGUI); -} -extern "C" void G__cpp_setuponlineDict(void) { - G__check_setup_version(30051515,"G__cpp_setuponlineDict()"); - G__set_cpp_environmentonlineDict(); - G__cpp_setup_tagtableonlineDict(); - - G__cpp_setup_inheritanceonlineDict(); - - G__cpp_setup_typetableonlineDict(); - - G__cpp_setup_memvaronlineDict(); - - G__cpp_setup_memfunconlineDict(); - G__cpp_setup_globalonlineDict(); - G__cpp_setup_funconlineDict(); - - if(0==G__getsizep2memfunc()) G__get_sizep2memfunconlineDict(); - return; -} -class G__cpp_setup_initonlineDict { - public: - G__cpp_setup_initonlineDict() { G__add_setup_func("onlineDict",(G__incsetup)(&G__cpp_setuponlineDict)); G__call_setup_funcs(); } - ~G__cpp_setup_initonlineDict() { G__remove_setup_func("onlineDict"); } -}; -G__cpp_setup_initonlineDict G__cpp_setup_initializeronlineDict; - -- GitLab