From e4a490245ce8b5ed885da269f29b82bd3fe22119 Mon Sep 17 00:00:00 2001 From: James Szalkie Date: Fri, 5 Jun 2026 14:14:21 -0400 Subject: [PATCH] python structure fixes --- Armory/ClassSX3.h | 4 +- Armory/anasenMS.cpp | 15 +- ELoss/E_vs_x_Al-27.dat | 501 +++++++++++++++++++ ELoss/E_vs_x_proton.dat | 1000 ++++++++++++++++++------------------- ELoss/PCEnergyAnalysis.py | 260 +++++++--- 5 files changed, 1194 insertions(+), 586 deletions(-) create mode 100644 ELoss/E_vs_x_Al-27.dat diff --git a/Armory/ClassSX3.h b/Armory/ClassSX3.h index 9f43ba8..b4194f7 100644 --- a/Armory/ClassSX3.h +++ b/Armory/ClassSX3.h @@ -57,8 +57,8 @@ private: const int numDet = 12; const float radius = 88; const float width = 40; - const float length = 174.3; // 75 - const float gap = 0; // 46 + const float length = 75; // 75 + const float gap = 46; // 46 short id; // -1 when no hit short chUp; diff --git a/Armory/anasenMS.cpp b/Armory/anasenMS.cpp index a9402cd..7d2c26c 100644 --- a/Armory/anasenMS.cpp +++ b/Armory/anasenMS.cpp @@ -97,13 +97,13 @@ int main(int argc, char **argv){ if( argc >= 2 ) numEvent = atoi(argv[1]); TransferReaction transfer; - transfer.SetA(27, 13, 0); // 18Ne projectile + transfer.SetA(1, 1, 0); // 18Ne projectile //transfer.SetIncidentEnergyAngle(0, 0, 0); // KEA in MeV/u, theta and phi in rad - TGraph* elossBeam = LoadELoss("../ELoss/E_vs_x_Ne-18.dat"); + TGraph* elossBeam = LoadELoss("../ELoss/E_vs_x_proton.dat"); transfer.Seta(4, 2); // 4He target transfer.Setb(1, 1); // outgoing proton from the primary transfer - transfer.SetB(30, 14); // 21Na* heavy product - const double beamA = 27.0; // mass number of 27Al beam + transfer.SetB(4, 2); // 21Na* heavy product + const double beamA = 1.0; // mass number of 27Al beam bool enableSequentialDecay = false; // turning to false to disable sequential decay for now, can be set to true to enable const int decayDaughterA = 20; @@ -118,7 +118,7 @@ int main(int argc, char **argv){ // define vertex position uniform distribution ranges (mm) double vertexXRange[2] = { -5, 5}; // mm - 5, 5 double vertexYRange[2] = { -5, 5}; // -5, 5 - double vertexZRange[2] = { -100, 100}; // -174.3, 174.3 (full length of gas volume, centered at 0) + double vertexZRange[2] = { -174.3, 174.3}; // -174.3, 174.3 (full length of gas volume, centered at 0) const double beamEntranceZ = -174.3; //vertexZRange[0]; // mm, assumed beam entrance into the gas @@ -547,10 +547,13 @@ int main(int argc, char **argv){ vertexX2 = vertexX; vertexY2 = vertexY; vertexZ2 = vertexZ; + qqqX = TMath::QuietNaN(); + qqqY = TMath::QuietNaN(); + qqqZ = TMath::QuietNaN(); tree2->Fill(); - }else if (qqqID >= 0){ + }else if (false) {//(qqqID >= 0){ // handle QQQ hit case sx3Up = -1; sx3Dn = -1; diff --git a/ELoss/E_vs_x_Al-27.dat b/ELoss/E_vs_x_Al-27.dat new file mode 100644 index 0000000..531c0aa --- /dev/null +++ b/ELoss/E_vs_x_Al-27.dat @@ -0,0 +1,501 @@ +Distance_cm Energy_MeV +-0.0 72.0 +0.07516627746635594 71.85573146292585 +0.1502674587514124 71.71146292585169 +0.22530353863089683 71.56719438877755 +0.30027451183674336 71.4229258517034 +0.37518037305649476 71.27865731462926 +0.45002111693280733 71.1343887775551 +0.52479673806283 70.99012024048096 +0.599507230997694 70.84585170340681 +0.6741525902418835 70.70158316633265 +0.748732810252672 70.55731462925851 +0.8232478854395513 70.41304609218436 +0.8976978101635771 70.26877755511022 +0.9720825787368177 70.12450901803606 +1.0464021854216836 69.98024048096191 +1.1206566244303215 69.83597194388777 +1.1948458899240002 69.69170340681362 +1.268969976012413 69.54743486973948 +1.3430288767530822 69.40316633266532 +1.4170225861506371 69.25889779559118 +1.490951098156198 69.11462925851703 +1.5648144066666436 68.97036072144287 +1.6386125055239398 68.82609218436873 +1.7123453885144593 68.68182364729458 +1.7860130493682191 68.53755511022044 +1.8596154817582156 68.39328657314628 +1.933152679299634 68.24901803607214 +2.006624635549164 68.10474949899799 +2.0800313440041944 67.96048096192384 +2.153372798102072 67.8162124248497 +2.226648991219346 67.67194388777554 +2.299859916670933 67.5276753507014 +2.3730055677093755 67.38340681362725 +2.4460859375239763 67.2391382765531 +2.5191010192400345 67.09486973947895 +2.5920508059179634 66.9506012024048 +2.6649352905524664 66.80633266533066 +2.7377544660717033 66.6620641282565 +2.8105083253363703 66.51779559118236 +2.883196861138875 66.37352705410821 +2.955820066202387 66.22925851703407 +3.028377933179984 66.08498997995991 +3.100870454653685 65.94072144288576 +3.173297623133536 65.79645290581162 +3.245659431056685 65.65218436873747 +3.317955870786368 65.50791583166333 +3.3901869346109943 65.36364729458917 +3.4623526147430987 65.21937875751503 +3.5344529033183933 65.07511022044088 +3.6064877923947 64.93084168336672 +3.6784572739509387 64.78657314629258 +3.750361339886098 64.64230460921843 +3.8221999820181236 64.49803607214429 +3.893973192082893 64.35376753507013 +3.965680961733064 64.209498997996 +4.03732328253702 64.06523046092184 +4.108900145977691 63.920961923847685 +4.180411543451432 63.77669338677354 +4.251857466266871 63.63242484969938 +4.323237905643703 63.488156312625236 +4.394552852711519 63.34388777555109 +4.465802298508576 63.19961923847694 +4.536986233980569 63.055350701402794 +4.608104649979376 62.91108216432865 +4.679157537261796 62.7668136272545 +4.750144886488255 62.622545090180346 +4.82106668822149 62.4782765531062 +4.8919229329252385 62.33400801603205 +4.96271361096288 62.189739478957904 +5.0334387125960705 62.04547094188376 +5.104098227983351 61.90120240480961 +5.1746921471787415 61.75693386773546 +5.245220460130313 61.61266533066131 +5.315683156678721 61.46839679358716 +5.386080226555749 61.32412825651301 +5.456411659382805 61.179859719438866 +5.5266774446693985 61.03559118236472 +5.5968775718116 60.89132264529057 +5.66701203009048 60.74705410821642 +5.737080808670504 60.60278557114227 +5.807083896597937 60.45851703406812 +5.877021282799196 60.314248496993976 +5.946892956079183 60.16997995991983 +6.016698905119601 60.02571142284568 +6.0864391184772355 59.881442885771534 +6.156113584582216 59.73717434869738 +6.2257222917362345 59.59290581162323 +6.29526522811077 59.448637274549085 +6.364742381745252 59.30436873747494 +6.434153740545209 59.16010020040079 +6.503499292280392 59.015831663326644 +6.57277902458286 58.8715631262525 +6.641992924945049 58.72729458917834 +6.711140980717785 58.583026052104195 +6.7802231791083045 58.43875751503005 +6.849239507178213 58.2944889779559 +6.918189951841421 58.15022044088175 +6.987074499862048 58.005951903807606 +7.0558931378523 57.86168336673346 +7.124645852270304 57.717414829659305 +7.193332629417903 57.57314629258516 +7.261953455438445 57.42887775551101 +7.3305083163145035 57.28460921843686 +7.3989971978655795 57.140340681362716 +7.467420085745765 56.99607214428857 +7.5357769654413715 56.851803607214414 +7.604067822268504 56.70753507014027 +7.672292641370628 56.56326653306612 +7.740451407716073 56.41899799599197 +7.808544106095498 56.274729458917825 +7.87657072111933 56.13046092184368 +7.9445312372151475 55.98619238476953 +8.012425638625036 55.84192384769538 +8.080253909402876 55.69765531062123 +8.148016033411626 55.55338677354708 +8.215711994320529 55.409118236472935 +8.283341775602285 55.26484969939879 +8.35090536053018 55.12058116232464 +8.418402732175172 54.97631262525049 +8.48583387340292 54.83204408817634 +8.553198766870759 54.68777555110219 +8.620497395024662 54.543507014028044 +8.687729740096108 54.3992384769539 +8.754895784098922 54.25496993987975 +8.821995508826063 54.1107014028056 +8.889028895846357 53.966432865731456 +8.955995926501174 53.8221643286573 +9.022896581901046 53.677895791583154 +9.089730842922247 53.53362725450901 +9.156498690203303 53.38935871743486 +9.223200104141448 53.24509018036071 +9.289835064889012 53.100821643286565 +9.356403552349773 52.95655310621241 +9.42290554617522 52.812284569138264 +9.489341025760782 52.668016032064116 +9.555709970241967 52.52374749498997 +9.622012358490466 52.37947895791582 +9.68824816911016 52.235210420841675 +9.754417380433093 52.09094188376753 +9.820519970515353 51.94667334669337 +9.886555917132887 51.802404809619226 +9.952525197777272 51.65813627254508 +10.018427789651378 51.51386773547093 +10.084263669664981 51.369599198396784 +10.150032814430297 51.22533066132264 +10.21573520025744 51.08106212424849 +10.281370803149805 50.936793587174336 +10.346939598799363 50.79252505010019 +10.4124415625819 50.64825651302604 +10.47787666955215 50.503987975951894 +10.543244894438859 50.35971943887775 +10.608546211639755 50.2154509018036 +10.67378059521645 50.07118236472945 +10.738948018889236 49.9269138276553 +10.804048456031795 49.78264529058115 +10.86908187966584 49.638376753507 +10.934048262455631 49.494108216432856 +10.99894757670242 49.34983967935871 +11.063779794338794 49.20557114228456 +11.128544886922919 49.06130260521041 +11.193242825632675 48.91703406813626 +11.25787358125972 48.77276553106211 +11.322437124203418 48.628496993987966 +11.386933424464676 48.48422845691382 +11.451362451639676 48.33995991983967 +11.515724174913492 48.195691382765524 +11.5800185630536 48.05142284569137 +11.644245584403263 47.90715430861722 +11.708405206874833 47.762885771543075 +11.772497397942887 47.61861723446893 +11.836522124637286 47.47434869739478 +11.900479353536083 47.330080160320634 +11.964369050758325 47.18581162324649 +12.028191181956718 47.04154308617233 +12.091945712310155 46.897274549098185 +12.15563260651614 46.75300601202404 +12.219251828783042 46.60873747494989 +12.282803342822238 46.46446893787574 +12.346287111840102 46.320200400801596 +12.409703098529857 46.17593186372745 +12.473051265063283 46.031663326653295 +12.536331573082263 45.88739478957915 +12.599543983690205 45.743126252505 +12.662688457443284 45.59885771543085 +12.725764954341537 45.454589178356706 +12.788773433819797 45.31032064128256 +12.851713854738469 45.166052104208404 +12.914586175374119 45.02178356713426 +12.977390353409929 44.87751503006011 +13.040126345925941 44.73324649298596 +13.10279410938915 44.588977955911815 +13.1653935996434 44.44470941883767 +13.22792477189911 44.30044088176352 +13.290387580722806 44.15617234468937 +13.35278198002645 44.01190380761522 +13.4151079230566 43.86763527054107 +13.477365362383358 43.723366733466925 +13.539554249889097 43.57909819639278 +13.601674536757013 43.43482965931863 +13.663726173459446 43.29056112224448 +13.72570910974599 43.14629258517033 +13.787623294631373 43.00202404809618 +13.849468676383143 42.857755511022035 +13.91124520250909 42.71348697394789 +13.972952819744453 42.56921843687374 +14.034591474038892 42.42494989979959 +14.096161110543205 42.28068136272544 +14.157661673595797 42.13641282565129 +14.219093106708915 41.992144288577144 +14.280455352554606 41.847875751503 +14.341748352950415 41.70360721442885 +14.402972048844822 41.5593386773547 +14.464126380302396 41.415070140280555 +14.52521128648868 41.2708016032064 +14.586226705654767 41.126533066132254 +14.64717257512162 40.98226452905811 +14.708048831264072 40.83799599198396 +14.768855409494517 40.69372745490981 +14.829592244246307 40.549458917835665 +14.89025926895683 40.40519038076152 +14.950856416050263 40.26092184368736 +15.011383616919975 40.116653306613216 +15.071840801910644 39.97238476953907 +15.132227900299984 39.82811623246492 +15.192544840280139 39.683847695390774 +15.25279154893872 39.53957915831663 +15.312967952239482 39.39531062124248 +15.37307397500262 39.251042084168326 +15.43310954088468 39.10677354709418 +15.493074572358102 38.96250501002003 +15.552968990690355 38.818236472945884 +15.612792715922655 38.67396793587174 +15.672545666848297 38.52969939879759 +15.732227760990545 38.385430861723435 +15.791838914580092 38.24116232464929 +15.851379042532098 38.09689378757514 +15.910848058422765 37.952625250500994 +15.970245874465451 37.808356713426846 +16.029572401486334 37.6640881763527 +16.088827548899577 37.51981963927855 +16.148011224682026 37.3755511022044 +16.20712333534739 37.23128256513025 +16.266163785919936 37.0870140280561 +16.32513247990765 36.942745490981956 +16.38402931927487 36.79847695390781 +16.442854204414374 36.65420841683366 +16.501607034118933 36.509939879759514 +16.56028770555229 36.36567134268536 +16.61889611421955 36.22140280561121 +16.677432153937005 36.077134268537066 +16.735895716801355 35.93286573146292 +16.794286693158295 35.78859719438877 +16.852604971570504 35.644328657314624 +16.910850438784973 35.50006012024048 +16.969022979699705 35.35579158316632 +17.027122477329716 35.211523046092175 +17.085148812772392 35.06725450901803 +17.14310186517212 34.92298597194388 +17.200981511684237 34.77871743486973 +17.258787627438227 34.634448897795586 +17.31652008550021 34.49018036072143 +17.374178756834638 34.345911823647285 +17.431763510265277 34.20164328657314 +17.48927421243533 34.05737474949899 +17.54671072776682 33.91310621242484 +17.60407291841911 33.768837675350696 +17.66136064424662 33.62456913827655 +17.71857376275566 33.480300601202394 +17.7757121290604 33.33603206412825 +17.83277559583795 33.1917635270541 +17.889764013282555 33.04749498997995 +17.946677229058807 32.903226452905805 +18.003515088253952 32.75895791583166 +18.060277433329215 32.61468937875751 +18.116964104070153 32.47042084168336 +18.17357493753596 32.32615230460921 +18.230109768007797 32.18188376753506 +18.286568426936025 32.037615230460915 +18.342950742886398 31.89334669338677 +18.399256541485144 31.74907815631262 +18.455485645362934 31.604809619238473 +18.511637874097723 31.460541082164326 +18.567720934190692 31.316272545090175 +18.623743934764097 31.172004008016028 +18.679708837636362 31.02773547094188 +18.7356163243514 30.883466933867734 +18.791466457919757 30.739198396793583 +18.847259301916758 30.594929859719436 +18.902994920491153 30.45066132264529 +18.958673378374048 30.306392785571138 +19.014294740888168 30.16212424849699 +19.06985907395749 30.017855711422843 +19.125366444117223 29.873587174348692 +19.180816918524187 29.729318637274545 +19.23621056496759 29.585050100200398 +19.29154745188025 29.44078156312625 +19.34682764835025 29.2965130260521 +19.402051224133082 29.152244488977953 +19.45721824966429 29.007975951903806 +19.51232879607264 28.863707414829655 +19.56738293519384 28.719438877755508 +19.622380739584862 28.57517034068136 +19.677322282538874 28.43090180360721 +19.732207638100814 28.286633266533062 +19.78703688108367 28.142364729458915 +19.841810087085467 27.998096192384768 +19.896527332507027 27.853827655310617 +19.951188694570526 27.70955911823647 +20.005794251338905 27.565290581162323 +20.060344081736183 27.421022044088172 +20.114838265568686 27.276753507014025 +20.169276883547308 27.132484969939878 +20.223660017310788 26.98821643286573 +20.277987749450123 26.84394789579158 +20.332260163534116 26.699679358717432 +20.38647734413619 26.555410821643285 +20.440639376862485 26.411142284569134 +20.494746348381316 26.266873747494987 +20.54879834645411 26.12260521042084 +20.602795459967833 25.97833667334669 +20.656737778969063 25.834068136272542 +20.71062539469974 25.689799599198395 +20.76445839963473 25.545531062124248 +20.818236887521277 25.401262525050097 +20.87196095342046 25.25699398797595 +20.925630693750765 25.112725450901802 +20.979246206333894 24.96845691382765 +21.032807590442918 24.824188376753504 +21.086314946852937 24.679919839679357 +21.139768377894377 24.535651302605206 +21.193167987509028 24.39138276553106 +21.246513881309063 24.247114228456912 +21.299806166639137 24.102845691382765 +21.353044952641763 23.958577154308614 +21.406230350326144 23.814308617234467 +21.45936247264069 23.67004008016032 +21.512441434549384 23.52577154308617 +21.565467353112222 23.38150300601202 +21.618440347570004 23.237234468937874 +21.671360539433685 23.092965931863727 +21.724228052578532 22.948697394789576 +21.777043013343416 22.80442885771543 +21.8298055506355 22.660160320641282 +21.882515796040614 22.51589178356713 +21.935173883939697 22.371623246492984 +21.987779951631616 22.227354709418837 +22.04033413946274 22.083086172344686 +22.092836590963664 21.93881763527054 +22.145287452993507 21.79454909819639 +22.197686875892206 21.650280561122244 +22.250035013641273 21.506012024048093 +22.302332024033543 21.361743486973946 +22.354578068852387 21.2174749498998 +22.40677331406098 21.073206412825648 +22.458917930002215 20.9289378757515 +22.51101209160986 20.784669338677354 +22.563055978631667 20.640400801603203 +22.61504977586508 20.496132264529056 +22.666993673406367 20.35186372745491 +22.718887866913878 20.20759519038076 +22.770732557886358 20.06332665330661 +22.822527953957145 19.919058116232463 +22.874274269205262 19.774789579158316 +22.92597172448435 19.630521042084165 +22.97762054777056 19.486252505010018 +23.029220974530553 19.34198396793587 +23.08077324811076 19.19771543086172 +23.13227762014925 19.053446893787573 +23.183734351011562 18.909178356713426 +23.23514371025193 18.76490981963928 +23.286505977101466 18.620641282565128 +23.337832649142197 18.47637274549098 +23.389143342951172 18.332104208416833 +23.44044820267803 18.187835671342683 +23.491749757183765 18.043567134268535 +23.5430491586445 17.899298597194388 +23.594347434511615 17.75503006012024 +23.64564564229102 17.61076152304609 +23.696944870858683 17.466492985971943 +23.748246241847326 17.322224448897796 +23.7995509111086 17.177955911823645 +23.850860070255433 17.033687374749498 +23.90217494828952 16.88941883767535 +23.95349681331927 16.7451503006012 +24.004826974373863 16.600881763527052 +24.056166783319547 16.456613226452905 +24.107517636884623 16.312344689378758 +24.158880978800095 16.168076152304607 +24.21025830206343 16.02380761523046 +24.261651151333425 15.87953907815631 +24.313061125464696 15.735270541082162 +24.364489880190984 15.591002004008013 +24.41593913096712 15.446733466933866 +24.467410655980185 15.302464929859717 +24.518906299341218 15.158196392785568 +24.570427974469663 15.01392785571142 +24.621977667683645 14.869659318637272 +24.67355744201016 14.725390781563124 +24.72516944123037 14.581122244488975 +24.7768158941763 14.436853707414826 +24.828499119296573 14.29258517034068 +24.880221529510163 14.14831663326653 +24.93198563736862 14.004048096192383 +24.98379406054891 13.859779559118234 +25.035649527700766 13.715511022044085 +25.087554884674383 13.571242484969938 +25.139513101156414 13.426973947895789 +25.19152727774457 13.282705410821642 +25.243600653493615 13.138436873747493 +25.295736613968387 12.994168336673344 +25.347938699842445 12.849899799599196 +25.400210616084376 12.705631262525047 +25.452556241777383 12.5613627254509 +25.50497964062188 12.417094188376751 +25.557485072175194 12.272825651302602 +25.610077003887486 12.128557114228455 +25.662760123998297 11.984288577154306 +25.715539355364164 11.840020040080159 +25.768419870294395 11.69575150300601 +25.82140710647933 11.551482965931863 +25.874506784103673 11.407214428857714 +25.927724924246363 11.262945891783565 +25.981067868678664 11.118677354709417 +26.034542301183215 10.974408817635268 +26.08815527052934 10.830140280561121 +26.14191421525389 10.685871743486972 +26.19582699041243 10.541603206412823 +26.24990189648321 10.397334669338676 +26.304147710625887 10.253066132264527 +26.35857372051921 10.10879759519038 +26.41318976102666 9.96452905811623 +26.468006253967225 9.820260521042082 +26.523034251300246 9.675991983967934 +26.57828548206925 9.531723446893785 +26.633742337775963 9.387454909819638 +26.689338083235043 9.24318637274549 +26.745028925059557 9.09891783567134 +26.800816117138876 8.954649298597193 +26.85670585548451 8.810380761523044 +26.912706900318735 8.666112224448897 +26.96882861227707 8.521843687374748 +27.02508099838088 8.377575150300599 +27.081474762033395 8.233306613226452 +27.13802135745477 8.089038076152303 +27.194733049022997 7.9447695390781545 +27.25162297604574 7.800501002004006 +27.30870522355517 7.656232464929858 +27.365994899794575 7.51196392785571 +27.42350822115415 7.367695390781562 +27.481262605415292 7.223426853707413 +27.53927677428101 7.079158316633265 +27.597570866307027 6.934889779559117 +27.65616656150753 6.790621242484969 +27.715087219095473 6.646352705410821 +27.774358030034815 6.502084168336672 +27.83400618633711 6.357815631262524 +27.894061069335237 6.2135470941883755 +27.95455445952136 6.069278557114227 +28.01552077095618 5.925010020040079 +28.07699731375548 5.780741482965931 +28.139024588755394 5.636472945891782 +28.201646619170532 5.492204408817634 +28.264911324916156 5.347935871743486 +28.32887094629981 5.203667334669338 +28.39358252504175 5.05939879759519 +28.459108452110375 4.915130260521041 +28.525517093726656 4.770861723446893 +28.592883509188262 4.6265931863727445 +28.661290277002124 4.482324649298596 +28.73082844934073 4.338056112224448 +28.80159865924444 4.193787575150299 +28.873712410532516 4.049519038076151 +28.94729358739528 3.905250501002003 +29.022480229567456 3.760981963927855 +29.099426630434042 3.6167134268537064 +29.178305830217344 3.4724448897795583 +29.259312595666188 3.3281763527054102 +29.342667002978146 3.1839078156312617 +29.42861877421806 3.0396392785571136 +29.517452562336686 2.8953707414829655 +29.609494440447484 2.751102204408817 +29.705119933643836 2.606833667334669 +29.804764045611353 2.4625651302605203 +29.908933891300695 2.318296593186372 +30.018224771400167 2.174028056112224 +30.13334084505466 2.0297595190380755 +30.255122020930816 1.8854909819639276 +30.384579364471794 1.7412224448897793 +30.522942318747475 1.596953907815631 +30.67172251674337 1.4526853707414829 +30.832801142369917 1.3084168336673345 +31.008549911062335 1.1641482965931862 +31.20199978106649 1.0198797595190379 +31.41706960071087 0.8756112224448896 +31.658882845241283 0.7313426853707414 +31.929915336524896 0.5870741482965931 +32.22943849820706 0.44280561122244483 +32.559672476181774 0.29853707414829656 +32.922180535599225 0.15426853707414828 +33.267604963464514 0.01 diff --git a/ELoss/E_vs_x_proton.dat b/ELoss/E_vs_x_proton.dat index 9a5762c..555b2d1 100644 --- a/ELoss/E_vs_x_proton.dat +++ b/ELoss/E_vs_x_proton.dat @@ -1,501 +1,501 @@ Distance_cm Energy_MeV --0.0 80.0 -154.18305973173608 79.83969939879759 -308.12735926191283 79.6793987975952 -461.8327373234883 79.51909819639279 -615.2990316169373 79.35879759519038 -768.5260796125001 79.19849699398797 -921.5137185493666 79.03819639278558 -1074.2617854349387 78.87789579158317 -1226.770117043952 78.71759519038076 -1379.0385499177276 78.55729458917835 -1531.066920363351 78.39699398797595 -1682.855064452848 78.23669338677355 -1834.4028180224204 78.07639278557114 -1985.7100166715445 77.91609218436874 -2136.776495762197 77.75579158316633 -2287.6020904179973 77.59549098196393 -2438.1866355234224 77.43519038076153 -2588.5299657228848 77.27488977955912 -2738.631915419939 77.11458917835671 -2888.4923187764016 76.95428857715432 -3038.111009711546 76.79398797595191 -3187.4878219011594 76.6336873747495 -3336.622588776726 76.47338677354709 -3485.5151435245275 76.3130861723447 -3634.165319084815 76.15278557114229 -3782.5729481508456 75.99248496993988 -3930.737863168042 75.83218436873747 -4078.659896333071 75.67188376753508 -4226.338879592993 75.51158316633267 -4373.774644644274 75.35128256513026 -4520.967022931927 75.19098196392785 -4667.915845648577 75.03068136272545 -4814.620943733519 74.87038076152305 -4961.082147871845 74.71008016032064 -5107.299288493425 74.54977955911824 -5253.272195772012 74.38947895791583 -5399.000699624273 74.22917835671343 -5544.484629708876 74.06887775551102 -5689.72381542546 73.90857715430862 -5834.718085913709 73.74827655310621 -5979.467273154079 73.58797595190381 -6123.9712090511475 73.4276753507014 -6268.229722135261 73.267374749499 -6412.242640477294 73.10707414829659 -6556.00979188318 72.9467735470942 -6699.531003892951 72.78647294589179 -6842.806103779651 72.62617234468938 -6985.834918548363 72.46587174348697 -7128.617274935159 72.30557114228458 -7271.152999406111 72.14527054108217 -7413.441918156177 71.98496993987976 -7555.483857108203 71.82466933867735 -7697.278641911851 71.66436873747494 -7838.8260979425295 71.50406813627255 -7980.126050300369 71.34376753507014 -8121.178323809068 71.18346693386773 -8261.982743014867 71.02316633266533 -8402.539132185419 70.86286573146293 -8542.84731530875 70.70256513026052 -8682.907116092074 70.54226452905812 -8822.718357960724 70.38196392785571 -8962.280864057015 70.22166332665331 -9101.594457239149 70.0613627254509 -9240.658960080014 69.9010621242485 -9379.474194866087 69.74076152304609 -9518.039983596247 69.5804609218437 -9656.35614798067 69.42016032064129 -9794.422509439586 69.25985971943888 -9932.238889102144 69.09955911823647 -10069.805107805203 68.93925851703408 -10207.120986092188 68.77895791583167 -10344.186344211814 68.61865731462926 -10481.001002116918 68.45835671342685 -10617.56477946323 68.29805611222444 -10753.877495608132 68.13775551102205 -10889.938970125799 67.97745490981964 -11025.749025173951 67.81715430861723 -11161.307482081154 67.65685370741483 -11296.614158977436 67.49655310621243 -11431.66887368821 67.33625250501002 -11566.471443732924 67.17595190380761 -11701.021686323815 67.0156513026052 -11835.319418364583 66.85535070140281 -11969.364456449124 66.6950501002004 -12103.156616860146 66.534749498998 -12236.695715567874 66.37444889779559 -12369.981568228695 66.2141482965932 -12503.013990183852 66.05384769539079 -12635.792796458009 65.89354709418838 -12768.317801757934 65.73324649298597 -12900.588820471092 65.57294589178358 -13032.605666664298 65.41264529058117 -13164.36815408225 65.25234468937876 -13295.876096146163 65.09204408817635 -13427.129305952329 64.93174348697394 -13558.127596270679 64.77144288577155 -13688.870779543386 64.61114228456914 -13819.358667883333 64.45084168336673 -13949.591073072701 64.29054108216432 -14079.567806561465 64.13024048096193 -14209.288679465957 63.969939879759515 -14338.753502567275 63.80963927855711 -14467.962086309848 63.649338677354706 -14596.914240799899 63.4890380761523 -14725.609775803876 63.3287374749499 -14854.048500746952 63.16843687374749 -14982.230224711424 63.00813627254509 -15110.154756435179 62.84783567134268 -15237.821904828645 62.68753507014028 -15365.231481461387 62.52723446893787 -15492.383297022994 62.36693386773547 -15619.27715883334 62.20663326653306 -15745.912873859768 62.04633266533066 -15872.290248715499 61.88603206412825 -15998.409089657915 61.72573146292585 -16124.269202586942 61.56543086172344 -16249.870393043318 61.405130260521034 -16375.212466206913 61.24482965931863 -16500.295226895032 61.084529058116225 -16625.118479560646 60.92422845691382 -16749.682028290703 60.763927855711415 -16873.985676804325 60.603627254509014 -16998.029228451072 60.443326653306606 -17121.81248620914 60.283026052104205 -17245.335252683577 60.1227254509018 -17368.597330104447 59.962424849699396 -17491.598520325042 59.80212424849699 -17614.338624819986 59.641823647294586 -17736.81744468343 59.48152304609218 -17859.034780627135 59.32122244488978 -17980.990432978622 59.16092184368737 -18102.68420167922 59.00062124248497 -18224.11588628221 58.84032064128256 -18345.285285950806 58.68002004008016 -18466.192199456287 58.51971943887775 -18586.836425175956 58.35941883767535 -18707.21776109121 58.19911823647294 -18827.336004785502 58.03881763527053 -18947.190953442318 57.87851703406813 -19066.782406452363 57.718216432865724 -19186.110163856676 57.55791583166332 -19305.174022667197 57.397615230460914 -19423.97377841939 57.23731462925851 -19542.50922623837 57.077014028056105 -19660.78016083675 56.916713426853704 -19778.78637651254 56.756412825651296 -19896.527667146915 56.596112224448895 -20014.0038262021 56.43581162324649 -20131.214646719127 56.275511022044086 -20248.159921315633 56.11521042084168 -20364.839442183602 55.954909819639276 -20481.25300108713 55.79460921843687 -20597.40038936011 55.63430861723447 -20713.281397903975 55.47400801603206 -20828.895817185323 55.31370741482966 -20944.243437233632 55.15340681362725 -21059.324047638842 54.99310621242485 -21174.137437549023 54.83280561122244 -21288.683395667922 54.67250501002003 -21402.961710252555 54.51220440881763 -21516.972169110777 54.35190380761522 -21630.714559598768 54.19160320641282 -21744.18866861858 54.03130260521041 -21857.394282615576 53.87100200400801 -21970.331187575943 53.710701402805604 -22082.999169024064 53.5504008016032 -22195.39801201999 53.390100200400795 -22307.52750361747 53.229799599198394 -22419.3874317656 53.069498997995986 -22530.977581464762 52.909198396793585 -22642.29773585974 52.748897795591176 -22753.34767761759 52.588597194388775 -22864.12718892491 52.42829659318637 -22974.63605148507 52.267995991983966 -23084.874046515448 52.10769539078156 -23194.840954744563 51.94739478957916 -23304.53655640929 51.78709418837675 -23413.96063125194 51.62679358717435 -23523.112958517395 51.46649298597194 -23631.993316950164 51.30619238476954 -23740.60148479144 51.14589178356713 -23848.937239776104 50.98559118236472 -23957.00035912971 50.82529058116232 -24064.790619565472 50.66498997995991 -24172.30779728115 50.50468937875751 -24279.551667955988 50.3443887775551 -24386.522006747535 50.1840881763527 -24493.21858828853 50.023787575150294 -24599.641186683668 49.86348697394789 -24705.789575506402 49.703186372745485 -24811.66352779565 49.542885771543084 -24917.26281605253 49.382585170340676 -25022.587212237024 49.222284569138274 -25127.63649080643 49.061983967935866 -25232.410426636045 48.901683366733465 -25336.90879099011 48.74138276553106 -25441.13135359422 48.581082164328656 -25545.077883615642 48.42078156312625 -25648.748149659736 48.26048096192385 -25752.14191976643 48.10018036072144 -25855.258961406573 47.93987975951904 -25958.099041478315 47.77957915831663 -26060.661926303397 47.61927855711422 -26162.947381623442 47.45897795591182 -26264.955172596197 47.29867735470941 -26366.68506379171 47.13837675350701 -26468.136819188505 46.9780761523046 -26569.31020216968 46.8177755511022 -26670.20497551901 46.65747494989979 -26770.820901416937 46.49717434869739 -26871.157741436604 46.336873747494984 -26971.21525653976 46.17657314629258 -27070.993207072694 46.016272545090175 -27170.491352762063 45.85597194388777 -27269.70945271074 45.695671342685365 -27368.64726539354 45.535370741482964 -27467.30454865298 45.375070140280556 -27565.681063441407 45.214769539078155 -27663.776570538143 45.05446893787575 -27761.590826310017 44.894168336673346 -27859.123585985417 44.73386773547094 -27956.374604138182 44.57356713426854 -28053.343634683075 44.41326653306613 -28150.03043087112 44.25296593186372 -28246.434745284932 44.09266533066132 -28342.556329834002 43.93236472945891 -28438.39493574988 43.77206412825651 -28533.950313581357 43.6117635270541 -28629.22221318955 43.4514629258517 -28724.210383742968 43.29116232464929 -28818.91457371246 43.13086172344689 -28913.334530866203 42.97056112224448 -29007.47000226451 42.81026052104208 -29101.32073425469 42.649959919839674 -29194.886472465754 42.48965931863727 -29288.16696180315 42.329358717434864 -29381.161946443324 42.16905811623246 -29473.871169828344 42.008757515030055 -29566.294374660334 41.848456913827654 -29658.43130679031 41.688156312625246 -29750.28171187288 41.527855711422845 -29841.84533088793 41.36755511022044 -29933.12190347435 41.207254509018036 -30024.11116850251 41.04695390781563 -30114.812864068266 40.88665330661322 -30205.226727487014 40.72635270541082 -30295.352495287614 40.56605210420841 -30385.18990320623 40.40575150300601 -30474.73868618012 40.2454509018036 -30563.998578341336 40.0851503006012 -30652.969313010344 39.92484969939879 -30741.65062268956 39.76454909819639 -30830.042239056827 39.60424849699398 -30918.143892958757 39.44394789579158 -31005.95531440406 39.28364729458917 -31093.476232556706 39.12334669338677 -31180.706375729093 38.96304609218436 -31267.64547137501 38.80274549098196 -31354.293246082634 38.642444889779554 -31440.649428275603 38.48214428857715 -31526.713747520695 38.321843687374745 -31612.485929761842 38.161543086172344 -31697.96569799777 38.001242484969936 -31783.152774324688 37.840941883767535 -31868.046879928675 37.68064128256513 -31952.647735077913 37.52034068136272 -32036.95505911483 37.36004008016032 -32120.96857044816 37.19973947895791 -32204.687986544846 37.03943887775551 -32288.113023921895 36.8791382765531 -32371.24339813804 36.7188376753507 -32454.07882378539 36.55853707414829 -32536.61901448084 36.39823647294589 -32618.86368285749 36.23793587174348 -32700.81254055583 36.07763527054108 -32782.4652982149 35.91733466933867 -32863.82166546321 35.75703406813627 -32944.88135090969 35.59673346693386 -33025.64406641419 35.43643286573146 -33106.10952353573 35.27613226452905 -33186.27742847418 35.11583166332665 -33266.1474856031 34.955531062124244 -33345.7193982285 34.79523046092184 -33424.99286857898 34.634929859719435 -33503.9675977955 34.474629258517034 -33582.643285921215 34.314328657314626 -33661.019631891 34.15402805611222 -33739.09633352089 33.993727454909816 -33816.873087497355 33.83342685370741 -33894.34958936639 33.67312625250501 -33971.52553352248 33.5128256513026 -34048.40061319734 33.3525250501002 -34124.97452044852 33.19222444889779 -34201.246946147854 33.03192384769539 -34277.21757996967 32.87162324649298 -34352.88611352987 32.71132264529058 -34428.252239447604 32.55102204408817 -34503.31564592074 32.39072144288577 -34578.07601763951 32.23042084168336 -34652.53303803486 32.07012024048096 -34726.68638926552 31.909819639278556 -34800.53575220487 31.74951903807615 -34874.080806427635 31.589218436873747 -34947.32123019628 31.428917835671342 -35020.25670044725 31.268617234468937 -35092.88689277696 31.108316633266533 -35165.21148142754 30.948016032064128 -35237.23013927238 30.787715430861724 -35308.94253780138 30.62741482965932 -35380.34834710598 30.467114228456914 -35451.44723586397 30.30681362725451 -35522.245081721965 30.146513026052105 -35592.75268234916 29.9862124248497 -35662.974306361895 29.825911823647296 -35732.908983693706 29.66561122244489 -35802.55574571999 29.505310621242486 -35871.913625289664 29.345010020040082 -35940.981656756754 29.184709418837677 -36009.75887601199 29.02440881763527 -36078.24432051431 28.864108216432864 -36146.43702932237 28.70380761523046 -36214.33604312593 28.543507014028055 -36281.94040427729 28.38320641282565 -36349.24915682255 28.222905811623246 -36416.26134653289 28.06260521042084 -36482.97602093569 27.902304609218437 -36549.39223472073 27.742004008016032 -36615.509044379934 27.581703406813627 -36681.325502741965 27.421402805611223 -36746.840664394906 27.261102204408818 -36812.05358583889 27.100801603206413 -36876.9633255167 26.94050100200401 -36941.56894384422 26.780200400801604 -37005.86950324079 26.6198997995992 -37069.864068159404 26.459599198396795 -37133.551705116726 26.29929859719439 -37196.93148272303 26.138997995991986 -37260.002471711865 25.97869739478958 -37322.76374496967 25.818396793587176 -37385.21437986621 25.65809619238477 -37447.353458834885 25.497795591182363 -37509.18006409903 25.33749498997996 -37570.69327715053 25.177194388777554 -37631.89218178084 25.01689378757515 -37692.77586410935 24.856593186372745 -37753.34341261153 24.69629258517034 -37813.59391814675 24.535991983967936 -37873.52647398588 24.37569138276553 -37933.14017583867 24.215390781563126 -37992.43412188072 24.05509018036072 -38051.40741278028 23.894789579158317 -38110.05915172469 23.734488977955913 -38168.388449131824 23.574188376753508 -38226.39441807867 23.413887775551103 -38284.076169392734 23.2535871743487 -38341.43281627571 23.093286573146294 -38398.463474578086 22.93298597194389 -38455.16726282355 22.772685370741485 -38511.543302232916 22.61238476953908 -38567.59071674772 22.452084168336675 -38623.30863305334 22.29178356713427 -38678.69618060169 22.131482965931863 -38733.75249163343 21.971182364729458 -38788.4767032246 21.810881763527053 -38842.867957793664 21.65058116232465 -38896.9253984136 21.490280561122244 -38950.648168348 21.32997995991984 -39004.03541375611 21.169679358717435 -39057.08628371198 21.00937875751503 -39109.79993022304 20.849078156312626 -39162.17550824803 20.68877755511022 -39214.212175714354 20.528476953907816 -39265.909093534734 20.36817635270541 -39317.265425623234 20.207875751503007 -39368.280342404236 20.047575150300602 -39418.953017958884 19.887274549098198 -39469.282625735475 19.726973947895793 -39519.26834143274 19.56667334669339 -39568.909343824096 19.406372745490984 -39618.20481476919 19.24607214428858 -39667.15393922459 19.085771543086175 -39715.75590525363 18.92547094188377 -39764.00990403534 18.76517034068136 -39811.91512995735 18.604869739478957 -39859.47078435391 18.444569138276552 -39906.67607141289 18.284268537074148 -39953.530194452454 18.123967935871743 -40000.03235994172 17.96366733466934 -40046.18177750371 17.803366733466934 -40091.97765991722 17.64306613226453 -40137.41922311743 17.482765531062125 -40182.50568619546 17.32246492985972 -40227.236271396585 17.162164328657315 -40271.61020759174 17.00186372745491 -40315.62672662542 16.841563126252506 -40359.285059801325 16.6812625250501 -40402.58444152622 16.520961923847697 -40445.52410933893 16.360661322645292 -40488.10330390047 16.200360721442888 -40530.32126898268 16.040060120240483 -40572.177251455294 15.879759519038075 -40613.67050333278 15.71945891783567 -40654.80028056926 15.559158316633265 -40695.56583988652 15.39885771543086 -40735.96643994735 15.238557114228456 -40776.001342430856 15.078256513026052 -40815.669812009495 14.917955911823647 -40854.97111632417 14.757655310621242 -40893.90452595757 14.597354709418838 -40932.4693169715 14.437054108216431 -40970.66476813032 14.276753507014027 -41008.49015825209 14.116452905811622 -41045.94476892484 13.956152304609217 -41083.027884525174 13.795851703406813 -41119.73879217987 13.635551102204408 -41156.076781725504 13.475250501002003 -41192.04114756819 13.314949899799599 -41227.63118672216 13.154649298597194 -41262.84619663469 12.99434869739479 -41297.68547706074 12.834048096192385 -41332.14833024534 12.673747494989978 -41366.23406087208 12.513446893787574 -41399.941976606264 12.35314629258517 -41433.27138830625 12.192845691382765 -41466.22160825391 12.03254509018036 -41498.79194983882 11.872244488977955 -41530.981728625164 11.71194388777555 -41562.790262294024 11.551643286573146 -41594.216870937526 11.391342685370741 -41625.26087714943 11.231042084168337 -41655.92160485331 11.07074148296593 -41686.19837910929 10.910440881763526 -41716.09052683559 10.750140280561121 -41745.59737676145 10.589839679358716 -41774.718259621564 10.429539078156312 -41803.45250770008 10.269238476953907 -41831.79945448089 10.108937875751502 -41859.76045661166 9.948637274549098 -41887.337411157394 9.788336673346693 -41914.530250393924 9.628036072144289 -41941.33841792872 9.467735470941884 -41967.761345412386 9.307434869739478 -41993.79845206821 9.147134268537073 -42019.44914419414 8.986833667334668 -42044.71281463526 8.826533066132264 -42069.58884222413 8.666232464929859 -42094.07659118656 8.505931863727454 -42118.17541050981 8.34563126252505 -42141.88463327002 8.185330661322645 -42165.20357591537 8.02503006012024 -42188.13153750087 7.864729458917835 -42210.66779887049 7.70442885771543 -42232.81162178161 7.544128256513026 -42254.56224796631 7.383827655310621 -42275.91889812315 7.2235270541082155 -42296.880770832635 7.063226452905811 -42317.4470413882 6.902925851703406 -42337.61686053389 6.742625250501002 -42357.38935309841 6.582324649298597 -42376.76361651393 6.422024048096192 -42395.73871920611 6.261723446893787 -42414.31369884013 6.101422845691382 -42432.4875604047 5.9411222444889775 -42450.25927411347 5.780821643286573 -42467.62777309974 5.620521042084168 -42484.59195087608 5.460220440881763 -42501.15065852565 5.299919839679358 -42517.30270158569 5.1396192384769535 -42533.04683657607 4.979318637274549 -42548.38176711646 4.819018036072144 -42563.30613956394 4.658717434869739 -42577.81853808798 4.498416833667334 -42591.91747908106 4.338116232464929 -42605.60140477906 4.177815631262525 -42618.868675934544 4.01751503006012 -42631.71756334523 3.857214428857715 -42644.146237986286 3.6969138276553104 -42656.15275942319 3.5366132264529053 -42667.73506208455 3.3763126252505007 -42678.89093884083 3.216012024048096 -42689.6180211494 3.055711422845691 -42699.91375476411 2.8954108216432863 -42709.77536963178 2.7351102204408813 -42719.19984204987 2.5748096192384766 -42728.18384634584 2.414509018036072 -42736.723692108964 2.254208416833667 -42744.81524111143 2.0939078156312623 -42752.45379508432 1.9336072144288576 -42759.63394077371 1.7733066132264528 -42766.34933103669 1.6130060120240481 -42772.592368292775 1.4527054108216433 -42778.35373678859 1.2924048096192384 -42783.62170074818 1.1321042084168336 -42788.38105321053 0.9718036072144288 -42792.61162030574 0.8115030060120241 -42796.2865773871 0.6512024048096192 -42799.37275039113 0.4909018036072144 -42801.8433788484 0.3306012024048096 -42803.74630774719 0.1703006012024048 -42805.973184099894 0.01 +-0.0 7.0 +1.799353147635171 6.985991983967936 +3.595682289904055 6.971983967935872 +5.388986859852913 6.957975951903808 +7.179266289053487 6.943967935871743 +8.966520007595992 6.929959919839679 +10.750747444082066 6.915951903807615 +12.531948025617657 6.901943887775551 +14.310121177805875 6.887935871743487 +16.085266324739784 6.873927855711423 +17.85738288899514 6.859919839679359 +19.626470291623086 6.8459118236472944 +21.392527952142796 6.83190380761523 +23.155555288534053 6.817895791583166 +24.915551717229786 6.803887775551102 +26.672516653108552 6.789879759519038 +28.42644950948696 6.775871743486974 +30.17734969811204 6.76186372745491 +31.92521662915356 6.7478557114228455 +33.67004971119629 6.733847695390781 +35.41184835123221 6.719839679358717 +37.15061195465263 6.705831663326653 +38.88633992524033 6.691823647294589 +40.61903166516152 6.677815631262525 +42.34868657495779 6.6638076152304615 +44.07530405353839 6.649799599198397 +45.79888349817146 6.635791583166333 +47.51942430447627 6.621783567134269 +49.23692586641481 6.607775551102205 +50.95138757628351 6.593767535070141 +52.662808824704804 6.579759519038077 +54.37118900061871 6.5657515030060125 +56.076527491274305 6.551743486973948 +57.77882368222112 6.537735470941884 +59.478076957300544 6.52372745490982 +61.17428669863707 6.509719438877756 +62.86745228662954 6.495711422845692 +64.55757309994232 6.481703406813628 +66.24464851549634 6.4676953907815635 +67.92867790846016 6.453687374749499 +69.60966065224092 6.439679358717435 +71.28759611847522 6.425671342685371 +72.96248367701992 6.411663326653307 +74.63432269594288 6.397655310621243 +76.30311254151368 6.383647294589179 +77.96885257819417 6.3696392785571145 +79.63154216862903 6.35563126252505 +81.29118067363616 6.341623246492986 +82.94776745219718 6.327615230460922 +84.60130186144761 6.313607214428858 +86.25178325666717 6.299599198396794 +87.8992109912699 6.28559118236473 +89.54358441679425 6.2715831663326655 +91.18490288289306 6.257575150300601 +92.82316573732348 6.243567134268537 +94.4583723259368 6.229559118236473 +96.09052199266826 6.215551102204409 +97.7196140795266 6.201543086172345 +99.34564792658375 6.187535070140281 +100.96862287196434 6.173527054108217 +102.58853825183505 6.159519038076152 +104.20539340039397 6.145511022044088 +105.81918764985991 6.131503006012024 +107.42992033046147 6.11749498997996 +109.03759077042616 6.103486973947896 +110.6421982959694 6.089478957915832 +112.24374223128336 6.075470941883768 +113.84222189852584 6.061462925851703 +115.43763661780888 6.047454909819639 +117.02998570718746 6.033446893787575 +118.61926848264801 6.019438877755511 +120.20548425809677 6.005430861723447 +121.7886323453482 5.991422845691383 +123.36871205411317 5.977414829659319 +124.94572269198711 5.963406813627254 +126.51966356443803 5.94939879759519 +128.09053397479448 5.935390781563126 +129.65833322423333 5.921382765531062 +131.22306061176755 5.907374749498998 +132.7847154342338 5.893366733466934 +134.34329698627997 5.87935871743487 +135.8988045603526 5.8653507014028055 +137.45123744668413 5.851342685370741 +139.00059493328013 5.837334669338677 +140.54687630590638 5.823326653306613 +142.0900808480759 5.809318637274549 +143.63020784103566 5.795310621242485 +145.16725656375348 5.781302605210421 +146.70122629290455 5.7672945891783565 +148.232116302858 5.753286573146292 +149.7599258656633 5.739278557114228 +151.28465425103641 5.725270541082164 +152.80630072634617 5.7112625250501 +154.32486455660003 5.697254509018036 +155.84034500443025 5.683246492985972 +157.35274133007943 5.6692384769539075 +158.8620527913863 5.655230460921843 +160.36827864377113 5.64122244488978 +161.8714181402215 5.627214428857716 +163.37147053127688 5.613206412825652 +164.86843506501435 5.599198396793588 +166.36231098703328 5.5851903807615235 +167.85309754044033 5.571182364729459 +169.3407939658341 5.557174348697395 +170.82539950128972 5.543166332665331 +172.30691338234328 5.529158316633267 +173.78533484197612 5.515150300601203 +175.26066311059898 5.501142284569139 +176.73289741603597 5.4871342685370745 +178.20203698350846 5.47312625250501 +179.66808103561877 5.459118236472946 +181.13102879233367 5.445110220440882 +182.5908794709678 5.431102204408818 +184.0476322861669 5.417094188376754 +185.5012864498909 5.40308617234469 +186.9518411713968 5.3890781563126255 +188.39929565722144 5.375070140280561 +189.84364911116404 5.361062124248497 +191.28490073426872 5.347054108216433 +192.72304972480663 5.333046092184369 +194.1580952782581 5.319038076152305 +195.5900365872945 5.305030060120241 +197.01887284176001 5.291022044088177 +198.44460322865314 5.277014028056112 +199.8672269321081 5.263006012024048 +201.286743133376 5.248997995991984 +202.7031510108058 5.23498997995992 +204.1164497398252 5.220981963927856 +205.5266384929212 5.206973947895792 +206.93371643962053 5.192965931863728 +208.33768274646994 5.178957915831663 +209.73853657701616 5.164949899799599 +211.1362770917858 5.150941883767535 +212.5309034482649 5.136933867735471 +213.92241480087844 5.122925851703407 +215.31081030096954 5.108917835671343 +216.69608909677837 5.094909819639279 +218.07825033342104 5.080901803607214 +219.45729315286815 5.06689378757515 +220.8332166939231 5.052885771543086 +222.20602009220028 5.038877755511022 +223.57570248010288 5.024869739478958 +224.94226298680064 5.010861723446894 +226.30570073820724 4.99685370741483 +227.6660148569575 4.9828456913827655 +229.0232044623844 4.968837675350701 +230.37726867049565 4.954829659318637 +231.72820659395032 4.940821643286573 +233.07601734203496 4.926813627254509 +234.42070002063957 4.912805611222445 +235.76225373223338 4.898797595190381 +237.10067757584017 4.8847895791583165 +238.43597064701353 4.870781563126252 +239.7681320378118 4.856773547094188 +241.09716083677262 4.842765531062124 +242.42305612888734 4.82875751503006 +243.74581699557507 4.814749498997996 +245.06544251465652 4.800741482965932 +246.3819317603275 4.7867334669338675 +247.695283803132 4.772725450901803 +249.00549770993538 4.758717434869739 +250.31257254389666 4.744709418837675 +251.61650736444102 4.730701402805611 +252.91730122723175 4.716693386773547 +254.2149531841419 4.702685370741483 +255.5094622832257 4.6886773547094185 +256.8008275686895 4.674669338677354 +258.0890480808624 4.66066132264529 +259.374122856167 4.646653306613226 +260.65605092708876 4.632645290581162 +261.93483132214624 4.618637274549099 +263.2104630658604 4.6046292585170345 +264.48294517872307 4.59062124248497 +265.75227667716604 4.576613226452906 +267.018456573529 4.562605210420842 +268.2814838760277 4.548597194388778 +269.54135758872104 4.534589178356714 +270.7980767114784 4.52058116232465 +272.05164023994644 4.5065731462925855 +273.30204716551503 4.492565130260521 +274.54929647528354 4.478557114228457 +275.793387152026 4.464549098196393 +277.0343181741564 4.450541082164329 +278.27208851569316 4.436533066132265 +279.5066971462234 4.422525050100201 +280.7381430308668 4.4085170340681366 +281.9664251302387 4.394509018036072 +283.19154240041314 4.380501002004008 +284.41349379288516 4.366492985971944 +285.63227825453276 4.35248496993988 +286.8478947275784 4.338476953907816 +288.06034214954997 4.324468937875752 +289.2696194532411 4.310460921843688 +290.4757255666713 4.296452905811623 +291.6786594130455 4.282444889779559 +292.8784199107128 4.268436873747495 +294.0750059731249 4.254428857715431 +295.26841650879413 4.240420841683367 +296.45865042125064 4.226412825651303 +297.6457066089992 4.212404809619239 +298.82958396547554 4.198396793587174 +300.01028137900175 4.18438877755511 +301.1877977327416 4.170380761523046 +302.3621319046548 4.156372745490982 +303.5332827674509 4.142364729458918 +304.7012491885425 4.128356713426854 +305.8660300299979 4.11434869739479 +307.0276241484931 4.1003406813627254 +308.186030395263 4.086332665330661 +309.34124761605216 4.072324649298597 +310.4932746510646 4.058316633266533 +311.64211033491335 4.044308617234469 +312.7877534965688 4.030300601202405 +313.9302029593067 4.016292585170341 +315.0694575406553 4.0022845691382765 +316.2055160523417 3.9882765531062123 +317.33837730023754 3.974268537074148 +318.468040084304 3.960260521042084 +319.5945031985357 3.94625250501002 +320.7177654309041 3.9322444889779558 +321.83782556330016 3.9182364729458916 +322.95468237147577 3.9042284569138275 +324.0683346249847 3.8902204408817633 +325.17878108712256 3.876212424849699 +326.2860205148659 3.862204408817635 +327.3900516588104 3.8481963927855714 +328.4908732631083 3.834188376753507 +329.58848406540454 3.820180360721443 +330.6828827967722 3.806172344689379 +331.7740681816473 3.792164328657315 +332.8620389377618 3.7781563126252506 +333.9467937760764 3.7641482965931865 +335.02833140071186 3.7501402805611224 +336.10665050887945 3.7361322645290582 +337.1817497908103 3.722124248496994 +338.2536279296835 3.70811623246493 +339.3222836015535 3.694108216432866 +340.3877154752761 3.6801002004008017 +341.44992221243285 3.6660921843687375 +342.5089024672555 3.6520841683366734 +343.56465488654777 3.6380761523046092 +344.6171781096071 3.624068136272545 +345.66647076814434 3.610060120240481 +346.71253148620264 3.596052104208417 +347.7553588800748 3.5820440881763527 +348.7949515582194 3.5680360721442885 +349.83130812117537 3.5540280561122244 +350.86442716147553 3.5400200400801602 +351.8943072635583 3.526012024048096 +352.92094700367824 3.512004008016032 +353.9443449498151 3.497995991983968 +354.9644996615811 3.4839879759519037 +355.98140969012695 3.4699799599198395 +356.9950735780461 3.4559719438877754 +358.00548985927753 3.4419639278557113 +359.0126570590066 3.427955911823647 +360.0165736935646 3.413947895791583 +361.0172382703264 3.399939879759519 +362.01464928760606 3.3859318637274547 +363.0088052345511 3.3719238476953906 +363.99970459103463 3.3579158316633264 +364.98734582754554 3.3439078156312623 +365.971727405077 3.3298997995991986 +366.9528477750129 3.3158917835671344 +367.93070537901207 3.3018837675350703 +368.90529864889055 3.287875751503006 +369.8766260065019 3.273867735470942 +370.84468586361515 3.259859719438878 +371.8094766217904 3.2458517034068137 +372.7709966722525 3.2318436873747496 +373.7292443957623 3.2178356713426854 +374.684218162485 3.2038276553106213 +375.63591633185706 3.189819639278557 +376.5843372524495 3.175811623246493 +377.52947926182947 3.161803607214429 +378.4713406864189 3.1477955911823647 +379.40991984135024 3.1337875751503006 +380.3452150303199 3.1197795591182365 +381.27722454543823 3.1057715430861723 +382.2059466670774 3.091763527054108 +383.1313796637157 3.077755511022044 +384.05352179177896 3.06374749498998 +384.9723712954789 3.0497394789579158 +385.8879264066484 3.0357314629258516 +386.8001853445729 3.0217234468937875 +387.7091463158195 3.0077154308617233 +388.61480751406145 2.993707414829659 +389.5171671198999 2.979699398797595 +390.4162233006817 2.965691382765531 +391.3119742103132 2.9516833667334668 +392.20441798907115 2.9376753507014026 +393.09355276340835 2.9236673346693385 +393.97937664575636 2.9096593186372743 +394.86188773432355 2.89565130260521 +395.7410841128889 2.881643286573146 +396.61696385059173 2.867635270541082 +397.4895250017165 2.8536272545090178 +398.35876560547337 2.8396192384769536 +399.22468368577375 2.82561122244489 +400.0872772510013 2.811603206412826 +400.9465442937775 2.7975951903807617 +401.8024827907224 2.7835871743486975 +402.65509070221003 2.7695791583166334 +403.5043659721181 2.7555711422845692 +404.3503065275725 2.741563126252505 +405.192910278686 2.727555110220441 +406.0321751182904 2.713547094188377 +406.8680989216637 2.6995390781563127 +407.70067954624994 2.6855310621242485 +408.5299148313731 2.6715230460921844 +409.35580259794455 2.6575150300601202 +410.17834064816316 2.643507014028056 +410.9975267652088 2.629498997995992 +411.8133587129284 2.615490981963928 +412.62583423551445 2.6014829659318637 +413.4349510571762 2.5874749498997995 +414.24070688180257 2.5734669338677354 +415.0430993926171 2.5594589178356713 +415.8421262518243 2.545450901803607 +416.6377851002478 2.531442885771543 +417.4300735569589 2.517434869739479 +418.2189892188966 2.5034268537074147 +419.0045296604775 2.4894188376753505 +419.7866924331966 2.4754108216432864 +420.56547506521747 2.4614028056112223 +421.3408750609522 2.447394789579158 +422.11288990063065 2.433386773547094 +422.8815170398585 2.41937875751503 +423.6467539091642 2.4053707414829657 +424.4085979135334 2.3913627254509016 +425.1670464319322 2.3773547094188374 +425.92209681681686 2.3633466933867733 +426.67374639363106 2.349338677354709 +427.4219924602897 2.335330661322645 +428.1668322866485 2.321322645290581 +428.90826311395983 2.307314629258517 +429.6462821543131 2.293306613226453 +430.38088659006036 2.279298597194389 +431.1120735732258 2.2652905811623247 +431.8398402248991 2.2512825651302606 +432.5641836346114 2.2372745490981965 +433.2851008596947 2.2232665330661323 +434.00258892462193 2.209258517034068 +434.7166448203296 2.195250501002004 +435.4272655035199 2.18124248496994 +436.13444789594365 2.1672344689378757 +436.83818888366204 2.1532264529058116 +437.538485316287 2.1392184368737475 +438.2353340061993 2.1252104208416833 +438.92873172774375 2.111202404809619 +439.6186752164003 2.097194388777555 +440.3051611679306 2.083186372745491 +440.98818623749906 2.0691783567134268 +441.6677470387671 2.0551703406813626 +442.3438401429601 2.0411623246492985 +443.01646207790577 2.0271543086172343 +443.6856093270429 2.01314629258517 +444.3512783283997 1.9991382765531063 +445.01346547354 1.9851302605210421 +445.6721671064769 1.971122244488978 +446.3273795225518 1.9571142284569139 +446.97909896727833 1.9431062124248497 +447.62732163514914 1.9290981963927858 +448.27204366840476 1.9150901803607217 +448.9132611557625 1.9010821643286575 +449.5509701311044 1.8870741482965934 +450.1851665721224 1.8730661322645292 +450.8158463989189 1.859058116232465 +451.44300547256154 1.845050100200401 +452.06663959358985 1.8310420841683368 +452.6867445004722 1.8170340681362727 +453.30331586801094 1.8030260521042085 +453.9163493056942 1.7890180360721444 +454.5258403559914 1.7750100200400802 +455.1317844925912 1.761002004008016 +455.7341771185786 1.746993987975952 +456.3330135645501 1.7329859719438878 +456.9282890866629 1.7189779559118237 +457.5199988646173 1.7049699398797595 +458.1081379995677 1.6909619238476954 +458.69270151196093 1.6769539078156313 +459.2736843392986 1.6629458917835673 +459.8510813338197 1.6489378757515032 +460.42488726010157 1.634929859719439 +460.99509679257454 1.620921843687375 +461.56170451294827 1.6069138276553108 +462.124704907545 1.5929058116232466 +462.6840923645367 1.5788977955911825 +463.23986117108234 1.5648897795591183 +463.7920055103608 1.5508817635270542 +464.340519458496 1.53687374749499 +464.88539698136907 1.522865731462926 +465.4266319313143 1.5088577154308618 +465.9642180436932 1.4948496993987976 +466.4981489333426 1.4808416833667335 +467.02841809089153 1.4668336673346694 +467.55501887894263 1.4528256513026052 +468.0779445281115 1.438817635270541 +468.5971881329201 1.424809619238477 +469.11274264753774 1.410801603206413 +469.62460088136476 1.3967935871743489 +470.13275549445257 1.3827855711422847 +470.6371989927546 1.3687775551102206 +471.137923723202 1.3547695390781564 +471.63492186859855 1.3407615230460923 +472.1281854423277 1.3267535070140282 +472.61770628286706 1.312745490981964 +473.10347604810283 1.2987374749498999 +473.58548620943924 1.2847294589178357 +474.06372804569634 1.2707214428857716 +474.53819263679077 1.2567134268537075 +475.00887085719364 1.2427054108216433 +475.4757533691604 1.2286973947895792 +475.9388306157272 1.214689378757515 +476.3980928134709 1.200681362725451 +476.8535299450261 1.1866733466933868 +477.30513175135883 1.1726653306613226 +477.75288772379304 1.1586573146292587 +478.1967870957888 1.1446492985971946 +478.6368188344729 1.1306412825651304 +479.07297163192237 1.1166332665330663 +479.50523389620565 1.1026252505010021 +479.9335937421853 1.088617234468938 +480.3580389820912 1.0746092184368738 +480.7785571158748 1.0606012024048097 +481.1951353213574 1.0465931863727456 +481.60776044419237 1.0325851703406814 +482.01641898766195 1.0185771543086173 +482.42109710233683 1.0045691382765531 +482.82178057563243 0.990561122244489 +483.2184548213018 0.9765531062124249 +483.6111048689141 0.9625450901803608 +483.9997153533754 0.9485370741482967 +484.38427050456085 0.9345290581162325 +484.7647541371373 0.9205210420841684 +485.14114964067045 0.9065130260521043 +485.51343997012617 0.8925050100200401 +485.8816076368928 0.878496993987976 +486.24563470047275 0.8644889779559118 +486.6055027610144 0.8504809619238477 +486.9611929528819 0.8364729458917837 +487.312685939491 0.8224649298597195 +487.65996190967337 0.8084569138276554 +488.0030005758701 0.7944488977955912 +488.3417811745013 0.7804408817635271 +488.6762824689062 0.766432865731463 +489.00648275530733 0.7524248496993988 +489.33235987231467 0.7384168336673347 +489.6538912145598 0.7244088176352705 +489.9710537511301 0.7104008016032065 +490.283824049566 0.6963927855711424 +490.59217830628756 0.6823847695390782 +490.89609238443194 0.6683767535070141 +491.19554186021435 0.65436873747495 +491.4905020790692 0.6403607214428858 +491.78094822299136 0.6263527054108217 +492.06685539067774 0.6123446893787575 +492.3481986922701 0.5983366733466934 +492.6249533607238 0.5843286573146294 +492.8970948820735 0.5703206412825652 +493.1645991471399 0.5563126252505011 +493.4274426275234 0.5423046092184369 +493.68560257906245 0.5282965931863728 +493.93905727629976 0.5142885771543086 +494.18778628190375 0.5002805611222445 +494.4317707554357 0.4862725450901804 +494.6709938063462 0.4722645290581163 +494.90544089663 0.45825651302605214 +495.13510029918206 0.444248496993988 +495.3599636185886 0.43024048096192385 +495.5800263818864 0.41623246492985977 +495.79528870775033 0.40222444889779563 +496.0057560636822 0.3882164328657315 +496.21144012212875 0.37420841683366735 +496.41235972815497 0.36020040080160326 +496.60854199347466 0.3461923847695391 +496.80002353449424 0.332184368737475 +496.98685187584346 0.31817635270541084 +497.16908704606766 0.3041683366733467 +497.34680339934454 0.2901603206412826 +497.5200917071628 0.27615230460921847 +497.68906157818566 0.2621442885771543 +497.8538442850218 0.24813627254509021 +498.01459610640677 0.23412825651302607 +498.1715023371379 0.22012024048096193 +498.3247821836649 0.20611222444889782 +498.47469486305187 0.19210420841683368 +498.621547378312 0.17809619238476956 +498.76570469095253 0.16408817635270542 +498.907603419311 0.1500801603206413 +499.0477708867582 0.13607214428857717 +499.18685258227475 0.12206412825651303 +499.3256534179014 0.1080561122244489 +499.4652028028651 0.09404809619238477 +499.6068635551045 0.08004008016032065 +499.752528496419 0.06603206412825652 +499.9050133319192 0.05202404809619239 +500.0689665127398 0.038016032064128256 +500.2531909736839 0.02400801603206413 +500.47445220888875 0.01 diff --git a/ELoss/PCEnergyAnalysis.py b/ELoss/PCEnergyAnalysis.py index e0d8c9d..7847d40 100644 --- a/ELoss/PCEnergyAnalysis.py +++ b/ELoss/PCEnergyAnalysis.py @@ -20,6 +20,8 @@ import os import periodictable as pt import re from matplotlib.colors import LinearSegmentedColormap +from mpl_toolkits.mplot3d import Axes3D +import nbformat as nbf # ROOT-like styling plt.rcParams.update({ @@ -291,50 +293,65 @@ def calculate_distance_tree2(vz, theta, z_max=34.86): return np.abs((z_max - vz) / cos_theta) def load_tree_arrays(tree, treename, max_events=None): - branches = ["Tb", "thetab", "sx3Z", "vX", "vY", "vZ", "sx3ID", "aID", "cID", "aDist", "cDist"] - if treename == 'tree1': - branches.extend(["sx3X", "sx3Y"]) + branches = tree.keys(recursive=False) return tree.arrays(branches, library="np", entry_stop=max_events) def prepare_tree_data(tree, treename, particle, max_events=None, z_max=34.86): data = load_tree_arrays(tree, treename, max_events) - #mask = data["thetab"] >= 0 + #mask = (~np.isnan(data["sx3X"])) & (~np.isnan(data["Tb"])) #data = {key: value[mask] for key, value in data.items()} Ei = data["Tb"] + Einan = np.isnan(Ei).sum() + print(f"sx3 NaN entries: {Einan}") theta = np.radians(data["thetab"]) vX = data["vX"] vY = data["vY"] vZ = data["vZ"] - if treename == 'tree1': - sx3X = data["sx3X"] - sx3Y = data["sx3Y"] - sx3Z = data["sx3Z"] - mask = ~np.isnan(sx3X) & ~np.isnan(sx3Y) & ~np.isnan(sx3Z) - else: - sx3Z = np.full_like(vZ, z_max) # Assume sx3Z is at z_max for tree2 - mask = ~np.isnan(Ei) & ~np.isnan(theta) & ~np.isnan(vZ) + #if treename == 'tree1': + sx3X = data["sx3X"] + sx3Y = data["sx3Y"] + sx3Z = data["sx3Z"] + mask = ~np.isnan(sx3X) & ~np.isnan(sx3Y) & ~np.isnan(sx3Z) + qqqX = data["qqqX"] + qqqY = data["qqqY"] + qqqZ = data["qqqZ"] + qqqnan = np.isnan(qqqZ).sum() + print(f"qqq NaN entries: {qqqnan}") + print(f"Total: {Einan + qqqnan}") + mask2 = ~np.isnan(sx3X) & ~np.isnan(sx3Y) & ~np.isnan(sx3Z) + #else: + # sx3Z = np.full_like(vZ, z_max) # Assume sx3Z is at z_max for tree2 + # mask = ~np.isnan(Ei) & ~np.isnan(theta) & ~np.isnan(vZ) - Ei = Ei[mask] + Eisx3 = Ei[mask] theta = theta[mask] - vX = vX[mask] - vY = vY[mask] - vZ = vZ[mask] + vXsx3 = vX[mask] + vYsx3 = vY[mask] + vZsx3 = vZ[mask] + Eiqqq = Ei[mask2] + vXqqq = vX[mask2] + vYqqq = vY[mask2] + vZqqq = vZ[mask2] - if treename == 'tree1': - sx3X = sx3X[mask] - sx3Y = sx3Y[mask] - sx3Z = sx3Z[mask] - dsx3 = calculate_distance_tree1(vX, vY, vZ, sx3X, sx3Y, sx3Z) - else: - dsx3 = calculate_distance_tree2(vZ, theta, z_max=z_max) + #if treename == 'tree1': + sx3X = sx3X[mask] + sx3Y = sx3Y[mask] + sx3Z = sx3Z[mask] + dsx3 = calculate_distance_tree1(vXsx3, vYsx3, vZsx3, sx3X, sx3Y, sx3Z) + qqqX = qqqX[mask2] + qqqY = qqqY[mask2] + qqqZ = qqqZ[mask2] + dqqq = calculate_distance_tree1(vXqqq, vYqqq, vZqqq, qqqX, qqqY, 128) + #else: + # dsx3 = calculate_distance_tree2(vZsx3, theta, z_max=z_max) sin_theta = np.sin(theta) sin_theta = np.where(sin_theta != 0, sin_theta, 1e-10) radii = np.array([3.7, 4.3]) - dA = (radii[0] - np.sqrt((vX/10)**2 + (vY/10)**2))/ sin_theta - dC = (radii[1] - np.sqrt((vX/10)**2 + (vY/10)**2))/ sin_theta + dA = (radii[0] - np.sqrt((vXsx3/10)**2 + (vYsx3/10)**2))/ sin_theta + dC = (radii[1] - np.sqrt((vXsx3/10)**2 + (vYsx3/10)**2))/ sin_theta # Filter out unphysical distances (negative or unreasonably small) # These typically occur at large angles where trajectory doesn't properly intersect proportional counters @@ -351,31 +368,22 @@ def prepare_tree_data(tree, treename, particle, max_events=None, z_max=34.86): else: aID_valid = aID >= 0 cID_valid = cID >= 0 - - distance_mask = (dA > 0.1) & (dC > 0.1) & (sx3ID >= 0) & aID_valid & cID_valid - - Ei = Ei[distance_mask] - theta = theta[distance_mask] - dA = dA[distance_mask] - dC = dC[distance_mask] - dsx3 = dsx3[distance_mask] - vX = vX[distance_mask] - vY = vY[distance_mask] - vZ = vZ[distance_mask] print(f"Computing energies for {particle} ({treename})...") - print(f" Retained {np.sum(distance_mask)} / {len(distance_mask)} events after distance filter") + #print(f" Retained {np.sum(distance_mask)} / {len(distance_mask)} events after distance filter") - EA = energy_loss(particle, Ei, dA) - EC = energy_loss(particle, Ei, dC) - Esx3 = energy_loss(particle, Ei, dsx3) + EA = energy_loss(particle, Eisx3, dA) + EC = energy_loss(particle, Eisx3, dC) + Esx3 = energy_loss(particle, Eisx3, dsx3) + Eqqq = energy_loss(particle, Eiqqq, dqqq) - Elost = Ei - Esx3 + Elost = Eisx3 - Esx3 Eprop = EA - EC return { "particle": particle, - "Ei": Ei, + "Ei": Eisx3, + "thetabi": data["thetab"], "sx3Z": sx3Z, "EA": EA, "EC": EC, @@ -384,7 +392,13 @@ def prepare_tree_data(tree, treename, particle, max_events=None, z_max=34.86): "Eprop": Eprop, "dA": dA, "dC": dC, - "thetab": np.degrees(theta) + "thetab": np.degrees(theta), + "sx3X": sx3X, + "sx3Y": sx3Y, + "qqqX": qqqX, + "qqqY": qqqY, + "qqqZ": qqqZ, + "Eqqq": Eqqq } def process_file(filename, treename, particle=None, max_events=None): @@ -970,6 +984,9 @@ class MyInteractiveApp(cmd.Cmd): data = prepare_tree_data(self.tree, treename, particle, max_events=max_events) Ei = data["Ei"] + thetab = data["thetab"] + sx3X = data["sx3X"] + sx3Y = data["sx3Y"] sx3Z = data["sx3Z"] EA = data["EA"] EC = data["EC"] @@ -978,6 +995,10 @@ class MyInteractiveApp(cmd.Cmd): Eprop = data["Eprop"] dA = data["dA"] dC = data["dC"] + qqqX = data["qqqX"] + qqqY = data["qqqY"] + qqqZ = data["qqqZ"] + qqqE = data["Eqqq"] update_plot_data(f"{particle}_{treename}_Ei", Ei) update_plot_data(f"{particle}_{treename}_sx3Z", sx3Z) @@ -991,6 +1012,110 @@ class MyInteractiveApp(cmd.Cmd): os.makedirs(base, exist_ok=True) print(f"Saving plots to folder: {base} ({treename})") + + # --- clean data --- + x = np.asarray(sx3X, dtype=float) + y = np.asarray(sx3Y, dtype=float) + z = np.asarray(sx3Z, dtype=float) + c = np.asarray(Esx3, dtype=float) + qx = np.asarray(qqqX, dtype=float) + qy = np.asarray(qqqY, dtype=float) + qz = np.asarray(qqqZ, dtype=float) + qc = np.asarray(qqqE, dtype=float) + + if x.size > 0 and False: + + fig = plt.figure(figsize=(8,6)) + ax = fig.add_subplot(111, projection='3d') + + sc = ax.scatter( + x, y, z, + c=c, + cmap='viridis', + s=3, + alpha=0.8 + ) + + ax.set_xlabel("SX3 X") + ax.set_ylabel("SX3 Y") + ax.set_zlabel("SX3 Z") + + ax.set_title(f"{particle} ({treename}) SX3 3D Hit Map colored by Esx3") + + cb = plt.colorbar(sc, ax=ax, pad=0.1) + cb.set_label("Esx3 (MeV)") + + plt.tight_layout() + out_file = f"{base}/sx3_3D_energy.png" + plt.savefig(out_file, dpi=300) + plt.show() + + fig = plt.figure(figsize=(8,6)) + ax = fig.add_subplot(111, projection='3d') + + sc = ax.scatter( + qx, qy, qz, + c=qc, + cmap='viridis', + s=3, + alpha=0.8 + ) + + ax.set_xlabel("SX3 X") + ax.set_ylabel("SX3 Y") + ax.set_zlabel("SX3 Z") + + ax.set_title(f"{particle} ({treename}) QQQ 3D Hit Map colored by qqqTb") + + cb = plt.colorbar(sc, ax=ax, pad=0.1) + cb.set_label("qqqTb (MeV)") + + plt.tight_layout() + out_file = f"{base}/QQQ_3D_energy.png" + plt.savefig(out_file, dpi=300) + plt.show() + + else: + print("No valid SX3 points for 3D plot.") + + mask1 = ~np.isnan(Ei) & ~np.isnan(thetab) + plt.figure(figsize=(7,6)) + plt.hist2d(thetab[mask1], Ei[mask1], bins=200) + plt.xlabel("thetab") + plt.ylabel("Event Energy (MeV)") + plt.title(f"{particle} ({treename}) Energy vs Theta") + plt.colorbar(label="Counts") + #plt.xlim(0,30) + #plt.ylim(0,0.45) + plt.tight_layout() + plt.savefig(f"{base}/E_vs_theta.png", dpi=300) + plt.show() + + mask1 = (Esx3 > 0) & ~np.isnan(thetab) + plt.figure(figsize=(7,6)) + plt.hist2d(thetab[mask1], Esx3[mask1], bins=200) + plt.xlabel("thetab") + plt.ylabel("Esx3") + plt.title(f"{particle} ({treename}) sx3 Energy vs Theta") + plt.colorbar(label="Counts") + #plt.xlim(0,30) + #plt.ylim(0,0.45) + plt.tight_layout() + plt.savefig(f"{base}/sx3E_vs_theta.png", dpi=300) + plt.show() + + mask1 = (qqqE > 0) & ~np.isnan(thetab) + plt.figure(figsize=(7,6)) + plt.hist2d(thetab[mask1], qqqE[mask1], bins=200) + plt.xlabel("thetab") + plt.ylabel("E-QQQ") + plt.title(f"{particle} ({treename}) QQQ Energy vs Theta") + plt.colorbar(label="Counts") + #plt.xlim(0,30) + #plt.ylim(0,0.45) + plt.tight_layout() + plt.savefig(f"{base}/QQQE_vs_theta.png", dpi=300) + plt.show() plt.figure(figsize=(7,5)) plt.hist(Elost, bins=200) @@ -1014,18 +1139,6 @@ class MyInteractiveApp(cmd.Cmd): plt.legend(loc='upper right') plt.show() - try: - plt.figure(figsize=(7,5)) - plt.hist(sx3Z, bins=100) - plt.xlabel("SX3 Z") - plt.ylabel("Counts") - plt.title(f"{particle} ({treename}) SX3 Position Distribution") - plt.grid(True) - plt.tight_layout() - plt.savefig(f"{base}/sx3Z_hist.png", dpi=300) - plt.show() - except ValueError: - print("Value error") plt.figure(figsize=(7,5)) plt.hist(dA, bins=100, label='dA', histtype='step') @@ -1053,8 +1166,9 @@ class MyInteractiveApp(cmd.Cmd): print("Value error") try: + mask = Esx3 > 0 plt.figure(figsize=(7,6)) - plt.hist2d(EA, Esx3, bins=200) + plt.hist2d(EA[mask], Esx3[mask], bins=200) plt.xlabel("EA (MeV)") plt.ylabel("Esx3 (MeV)") plt.title(f"{particle} ({treename}) Anode vs SX3 Energy") @@ -1081,7 +1195,7 @@ class MyInteractiveApp(cmd.Cmd): try: mask1 = ~np.isnan(Esx3) & (Esx3 > 0) plt.figure(figsize=(7,6)) - plt.hist2d(Esx3[mask1], Eprop[mask1], bins=200) + plt.hist2d(Esx3[mask1], Eprop[mask1] * data["thetab"][mask1], bins=200) plt.ylabel("PCEnergy") plt.xlabel("SX3 Energy (MeV)") plt.title(f"{particle} ({treename}) Energy Propagation Difference vs SX3 Energy") @@ -1094,21 +1208,10 @@ class MyInteractiveApp(cmd.Cmd): except ValueError: print("Value error") - try: - mask1 = ~np.isnan(Ei) & (Esx3 > 0) - plt.figure(figsize=(7,6)) - plt.hist2d(data["thetab"], Ei, bins=200) - plt.xlabel("thetab") - plt.ylabel("Event Energy (MeV)") - plt.title(f"{particle} ({treename}) Energy vs Theta") - plt.colorbar(label="Counts") - #plt.xlim(0,30) - #plt.ylim(0,0.45) - plt.tight_layout() - plt.savefig(f"{base}/E_vs_theta.png", dpi=300) - plt.show() - except ValueError: - print("Value error") + #try: + + #except ValueError: + # print("Value error") branch_names = [] @@ -1126,9 +1229,8 @@ class MyInteractiveApp(cmd.Cmd): all_branches = self.tree.arrays(branch_names, library="np", entry_stop=max_events) # Keep only events with thetab >= 45 - #thetab_mask = all_branches["thetab"] >= 0 - - + #mask = (all_branches["Tb"] > 0) & (all_branches["qqqTb"] > 0) + for branch in branch_names: values = all_branches[branch] @@ -1143,7 +1245,7 @@ class MyInteractiveApp(cmd.Cmd): continue # Apply the thetab cut - values = values + #values = values[mask] values = values[~np.isnan(values)] @@ -1164,6 +1266,8 @@ class MyInteractiveApp(cmd.Cmd): plt.close() else: print("No branches found to histogram.") + + print(f"Plotting complete ({treename}).") @@ -1408,8 +1512,8 @@ class MyInteractiveApp(cmd.Cmd): plt.margins(0) plt.xlabel("SX3 Energy (MeV)") plt.ylabel("PCEnergy x Sin(theta)") - plt.xlim(0,35) - plt.ylim(0,0.6) + #plt.xlim(0,35) + #plt.ylim(0,0.6) cbar = plt.colorbar() cbar.set_label("Counts") plt.minorticks_on()