diff --git a/examples/DBASE/test.database b/examples/DBASE/test.database index 451a26680519d5bbdcd2f74ddddf723b79fa5beb..577f1a66e1ecfb783d2e8d070499977634c70cd2 100644 --- a/examples/DBASE/test.database +++ b/examples/DBASE/test.database @@ -2,6 +2,11 @@ 50017 g_ctp_parm_filename="PARAM/general.param" g_decode_map_filename="MAPS/jun04.map" +# Values taken from Logbook. Not necessarily official. +gpbeam = 4.015 +hpcentral = 2.074 +htheta_lab = 10.99 +hpartmass = 0.13957 52949 g_ctp_parm_filename="PARAM/52949/general.param" g_decode_map_filename="MAPS/july04.map" diff --git a/examples/PARAM/hcana.param b/examples/PARAM/hcana.param index 61d60c67416cd2b92a6e69416e20b1281f30689b..646ac747fa0834ee7ced8d01863f7f86467ba47c 100644 --- a/examples/PARAM/hcana.param +++ b/examples/PARAM/hcana.param @@ -15,3 +15,7 @@ hdc_plane_names = "1x1 1y1 1u1 1v1 1y2 1x2 2x1 2y1 2u1 2v1 2y2 2x2" hcal_layer_names = "1pr 2ta 3ta 4ta" hhodo_plane_names = "1x 1y 2x 2y" + +# The following were defined in REPLAY.PARAM +h_recon_coeff_filename = 'PARAM/hms_recon_coeff.dat' ;hms optics matrix +s_recon_coeff_filename = 'PARAM/sos_recon_coeff.dat' ;sos optics matrix diff --git a/examples/PARAM/hms_recon_coeff.dat b/examples/PARAM/hms_recon_coeff.dat new file mode 100644 index 0000000000000000000000000000000000000000..7b1ca30ea68c6f78f12008a6b872c8b1d131c0d1 --- /dev/null +++ b/examples/PARAM/hms_recon_coeff.dat @@ -0,0 +1,407 @@ +! recostruction matrix elements for HMS, tune HMS-100 +! <theta y phi delta | nmpq>;(x**n xp**m y**p yp**q) +! as of 02/20/97, no z offset included: this statement is obsolete +! created: 06/28/98 +! zeroth order matrix elements from fitting: +! <theta|> -4.7276368293E-03 rad +! <y|> -1.1606458055E-04 m +! <phi|> 4.8280702357E-05 rad +! <p|> -3.8725980576E-03 % +! <theta y phi delta | nmpq>;(x**n xp**m y**p yp**q) +! **** mkj **** +! aug 26, 2003 added coefficients correcting theta +! for raster ( x at target). Previously delta was corrected +! raster ( with up to 4 order) . y and phi were corrected +! for coefficient 00012 . +! Got coefficients from SIMC hms/recon_cosy.dat +! which is labeled: +! HMS Recon coefficients calculated 02-Feb-00 16:32:32 (HMS100 tune, P=-1.576 +! The correction is up to 6th order. +! **** mkj ***** + --------------------------------------------------------------------- + .342704157 .183629749E-01 -.742670280E-02 .256021141 1000 + -3.02138749 -.152502758 .472422058E-01 .130192976 0100 + -.673199668E-02 -.407567405 .258501913 .278565265E-02 0010 + .110287597 -.483378951 -2.16704420 .407874298E-01 0001 + -.495779826 -.548491564E-01 .147936777E-01 -.318166729 2000 + 4.49999138 .451213193 -.151686093 3.07552684 1100 + .796294361 1.48286554 -.303847305 -.297352223E-01 1010 + .261524802 -20.7938893 5.00402934 -.249121889 1001 + -1.65128983 -.995337651 .536837816 2.14776190 0200 + -6.47649939 .226936328 -.123499047 -.266124530 0110 + -3.98529962 -6.32858639 1.39991277 4.27708696 0101 + .113653600E-01 .690088486E-01 -.437114986E-01 -.438953228E-01 0020 + .881941403 .227473684 -.628899349E-01 .475605891 0011 + -3.71740449 3.93769576 .113368630 -3.53478948 0002 + 1.95723299 -.820253354E-01 .103519807 .936834319 3000 + -31.4466915 2.57527314 -2.51407447 -13.5405899 2100 + -5.89608158 -3.50686592 .471876566 -.312542194E-01 2010 + 40.5129114 58.0458860 -12.5399800 -2.74488175 2001 + 156.932838 -23.8014414 21.1502247 51.8797642 1200 + 57.3250219 40.7718723 -7.13532706 .284008412 1110 + -298.395506 -639.340672 173.523125 10.6819836 1101 + 1.88702326 .266847247 .271167866 .954315611 1020 + -24.4326614 -33.6584609 -.114525239 .434687181 1011 + 180.539265 53.7698885 3.76822635 31.9077575 1002 + -279.667300 64.3177661 -60.6190378 -20.4989850 0300 + -64.0800162 -86.2289723 11.5806188 3.95564331 0210 + -247.924962 1524.67217 -483.832639 -46.7762650 0201 + -21.7150970 -13.4646889 .401043380 -7.06883817 0120 + 211.296709 323.699221 -6.72775908 25.6924121 0111 + -1440.32950 361.536621 -384.751537 -467.898102 0102 + -.656643228 3.62511407 -1.27960041 -.358205667 0030 + -1.58376006 67.9025208 -22.9733471 -3.15593520 0021 + 23.7224929 -987.049261 560.285176 34.1790370 0012 + -180.294278 5983.27702 -3518.42552 -71.5085362 0003 + -4.16665084 1.49723155 -.759630854 -2.30278775 4000 + 69.1944845 -46.6812620 21.8666725 58.0248309 3100 + 18.5878217 3.69400020 .602106657E-01 -1.46212838 3010 + -227.551196 -96.3179597 .489353421 20.4063547 3001 + -243.511203 535.564222 -239.722086 -491.562374 2200 + -230.021793 -40.7163893 .940804015 47.2957535 2110 + 3150.68103 1424.96519 38.5622615 -521.870646 2101 + -10.2926426 -3.56149925 -1.10754304 -1.00472512 2020 + 138.770921 263.397128 -15.7671082 -26.1090659 2011 + -211.394983 -1895.91500 234.605250 406.369321 2002 + -832.967425 -2704.20708 1207.70554 1718.29721 1300 + 429.578554 -234.967423 -20.3231936 -432.372956 1210 + -11612.7737 -2668.84972 -1176.05843 4021.85608 1201 + 130.736123 70.7440580 5.42914965 16.7434624 1120 + -1905.84788 -3551.03419 224.098878 343.660595 1111 + 363.670026 16804.9474 -2673.42755 -4586.96491 1102 + 6.91955519 -9.98074257 7.57861652 4.98155457 1030 + -114.693315 63.5563817 -65.8809200 -36.5101930 1021 + 710.699660 4980.54374 -780.431756 60.2646297 1012 + -7520.04385 -13187.0100 2486.26739 536.066295 1003 + 4347.54210 5161.66425 -2427.09769 -1950.10403 0400 + 1156.75126 1725.44332 188.803395 1323.39948 0310 + 12047.3853 -8815.37699 3407.72589 -11081.6594 0301 + -26.9308548 60.3544886 -47.8411214 -67.2731587 0220 + 826.904198 4520.84740 916.341424 -974.052221 0211 + 19983.2818 7167.34390 -4225.20780 9358.46286 0202 + -26.0105902 -188.661888 54.6866678 -37.4367181 0130 + 648.226508 2521.63446 -1052.88888 292.436840 0121 + -8498.59600 -31139.3846 8203.03704 -697.205971 0112 + 63967.4235 128236.246 -24237.5465 -2336.48364 0103 + -1.07911254 1.22231630 -.173675833 3.83526317 0040 + 9.94134973 258.488500 -10.9579494 -84.9391998 0031 + 158.508425 -2684.84975 -3.07844063 726.975013 0022 + -3017.64724 14872.1349 -469.458295 -1667.46714 0013 + 466.801936 -55258.4859 4661.52259 3912.11649 0004 + 1.88180503 -2.54978699 1.02249535 4.96781903 5000 + 27.9678707 85.1165188 -25.6500831 -214.635508 4100 + -19.6018738 -1.90234997 -2.26475906 3.07907961 4010 + 338.908065 -3.13670480 84.7364876 -48.5819865 4001 + -1595.43911 -986.185572 116.663362 3438.51266 3200 + 256.718721 -2.53553430 86.9081338 -71.7570318 3110 + -5619.82737 2554.66160 -3220.55423 1952.97191 3101 + 5.63505956 5.65523837 -.178636671 -9.82929708 3020 + 28.4611788 -535.882022 112.200518 63.7792928 3011 + -3335.14896 6481.34708 -841.916671 -2407.64911 3002 + 17748.8967 4446.27557 1781.86526 -27888.4078 2300 + -365.812295 713.968459 -1184.61359 175.230779 2210 + 26149.2365 -61279.3626 44610.2113 -20776.5089 2201 + 82.8634399 -82.7911036 40.7995535 223.223395 2120 + -4711.16007 7972.91446 -3042.34279 -1765.82660 2111 + 111837.314 -122751.891 25531.4588 55520.9916 2102 + -13.8546171 -44.6122707 -1.49148927 7.53241271 2030 + 379.629516 2219.19103 -283.396915 -8.69875712 2021 + -2940.77125 -39662.7132 6848.07035 332.501630 2012 + -4833.05018 291262.775 -40868.2995 -930.899000 2003 + -75870.6114 -3035.26190 -19402.1263 118850.529 1400 + -1090.33337 -5565.51679 8155.50571 3660.70792 1310 + -76601.8398 456263.377 -281440.652 79440.7749 1301 + -2721.78279 -512.627944 -452.280825 -1934.55934 1220 + 83864.4298 5816.23957 23306.1137 11961.6529 1211 + -1306713.82 400125.281 -216284.553 -418149.697 1202 + 100.956187 1309.56623 -226.290462 -173.118732 1130 + -4032.82257 -56824.1834 10616.2930 1607.73072 1121 + 79840.4758 782713.236 -150889.930 -14254.2451 1112 + -330377.607 -4233718.14 646182.662 39788.7678 1103 + 6.06681234 7.12938618 -.220192683 -1.11240314 1040 + -243.665570 -948.255482 153.244584 165.982247 1031 + 7181.11150 25876.5416 -2553.92502 -3998.95843 1022 + -75005.8412 -104271.766 -23488.8683 29493.1698 1013 + 124433.465 -149264.761 219376.542 -13196.6766 1004 + 113262.801 -18667.6651 53113.3093 -209797.800 0500 + -11632.6603 7242.92619 -21110.0334 -18679.7717 0410 + 301044.558 -1035121.76 655646.504 -71841.5676 0401 + 8371.11263 2221.54910 1543.28892 6295.96049 0320 + -258028.488 -135832.589 -66162.4672 -36062.5709 0311 + 4218622.48 128274.356 663799.998 1118597.09 0302 + -167.926507 -3321.19532 237.754153 1077.44822 0230 + 15453.6273 205593.650 -24454.8426 -11675.9844 0221 + -438724.451 -3267312.69 463392.237 52657.7588 0212 + 2249544.29 17936516.3 -2298746.48 -118752.747 0203 + -25.5889867 -61.6539042 41.8282483 -107.686882 0140 + 1866.01089 -1606.56535 -3207.84127 946.869731 0131 + -71480.9824 -31234.8373 79600.1247 25102.1443 0122 + 814034.645 434180.428 -606101.312 -259877.198 0113 + -2102030.39 -1584569.00 1583206.11 303094.278 0104 + -3.59866781 -19.7084031 -18.4827350 -1.36754912 0050 + 50.9893561 384.737475 1103.07001 164.395576 0041 + 1986.13677 18001.7932 -34498.4820 90.2668576 0032 + -30037.4064 -584192.598 674006.856 1100.41524 0023 + 20801.9238 6212983.14 -6436686.94 -17333.4694 0014 + 408508.663 -23722308.6 22707746.7 30963.1531 0005 + 1.12584242 0.000000000E+00 0.000000000E+00 0.768177700 00001 + -3.30929606 0.000000000E+00 0.000000000E+00 -1.24824954 10001 + 9.55821560 0.000000000E+00 0.000000000E+00 7.18980365 01001 + -12.8075508 0.000000000E+00 0.000000000E+00 -1.79480024 00002 + 31.3282870 0.000000000E+00 0.000000000E+00 4.30979026 20001 + -366.358594 0.000000000E+00 0.000000000E+00 -47.5141035 11001 + 1281.27264 0.000000000E+00 0.000000000E+00 127.404997 02001 + 8.46492946 0.000000000E+00 0.000000000E+00 1.52132362 00201 + -212.181332 0.000000000E+00 0.000000000E+00 -44.8420242 00111 + 86.2168045 0.000000000E+00 0.000000000E+00 13.9035869 10002 + -202.375577 0.000000000E+00 0.000000000E+00 -75.1770025 01002 + 1292.40575 0.000000000E+00 0.000000000E+00 332.945301 00021 + 152.465743 412.398418 -118.551680 0.000000000E+00 00012 + 56.8142343 0.000000000E+00 0.000000000E+00 15.5951865 00003 + -111.090641 0.000000000E+00 0.000000000E+00 -15.7177358 30001 + 1301.23090 0.000000000E+00 0.000000000E+00 249.924995 21001 + -3377.64137 0.000000000E+00 0.000000000E+00 -1205.61003 12001 + -1080.57253 0.000000000E+00 0.000000000E+00 1650.70638 03001 + -206.758367 0.000000000E+00 0.000000000E+00 -8.63945412 10201 + 1286.12280 0.000000000E+00 0.000000000E+00 51.7345340 01201 + 457.388990 0.000000000E+00 0.000000000E+00 246.328770 10111 + 315.521007 0.000000000E+00 0.000000000E+00 -1468.88025 01111 + -2.86376084 0.000000000E+00 0.000000000E+00 -77.6962058 20002 + -284.532504 0.000000000E+00 0.000000000E+00 808.267218 11002 + -54.9686786 0.000000000E+00 0.000000000E+00 -1887.27393 02002 + -894.903229 0.000000000E+00 0.000000000E+00 -13.1721627 00202 + -58.1868148 0.000000000E+00 0.000000000E+00 -1758.72381 10021 + 28.1001103 0.000000000E+00 0.000000000E+00 10443.6142 01021 + 24.9869024 0.000000000E+00 0.000000000E+00 377.176889 00112 + -4.71048927 0.000000000E+00 0.000000000E+00 -174.332974 10003 + -0.94935661 0.000000000E+00 0.000000000E+00 893.518077 01003 + 5.91096156 0.000000000E+00 0.000000000E+00 -2708.57078 00022 + 0.10590745 0.000000000E+00 0.000000000E+00 -149.156349 00004 + 0.744204334E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 00101 + 2.84521581 0.000000000E+00 0.000000000E+00 0.000000000E+00 10101 + -25.4393730 0.000000000E+00 0.000000000E+00 0.000000000E+00 01101 + -0.932044457 0.000000000E+00 0.000000000E+00 0.000000000E+00 00011 + 13.7051555 0.000000000E+00 0.000000000E+00 0.000000000E+00 10011 + -72.5425087 0.000000000E+00 0.000000000E+00 0.000000000E+00 01011 + 11.1885519 0.000000000E+00 0.000000000E+00 0.000000000E+00 00102 + -64.8809742 0.000000000E+00 0.000000000E+00 0.000000000E+00 00030 + -29.8576040 0.000000000E+00 0.000000000E+00 0.000000000E+00 20101 + 257.607594 0.000000000E+00 0.000000000E+00 0.000000000E+00 11101 + 222.800622 0.000000000E+00 0.000000000E+00 0.000000000E+00 02101 + -5.74703998 0.000000000E+00 0.000000000E+00 0.000000000E+00 00301 + -58.3774171 0.000000000E+00 0.000000000E+00 0.000000000E+00 20011 + -75.7986407 0.000000000E+00 0.000000000E+00 0.000000000E+00 11011 + -20.0306669 0.000000000E+00 0.000000000E+00 0.000000000E+00 02011 + 81.5699850 0.000000000E+00 0.000000000E+00 0.000000000E+00 00211 + 39.9072357 0.000000000E+00 0.000000000E+00 0.000000000E+00 10102 + 26.1337898 0.000000000E+00 0.000000000E+00 0.000000000E+00 01102 + 11.1028012 0.000000000E+00 0.000000000E+00 0.000000000E+00 00121 + 15.8064184 0.000000000E+00 0.000000000E+00 0.000000000E+00 10012 + 2.52332790 0.000000000E+00 0.000000000E+00 0.000000000E+00 01012 + 1.49611639 0.000000000E+00 0.000000000E+00 0.000000000E+00 00103 + 2.94427172 0.000000000E+00 0.000000000E+00 0.000000000E+00 00031 + 5.91096156 0.000000000E+00 0.000000000E+00 0.000000000E+00 00022 + 0.196444306 0.000000000E+00 0.000000000E+00 0.000000000E+00 00013 + 0.105907450 0.000000000E+00 0.000000000E+00 0.000000000E+00 00004 + 169.573680 0.000000000E+00 0.000000000E+00 0.000000000E+00 40001 + -1188.40309 0.000000000E+00 0.000000000E+00 0.000000000E+00 31001 + -2564.00859 0.000000000E+00 0.000000000E+00 0.000000000E+00 22001 + -796.126266 0.000000000E+00 0.000000000E+00 0.000000000E+00 13001 + -170.135856 0.000000000E+00 0.000000000E+00 0.000000000E+00 04001 + 25.2737324 0.000000000E+00 0.000000000E+00 0.000000000E+00 30101 + -302.117798 0.000000000E+00 0.000000000E+00 0.000000000E+00 21101 + 10.5088748 0.000000000E+00 0.000000000E+00 0.000000000E+00 12101 + 17.9545609 0.000000000E+00 0.000000000E+00 0.000000000E+00 03101 + 393.042869 0.000000000E+00 0.000000000E+00 0.000000000E+00 20201 + -2654.79358 0.000000000E+00 0.000000000E+00 0.000000000E+00 11201 + -675.207959 0.000000000E+00 0.000000000E+00 0.000000000E+00 02201 + 31.5374558 0.000000000E+00 0.000000000E+00 0.000000000E+00 10301 + -66.2872749 0.000000000E+00 0.000000000E+00 0.000000000E+00 01301 + 11.0483668 0.000000000E+00 0.000000000E+00 0.000000000E+00 00401 + 53.9952733 0.000000000E+00 0.000000000E+00 0.000000000E+00 30011 + 19.8514223 0.000000000E+00 0.000000000E+00 0.000000000E+00 21011 + 6.99512779 0.000000000E+00 0.000000000E+00 0.000000000E+00 12011 + 2.03058969 0.000000000E+00 0.000000000E+00 0.000000000E+00 03011 + -414.755722 0.000000000E+00 0.000000000E+00 0.000000000E+00 20111 + -242.924295 0.000000000E+00 0.000000000E+00 0.000000000E+00 11111 + -53.2831769 0.000000000E+00 0.000000000E+00 0.000000000E+00 02111 + 14.0854426 0.000000000E+00 0.000000000E+00 0.000000000E+00 10211 + -7.18970025 0.000000000E+00 0.000000000E+00 0.000000000E+00 01211 + 46.6175282 0.000000000E+00 0.000000000E+00 0.000000000E+00 00311 + 327.023510 0.000000000E+00 0.000000000E+00 0.000000000E+00 30002 + -46.7603764 0.000000000E+00 0.000000000E+00 0.000000000E+00 21002 + -13.1130776 0.000000000E+00 0.000000000E+00 0.000000000E+00 12002 + -2.14608775 0.000000000E+00 0.000000000E+00 0.000000000E+00 03002 + -405.162634 0.000000000E+00 0.000000000E+00 0.000000000E+00 20102 + -37.8327394 0.000000000E+00 0.000000000E+00 0.000000000E+00 11102 + -3.28616433 0.000000000E+00 0.000000000E+00 0.000000000E+00 02102 + -797.756623 0.000000000E+00 0.000000000E+00 0.000000000E+00 10202 + -100.253463 0.000000000E+00 0.000000000E+00 0.000000000E+00 01202 + -58.1494000 0.000000000E+00 0.000000000E+00 0.000000000E+00 00302 + -49.7218825 0.000000000E+00 0.000000000E+00 0.000000000E+00 20021 + -23.4940000 0.000000000E+00 0.000000000E+00 0.000000000E+00 11021 + -4.63065295 0.000000000E+00 0.000000000E+00 0.000000000E+00 02021 + -7.01252658 0.000000000E+00 0.000000000E+00 0.000000000E+00 10121 + -1.66128414 0.000000000E+00 0.000000000E+00 0.000000000E+00 01121 + 8.99761159 0.000000000E+00 0.000000000E+00 0.000000000E+00 00221 + -26.9158564 0.000000000E+00 0.000000000E+00 0.000000000E+00 20012 + -2.93740577 0.000000000E+00 0.000000000E+00 0.000000000E+00 11012 + -0.281699956 0.000000000E+00 0.000000000E+00 0.000000000E+00 02012 + -44.2613806 0.000000000E+00 0.000000000E+00 0.000000000E+00 10112 + -5.18873926 0.000000000E+00 0.000000000E+00 0.000000000E+00 01112 + -2.30913015 0.000000000E+00 0.000000000E+00 0.000000000E+00 00212 + 12.9742811 0.000000000E+00 0.000000000E+00 0.000000000E+00 20003 + 1.29863794 0.000000000E+00 0.000000000E+00 0.000000000E+00 11003 + 0.179319821 0.000000000E+00 0.000000000E+00 0.000000000E+00 02003 + 0.359636043 0.000000000E+00 0.000000000E+00 0.000000000E+00 10103 + -0.686000125E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 01103 + 0.479897726 0.000000000E+00 0.000000000E+00 0.000000000E+00 00203 + 2.12875475 0.000000000E+00 0.000000000E+00 0.000000000E+00 10040 + 1.00542982 0.000000000E+00 0.000000000E+00 0.000000000E+00 01040 + 0.574499599E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 00140 + -1.51837641 0.000000000E+00 0.000000000E+00 0.000000000E+00 10031 + -0.259505376 0.000000000E+00 0.000000000E+00 0.000000000E+00 01031 + 1.21378871 0.000000000E+00 0.000000000E+00 0.000000000E+00 00131 + -3.83394487 0.000000000E+00 0.000000000E+00 0.000000000E+00 10022 + -0.448803101 0.000000000E+00 0.000000000E+00 0.000000000E+00 01022 + 0.432742246E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 00122 + 0.433795780E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 10013 + 0.381017134E-03 0.000000000E+00 0.000000000E+00 0.000000000E+00 01013 + 0.717327023E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 00113 + 0.404935152E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 10004 + -0.704014248E-03 0.000000000E+00 0.000000000E+00 0.000000000E+00 01004 + 0.417717692E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 00104 + -0.108814119 0.000000000E+00 0.000000000E+00 0.000000000E+00 00050 + 0.265212468 0.000000000E+00 0.000000000E+00 0.000000000E+00 00041 + 0.342938618E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 00032 + 0.274219030E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 00023 + 0.382346774E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 00014 + 0.146595810E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 00005 + -221.978975 0.000000000E+00 0.000000000E+00 0.000000000E+00 50001 + 2081.48433 0.000000000E+00 0.000000000E+00 0.000000000E+00 41001 + -430.560936 0.000000000E+00 0.000000000E+00 0.000000000E+00 32001 + -218.050288 0.000000000E+00 0.000000000E+00 0.000000000E+00 23001 + -55.5844501 0.000000000E+00 0.000000000E+00 0.000000000E+00 14001 + -11.3642568 0.000000000E+00 0.000000000E+00 0.000000000E+00 05001 + 108.432463 0.000000000E+00 0.000000000E+00 0.000000000E+00 40101 + -931.864934 0.000000000E+00 0.000000000E+00 0.000000000E+00 31101 + -192.977158 0.000000000E+00 0.000000000E+00 0.000000000E+00 22101 + -28.6473383 0.000000000E+00 0.000000000E+00 0.000000000E+00 13101 + -3.41017534 0.000000000E+00 0.000000000E+00 0.000000000E+00 04101 + 61.3278498 0.000000000E+00 0.000000000E+00 0.000000000E+00 30201 + -43.6289186 0.000000000E+00 0.000000000E+00 0.000000000E+00 21201 + -47.1521819 0.000000000E+00 0.000000000E+00 0.000000000E+00 12201 + -14.9198830 0.000000000E+00 0.000000000E+00 0.000000000E+00 03201 + 58.8310901 0.000000000E+00 0.000000000E+00 0.000000000E+00 20301 + -36.3378650 0.000000000E+00 0.000000000E+00 0.000000000E+00 11301 + -8.01512328 0.000000000E+00 0.000000000E+00 0.000000000E+00 02301 + -104.944287 0.000000000E+00 0.000000000E+00 0.000000000E+00 10401 + 34.7713353 0.000000000E+00 0.000000000E+00 0.000000000E+00 01401 + -122.288125 0.000000000E+00 0.000000000E+00 0.000000000E+00 00501 + -77.5453423 0.000000000E+00 0.000000000E+00 0.000000000E+00 40011 + -64.1314449 0.000000000E+00 0.000000000E+00 0.000000000E+00 31011 + -13.9857505 0.000000000E+00 0.000000000E+00 0.000000000E+00 22011 + -2.33654082 0.000000000E+00 0.000000000E+00 0.000000000E+00 13011 + -0.340596491 0.000000000E+00 0.000000000E+00 0.000000000E+00 04011 + 29.3394194 0.000000000E+00 0.000000000E+00 0.000000000E+00 30111 + 48.1149331 0.000000000E+00 0.000000000E+00 0.000000000E+00 21111 + 9.50174924 0.000000000E+00 0.000000000E+00 0.000000000E+00 12111 + 1.38837541 0.000000000E+00 0.000000000E+00 0.000000000E+00 03111 + 52.4792515 0.000000000E+00 0.000000000E+00 0.000000000E+00 20211 + 3.80058742 0.000000000E+00 0.000000000E+00 0.000000000E+00 11211 + 0.234555136 0.000000000E+00 0.000000000E+00 0.000000000E+00 02211 + 39.5808085 0.000000000E+00 0.000000000E+00 0.000000000E+00 10311 + 15.2563542 0.000000000E+00 0.000000000E+00 0.000000000E+00 01311 + -7.28080327 0.000000000E+00 0.000000000E+00 0.000000000E+00 00411 + -597.497346 0.000000000E+00 0.000000000E+00 0.000000000E+00 40002 + -102.721749 0.000000000E+00 0.000000000E+00 0.000000000E+00 31002 + -15.3681107 0.000000000E+00 0.000000000E+00 0.000000000E+00 22002 + -2.17208316 0.000000000E+00 0.000000000E+00 0.000000000E+00 13002 + -0.274609264 0.000000000E+00 0.000000000E+00 0.000000000E+00 04002 + 106.837983 0.000000000E+00 0.000000000E+00 0.000000000E+00 30102 + 12.3766158 0.000000000E+00 0.000000000E+00 0.000000000E+00 21102 + 1.46530330 0.000000000E+00 0.000000000E+00 0.000000000E+00 12102 + 0.185393293 0.000000000E+00 0.000000000E+00 0.000000000E+00 03102 + 11.8887131 0.000000000E+00 0.000000000E+00 0.000000000E+00 20202 + -2.55669988 0.000000000E+00 0.000000000E+00 0.000000000E+00 11202 + -0.863809017 0.000000000E+00 0.000000000E+00 0.000000000E+00 02202 + 18.8047014 0.000000000E+00 0.000000000E+00 0.000000000E+00 10302 + 2.49667580 0.000000000E+00 0.000000000E+00 0.000000000E+00 01302 + -3.93088497 0.000000000E+00 0.000000000E+00 0.000000000E+00 00402 + 12.7034651 0.000000000E+00 0.000000000E+00 0.000000000E+00 30021 + 7.96187516 0.000000000E+00 0.000000000E+00 0.000000000E+00 21021 + 1.60982507 0.000000000E+00 0.000000000E+00 0.000000000E+00 12021 + 0.257565675 0.000000000E+00 0.000000000E+00 0.000000000E+00 03021 + 5.93574507 0.000000000E+00 0.000000000E+00 0.000000000E+00 20121 + 0.679348453 0.000000000E+00 0.000000000E+00 0.000000000E+00 11121 + 0.757550151E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 02121 + 7.36294581 0.000000000E+00 0.000000000E+00 0.000000000E+00 10221 + 2.30080135 0.000000000E+00 0.000000000E+00 0.000000000E+00 01221 + -0.118383007 0.000000000E+00 0.000000000E+00 0.000000000E+00 00321 + 14.4258145 0.000000000E+00 0.000000000E+00 0.000000000E+00 30012 + 1.52658163 0.000000000E+00 0.000000000E+00 0.000000000E+00 21012 + 0.163028817 0.000000000E+00 0.000000000E+00 0.000000000E+00 12012 + 0.171689509E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 03012 + 15.0743734 0.000000000E+00 0.000000000E+00 0.000000000E+00 20112 + 1.60706583 0.000000000E+00 0.000000000E+00 0.000000000E+00 11112 + 0.166465023 0.000000000E+00 0.000000000E+00 0.000000000E+00 02112 + 2.28803297 0.000000000E+00 0.000000000E+00 0.000000000E+00 10212 + 0.265413449 0.000000000E+00 0.000000000E+00 0.000000000E+00 01212 + 3.26683930 0.000000000E+00 0.000000000E+00 0.000000000E+00 00312 + -1.44694805 0.000000000E+00 0.000000000E+00 0.000000000E+00 30003 + -0.301551821 0.000000000E+00 0.000000000E+00 0.000000000E+00 21003 + -0.979405958E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 12003 + -0.218874633E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 03003 + 0.213731277 0.000000000E+00 0.000000000E+00 0.000000000E+00 20103 + -0.424871757E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 11103 + -0.263981236E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 02103 + -0.390336182 0.000000000E+00 0.000000000E+00 0.000000000E+00 10203 + -0.220563449E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 01203 + -0.252061070E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 00303 + 0.835395726 0.000000000E+00 0.000000000E+00 0.000000000E+00 20031 + 0.101082424 0.000000000E+00 0.000000000E+00 0.000000000E+00 11031 + 0.113826515E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 02031 + 0.967539242 0.000000000E+00 0.000000000E+00 0.000000000E+00 10131 + 0.283940573 0.000000000E+00 0.000000000E+00 0.000000000E+00 01131 + 0.704094684E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 00231 + 1.96621152 0.000000000E+00 0.000000000E+00 0.000000000E+00 20022 + 0.211929662 0.000000000E+00 0.000000000E+00 0.000000000E+00 11022 + 0.222297020E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 02022 + 0.192176728 0.000000000E+00 0.000000000E+00 0.000000000E+00 10122 + 0.208429359E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 01122 + 0.409197722 0.000000000E+00 0.000000000E+00 0.000000000E+00 00222 + 0.116208798E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 20013 + -0.861751979E-03 0.000000000E+00 0.000000000E+00 0.000000000E+00 11013 + -0.368034008E-03 0.000000000E+00 0.000000000E+00 0.000000000E+00 02013 + -0.305595883E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 10113 + 0.792820773E-03 0.000000000E+00 0.000000000E+00 0.000000000E+00 01113 + -0.103581312E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 00213 + -0.317665296E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 20004 + -0.868692894E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 11004 + -0.130336633E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 02004 + -0.485930059E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 10104 + -0.181322677E-03 0.000000000E+00 0.000000000E+00 0.000000000E+00 01104 + -0.225313015E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 00204 + 0.102736083 0.000000000E+00 0.000000000E+00 0.000000000E+00 10041 + 0.316791817E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 01041 + 0.177406989E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 00141 + 0.128130316E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 10032 + 0.134309873E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 01032 + 0.442654916E-01 0.000000000E+00 0.000000000E+00 0.000000000E+00 00132 + -0.500745668E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 10023 + -0.362264901E-04 0.000000000E+00 0.000000000E+00 0.000000000E+00 01023 + -0.100846774E-03 0.000000000E+00 0.000000000E+00 0.000000000E+00 00123 + -0.259911565E-03 0.000000000E+00 0.000000000E+00 0.000000000E+00 10014 + -0.865988929E-05 0.000000000E+00 0.000000000E+00 0.000000000E+00 01014 + 0.126433262E-03 0.000000000E+00 0.000000000E+00 0.000000000E+00 00114 + -0.376405317E-03 0.000000000E+00 0.000000000E+00 0.000000000E+00 10005 + -0.495262130E-04 0.000000000E+00 0.000000000E+00 0.000000000E+00 01005 + 0.505435025E-04 0.000000000E+00 0.000000000E+00 0.000000000E+00 00105 + -0.126889588E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 00060 + 0.318778677E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 00051 + 0.474276817E-02 0.000000000E+00 0.000000000E+00 0.000000000E+00 00042 + 0.108549858E-04 0.000000000E+00 0.000000000E+00 0.000000000E+00 00033 + 0.908354900E-04 0.000000000E+00 0.000000000E+00 0.000000000E+00 00024 + 0.311879063E-05 0.000000000E+00 0.000000000E+00 0.000000000E+00 00015 + 0.232698271E-05 0.000000000E+00 0.000000000E+00 0.000000000E+00 00006 + --------------------------------------------------------------------- diff --git a/examples/PARAM/sos_recon_coeff.dat b/examples/PARAM/sos_recon_coeff.dat new file mode 100644 index 0000000000000000000000000000000000000000..dde306f6fd3d4b48ff946c291339a0aa6e6fcbe3 --- /dev/null +++ b/examples/PARAM/sos_recon_coeff.dat @@ -0,0 +1,267 @@ + --------------------------------------------------------------------- + .379139198E-01 .842839975E-03 -.165349417E-01 1.09008330 1000 + -.340475497 -.190557451E-03 -.303884217E-01 .864312703E-01 0100 + .412883275E-04 -.183808587 .979733182 .254302566E-02 0010 + .815995425E-03 .575826053E-01 -5.49469348 -.117673035 0001 + -.528286695E-01 -.422038183E-01 .689674787E-01 .795969827 2000 + -.280522018E-01 -.615710778E-01 -.407260139E-01 3.54822776 1100 + .580273258E-01 2.36544241 1.35260940 .230035665 1010 + -.248614039 -14.5575974 7.01872929 -1.25071096 1001 + -.252140610 -.101163199E-01 -.156760594E-01 -1.48667569 0200 + -.811528766E-01 .901049007 -4.92046279 .288221600 0110 + -.820406238E-01 -5.72170059 4.90060419 -.587392000 0101 + .591913926E-01 .442996896E-01 -.230355364 .173773836 0020 + -.219573091 .138562767 1.13340742 -5.56476527 0011 + .183157973 -.826984028 -1.15673466 16.2159664 0002 + .141613116 .563557025E-01 -.132614085 .893431379 3000 + -.736574959 -.239878097 .448683179 6.22480992 2100 + -.147618189 5.49472968 -3.14205915 -1.26710492 2010 + .697380983 1.62324987 -12.8412738 6.95062674 2001 + .799836904 -.338942744E-01 -.339159381 4.84876509 1200 + 1.04463497 5.12456575 11.5182373 .161979673 1110 + -5.73077452 -65.4895006 21.7592854 -5.62857441 1101 + -.940144651E-01 .729997893 -1.23899720 3.93503678 1020 + .445867546 -5.51357171 1.00751517 -28.1235302 1011 + 5.30156098 6.84633968 19.6403132 16.8571460 1002 + -3.12917608 .584819316 1.22766131 -2.41644263 0300 + .446613746 -21.0828990 9.59314583 -5.28850025 0210 + -3.88969612 80.7762158 -64.0493585 22.3948037 0201 + -1.65486895 .429698026 7.45203435 -10.9048792 0120 + 15.9989982 -8.21241443 -75.9609989 81.9559180 0111 + -60.4402763 21.2298911 212.509960 -248.259132 0102 + .604652321 1.53919563 5.35871564 -6.62271245 0030 + -9.25519025 -31.3433274 -16.5768903 38.0695796 0021 + 38.5001423 192.329974 34.8941730 -88.1044751 0012 + -43.0872876 -450.298401 -695.196371 496.318701 0003 + -.280910732 .110007520 -1.29442669 -6.87528629 4000 + 1.70456640 -.790200026E-01 3.24383795 -7.35688444 3100 + -.980466960 -11.2835109 15.9675705 -14.5026852 3010 + 2.57242009 38.4628243 -12.1845687 66.4941464 3001 + -3.08843217 .385636778 -2.10129804 32.8640525 2200 + 5.90646560 48.5058838 -79.1614198 -9.58971005 2110 + -10.4317985 -17.6586954 56.1703738 103.838657 2101 + -.495166447 .291029779 8.65190371 -61.9746102 2020 + 11.1187517 -13.7564113 -44.1495212 750.712571 2011 + -29.1394954 29.2851208 7.16099318 -1767.78840 2002 + -9.07930174 .465978293 .933872266 -16.0084695 1300 + -1.83572469 -52.4119547 134.467671 -26.5805950 1210 + -10.6276201 -115.283001 -131.157302 95.6252426 1201 + -11.6763151 3.96624253 25.5702701 -120.170295 1120 + 81.2559728 24.2679709 -225.807372 1137.51843 1111 + -112.359178 -116.026197 479.835157 -3361.40683 1102 + -5.29485259 -39.0977840 114.868020 -29.3504217 1030 + 52.9540035 435.131830 -1915.00058 456.800801 1021 + -255.245852 -1998.72127 10430.0610 -3507.86935 1012 + 710.282918 3346.50103 -18642.5174 9294.88698 1003 + 5.47692943 -3.42404936 .398772011 26.3688033 0400 + -7.02852980 36.0408590 -125.997347 12.0775052 0310 + 26.0411563 -59.5277011 195.059592 -.870074117 0301 + -1.70642864 -8.05137099 66.2405899 -108.403205 0220 + 116.037347 25.1955957 -419.542715 685.197915 0211 + -498.764979 -12.3929700 868.952277 -1583.11852 0202 + -11.4654209 3.91337164 105.681673 .948774663 0130 + 182.564797 367.199616 -3314.03838 275.734707 0121 + -785.464215 -1180.95553 21302.3634 -3567.09815 0112 + 1074.60409 -936.552421 -39399.4921 14185.0001 0103 + 27.3214997 -32.7467761 27.7875506 -31.0089464 0040 + -72.0083764 499.365480 171.394594 -263.310809 0031 + -1228.82936 -3038.62107 -5146.59971 3660.01403 0022 + 6990.44924 7629.29170 26216.2932 -19292.3817 0013 + -12389.5540 -5952.19133 -40019.6818 27353.7886 0004 + .233451694 -.725229200 4.49313708 -43.3437356 5000 + -2.63479797 2.33506679 -12.0336095 -40.6088590 4100 + 2.80978052 56.6704274 -103.441626 -72.3865672 4010 + -7.68051561 -132.315167 517.040649 601.038133 4001 + 1.55805319 -3.82640802 15.5718115 47.3538727 3200 + -17.8565522 -346.988718 507.124617 -323.449119 3110 + 59.8473991 827.189754 -1801.08879 1569.31536 3101 + -4.92016617 -7.94687178 12.2896473 -135.280605 3020 + 56.5503782 109.903033 -172.184206 2326.00503 3011 + -184.441942 -120.544100 410.841450 -5124.02325 3002 + 34.2299151 -5.62614655 -19.6635668 28.5705216 2300 + 50.2036531 730.763870 -1384.99022 323.129619 2210 + -92.7242514 -1185.38953 3546.92453 -1234.40563 2201 + -21.1694556 -4.26971067 -187.353025 -263.232713 2120 + 50.8019739 -9.39109616 1961.55237 2703.80378 2111 + 407.045396 336.291695 -4962.65404 -7780.19411 2102 + -32.8883563 -267.260855 -481.397420 -103.624057 2030 + 553.125925 3101.61079 6834.48349 6266.75033 2021 + -2233.40649 -10995.3016 -40114.5660 -41964.2086 2012 + 1986.62069 12638.4725 95744.3925 70261.8242 2003 + -157.435585 19.8341717 13.9972473 315.679803 1400 + -52.8533936 -330.790519 1380.72305 -25.2066060 1310 + 43.1893277 -589.102339 -2937.18781 26.6981676 1301 + -.131234530 -112.413423 -23.3238739 1664.16589 1220 + 284.871958 401.268662 200.871609 -12034.7631 1211 + -1481.98521 -206.864693 -1872.19232 21158.0840 1202 + -26.4458611 -371.408877 -1592.68708 147.661187 1130 + -376.587514 3004.18852 14892.4013 5188.12933 1121 + 2666.07022 -20519.1906 -55737.5598 -46520.0024 1112 + -2562.26184 61442.9024 72144.0869 108561.498 1103 + 15.2846925 -178.339099 98.7028679 778.606191 1040 + 259.514383 2089.90320 1620.09957 -20530.4149 1031 + -972.532761 -10654.4336 -22167.5340 179631.580 1022 + -6644.40422 31062.5766 95321.3704 -687066.885 1013 + 18138.9284 -39607.3611 -127382.262 803139.181 1004 + 260.033050 -9.37175174 -1.22854324 -149.131593 0500 + 12.9346160 -209.050875 -1828.13619 367.568826 0410 + 1.03860566 1642.89764 6259.32653 -1101.69817 0401 + 228.168555 47.9387217 -1007.66858 -1366.33588 0320 + -2473.77471 401.516926 8723.22926 10463.1494 0311 + 7453.65344 -2459.90132 -20213.8613 -11893.8889 0302 + 43.0657501 2527.25046 -3579.69004 -265.543867 0230 + 85.9932457 -26732.0327 29217.0535 9454.46277 0221 + -1310.73720 95335.7974 -74758.8642 -71048.3225 0212 + 1714.54526 -88924.4487 80562.0556 168080.435 0203 + 392.721684 363.565031 -671.427466 -301.828056 0140 + -4902.70897 -5019.37580 3974.69466 12449.5401 0131 + 15252.5174 23287.3413 5749.87907 -48658.7614 0122 + 24169.2549 -36349.3754 -39136.7356 -186715.777 0113 + -104121.773 895.479217 -3184.62532 792792.749 0104 + 41.5090986 -1148.66253 -1959.97263 651.990633 0050 + -902.499745 24376.2669 13971.6905 -6281.70119 0041 + 8862.26009 -201261.260 -102332.755 6816.59750 0032 + -33284.0983 822732.760 1107381.57 144256.913 0023 + 37274.2374 -1756990.04 -5432659.57 -988369.924 0014 + 3194.06668 1808484.40 9426156.81 2089893.33 0005 + -.734005948 .000000000E+00 .000000000E+00 101.080958 6000 + 4.03546917 .000000000E+00 .000000000E+00 -235.474771 5100 + .000000000E+00 -48.0176565 274.841961 .000000000E+00 5010 + .000000000E+00 97.8419414 -1415.79591 .000000000E+00 5001 + 2.05839214 .000000000E+00 .000000000E+00 -174.906709 4200 + .000000000E+00 811.417591 -1360.99969 .000000000E+00 4110 + .000000000E+00 -2087.95015 5179.72150 .000000000E+00 4101 + -24.6478776 .000000000E+00 .000000000E+00 1387.09849 4020 + 209.361971 .000000000E+00 .000000000E+00 -13347.2648 4011 + -506.249544 .000000000E+00 .000000000E+00 25591.7786 4002 + -35.9951898 .000000000E+00 .000000000E+00 1370.20393 3300 + .000000000E+00 -3600.45042 3538.05250 .000000000E+00 3210 + .000000000E+00 7524.67426 -10368.9029 .000000000E+00 3201 + 16.7701194 .000000000E+00 .000000000E+00 1785.11257 3120 + 448.015228 .000000000E+00 .000000000E+00 -12501.4175 3111 + -2582.00272 .000000000E+00 .000000000E+00 70665.3189 3102 + .000000000E+00 26.3558036 -3598.27809 .000000000E+00 3030 + .000000000E+00 -1707.32364 32248.0060 .000000000E+00 3021 + .000000000E+00 2366.24326 -95444.5145 .000000000E+00 3012 + .000000000E+00 3260.93076 58043.6500 .000000000E+00 3003 + 85.1713624 .000000000E+00 .000000000E+00 -2956.22410 2400 + .000000000E+00 7780.01535 -2907.83488 .000000000E+00 2310 + .000000000E+00 -14636.9488 8134.53415 .000000000E+00 2301 + -301.445311 .000000000E+00 .000000000E+00 4634.51958 2220 + 509.781116 .000000000E+00 .000000000E+00 -23255.2766 2211 + 3016.84963 .000000000E+00 .000000000E+00 -2992.69769 2202 + .000000000E+00 -2765.24904 2365.34945 .000000000E+00 2130 + .000000000E+00 29060.8651 30172.3857 .000000000E+00 2121 + .000000000E+00 -105263.627 -343723.291 .000000000E+00 2112 + .000000000E+00 164542.543 859596.652 .000000000E+00 2103 + 617.734883 .000000000E+00 .000000000E+00 13164.1544 2040 + -9762.94511 .000000000E+00 .000000000E+00 -329312.117 2031 + 61777.0098 .000000000E+00 .000000000E+00 2755829.40 2022 + -188522.811 .000000000E+00 .000000000E+00 -9589667.98 2013 + 293596.776 .000000000E+00 .000000000E+00 11777955.3 2004 + 155.742569 .000000000E+00 .000000000E+00 8004.70162 1500 + .000000000E+00 -10710.7950 -3347.29371 .000000000E+00 1410 + .000000000E+00 26613.4941 7824.54712 .000000000E+00 1401 + 1595.56179 .000000000E+00 .000000000E+00 -13614.5237 1320 + -2346.18950 .000000000E+00 .000000000E+00 69708.0101 1311 + -14502.8338 .000000000E+00 .000000000E+00 -54026.6988 1302 + .000000000E+00 10576.5378 15937.5378 .000000000E+00 1230 + .000000000E+00 -62086.0056 -76687.9044 .000000000E+00 1221 + .000000000E+00 -55297.1950 -298675.928 .000000000E+00 1212 + .000000000E+00 588445.113 1388085.99 .000000000E+00 1203 + -597.751474 .000000000E+00 .000000000E+00 2913.83304 1140 + 6306.24490 .000000000E+00 .000000000E+00 -120786.591 1131 + 9249.80576 .000000000E+00 .000000000E+00 1516439.68 1122 + -392504.112 .000000000E+00 .000000000E+00 -7016627.96 1113 + 1095950.97 .000000000E+00 .000000000E+00 9306653.35 1104 + .000000000E+00 -8733.05877 -8552.74975 .000000000E+00 1050 + .000000000E+00 137325.477 352699.311 .000000000E+00 1041 + .000000000E+00 -910386.624 -3196889.05 .000000000E+00 1032 + .000000000E+00 3234363.59 10796249.9 .000000000E+00 1023 + .000000000E+00 -7252714.69 -10916643.6 .000000000E+00 1014 + .000000000E+00 9543523.46 -6478540.83 .000000000E+00 1005 + 187.600021 .000000000E+00 .000000000E+00 -7467.84730 0600 + .000000000E+00 8248.31060 9123.23763 .000000000E+00 0510 + .000000000E+00 -26718.3257 -20637.9818 .000000000E+00 0501 + -972.185544 .000000000E+00 .000000000E+00 28252.5400 0420 + -5564.66121 .000000000E+00 .000000000E+00 -252365.927 0411 + 37465.5972 .000000000E+00 .000000000E+00 611723.395 0402 + .000000000E+00 -22890.0920 22487.2028 .000000000E+00 0330 + .000000000E+00 229636.659 -133458.844 .000000000E+00 0321 + .000000000E+00 -795394.324 102279.096 .000000000E+00 0312 + .000000000E+00 1010473.66 227935.761 .000000000E+00 0303 + -824.302042 .000000000E+00 .000000000E+00 6197.39315 0240 + -2787.07768 .000000000E+00 .000000000E+00 -40717.8144 0231 + 192262.614 .000000000E+00 .000000000E+00 -104938.059 0222 + -1015988.95 .000000000E+00 .000000000E+00 1807893.56 0213 + 1581572.44 .000000000E+00 .000000000E+00 -3864158.57 0204 + .000000000E+00 4929.32145 8058.93465 .000000000E+00 0150 + .000000000E+00 -157973.959 292812.788 .000000000E+00 0141 + .000000000E+00 1124967.46 -4749970.24 .000000000E+00 0132 + .000000000E+00 -1039698.52 25070359.8 .000000000E+00 0123 + .000000000E+00 -14297693.9 -62207004.0 .000000000E+00 0114 + .000000000E+00 38481213.4 72831847.8 .000000000E+00 0105 + -5527.79362 .000000000E+00 .000000000E+00 -5997.21048 0060 + 80926.6935 .000000000E+00 .000000000E+00 130411.524 0051 + -538292.630 .000000000E+00 .000000000E+00 -303996.532 0042 + 1573640.14 .000000000E+00 .000000000E+00 -2290518.44 0033 + 257457.657 .000000000E+00 .000000000E+00 6087225.09 0024 + -9176115.43 .000000000E+00 .000000000E+00 5616794.55 0015 + 12403312.1 .000000000E+00 .000000000E+00 2571808.44 0006 + -0.432787425 0.000000000E+00 0.000000000E+00 0.391005873 00001 + 0.111255322 0.000000000E+00 0.000000000E+00 0.801847205 10001 + -0.222099911 0.000000000E+00 0.000000000E+00 1.39223024 01001 + 0.000000000E+00 1.05404300 -0.472399367 0.000000000E+00 00101 + 0.000000000E+00 -6.27039977 3.78630828 0.000000000E+00 00011 + 0.187705863E-01 0.000000000E+00 0.000000000E+00 0.288248330 00002 + 0.466755273E-01 0.000000000E+00 0.000000000E+00 0.544095505 20001 + 0.255381022E-01 0.000000000E+00 0.000000000E+00 7.40084080 11001 + -0.695597072 0.000000000E+00 0.000000000E+00 2.94559377 02001 + 0.000000000E+00 2.46445435 -2.54411388 0.000000000E+00 10101 + 0.000000000E+00-0.875373764 2.46186900 0.000000000E+00 01101 + 0.206789175 0.000000000E+00 0.000000000E+00-0.296304303 00201 + 0.000000000E+00 0.328318087 2.21842346 0.000000000E+00 10011 + 0.000000000E+00 -17.7113496 10.4387423 0.000000000E+00 01011 + -2.83396800 0.000000000E+00 0.000000000E+00-0.810485111 00111 + 0.333321181E-01 0.000000000E+00 0.000000000E+00 0.727649980 10002 + -0.106615205 0.000000000E+00 0.000000000E+00 2.24994616 01002 + 0.000000000E+00-0.440727542E-01 0.829650831E-03 0.000000000E+00 00102 + 9.05531754 0.000000000E+00 0.000000000E+00 4.35294783 00021 + 0.000000000E+00 1.17053477 -0.377328467 0.000000000E+00 00012 + 0.462025566E-02 0.000000000E+00 0.000000000E+00 0.224334624 00003 + -0.213218941E-01 0.000000000E+00 0.000000000E+00-0.231138001 30001 + 0.671951131 0.000000000E+00 0.000000000E+00 7.83883863 21001 + -2.48151318 0.000000000E+00 0.000000000E+00 51.8024010 12001 + -1.53316700 0.000000000E+00 0.000000000E+00 -12.1339968 03001 + 0.000000000E+00 -1.93828614 -1.12464412 0.000000000E+00 20101 + 0.000000000E+00 14.7092776 -10.0892893 0.000000000E+00 11101 + 0.000000000E+00 -7.70961193 11.6264715 0.000000000E+00 02101 + 1.21564770 0.000000000E+00 0.000000000E+00-0.997171793 10201 + -2.13666486 0.000000000E+00 0.000000000E+00 -8.63467712 01201 + 0.000000000E+00 -5.64716834 6.40534160 0.000000000E+00 00301 + 0.000000000E+00 10.3926000 -4.84593297 0.000000000E+00 20011 + 0.000000000E+00 -16.1788532 21.9577619 0.000000000E+00 11011 + 0.000000000E+00 -39.5563571 24.3791266 0.000000000E+00 02011 + -8.29395208 0.000000000E+00 0.000000000E+00 -12.3262090 10111 + 14.3644302 0.000000000E+00 0.000000000E+00 66.1129198 01111 + 0.000000000E+00 -11.0477274 -7.23587036 0.000000000E+00 00211 + 0.254197599E-01 0.000000000E+00 0.000000000E+00 0.395279317 20002 + 0.219900371E-01 0.000000000E+00 0.000000000E+00 11.1361643 11002 + -0.763757716 0.000000000E+00 0.000000000E+00 11.5920111 02002 + 0.000000000E+00 -1.23069700 0.143156389 0.000000000E+00 10102 + 0.000000000E+00 5.40559063 -2.75062054 0.000000000E+00 01102 + 0.489849474E-01 0.000000000E+00 0.000000000E+00-0.413153323 00202 + 3.71345858 0.000000000E+00 0.000000000E+00 35.6736779 10021 + -3.93972567 0.000000000E+00 0.000000000E+00 -139.812832 01021 + 0.000000000E+00 271.617600 -130.343209 0.000000000E+00 00121 + 0.000000000E+00 0.685511203 0.670438936 0.000000000E+00 10012 + 0.000000000E+00 -12.9229381 10.2806595 0.000000000E+00 01012 + -0.469630205E-01 0.000000000E+00 0.000000000E+00 0.929541757E-01 00112 + 0.165068696E-01 0.000000000E+00 0.000000000E+00 0.666969645 10003 + -0.495401630E-01 0.000000000E+00 0.000000000E+00 3.03133290 01003 + 0.000000000E+00 0.265342622 -0.214067719 0.000000000E+00 00103 + 0.000000000E+00 -745.760209 400.637642 0.000000000E+00 00031 + -1.44823908 0.000000000E+00 0.000000000E+00 1.73786094 00022 + 0.000000000E+00 -1.62597887 1.25528356 0.000000000E+00 00013 + 0.169392626E-02 0.000000000E+00 0.000000000E+00 0.195681174 00004 + --------------------------------------------------------------------- diff --git a/src/THcDC.h b/src/THcDC.h index 097a68e138ac36fd18bf7facc5b023f1672711e1..6a46a9cf33128480760cca2c172fa2c8db1df32c 100644 --- a/src/THcDC.h +++ b/src/THcDC.h @@ -132,7 +132,7 @@ protected: // double tan_angle, sin_angle, cos_angle; // Intermediate structure for building - static const char MAXTRACKS = 50; + static const char MAXTRACKS = 10; std::vector<THcDriftChamberPlane*> fPlanes; // List of plane objects std::vector<THcDriftChamber*> fChambers; // List of chamber objects diff --git a/src/THcDriftChamber.cxx b/src/THcDriftChamber.cxx index 4ac8419201926ed35f461822b3dd9bb49b89fc65..33c1b657184733f523def66a4e1ca725b3e11a4d 100644 --- a/src/THcDriftChamber.cxx +++ b/src/THcDriftChamber.cxx @@ -962,6 +962,7 @@ void THcDriftChamber::LeftRight() Int_t plane_list[nhits]; Double_t stub[4]; Double_t tmp_stub[4]; + Int_t nplusminus; if(nhits < 0) { if (fDebugDriftCh) cout << "THcDriftChamber::LeftRight() nhits < 0" << endl; @@ -980,6 +981,7 @@ void THcDriftChamber::LeftRight() if(pindex == YPlaneInd) hasy1 = ihit; if(pindex == YPlanePInd) hasy2 = ihit; } + nplusminus = 1<<nhits; Int_t smallAngOK = (hasy1>=0) && (hasy2>=0); if(fSmallAngleApprox !=0 && smallAngOK) { // to small Angle L/R for Y,Y' planes if(sp->GetHit(hasy2)->GetPos() <= @@ -990,6 +992,7 @@ void THcDriftChamber::LeftRight() plusminusknown[hasy1] = 1; plusminusknown[hasy2] = -1; } + nplusminus = 1<<(nhits-2); if (fDebugDriftCh) cout << " Small angle approx = " << smallAngOK << " " << plusminusknown[hasy1] << endl; if (fDebugDriftCh) cout << "pm = " << plusminusknown[hasy2] << " " << hasy1 << " " << hasy2 << endl; if (fDebugDriftCh) cout << " Plane index " << YPlaneInd << " " << YPlanePInd << endl; @@ -1000,7 +1003,6 @@ void THcDriftChamber::LeftRight() if (fDebugDriftCh) cout << "THcDriftChamber::LeftRight: numhits-2 = 0" << endl; } Int_t nplaneshit = Count1Bits(bitpat); - Int_t nplusminus = 1<<(nhits-2); if (fDebugDriftCh) cout << " num of pm = " << nplusminus << " num of hits =" << nhits << endl; // Use bit value of integer word to set + or - // Loop over all combinations of left right. diff --git a/src/THcHallCSpectrometer.cxx b/src/THcHallCSpectrometer.cxx index a23020b9d2360b14f8ab4dba763b1af4e186a06e..fad38103fd1c5ce2a9cddfa29b5f13148c19ec8e 100644 --- a/src/THcHallCSpectrometer.cxx +++ b/src/THcHallCSpectrometer.cxx @@ -44,18 +44,16 @@ #include "THcHallCSpectrometer.h" #include "THaTrackingDetector.h" +#include "THcGlobals.h" +#include "THcParmList.h" #include "THaTrack.h" #include "THaTrackProj.h" #include "THaTriggerTime.h" #include "TMath.h" #include "TList.h" -#include "TList.h" -#include "TMath.h" - -#ifdef WITH_DEBUG #include <iostream> -#endif +#include <fstream> using namespace std; @@ -95,23 +93,194 @@ Bool_t THcHallCSpectrometer::GetTrSorting() const } //_____________________________________________________________________________ -Int_t THcHallCSpectrometer::FindVertices( TClonesArray& tracks ) +void THcHallCSpectrometer::InitializeReconstruction() +{ + fNReconTerms = 0; + for(Int_t i=0;i<fNReconTerms;i++) { + for(Int_t j=0;j<4;j++) { + fReconCoeff[i][j] = 0.0; + } + for(Int_t j=0;j<5;j++) { + fReconExponents[i][j] = 0; + } + } + fAngSlope_x = 0.0; + fAngSlope_y = 0.0; + fAngOffset_x = 0.0; + fAngOffset_y = 0.0; + fDetOffset_x = 0.0; + fDetOffset_y = 0.0; + fZTrueFocus = 0.0; +} +//_____________________________________________________________________________ +Int_t THcHallCSpectrometer::ReadDatabase( const TDatime& date ) { - // Reconstruct target coordinates for all tracks found in the focal plane. - TIter nextTrack( fTrackingDetectors ); + static const char* const here = "THcHallCSpectrometer::ReadDatabase"; - nextTrack.Reset(); - while( THaTrackingDetector* theTrackDetector = - static_cast<THaTrackingDetector*>( nextTrack() )) { #ifdef WITH_DEBUG - if( fDebug>1 ) cout << "Call FineTrack() for " - << theTrackDetector->GetName() << "... "; + cout << "In THcHallCSpectrometer::ReadDatabase()" << endl; #endif - theTrackDetector->FindVertices( tracks ); -#ifdef WITH_DEBUG - if( fDebug>1 ) cout << "done.\n"; + + // Get the matrix element filename from the variable store + // Read in the matrix + + InitializeReconstruction(); + + char prefix[2]; + + cout << " GetName() " << GetName() << endl; + + prefix[0]=tolower(GetName()[0]); + prefix[1]='\0'; + + string reconCoeffFilename; + DBRequest list[]={ + {"_recon_coeff_filename",&reconCoeffFilename,kString}, + {"theta_offset",&fThetaOffset,kDouble}, + {"phi_offset",&fPhiOffset,kDouble}, + {"delta_offset",&fDeltaOffset,kDouble}, + {"pcentral",&fPCentral,kDouble}, + {0} + }; + gHcParms->LoadParmValues((DBRequest*)&list,prefix); + + ifstream ifile; + ifile.open(reconCoeffFilename.c_str()); + if(!ifile.is_open()) { + Error(here, "error opening reconstruction coefficient file %s",reconCoeffFilename.c_str()); + return kInitError; // Is this the right return code? + } + + string line="!"; + int good=1; + while(good && line[0]=='!') { + good = getline(ifile,line).good(); + cout << line << endl; + } + // Read in focal plane rotation coefficients + // Probably not used, so for now, just paste in fortran code as a comment + while(good && line.compare(0,4," ---")!=0) { + // if(line(1:13).eq.'h_ang_slope_x')read(line,1201,err=94)h_ang_slope_x + // if(line(1:13).eq.'h_ang_slope_y')read(line,1201,err=94)h_ang_slope_y + // if(line(1:14).eq.'h_ang_offset_x')read(line,1201,err=94)h_ang_offset_x + // if(line(1:14).eq.'h_ang_offset_y')read(line,1201,err=94)h_ang_offset_y + // if(line(1:14).eq.'h_det_offset_x')read(line,1201,err=94)h_det_offset_x + // if(line(1:14).eq.'h_det_offset_y')read(line,1201,err=94)h_det_offset_y + // if(line(1:14).eq.'h_z_true_focus')read(line,1201,err=94)h_z_true_focus + good = getline(ifile,line).good(); + } + // Read in reconstruction coefficients and exponents + line=" "; + good = getline(ifile,line).good(); + cout << line << endl; + fNReconTerms = 0; + cout << "Reading matrix elements" << endl; + while(good && line.compare(0,4," ---")!=0) { + if(fNReconTerms >= fMaxReconElements) { + Error(here, "too much data in reconstruction coefficient file %s",reconCoeffFilename.c_str()); + return kInitError; // Is this the right return code? + } +#if 0 + Double_t x,y,z,t; + Int_t a,b,c,d,e; + sscanf(line.c_str()," %le %le %le %le %1d%1d%1d%1d%1d",&x,&y,&z,&t, + &a,&b,&c,&d,&e); + cout << x << " " << y << " " << z << " " << t << " " + << a << b << c << d << endl; #endif + sscanf(line.c_str()," %le %le %le %le %1d%1d%1d%1d%1d" + ,&fReconCoeff[fNReconTerms][0],&fReconCoeff[fNReconTerms][1] + ,&fReconCoeff[fNReconTerms][2],&fReconCoeff[fNReconTerms][3] + ,&fReconExponents[fNReconTerms][0] + ,&fReconExponents[fNReconTerms][1] + ,&fReconExponents[fNReconTerms][2] + ,&fReconExponents[fNReconTerms][3] + ,&fReconExponents[fNReconTerms][4]); + // Parse line into fReconCoeff[fNReconTerms][0 - 3] and + // fReconExponents[fNReconTerms][0 - 5] + fNReconTerms++; + good = getline(ifile,line).good(); + } +#if 0 + cout << fNReconTerms << " Reconstruction terms" << endl; + for (Int_t i=0;i<fNReconTerms;i++) { + cout << fReconCoeff[i][0] << " " << fReconCoeff[i][1] << " " + << fReconCoeff[i][2] << " " << fReconCoeff[i][3] << " " + << fReconExponents[i][0] << fReconExponents[i][1] + << fReconExponents[i][2] << fReconExponents[i][3] + << fReconExponents[i][4] << endl; + } +#endif + if(!good) { + Error(here, "error processing reconstruction coefficient file %s",reconCoeffFilename.c_str()); + return kInitError; // Is this the right return code? + } + + return kOK; +} + +//_____________________________________________________________________________ +Int_t THcHallCSpectrometer::FindVertices( TClonesArray& tracks ) +{ + // Reconstruct target coordinates for all tracks found in the focal plane. + + // In Hall A, this is passed off to the tracking detectors. + // In Hall C, we do the target traceback here since the traceback should + // not depend on which tracking detectors are used. + + cout << "In THcHallCSpectrometer::FindVertices" << endl; + for (Int_t it=0;it<tracks.GetLast()+1;it++) { + THaTrack* track = static_cast<THaTrack*>( tracks[it] ); + + Double_t hut[5]; + Double_t hut_rot[5]; + + hut[0] = track->GetX()/100.0 + fZTrueFocus*track->GetTheta() + fDetOffset_x;//m + hut[1] = track->GetTheta() + fAngOffset_x;//radians + hut[2] = track->GetY()/100.0 + fZTrueFocus*track->GetPhi() + fDetOffset_y;//m + hut[3] = track->GetPhi() + fAngOffset_y;//radians + + Double_t gbeam_y = 0.0;// This will be the y position from the fast raster + + hut[4] = -gbeam_y/100.0; + + // Retrieve the focal plane coordnates + // Do the transpormation + // Stuff results into track + hut_rot[0] = hut[0]; + hut_rot[1] = hut[1] + hut[0]*fAngSlope_x; + hut_rot[2] = hut[2]; + hut_rot[3] = hut[3] + hut[2]*fAngSlope_y; + hut_rot[4] = hut[4]; + + // Compute COSY sums + Double_t sum[4]; + for(Int_t k=0;k<4;k++) { + sum[k] = 0.0; + } + for(Int_t iterm=0;iterm<fNReconTerms;iterm++) { + Double_t term=1.0; + for(Int_t j=0;j<5;j++) { + if(fReconExponents[iterm][j]!=0) { + term *= pow(hut_rot[j],fReconExponents[iterm][j]); + } + } + for(Int_t k=0;k<4;k++) { + sum[k] += term*fReconCoeff[iterm][k]; + } + } + // Transfer results to track + // No beam raster yet + //; In transport coordinates phi = hyptar = dy/dz and theta = hxptar = dx/dz + //; but for unknown reasons the yp offset is named htheta_offset + //; and the xp offset is named hphi_offset + + track->SetTarget(0.0, sum[1]*100.0, sum[0]+fPhiOffset, sum[2]+fThetaOffset); + track->SetDp(sum[3]*100.0+fDeltaOffset); // Percent. (Don't think podd cares if it is % or fraction) + // There is an hpcentral_offset that needs to be applied somewhere. + // (happly_offs) + track->SetMomentum(fPCentral*(1+track->GetDp()/100.0)); } // If enabled, sort the tracks by chi2/ndof @@ -157,16 +326,19 @@ Int_t THcHallCSpectrometer::TrackTimes( TClonesArray* Tracks ) { // To be useful, a meaningful timing resolution should be assigned // to each Scintillator object (part of the database). +#if 0 if ( !Tracks ) return -1; - + THaTrack *track=0; Int_t ntrack = GetNTracks(); + THaTrack *track=0; + // linear regression to: t = t0 + pathl/(beta*c) // where t0 is the time of the track at the reference plane (sc_ref). // t0 and beta are solved for. // -#if 0 + for ( Int_t i=0; i < ntrack; i++ ) { track = static_cast<THaTrack*>(Tracks->At(i)); THaTrackProj* tr_ref = static_cast<THaTrackProj*> diff --git a/src/THcHallCSpectrometer.h b/src/THcHallCSpectrometer.h index f560bbff1dba69b8887ebcee648add6c155bfd2e..356e6cf3d5df335364be9ada63416c70074740b8 100644 --- a/src/THcHallCSpectrometer.h +++ b/src/THcHallCSpectrometer.h @@ -17,14 +17,35 @@ public: THcHallCSpectrometer( const char* name, const char* description ); virtual ~THcHallCSpectrometer(); + virtual Int_t ReadDatabase( const TDatime& date ); virtual Int_t FindVertices( TClonesArray& tracks ); virtual Int_t TrackCalc(); virtual Int_t TrackTimes( TClonesArray* tracks ); Bool_t SetTrSorting( Bool_t set = kFALSE ); Bool_t GetTrSorting() const; - + protected: + void InitializeReconstruction(); + + // Should look at the ThaMatrixElement class in THaVDC.h for better way + // to store matrix element data +#define fMaxReconElements 1000 + Int_t fNReconTerms; + Double_t fReconCoeff[fMaxReconElements][4]; + Int_t fReconExponents[fMaxReconElements][5]; + Double_t fAngSlope_x; + Double_t fAngSlope_y; + Double_t fAngOffset_x; + Double_t fAngOffset_y; + Double_t fDetOffset_x; + Double_t fDetOffset_y; + Double_t fZTrueFocus; + Double_t fThetaOffset; + Double_t fPhiOffset; + Double_t fDeltaOffset; + Double_t fPCentral; + // THaScintillator *sc_ref; // calculate time track hits this plane // Flag for fProperties indicating that tracks are to be sorted by chi2