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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𝔥 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 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