From b57558e4ae96a70dad84ab73bba501ffd70c2f9c Mon Sep 17 00:00:00 2001 From: Hall C Online Analyzer User <brad.hallc-online@swatter.net> Date: Wed, 24 Jan 2018 16:54:42 -0500 Subject: [PATCH] Spring 2018 ver7 (#368) * Update scaler maps * Update singles and coin report files * Update hodo calib * Add Dipankgar's monitoring scripts --- MAPS/SCALERS/db_HScalevt.dat | 138 +++++---- MAPS/SCALERS/db_PScalevt.dat | 146 +++++---- MAPS/SCALERS/scaler.map | 50 ++- PARAM/SHMS/HODO/CALIB/phodo_calib.param | 178 +++++++++++ SCRIPTS/COIN/MONITOR/Bean_counter.C | 254 ++++++++++++++++ SCRIPTS/COIN/MONITOR/Bean_counter_carbon.C | 230 ++++++++++++++ SCRIPTS/COIN/MONITOR/coin_histo.C | 119 ++++++++ SCRIPTS/COIN/MONITOR/coin_yield.root | Bin 0 -> 6904 bytes SCRIPTS/COIN/MONITOR/temp.sh | 13 + SCRIPTS/COIN/MONITOR/yield.README | 11 + SCRIPTS/COIN/MONITOR/yield_calc.C | 125 ++++++++ SCRIPTS/COIN/MONITOR/yield_graph.C | 50 +++ TEMPLATES/COIN/SCALERS/coinscalers.template | 319 +++++++++++++++----- TEMPLATES/HMS/SCALERS/hscalers.template | 46 ++- TEMPLATES/SHMS/SCALERS/pscalers.template | 50 ++- 15 files changed, 1512 insertions(+), 217 deletions(-) create mode 100644 SCRIPTS/COIN/MONITOR/Bean_counter.C create mode 100644 SCRIPTS/COIN/MONITOR/Bean_counter_carbon.C create mode 100644 SCRIPTS/COIN/MONITOR/coin_histo.C create mode 100644 SCRIPTS/COIN/MONITOR/coin_yield.root create mode 100755 SCRIPTS/COIN/MONITOR/temp.sh create mode 100644 SCRIPTS/COIN/MONITOR/yield.README create mode 100644 SCRIPTS/COIN/MONITOR/yield_calc.C create mode 100644 SCRIPTS/COIN/MONITOR/yield_graph.C diff --git a/MAPS/SCALERS/db_HScalevt.dat b/MAPS/SCALERS/db_HScalevt.dat index 46a9ff16..8df635f6 100644 --- a/MAPS/SCALERS/db_HScalevt.dat +++ b/MAPS/SCALERS/db_HScalevt.dat @@ -93,6 +93,8 @@ variable 2 5 1 .hod.2x4.posScaler HMS 2X+ paddle 4 variable 2 5 2 .hod.2x4.posScalerRate HMS 2X+ paddle 4 variable 5 26 1 .hEL_LO.scaler HMS EL_LO variable 5 26 2 .hEL_LO.scalerRate HMS EL_LO +variable 4 7 1 .pTRIG1_CP.scaler pTRIG1 Copy +variable 4 7 2 .pTRIG1_CP.scalerRate pTRIG1 Copy variable 6 25 1 .BCM4A.scaler BCM4a variable 6 25 2 .BCM4A.scalerRate BCM4a variable 6 25 3 .BCM4A.scalerCurrent BCM4a @@ -104,6 +106,26 @@ variable 6 26 4 .BCM4B.scalerCharge BCM4b variable 6 31 1 .1Mhz.scaler 1MHz variable 6 31 2 .1Mhz.scalerRate 1MHz variable 6 31 5 .1Mhz.scalerTime 1MHz +variable 6 21 1 .Empty_58.scaler Empty +variable 6 21 2 .Empty_58.scalerRate Empty +variable 6 22 1 .Empty_59.scaler Empty +variable 6 22 2 .Empty_59.scalerRate Empty +variable 6 17 1 .Empty_54.scaler Empty +variable 6 17 2 .Empty_54.scalerRate Empty +variable 6 18 1 .Empty_55.scaler Empty +variable 6 18 2 .Empty_55.scalerRate Empty +variable 6 19 1 .Empty_56.scaler Empty +variable 6 19 2 .Empty_56.scalerRate Empty +variable 6 20 1 .Empty_57.scaler Empty +variable 6 20 2 .Empty_57.scalerRate Empty +variable 5 23 1 .Empty_50.scaler Empty +variable 5 23 2 .Empty_50.scalerRate Empty +variable 5 30 1 .Empty_51.scaler Empty +variable 5 30 2 .Empty_51.scalerRate Empty +variable 5 31 1 .Empty_52.scaler Empty +variable 5 31 2 .Empty_52.scalerRate Empty +variable 6 16 1 .Empty_53.scaler Empty +variable 6 16 2 .Empty_53.scalerRate Empty variable 1 1 1 .hod.1y3.posScaler HMS 1Y+ paddle 3 variable 1 1 2 .hod.1y3.posScalerRate HMS 1Y+ paddle 3 variable 1 17 1 .hod.1y3.negScaler HMS 1Y- paddle 3 @@ -112,10 +134,10 @@ variable 0 8 1 .hod.1x9.posScaler HMS 1X+ paddle 9 variable 0 8 2 .hod.1x9.posScalerRate HMS 1X+ paddle 9 variable 0 24 1 .hod.1x9.negScaler HMS 1X- paddle 9 variable 0 24 2 .hod.1x9.negScalerRate HMS 1X- paddle 9 -variable 4 12 1 .Empty_29.scaler Empty -variable 4 12 2 .Empty_29.scalerRate Empty -variable 4 7 1 .Empty_28.scaler Empty -variable 4 7 2 .Empty_28.scalerRate Empty +variable 4 15 1 .Empty_29.scaler Empty +variable 4 15 2 .Empty_29.scalerRate Empty +variable 4 14 1 .Empty_28.scaler Empty +variable 4 14 2 .Empty_28.scalerRate Empty variable 2 27 1 .hod.2x15.negScaler HMS 2X- paddle 15 variable 2 27 2 .hod.2x15.negScalerRate HMS 2X- paddle 15 variable 3 26 1 .Empty_20.scaler Empty @@ -130,8 +152,8 @@ variable 3 31 1 .Empty_24.scaler Empty variable 3 31 2 .Empty_24.scalerRate Empty variable 2 11 1 .hod.2x15.posScaler HMS 2X+ paddle 15 variable 2 11 2 .hod.2x15.posScalerRate HMS 2X+ paddle 15 -variable 4 5 1 .Empty_26.scaler Empty -variable 4 5 2 .Empty_26.scalerRate Empty +variable 4 12 1 .Empty_26.scaler Empty +variable 4 12 2 .Empty_26.scalerRate Empty variable 5 28 1 .hEL_REAL.scaler HMS EL_REAL variable 5 28 2 .hEL_REAL.scalerRate HMS EL_REAL variable 3 21 1 .hod.2y4.negScaler HMS 2Y- paddle 4 @@ -154,8 +176,6 @@ variable 2 1 1 .hod.2x3.posScaler HMS 2X+ paddle 3 variable 2 1 2 .hod.2x3.posScalerRate HMS 2X+ paddle 3 variable 4 9 1 .hPRE100.scaler HMS PRE100 variable 4 9 2 .hPRE100.scalerRate HMS PRE100 -variable 4 16 1 .hL1ACCP.scaler HMS L1 Accept -variable 4 16 2 .hL1ACCP.scalerRate HMS L1 Accept variable 0 5 1 .hod.1x4.posScaler HMS 1X+ paddle 4 variable 0 5 2 .hod.1x4.posScalerRate HMS 1X+ paddle 4 variable 5 20 1 .pEL_REAL.scaler SHMS EL_REAL @@ -164,6 +184,10 @@ variable 1 24 1 .hod.1y9.negScaler HMS 1Y- paddle 9 variable 1 24 2 .hod.1y9.negScalerRate HMS 1Y- paddle 9 variable 1 8 1 .hod.1y9.posScaler HMS 1Y+ paddle 9 variable 1 8 2 .hod.1y9.posScalerRate HMS 1Y+ paddle 9 +variable 6 24 1 .Empty_61.scaler Empty +variable 6 24 2 .Empty_61.scalerRate Empty +variable 6 23 1 .Empty_60.scaler Empty +variable 6 23 2 .Empty_60.scalerRate Empty variable 6 7 1 .ASUM.scaler HMS ASUM variable 6 7 2 .ASUM.scalerRate HMS ASUM variable 1 6 1 .hod.1y6.posScaler HMS 1Y+ paddle 6 @@ -208,6 +232,8 @@ variable 5 12 1 .hTRIG3.scaler HMS TRIG3 variable 5 12 2 .hTRIG3.scalerRate HMS TRIG3 variable 5 11 1 .hTRIG2.scaler HMS TRIG2 variable 5 11 2 .hTRIG2.scalerRate HMS TRIG2 +variable 6 4 1 .S1XS1Y.scaler HMS S1T +variable 6 4 2 .S1XS1Y.scalerRate HMS S1T variable 0 12 1 .hod.1x10.posScaler HMS 1X+ paddle 10 variable 0 12 2 .hod.1x10.posScalerRate HMS 1X+ paddle 10 variable 0 28 1 .hod.1x10.negScaler HMS 1X- paddle 10 @@ -236,26 +262,26 @@ variable 1 20 1 .hod.1y2.negScaler HMS 1Y- paddle 2 variable 1 20 2 .hod.1y2.negScalerRate HMS 1Y- paddle 2 variable 1 4 1 .hod.1y2.posScaler HMS 1Y+ paddle 2 variable 1 4 2 .hod.1y2.posScalerRate HMS 1Y+ paddle 2 -variable 5 23 1 .Empty_38.scaler Empty -variable 5 23 2 .Empty_38.scalerRate Empty -variable 5 30 1 .Empty_39.scaler Empty -variable 5 30 2 .Empty_39.scalerRate Empty -variable 4 15 1 .Empty_32.scaler Empty -variable 4 15 2 .Empty_32.scalerRate Empty -variable 5 6 1 .Empty_33.scaler Empty -variable 5 6 2 .Empty_33.scalerRate Empty -variable 4 13 1 .Empty_30.scaler Empty -variable 4 13 2 .Empty_30.scalerRate Empty -variable 4 14 1 .Empty_31.scaler Empty -variable 4 14 2 .Empty_31.scalerRate Empty -variable 5 9 1 .Empty_36.scaler Empty -variable 5 9 2 .Empty_36.scalerRate Empty -variable 5 22 1 .Empty_37.scaler Empty -variable 5 22 2 .Empty_37.scalerRate Empty -variable 5 7 1 .Empty_34.scaler Empty -variable 5 7 2 .Empty_34.scalerRate Empty -variable 5 8 1 .Empty_35.scaler Empty -variable 5 8 2 .Empty_35.scalerRate Empty +variable 4 25 1 .Empty_38.scaler Empty +variable 4 25 2 .Empty_38.scalerRate Empty +variable 4 26 1 .Empty_39.scaler Empty +variable 4 26 2 .Empty_39.scalerRate Empty +variable 4 19 1 .Empty_32.scaler Empty +variable 4 19 2 .Empty_32.scalerRate Empty +variable 4 20 1 .Empty_33.scaler Empty +variable 4 20 2 .Empty_33.scalerRate Empty +variable 4 17 1 .Empty_30.scaler Empty +variable 4 17 2 .Empty_30.scalerRate Empty +variable 4 18 1 .Empty_31.scaler Empty +variable 4 18 2 .Empty_31.scalerRate Empty +variable 4 23 1 .Empty_36.scaler Empty +variable 4 23 2 .Empty_36.scalerRate Empty +variable 4 24 1 .Empty_37.scaler Empty +variable 4 24 2 .Empty_37.scalerRate Empty +variable 4 21 1 .Empty_34.scaler Empty +variable 4 21 2 .Empty_34.scalerRate Empty +variable 4 22 1 .Empty_35.scaler Empty +variable 4 22 2 .Empty_35.scalerRate Empty variable 0 0 1 .hod.1x1.posScaler HMS 1X+ paddle 1 variable 0 0 2 .hod.1x1.posScalerRate HMS 1X+ paddle 1 variable 0 16 1 .hod.1x1.negScaler HMS 1X- paddle 1 @@ -274,8 +300,8 @@ variable 2 31 1 .hod.2x16.negScaler HMS 2X- paddle 16 variable 2 31 2 .hod.2x16.negScalerRate HMS 2X- paddle 16 variable 4 11 1 .hPRE200.scaler HMS PRE200 variable 4 11 2 .hPRE200.scalerRate HMS PRE200 -variable 4 6 1 .Empty_27.scaler Empty -variable 4 6 2 .Empty_27.scalerRate Empty +variable 4 13 1 .Empty_27.scaler Empty +variable 4 13 2 .Empty_27.scalerRate Empty variable 0 30 1 .hod.1x14.negScaler HMS 1X- paddle 14 variable 0 30 2 .hod.1x14.negScalerRate HMS 1X- paddle 14 variable 0 14 1 .hod.1x14.posScaler HMS 1X+ paddle 14 @@ -284,18 +310,20 @@ variable 2 4 1 .hod.2x2.posScaler HMS 2X+ paddle 2 variable 2 4 2 .hod.2x2.posScalerRate HMS 2X+ paddle 2 variable 2 20 1 .hod.2x2.negScaler HMS 2X- paddle 2 variable 2 20 2 .hod.2x2.negScalerRate HMS 2X- paddle 2 +variable 4 16 1 .hL1ACCP.scaler HMS L1 Accept +variable 4 16 2 .hL1ACCP.scalerRate HMS L1 Accept variable 6 29 1 .BCM17.scaler BCM17 variable 6 29 2 .BCM17.scalerRate BCM17 variable 6 29 3 .BCM17.scalerCurrent BCM17 variable 6 29 4 .BCM17.scalerCharge BCM17 -variable 6 18 1 .Empty_43.scaler Empty -variable 6 18 2 .Empty_43.scalerRate Empty +variable 5 24 1 .hSTOF.scaler HMS STOF +variable 5 24 2 .hSTOF.scalerRate HMS STOF variable 1 23 1 .hod.1y8.negScaler HMS 1Y- paddle 8 variable 1 23 2 .hod.1y8.negScalerRate HMS 1Y- paddle 8 variable 1 7 1 .hod.1y8.posScaler HMS 1Y+ paddle 8 variable 1 7 2 .hod.1y8.posScalerRate HMS 1Y+ paddle 8 -variable 6 4 1 .S1XS1Y.scaler HMS S1T -variable 6 4 2 .S1XS1Y.scalerRate HMS S1T +variable 5 6 1 .Empty_45.scaler Empty +variable 5 6 2 .Empty_45.scalerRate Empty variable 0 4 1 .hod.1x2.posScaler HMS 1X+ paddle 2 variable 0 4 2 .hod.1x2.posScalerRate HMS 1X+ paddle 2 variable 0 20 1 .hod.1x2.negScaler HMS 1X- paddle 2 @@ -342,8 +370,6 @@ variable 3 6 1 .hod.2y6.posScaler HMS 2Y+ paddle 6 variable 3 6 2 .hod.2y6.posScalerRate HMS 2Y+ paddle 6 variable 3 22 1 .hod.2y6.negScaler HMS 2Y- paddle 6 variable 3 22 2 .hod.2y6.negScalerRate HMS 2Y- paddle 6 -variable 6 20 1 .Empty_45.scaler Empty -variable 6 20 2 .Empty_45.scalerRate Empty variable 4 1 1 .pPRE100.scaler SHMS PRE100 variable 4 1 2 .pPRE100.scalerRate SHMS PRE100 variable 0 26 1 .hod.1x13.negScaler HMS 1X- paddle 13 @@ -370,6 +396,8 @@ variable 1 5 1 .hod.1y4.posScaler HMS 1Y+ paddle 4 variable 1 5 2 .hod.1y4.posScalerRate HMS 1Y+ paddle 4 variable 1 21 1 .hod.1y4.negScaler HMS 1Y- paddle 4 variable 1 21 2 .hod.1y4.negScalerRate HMS 1Y- paddle 4 +variable 4 5 1 .1MHz_CP.scaler 1 Mhz Copy +variable 4 5 2 .1MHz_CP.scalerRate 1 Mhz Copy variable 0 22 1 .hod.1x6.negScaler HMS 1X- paddle 6 variable 0 22 2 .hod.1x6.negScalerRate HMS 1X- paddle 6 variable 0 6 1 .hod.1x6.posScaler HMS 1X+ paddle 6 @@ -392,28 +420,30 @@ variable 2 2 1 .hod.2x5.posScaler HMS 2X+ paddle 5 variable 2 2 2 .hod.2x5.posScalerRate HMS 2X+ paddle 5 variable 5 16 1 .pSTOF.scaler SHMS STOF variable 5 16 2 .pSTOF.scalerRate SHMS STOF +variable 4 6 1 .EDTM_CP.scaler EDTM Copy +variable 4 6 2 .EDTM_CP.scalerRate EDTM Copy variable 6 11 1 .PRLO.scaler HMS PRLO variable 6 11 2 .PRLO.scalerRate HMS PRLO -variable 6 24 1 .Empty_49.scaler Empty -variable 6 24 2 .Empty_49.scalerRate Empty -variable 6 23 1 .Empty_48.scaler Empty -variable 6 23 2 .Empty_48.scalerRate Empty -variable 5 24 1 .hSTOF.scaler HMS STOF -variable 5 24 2 .hSTOF.scalerRate HMS STOF -variable 6 17 1 .Empty_42.scaler Empty -variable 6 17 2 .Empty_42.scalerRate Empty -variable 6 16 1 .Empty_41.scaler Empty -variable 6 16 2 .Empty_41.scalerRate Empty -variable 5 31 1 .Empty_40.scaler Empty -variable 5 31 2 .Empty_40.scalerRate Empty -variable 6 22 1 .Empty_47.scaler Empty -variable 6 22 2 .Empty_47.scalerRate Empty -variable 6 21 1 .Empty_46.scaler Empty -variable 6 21 2 .Empty_46.scalerRate Empty +variable 5 22 1 .Empty_49.scaler Empty +variable 5 22 2 .Empty_49.scalerRate Empty +variable 5 9 1 .Empty_48.scaler Empty +variable 5 9 2 .Empty_48.scalerRate Empty +variable 4 30 1 .Empty_43.scaler Empty +variable 4 30 2 .Empty_43.scalerRate Empty +variable 4 29 1 .Empty_42.scaler Empty +variable 4 29 2 .Empty_42.scalerRate Empty +variable 4 28 1 .Empty_41.scaler Empty +variable 4 28 2 .Empty_41.scalerRate Empty +variable 4 27 1 .Empty_40.scaler Empty +variable 4 27 2 .Empty_40.scalerRate Empty +variable 5 8 1 .Empty_47.scaler Empty +variable 5 8 2 .Empty_47.scalerRate Empty +variable 5 7 1 .Empty_46.scaler Empty +variable 5 7 2 .Empty_46.scalerRate Empty variable 6 8 1 .BSUM.scaler HMS BSUM variable 6 8 2 .BSUM.scalerRate HMS BSUM -variable 6 19 1 .Empty_44.scaler Empty -variable 6 19 2 .Empty_44.scalerRate Empty +variable 4 31 1 .Empty_44.scaler Empty +variable 4 31 2 .Empty_44.scalerRate Empty variable 0 1 1 .hod.1x3.posScaler HMS 1X+ paddle 3 variable 0 1 2 .hod.1x3.posScalerRate HMS 1X+ paddle 3 variable 0 17 1 .hod.1x3.negScaler HMS 1X- paddle 3 diff --git a/MAPS/SCALERS/db_PScalevt.dat b/MAPS/SCALERS/db_PScalevt.dat index a438e701..c3d01e3e 100644 --- a/MAPS/SCALERS/db_PScalevt.dat +++ b/MAPS/SCALERS/db_PScalevt.dat @@ -14,36 +14,48 @@ variable 3 15 1 .hod.2y16.negScaler SHMS 2y- paddle 16 variable 3 15 2 .hod.2y16.negScalerRate SHMS 2y- paddle 16 variable 6 29 1 .hEL_CLEAN.scaler HMS EL_CLEAN variable 6 29 2 .hEL_CLEAN.scalerRate HMS EL_CLEAN +variable 5 16 1 .pL1ACCP.scaler SHMS L1 Accept +variable 5 16 2 .pL1ACCP.scalerRate SHMS L1 Accept variable 7 11 1 .PRLO.scaler SHMS PRLO variable 7 11 2 .PRLO.scalerRate SHMS PRLO variable 7 10 1 .EDTM.scaler SHMS EDTM variable 7 10 2 .EDTM.scalerRate SHMS EDTM +variable 7 23 1 .Empty_76.scaler Empty +variable 7 23 2 .Empty_76.scalerRate Empty variable 0 23 1 .hod.1x8.negScaler SHMS 1X- paddle 8 variable 0 23 2 .hod.1x8.negScalerRate SHMS 1X- paddle 8 variable 0 7 1 .hod.1x8.posScaler SHMS 1X+ paddle 8 variable 0 7 2 .hod.1x8.posScalerRate SHMS 1X+ paddle 8 variable 7 4 1 .S1XS1Y.scaler SHMS S1T variable 7 4 2 .S1XS1Y.scalerRate SHMS S1T +variable 7 22 1 .Empty_75.scaler Empty +variable 7 22 2 .Empty_75.scalerRate Empty variable 0 1 1 .hod.1x3.posScaler SHMS 1X+ paddle 3 variable 0 1 2 .hod.1x3.posScalerRate SHMS 1X+ paddle 3 variable 0 17 1 .hod.1x3.negScaler SHMS 1X- paddle 3 variable 0 17 2 .hod.1x3.negScalerRate SHMS 1X- paddle 3 +variable 7 16 1 .Empty_69.scaler Empty +variable 7 16 2 .Empty_69.scalerRate Empty +variable 7 15 1 .Empty_68.scaler Empty +variable 7 15 2 .Empty_68.scalerRate Empty variable 6 25 1 .hEL_LO_LO.scaler HMS EL_LO_LO variable 6 25 2 .hEL_LO_LO.scalerRate HMS EL_LO_LO -variable 7 23 1 .Empty_65.scaler Empty -variable 7 23 2 .Empty_65.scalerRate Empty -variable 7 22 1 .Empty_64.scaler Empty -variable 7 22 2 .Empty_64.scalerRate Empty +variable 6 31 1 .Empty_65.scaler Empty +variable 6 31 2 .Empty_65.scalerRate Empty +variable 6 30 1 .Empty_64.scaler Empty +variable 6 30 2 .Empty_64.scalerRate Empty +variable 7 14 1 .Empty_67.scaler Empty +variable 7 14 2 .Empty_67.scalerRate Empty variable 4 1 1 .hod.2y19.negScaler SHMS 2y- paddle 19 variable 4 1 2 .hod.2y19.negScalerRate SHMS 2y- paddle 19 -variable 7 19 1 .Empty_61.scaler Empty -variable 7 19 2 .Empty_61.scalerRate Empty +variable 6 9 1 .Empty_61.scaler Empty +variable 6 9 2 .Empty_61.scalerRate Empty variable 4 17 1 .hod.2y19.posScaler SHMS 2y+ paddle 19 variable 4 17 2 .hod.2y19.posScalerRate SHMS 2y+ paddle 19 -variable 7 21 1 .Empty_63.scaler Empty -variable 7 21 2 .Empty_63.scalerRate Empty -variable 7 20 1 .Empty_62.scaler Empty -variable 7 20 2 .Empty_62.scalerRate Empty +variable 6 23 1 .Empty_63.scaler Empty +variable 6 23 2 .Empty_63.scalerRate Empty +variable 6 22 1 .Empty_62.scaler Empty +variable 6 22 2 .Empty_62.scalerRate Empty variable 3 19 1 .hod.2y7.posScaler SHMS 2y+ paddle 7 variable 3 19 2 .hod.2y7.posScalerRate SHMS 2y+ paddle 7 variable 3 3 1 .hod.2y7.negScaler SHMS 2y- paddle 7 @@ -64,6 +76,8 @@ variable 2 29 1 .hod.2x12.negScaler SHMS 2X- paddle 12 variable 2 29 2 .hod.2x12.negScalerRate SHMS 2X- paddle 12 variable 2 13 1 .hod.2x12.posScaler SHMS 2X+ paddle 12 variable 2 13 2 .hod.2x12.posScalerRate SHMS 2X+ paddle 12 +variable 5 6 1 .EDTM_CP.scaler EDTM Copy +variable 5 6 2 .EDTM_CP.scalerRate EDTM Copy variable 3 29 1 .hod.2y12.posScaler SHMS 2y+ paddle 12 variable 3 29 2 .hod.2y12.posScalerRate SHMS 2y+ paddle 12 variable 2 8 1 .hod.2x9.posScaler SHMS 2X+ paddle 9 @@ -113,6 +127,8 @@ variable 7 31 2 .1Mhz.scalerRate 1MHz variable 7 31 5 .1Mhz.scalerTime 1MHz variable 0 11 1 .Empty.scaler Empty variable 0 11 2 .Empty.scalerRate Empty +variable 5 17 1 .pEDTM_V2.scaler SHMS EDTM V2 +variable 5 17 2 .pEDTM_V2.scalerRate SHMS EDTM V2 variable 2 21 1 .hod.2x4.negScaler SHMS 2X- paddle 4 variable 2 21 2 .hod.2x4.negScalerRate SHMS 2X- paddle 4 variable 3 23 1 .hod.2y8.posScaler SHMS 2y+ paddle 8 @@ -137,8 +153,6 @@ variable 5 2 1 .pPRE150.scaler SHMS PRE150 variable 5 2 2 .pPRE150.scalerRate SHMS PRE150 variable 5 10 1 .hPRE150.scaler HMS PRE150 variable 5 10 2 .hPRE150.scalerRate HMS PRE150 -variable 5 16 1 .pL1ACCP.scaler SHMS L1 Accept -variable 5 16 2 .pL1ACCP.scalerRate SHMS L1 Accept variable 0 15 1 .Empty_3.scaler Empty variable 0 15 2 .Empty_3.scalerRate Empty variable 3 9 1 .hod.2y11.negScaler SHMS 2y- paddle 11 @@ -161,10 +175,20 @@ variable 0 8 1 .hod.1x9.posScaler SHMS 1X+ paddle 9 variable 0 8 2 .hod.1x9.posScalerRate SHMS 1X+ paddle 9 variable 0 24 1 .hod.1x9.negScaler SHMS 1X- paddle 9 variable 0 24 2 .hod.1x9.negScalerRate SHMS 1X- paddle 9 +variable 5 7 1 .pTRIG1_CP.scaler SHMS pTRIG1 Copy +variable 5 7 2 .pTRIG1_CP.scalerRate SHMS pTRIG1 Copy variable 4 4 1 .hod.2y18.negScaler SHMS 2y- paddle 18 variable 4 4 2 .hod.2y18.negScalerRate SHMS 2y- paddle 18 +variable 7 24 1 .Empty_77.scaler Empty +variable 7 24 2 .Empty_77.scalerRate Empty +variable 7 21 1 .Empty_74.scaler Empty +variable 7 21 2 .Empty_74.scalerRate Empty variable 6 20 1 .pEL_REAL.scaler SHMS EL_REAL variable 6 20 2 .pEL_REAL.scalerRate SHMS EL_REAL +variable 7 19 1 .Empty_72.scaler Empty +variable 7 19 2 .Empty_72.scalerRate Empty +variable 7 20 1 .Empty_73.scaler Empty +variable 7 20 2 .Empty_73.scalerRate Empty variable 4 20 1 .hod.2y18.posScaler SHMS 2y+ paddle 18 variable 4 20 2 .hod.2y18.posScalerRate SHMS 2y+ paddle 18 variable 6 11 1 .hTRIG2.scaler HMS TRIG2 @@ -177,22 +201,20 @@ variable 3 5 1 .hod.2y4.negScaler SHMS 2y- paddle 4 variable 3 5 2 .hod.2y4.negScalerRate SHMS 2y- paddle 4 variable 3 21 1 .hod.2y4.posScaler SHMS 2y+ paddle 4 variable 3 21 2 .hod.2y4.posScalerRate SHMS 2y+ paddle 4 -variable 7 24 1 .Empty_66.scaler Empty -variable 7 24 2 .Empty_66.scalerRate Empty -variable 7 18 1 .Empty_60.scaler Empty -variable 7 18 2 .Empty_60.scalerRate Empty +variable 7 13 1 .Empty_66.scaler Empty +variable 7 13 2 .Empty_66.scalerRate Empty +variable 6 8 1 .Empty_60.scaler Empty +variable 6 8 2 .Empty_60.scalerRate Empty variable 0 26 1 .hod.1x13.negScaler SHMS 1X- paddle 13 variable 0 26 2 .hod.1x13.negScalerRate SHMS 1X- paddle 13 variable 0 10 1 .hod.1x13.posScaler SHMS 1X+ paddle 13 variable 0 10 2 .hod.1x13.posScalerRate SHMS 1X+ paddle 13 -variable 2 26 1 .hod.2x13.negScaler SHMS 2X- paddle 13 -variable 2 26 2 .hod.2x13.negScalerRate SHMS 2X- paddle 13 -variable 6 31 1 .Empty_54.scaler Empty -variable 6 31 2 .Empty_54.scalerRate Empty +variable 5 28 1 .Empty_54.scaler Empty +variable 5 28 2 .Empty_54.scalerRate Empty variable 2 10 1 .hod.2x13.posScaler SHMS 2X+ paddle 13 variable 2 10 2 .hod.2x13.posScalerRate SHMS 2X+ paddle 13 -variable 6 23 1 .Empty_52.scaler Empty -variable 6 23 2 .Empty_52.scalerRate Empty +variable 5 26 1 .Empty_52.scaler Empty +variable 5 26 2 .Empty_52.scalerRate Empty variable 2 17 1 .hod.2x3.negScaler SHMS 2X- paddle 3 variable 2 17 2 .hod.2x3.negScalerRate SHMS 2X- paddle 3 variable 2 1 1 .hod.2x3.posScaler SHMS 2X+ paddle 3 @@ -273,6 +295,8 @@ variable 3 28 1 .hod.2y10.posScaler SHMS 2y+ paddle 10 variable 3 28 2 .hod.2y10.posScalerRate SHMS 2y+ paddle 10 variable 2 23 1 .hod.2x8.negScaler SHMS 2X- paddle 8 variable 2 23 2 .hod.2x8.negScalerRate SHMS 2X- paddle 8 +variable 7 17 1 .Empty_70.scaler Empty +variable 7 17 2 .Empty_70.scalerRate Empty variable 2 3 1 .hod.2x7.posScaler SHMS 2X+ paddle 7 variable 2 3 2 .hod.2x7.posScalerRate SHMS 2X+ paddle 7 variable 6 18 1 .pEL_LO.scaler SHMS EL_LO @@ -283,6 +307,8 @@ variable 2 5 1 .hod.2x4.posScaler SHMS 2X+ paddle 4 variable 2 5 2 .hod.2x4.posScalerRate SHMS 2X+ paddle 4 variable 1 4 1 .hod.1y2.negScaler SHMS 1Y- paddle 2 variable 1 4 2 .hod.1y2.negScalerRate SHMS 1Y- paddle 2 +variable 7 18 1 .Empty_71.scaler Empty +variable 7 18 2 .Empty_71.scalerRate Empty variable 1 20 1 .hod.1y2.posScaler SHMS 1Y+ paddle 2 variable 1 20 2 .hod.1y2.posScalerRate SHMS 1Y+ paddle 2 variable 7 29 1 .BCM17.scaler BCM17 @@ -297,26 +323,26 @@ variable 1 18 1 .hod.1y5.posScaler SHMS 1Y+ paddle 5 variable 1 18 2 .hod.1y5.posScalerRate SHMS 1Y+ paddle 5 variable 1 2 1 .hod.1y5.negScaler SHMS 1Y- paddle 5 variable 1 2 2 .hod.1y5.negScalerRate SHMS 1Y- paddle 5 -variable 5 12 1 .Empty_43.scaler Empty -variable 5 12 2 .Empty_43.scalerRate Empty -variable 5 7 1 .Empty_42.scaler Empty -variable 5 7 2 .Empty_42.scalerRate Empty -variable 5 6 1 .Empty_41.scaler Empty -variable 5 6 2 .Empty_41.scalerRate Empty +variable 5 15 1 .Empty_43.scaler Empty +variable 5 15 2 .Empty_43.scalerRate Empty +variable 5 14 1 .Empty_42.scaler Empty +variable 5 14 2 .Empty_42.scalerRate Empty +variable 5 13 1 .Empty_41.scaler Empty +variable 5 13 2 .Empty_41.scalerRate Empty variable 0 0 1 .hod.1x1.posScaler SHMS 1X+ paddle 1 variable 0 0 2 .hod.1x1.posScalerRate SHMS 1X+ paddle 1 -variable 6 6 1 .Empty_47.scaler Empty -variable 6 6 2 .Empty_47.scalerRate Empty +variable 5 21 1 .Empty_47.scaler Empty +variable 5 21 2 .Empty_47.scalerRate Empty variable 0 16 1 .hod.1x1.negScaler SHMS 1X- paddle 1 variable 0 16 2 .hod.1x1.negScalerRate SHMS 1X- paddle 1 -variable 5 14 1 .Empty_45.scaler Empty -variable 5 14 2 .Empty_45.scalerRate Empty -variable 5 13 1 .Empty_44.scaler Empty -variable 5 13 2 .Empty_44.scalerRate Empty -variable 6 8 1 .Empty_49.scaler Empty -variable 6 8 2 .Empty_49.scalerRate Empty -variable 6 7 1 .Empty_48.scaler Empty -variable 6 7 2 .Empty_48.scalerRate Empty +variable 5 19 1 .Empty_45.scaler Empty +variable 5 19 2 .Empty_45.scalerRate Empty +variable 5 18 1 .Empty_44.scaler Empty +variable 5 18 2 .Empty_44.scalerRate Empty +variable 5 23 1 .Empty_49.scaler Empty +variable 5 23 2 .Empty_49.scalerRate Empty +variable 5 22 1 .Empty_48.scaler Empty +variable 5 22 2 .Empty_48.scalerRate Empty variable 6 4 1 .pTRIG5.scaler SHMS TRIG5 variable 6 4 2 .pTRIG5.scalerRate SHMS TRIG5 variable 6 3 1 .pTRIG4.scaler SHMS TRIG4 @@ -345,10 +371,10 @@ variable 2 4 1 .hod.2x2.posScaler SHMS 2X+ paddle 2 variable 2 4 2 .hod.2x2.posScalerRate SHMS 2X+ paddle 2 variable 2 20 1 .hod.2x2.negScaler SHMS 2X- paddle 2 variable 2 20 2 .hod.2x2.negScalerRate SHMS 2X- paddle 2 -variable 5 5 1 .Empty_40.scaler Empty -variable 5 5 2 .Empty_40.scalerRate Empty -variable 5 15 1 .Empty_46.scaler Empty -variable 5 15 2 .Empty_46.scalerRate Empty +variable 5 12 1 .Empty_40.scaler Empty +variable 5 12 2 .Empty_40.scalerRate Empty +variable 5 20 1 .Empty_46.scaler Empty +variable 5 20 2 .Empty_46.scalerRate Empty variable 4 0 1 .hod.2y17.negScaler SHMS 2y- paddle 17 variable 4 0 2 .hod.2y17.negScalerRate SHMS 2y- paddle 17 variable 4 16 1 .hod.2y17.posScaler SHMS 2y+ paddle 17 @@ -427,6 +453,8 @@ variable 6 16 1 .pSTOF.scaler SHMS STOF variable 6 16 2 .pSTOF.scalerRate SHMS STOF variable 2 6 1 .hod.2x6.posScaler SHMS 2X+ paddle 6 variable 2 6 2 .hod.2x6.posScalerRate SHMS 2X+ paddle 6 +variable 5 5 1 .1MHz_CP.scaler 1 MHz Copy +variable 5 5 2 .1MHz_CP.scalerRate 1 MHz Copy variable 5 9 1 .hPRE100.scaler HMS PRE100 variable 5 9 2 .hPRE100.scalerRate HMS PRE100 variable 4 25 1 .Empty_21.scaler Empty @@ -463,24 +491,24 @@ variable 1 5 1 .hod.1y4.negScaler SHMS 1Y- paddle 4 variable 1 5 2 .hod.1y4.negScalerRate SHMS 1Y- paddle 4 variable 0 22 1 .hod.1x6.negScaler SHMS 1X- paddle 6 variable 0 22 2 .hod.1x6.negScalerRate SHMS 1X- paddle 6 -variable 7 13 1 .Empty_55.scaler Empty -variable 7 13 2 .Empty_55.scalerRate Empty -variable 7 14 1 .Empty_56.scaler Empty -variable 7 14 2 .Empty_56.scalerRate Empty -variable 7 15 1 .Empty_57.scaler Empty -variable 7 15 2 .Empty_57.scalerRate Empty -variable 6 9 1 .Empty_50.scaler Empty -variable 6 9 2 .Empty_50.scalerRate Empty -variable 6 22 1 .Empty_51.scaler Empty -variable 6 22 2 .Empty_51.scalerRate Empty +variable 5 29 1 .Empty_55.scaler Empty +variable 5 29 2 .Empty_55.scalerRate Empty +variable 5 30 1 .Empty_56.scaler Empty +variable 5 30 2 .Empty_56.scalerRate Empty +variable 5 31 1 .Empty_57.scaler Empty +variable 5 31 2 .Empty_57.scalerRate Empty +variable 5 24 1 .Empty_50.scaler Empty +variable 5 24 2 .Empty_50.scalerRate Empty +variable 5 25 1 .Empty_51.scaler Empty +variable 5 25 2 .Empty_51.scalerRate Empty variable 0 6 1 .hod.1x6.posScaler SHMS 1X+ paddle 6 variable 0 6 2 .hod.1x6.posScalerRate SHMS 1X+ paddle 6 -variable 6 30 1 .Empty_53.scaler Empty -variable 6 30 2 .Empty_53.scalerRate Empty -variable 7 16 1 .Empty_58.scaler Empty -variable 7 16 2 .Empty_58.scalerRate Empty -variable 7 17 1 .Empty_59.scaler Empty -variable 7 17 2 .Empty_59.scalerRate Empty +variable 5 27 1 .Empty_53.scaler Empty +variable 5 27 2 .Empty_53.scalerRate Empty +variable 6 6 1 .Empty_58.scaler Empty +variable 6 6 2 .Empty_58.scalerRate Empty +variable 6 7 1 .Empty_59.scaler Empty +variable 6 7 2 .Empty_59.scalerRate Empty variable 5 11 1 .hPRE200.scaler HMS PRE200 variable 5 11 2 .hPRE200.scalerRate HMS PRE200 variable 4 9 1 .Empty_32.scaler Empty @@ -495,6 +523,8 @@ variable 3 20 1 .hod.2y2.posScaler SHMS 2y+ paddle 2 variable 3 20 2 .hod.2y2.posScalerRate SHMS 2y+ paddle 2 variable 7 9 1 .NCER.scaler SHMS NGC variable 7 9 2 .NCER.scalerRate SHMS NGC +variable 2 26 1 .hod.2x13.negScaler SHMS 2X- paddle 13 +variable 2 26 2 .hod.2x13.negScalerRate SHMS 2X- paddle 13 variable 2 18 1 .hod.2x5.negScaler SHMS 2X- paddle 5 variable 2 18 2 .hod.2x5.negScalerRate SHMS 2X- paddle 5 variable 2 2 1 .hod.2x5.posScaler SHMS 2X+ paddle 5 diff --git a/MAPS/SCALERS/scaler.map b/MAPS/SCALERS/scaler.map index 2d806b8e..ca4fc525 100755 --- a/MAPS/SCALERS/scaler.map +++ b/MAPS/SCALERS/scaler.map @@ -201,9 +201,9 @@ pPRE100 0 4 4 1 1 -1 SHMS PRE100 pPRE150 0 4 4 2 1 -1 SHMS PRE150 pPRE200 0 4 4 3 1 -1 SHMS PRE200 10/4 0 4 4 4 1 -1 Empty -10/5 0 4 4 5 1 -1 Empty -10/6 0 4 4 6 1 -1 Empty -10/7 0 4 4 7 1 -1 Empty +1MHz_CP 0 4 4 5 1 -1 1 Mhz Copy +EDTM_CP 0 4 4 6 1 -1 EDTM Copy +pTRIG1_CP 0 4 4 7 1 -1 pTRIG1 Copy hPRE40 0 4 4 8 1 -1 HMS PRE40 hPRE100 0 4 4 9 1 -1 HMS PRE100 hPRE150 0 4 4 10 1 -1 HMS PRE150 @@ -212,9 +212,22 @@ hPRE200 0 4 4 11 1 -1 HMS PRE200 10/13 0 4 4 13 1 -1 Empty 10/14 0 4 4 14 1 -1 Empty 10/15 0 4 4 15 1 -1 Empty - -# desc hel crate slot start nchan page long-description -hL1ACCP 0 4 4 16 1 -1 HMS L1 Accept +hL1ACCP 0 4 4 16 1 -1 HMS L1 Accept +10/17 0 4 4 17 1 -1 Empty +10/18 0 4 4 18 1 -1 Empty +10/19 0 4 4 19 1 -1 Empty +10/20 0 4 4 20 1 -1 Empty +10/21 0 4 4 21 1 -1 Empty +10/22 0 4 4 22 1 -1 Empty +10/23 0 4 4 23 1 -1 Empty +10/24 0 4 4 24 1 -1 Empty +10/25 0 4 4 25 1 -1 Empty +10/26 0 4 4 26 1 -1 Empty +10/27 0 4 4 27 1 -1 Empty +10/28 0 4 4 28 1 -1 Empty +10/29 0 4 4 29 1 -1 Empty +10/30 0 4 4 30 1 -1 Empty +10/31 0 4 4 31 1 -1 Empty # desc hel crate slot start nchan page long-description pTRIG1 0 4 5 0 1 -1 SHMS TRIG1 @@ -483,9 +496,9 @@ pPRE100 0 5 5 1 1 -1 SHMS PRE100 pPRE150 0 5 5 2 1 -1 SHMS PRE150 pPRE200 0 5 5 3 1 -1 SHMS PRE200 11/4 0 5 5 4 1 -1 Empty -11/5 0 5 5 5 1 -1 Empty -11/6 0 5 5 6 1 -1 Empty -11/7 0 5 5 7 1 -1 Empty +1MHz_CP 0 5 5 5 1 -1 1 MHz Copy +EDTM_CP 0 5 5 6 1 -1 EDTM Copy +pTRIG1_CP 0 5 5 7 1 -1 SHMS pTRIG1 Copy hPRE40 0 5 5 8 1 -1 HMS PRE40 hPRE100 0 5 5 9 1 -1 HMS PRE100 hPRE150 0 5 5 10 1 -1 HMS PRE150 @@ -494,9 +507,22 @@ hPRE200 0 5 5 11 1 -1 HMS PRE200 11/13 0 5 5 13 1 -1 Empty 11/14 0 5 5 14 1 -1 Empty 11/15 0 5 5 15 1 -1 Empty - -# desc hel crate slot start nchan page long-description -pL1ACCP 0 5 5 16 1 -1 SHMS L1 Accept +pL1ACCP 0 5 5 16 1 -1 SHMS L1 Accept +pEDTM_V2 0 5 5 17 1 -1 SHMS EDTM V2 +11/18 0 5 5 18 1 -1 Empty +11/19 0 5 5 19 1 -1 Empty +11/20 0 5 5 20 1 -1 Empty +11/21 0 5 5 21 1 -1 Empty +11/22 0 5 5 22 1 -1 Empty +11/23 0 5 5 23 1 -1 Empty +11/24 0 5 5 24 1 -1 Empty +11/25 0 5 5 25 1 -1 Empty +11/26 0 5 5 26 1 -1 Empty +11/27 0 5 5 27 1 -1 Empty +11/28 0 5 5 28 1 -1 Empty +11/29 0 5 5 29 1 -1 Empty +11/30 0 5 5 30 1 -1 Empty +11/31 0 5 5 31 1 -1 Empty # desc hel crate slot start nchan page long-description pTRIG1 0 5 6 0 1 -1 SHMS TRIG1 diff --git a/PARAM/SHMS/HODO/CALIB/phodo_calib.param b/PARAM/SHMS/HODO/CALIB/phodo_calib.param index 7dfa3130..a44c7885 100644 --- a/PARAM/SHMS/HODO/CALIB/phodo_calib.param +++ b/PARAM/SHMS/HODO/CALIB/phodo_calib.param @@ -593,3 +593,181 @@ phodo_neg_sigma = 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, 100.00, 100.00, 100.00 + +; New calibration by Simona on 10/23/18 + +phodo_pos_invadc_offset = -0.00, -0.00, -0.00, -0.00 + -6.88, -0.00, 0.41, -0.00 + -2.64, -0.00, 12.50, -0.00 + 1.41, -3.87, 0.72, -0.00 + -1.48, -5.63, 9.81, 25.26 + -2.23, -5.77, 0.41, 24.92 + 0.35, -3.84, 1.54, 23.65 + -6.99, -3.56, 0.90, 22.51 + -1.34, -4.54, 1.79, 23.90 + -0.00, 4.11, 1.17, 22.12 + -3.81, -4.29, -0.21, 22.91 + -0.03, -0.00, 2.51, 22.77 + -0.00, -0.00, 2.91, 23.88 + -0.00, -0.00, -0.00, 23.50 + -0.00, -0.00, -0.00, 22.77 + -0.00, -0.00, -0.00, 25.55 + -0.00, -0.00, -0.00, 23.13 + -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, -0.00, -0.00, -0.00 + +phodo_neg_invadc_offset = -0.00, -0.00, -0.00, -0.00 + -15.09, -0.00, -5.59, -0.00 + -7.23, -0.00, 15.44, -0.00 + -12.02, -3.47, -6.16, -0.00 + -9.90, -3.83, 10.17, 14.93 + -12.69, -3.31, -7.17, 17.39 + -9.48, -2.64, -5.78, 16.32 + -9.07, -4.48, -4.93, 15.31 + -7.98, -3.99, -8.00, 15.54 + -10.44, 6.18, -6.79, 14.16 + -3.71, -5.00, -4.71, 14.82 + -10.47, -0.00, -4.49, 15.24 + -0.00, -0.00, -5.43, 14.04 + -0.00, -0.00, -0.00, 16.25 + -0.00, -0.00, -0.00, 16.80 + -0.00, -0.00, -0.00, 15.01 + -0.00, -0.00, -0.00, 16.75 + -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, -0.00, -0.00, -0.00 + +phodo_pos_invadc_linear = 15.00, 15.00, 15.00, 15.00 + 14.85, 15.00, 15.00, 15.00 + 15.00, 15.00, 14.66, 15.00 + 15.00, 14.25, 15.00, 15.00 + 15.00, 13.03, 15.00, 14.66 + 14.70, 14.87, 15.00, 13.42 + 15.00, 14.26, 15.00, 13.09 + 15.00, 14.16, 15.00, 13.50 + 15.00, 14.95, 15.00, 13.27 + 14.45, 14.68, 14.91, 13.16 + 13.11, 15.00, 15.00, 13.15 + 13.93, 15.00, 15.00, 13.24 + 15.00, 15.00, 15.00, 13.17 + 15.00, 15.00, 15.00, 13.56 + 15.00, 15.00, 15.00, 13.16 + 15.00, 15.00, 15.00, 13.07 + 15.00, 15.00, 15.00, 14.03 + 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.79, 15.00, 14.84, 15.00 + 14.00, 15.00, 15.00, 15.00 + 11.75, 15.00, 14.99, 15.00 + 14.44, 15.00, 15.00, 13.09 + 14.34, 15.00, 14.48, 14.36 + 10.90, 15.00, 14.36, 14.42 + 14.99, 15.00, 15.00, 15.00 + 15.00, 15.00, 14.62, 14.08 + 13.44, 15.00, 15.00, 14.50 + 14.67, 15.00, 15.00, 14.16 + 13.92, 15.00, 15.00, 13.69 + 15.00, 15.00, 14.91, 14.14 + 15.00, 15.00, 15.00, 14.44 + 15.00, 15.00, 15.00, 14.23 + 15.00, 15.00, 15.00, 14.50 + 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_pos_invadc_adc= -0.00, -0.00, -0.00, -0.00 + 15.39, -0.00, 15.23, -0.00 + 16.13, -0.00, 15.81, -0.00 + 18.97, 15.66, 16.03, -0.00 + 14.78, 16.11, 15.95, 21.22 + 15.75, 12.98, 14.06, 23.45 + 17.07, 12.87, 14.00, 21.30 + 14.66, 13.27, 14.21, 22.46 + 18.17, 14.61, 15.12, 20.78 + 19.35, 18.22, 14.49, 21.10 + 16.43, 12.22, 15.35, 17.62 + 21.03, -0.00, 15.98, 21.51 + -0.00, -0.00, 16.31, 20.01 + -0.00, -0.00, -0.00, 20.45 + -0.00, -0.00, -0.00, 19.99 + -0.00, -0.00, -0.00, 22.47 + -0.00, -0.00, -0.00, 29.40 + -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, -0.00, -0.00, -0.00 + +phodo_neg_invadc_adc= -0.00, -0.00, -0.00, -0.00 + 18.70, -0.00, 16.52, -0.00 + 17.38, -0.00, 22.22, -0.00 + 18.24, 13.01, 16.82, -0.00 + 14.66, 14.85, 18.60, 18.41 + 15.57, 15.18, 15.45, 20.08 + 25.60, 13.18, 15.43, 20.82 + 16.67, 14.05, 16.13, 20.76 + 16.25, 15.09, 15.74, 19.74 + 16.36, 19.60, 16.06, 21.32 + 23.43, 15.49, 16.18, 22.55 + 15.32, -0.00, 15.65, 19.81 + -0.00, -0.00, 14.33, 20.62 + -0.00, -0.00, -0.00, 20.14 + -0.00, -0.00, -0.00, 23.15 + -0.00, -0.00, -0.00, 21.47 + -0.00, -0.00, -0.00, 21.41 + -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, -0.00, -0.00, -0.00 + +phodo_pos_sigma = 100.00, 100.00, 100.00, 100.00 + 0.64, 100.00, 0.73, 100.00 + 0.64, 100.00, 0.73, 100.00 + 0.70, 0.71, 0.71, 100.00 + 0.65, 0.90, 0.82, 0.52 + 0.74, 0.67, 0.56, 0.72 + 0.55, 0.64, 0.85, 0.85 + 0.62, 0.74, 0.73, 0.79 + 0.77, 0.69, 0.79, 0.62 + 0.70, 0.52, 0.72, 0.55 + 0.75, 0.42, 0.75, 0.57 + 0.95, 100.00, 0.93, 0.67 + 100.00, 100.00, 0.78, 0.73 + 100.00, 100.00, 100.00, 0.60 + 100.00, 100.00, 100.00, 0.70 + 100.00, 100.00, 100.00, 0.40 + 100.00, 100.00, 100.00, 0.56 + 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, 100.00, 100.00, 100.00 + +phodo_neg_sigma = 100.00, 100.00, 100.00, 100.00 + 0.76, 100.00, 0.78, 100.00 + 0.67, 100.00, 0.76, 100.00 + 0.82, 0.59, 0.82, 100.00 + 0.66, 0.71, 0.88, 0.37 + 0.66, 0.66, 0.69, 0.60 + 0.66, 0.71, 0.79, 0.80 + 0.59, 0.71, 0.70, 0.75 + 0.66, 0.74, 0.84, 0.65 + 0.66, 0.65, 0.69, 0.62 + 1.08, 0.52, 0.76, 0.67 + 0.75, 100.00, 0.89, 0.77 + 100.00, 100.00, 0.63, 0.74 + 100.00, 100.00, 100.00, 0.71 + 100.00, 100.00, 100.00, 0.72 + 100.00, 100.00, 100.00, 0.56 + 100.00, 100.00, 100.00, 0.54 + 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, 100.00, 100.00, 100.00 diff --git a/SCRIPTS/COIN/MONITOR/Bean_counter.C b/SCRIPTS/COIN/MONITOR/Bean_counter.C new file mode 100644 index 00000000..d95bb962 --- /dev/null +++ b/SCRIPTS/COIN/MONITOR/Bean_counter.C @@ -0,0 +1,254 @@ +// Filename: Bean_counter.C +// Description: delta, xptar,yptar, ytar distributions for SHMS and HMS and W, Em, Pm and Cointime distributions +// are plotted and the number of good counts are printed out to add to the count of good events. +// Needs runnumber, and if target is "h" or "c" + +void Bean_counter(Int_t runNumber, Int_t targ){ + + //read the input file from data + TString fileNameD = "/net/cdaq/cdaql3data/cdaq/hallc-online/ROOTfiles/" ; + fileNameD += "coin_replay_production_"; //read the root file from data + fileNameD += runNumber; //read the root file from data + fileNameD += "_-1.root"; //read the root file from data + TFile *f1 = new TFile(fileNameD); + TTree *tt = (TTree*)f1->Get("T"); + //get the relevant branch + int nentriesD = tt->GetEntries(); + cout<<"Entries:\t"<<nentriesD<<endl; + TString fileO; + fileO += "/net/cdaq/cdaql3data/cdaq/hallc-online/run_"; //read the root file from data + fileO += runNumber; //read the root file from data + fileO += "_hists_coin.root"; //read the root file from data + + TFile *fout = new TFile(fileO,"RECREATE"); + + gROOT->SetBatch(kTRUE); + + + //make histograms: + TH1D *h_hdelta = new TH1D("h_hdelta","HMS DELTA (%)",100,-12,12); + TH1D *h_hxptar = new TH1D("h_hxptar","HMS XPTAR (rad)",100,-0.1,0.1); + TH1D *h_hyptar = new TH1D("h_hyptar","HMS YPTAR (rad)",100,-0.08,0.08); + TH1D *h_hytar = new TH1D("h_hytar","HMS YTAR (cm)",100,-12.0,12.0); + + TH1D *h_pdelta = new TH1D("h_pdelta","SHMS DELTA (%)",100,-12,12); + TH1D *h_pxptar = new TH1D("h_pxptar","SHMS XPTAR (rad)",100,-0.06,0.06); + TH1D *h_pyptar = new TH1D("h_pyptar","SHMS YPTAR (rad)",100,-0.06,0.06); + TH1D *h_pytar = new TH1D("h_pytar","SHMS YTAR (cm)",100,-12.0,12.0); + + TH1D *h_Emd = new TH1D("h_Emd","Missing Energy (GeV)",200,-0.2,0.2); + TH1D *h_Wd = new TH1D("h_Wd","W (GeV)", 150, 0, 2); + TH1D *h_pmd = new TH1D("h_pmd","Pm (GeV/c)", 100, -0.2, 0.2); + TH1D *h1PcointimeROC1 = new TH1D("SHMS ROC1 Corrected Coin Time","SHMS ROC1 Corrected Coin Time; cointime [ns]", 200, -10, 10); + TH1D *h1PcointimeROC2 = new TH1D("SHMS ROC2 Corrected Coin Time","SHMS ROC2 Corrected Coin Time; cointime [ns]", 200, -10, 10); + + + Double_t HgtrX, HgtrTh, HgtrY, HgtrPh, hdelta, PgtrX, PgtrTh, PgtrY, PgtrPh, pdelta; + Double_t HgtrBetaCalc, PgtrBetaCalc, evtType, PgtrP, HgtrP, PhodStatus, PhodStartTime, PhodfpHitsTime; + Double_t cointime, HhodStatus, HhodStartTime, HhodfpHitsTime, SHMSpartMass, HMSpartMass; + Double_t pkinW, pEm, pPm, pbeta, hbeta, hcalepr, hcaletot, hcernpe, pcaletot, pcalepr, pcernpe; + Double_t TcoinpTRIG1_ROC1_tdcTimeRaw, TcoinpTRIG4_ROC1_tdcTimeRaw, TcoinpTRIG1_ROC2_tdcTimeRaw; + Double_t TcoinhTRIG1_ROC1_tdcTimeRaw, TcoinhTRIG1_ROC2_tdcTimeRaw, TcoinhTRIG4_ROC1_tdcTimeRaw; + Double_t TcoinhTRIG4_ROC2_tdcTimeRaw, TcoinpTRIG4_ROC2_tdcTimeRaw; + + int cnts=0; + TCut hpdelta; + TCut evtCut; + TCut eBetaCut; + TCut pBetaCut; + TCut cerCut; + TCut calCut; + TCut hodoTimeCut; + TCut Wcut; + TCut Emcut; + TCut Pmcut; + + tt->SetBranchAddress("P.gtr.p", &PgtrP); + tt->SetBranchAddress("H.gtr.p", &HgtrP); + tt->SetBranchAddress("P.gtr.beta", &pbeta); + tt->SetBranchAddress("H.gtr.beta", &hbeta); + tt->SetBranchAddress("H.gtr.dp", &hdelta); + tt->SetBranchAddress("P.gtr.dp", &pdelta); + + tt->SetBranchAddress("P.cal.eprtracknorm", &pcalepr); + tt->SetBranchAddress("P.cal.etottracknorm", &pcaletot); + tt->SetBranchAddress("P.hgcer.npeSum", &pcernpe); + + tt->SetBranchAddress("H.cal.eprtracknorm", &hcalepr); + tt->SetBranchAddress("H.cal.etottracknorm", &hcaletot); + tt->SetBranchAddress("H.cer.npeSum", &hcernpe); + tt->SetBranchAddress("H.kin.primary.W", &pkinW); + tt->SetBranchAddress("P.kin.secondary.emiss", &pEm); + tt->SetBranchAddress("P.kin.secondary.pmiss", &pPm); + + tt->SetBranchAddress("P.hod.goodstarttime", &PhodStatus); + tt->SetBranchAddress("P.hod.starttime", &PhodStartTime); + tt->SetBranchAddress("P.hod.fpHitsTime", &PhodfpHitsTime); + + tt->SetBranchAddress("H.hod.goodstarttime", &HhodStatus); + tt->SetBranchAddress("H.hod.starttime", &HhodStartTime); + tt->SetBranchAddress("H.hod.fpHitsTime", &HhodfpHitsTime); + + tt->SetBranchAddress("H.gtr.x", &HgtrX); + tt->SetBranchAddress("H.gtr.th", &HgtrTh); + tt->SetBranchAddress("H.gtr.y", &HgtrY); + tt->SetBranchAddress("H.gtr.ph", &HgtrPh); + + tt->SetBranchAddress("P.gtr.x", &PgtrX); + tt->SetBranchAddress("P.gtr.th", &PgtrTh); + tt->SetBranchAddress("P.gtr.y", &PgtrY); + tt->SetBranchAddress("P.gtr.ph", &PgtrPh); + + tt->SetBranchAddress("T.coin.pTRIG1_ROC1_tdcTimeRaw", &TcoinpTRIG1_ROC1_tdcTimeRaw); + tt->SetBranchAddress("T.coin.pTRIG4_ROC1_tdcTimeRaw", &TcoinpTRIG4_ROC1_tdcTimeRaw); + tt->SetBranchAddress("T.coin.pTRIG1_ROC2_tdcTimeRaw", &TcoinpTRIG1_ROC2_tdcTimeRaw); + tt->SetBranchAddress("T.coin.pTRIG4_ROC2_tdcTimeRaw", &TcoinpTRIG4_ROC2_tdcTimeRaw); + + tt->SetBranchAddress("T.coin.hTRIG1_ROC1_tdcTimeRaw", &TcoinhTRIG1_ROC1_tdcTimeRaw); + tt->SetBranchAddress("T.coin.hTRIG4_ROC1_tdcTimeRaw", &TcoinhTRIG4_ROC1_tdcTimeRaw); + tt->SetBranchAddress("T.coin.hTRIG1_ROC2_tdcTimeRaw", &TcoinhTRIG1_ROC2_tdcTimeRaw); + tt->SetBranchAddress("T.coin.hTRIG4_ROC2_tdcTimeRaw", &TcoinhTRIG4_ROC2_tdcTimeRaw); + + SHMSpartMass = 0.93827208; // proton mass in GeV/c^2 + HMSpartMass = 0.000510998; // electron mass in GeV/c^2 + hpdelta = "P.gtr.dp > -10 && P.gtr.dp < 10 && H.gtr.dp > -8 && H.gtr.dp < 8"; + eBetaCut = "P.gtr.beta > 0.8 && P.gtr.beta < 1.3"; + pBetaCut = "H.gtr.beta > 0.8 && H.gtr.beta < 1.3"; + cerCut = "P.hgcer.npeSum < 0.1 && H.cer.npeSum > 0.5"; + calCut = "H.cal.etottracknorm > 0.8 && H.cal.etottracknorm < 1.5 && H.cal.eprtracknorm > 0.2"; + hodoTimeCut ="P.hod.goodstarttime == 1 && H.hod.goodstarttime == 1"; + Wcut = "H.kin.primary.W >0.75 && H.kin.primary.W < 1.1"; + + + + TCanvas *canvas1 = new TCanvas("canvas1","canvas1"); + tt->Draw("P.hod.starttime >> SHMShodoStartTime", eBetaCut && pBetaCut && cerCut && calCut && hodoTimeCut); + TH1D *h1PhodoStartTime = (TH1D*)gDirectory->Get("SHMShodoStartTime"); + h1PhodoStartTime->GetXaxis()->SetTitle("SHMS hodo start time [ns]"); + Double_t PhodoStartTimeMean = h1PhodoStartTime->GetMean(); + TCanvas *canvas2 = new TCanvas("canvas2","canvas2"); + tt->Draw("H.hod.starttime >> HMShodoStartTime", eBetaCut && pBetaCut && cerCut && calCut && hodoTimeCut); + TH1D *h1HhodoStartTime = (TH1D*)gDirectory->Get("HMShodoStartTime"); + h1HhodoStartTime->GetXaxis()->SetTitle("HMS hodo start time [ns]"); + Double_t HhodoStartTimeMean = h1HhodoStartTime->GetMean(); + + + Double_t pOffset = 3.0; //9.5 + 10; // in ns + Double_t hOffset = 335; + Double_t speedOfLight = 29.9792; // in cm/ns + Double_t SHMScentralPathLen = 18.1*100; // SHMS Target to focal plane path length converted to cm + Double_t SHMSpathLength = 18.1*100; // For now assume that it's same as SHMScentralPathLen + Double_t HMScentralPathLen = 22*100; // HMS Target to focal plane path length converted to cm + Double_t DeltaHMSpathLength; // For now assume that it's same as HMScentralPathLen + Double_t SHMScoinCorr = 0.0; + Double_t HMScoinCorr = 0.0; + Double_t SHMSrawCoinTimeROC1; + Double_t SHMSrawCoinTimeROC2; + Double_t HMSrawCoinTimeROC1; + Double_t HMSrawCoinTimeROC2; + + Double_t SHMScorrCoinTimeROC1; + Double_t SHMScorrCoinTimeROC2; + Double_t HMScorrCoinTimeROC1; + Double_t HMScorrCoinTimeROC2; + + for (int kk=0; kk<nentriesD; kk++){ + tt->GetEntry(kk); + if (kk % 50000 == 0) cout << kk*100/nentriesD << " % of data done" << endl; + evtType = tt->GetLeaf("fEvtHdr.fEvtType")->GetValue(); + if (pbeta>0.8 && pbeta<1.3 && hbeta>0.8 && hbeta<1.2 && hcernpe>0.1 && hcaletot >0.8 && hcaletot<1.2 && PhodStatus == 1 && HhodStatus ==1 && hdelta > -10 && hdelta < 10 && pdelta > -12 && pdelta < 12 && pcernpe < 0.1) + { + DeltaHMSpathLength = 12.462*HgtrTh + 0.1138*HgtrTh*HgtrX - 0.0154*HgtrX - 72.292*HgtrTh*HgtrTh - 0.0000544*HgtrX*HgtrX - 116.52*HgtrPh*HgtrPh; + PgtrBetaCalc = PgtrP/sqrt(PgtrP*PgtrP + SHMSpartMass*SHMSpartMass); + HgtrBetaCalc = HgtrP/sqrt(HgtrP*HgtrP + HMSpartMass*HMSpartMass); + SHMScoinCorr = SHMScentralPathLen / (speedOfLight*PgtrBetaCalc) + (SHMSpathLength - SHMScentralPathLen) / speedOfLight*PgtrBetaCalc + (PhodoStartTimeMean - PhodfpHitsTime); + HMScoinCorr = HMScentralPathLen / (speedOfLight*HgtrBetaCalc) + DeltaHMSpathLength / speedOfLight*HgtrBetaCalc + (HhodoStartTimeMean - HhodfpHitsTime); + SHMScorrCoinTimeROC1 = (TcoinpTRIG1_ROC1_tdcTimeRaw*0.1 - SHMScoinCorr) - (TcoinpTRIG4_ROC1_tdcTimeRaw*0.1 - HMScoinCorr) - pOffset; // 0.1 to convert to ns + SHMScorrCoinTimeROC2 = (TcoinpTRIG1_ROC2_tdcTimeRaw*0.1 - SHMScoinCorr) - (TcoinpTRIG4_ROC2_tdcTimeRaw*0.1 - HMScoinCorr) - pOffset; + h1PcointimeROC1->Fill(SHMScorrCoinTimeROC1); + h1PcointimeROC2->Fill(SHMScorrCoinTimeROC2); + if (targ == 1) + { + if (pkinW > 0.75 && pkinW < 1.15) + { + h_hdelta->Fill(hdelta); + h_hxptar->Fill(HgtrPh); + h_hyptar->Fill(HgtrTh); + h_hytar->Fill(HgtrY); + h_pdelta->Fill(pdelta); + h_pxptar->Fill(PgtrPh); + h_pyptar->Fill(PgtrTh); + h_pytar->Fill(PgtrY); + h_Emd->Fill(pEm+0.025); + h_Wd->Fill(pkinW); + h_pmd->Fill(pPm-0.04); + cnts++; + } + } + else if (targ == 2) + { + if (pkinW > 0.5 && pkinW < 1.5) + { + h_hdelta->Fill(hdelta); + h_hxptar->Fill(HgtrPh); + h_hyptar->Fill(HgtrTh); + h_hytar->Fill(HgtrY); + h_pdelta->Fill(pdelta); + h_pxptar->Fill(PgtrPh); + h_pyptar->Fill(PgtrTh); + h_pytar->Fill(PgtrY); + h_Emd->Fill(pEm+0.025); + h_Wd->Fill(pkinW); + h_pmd->Fill(pPm-0.04); + cnts++; + } + } + } + + } + + + + gROOT->SetBatch(kFALSE); + + TCanvas *can1 = new TCanvas ("can1","can1"); + can1->Divide(4,2); + + can1->cd(1); + h_hdelta->Draw(); + can1->cd(2); + h_hxptar->Draw(); + can1->cd(3); + h_hyptar->Draw(); + can1->cd(4); + h_hytar->Draw(); + can1->cd(5); + h_pdelta->Draw(); + can1->cd(6); + h_pxptar->Draw(); + can1->cd(7); + h_pyptar->Draw(); + can1->cd(8); + h_pytar->Draw(); + // can1->SaveAs("tmp1.pdf"); + + TCanvas *can2 = new TCanvas ("can2","can2"); + can2->Divide(2,2); + can2->cd(1); + h_Wd->Draw(); + can2->cd(2); + h_Emd->Draw(); + can2->cd(3); + h_pmd->Draw(); + can2->cd(4); + h1PcointimeROC1->Draw(); + + // can2->SaveAs("tmp.pdf"); + + fout->Write(); + // fout->Close(); + cout << "-------------------------------------------------------------------------------------------------------" << endl; + cout << "NOTE:>>>> " << cnts <<" <<<<< GOOD EVENTS have passed all cuts (update the white board and excel sheet)" << endl; + cout << "-------------------------------------------------------------------------------------------------------" << endl; + +} diff --git a/SCRIPTS/COIN/MONITOR/Bean_counter_carbon.C b/SCRIPTS/COIN/MONITOR/Bean_counter_carbon.C new file mode 100644 index 00000000..b48402a3 --- /dev/null +++ b/SCRIPTS/COIN/MONITOR/Bean_counter_carbon.C @@ -0,0 +1,230 @@ +// Filename: Bean_counter_carbon.C +// Description: delta, xptar,yptar, ytar distributions for SHMS and HMS and W, Em, Pm and Cointime distributions +// are plotted and the number of good counts are printed out to add to the count of good events. +// Needs runnumber, + +void Bean_counter_carbon(Int_t runNumber){ + + //read the input file from data + TString fileNameD = "/net/cdaq/cdaql3data/cdaq/hallc-online/ROOTfiles/" ; + fileNameD += "coin_replay_production_"; //read the root file from data + fileNameD += runNumber; //read the root file from data + fileNameD += "_-1.root"; //read the root file from data + TFile *f1 = new TFile(fileNameD); + TTree *tt = (TTree*)f1->Get("T"); + //get the relevant branch + int nentriesD = tt->GetEntries(); + cout<<"Entries:\t"<<nentriesD<<endl; + TString fileO; + fileO += "/net/cdaq/cdaql3data/cdaq/hallc-online/run_"; //read the root file from data + fileO += runNumber; //read the root file from data + fileO += "_hists_coin.root"; //read the root file from data + + TFile *fout = new TFile(fileO,"RECREATE"); + + gROOT->SetBatch(kTRUE); + + + //make histograms: + TH1D *h_hdelta = new TH1D("h_hdelta","HMS DELTA (%)",100,-12,12); + TH1D *h_hxptar = new TH1D("h_hxptar","HMS XPTAR (rad)",100,-0.1,0.1); + TH1D *h_hyptar = new TH1D("h_hyptar","HMS YPTAR (rad)",100,-0.08,0.08); + TH1D *h_hytar = new TH1D("h_hytar","HMS YTAR (cm)",100,-12.0,12.0); + + TH1D *h_pdelta = new TH1D("h_pdelta","SHMS DELTA (%)",100,-12,12); + TH1D *h_pxptar = new TH1D("h_pxptar","SHMS XPTAR (rad)",100,-0.06,0.06); + TH1D *h_pyptar = new TH1D("h_pyptar","SHMS YPTAR (rad)",100,-0.06,0.06); + TH1D *h_pytar = new TH1D("h_pytar","SHMS YTAR (cm)",100,-12.0,12.0); + + TH1D *h_Emd = new TH1D("h_Emd","Missing Energy (GeV)",200,-0.2,0.2); + TH1D *h_Wd = new TH1D("h_Wd","W (GeV)", 150, 0, 2); + TH1D *h_pmd = new TH1D("h_pmd","Pm (GeV/c)", 100, -0.2, 0.2); + TH1D *h1PcointimeROC1 = new TH1D("SHMS ROC1 Corrected Coin Time","SHMS ROC1 Corrected Coin Time; cointime [ns]", 200, -10, 10); + TH1D *h1PcointimeROC2 = new TH1D("SHMS ROC2 Corrected Coin Time","SHMS ROC2 Corrected Coin Time; cointime [ns]", 200, -10, 10); + + + Double_t HgtrX, HgtrTh, HgtrY, HgtrPh, hdelta, PgtrX, PgtrTh, PgtrY, PgtrPh, pdelta;// Ep, Epp, p_e, p_p, defEm; + Double_t HgtrBetaCalc, PgtrBetaCalc, evtType, PgtrP, HgtrP, PhodStatus, PhodStartTime, PhodfpHitsTime; + Double_t cointime, HhodStatus, HhodStartTime, HhodfpHitsTime, SHMSpartMass, HMSpartMass; + Double_t pkinW, pEm, pPm, pbeta, hbeta, hcalepr, hcaletot, hcernpe, pcaletot, pcalepr, pcernpe; + Double_t TcoinpTRIG1_ROC1_tdcTimeRaw, TcoinpTRIG4_ROC1_tdcTimeRaw, TcoinpTRIG1_ROC2_tdcTimeRaw; + Double_t TcoinhTRIG1_ROC1_tdcTimeRaw, TcoinhTRIG1_ROC2_tdcTimeRaw, TcoinhTRIG4_ROC1_tdcTimeRaw; + Double_t TcoinhTRIG4_ROC2_tdcTimeRaw, TcoinpTRIG4_ROC2_tdcTimeRaw; + + int cnts=0; + TCut hpdelta; + TCut evtCut; + TCut eBetaCut; + TCut pBetaCut; + TCut cerCut; + TCut calCut; + TCut hodoTimeCut; + TCut Wcut; + TCut Emcut; + TCut Pmcut; + + tt->SetBranchAddress("P.gtr.p", &PgtrP); + tt->SetBranchAddress("H.gtr.p", &HgtrP); + tt->SetBranchAddress("P.gtr.beta", &pbeta); + tt->SetBranchAddress("H.gtr.beta", &hbeta); + tt->SetBranchAddress("H.gtr.dp", &hdelta); + tt->SetBranchAddress("P.gtr.dp", &pdelta); + + tt->SetBranchAddress("P.cal.eprtracknorm", &pcalepr); + tt->SetBranchAddress("P.cal.etottracknorm", &pcaletot); + tt->SetBranchAddress("P.hgcer.npeSum", &pcernpe); + + tt->SetBranchAddress("H.cal.eprtracknorm", &hcalepr); + tt->SetBranchAddress("H.cal.etottracknorm", &hcaletot); + tt->SetBranchAddress("H.cer.npeSum", &hcernpe); + tt->SetBranchAddress("H.kin.primary.W", &pkinW); + tt->SetBranchAddress("P.kin.secondary.emiss", &pEm); + tt->SetBranchAddress("P.kin.secondary.pmiss", &pPm); + + tt->SetBranchAddress("P.hod.goodstarttime", &PhodStatus); + tt->SetBranchAddress("P.hod.starttime", &PhodStartTime); + tt->SetBranchAddress("P.hod.fpHitsTime", &PhodfpHitsTime); + + tt->SetBranchAddress("H.hod.goodstarttime", &HhodStatus); + tt->SetBranchAddress("H.hod.starttime", &HhodStartTime); + tt->SetBranchAddress("H.hod.fpHitsTime", &HhodfpHitsTime); + + tt->SetBranchAddress("H.gtr.x", &HgtrX); + tt->SetBranchAddress("H.gtr.th", &HgtrTh); + tt->SetBranchAddress("H.gtr.y", &HgtrY); + tt->SetBranchAddress("H.gtr.ph", &HgtrPh); + + tt->SetBranchAddress("P.gtr.x", &PgtrX); + tt->SetBranchAddress("P.gtr.th", &PgtrTh); + tt->SetBranchAddress("P.gtr.y", &PgtrY); + tt->SetBranchAddress("P.gtr.ph", &PgtrPh); + + tt->SetBranchAddress("T.coin.pTRIG1_ROC1_tdcTimeRaw", &TcoinpTRIG1_ROC1_tdcTimeRaw); + tt->SetBranchAddress("T.coin.pTRIG4_ROC1_tdcTimeRaw", &TcoinpTRIG4_ROC1_tdcTimeRaw); + tt->SetBranchAddress("T.coin.pTRIG1_ROC2_tdcTimeRaw", &TcoinpTRIG1_ROC2_tdcTimeRaw); + tt->SetBranchAddress("T.coin.pTRIG4_ROC2_tdcTimeRaw", &TcoinpTRIG4_ROC2_tdcTimeRaw); + + tt->SetBranchAddress("T.coin.hTRIG1_ROC1_tdcTimeRaw", &TcoinhTRIG1_ROC1_tdcTimeRaw); + tt->SetBranchAddress("T.coin.hTRIG4_ROC1_tdcTimeRaw", &TcoinhTRIG4_ROC1_tdcTimeRaw); + tt->SetBranchAddress("T.coin.hTRIG1_ROC2_tdcTimeRaw", &TcoinhTRIG1_ROC2_tdcTimeRaw); + tt->SetBranchAddress("T.coin.hTRIG4_ROC2_tdcTimeRaw", &TcoinhTRIG4_ROC2_tdcTimeRaw); + + SHMSpartMass = 0.93827208; // proton mass in GeV/c^2 + HMSpartMass = 0.000510998; // electron mass in GeV/c^2 + hpdelta = "P.gtr.dp > -10 && P.gtr.dp < 10 && H.gtr.dp > -8 && H.gtr.dp < 8"; + eBetaCut = "P.gtr.beta > 0.8 && P.gtr.beta < 1.3"; + pBetaCut = "H.gtr.beta > 0.8 && H.gtr.beta < 1.3"; + cerCut = "P.hgcer.npeSum < 0.1 && H.cer.npeSum > 0.5"; + calCut = "H.cal.etottracknorm > 0.8 && H.cal.etottracknorm < 1.5 && H.cal.eprtracknorm > 0.2"; + hodoTimeCut ="P.hod.goodstarttime == 1 && H.hod.goodstarttime == 1"; + Wcut = "H.kin.primary.W >0.75 && H.kin.primary.W < 1.1"; + + + + TCanvas *canvas1 = new TCanvas("canvas1","canvas1"); + tt->Draw("P.hod.starttime >> SHMShodoStartTime", eBetaCut && pBetaCut && cerCut && calCut && hodoTimeCut); + TH1D *h1PhodoStartTime = (TH1D*)gDirectory->Get("SHMShodoStartTime"); + h1PhodoStartTime->GetXaxis()->SetTitle("SHMS hodo start time [ns]"); + Double_t PhodoStartTimeMean = h1PhodoStartTime->GetMean(); + TCanvas *canvas2 = new TCanvas("canvas2","canvas2"); + tt->Draw("H.hod.starttime >> HMShodoStartTime", eBetaCut && pBetaCut && cerCut && calCut && hodoTimeCut); + TH1D *h1HhodoStartTime = (TH1D*)gDirectory->Get("HMShodoStartTime"); + h1HhodoStartTime->GetXaxis()->SetTitle("HMS hodo start time [ns]"); + Double_t HhodoStartTimeMean = h1HhodoStartTime->GetMean(); + + + Double_t pOffset = 3.0; //9.5 + 10; // in ns + Double_t hOffset = 335; + Double_t speedOfLight = 29.9792; // in cm/ns + Double_t SHMScentralPathLen = 18.1*100; // SHMS Target to focal plane path length converted to cm + Double_t SHMSpathLength = 18.1*100; // For now assume that it's same as SHMScentralPathLen + Double_t HMScentralPathLen = 22*100; // HMS Target to focal plane path length converted to cm + Double_t DeltaHMSpathLength; // For now assume that it's same as HMScentralPathLen + Double_t SHMScoinCorr = 0.0; + Double_t HMScoinCorr = 0.0; + Double_t SHMSrawCoinTimeROC1; + Double_t SHMSrawCoinTimeROC2; + Double_t HMSrawCoinTimeROC1; + Double_t HMSrawCoinTimeROC2; + + Double_t SHMScorrCoinTimeROC1; + Double_t SHMScorrCoinTimeROC2; + Double_t HMScorrCoinTimeROC1; + Double_t HMScorrCoinTimeROC2; + + for (int kk=0; kk<nentriesD; kk++){ + tt->GetEntry(kk); + if (kk % 50000 == 0) cout << kk*100/nentriesD << " % of data done" << endl; + evtType = tt->GetLeaf("fEvtHdr.fEvtType")->GetValue(); + if (pbeta>0.7 && pbeta<1.5 && hbeta>0.8 && hbeta<1.2 && hcernpe>0 && hcaletot >0.6 && hcaletot<1.5 && PhodStatus == 1 && HhodStatus ==1 && hdelta > -10 && hdelta < 10 && pdelta > -12 && pdelta < 12 && pcernpe < 0.5) + { + DeltaHMSpathLength = 12.462*HgtrTh + 0.1138*HgtrTh*HgtrX - 0.0154*HgtrX - 72.292*HgtrTh*HgtrTh - 0.0000544*HgtrX*HgtrX - 116.52*HgtrPh*HgtrPh; + PgtrBetaCalc = PgtrP/sqrt(PgtrP*PgtrP + SHMSpartMass*SHMSpartMass); + HgtrBetaCalc = HgtrP/sqrt(HgtrP*HgtrP + HMSpartMass*HMSpartMass); + SHMScoinCorr = SHMScentralPathLen / (speedOfLight*PgtrBetaCalc) + (SHMSpathLength - SHMScentralPathLen) / speedOfLight*PgtrBetaCalc + (PhodoStartTimeMean - PhodfpHitsTime); + HMScoinCorr = HMScentralPathLen / (speedOfLight*HgtrBetaCalc) + DeltaHMSpathLength / speedOfLight*HgtrBetaCalc + (HhodoStartTimeMean - HhodfpHitsTime); + SHMScorrCoinTimeROC1 = (TcoinpTRIG1_ROC1_tdcTimeRaw*0.1 - SHMScoinCorr) - (TcoinpTRIG4_ROC1_tdcTimeRaw*0.1 - HMScoinCorr) - pOffset; // 0.1 to convert to ns + SHMScorrCoinTimeROC2 = (TcoinpTRIG1_ROC2_tdcTimeRaw*0.1 - SHMScoinCorr) - (TcoinpTRIG4_ROC2_tdcTimeRaw*0.1 - HMScoinCorr) - pOffset; + h1PcointimeROC1->Fill(SHMScorrCoinTimeROC1); + h1PcointimeROC2->Fill(SHMScorrCoinTimeROC2); + h_hdelta->Fill(hdelta); + h_hxptar->Fill(HgtrPh); + h_hyptar->Fill(HgtrTh); + h_hytar->Fill(HgtrY); + h_pdelta->Fill(pdelta); + h_pxptar->Fill(PgtrPh); + h_pyptar->Fill(PgtrTh); + h_pytar->Fill(PgtrY); + h_Emd->Fill(pEm+0.025); + h_Wd->Fill(pkinW); + h_pmd->Fill(pPm-0.04); + cnts++; + } + + } + + + + gROOT->SetBatch(kFALSE); + + TCanvas *can1 = new TCanvas ("can1","can1"); + can1->Divide(4,2); + + can1->cd(1); + h_hdelta->Draw(); + can1->cd(2); + h_hxptar->Draw(); + can1->cd(3); + h_hyptar->Draw(); + can1->cd(4); + h_hytar->Draw(); + can1->cd(5); + h_pdelta->Draw(); + can1->cd(6); + h_pxptar->Draw(); + can1->cd(7); + h_pyptar->Draw(); + can1->cd(8); + h_pytar->Draw(); + // can1->SaveAs("tmp1.pdf"); + + TCanvas *can2 = new TCanvas ("can2","can2"); + can2->Divide(2,2); + can2->cd(1); + h_Wd->Draw(); + can2->cd(2); + h_Emd->Draw(); + can2->cd(3); + h_pmd->Draw(); + can2->cd(4); + h1PcointimeROC1->Draw(); + + // can2->SaveAs("tmp.pdf"); + + fout->Write(); + // fout->Close(); + cout << "-------------------------------------------------------------------------------------------------------" << endl; + cout << "NOTE:>>>> " << cnts <<" <<<<< GOOD EVENTS have passed all cuts (update the white board and excel sheet)" << endl; + cout << "-------------------------------------------------------------------------------------------------------" << endl; + +} diff --git a/SCRIPTS/COIN/MONITOR/coin_histo.C b/SCRIPTS/COIN/MONITOR/coin_histo.C new file mode 100644 index 00000000..33dc1f0a --- /dev/null +++ b/SCRIPTS/COIN/MONITOR/coin_histo.C @@ -0,0 +1,119 @@ +// Small code to check the histograms for the coincidence runs + +#include "TFile.h" +#include "TTree.h" +#include "TH1F.h" +#include "TF1.h" +#include "TGraph.h" +#include <fstream> +#include <iostream> +#include <TROOT.h> + + +void + +coin_histo(){ + + Int_t run_NUM ; + cout << "hms_run_NUM "<< endl; + cin >> run_NUM ; + + + TFile *f = new TFile(Form("/net/cdaq/cdaql3data/cdaq/hallc-online/ROOTfiles/coin_replay_production_%d_-1.root",run_NUM),"READ"); // %d : expects integer; %f expects float + + + TTree *T = (TTree*)f->Get("T"); + + + Int_t totev = T->GetEntries(); + cout << totev << endl; + + + // Read the branch + + Double_t HkinQ2; + Double_t HkinW; + Double_t pkinpmiss; + Double_t pkinemiss; + Double_t Hgtrdp; + Double_t Hgtrbeta; + Double_t Pgtrdp; + Double_t Pgtrbeta; + Double_t Hgtrph; + Double_t Hgtrth; + Double_t Hgtry; + Double_t Pgtrph; + Double_t Pgtrth; + Double_t Pgtry; + Double_t hcernpe; + Double_t pcernpe; + Double_t hcalepr; + Double_t hcaletot; + + + + + T->SetBranchAddress("H.kin.primary.Q2", &HkinQ2); + T->SetBranchAddress("H.kin.primary.W", &HkinW); + T->SetBranchAddress("P.kin.secondary.pmiss",&pkinpmiss); + T->SetBranchAddress("P.kin.secondary.emiss",&pkinemiss); + T->SetBranchAddress("H.gtr.dp",&Hgtrdp); + T->SetBranchAddress("H.gtr.beta",&Hgtrbeta); + T->SetBranchAddress("P.gtr.dp",&Pgtrdp); + T->SetBranchAddress("P.gtr.beta",&Pgtrbeta); + T->SetBranchAddress("H.gtr.ph",&Hgtrph); + T->SetBranchAddress("H.gtr.th",&Hgtrth); + T->SetBranchAddress("H.gtr.y",&Hgtry); + T->SetBranchAddress("P.gtr.ph",&Pgtrph); + T->SetBranchAddress("P.gtr.th",&Pgtrth); + T->SetBranchAddress("P.gtr.y",&Pgtry); + T->SetBranchAddress("H.cal.eprtracknorm", &hcalepr); + T->SetBranchAddress("P.hgcer.npeSum", &pcernpe); + T->SetBranchAddress("H.cer.npeSum", &hcernpe); + T->SetBranchAddress("H.cal.etottracknorm", &hcaletot); + + //Creating the histogram + TH1F* hHkinQ2 =new TH1F("HkinQ2","HkinQ2",50,5,15); + TH1F* hHkinW = new TH1F("HkinW","HkinW",50,0,2); + TH1F* hpkinpmiss = new TH1F("pkinpmiss","pkinpmiss",50,-0.2,0.2); + TH1F* hpkinemiss = new TH1F("pkinemiss","pkinemiss",50,-100,100); + TH1F* hHgtrdp = new TH1F("Hgtrdp","Hgtrdp",50,-15,15); + TH1F* hHgtrbeta = new TH1F("Hgtrbeta","hgtrbeta",50,0.5,1.5); + TH1F* hPgtrdp = new TH1F("Pgtrdp","Pgtrdp",100,-15,15); + TH1F* hPgtrbeta= new TH1F("Pgtrbeta","Pgtrbeta",50,0.5,1.5); + TH1F* hHgtrph = new TH1F("Hgtrph","Hgtrph",50,-0.1,0.1); + TH1F* hHgtrth= new TH1F("Hgtrth","Hgtrth",50,-0.1,0.1); + TH1F* hHgtry=new TH1F("Hgtry","Hgtry",50,-10,10); + TH1F* hPgtrph = new TH1F("Pgtrph","Pgtrph",50, -0.1, 0.1); + TH1F* hPgtrth= new TH1F("Pgtrth","Pgtrth",50,-0.1,0.1); + TH1F* hPgtry=new TH1F("Pgtry","Pgtry",50,-10,10); + TH1F* hHcernpe=new TH1F("hcernpe","hcernpe",50,0,20); + TH1F* hPcernpe=new TH1F("pcernpe","pcernpe",50,0,20); + TH1F* hHcaletot=new TH1F("hcaletot","hcaletot",50,0,2.0); + TH1F* hHcalepr=new TH1F("hcalepr","hcalepr",50,0,2.0); + + //Fill the Histogram + for (Int_t iev = 0 ; iev < totev ;iev ++){ + T->GetEntry(iev); + hHcalepr->Fill(hcalepr); + hHcaletot->Fill(hcaletot); + hHcernpe->Fill(hcernpe); + hPcernpe->Fill(pcernpe); + hHkinQ2 ->Fill(HkinQ2); + hHkinW ->Fill(HkinW); + hpkinpmiss ->Fill(pkinpmiss); + hpkinemiss ->Fill(pkinemiss); + hHgtrdp ->Fill(Hgtrdp); + hHgtrbeta -> Fill(Hgtrbeta); + hPgtrdp -> Fill(Pgtrdp); + hPgtrbeta-> Fill(Pgtrbeta); + hHgtrph -> Fill(Hgtrph); + hHgtrth-> Fill(Hgtrth); + hHgtry->Fill(Hgtry); + hPgtrph->Fill(Pgtrph); + hPgtrth->Fill(Pgtrth); + hPgtry->Fill(Pgtry); + + + } +} diff --git a/SCRIPTS/COIN/MONITOR/coin_yield.root b/SCRIPTS/COIN/MONITOR/coin_yield.root new file mode 100644 index 0000000000000000000000000000000000000000..a95e65fcc1d0ca6cfb100fe174b6ab654dfa0dd7 GIT binary patch literal 6904 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 literal 0 HcmV?d00001 diff --git a/SCRIPTS/COIN/MONITOR/temp.sh b/SCRIPTS/COIN/MONITOR/temp.sh new file mode 100755 index 00000000..d0e2c2ef --- /dev/null +++ b/SCRIPTS/COIN/MONITOR/temp.sh @@ -0,0 +1,13 @@ +#!/bin/bash +../../../hcana -q "yield_calc.C(2023,1,1)" +../../../hcana -q "yield_calc.C(2046,1,1)" +../../../hcana -q "yield_calc.C(2047,1,1)" +../../../hcana -q "yield_calc.C(2048,1,1)" +../../../hcana -q "yield_calc.C(2049,1,1)" +../../../hcana -q "yield_calc.C(2050,1,1)" +../../../hcana -q "yield_calc.C(2051,1,1)" +../../../hcana -q "yield_calc.C(2052,1,1)" +../../../hcana -q "yield_calc.C(2053,1,1)" +../../../hcana -q "yield_calc.C(2054,1,1)" +../../../hcana -q "yield_calc.C(2055,3,1)" +../../../hcana -q "yield_calc.C(2056,2,1)" diff --git a/SCRIPTS/COIN/MONITOR/yield.README b/SCRIPTS/COIN/MONITOR/yield.README new file mode 100644 index 00000000..530f1cd0 --- /dev/null +++ b/SCRIPTS/COIN/MONITOR/yield.README @@ -0,0 +1,11 @@ +1) Calculate yield + 1) ../hcana yield_calc.C + 2) Enter run number + 3) Enter index specifying target + + It will warn you if you're overwriting a run already in coin_yield.root, + but this might be what you want to do! + +2) Plot yield per run + 1) ../hcana yield_graph.C + 2) Make sure yield hasn't fluctuated diff --git a/SCRIPTS/COIN/MONITOR/yield_calc.C b/SCRIPTS/COIN/MONITOR/yield_calc.C new file mode 100644 index 00000000..adf9043d --- /dev/null +++ b/SCRIPTS/COIN/MONITOR/yield_calc.C @@ -0,0 +1,125 @@ +void yield_calc(Int_t RunNumber = 0, Int_t TargetType = 0, Int_t KinematicsType = 0) +{ + + // Get RunNumber if not provided. + if(RunNumber == 0) { + cout << "Enter a Run Number (-1 to exit): "; + cin >> RunNumber; + if( RunNumber<=0 ) return; + } + + // Get if not provided. + if(TargetType == 0) { + cout << "Enter a target (1=LH2, 2=6% Carbon, 3=dummy, -1 to exit): "; + cin >> TargetType; + if( TargetType<=0 ) return; + } + + // Get KinematicsType if not provided. + //if(KinematicsType == 0) { + // cout << "Enter a kinematics index (see yield.README; -1 to exit): "; + // cin >> KinematicsType; + // if( KinematicsType<=0 ) return; + //} + + // Open root file + char* ROOTFileNamePattern = "../../../ROOTfiles/coin_replay_production_%d_-1.root"; + TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber); + TFile* hcanaF = new TFile(ROOTFileName); + TTree* tsp = (TTree*)hcanaF->Get("TSP"); + TTree* tsh = (TTree*)hcanaF->Get("TSH"); + + // Set up tree variables + double pQ_BCM1, pQ_BCM2, pN_trig, pQ_avg; + tsp->SetBranchAddress("P.BCM1.scalerChargeCut",&pQ_BCM1); + tsp->SetBranchAddress("P.BCM2.scalerChargeCut",&pQ_BCM2); + tsp->SetBranchAddress("P.pTRIG6.scalerCut",&pN_trig); + + double hQ_BCM1, hQ_BCM2, hN_trig, hQ_avg; + tsh->SetBranchAddress("H.BCM1.scalerChargeCut",&hQ_BCM1); + tsh->SetBranchAddress("H.BCM2.scalerChargeCut",&hQ_BCM2); + tsh->SetBranchAddress("H.hTRIG6.scalerCut",&hN_trig); + + // correct value is last in the scaler tree? + int pN=tsp->GetEntries()-1; + int hN=tsp->GetEntries()-1; + tsp->GetEntry(pN); + tsh->GetEntry(hN); + + // Yield per mC + double pYield = 1000 * pN_trig / ((pQ_BCM1 + pQ_BCM2)/2.0); + double hYield = 1000 * hN_trig / ((hQ_BCM1 + hQ_BCM2)/2.0); + + delete hcanaF; + + // Open old data, copy to new tree. + // We skip if an old datum's run number matches the one the user specified. + TFile* newYieldF = new TFile("coin_yield_new.root", "RECREATE"); + TTree* TY_new = new TTree("Y","coin_yield tree"); + int run_new, tgt_new, kin_new, pN_trig_new, hN_trig_new; + double pYpc_new, hYpc_new, pQ_new, hQ_new; + TY_new->Branch("run",&run_new); + TY_new->Branch("tgt",&tgt_new); + TY_new->Branch("kin",&kin_new); + TY_new->Branch("pYpc",&pYpc_new); + TY_new->Branch("hYpc",&hYpc_new); + TY_new->Branch("pN_trig",&pN_trig_new); + TY_new->Branch("hN_trig",&hN_trig_new); + TY_new->Branch("pQ",&pQ_new); + TY_new->Branch("hQ",&hQ_new); + + TFile* yieldF = new TFile("coin_yield.root","READ"); + TTree* TY_old = (TTree*)yieldF->Get("Y"); + + int run_old, tgt_old, kin_old, pN_trig_old, hN_trig_old; + double pYpc_old, hYpc_old, pQ_old, hQ_old; + TY_old->SetBranchAddress("run",&run_old); + TY_old->SetBranchAddress("tgt",&tgt_old); + TY_old->SetBranchAddress("kin",&kin_old); + TY_old->SetBranchAddress("pYpc",&pYpc_old); + TY_old->SetBranchAddress("hYpc",&hYpc_old); + TY_old->SetBranchAddress("pN_trig",&pN_trig_old); + TY_old->SetBranchAddress("hN_trig",&hN_trig_old); + TY_old->SetBranchAddress("pQ",&pQ_old); + TY_old->SetBranchAddress("hQ",&hQ_old); + + newYieldF->cd(); + for (int i=0; i<TY_old->GetEntries(); i++) { + TY_old->GetEntry(i); + + // Skip if matches user specified run + if (run_old == RunNumber) { + cout << "WARNING: Overwriting run " << RunNumber << endl; + continue; + } + + run_new = run_old; + tgt_new = tgt_old; + kin_new = kin_old; + pYpc_new = pYpc_old; + hYpc_new = hYpc_old; + pN_trig_new = pN_trig_old; + hN_trig_new = pN_trig_old; + pQ_new = pQ_old; + hQ_new = hQ_old; + + TY_new->Fill(); + } + + // Add user specified run + run_new = RunNumber; + tgt_new = TargetType; + kin_new = KinematicsType; + pYpc_new = pYield; + hYpc_new = hYield; + pN_trig_new = pN_trig; + hN_trig_new = hN_trig; + pQ_new = ((pQ_BCM1 + pQ_BCM2)/2.0) / 1000.0; + hQ_new = ((hQ_BCM1 + hQ_BCM2)/2.0) / 1000.0; + TY_new->Fill(); + + // Rename new root file to old one + newYieldF->Write(); + newYieldF->Close(); + gSystem->Exec("mv coin_yield_new.root coin_yield.root"); +} diff --git a/SCRIPTS/COIN/MONITOR/yield_graph.C b/SCRIPTS/COIN/MONITOR/yield_graph.C new file mode 100644 index 00000000..9024e411 --- /dev/null +++ b/SCRIPTS/COIN/MONITOR/yield_graph.C @@ -0,0 +1,50 @@ +void yield_graph() { + TFile* yieldF = new TFile("coin_yield.root","READ"); + TTree* TY=(TTree*)yieldF->Get("Y"); + + gStyle->SetOptTitle(kFALSE); + gStyle->SetPalette(1); + + TCut hCut = "tgt==1"; + Y->Draw("run:pYpc:(sqrt(pN_trig)/pQ)",hCut,"goff"); + TGraphErrors* gHydrogen = new TGraphErrors(Y->GetEntries(),Y->GetV1(),Y->GetV2(),0,Y->GetV3()); + + TCut cCut = "tgt==2"; + Y->Draw("run:pYpc:(sqrt(pN_trig)/pQ)",cCut,"goff"); + TGraphErrors* gCarbon = new TGraphErrors(Y->GetEntries(),Y->GetV1(),Y->GetV2(),0,Y->GetV3()); + + TCut dCut = "tgt==3"; + Y->Draw("run:pYpc:(sqrt(pN_trig)/pQ)",dCut,"goff"); + TGraphErrors* gDummy = new TGraphErrors(Y->GetEntries(),Y->GetV1(),Y->GetV2(),0,Y->GetV3()); + + gHydrogen->SetLineColor(kRed); + gCarbon->SetLineColor(kGreen); + gDummy->SetLineColor(kBlack); + + // Get min and max run number + Y->Draw("run>>htemp","","goff"); + int runMin = htemp->GetXaxis()->GetXmin() - 5; + int runMax = htemp->GetXaxis()->GetXmax() + 5; + + TCanvas* c = new TCanvas("c", "Coincidence yield per run", 800, 600); + int maxYield = 20; + c->DrawFrame(runMin,0,runMax,maxYield); + + TMultiGraph *mg = new TMultiGraph("mg", "Coincidence yield per run"); + mg->Add(gHydrogen); + mg->Add(gCarbon); + //mg->Add(gDummy); + mg->SetTitle("Coincidence yield per run"); //doesn't work?? + mg->GetXaxis()->SetTitle("Run Number"); + mg->GetYaxis()->SetTitle("Yield per mC"); + + mg->Draw("P"); + + TLegend *leg = new TLegend(0.15, 0.7, 0.25, 0.8); + leg->SetFillColor(0); + leg->AddEntry(gHydrogen, "Hydrogen", "lp"); + leg->AddEntry(gCarbon, "Carbon", "lp"); + //leg->AddEntry(gDummy, "Dummy", "lp"); + leg->Draw(); + +} diff --git a/TEMPLATES/COIN/SCALERS/coinscalers.template b/TEMPLATES/COIN/SCALERS/coinscalers.template index 8b1b2041..c4993c08 100644 --- a/TEMPLATES/COIN/SCALERS/coinscalers.template +++ b/TEMPLATES/COIN/SCALERS/coinscalers.template @@ -16,8 +16,7 @@ SHMS P Central : {ppcentral} SHMS Angle : {ptheta_lab} SHMS Run Length : {P.1Mhz.scalerTime:%.3f} sec - -HMS Run Length : {H.1Mhz.scalerTime:%.3f} sec +HMS Run Length : {H.1Mhz.scalerTime:%.3f} sec *********** * Beamline @@ -100,26 +99,112 @@ Ps6_factor : {gpconfig_ti_ps_factors[5]} * Triggers *********** -=:=:=:=:=:=:=: -= 3/4 Trigger -=:=:=:=:=:=:=: +=:=:=:=:=:=:=:=:=:= += SHMS 3/4 Trigger +=:=:=:=:=:=:=:=:=:= Total SHMS 3/4 Triggers : {P.pTRIG1.scaler} Pre-Scaled SHMS 3/4 Triggers : {(P.pTRIG1.scaler/gpconfig_ti_ps_factors[0]):%.0f} -Estimated SHMS 3/4 Triggers : {P.pTRIG1.scalerRate*(P.1Mhz.scaler/1000000.):%.0f} +Estimated SHMS 3/4 Triggers : {P.pTRIG1.scalerRate*P.1Mhz.scalerTime:%.0f} SHMS 3/4 Trigger Rate : {P.pTRIG1.scalerRate/1000.:%.3f} kHz Accepted SHMS Triggers : {pTRIG1_ROC2.npassed} SHMS Event Types : {SHMS_Pretrig.npassed} +=:=:=:=:=:=:=:=:=: += HMS 3/4 Trigger +=:=:=:=:=:=:=:=:=: + +Total HMS 3/4 Triggers : {H.hTRIG1.scaler} +Pre-Scaled HMS 3/4 Triggers : {(H.hTRIG1.scaler/gpconfig_ti_ps_factors[0]):%.0f} +HMS 3/4 Trigger Rate : {H.hTRIG1.scalerRate/1000.:%.3f} kHz +Estimated HMS 3/4 Triggers : {H.hTRIG1.scalerRate*H.1Mhz.scalerTime:%.0f} +Accepted HMS Triggers : {pTRIG4_ROC2.npassed} +HMS Event Types : {HMS_Pretrig.npassed} + +=:=:=:=: += EDTM +=:=:=:=: + +SHMS EDTM Triggers : {P.EDTM.scaler} +SHMS Estimated EDTM Triggers : {P.EDTM.scalerRate*P.1Mhz.scalerTime:%.0f} +SHMS EDTM Trigger Rate : {P.EDTM.scalerRate/1000.:%.3f} kHz +SHMS Accepted EDTM Triggers : {SHMS_edtm_accepted.npassed} + +HMS EDTM Triggers : {H.EDTM.scaler} +HMS Estimated EDTM Triggers : {H.EDTM.scalerRate*H.1Mhz.scalerTime:%.0f} +HMS EDTM Trigger Rate : {H.EDTM.scalerRate/1000.:%.3f} kHz +HMS Accepted EDTM Triggers : {HMS_edtm_accepted.npassed} + +Number of EDTM V2 : {P.pEDTM_V2.scaler} +EDTM V2 Rate : {P.pEDTM_V2.scalerRate/1000.:%.3f} kHz +EDTM/EDTM_V2 Ratio : {P.EDTM.scaler/P.pEDTM_V2.scaler} + =:=:=:=:=:=:=:=:=:=:=:=: -= Physics 3/4 Triggers += SHMS Level 1 Accept =:=:=:=:=:=:=:=:=:=:=:=: +Number of L1A : {P.pL1ACCP.scaler} +L1A Rate : {P.pL1ACCP.scalerRate/1000.:%.3f} kHz +pTRIG1/L1A : {P.pTRIG1.scaler/P.pL1ACCP.scaler} + +=:=:=:=:=:=:=:=:=:=: += HMS Level 1 Accept +=:=:=:=:=:=:=:=:=:=: + +Number of L1A : {H.hL1ACCP.scaler} +L1A Rate : {H.hL1ACCP.scalerRate/1000.:%.3f} kHz +hTRIG1/L1A : {H.hTRIG1.scaler/H.hL1ACCP.scaler} + +=:=:=:=:=:=:=:=:=:=: += HMS Sanity Checks +=:=:=:=:=:=:=:=:=:=: + +EDTM Scaler Counts : {H.EDTM.scaler} +EDTM Copy Scaler Counts : {H.EDTM_CP.scaler} +Ratio : {H.EDTM.scaler/H.EDTM_CP.scaler} + +pTRIG1 Scaler Counts : {H.pTRIG1.scaler} +pTRIG1 Copy Scaler Counts : {H.pTRIG1_CP.scaler} +Ratio : {H.pTRIG1.scaler/H.pTRIG1_CP.scaler} + +1 MHz Scaler Counts : {H.1Mhz.scaler} +1 MHz Copy Scaler Counts : {H.1MHz_CP.scaler} +Ratio : {H.1Mhz.scaler/H.1MHz_CP.scaler} + +=:=:=:=:=:=:=:=:=:=: += SHMS Sanity Checks +=:=:=:=:=:=:=:=:=:=: + +EDTM Scaler Counts : {P.EDTM.scaler} +EDTM Copy Scaler Counts : {P.EDTM_CP.scaler} +Ratio : {P.EDTM.scaler/P.EDTM_CP.scaler} + +pTRIG1 Scaler Counts : {P.pTRIG1.scaler} +pTRIG1 Copy Scaler Counts : {P.pTRIG1_CP.scaler} +Ratio : {P.pTRIG1.scaler/P.pTRIG1_CP.scaler} + +1 MHz Scaler Counts : {P.1Mhz.scaler} +1 MHz Copy Scaler Counts : {P.1MHz_CP.scaler} +Ratio : {P.1Mhz.scaler/P.1MHz_CP.scaler} + +=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: += SHMS Physics 3/4 Triggers +=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: + SHMS Physics 3/4 Triggers : {P.pTRIG1.scaler - P.EDTM.scaler} -SHMS Estimated Physics 3/4 Triggers : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)*(P.1Mhz.scaler/1000000.):%.0f} +SHMS Estimated Physics 3/4 Triggers : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)*P.1Mhz.scalerTime:%.0f} SHMS Physics 3/4 Trigger Rate : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)/1000.:%.3f} kHz SHMS Accepted Physics Triggers : {SHMS_physics_accepted.npassed} +=:=:=:=:=:=:=:=:=:=:=:=:=:=: += HMS Physics 3/4 Triggers +=:=:=:=:=:=:=:=:=:=:=:=:=:=: + +Physics 3/4 Triggers : {H.hTRIG1.scaler - H.EDTM.scaler} +Estimated Physics 3/4 Triggers : {(H.hTRIG1.scalerRate - H.EDTM.scalerRate)*H.1Mhz.scalerTime:%.0f} +Physics 3/4 Trigger Rate : {(H.hTRIG1.scalerRate - H.EDTM.scalerRate)/1000.:%.3f} kHz +Accepted Physics Triggers : {HMS_physics_accepted.npassed} + =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: = Coin Trigger TDC Data scalers =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: @@ -205,22 +290,6 @@ SHMS_hTRIG4 : {P.hTRIG4.scaler} [ {(P.hTRIG4.scaler/P.1Mhz.scalerTime)/1000.: SHMS_hTRIG5 : {P.hTRIG5.scaler} [ {(P.hTRIG5.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] SHMS_hTRIG6 : {P.hTRIG6.scaler} [ {(P.hTRIG6.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] -=:=:=:=: -= EDTM -=:=:=:=: - -SHMS EDTM Triggers : {P.EDTM.scaler} -SHMS Estimated EDTM Triggers : {P.EDTM.scalerRate*(P.1Mhz.scaler/1000000.):%.0f} -SHMS EDTM Trigger Rate : {P.EDTM.scalerRate/1000.:%.3f} kHz -SHMS Accepted EDTM Triggers : {SHMS_edtm_accepted.npassed} - -HMS EDTM Triggers : {H.EDTM.scaler} -HMS Estimated EDTM Triggers : {H.EDTM.scalerRate*(H.1Mhz.scaler/1000000.):%.0f} -HMS EDTM Trigger Rate : {H.EDTM.scalerRate/1000.:%.3f} kHz -HMS Accepted EDTM Triggers : {HMS_edtm_accepted.npassed} - - - =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: = Live/Dead Time Calculations =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: @@ -264,44 +333,6 @@ ROC2 OG 6 GeV Electronic Dead Time (100, 200) : {((P.pPRE100.scaler - P.pPRE200. ROC2 OG 6 GeV Electronic Live Time (150, 200) : {100.0 - ((P.pPRE150.scaler - P.pPRE200.scaler)/P.pPRE150.scaler):%3.4f} % ROC2 OG 6 GeV Electronic Dead Time (150, 200) : {((P.pPRE150.scaler - P.pPRE200.scaler)/P.pPRE150.scaler):%3.4f} % -=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= -= Live/Dead Time Calculations WITH BEAM CUTS (Only count scaler reads when there is beam) -NOTE: This will only work if ther is only one input enabled, as the L1Acc is an 'OR' of all inputs -=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= - -Fraction on BEAM ON TIME: {P.1Mhz.scalerTimeCut/P.1Mhz.scalerTime} - - -Total EDTM Counts: {P.EDTM.scaler} -EDTM Scaler Counts w/Beam > {gBCM_Current_threshold} uA: {P.EDTM.scalerCut} -Pre-ScaleD Ps4 EDTM Counts w/Beam > {gBCM_Current_threshold} uA: {P.EDTM.scalerCut/gpconfig_ti_ps_factors[3]} - -EDTM Scaler Counts w/Beam < {gBCM_Current_threshold} uA: {P.EDTM.scaler - P.EDTM.scalerCut} -PreScaled Ps4 EDTM Scaler Counts w/Beam < {gBCM_Current_threshold} uA: {(P.EDTM.scaler - P.EDTM.scalerCut)/gpconfig_ti_ps_factors[3]} - - -L1 Acc scaler: {P.pL1ACCP.scaler} -PTRIG4_ROC2: {pTRIG4_ROC2.npassed} - -L1 Acc scaler w/Beam > {gBCM_Current_threshold} uA: {P.pL1ACCP.scalerCut} -L1 Acc scaler w/Beam < {gBCM_Current_threshold} uA: {P.pL1ACCP.scaler - P.pL1ACCP.scalerCut} - - -EDTM L1 Acc w/Beam > {gBCM_Current_threshold} uA: {SHMS_edtm_accepted.npassed*(P.1Mhz.scalerTimeCut/P.1Mhz.scalerTime)} - - -Pre-Scaled Ps4 Total Live Time w/Beam > {gBCM_Current_threshold} uA: {(SHMS_edtm_accepted.npassed*(P.1Mhz.scalerTimeCut/P.1Mhz.scalerTime)) / ( P.EDTM.scalerCut/gpconfig_ti_ps_factors[3])*100.0:%3.4f} % -Pre-Scaled Ps4 Total Live Time ver.2 : {(SHMS_edtm_accepted.npassed - (P.pL1ACCP.scaler - P.pL1ACCP.scalerCut) ) / (P.EDTM.scalerCut/gpconfig_ti_ps_factors[3])*100.0:%3.4f} % - -ROC2 Pre-Scaled Ps1 Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG1.scalerCut/gpconfig_ti_ps_factors[0]))*100.0:%3.4f} % -ROC2 Pre-Scaled Ps2 Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG2.scalerCut/gpconfig_ti_ps_factors[1]))*100.0:%3.4f} % -ROC2 Pre-Scaled Ps3 Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG3.scalerCut/gpconfig_ti_ps_factors[2]))*100.0:%3.4f} % -ROC2 Pre-Scaled Ps4 Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG4.scalerCut/gpconfig_ti_ps_factors[3]))*100.0:%3.4f} % -ROC2 Pre-Scaled Ps5 Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG5.scalerCut/gpconfig_ti_ps_factors[4]))*100.0:%3.4f} % -ROC2 Pre-Scaled Ps6 Computer Live Time : {(P.pL1ACCP.scalerCut / (P.pTRIG6.scalerCut/gpconfig_ti_ps_factors[5]))*100.0:%3.4f} % - - - =:=:=:=:=:=:=:=:=: = SHMS Hodoscopes =:=:=:=:=:=:=:=:=: @@ -314,9 +345,9 @@ P2Y : {P.S2Y.scaler} [ {(P.S2Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND b P1XP1Y : {P.S1XS1Y.scaler} [ {(P.S1XS1Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between P1X and P1Y planes P2XP2Y : {P.S2XS2Y.scaler} [ {(P.S2XS2Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between P2X and P2Y planes -=:=:=:=:=:=:=:=:=:=:=:=:= -= Aerogel, HGC, NGC, CAL -=:=:=:=:=:=:=:=:=:=:=:=:= +=:=:=:=:=:=:=:=:=:=:=:=:=:=:= += SHMS Aerogel, HGC, NGC, CAL +=:=:=:=:=:=:=:=:=:=:=:=:=:=:= AERO : {P.AERO.scaler} [ {(P.AERO.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] Aerogel sum currently not available HGC : {P.HCER.scaler} [ {(P.HCER.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] @@ -324,13 +355,13 @@ NGC : {P.NCER.scaler} [ {(P.NCER.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] PRLO : {P.PRLO.scaler} [ {(P.PRLO.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] PRHI : {P.PRHI.scaler} [ {(P.PRHI.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] -******************* -* Hardware Scalers -******************* +************************ +* SHMS Hardware Scalers +************************ -=:=:=:=:=:=:=: -= HODOSCOPES -=:=:=:=:=:=:=: +=:=:=:=:=:=:=:=:=: += SHMS HODOSCOPES +=:=:=:=:=:=:=:=:=: Scint Counts Rate P1X1+: {P.hod.1x1.posScaler} [ {(P.hod.1x1.posScalerRate/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] @@ -462,3 +493,149 @@ P2Y18-: {P.hod.2y18.negScaler} [ {(P.hod.2y18.negScaler/P.1Mhz.scalerTime)/1000. P2Y19-: {P.hod.2y19.negScaler} [ {(P.hod.2y19.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] P2Y20-: {P.hod.2y20.negScaler} [ {(P.hod.2y20.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] P2Y21-: {P.hod.2y21.negScaler} [ {(P.hod.2y21.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] + +=:=:=:=:=:=:=:=:=: += HMS Hodoscopes +=:=:=:=:=:=:=:=:=: + +H1X : {H.S1X.scaler} [ {(H.S1X.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of H1X +H1Y : {H.S1Y.scaler} [ {(H.S1Y.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of H1Y +H2X : {H.S2X.scaler} [ {(H.S2X.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of H2X +H2Y : {H.S2Y.scaler} [ {(H.S2Y.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of H2Y + +H1XH1Y : {H.S1XS1Y.scaler} [ {(H.S1XS1Y.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between H1X and H1Y planes +H2XH2Y : {H.S2XS2Y.scaler} [ {(H.S2XS2Y.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between H2X and H2Y planes + +=:=:=:=:=:=:=:=: += HMS CER, CAL +=:=:=:=:=:=:=:=: + +CER : {H.CER.scaler} [ {(H.CER.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +PRLO : {H.PRLO.scaler} [ {(H.PRLO.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +PRHI : {H.PRHI.scaler} [ {(H.PRHI.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +SHLO : {H.SHLO.scaler} [ {(H.SHLO.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +ASUM : {H.ASUM.scaler} [ {(H.ASUM.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +BSUM : {H.BSUM.scaler} [ {(H.BSUM.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +CSUM : {H.CSUM.scaler} [ {(H.CSUM.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +DSUM : {H.DSUM.scaler} [ {(H.DSUM.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] + +********************** +* HMS Hardware Scalers +********************** + +=:=:=:=:=:=:=:=: += HMS HODOSCOPES +=:=:=:=:=:=:=:=: + +Scint Counts Rate +H1X1+: {H.hod.1x1.posScaler} [ {(H.hod.1x1.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X2+: {H.hod.1x2.posScaler} [ {(H.hod.1x2.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X3+: {H.hod.1x3.posScaler} [ {(H.hod.1x3.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X4+: {H.hod.1x4.posScaler} [ {(H.hod.1x4.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X5+: {H.hod.1x5.posScaler} [ {(H.hod.1x5.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X6+: {H.hod.1x6.posScaler} [ {(H.hod.1x6.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X7+: {H.hod.1x7.posScaler} [ {(H.hod.1x7.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X8+: {H.hod.1x8.posScaler} [ {(H.hod.1x8.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X9+: {H.hod.1x9.posScaler} [ {(H.hod.1x9.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X10+: {H.hod.1x10.posScaler} [ {(H.hod.1x10.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X11+: {H.hod.1x11.posScaler} [ {(H.hod.1x11.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X12+: {H.hod.1x12.posScaler} [ {(H.hod.1x12.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X13+: {H.hod.1x13.posScaler} [ {(H.hod.1x13.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X14+: {H.hod.1x14.posScaler} [ {(H.hod.1x14.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X15+: {H.hod.1x15.posScaler} [ {(H.hod.1x15.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X16+: {H.hod.1x16.posScaler} [ {(H.hod.1x16.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] + +H1X1-: {H.hod.1x1.negScaler} [ {(H.hod.1x1.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X2-: {H.hod.1x2.negScaler} [ {(H.hod.1x2.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X3-: {H.hod.1x3.negScaler} [ {(H.hod.1x3.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X4-: {H.hod.1x4.negScaler} [ {(H.hod.1x4.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X5-: {H.hod.1x5.negScaler} [ {(H.hod.1x5.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X6-: {H.hod.1x6.negScaler} [ {(H.hod.1x6.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X7-: {H.hod.1x7.negScaler} [ {(H.hod.1x7.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X8-: {H.hod.1x8.negScaler} [ {(H.hod.1x8.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X9-: {H.hod.1x9.negScaler} [ {(H.hod.1x9.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X10-: {H.hod.1x10.negScaler} [ {(H.hod.1x10.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X11-: {H.hod.1x11.negScaler} [ {(H.hod.1x11.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X12-: {H.hod.1x12.negScaler} [ {(H.hod.1x12.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X13-: {H.hod.1x13.negScaler} [ {(H.hod.1x13.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X14-: {H.hod.1x14.negScaler} [ {(H.hod.1x14.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X15-: {H.hod.1x15.negScaler} [ {(H.hod.1x15.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1X16-: {H.hod.1x16.negScaler} [ {(H.hod.1x16.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] + +H1Y1+: {H.hod.1y1.posScaler} [ {(H.hod.1y1.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y2+: {H.hod.1y2.posScaler} [ {(H.hod.1y2.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y3+: {H.hod.1y3.posScaler} [ {(H.hod.1y3.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y4+: {H.hod.1y4.posScaler} [ {(H.hod.1y4.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y5+: {H.hod.1y5.posScaler} [ {(H.hod.1y5.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y6+: {H.hod.1y6.posScaler} [ {(H.hod.1y6.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y7+: {H.hod.1y7.posScaler} [ {(H.hod.1y7.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y8+: {H.hod.1y8.posScaler} [ {(H.hod.1y8.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y9+: {H.hod.1y9.posScaler} [ {(H.hod.1y9.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y10+: {H.hod.1y10.posScaler} [ {(H.hod.1y10.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] + +H1Y1-: {H.hod.1y1.negScaler} [ {(H.hod.1y1.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y2-: {H.hod.1y2.negScaler} [ {(H.hod.1y2.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y3-: {H.hod.1y3.negScaler} [ {(H.hod.1y3.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y4-: {H.hod.1y4.negScaler} [ {(H.hod.1y4.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y5-: {H.hod.1y5.negScaler} [ {(H.hod.1y5.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y6-: {H.hod.1y6.negScaler} [ {(H.hod.1y6.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y7-: {H.hod.1y7.negScaler} [ {(H.hod.1y7.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y8-: {H.hod.1y8.negScaler} [ {(H.hod.1y8.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y9-: {H.hod.1y9.negScaler} [ {(H.hod.1y9.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H1Y10-: {H.hod.1y10.negScaler} [ {(H.hod.1y10.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] + +H2X1+: {H.hod.2x1.posScaler} [ {(H.hod.2x1.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X2+: {H.hod.2x2.posScaler} [ {(H.hod.2x2.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X3+: {H.hod.2x3.posScaler} [ {(H.hod.2x3.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X4+: {H.hod.2x4.posScaler} [ {(H.hod.2x4.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X5+: {H.hod.2x5.posScaler} [ {(H.hod.2x5.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X6+: {H.hod.2x6.posScaler} [ {(H.hod.2x6.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X7+: {H.hod.2x7.posScaler} [ {(H.hod.2x7.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X8+: {H.hod.2x8.posScaler} [ {(H.hod.2x8.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X9+: {H.hod.2x9.posScaler} [ {(H.hod.2x9.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X10+: {H.hod.2x10.posScaler} [ {(H.hod.2x10.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X11+: {H.hod.2x11.posScaler} [ {(H.hod.2x11.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X12+: {H.hod.2x12.posScaler} [ {(H.hod.2x12.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X13+: {H.hod.2x13.posScaler} [ {(H.hod.2x13.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X14+: {H.hod.2x14.posScaler} [ {(H.hod.2x14.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X15+: {H.hod.2x15.posScaler} [ {(H.hod.2x15.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X16+: {H.hod.2x16.posScaler} [ {(H.hod.2x16.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] + +H2X1-: {H.hod.2x1.negScaler} [ {(H.hod.2x1.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X2-: {H.hod.2x2.negScaler} [ {(H.hod.2x2.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X3-: {H.hod.2x3.negScaler} [ {(H.hod.2x3.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X4-: {H.hod.2x4.negScaler} [ {(H.hod.2x4.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X5-: {H.hod.2x5.negScaler} [ {(H.hod.2x5.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X6-: {H.hod.2x6.negScaler} [ {(H.hod.2x6.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X7-: {H.hod.2x7.negScaler} [ {(H.hod.2x7.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X8-: {H.hod.2x8.negScaler} [ {(H.hod.2x8.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X9-: {H.hod.2x9.negScaler} [ {(H.hod.2x9.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X10-: {H.hod.2x10.negScaler} [ {(H.hod.2x10.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X11-: {H.hod.2x11.negScaler} [ {(H.hod.2x11.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X12-: {H.hod.2x12.negScaler} [ {(H.hod.2x12.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X13-: {H.hod.2x13.negScaler} [ {(H.hod.2x13.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X14-: {H.hod.2x14.negScaler} [ {(H.hod.2x14.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X15-: {H.hod.2x15.negScaler} [ {(H.hod.2x15.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2X16-: {H.hod.2x16.negScaler} [ {(H.hod.2x16.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] + +H2Y1+: {H.hod.2y1.posScaler} [ {(H.hod.2y1.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y2+: {H.hod.2y2.posScaler} [ {(H.hod.2y2.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y3+: {H.hod.2y3.posScaler} [ {(H.hod.2y3.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y4+: {H.hod.2y4.posScaler} [ {(H.hod.2y4.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y5+: {H.hod.2y5.posScaler} [ {(H.hod.2y5.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y6+: {H.hod.2y6.posScaler} [ {(H.hod.2y6.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y7+: {H.hod.2y7.posScaler} [ {(H.hod.2y7.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y8+: {H.hod.2y8.posScaler} [ {(H.hod.2y8.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y9+: {H.hod.2y9.posScaler} [ {(H.hod.2y9.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y10+: {H.hod.2y10.posScaler} [ {(H.hod.2y10.posScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] + +H2Y1-: {H.hod.2y1.negScaler} [ {(H.hod.2y1.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y2-: {H.hod.2y2.negScaler} [ {(H.hod.2y2.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y3-: {H.hod.2y3.negScaler} [ {(H.hod.2y3.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y4-: {H.hod.2y4.negScaler} [ {(H.hod.2y4.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y5-: {H.hod.2y5.negScaler} [ {(H.hod.2y5.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y6-: {H.hod.2y6.negScaler} [ {(H.hod.2y6.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y7-: {H.hod.2y7.negScaler} [ {(H.hod.2y7.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y8-: {H.hod.2y8.negScaler} [ {(H.hod.2y8.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y9-: {H.hod.2y9.negScaler} [ {(H.hod.2y9.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] +H2Y10-: {H.hod.2y10.negScaler} [ {(H.hod.2y10.negScaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] diff --git a/TEMPLATES/HMS/SCALERS/hscalers.template b/TEMPLATES/HMS/SCALERS/hscalers.template index 97d41262..237062a4 100644 --- a/TEMPLATES/HMS/SCALERS/hscalers.template +++ b/TEMPLATES/HMS/SCALERS/hscalers.template @@ -64,17 +64,50 @@ Ps6_factor = {ghconfig_ti_ps_factors[5]} Total HMS 3/4 Triggers : {H.hTRIG1.scaler} Pre-Scaled HMS 3/4 Triggers : {(H.hTRIG1.scaler/ghconfig_ti_ps_factors[0]):%.0f} -Estimated HMS 3/4 Triggers : {H.hTRIG1.scalerRate*(H.1Mhz.scaler/1000000.):%.0f} HMS 3/4 Trigger Rate : {H.hTRIG1.scalerRate/1000.:%.3f} kHz +Estimated HMS 3/4 Triggers : {H.hTRIG1.scalerRate*H.1Mhz.scalerTime:%.0f} Accepted HMS Triggers : {TRIG1.npassed} HMS Event Types : {HMS_Pretrig.npassed} +=:=:=:=: += EDTM +=:=:=:=: + +EDTM Triggers : {H.EDTM.scaler} +Estimated EDTM Triggers : {H.EDTM.scalerRate*H.1Mhz.scalerTime:%.0f} +EDTM Trigger Rate : {H.EDTM.scalerRate/1000.:%.3f} kHz +Accepted EDTM Triggers : {edtm_accepted.npassed} + +=:=:=:=:=:=:=:=: += Level 1 Accept +=:=:=:=:=:=:=:=: + +Number of L1A : {H.hL1ACCP.scaler} +L1A Rate : {H.hL1ACCP.scalerRate/1000.:%.3f} kHz +hTRIG1/L1A : {H.hTRIG1.scaler/H.hL1ACCP.scaler} + +=:=:=:=:=:=:=:=: += Sanity Checks +=:=:=:=:=:=:=:=: + +EDTM Scaler Counts : {H.EDTM.scaler} +EDTM Copy Scaler Counts : {H.EDTM_CP.scaler} +Ratio : {H.EDTM.scaler/H.EDTM_CP.scaler} + +pTRIG1 Scaler Counts : {H.pTRIG1.scaler} +pTRIG1 Copy Scaler Counts : {H.pTRIG1_CP.scaler} +Ratio : {H.pTRIG1.scaler/H.pTRIG1_CP.scaler} + +1 MHz Scaler Counts : {H.1Mhz.scaler} +1 MHz Copy Scaler Counts : {H.1MHz_CP.scaler} +Ratio : {H.1Mhz.scaler/H.1MHz_CP.scaler} + =:=:=:=:=:=:=:=:=:=:=:=: = Physics 3/4 Triggers =:=:=:=:=:=:=:=:=:=:=:=: Physics 3/4 Triggers : {H.hTRIG1.scaler - H.EDTM.scaler} -Estimated Physics 3/4 Triggers : {(H.hTRIG1.scalerRate - H.EDTM.scalerRate)*(H.1Mhz.scaler/1000000.):%.0f} +Estimated Physics 3/4 Triggers : {(H.hTRIG1.scalerRate - H.EDTM.scalerRate)*H.1Mhz.scalerTime:%.0f} Physics 3/4 Trigger Rate : {(H.hTRIG1.scalerRate - H.EDTM.scalerRate)/1000.:%.3f} kHz Accepted Physics Triggers : {physics_accepted.npassed} @@ -121,15 +154,6 @@ hTRIG4_cut : {H.hTRIG4.scalerCut} [ {(H.hTRIG4.scaler/H.1Mhz.scalerTime)/1000 hTRIG5_cut : {H.hTRIG5.scalerCut} [ {(H.hTRIG5.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] hTRIG6_cut : {H.hTRIG6.scalerCut} [ {(H.hTRIG6.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ] -=:=:=:=: -= EDTM -=:=:=:=: - -EDTM Triggers : {H.EDTM.scaler} -Estimated EDTM Triggers : {H.EDTM.scalerRate*(H.1Mhz.scaler/1000000.):%.0f} -EDTM Trigger Rate : {H.EDTM.scalerRate/1000.:%.3f} kHz -Accepted EDTM Triggers : {edtm_accepted.npassed} - =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: = Live/Dead Time Calculations =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: diff --git a/TEMPLATES/SHMS/SCALERS/pscalers.template b/TEMPLATES/SHMS/SCALERS/pscalers.template index 3e94837b..5911ee47 100644 --- a/TEMPLATES/SHMS/SCALERS/pscalers.template +++ b/TEMPLATES/SHMS/SCALERS/pscalers.template @@ -63,17 +63,54 @@ Ps6_factor = {gpconfig_ti_ps_factors[5]} Total SHMS 3/4 Triggers : {P.pTRIG1.scaler} Pre-Scaled SHMS 3/4 Triggers : {(P.pTRIG1.scaler/gpconfig_ti_ps_factors[0]):%.0f} -Estimated SHMS 3/4 Triggers : {P.pTRIG1.scalerRate*(P.1Mhz.scaler/1000000.):%.0f} SHMS 3/4 Trigger Rate : {P.pTRIG1.scalerRate/1000.:%.3f} kHz +Estimated SHMS 3/4 Triggers : {P.pTRIG1.scalerRate*P.1Mhz.scalerTime:%.0f} Accepted SHMS Triggers : {TRIG1.npassed} SHMS Event Types : {SHMS_Pretrig.npassed} +=:=:=:=: += EDTM +=:=:=:=: + +EDTM Triggers : {P.EDTM.scaler} +Estimated EDTM Triggers : {P.EDTM.scalerRate*P.1Mhz.scalerTime:%.0f} +EDTM Trigger Rate : {P.EDTM.scalerRate/1000.:%.3f} kHz +Accepted EDTM Triggers : {edtm_accepted.npassed} + +Number of EDTM V2 : {P.pEDTM_V2.scaler} +EDTM V2 Rate : {P.pEDTM_V2.scalerRate/1000.:%.3f} kHz +EDTM/EDTM_V2 Ratio : {P.EDTM.scaler/P.pEDTM_V2.scaler} + +=:=:=:=:=:=:=:=: += Level 1 Accept +=:=:=:=:=:=:=:=: + +Number of L1A : {P.pL1ACCP.scaler} +L1A Rate : {P.pL1ACCP.scalerRate/1000.:%.3f} kHz +pTRIG1/L1A : {P.pTRIG1.scaler/P.pL1ACCP.scaler} + +=:=:=:=:=:=:=:=: += Sanity Checks +=:=:=:=:=:=:=:=: + +EDTM Scaler Counts : {P.EDTM.scaler} +EDTM Copy Scaler Counts : {P.EDTM_CP.scaler} +Ratio : {P.EDTM.scaler/P.EDTM_CP.scaler} + +pTRIG1 Scaler Counts : {P.pTRIG1.scaler} +pTRIG1 Copy Scaler Counts : {P.pTRIG1_CP.scaler} +Ratio : {P.pTRIG1.scaler/P.pTRIG1_CP.scaler} + +1 MHz Scaler Counts : {P.1Mhz.scaler} +1 MHz Copy Scaler Counts : {P.1MHz_CP.scaler} +Ratio : {P.1Mhz.scaler/P.1MHz_CP.scaler} + =:=:=:=:=:=:=:=:=:=:=:=: = Physics 3/4 Triggers =:=:=:=:=:=:=:=:=:=:=:=: Physics 3/4 Triggers : {P.pTRIG1.scaler - P.EDTM.scaler} -Estimated Physics 3/4 Triggers : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)*(P.1Mhz.scaler/1000000.):%.0f} +Estimated Physics 3/4 Triggers : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)*P.1Mhz.scalerTime:%.0f} Physics 3/4 Trigger Rate : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)/1000.:%.3f} kHz Accepted Physics Triggers : {physics_accepted.npassed} @@ -120,15 +157,6 @@ pTRIG4_cut : {P.pTRIG4.scalerCut} [ {(P.pTRIG4.scaler/P.1Mhz.scalerTime)/1000 pTRIG5_cut : {P.pTRIG5.scalerCut} [ {(P.pTRIG5.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] pTRIG6_cut : {P.pTRIG6.scalerCut} [ {(P.pTRIG6.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] -=:=:=:=: -= EDTM -=:=:=:=: - -EDTM Triggers : {P.EDTM.scaler} -Estimated EDTM Triggers : {P.EDTM.scalerRate*(P.1Mhz.scaler/1000000.):%.0f} -EDTM Trigger Rate : {P.EDTM.scalerRate/1000.:%.3f} kHz -Accepted EDTM Triggers : {edtm_accepted.npassed} - =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: = Live/Dead Time Calculations =:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: -- GitLab